ククログ(6)

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時点のコードを利用しています。

もっと読む

いざというときに備えてWindowsのイベントログを収集・保存しておく方法

システム管理者にとって、セキュリティインシデント発生時など、原因究明・問題解決のために必要な情報をすばやく収集・分析する必要があります。

Windowsにおいては、イベントログが監視や監査という観点からは重要なログといえるでしょう。 Windowsイベントログにもいくつか種類があり、セキュリティ監査の観点からはアカウントの ログオン等の情報が得られるので、Windowsのセキュリティイベントログが保存されていると有用です。1

そこで、まだそこまでしくみを整備できていない人のために、今回はいざというときに備えてWindowsのセキュリティイベントログを収集・保存しておく方法を紹介します。

  1. Windowsのセキュリティイベントログの内容は、グループポリシーの監査ポリシーや、フォルダの監査設定によってもかわってきます。推奨される監査ポリシーは監査ポリシーの推奨事項 を参照してください。

もっと読む

Apache Arrowで統計情報

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

統計情報関連のこともがんばっていたことを思い出したので紹介します。

もっと読む

JRubyでもApache Arrowを使いたい?

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

そのために選んだ話題がJRubyなのはちょっとアレな気もしますが、最近「がんばったな!」という気持ちになったのがこれだからしょうがない。

もっと読む

debやrpmの中身を一部書き換えてパッケージを再作成する方法

開発したソフトウェアを簡単に導入してもらえるようにするための工夫として、debやrpmといったパッケージを用意し、パッケージを含むリポジトリから インストールできるようにするということがよく行われています。

debやrpmといったパッケージを提供する側にとっては、提供したパッケージを問題なく更新できるように、(パッケージの一部だけ変更したものを用意するなどして)パッケージ更新時の挙動を検証したくなることがあります。

今回はそんなときのために、debおよびrpmの内容を一部書き換えてパッケージを再作成する方法について紹介します。

もっと読む