2013-01-01から1年間の記事一覧

テンプレートクラスのメソッドをLD_PRELOADで上書きする

C++

動的にリンクされる共有ライブラリの挙動を変える方法として、有名なのがLD_PRELOADで事前に共有ライブラリをロードしておくことです。しかし、C++でテンプレートクラスの挙動を変更する必要があったのですが例があまり見当たらないので記録しておきます。

MinillaでModule::Build::XSUtilを使う

もう先週の話になりますが、拙作 Module::Build::XSUtilがサポートされたMinilla 0.7.0がリリースされました。 Module::Build::XSUtilとは? Module::Build::XSUtilはModule::Install::XSUtilと同等の機能をModule::Buildで実現するためのモジュールです。以…

YAPC::Asia Tokyo 2013に行ってきた

blogに書くまでがYAPCです。 ってことで、9/20, 21に慶應義塾大学日吉キャンパスで開催されたYAPC::Asia Tokyo 2013に行ってきました。今年も個人スポンサーとして参加です。個人スポンサー用のTシャツがイケてるので満足です。以下、ざっくりとした感想など…

Module::Build::Pluggable::XSUtil と Minilla の相性が悪いので Module::Build::XSUtil 作りました

Minillaを使い始めたのですが、MinillaとModule::Build::Plaggableは共にModule::Build::subclass()を使用していて、Module::Build::subclass()は多重に使えないという制約のため一緒には使えません。XSモジュールではModule::Build::Pluggable::XSUtilを使…

Digest::MurmurHash3::PurePerl released!

MurmurHash3をpure perlで計算する。Digest::MurmurHash3::PurePerlをCPANにリリースしました。もともと、Algorithm::HyperLogLog::PP用に作っていた murmur32( ) に murmur128() を加えて、独立したモジュールとしました。 CPANTestersでもいまのところ問題…

Hachioji.pm #29 に行ってきた

6/15に開催された Hachioji.pm #29 に行って来ました。今回のLTテーマは「ホスティング」でした。 自分のLT いつものごとくテーマ無視で、Digest::MurmurHash3::PurePerl(metacpan, github)を作ったときの、C言語からPure Perlへの移植に関する話をしました…

簡潔ビットベクトルライブラリを書いてみた

簡潔データ構造の勉強がてら、各種簡潔データ構造の核となる簡潔ビットベクトルを扱うC++ライブラリを書いてみました。GitHub - hideo55/cpp-HSDS: Succinct Data Structure Library Collection.Includes bit-vector/wavelet-matrix/trie. 簡潔データ構造と…

Doxygenで生成したドキュメントをGitHub Pagesで手軽に公開する方法

以前にもやったのにやり方忘れて調べ直したので、メモっときます。 gh-pagesブランチを作成 以下のコマンドでgh-pagesブランチを作成します。 $ git checkout --orphan gh-pages --orphanオプションで空の一切履歴のないブランチができます。以前は以下のよ…

CMakeでSSEが使えるか調べる

CMakeで、その環境でSSE命令が使えるかどうかを調べるモジュールを作りました。ベースはこれですが、マクロ化、SSE4.2対応、-msse4.1やーmsse4.2を使えないgcc 4.3未満の場合の対応を追加してます。あとは、CMakeLists.txtで以下のようにすればOKです。 INCLU…

Goはじめました

以前から興味はあったけど手を出していなかったGo言語ですが、Go 1.1のリリースで、64bit整数も使えるようになったことだし、そろそろやってみる事にします。当面の目標は今までC++で書いていたネットワークサーバ・プログラムをGoで書くことです。 環境構築…

Hachioji.pm #28 に行ってきた

5/11に開催されたHachioji.pm #28に行って来ました。 LT @moznion君が既にまとめてくれているので、そちらを見るといいと思います。Hachioji.pm #28 に行ってきました - その手の平は尻もつかめるさ 自分のLT Algorithm::HyperLogLogを--pureperl-onlyオプシ…

Node.js v0.11.0 以降におけるC++ Addon への影響

Node.js v0.11.0 で C++ Addon をコンパイルすると以下の様な warning が出るようになりました。 warning: 'New' is deprecated [-Wdeprecated-declarations] これは、Node.js v0.11.0 の V8 において V8::Persistent のメソッドで第1引数にv8::Isolateのイ…

CPANモジュールでサポートしていないOSのTest ReportをNA(Not Available)にする

CPANモジュールでサポートしていないOSのTest ReportをNA(Not Available)にしたい場合はMakefile.PLやBuild.PLで以下のようにする必要があります。 unless ($^O eq "MSWin32" || $^O eq "cygwin") { die "OS unsupported\n"; } CPAN Testersのツールは以下の…

Digest::SpookyHash released!

SpookyHash の Perl バインディング、Digest::SpookyHashをCPANにリリースしました。 SpookyHashとは JenkinsHash*1の作者として知られるBob Jenkinsによる128bitの非暗号論的ハッシュアルゴリズムです。特徴としては キーが短い(192byte未満)場合の最適化が…

Hachioji.pm #27 に行ってきた

4/6に開催された、Hachioji.pm #27に行って来ました。春の嵐と言った感じの天気でしたが15名(初参加3名)の参加者が集まりました。 自分のLT お題無視して、最近リリースしたCPANモジュールの紹介とそれに付随して多くのMurmurHashの実装がバイトオーダーを考…

多くのMurmurHashの実装がバイトオーダーを考慮していない

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

cpanfileを使うようにしたらTravis CIでテストがコケた件

cpanm(App::cpanminus)は1.6000でcpanfileをサポートしましたが、Travis CIでcpanfileを使用したモジュールのテストがコケるという現象が発生していました。 原因 --notestオプションが指定されると、cpanfileの on 'test' で指定されたモジュールがインスト…

Chiba.pm #2にいってきた

3/23に開催されたChiba.pm #2に参加して来ました。#1に続いての参加でしたが、今回もガチなトークからゆるふわなトークまであって非常に良かったです。全体的にDB関係の話が多くて「Chiba.pmではなくChiba.DBでは?」みたいな感じになってましたwChiba.pmは3…

Shipped Algorithm::HyperLogLog 0.01!

HyperLogLogアルゴリズムをPerlから使用するためのモジュール、 Algorithm::HyperLogLogをCPANにリリースしました。 XSモジュールですが、XSが使えない場合はPure Perlでも使えるように作ってあります。 HyperLogLog とは? HyperLogLogは、ある集合の異なり…

MetaCPANで++してくれた人を探す

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

Hachioji.pm #26 に行ってきた

2/23に開催されたLike a ハッカソン #5 (pre Hachioji.pm #26)及び、Hachioji.pm #26に行って来ました。 Like a ハッカソン #5 (pre Hachioji.pm #26) 久しぶりのHachioji.pmハッカソンでした。前回が去年のYAPC::Asiaの前だから約半年ぶりとなりました。今…

Any::Mooseやめた

FormValidator::Lite::Constraint::MooseでAny::Mooseを使っていましたが、Any::Mooseはdeprecatedってことで使うのをやめました。今後、Mouseの型をFormValidator::Liteで使いたい場合は、FormValidator::Lite::Constraint::Mouseを使用してください。 use …

Hachioji.pm #25に行ってきた

1/19に開催されたHachioji.pm #25に行って来ました。場所はもはやお馴染みとなったタイ料理屋のタイラーンナーでした。 本イベントは主に東京西部、神奈川西部のエンジニアの交流を目的としたものです。 だったはずが、名古屋やら大阪からもやってくる、よく…