Hatena::ブログ(Diary)

WebService::Blog->new( user => ’hide_o_55’ )

2015-02-01

Hachioji.pm 46で「Goを書いてたら、いつのまにかアセンブリを書いてた話」をしてきた

1/31に開催された Hachioji.pm #46に行ってきました。

Goを書いてたら、いつのまにかアセンブリを書いてた話

Goで最適化のためにアセンブリ書いた話をしました。

スライド

https://github.com/hideo55/go-popcount

参考:Goアセンブラ入門 - The Go Programming Language

追記:GoでPopCountやってるパッケージはすでに他にもあるけど、POPCNT使えて、かつPopCount単機能で使えるのが無かったので書きました。

LT

他の人の LTの雑なメモです。

  • @xtetsujiさん
    • 透過的に例外をキャッチ
      • ENDだとだめ
  • @tsucchiさん
    • DBの自動再接続
  • @ichigotakeさん
  • @akira1908jpさん
  • @mackee_wさん
  • @karupaneruraさん
  • @uzullaさん
    • PSR-7
  • @moznionさん
    • DBIx::TransactionManagerを参考にししてJaveに移植
      • Javaのtry-with-resource
  • @maka2_donzokoさん
    • Kichijoji.pmでやった話
    • iThread

2014-09-16

Hachioji.pm #43 に行ってきた

9/13に開催された Hachioji.pm #43 に参加してきました。

今回の参加者は10名。うち初参加3名でした。

LT

以下、雑なLTのメモです。

自分のLT

LOUDS-Trieの話をしました。

資料

2014-09-01

YAPC::Asia 2014で自然言語処理について発表してきました。

YAPC::Asia 2014 で 自然言語処理を支える技術 〜要素技術とPerlの活用〜 というタイトルで発表してきました。発表はペース配分を間違えて、時間切れになってしまい、見に来て頂いた方々には申し訳ないです。

発表資料は以下です。

ビギナー向けという位置づけなので、確率の数式などは出さないようにしています。

感想

今年は前夜祭から参加しましたが、非常に楽しかったです。

今回はPerl以外のトークが多かったですが、それが結果的にこれまで YAPC に参加してこなかった人を呼ぶ結果になり、そういった方々に Perl の文化を伝えるきっかけになったのではないかと思います。

なにはともあれ、yusukebeさんを始めとするスタッフの皆様、参加者のみなさまお疲れ様でした!

Chiba.pm

後夜祭的な感じでHUBで飲んでいたのですが、Chiba.pmな方々がいたので主催者多忙のためしばらく開催できていなかったChiba.pmについて話し合ったりできてよかったです。

ちなみに、Chiba.pm #5 は 10/11(土) に市川市文化会館で開催です。

過去のATND を見ていただくとわかりますが、今回の YAPC のスピーカーもなにげに参加してたりするので、お近くの方は参加してみてはどうでしょうか?

2014-07-22

YAPC::Asia 2014 に応募したトークが繰り上げで採択されました

Rejectされていた トークがキャンセルが発生したために繰り上げで採択されました。

自然言語処理を支える技術 〜要素技術とPerlの活用〜 - YAPC::Asia Tokyo 2014

ということで、8/29(金) 15:00から多目的教室2で発表しますので自然言語処理に興味のある方はよろしくお願いします。

2014-07-20

LOUDS Trie ライブラリを書いた

C++ で LOUDS Trie を扱うライブラリhsds::Trieを書きました。

hideo55/cpp-HSDS ? GitHub

LOUDS Trieとは?

Level-Order Unary Degree Sequence という木構造を表現するデータ構造を利用したTrie木です。

Space-efficient Static Trees and Graphs

hsds::Trie の機能

現在は以下の機能をサポートしています。

  • 木のノードレベルでの探索(traverse)
  • 完全一致検索(exactMatchSearch)
  • 共通接頭辞検索(commonPrefixSearch)
  • クエリ文字列を接頭辞に含む全てのキーを列挙(predictiveSearch)
  • ノードIDからキー文字列の復元(decodeKey)
  • Trieのファイル書き出し、読み込み、mmap
  • TAIL配列の圧縮

特に、traverse は私のユースケースでは重要なのですが、tx-trie、ux-trie 等のLOUDS Trieの実装では提供されていませんでした。

なお、hsds::Trieでは内部で使用する簡潔ビットベクトルの実装として、以前作成した簡潔ビットベクトルライブラリを採用しています。

パフォーマンス

しっかりしたベンチマークはまだとっていませんが、ランダム文字列の共通接頭辞検索でux-trieの3倍以上の速さでした。

これは使用している簡潔ビットベクトルの速度の差によるものと考えています。