ククログ
RubyKaigi 2025 3日目にアンドパッドさんとコード懇親会を開催するよ! #rubykaigi #codeparty
RubyKaigi 2025の3日目の夜にアンドパッドさんが開催するコード懇親会のお手伝いをする須藤です。
2025年3月19日の10:00から参加登録できるので、「コードで懇親?楽しそう!」と思うRubyKaigi 2025参加者は登録してね。
Microsoft Office製品のファイル内の文字列を検索、置換する
OfficeStringReplacerというMicrosoft Office 製品1のファイル内の文字列を検索・置換するツールを開発した橋田です。
Office文書に含まれる文字列の検索、置換処理を素直に実装するとものすごく時間がかかりますが、OfficeStringReplacerでは現実的な時間に収まるように工夫をしています。 この記事ではその工夫の詳細について解説します。
-
Microsoft Office、Access、 Excel、 PowerPoint、 Word は、マイクロソフト コーポレーションの商標です。 ↩
Roaring bitmapsでビットより大きい情報を表現する方法
Groongaの結果セットにRoaring bitmapsを使えないか検討している須藤です。
以前、ClickHouseみたいにポスティングリストにRoaring bitmapsを使えないか検証しましたが、既存のPForDeltaの方がよかったのでやめました。しかし、結果セットには使えるかも?とは思っていました。ただ、Groongaの結果セットは「ヒットしたレコードはどれか」というビットで表現できる情報だけではなく、「ヒットしてレコードはどれで、それらのスコアはそれぞれいくつか」という「ヒットしたか」(ビットで表現できる)+「スコア」(64bit浮動小数点数で、ビットでは表現できない)というビットでは表現できない情報が必要です。そのため、使えるかも?とは思いつつ、じゃあどうやって?がわからずにそのままになっていました。
この間、なんとなくまたどうにかできないか調べてみたら、Roaring bitmapsのGo実装にはそれを実現する方法が含まれていることを見つけたので紹介します。まだGroongaでは検証していないので、Groongaで使いものになるかどうかはわかりません。
Gandivaが使っているLLVMのJIT機能をMCJITからORCv2にしたらシンボルが見つからないエラーになっていたけどLLVM 18.1で直った
Apache Arrowの開発に参加している須藤です。LLVMは詳しくないし、LLVMのどのコミットで直ったとかも調べていないし、私はレビューとか調査をしていただけで実装していないとかなんですが、最近、数年越しのGandivaの問題が直ったので雰囲気で紹介します。
Apache Arrowフォーマットはどのようにクエリー結果の転送を高速にしているのか
Apache Arrowの開発に参加している須藤です。先月、Apache Arrowの公式ブログにHow the Apache Arrow Format Accelerates Query Result TransferというApache Arrowフォーマットを使うとなぜクエリー結果の転送が高速になるのかを説明した記事が投稿されました。すごくよくまとまっている内容で、今後、何度も参照したくなりそうでした。ということで、Apache Arrowの公式ブログに翻訳記事を追加しておきました。昨今の機械翻訳は精度がかなり上がっているので人手の翻訳がなくても読みたい人は読む気はしますが、検索したときに見つかりやすくなるかもなぁと思ってやっておきました。
詳細はこの翻訳記事を読んでもらうとして、ここでは簡単に概要を紹介しておきます。
PGroongaの並列インデックス構築の並列度を最大にする方法
PGroongaのメンテナンスもしている堀本です。
PGroongaは4.0.0からPostgreSQL 17以降を使っている場合に限り、複数のCPUコアを活用してインデックスの構築を並列で実行できます。 (PostgreSQL 17より前のバージョンでは動作しないので注意してください。) 並列に実行するため、インデックス構築速度の高速化が期待できますが、場合によっては思ったほど高速にならない可能性もあります。
今回は、PGroonga 4.0.0を使ってもあまりインデックス構築が高速にならない人向けの記事です。
セキュアブラウザ「Chronos SystemGuard」と最新版定期リリースのご紹介
屋代です。2023年よりセキュアブラウザ製品「Chronos SystemGuard」を担当しています。
2025年2月14日に、Chronos SystemGuardの最新版となるv15.0.131.0をリリースしました! そこでこの機会に、次の2点について簡単にご紹介します。
- Chronos SystemGuardについて
- Chronos SystemGuardのリリースについて
fluent-logger-rubyで並列にログをFluentdに送信する方法
こんにちは。Fluentdチームの藤田です。
今回はfluent-logger-rubyという、Rubyプログラムから手軽にログをFluentdに送信するためのライブラリを取り上げます。
Rubyには並列処理を手軽に扱えるparallelというライブラリがあり、マルチプロセスまたはマルチスレッドで処理が行えるようになります。
これらを組み合わせて、並列的にfluent-logger-rubyでログを送信したときに問題なくログが送信できるか調べてみました。 実装次第では受信データが破損するケースがあるため、注意が必要です。
LTS版 Fluent Package v5.0.6をリリース
2025年2月14日にFluent PackageのLTS(長期サポート)版の最新バージョンであるv5.0.6をリリースしました。
本リリースでは、Windows向けにいくつかの改善を行っています。
本記事ではFluent Packageの変更内容について紹介します。