private def current_environment_from_env
ENV["SENTRY_ENVIRONMENT"]? || "default"
private def detect_release_from_env
ENV["SENTRY_RELEASE"]?
View raven.cr.md
View extractor-in-crystal.md
Let's consider some value holder. For example, Try monad. For simplicity, Let's assume it only works with Int32
.
record Success, value : Int32
record Failure, value : Exception
# some try object
try : Success | Failure = Success(1)
View document-as-interface.md
Abstract
Use the interface to prevent missing documents.
Example
class SomeLib
module Interface
abstract def foo : String
abstract def bar : String
View RateLimit.md
TL;DR
- Leaky bucket : キューイングして出力量(consume)で調節 (アルゴリズムというかキューを使って調節)
- Token bucket : 定期的に資源を追加し平均値を調節。バーストに強い (ソシャゲのスタミナ回復)
- Fixed window counters : 単位時間あたりの上限値を指定。キューを使わないLeaky bucket。境界の2倍問題あり
- Sliding window log : 総数(counters)でなくアクセス時刻(log)で管理。境界問題を解消する一方、消費増加がぱない(
Int
→Array(Time)
) - Sliding window counters : countersのままで、単位時間の割合計算によって境界問題を解消。これにしておけば間違いない
参考: 様々なrate limitアルゴリズム
- https://christina04.hatenablog.com/entry/rate-limiting-algorithm
- 日本語。メリットとデメリットも解説されており、デメリットを克服する形で次のアルゴリズムの説明に入るので、全体がわかりやすい
View ディスク追加.md
/dev/vdb があることを確認
$ fdisk -l
...
Disk /dev/vdb: 2 TiB, 2147483648000 bytes, 4194304000 sectors
...
パーティション作成(2TB以下の場合)
View RabbitMQ.md
Queue
制限
- キューの最大本数:
Thousands (or even tens of thousands) of queues should be no problem at al
作成
View XX operators with X-zero? method.md
Typical Operations
a ?? b # => a.typical_zero? ? b : a
def T#typical_zero?
self == T.typical_zero
def T.typical_zero
nil
View SQS.md
Amazon SQS (標準キュー)
- https://dev.classmethod.jp/articles/fifo-sqs-exactly-onceon-tokyo/
- 高可用性を持った分散キューシステム
- at least once
- 順序保証なし
- メッセージdup (複数workerで同じメッセージを処理する可能性)
Amazon SQS (FIFOキュー)
- https://dev.classmethod.jp/articles/sqs-new-fifo/
- exactly once
View 1.SMS provider.md
SMS Provider の責務
- アプリケーションツーパーソン(A2P)メッセージング (アプリケーションから個人への通知)
- モバイルプッシュ通知 (事前にアプリとモバイルデバイスを登録)
- モバイルテキストメッセージング(SMS) (電話番号を指定してSMS対応デバイスに送信)
- メッセージ配信の再試行 (サーバー側のエラー発生時に行う柔軟な再試行の設定)
- デッドレターキュー (正常に配信できないメッセージを分析または再処理のために配信不能キューに保持)
- メッセージ属性 (メッセージに関する任意のメタデータを提供)
- メッセージセキュリティ (データの秘匿性)
- メッセージの耐久性 (永続的なストレージおよび冗長化)
View VSCode Remote SSH.md
TL;DR
- SSH Client には ssh コマンドが必要 (Windows10 付属のは動く。puttyは使えない)
- .ssh/config の ProxyCommand には "ssh" でなく "ssh.exe" と書くべし
- ssh-agent はプロセス起動でなく、サービスとして起動する
- ssh-agent はバージョンが古くて自動で鍵認証できないので、最新版を自分で入れる必要あり (7.9以上が必要)
Windows10付属のSSH Clientのインストール
- 各バイナリはあとで手動で差し替えてしまうが、サービスのインストールのために一旦入れる
- https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse
NewerOlder