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

引数にメソッド追加してリテラル風にするんだったら

その後、色々考えていたらわざわざ専用クラスを作るような小難しいことは考えずにハッシュを作るようにしてそれを渡せば良いじゃん。って事に気づきました。 http://d.hatena.ne.jp/takkaw/20080721/p1 そこまでするなら、もういっその事インスタンス変数名…

要素がある場合はその値。ない場合はデフォルト値を使用

WebAPIでリクエストを取ってきてXMLから要素を取り出すときに、要素があったら〜と書くのがメンドクサイ。 doc = REXML::Document.new(xml) title = doc.elements["title"].text とかやってしまうと、〜がなかったときに nil に対して .text を行ってしまい…

マクスウェルの勝山

△<右から〜右から〜何かが来て〜る〜 ┌───┬───┐ │ │ │ │ │○三 │ │ │ │ └───┴───┘ △<僕は〜それを〜左へ受け流す〜 ┌───┬───┐ │ ┘ │ │ ○三 │ │ ┐パカッ │ └───┴───┘ (中略) △<左から〜右へは受け流さな〜い〜 ┌───┬───┐ │ │ │ │ 三○│ │ │ │ │ └───┴───┘

メソッドの引数をわかりやすくする手法?

matrix.rb見てたら面白い表現があった。 def Vector.[](*array) new(:init_elements, array, copy = false) end 他の場所では使ってないから多分間違いなんだと思うけど、これは使えるんじゃないか? ローカル変数copyに代入した結果(=false)が返るから引…

Stack Stock Booksブログパーツ for はてな更新

なんでズレるのかと思ったら、表示させるiframeがtableで包まれてたせいでした。 じゃあ、枠を重ねる設定にすればmerginを変化させるなんて泥臭い真似しなくてもおkじゃんっつーことで直しました。 http://gmodules.com/ig/creator?synd=open&url=http://is…

Stack Stock Booksブログパーツ for はてなをIEに対応させました

Stack Stock Booksの公式のブログパーツのサイズが微妙に合わなかったために始めたGoogleガジェット製作ですがついにIE対応といういや〜な仕事に入りました。 http://gmodules.com/ig/creator?synd=open&url=http://isaisstillalive.googlepages.com/igoogle…

Stack Stock Booksブログパーツ for はてなをバージョンアップしたよ

http://www.gmodules.com/ig/creator?synd=open&url=http://isaisstillalive.googlepages.com/igoogle_ssb_v1_2.xml モジュールタイトルを入力できるようになりました。汎用性いらない! あとは、表示方法をランダムと新しい順、古い順から選べるようになり…

もうCD買わなくていい! フリーの音楽サイト集

| ^^ |秒刊SUNDAY | もうCD買わなくていい!フリーの音楽共有サイト集45個に触発されてうちも知ってるサイトをまとめてみた。 ◆muzie ■http://www.muzie.co.jp/ →インディーズ音楽ならここ! ダウンできる曲数は日本最大級! ◆PIAPRO ■http://piapro.jp/ →…

RipSynchronizer更新+「えれくとりっく・えんじぇぅ」歌詞・リップデータ公開

mikuモード出力の時にダブルクォートがエスケープされないのは問題だったのでエスケープされるように修正しました。 RipSynchronizer v1.0.2 機能追加だったらv1.1になるはずですが不具合なのでv1.0.2です。断じて不具合です。今さらファイル編集するのが面…

Stack Stock Books for はてなサイドバー更新

http://d.hatena.ne.jp/isaisstillalive/20080620/1213939270で作ったやつを。他のデザインに対応させて更新しました。 http://www.gmodules.com/ig/creator?synd=open&url=http://isaisstillalive.googlepages.com/igoogle_ssb_v1_1.xml Skin CSSにはてなダ…

歌詞コンバートツール、ミクSkinリップシンクツール更新

tie2さんに紹介してもらいました! それは良いんですが、Rubyのエラーメッセージ出しちゃいました。 エラーチェックが緩いのは認識していたのですが、その出力をサボったせいです。 なので、もう少しちゃんとしたエラーメッセージを吐くようにしました。 Lyr…

iGoogleでStack Stock Booksのブログパーツを作ってみた

あのユルさがとても良い蔵書管理サービス、Stack Stock Books。公式のブログパーツはあるんですが、デザインがあまりに異なるので設置するのは躊躇してました。 単純にrdfを取ってきて整形するだけだからJavaScriptでできるよなー。と思って作ってみたものの…

ビートで記述された歌詞ファイルを秒にコンバートするツール

を作ったので公開。 中身はRubyだけどexerbで実行ファイル化してるのでWindows専用です。あとコマンドライン専用です。 LyricConverter v1.0 {0.0}一小節目(4分音符0個) {4.0}二小節目(4分音符4個) これを lrcconv --bpm=60 --offset=-0.5 lyric.txt…

Rubyでの多次元Hashあるいはツリーの作成法 完結篇

初期化時に末端を指定する必要性があまり感じられなかったので、なら初期化の定義を再帰させれば次元を設定する手間も省けるなーとか思って考えてみると…… def mdhash node = nil node = Hash.new{ |hash, key| hash[key] = node.dup } node.dup end /(^o^)…

ひらがなで書かれた歌詞ファイルを口パクデータにコンバートするツール

前のと組み合わせると初音ミク WMP Skinが素敵に歌います。 こちらも前と同じくRuby+exerbでWindows専用です。 RipSynchronizer v1.0 あいうえおー かきくけこー これを ripsync --bpm=60 --offset=-0.5 --frame-wait=0.1 rip.txt > rip.rip とかすることで …

Rubyでの多次元Hashの作成法

あるいは深さを指定したツリーの作成法。なんかセオリーがあるのかなと思って探してみたけど、次元数が可変な作成方法は見つからなかった。 試行錯誤しながら作ってたらなんか結構短くなったので公開。 dimension = 3 nodes = [] nodes << {} # 末端Hash (di…

やっとはてなダイアリーのルールに慣れてきた気がする

初日は新しい記事を下に書いちゃったりしたけど、ブログモード表示だったら上に書くほうが正しいよね多分。 あと前の記事では小見出しも使ってみた。これで見やすくなったかな?

Rubyでの多次元Hashの作成法 2 : 修正とクラス化

スコープを意識しながらよく見直してみるとなんか無駄にArrayに格納してることが判明。ってかなんでこんな事してたんだ俺wよりスマートになった感じ。 dimension = 3 node = {} # 末端Hash (dimension-1).times do current = node node = Hash.new{ |hash, …

sort.reverseとsort_by{ |val| -val }の速度差 2

前回のだと、sortは正数の比較でsort_by{-val}は負数の比較なのでもしかしたらそれで何かあるのかなと思い、より条件を公平にするために初期値を-5.0〜5.0までの0.1刻みにしてみることにした。 require "benchmark" array = Array.new(101){ |index| (index-…

sort.reverseとsort_by{ |val| -val }の速度差

色々気になったので試してみた。 require "benchmark" array = Array.new(100){ |index| index }.sort_by{ rand } array1 = array.dup array2 = array.dup array3 = array.dup Benchmark.bm(16) do |bm| bm.report("sort.reverse "){ 1000.times{ array1.sor…

「憂鬱な勇者」をゲーム的に作ってみた。

http://d.hatena.ne.jp/hrkt0115311/20080527/1211891558 で公開されてたのが面白そうなのでやってみた。 # 冒険者クラス class Adventurer attr_accessor :name attr_reader :level def initialize name self.name = name @level = 0 end def battle_with m…

こげこげ堂本舗の消失

すっかり放置プレイだった本舗がいつの間にか無くなってました。 ドメイン更新するの忘れるほどだったのでその放置っぷりも押して知るべしです。 とりあえずしばらくはてなを間借りしてみることにしました。 これで俺も一流技術者の仲間入りだぜ! こんなこ…