今まではてなマップにクリップしたあれこれを全部一覧にして見てみたい

一度に 20 個しか見られないので ruby でプログラム書いてみたんだけど。
こうですか?こうですか?わかりません*1!
緯度と経度をどう扱えばいいのやら。これPla? (過去の日記に追記したので結城浩さんより先に使い始めたように見えてしまう)

#!/usr/bin/ruby -Ku
require 'net/http'
require 'rss/2.0'
require 'cgi'
$name = 'sample' # ここに適当な ID を
Net::HTTP.version_1_2

def itemlist(http,maxX,minX,maxY,minY)
    responce = http.get("/#{$name}/rss?maxX=#{maxX}&maxY=#{maxY}&minX=#{minX}&minY=#{minY}")
    rss=RSS::Parser.parse(responce.body)
    if rss.channel.items.size>=20
        i1=itemlist(http,maxX,0.5*(maxX+minX),maxY,0.5*(maxY+minY))
        i2=itemlist(http,maxX,0.5*(maxX+minX),0.5*(maxY+minY),minY)
        i3=itemlist(http,0.5*(maxX+minX),minX,maxY,0.5*(maxY+minY))
        i4=itemlist(http,0.5*(maxX+minX),minX,0.5*(maxY+minY),minY)
        return i1 | i2 | i3 | i4
    else
        return rss.channel.items
    end
end

Net::HTTP.start("map.hatena.ne.jp",80){|http|
    items = itemlist(http,180,-180,90,-90)
    $data = items.to_a.sort {|a,b|
        a.pubDate <=> b.pubDate
    }
}

puts <<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>List of Hatena Map</title>
</head>
<body>
END
puts "<p>#{$data.size} clips</p>"
puts "<dl>"
$data.each {|item|
    print "<dt><a href=\"#{item.link}\">#{CGI::escapeHTML(item.title)}</a></dt>"
    if item.categories.size > 0
        print "<dd>"
        item.categories.each {|cat|
            print "<a href=\"http://map.hatena.ne.jp/t/#{CGI::escape(cat.content)}\">#{CGI::escapeHTML(cat.content)}</a>,"
        }
        print "</dd>"
    end
    if item.description != nil
        print "<dd>#{CGI::escapeHTML(item.description)}</dd>"
    end
    print "\n"
}
puts "</dl>"
puts "</body></html>"

*1:出力のマークアップが適切かとか安全なのかとかコーディングスタイルとか