タグ

ブックマーク / zenn.dev/voluntas (19)

  • Cloudflare の利用を徐々に減らして行くメモ

    概要 Cloudflare の利用を徐々に減らし、Akamai Connected Cloud へ移行しているのでそれを記録していくことにする。 移行理由 ただのアンマッチで、自分のサービス選定ミス。 自社の商用サービスが期待するレベルのサポートを得るには、Cloudflare エンタープライズプランが必須な事をわかっておらず、費用面でアンマッチになった。 サポートが必要になった状況 WebSockets · Cloudflare Network settings docs 商用環境で WebSocket を利用する場合はサポート契約が必要 サポートに問い合わせ、年 2400 ドルのビジネスプランを契約を推奨されたので契約 Cloudflare LB で WebSocket が突然切断される問題 問題の報告から 6 ヶ月以上経過しても、連絡も無く問題も継続して発生 8 ヶ月目にやっと返信が

    Cloudflare の利用を徐々に減らして行くメモ
  • H.264/H.265 で 4K 配信が利用可能な N100 を搭載した $60 から買える Rapsberry Pi サイズの Radxa X4 について

    Radxa X4 Radxa X4 公式サイト Radxa X4 with Intel N100, Dual 4K Output, 2.5Gbps Ethernet, PCIe 3.0 M.2 M Key, WiFi 5/6, High-Performance SBC 公式販売サイト 最安60ドル。 Radxa「X4」はクレカサイズでIntel N100+RP2040に2.5GbE搭載のSBC | がじぇっとりっぷ このサイトが詳しいのでお勧め Intel N100 を搭載した Raspberry Pi サイズの SBC 価格が安い メモリ 4GB + WiFi 5 で $59.90 メモリ 8GB + WiFi 6 で $79.90 メモリ 8GB + WiFi 6 + eMMC 64 GB で $89.00 https://arace.tech/products/radxa-x4?va

    H.264/H.265 で 4K 配信が利用可能な N100 を搭載した $60 から買える Rapsberry Pi サイズの Radxa X4 について
  • Biome はじめました。

    モチベーション そもそも TypeScript や JSX に詳しくないのでどう書くのがいいのか悩みたくない ESLint や Prettier の設定を なんとなく 設定して使ってしまっている Formatter / Linter 関連のライブラリの内容を理解せずにアップデートしてしまっている 依存関係は減らしていきたい Rust で書かれた言語向けの高速なツールが好き Rye とか Ruff とか efmt とか Biome Biome は Rust で書かれた Formatter / Linter を含むツール。当におかしいくらい早い。 全然大きくないが、以下のソースコードに適用したときの速度。 $ pnpm run fmt > biome format --write ./src Formatted 114 file(s) in 11ms $ pnpm run lint > bi

    Biome はじめました。
  • Cloudflare LB で WebSocket が突然切断される問題

    まとめ 問題の報告から 6 ヶ月以上経過していますが、連絡も無く問題も継続して発生しています。 Cloudflare LB の WebSocket の突然切断されるのにプランは関係ない サポートから回答 Cloudflare LB の WebSocket のタイムアウトは 100 秒 サポートから回答 Cloudflare 側は問題は把握しているが、すぐ解決できる感じではなさそう サポートからの返信で、まずはログの調査からという感じだった ログは提出済み Cloudflare 側のデプロイで切断されるのは思った以上短い間隔で発生する 実際、数日の検証中に発生している これはドキュメントに掲載されていることで知っていたが数ヶ月とかのスパンだと思っていた 商用環境での Cloudflare LB 経由の WebSocket 利用を取りやめた。Cloudflare LB を利用しなければ数日間接

    Cloudflare LB で WebSocket が突然切断される問題
  • Rye メモ

    $ rye install optuna Collecting optuna Downloading optuna-3.1.1-py3-none-any.whl (365 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 365.7/365.7 kB 1.7 MB/s eta 0:00:00 Collecting alembic>=1.5.0 (from optuna) Downloading alembic-1.11.1-py3-none-any.whl (224 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.5/224.5 kB 2.3 MB/s eta 0:00:00 Collecting cmaes>=0.9.1 (from optuna) Downloading cmaes-0.9.1-py3

    Rye メモ
  • GistPad 雑録

    前提 ローカルとオンラインで同期してくれるメモツールが欲しかった 色々触ってみたがぐっとくるものがなく、VIM モードが最初からある HackMD を使っていた ふと Gist を VS Code で編集できたりしないのだろうかと思い拡張を検索してみたところ、GistPad を見つけた。アクティブに更新している Gist が大量にあり管理できるツールを探していただけ。 GistPad - Visual Studio Marketplace 結論 恐ろしく便利 VS Code 拡張が好きなだけ利用できる VS Code 拡張 クローズドなメモ帳としては文句ない 連携は向いていないので連携したい場合は別のツールを使うべき ネガティブはモバイルから利用できないことくらい 自分にとって何が GistPad は良かったか VS Code ベースなので VS Code の拡張が全て利用可能 VS Co

    GistPad 雑録
  • Cloudflare Load Balancing メモ (利用を廃止しました)

    Cloudflare LB で WebSocket が突然切断される問題 現時点で Cloudflare LB で WebSocket を利用する場合は問題が起きる場合がある。充分検証為てから採用する事をオススメします。 Cloudflare Status - Billing issues relating to subscription adjustments サブスクリプションのアップグレードおよびダウングレード時に機能が失われる問題が発生しております このサブスクリプションのダウングレードをすると機能が停止し、復旧できなくなる問題の影響を受けて、商用環境で Cloudflare LB が完全に復旧できなくなる状況が発生しました。 ビジネスプラン (年 2400 ドル) 程度のサポート契約では、残念ながらビジネスで利用できるレベルではなかったです。もしビジネスで利用される場合は、必ずエ

    Cloudflare Load Balancing メモ (利用を廃止しました)
  • ドキュメント駆動開発v2

    前提 ここで言っているドキュメントは仕様書ではなく、顧客向け製品ドキュメント。 ミドルウェア製品を開発 小さなチーム パッケージ製品とパッケージ製品のクラウド版 そのため顧客に提供するドキュメントが必ず必要 GitHub を利用 自分で開発する場合のフロー 作りたい機能をぼんやりでいいので GitHub Issue に追加する feature ブランチを切る デザインドキュメントをリポジトリの doc/ 以下に書く デザインドキュメントに合わせてコーディングを進めてなんとなく動くところまで作る 動かなくてもいいのでイメージを膨らませるためにコードを書いてみる デザインドキュメントは書き捨て前提で、とにかくメモを書く 製品ドキュメントを書き始めて、一旦書き終える ブランチマージに向けてコーディングを進める 書ける範囲でテストを書く ドキュメントを平行して修正する プルリクエストをだしてレビュ

    ドキュメント駆動開発v2
  • サーバ転送料金まとめ

    2023 年 9 月 25 日時点の 1 GB あたりの金額 1 ドル 150 円換算。 GCP 18 円 $0.12/GB 10 TB 以上利用 上り無料 AWS 12.6 円 $0.084/GB 150 TB 以上利用 上り無料 Azure 9 円 $0.06/GB 350 TB 以上利用 上り無料 Vultr 1.5 円 $0.01/GB 上り無料 Linode 0.75 円 $0.005/GB 上り無料 関連リンク S3 互換オブジェクトストレージまとめ サーバ転送料金まとめ 自社で開発している WebRTC SFU のような常時帯域をべる。 そのため、いろいろなサービスの転送量の課金体系をまとめておくことにした。 条件 日のリージョンがある VPS やクラウドやベアメタルなどは特に区別しない オンプレはなし GCP インターネット -> GCP は無料 Premium Tie

    サーバ転送料金まとめ
  • TURN サーバでよくある間違い

    ライセンス Creative Commons — 表示 - 非営利 - 改変禁止 4.0 国際 — CC BY-NC-ND 4.0 前提 TURN サーバを間違って理解している人が多いので雑にまとめておく。 TURN プロトコル自体を知りたい場合 WebRTC で利用されいる TURN プロトコルの解説 著者 商用 WebRTC SFU 開発者 商用 TURN サーバ実装者 (WebRTC SFU に組み込み) WebRTC プロトコルスタック実装者 よくある間違い TURN サーバはリレーするパケットの中身を見ることができる TURN サーバを通るもともとのパケットを復号化したりしない ただ通信が暗号化されていなければ見ることはできる TURN サーバはスケールが難しい 1 接続事に独立しているので TURN サーバ同士で状態を共有する必要はないので難しくない Username / Cr

    TURN サーバでよくある間違い
  • Meilisearch を利用して Sphinx で日本語全文検索を実現する

    モチベーション ドキュメントツール Sphinx から出力した HTML オンラインドキュメントに日語対応の全文検索機能を追加したい。 結果 オンラインドキュメントと日語全文検索 前提 日語全文検索に対応する OSS を利用する ドキュメントツールは Sphinx を利用する Sphinx の検索バーを置き換える サーバレスの検索は諦める サーバ運用を検討する 企業利用前提なので費用がかかっても良い 検索は難しいので検索部分は頑張らない 完璧は求めない reStructuredText を解析するのではなく HTML を解析して処理する Meilisearch を採用 いろいろ調べたりしていたが Meilisearch が良さそうと判断した。 Meilisearch語検索に対応している Rust で書かれており性能がでそう Rust であれば問題が起きた際、会社でなんとかできる

    Meilisearch を利用して Sphinx で日本語全文検索を実現する
  • Zig メモ

    Zig に関する自分なりのメモを残しています。 学ぶモチベーション C++Rust を学ぶには難しそう Erlang VM の NIF 経由で Zig で書かれたライブラリを呼び出したい Zig で HWA を利用したエンコーダーとか作ってみたい macOS もしくは Linux で動けば良い Wasm に出力してブラウザで利用したい Zig の良いところ zig build は C のビルドツールとしても有用そう allocator の概念がわかりやすい std.crypto が充実している zig test がよくできている switch が好み 利用目的 WebTransport HTTP/3 QUIC HTTP/2 MLS (C++ / Wasm) Signal Protocol (C++ / Wasm) AV1 / VPX / Opus / Lyra 翻訳 自分向けに Zi

    Zig メモ
    s_ryuuki
    s_ryuuki 2022/07/08
  • k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ

    注意 とっても雑な検証なので参考などにはしないでください。ちょっとした興味で自分用に調べてるだけです。 結論 Echo を利用した秒 1 万リクエストを超えないウェブサービスで、かつ SQLite の機能で要件がみたせるのであれば、SQLite + Litestream 十分と判断出来る結果だった。 利用技術 Load testing for engineering teams | Grafana k6 Grafana に買収された Go で書かれた負荷試験ツール JS でシナリオが書ける Litestream - Streaming SQLite Replication SQLite リアルタイムバックアップツール mattn/go-sqlite3: sqlite3 driver for go using database/sql Litestream も使ってる 安心と信頼の matt

    k6 + Echo + go-sqlite3 + Litestream + Linode Object Storage 簡易負荷試験メモ
  • Webhook.site のまとめ

    Webhook.site https://webhook.site/ というウェブフックを即座に受信できる URL をアクセスするだけで作成してくれるサービスがあります。このサイトが当に便利なので、紹介していきます。

    Webhook.site のまとめ
  • S3 互換オブジェクトストレージまとめ

    概要 S3 互換オブジェクトストレージの サービス を自分のためにまとめている。サービスとして提供されているのが前提で、 自前運用は範囲外 。 目的 以下の内容に絞って調べている。 日リージョンの有無 egress の費用 容量の費用 追加調査予定 PutObject 対応 PresignedGetObject 対応 S3 互換 S3 互換の条件は s3cmd や aws sdk s3 がそのまま利用できる事。細かい互換性は気にしない。 比較用の AWS S3 https://aws.amazon.com/jp/s3/pricing/ 最小プラン Tokyo / Osaka リージョンあり 1 GiB 追加の egress 転送量は 0.114 ドル 1 GiB の追加容量は 0.025 ドル TODO SLA 書いてるのと書いてないのがあって拾いにくい 対象外 Azure は S3 互

    S3 互換オブジェクトストレージまとめ
  • 時雨堂クラウドサービスを支える技術 v1

    v2 へ移行中です 円安の影響や、自社製品がスケールアウトに対応したこと、Cloudflare LB の WebSocket の挙動が残念だったことなどを踏まえ、サービス構成を変更を検討中です。 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理 脱 Vultr Egress 料金が Linode だと Vultr の半額 Linode へ移行 脱 Cloudflare LB Linode の NodeBalancers へ移行 マルチリージョンでの利用は Linode の Akamai Global Load Balancer 公開待ち 脱 Cloudflare サポートに不安があるため Akamai へ移行 脱 TimescaledB 移行は Linode PostgreSQL の提供開始待ち OLAP は DuckDB + S3 互換オブジェクトス

    時雨堂クラウドサービスを支える技術 v1
  • Cloudflare Workers メモ

    前提 Cloudflare Workers は知っていたが最近触って、番環境へ導入済み。 普段は Erlang/OTP を書いてるので JavaScript は専門外 自社サービスの番環境には Cloudflare Workers を導入済み OpenResty はエンタープライズ大規模環境向けで設計/開発経験あり 雑感 Cloudflare Workers® ざーっと見た感じ Nginx + Lua (OpenResty) のマネージド、さらに Edge で動かしてくれて、スケールも勝手にしてくれるバージョンという認識。実際 shared.dict / redis の代わりが Workers KV が利用できる。 さらにローカル開発環境が充実している、デプロイ後のログ確認も管理画面から簡単に利用できる。 Lua Introducing Cloudflare Workers これを読む

    Cloudflare Workers メモ
  • RDB / SQL メモ

    前提 RDBSQL 初心者 DynamoDB や Redis といった KVS は経験あり TimescaleDB を利用する Time-series data simplified | Timescale sqlc を利用 kyleconroy/sqlc: Generate type-safe code from SQL migrate を利用 golang-migrate/migrate: Database migrations. CLI and Golang library. TablePlus を利用 TablePlus | Modern, Native Tool for Database Management モチベーション 自社サービスのバックエンドで利用したい TSDB 機能も利用したい sqlc から利用したい 読んだドキュメント PostgreSQL 13.1文書

    RDB / SQL メモ
  • Remix | Philosophy

  • 1