サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
bmf-tech.com
PostgreSQLのCOLLATEとglibcのバージョン差によるソート順の違い データベース 2025年3月5日 作成2025年3月5日 更新 PostgreSQLのCOLLATEとglibcのバージョン差によるソート順の違い 同じCOLLATE設定を指定しているにもかかわらず、環境によってソート順が異なる問題に遭遇したので、その時の調査記録をメモしておく。 事象 Cloud SQLとローカル環境のPostgreSQLコンテナでCOLLATEが同じでもソート結果が違う Cloud SQL for PostgreSQL 17上でテーブルの文字列カラムをORDER BY カラム名 COLLATE "en_US.utf8"でソートしたところ、ローカルで動かしているPostgreSQLコンテナの結果と並びが異なる問題に遭遇した。 同じバージョンのPostgreSQL・同じCOLLATE設定(デ
概要 これまでgoblinという自作HTTPルーターを自分のアプリケーションで使っていたが、Go1.22でServeMuxの機能が拡張されてからはServeMuxを使うようになった。 この記事では、Go1.22で追加されたServeMuxの機能や性能について整理し、これからのGoのHTTPルーター選定について考えてみる。 Go1.22で追加されたServeMuxの機能 Go1.22rcの公開時にServeMuxの新機能について調べていたが、もう少し詳細を追ってみようと思う。 cf. Go1.22rcで変更されるServeMuxの仕様 以下の参考情報を元にServeMuxの新機能について整理する。 リリースノート Go 1.22 Release Notes - Enhanced routing patterns ServeMuxのパターンが拡張され、メソッドとワイルドカード(動的なパスパラメ
GoでHTTPサーバーを書いているときなどオレオレ証明書がほしいときに役立つワンライナー。 go run $(go env GOROOT)/src/crypto/tls/generate_cert.go -rsa-bits 2048 -host localhost cert.pemとkey.pemが用意できる。 openssl使ったりmkcert使ったりしていたけどGo使っていたらこれで良さそう。 cf. Source file src/crypto/tls/generate_cert.go
この記事はMakuake Advent Calendar 2023の19日目の記事です。 なんでこんな大遅刻かというと、唯一埋まっていなかった19日の枠を急遽埋めようと思って投稿したため。元々掴んでいた枠ではないので遅刻ではない。 概要 去年くらいからGoのnet/httpに含まれるServeMuxの機能拡張の提案が出ていてウォッチしていたのだが、最近Closedになったらしい。 cf. net/http: enhanced ServeMux routing #61410 cf. GoでServeMuxの機能拡張を提案するProposalがAcceptedになった アプリケーション この機能拡張はGo1.22に含まれる想定らしく、Go1.22rc2がリリースされたので試してみた。(Go1.22rc1から含まれているようだが、スルーしていた。) Go1.22でのnet/httpの変更点 ti
概要この記事はMakuake Advent Calendar 2021の24日目の記事です。(大遅刻しました・・) ラウンドロビンで負荷分散するロードバランサーをGolangで自作してみるという話です。 ロードバランサーとは何かロードバランサーはリクエストを複数のサーバーへ振り分けて負荷分散する(ロードバランシング)機能を持ったサーバーです。 サービスの可用性を高めてくれるリバースプロキシの一種です。 ロードバランサーの種類は大きく分けて2種類あります。アプリケーション層で負荷分散するL7ロードバランサーと、トランスポート層で負荷分散するL4ロードバランサーです。 ロードバランサーは、ロードバランシングの他、パーシステンス(セッション維持)とヘルスチェックの機能を兼ね備えています。 ロードバランシングの種類負荷分散には静的な方式と動的な方式のものでそれぞれ種類があります。 静的なものの代表
概要 GolangでURLルーターを自作したので実装するまでの過程をメモしておく。 準備 URLルーターを実装する際に行った下準備をまとめる。 データ構造とアルゴリズム URLをどのようにマッチングさせるか、というロジックについて検討する。 多くのライブラリでは、データ構造として木構造がよく扱われているので、どんな種類の木構造を採用するかを考えてみた。 文字列探索に特化した木の中で、時間的・メモリ的計算量がよりベストなものを選定しようとすると、基数木というのが良さそうに見えるので最初はそれを採用しようとしていたのだが、実装が難し過ぎて挫折をした。 もう少し身近でシンプルなものをということでトライ木を採用することにした。 net/httpのコードリーディング net/httpが持つマルチプレクサの拡張として実装を行うため、内部の仕組みについてある程度理解しておく必要がある。 GolangのH
DockerのOperation not permittedというエラー�に対応する インフラストラクチャ 2019年9月27日 作成2019年9月27日 更新 概要 Docker Composeを使ってgolangのtest実行していたら、Operation not permittedというエラーに遭遇した。 対応 Docker Documentation - runtaime-privilege-and-linux-capabilities Dockerコンテナの特権設定をいじると解決する。 gobel_test_db: container_name: "gobel_test_db" build: ./docker/mysql ports: - "3305:3306" volumes: - mysql_gobel_test_db:/var/lib/mysql:delegated - .
概要 この記事はQiita - Go6 Advent Calendar 2019の20日目の記事です。 GolangでHTTPサーバーを立てるコードの詳細を追ってコードリーディングします。 参考実装 コードリーディングしていく実装はこちら。 package main import ( "net/http" ) func main() { mux := http.NewServeMux() handler := new(HelloHandler) mux.Handle("/", handler) s := http.Server{ Addr: ":3000", Handler: mux, } s.ListenAndServe() } type HelloHandler struct{} func (h *HelloHandler) ServeHTTP(w http.ResponseWrite
ストリートコーダー アプリケーション 2025年9月20日 ストリートコーダーを読んだ。 ストリート(現場)でのtipsをジョークを交えて語っている本。 アルゴリズムやテスト、リファクタリングからセキュリティや性能最適化まで幅広く扱い、現場で遭遇する課題にどう向き合うべきかが具体的に示されている。 初心者には実践のイメージを、経験者には自身の技術や姿勢を振り返る機会を与えてくれる。 ... セッションベースとトークンベースの認証方式について システムアーキテクチャ 2025年9月17日 セッションベースとトークンベースの認証方式について 概要 Webアプリケーション開発において、認証方式の選択は システムのスケーラビリティ、セキュリティ、保守性に大きな影響を与える設計判断である。この記事では、セッションベース認証とトークンベース認証について、技術的な詳細から実装上の考慮事項まで包括的に比較
アーキテクチャアドバイスプロセス(AAP)とは何か? システムアーキテクチャ 2025年8月16日 LTで簡単にまとめた資料もあるので、要約を知りたい場合は以下を参照してほしい。 cf. AAPについて調べてみた アーキテクチャアドバイスプロセスとは何か 現代のソフトウェア開発では、チームの自律性と開発速度が重要視される一方で、アーキテクチャの一貫性も求められる。この相反する要求に応えるのが、アーキテクチャアドバイスプロセス(Architecture Advice Process, AAP)であ... データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて システムアーキテクチャ 2025年8月11日 データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けてを読んだ。 帳簿という概念を軸に、基幹系システムを分散・疎結合化するためのデータモデリング手
このページを最初にブックマークしてみませんか?
『bmf-tech.com - ホーム』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く