2013-04-01から1ヶ月間の記事一覧

Rubyのレキシカル変数むずかしい

同じシンボルの参照でも、代入(宣言)前後で参照しているものがまったく違うものになるのがPerlと違って難しい。 class Base def initialize self.foo = "init" end def foo=(value) @foo = "<#{value}>" end def foo @foo end end class Derived < Base de…

META specのrequires, recommends, suggests

CPAN Meta Spec 2.0 における requires, recommends, suggests - tokuhirom's blog これみてもよくわからんなーと思っていたのです。特にrecommendsとsuggetsの違いが。ですが、それぞれ must, should, may に相当するといわれて合点がいきました。 window.t…

PerlIO::scalar でopenできるのはバイト列だけ!

Perl 5.18 からは、PerlIO::scalarでopenできるのはバイト列だけになるようです。wide characterを含んだスからリファレンスをopen()しようとしても警告と共にopen()が失敗します。perldialog: Strings with code points over 0xFF may not be mapped into i…

Ruby+Redisでランキングを実装してみる

Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog を自分がやったらこんな感じかなと思って書いてみました。実行環境はRuby 2.0.0-p0です。 #!/usr/bin/env ruby require 'redis' require 'pp' class Leaderboard class Entry attr_reader …

PUREPERL_ONLY=1 for pure Perl build

2013年のランカスター合意によれば、XS/PP両実装を持つモジュールは PUREPERL_ONLY=1 / --pureperl-only というコマンドラインオプションでXSをオプトアウトしたビルドをできるようにすべきだ、とのことです。そこで、Module::Install::XSUtil 0.44 では PUR…

Perlの m// は中身が固定文字列だと爆速になる

[追記] 実際に検証してみると、パターンが短いと index() のほう速いこともあるようです。パターンが長いと正規表現のほうが高速になるのでそもそもアルゴリズムが違うようですね。 よってこのエントリの内容は必ずしも正確ではありません! cf. https://gis…

Xamarin.Android で YouTubeAndroidPlayerAPI.jar を使ってみる

Xamarin.Android には Android用JARから.NETアセンブリを自動生成する機能があって、Mono.Android.dll を作る機能を一般化したものらしい。これで Google の提供する YouTube Android Player API を呼び出してみたところ、意外なほど簡単にできた。 https://…