2022年12月13日のブックマーク (2件)

  • キャッシュによるRubyの正規表現のマッチングの高速化の紹介 - クックパッド開発者ブログ

    9月からRuby開発チームにインターンシップとして参加している@makenowjustです。 総合研究大学院大学の学生で、普段は情報セキュリティに関する研究をしています。 インターンシップでは、キャッシュ (メモ化) を利用したRubyの正規表現の高速化を行いました。 ReDoSと呼ばれる、バックトラックが爆発することでマッチング時間が膨大になる脆弱性があります (ReDoSについては、拙作ですがWEB+DB PRESSに掲載された記事があります)。 近年、ReDoSは多く報告されており、Rubyもその例外ではありません (参考1、参考2)。 今回実装した最適化は、ReDoSを防ぐことを目的としたもので、多くの正規表現のマッチング時間が文字列の長さに対して線形となります。 ReDoSが起こる正規表現の例として、/^(a|a)*$/が挙げられます。 今回の修正の前後での実行時間を比較すると、

    キャッシュによるRubyの正規表現のマッチングの高速化の紹介 - クックパッド開発者ブログ
  • 頭が高い 朕のちんちん 控えおろう 夏井「これは本当に良い句で。素直に..

    頭が高い 朕のちんちん 控えおろう 夏井「これは当に良い句で。素直に読むとね、皇帝なのかな?王様なのかな?大国の権力者が、側近なのか、それとも参賀に詰め掛けた国民に対する勅言なのか。とにかく下々の者たちを集めて、自らの権威を誇示している。それも、これは男性器を誇示しているように思われる。やはり限界まで充血して屹立し、どくんどくんと脈打っているのか。それとも、平常の状態のものをぶらんと無造作に揺らしているのか。いずれにしても、どういう状況なのかな?どっちなのかな?って読者が想像する余地があるのね。ここに豊かさがある」 フワちゃん「これ季語なくない?」 夏井「音の面から見ても、朕とちんちんで韻を踏んでいる。ちんちんはそもそもちんが重なっているので、ちんちんちんでトリプルちんなのね。これがまた妙味を醸している。すこしコミカルな感じがしますでしょ?状況からしても、どこかユーモラスな空気がある。そ

    頭が高い 朕のちんちん 控えおろう 夏井「これは本当に良い句で。素直に..