読者です 読者をやめる 読者になる 読者になる

WHITELEAF:Kindle応援サイト

KindleでWEB小説を読もう! Narou.rb 公開中

Ruby で構造体もどき 続き

前回の続きBinData と比較するためにコードを作成。約1Mのモデルデータを読み込むコードです。BinData を使ったほうは2.5秒かかりました。自前の unpack ラッパーは約0.07秒。(PCスペックに左右されるので参考程度)BinData は柔軟な記述ができる代わりに、…

Ruby で構造体もどき

Ruby から離れていたのでリハビリがてらにちょろっとコードを書いてみた。 バイナリデータを扱う場合に unpack は使いづらい、だがしかし Gem の BinData とかを使うほど大げさでもない場合用。構造体もどきを定義して名前でアクセスできる、が、やっぱり使…

niconail.info 終了のお知らせ

告知が遅くなってしまいましたが、 niconail.info のサービスは終了いたしました。 3年間という長い間ご利用ありがとうございました。もともと、すべてのブログサービスにニコニコ動画のサムネイルをはることができるということが唯一にして最大の目標でした…

push or <<

Array に要素を挿入するメソッドは push ですが、 require "benchmark" Benchmark.bm { |bm| bm.report("push") { a = [] 5000000.times { |i| a.push(i) } } bm.report(" << ") { a = [] 5000000.times { |i| a << i } } } ruby 1.9.2dev (2010-04-27 trunk…

:"symbol"

気になったので他のパターンも。JRuby のための計測です。 require "benchmark" def test_symbol(sym) a = sym end Benchmark.bm { |bm| bm.report("(1)") { 10000000.times { test_symbol(:abc) } } bm.report("(2)") { 10000000.times { test_symbol(:"abc…

access hash

Hash をアクセスする際に Fixnum, Symbol, String を使う場合の比較です。Hash ではなく Array を使った結果もつけておきます。 require "benchmark" class Test def initialize @num_table = {} @sym_table = {} @str_table = {} @array = [] 100.times { |…

Server VM でも試してみました。オプションはよくわからないのでかたっぱしから速くなりそうなのを……。--fast はエラーが出てダメでした。 >jruby --server -v -J-Djruby.compile.frameless=true -J-Djruby.compile.position less=true -J-Djruby.compile.th…

ダブルクォーテーション or シングルクォーテーション

require "benchmark" Benchmark.bm { |bm| bm.report("double") { 20000000.times { a = "strings" } } bm.report("single") { 20000000.times { a = 'strings' } } } ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] user system total real double…

1liner?

require "benchmark" def f1 return false || true end def f2 true unless false return false end Benchmark.bm { |bm| bm.report("f1") { 20000000.times { f1 } } bm.report("f2") { 20000000.times { f2 } } } ruby 1.8.6 (2008-08-11 patchlevel 287) …

少しでも速くするために

こまか〜いことでも、意外と速度に響いてくることがよくあります。響かないときもあります。思いついたときに実際にベンチーマークを取ったものをこまめにメモっておくことにします。[Rubyベンチ]タグをつけておいて分かりやすいようにしておこう。

続 Min-in 駆動型ゲームライブラリ

前回は method_missing とか使ったりして、ヒドイもんだったけど今回はちょっと真面目(当社比) ライブラリが揃っていたと仮定して、ゲーム部分はこんな感じになりす。 require_relative "framework" require_relative "unit" require_relative "mixinlibra…

元ネタ:http://twitter.com/mirichi/status/16602971260 ここまで書いてわけわかんなくなったので終了。やりたい事と違う…… (ruby 1.9.1 以上が必要(たぶん)) require "dxruby" module MetaGame module Core @@initialize_parameters = {} @@handler_names …

元ネタ:http://twitter.com/hikaruna/status/16547039623 class Module def attr_class_accessor(name) eval(%Q( def self.#{name} @@#{name} ||= nil end def self.#{name}=(value) @@#{name} = value end )) end end class A attr_class_accessor :a end …

SFont

by http://d.hatena.ne.jp/mirichi/20100619/p1 (Twitter で reply したんだけど気づかれなかったようだ lol)更新。 てきとうなコードを書いた( http://twitter.com/mirichi/status/16531632255 )お詫び(?)にちょっと真面目に書いてみました。 Image#draw…

Ruby でゲーム

Ruby を覚えるために最初に作ったプログラムであるゲームをちょろっと公開してみる。Falling Tower Ruby http://ux.getuploader.com/whiteleaf/download/2/fall.zip名作 Falling Tower を Ruby で再現。実装は記憶のみで行ったために挙動はオリジナルとはか…

Fiber の評価

まだコードに組み込んで使ったわけじゃないんで実際の使用感ではないですが。 f = Fiber.new do 300000.times do Fiber.yield false end Fiber.yield true end t = Time.now until f.resume end puts Time.now - t ruby 1.9.1p378 (2010-01-10 revision 2627…

Fiber はGCに負荷がかかる

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/46901大量の Fiber は生成コスト自体は無視できるくらい軽いが、GC的には非常に重いらしい。 しかし500個程度の Fiber ならさほど重くないので実用的には問題はなさそうである。

ocra + Ruby/SDL

Ruby/SDL を ocra で exe 化した際にはまったのでメモしておきます。 (Ruby1.9.1を想定しています。1.8 なら exerb でいいんジャネ?)Ruby/SDL を使用したスクリプトを ocra で exe にまとめようとすると、 sdl_ext.so が見つからないというエラーが発生しま…

Ruby1.9速すぎワロタ

abstract method

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15841 こちらを書き直し class AbstractMethodCallError < NotImplementedError end class AbstractNotImplementedError < NotImplementedError end class Module @@_abstract_methods = {} def…

Ruby/SDLでウィンドウをセンターに

SDL にウィンドウを操作する機能が皆無なので、自分でやる必要があるようです。 # Windows 限定 require "Win32API" SWP_NOSIZE = 1 SM_CXFULLSCREEN = 0 SM_CYFULLSCREEN = 1 def window_align_center(width, height) get_active_window = Win32API.new("us…

はてなダイアリーがニコニコ動画のサムネイル貼り付けに対応

id:hatenadiary:20080306 (via id:marinba:20080307)というわけではてなダイアリーでの niconail.info 終了のおしらs(ry いつか対応するのは予想通りだったので、ニコニコ標準サムネイルじゃできないことをやって差別化をしていきましょうかね。ちなみに…

ニコニコ動画が外部プレイヤーに対応

niconail.info 終了のお知らせ('-')まぁさすがに紹介動画全部はりつけるわけじゃないだろうし、コメントできないしまだ需要はあるかも!?

サムネイルが表示されていなかった件について

今日は忙しくてまったく気づきませんでした orz とりあえず表示はできるように速攻で修正。ただしまだおかしいので今から直します・・・。 とりあえず前のには戻ったはず。 XMLのほうでやろうと思ったけど、今日朝はやいのであとでということで・・・。 TODO…

転送量が

転送量が 5G こえてtsikiiさんのところからすごいアクセスがww 普段もすでに1Gこえてた状態だったんですが、一気に膨れ上がりました。もしかしたらサーバの会社に文句言われるかも・・・?まぁ来るまで気にしない方向で

異常なアクセスが・・・

リクエスト件数 バイト (%) ホスト 8906 20.62% ***.cty-net.ne.jp なんだこれは・・・ リクエスト件数 URL 7924 http://blog122.fc2.com/control.php なぜコントロールパネルからこんなリクエスト件数になるんでしょうか('д`;) 明日も同じようだったらアク…

J(´ー`)し < niconail.info じゃなくて Niconail.info です

結構どうでもいい話

自分の所でしか宣伝してない Niconail.info ですが、地味に転送量が増えてきました。六日前と比べると約5倍です!12/17の時点でリクエスト数は1日12000、転送量は380MBほどです。 負荷はかかってなさそうですが、もう少し転送量を抑える工夫を考えたいと思い…

Niconail.info ちょっとバージョアップ

オプションで画像サイズを変更できるようになりました。最大サイズ700x700までいけるようにしてあります。デフォサイズに戻したい場合は隣の RESET を押してください。 あと img タグの alt 属性に動画のタイトルも入れるようにしました。オプションではずせ…

ニコニコ動画のサムネイルページのコードが変わった

ニコニコ動画のサムネイルページの、HTMLの記述がいつの間にか変わっていたようで、Niconail.info 側の解析失敗で一時的に表示にエラーが出ていました。現在は対応して正常に表示できています。ちなみに、変わったところは、スタイルシートをちょろっと変え…

Niconail.info ニコニコ動画サムネイルジェネレータ

excite ブログやはてなダイアリなどは、ニコニコの紹介用サムネイルが iframe タグを使っていてそのまま貼ることができないので、imgタグで表示できるように出力するやつを作ってみました。 a タグと img タグが使えるところならどこでも使えます。サンプル …

prototype.js 1.6.0RC1 リリース、Class と Event API の変更 etc

Prototype 1.6.0 RC1: Changes to the Class and Event APIs, Hash rewrite, and bug fixesRC0 から RC1 にしただけで手元のスクリプトが動かなくなったわけですが、DOMContentLoaded なイベントの名前が変更されたようです(ほかにも命名が変わってますが)…

imagefttext の オプション引数 extrainfo について

PHP

PHP で TrueType フォントの描画については、2種類の関数があります。それが imagettftext と imagefttext です。 両者共通するのが文字の描画間隔についての設定がまったくないということで、特に文字の左右の間隔の設定がないのが非常に困るわけですが、マ…

PHP4 で image_type_to_extension()

PHP

image_type_to_extension() という関数、PHP5 から実装されてるようなので、PHP4 でも使えるように。 "gif", IMAGETYPE_JPEG => "jpeg", IMAGETYPE_PNG => "png", IMAGETYPE_SWF => "swf", IMAGETYPE_PSD => "psd", IMAGETYPE_BMP => "bmp", IMAGETYPE_WBMP…

技術系の記事ははてなに移行します

exblogはだらだら書くのにはいいんだけれど、ソースコードが書きづらいったらありゃしない(゚д゚)!

Sleipnir から Firefox への乗り換えのために入れた拡張(アドオン)とかの覚書。

上から優先度高→低・Tab Mix Plus - タブ拡張。タブ幅設定やセッション管理、タブの保護・ロック、マウス操作等。必須 最近閉じたタブ というツールボタンも追加されたり便利・All-in-One Gestures - マウスジェスチャの再現に。必須・Text Link - リンクさ…