Ruby

AASMでステータス変更と同じクリティカルセクションで実行

概要 主にActiveRecordと併用して使うステータス管理用のgemがあります。AASM(ステートマシーン)です。「ステータス変更と同時に別の処理を実行したい」という要求を満たすために排他制御(主にデータベースのトランザクション)を使う...
PHP

Envoy(受付アプリ)のSlack通知が遅いので自作

概要 Envoyというオフィスのエントランスで受付をするシステムがあります。理想のワークフローは、Envoyで訪問者が受付をした際に、担当者宛にSlackで通知を飛ばすこと。Envoyが提供しているSlackのIntegrationを使うと...
Program & Service

Google Domainsのドメインでメール送信ができなくなったけど解決

概要 独自ドメインの転送メールアドレスを無料で行えるように設定しました。 しかしながら、1週間ぐらい経過してからメールを送信したら、以下のようなエラーメールが返ってきてしまいました。 You no longer have access to...
Program & Service

Google Domainsへ移管して無料でカスタムドメインをGmailで使う

概要 Google Domainsでドメインを管理すれば、無料でGmailをカスタムドメインで利用できるようになるらしいので設定してみました。 おそらく、これに当たるのかなと思います。custom domainでaliasが作れる感じかなと...
Program & Service

有効期限付きポイントシステムの要求定義と設計

概要 15年前ぐらいに設計、実装したシステムの設計と実装を公開します。 目的は、誰かに特許を取られてしまっても困るので。自分で特許を取るほどでもないので共有資産として残しておきます。特許というか、どちらかと言うと論文で発表するほうが向いてい...
Server software

自宅サーバ環境

ハードウェア PowerEdge T320を2019年12月に中古で26,000円で買いました。製造日は2013年とか2014年かと思います。 CPU: 8コア Xeon E5-2450 2.1GHz RAM: 16GB HDD: 2TB ...
コーポレート IT

GoogleのCloud Identityでエンドポイント管理

概要 Googleが2020年1月16日にリリースしたCloud Identityによって社内端末を管理する設定をしました。事例がほとんど見つからないのでオフィシャルドキュメントを片っ端から読んで設定してみました。コーポレート関連の情報が全...
Program & Service

slackのステータスアイコンを自動で更新(家かオフィスかをアイコンで表示)

概要 以下のように、自分がどこにいるのかを自動的にSlackのアイコンに表示する方法を紹介します。2年前(2020年)ぐらいに設定した内容なのでちょっと古いところがあるかもです。 slack-wifi-status じゃあ、どうやってステー...
Ruby

Toonesの残高をチェックして少なかったらSlackへアラート

インターネットFAXのToonesにある残高が減った時に検知する手段が無かったのでスクレイピングしてSlackに通知するようにしました。mechanize gemを使えば、結構簡単に書けます。 ヘッドレスブラウザを使うと大げさすぎるし、ht...
Ruby on Rails

RSA Encryption not supported – caching_sha2_password plugin was built with GnuTLS support がでたときの対処法

原因 MySQL5.7までの認証プラグインにはmysql_native_passwordがデフォルトで使用されていましたがMySQL8より新たに追加されたcacing_sha2_passwordがデフォルトに変更されましたがクライアント側が...