ククログ

Apache ArrowとGObject Introspection

Apache Arrowの開発に参加している須藤です。現時点でapache/arrowのコミット数は1位です。私はRubyでデータ処理できるようになるといいなぁと思ってApache Arrowの開発に参加し始めました。同じような人が増えるといいなぁと思ってなにか試したりしましたが、あいかわらず、今でも実質1人でApache ArrowのRuby対応をしています。何度目かの「もっと仲間を増やさないと!」という気持ちになったので、最近の活動を紹介して仲間を増やそうと試みます。

今回はGObject Introspection関連のことを紹介します。最近、GObject Introspectionを採用することで狙っていたことが実現しかけているのです。

もっと読む

LTS版 Fluent Package v5.0.5をリリース

2024年11月14日にFluent PackageのLTSの最新版となるv5.0.5をリリースしました。

本リリースでは、パッケージでいくつかの修正が行われています。

本記事ではFluent Packageの変更内容について紹介します。

もっと読む

Apache Arrowのレビュー

Apache Arrowの開発に参加している須藤です。現時点でapache/arrowのコミット数は1位です。私はRubyでデータ処理できるようになるといいなぁと思ってApache Arrowの開発に参加し始めました。同じような人が増えるといいなぁと思ってなにか試したりしましたが、あいかわらず、今でも実質1人でApache ArrowのRuby対応をしています。何度目かの「もっと仲間を増やさないと!」という気持ちになったので、最近の活動を紹介して仲間を増やそうと試みます。

Apache Arrowの開発でなにをがんばっているかを考えてみたところ、レビューを頑張っているなぁと思ったので紹介します。あと、レビューする人が足りないなー、増えるといいなーと思っているので、今日はレビューの話にします。なお、この一連の話を書き始めてから@hiroysatoが興味を持ってくれて、プルリクエストを送りはじめてくれました。現時点で16個です。慣れてきたらレビューもしてくれるといいな。今は、そもそもRuby関連のプルリクエストが少なくてレビューもなにもないけど。。。

もっと読む

Thunderbird 128でIMAPアカウントのメールフォルダーが破損する・増殖する場合の回避方法

当社の法人向けThunderbirdサポートサービスにおいて、それぞれ別々のお客さまから、以下のようなお問い合わせを頂きました

  • Thundebrird 115からThunderbird 128へ更新して以後、IMAPで運用しているメールアカウントにおいて、フォルダー内のメールを選択するとメールのソースらしき文字列が表示されたり、別のメールの内容が表示されたりする現象が、度々唐突に起こるようになった。「フォルダーの修復」を行うと状態が回復するが、しばらくするとまた再発する。
  • アーカイブの保存方法を年単位から単一のフォルダーにまとめるように変更して以後、Thunderbirdを終了する度に「archive-1」「archive-2」「archive-3」……と、名前の末尾に数字が付いたメールフォルダーが増殖していくようになった

本記事では、この2件の事例を切り口として、この種の問題の共通の原因と疑われるThunderbirdの事情を解説した上で、これらの問題の回避に有効と考えられる対策をご紹介します。

もっと読む

Ruby 3.4でString#to_f/Kernel.#Floatの挙動がちょっと変わるよ

Rubyの開発に参加している須藤です。Apache Arrowの開発中に、他のシステムでは受け付ける浮動小数点数の文字列表現をRubyでは受け付けないことを知ったので、Rubyでも受け付けるようにする?という話をしたら受け付けるようになりました。ということで、2024年12月にリリース予定のRuby 3.4.0からString#to_f/Kernel.#Floatの挙動が少し変わります。Ruby 3.4.0 preview2にも入っているので、これで試して問題がある場合は https://bugs.ruby-lang.org/ に報告してください。今ならまだこの挙動を元に戻せるかもしれません。

もっと読む

Mroongaでgrn_p()を利用する方法

最近、Mroongaの開発をしている児玉です。

Mroongaを開発する中で特定のオブジェクトの中身をデバッグしたい状況になりました。 そんな時に、便利なのがGroongaのオブジェクトの状態を標準出力に表示するgrn_p()です。

しかし、grn_p()を使ってターミナル上にオブジェクトの状態を表示しようとしたところ、 うまく表示されませんでした。どうやら標準出力が別の場所に向けられているようです。

今回この問題を解決し、grn_p()で快適にMroongaをデバッグできるようになったので、 その方法を紹介します!

この記事が、Mroongaのデバッグをしたい方の参考になれば幸いです。 MroongaはMySQLやMariaDBと組み合わせて利用できますが、今回はMariaDBを例に説明します。 (Mroongaに限らず、標準出力先がどこか分からずに困っている方にも役立つかもしれません。)

もっと読む

Apache Arrowをリリース

Apache Arrowの開発に参加している須藤です。現時点でapache/arrowのコミット数は1位です。私はRubyでデータ処理できるようになるといいなぁと思ってApache Arrowの開発に参加し始めました。同じような人が増えるといいなぁと思ってなにか試したりしましたが、あいかわらず、今でも実質1人でApache ArrowのRuby対応をしています。何度目かの「もっと仲間を増やさないと!」という気持ちになったので、最近の活動を紹介して仲間を増やそうと試みます。

今、Apache Arrow 18.0.0がリリースされかけているんですが、リリースもがんばっていることを思い出したので紹介します。なお、18.0.0もDependabotくんほどではないですが結構がんばりました。

https://arrow.apache.org/release/18.0.0.html

$ git shortlog -sn apache-arrow-17.0.0..apache-arrow-18.0.0
  113	dependabot[bot]
   65	Sutou Kouhei
...
$ git shortlog -sn --group=trailer:signed-off-by apache-arrow-17.0.0..apache-arrow-18.0.0
   137	Sutou Kouhei
...

もっと読む

PostgreSQLがPGroongaのインデックスを使ってくれないときのチェックポイント

こんにちは、PGroongaの開発やサポートをしている堀本です。

この記事では、PGroongaのインデックスを設定しているにも関わらず、 シーケンシャルサーチで検索が実行されてしまう時に確認すべきポイントを紹介します。

PGroongaはPostgreSQLで高速に全文検索するための拡張ですが、 PGroongaのインデックスを設定しているのに、検索が速くならないことがあります。

色々な原因が考えられるのですが、よくあるケースとしては PostgreSQLがPGroongaのインデックスを使用せず、シーケンシャルサーチで検索が実行されていているケースです。

以下では、なぜシーケンシャルサーチが選択されるのか、PGroongaのインデックスを選択して 検索を実行するにはどうしたらいいかを解説します。

最初に、シーケンシャルサーチで検索が実行されているかどうかを確認します。 その後に、シーケンシャルサーチで検索が実行される原因とその解決方法を4つ記載します。

もっと読む

Apache ArrowでAzure Blob Storage上のデータを読み書き

Apache Arrowの開発に参加している須藤です。現時点でapache/arrowのコミット数は1位です。私はRubyでデータ処理できるようになるといいなぁと思ってApache Arrowの開発に参加し始めました。同じような人が増えるといいなぁと思ってなにか試したりしましたが、あいかわらず、今でも実質1人でApache ArrowのRuby対応をしています。何度目かの「もっと仲間を増やさないと!」という気持ちになったので、最近の活動を紹介して仲間を増やそうと試みます。

1年とか半年とか前の話になりますがAzure Blob Storage関連のこともがんばっていたことを思い出したので紹介します。

もっと読む

GroongaでANN検索(HNSWアルゴリズム)への道2: USearchに入門と調査

USearchに入門中の阿部です。

入門することにした経緯などはUSearchに入門する準備をご覧ください。

ということで、前回に入門する準備をしたので今回は入門したいと思います。

記事に登場するコード例はmain-devブランチの113a7862f80bf2eb347c559da8487c4be05a5cc4時点のコードを利用しています。

もっと読む