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に行って来ました。場所はもはやお馴染みとなったタイ料理屋のタイラーンナーでした。 本イベントは主に東京西部、神奈川西部のエンジニアの交流を目的としたものです。 だったはずが、名古屋やら大阪からもやってくる、よく…

PlackでREPL付きエラー画面

Rails4に間に合うか、REPL付きエラー画面「Better Errors」がイイ感じ:Rails Hub情報局:エンジニアライフPlackでもREPL付きのエラー画面を出せるMiddlewareは既にあります。それが、Plack::Middleware::InteractiveDebuggerです。エラー発生時に以下のよう…

Hachioji.pm #24に行ってきた

12/1に開催されたHachioji.pmに行って来ました。今回はレトロなゲーム機/コンピュータの話とかSFの話、ヱヴァの話とかで盛り上がってました。 自分のLT テーマは無視して、最近やったこととして、node-murmurhash3のWindows8対応の話をしました。スライド LT…

groongaを囲む夕べ3に行ってきた

11/29に開催された、groongaを囲む夕べ3に行って来ました。最近ArangoDBに浮気気味だったんですが、groonga 2.0.9の新機能、そしてgroongaの今後は、「また、groongaやるか!」と決意させるに十分な魅力があると思います。なんか知らんうちに、関連プロジェ…

Module::Build期が来てる

いま自分の中で空前のModule::Build期が来てます。先日リリースしたArangoDBについてもModule::Buildを使用しています。さらに、Do not ship modules with Module::Install 1.04 – Tatsuhiko Miyagawa’s Blogこの件で、改めてModule::Installをバンドルする…

Chiba.pm #1 に行ってきた ( #chibapm )

10/20(Sat)に開催されたChiba.pm #1に行って来ました。ほとんどPerlを触ったことがないという方も、近くでやっているということで来てくれたようです。 今回はじめてLTをやったという人もいたので、こうして発表する人の裾野を広げていけるといいですね。千…

ArangoDB client for Perl released!

I released ArangoDB client for Perl.https://metacpan.org/release/ArangoDBThis module is supporting the following features. Collection Document Edge Index(Hash / Skip-List / Geo / Cap Constraint) Simple Query (all / by_example / first_examp…

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

9/27・28・29に開催されたYAPC::Asia Tokyo 2012に参加してきました。今年はメインのトークを聞きに行くより、LTthonの会場付近にいることが多かったです。 LTthonは事前登録された方以外に飛び入りLTがたくさんあって面白かったです。 各トークの感想など …

Takao.mt 2012(Hachioji.pm #19)に行ってきた

7/28(SAT)にTakao.mt 2012に行って来ました。 Takao.mtは夏限定でHachioji.pmとして高尾山のビアガーデンに飲みに行く企画です。いや〜今年のTakao.mtは暑かった。本当に蒸し暑かった。でも、おかげでビールがめちゃくちゃ美味かったです。 LT 去年もそうだ…

npmのプライベートレジストリをつくる

npmのプライベートレジストリを作ってみたので手順をメモっときます。環境はOSX 10.7.4です。 1.CouchDBをインストール お好みの方法でCouchDBをインストールします。今回はHomebrewで入れました。 $ brew install couchdb $ couchdb -V couchdb - Apache Co…

npmのメタデータとか

new.npmjs.orgで自分がリリースしたパッケージ(これとか)を見てみたら、ドキュメント(Read me)が表示されるものと、されないものがあって気になったので、npmとnpm-wwwのソースを読んでみました。まず、Read meの情報を表示する箇所を調べました。 https://g…

Rubyのヒアドキュメント

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…

Underscore.jsを置き換えるLo-Dashがよさげ

underscore.jsを置き換える、Lo-Dashが0.4.xになってだいぶ良さげになってたのでメモ。Lo-Dashはunderscore.jsを置き換えるため、パフォーマンスの向上、バグの修正、機能の追加が施されている。 Chromeでベンチマークを見てみたら、メソッドによっては200% …

コードの行数カウント

コードの行数のカウントツールはいろいろありますが、コマンドラインツールでは CLOCが対応言語が多く、なおかつPerl製なので自分でいじるのも楽ってことで使ってます。ただ、この手のツールで扱いに困るのが、拡張子が無かったり、拡張子では言語が特定でき…

Problem about exception handling without RTTI

C++

OSXにおいて、node-kyteaでlibkytea側でthrowされたstd::runtime_errorをキャッチできないという問題があり、はまってました。原因は、node-gypが生成するMakefileに -fno-rttiが記述されていることでした。 Linuxのgccでは問題ないのですが、OSXのgccで以下…

Hachioji.pm #18に行ってきた

今回で19回目となる Hachioji.pm #18 に行ってきました。今回のお店は 南米ペルー料理 MISKY(八王子/ブラジル料理) - ぐるなび でした。相変わらず美味しかったです。 自分のLT 今回のテーマは「JavaScript関連」ということで、Mosho.jsの話と、Quick…

nodebrewのbash補完関数を書いた

nodebrewのbash用補完関数を書いて、pull-requestしましたマージされました。Add bash completion by hideo55 · Pull Request #16 · hokaccha/nodebrew · GitHubzshの補完では ls-remote の結果をキャッシュしています*1が、bashではキャッシュ処理を自前で…

Node v0.7.10 での child_process.spwan() の変更

Nodeの v0.7.10 で child_process.spawn() のオプションに変更がありました。いままでは、spwanで起動した子プロセスで既存の親プロセスのstdin/stdout/stderrを使う場合は、以下のようにしていましたが、Node v0.7.6 で customFds は Deprecated とされてお…

PocketIO on docCloud

Hachioji.pmで作ってる Yairc(仮) の関係で、PocketIO(Socket.IOのPerl版)をdotCloudで動かす方法を調べました。 dotCloudでPocketIOを動かすには dotCloudでは本家Socket.IOが動きますし、WebSocketのサポートがアナウンスされていたので動くだろうとは思っ…