O'Reilly本が災害支援で半額になっているのでAmazon売上ランキングでリストしてみた


O'Reilly本が災害支援で半額になっている(被災者支援キャンペーン‎)
http://d.hatena.ne.jp/qaz76/20110323/1300894521
ので、
ISBNのリスト
https://www.oreilly.co.jp/ebook/
をecs.amazonaws.jpに食わせたレスポンスを
"/ItemLookupResponse/Items/Item/SalesRank"
順にリストしてみたww


これでどれを買うか決められるv

Top10

全リストは後半で...

SalesRank |ISBN          |Title
----------+--------------+------------------------------
       816|    4873114799| プログラマが知るべき97のこと
      1708|    487311456X| Android Hacks ―プロが教えるテクニック & ツール
      3894|    4873113989| Arduinoをはじめよう (Make:PROJECTS)
      4644|    4873114268| 実践ハイパフォーマンスMySQL 第2版
      8994| 9784873114293| ソフトウェアアーキテクトが知るべき97のこと
      9093| 9784873113852| Subject To Change ―予測不可能な世界で最高の製品とサービスを作る
      9794|    4873113911| JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
     10175| 9784873113746| C#クックブック 第3版
     13952| 9784873113296| JavaScript 第5版
     14248|    4873114535| Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS)

コード

そこはかとなくJavaで...

package com.amazon.associates.sample;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;

public class EbookSalseRank {

	public static void main(String[] args) throws MalformedURLException,
			Exception {
		Map<String, String> params = new HashMap<String, String>();

		params.put("Service", "AWSECommerceService");
		params.put("Operation", "ItemLookup");
		params.put("IdType", "ISBN");
		params.put("SearchIndex", "Books");
		params.put("ResponseGroup", "Medium");

		SignedRequestsHelper srh = new SignedRequestsHelper();

		DocumentBuilder builder = DocumentBuilderFactory.newInstance()
				.newDocumentBuilder();
		XPathFactory factory = XPathFactory.newInstance();
		final XPath xpath = factory.newXPath();

		List<Document> list = new ArrayList<Document>();

		for (String isbn : new String[] { "4873110505", "4873110610",
				"4873110637", "4873110785", "4873110793", "4873110998",
				"487311134X", "4873111471", "4873111544", "487311165X",
				"4873111714", "4873111811", "4873111978", "4873112125",
				"487311215X", "4873112222", "4873112265", "4873112281",
				"487311232X", "4873112346", "4873112354", "4873112370",
				"4873112389", "4873112435", "487311246X", "4873112516",
				"4873112524", "4873112540", "4873112567", "4873112575",
				"4873112664", "4873112680", "4873112702", "4873112729",
				"4873112737", "4873112753", "4873112796", "4873112818",
				"4873112826", "4873112842", "4873112850", "4873112869",
				"4873112885", "4873112893", "4873112907", "4873112915",
				"487311294X", "4873112990", "4873113008", "4873113024",
				"4873113032", "4873113059", "4873113067", "4873113075",
				"4873113083", "4873113091", "4873113105", "4873113113",
				"4873113121", "9784873112763", "9784873112770",
				"9784873113135", "9784873113159", "9784873113166",
				"9784873113173", "9784873113210", "9784873113234",
				"9784873113241", "9784873113258", "9784873113265",
				"9784873113272", "9784873113289", "9784873113296",
				"9784873113302", "9784873113319", "9784873113326",
				"9784873113333", "9784873113340", "9784873113364",
				"9784873113371", "9784873113418", "9784873113425",
				"9784873113432", "9784873113456", "9784873113463",
				"9784873113487", "9784873113494", "9784873113500",
				"9784873113524", "9784873113531", "9784873113548",
				"9784873113555", "9784873113562", "9784873113586",
				"9784873113593", "9784873113616", "9784873113623",
				"9784873113630", "9784873113654", "9784873113661",
				"9784873113678", "9784873113692", "9784873113708",
				"9784873113715", "9784873113722", "9784873113739",
				"9784873113746", "9784873113760", "9784873113814",
				"9784873113821", "9784873113838", "9784873113845",
				"9784873113852", "9784873113869", "9784873113876",
				"9784873113883", "9784873113890", "9784873113906",
				"9784873113913", "9784873113920", "9784873113937",
				"9784873113944", "9784873113951", "9784873113968",
				"9784873113975", "9784873113982", "9784873113999",
				"9784873114002", "9784873114026", "9784873114033",
				"9784873114101", "9784873114125", "9784873114132",
				"9784873114156", "9784873114163", "9784873114170",
				"9784873114194", "9784873114200", "9784873114224",
				"9784873114231", "9784873114248", "9784873114255",
				"9784873114262", "9784873114279", "9784873114286",
				"9784873114293", "9784873114309", "9784873114316",
				"9784873114323", "9784873114347", "9784873114354",
				"9784873114385", "9784873114408", "9784873114439",
				"9784873114446", "9784873114453", "9784873114460",
				"9784873114477", "9784873114507", "9784873114514",
				"9784873114521", "9784873114538", "9784873114569",
				"9784873114583", "9784873114590", "9784873114606",
				"9784873114620", "9784873114644", "9784873114651",
				"9784873114668", "9784873114675", "9784873114682",
				"9784873114699", "9784873114712", "9784873114729",
				"9784873114767", "9784873114774", "9784873114798" }) {
			params.put("ItemId", isbn);
			String content = getContent(new URL(srh.sign(params)));
			list.add(builder.parse(new InputSource(new StringReader(content))));
		}

		Document[] docs = list.toArray(new Document[list.size()]);
		Arrays.sort(docs, new Comparator<Document>() {
			@Override
			public int compare(final Document o1, final Document o2) {
				int i = 0;
				try {
					i = Integer.parseInt(xpath.evaluate(
							"/ItemLookupResponse/Items/Item/SalesRank", o1))
							- Integer.parseInt(xpath.evaluate(
									"/ItemLookupResponse/Items/Item/SalesRank",
									o2));
				} catch (Exception e) {
					throw new RuntimeException(e);
				}
				return i;
			}
		});

		System.out.println("SalesRank |ISBN          |Title");
		System.out.println("----------+--------------+------------------------------");
		for (Document doc : docs)
			System.out
					.format("%10s| %13s| %s\n",
							xpath.evaluate(
									"/ItemLookupResponse/Items/Item/SalesRank",
									doc),
							xpath.evaluate(
									"/ItemLookupResponse/Items/Item/ItemAttributes/ISBN",
									doc),
							xpath.evaluate(
									"/ItemLookupResponse/Items/Item/ItemAttributes/Title",
									doc));
	}

	private static String getContent(URL url) throws Exception {
		StringBuffer sb = new StringBuffer();
		HttpURLConnection con = null;
		BufferedReader br = null;
		try {
			con = (HttpURLConnection) url.openConnection();
			con.setRequestMethod("GET");
			br = new BufferedReader(new InputStreamReader(con.getInputStream(),
					"UTF-8"));

			String s;
			while ((s = br.readLine()) != null) {
				sb.append(s);
				sb.append("\r\n");
			}
		} finally {
			if (br != null)
				br.close();
			if (con != null)
				con.disconnect();
		}

		return sb.toString();
	}
}

うわっ・・・私のコード、使い捨てっぽ過ぎ?
www

byうわっ・・・メーカー
http://park14.wakwak.com/~tsuyoshi/uwa/uwa_maker.html



SignedRequestsHelperはこのヘンから
http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?AuthJavaSampleSig2.html


全リスト

SalesRank |ISBN          |Title
----------+--------------+------------------------------
       816|    4873114799| プログラマが知るべき97のこと
      1708|    487311456X| Android Hacks ―プロが教えるテクニック & ツール
      3894|    4873113989| Arduinoをはじめよう (Make:PROJECTS)
      4644|    4873114268| 実践ハイパフォーマンスMySQL 第2版
      8994| 9784873114293| ソフトウェアアーキテクトが知るべき97のこと
      9093| 9784873113852| Subject To Change ―予測不可能な世界で最高の製品とサービスを作る
      9794|    4873113911| JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
     10175| 9784873113746| C#クックブック 第3版
     13952| 9784873113296| JavaScript 第5版
     14248|    4873114535| Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS)
     14259|    4873114683| jQueryクックブック
     14715|    4873114721| iOS SDK Hacks ―プロが教えるiPhoneアプリ開発テクニック
     15171|    4873113733| Head First JavaScript ―頭とからだで覚えるJavaScriptの基本
     17203|    487311313X| 詳解 Linuxカーネル 第3版
     20229|    4873114713| 言語設計者たちが考えること
     20611| 9784873112916| PHP Hacks ―プロが教えるWebプログラミングテクニック
     22921|    4873114586| クラウド セキュリティ&プライバシー ―リスクとコンプライアンスに対する企業の視点
     25633|    4873113482| プログラミングGauche
     27490|    4873113075| エンジニアのための時間管理術
     29634|    4873112753| データベース実践講義 ―エンジニアのためのリレーショナル理論 (THEORY/IN/PRACTICE)
     30383|    4873114276| 初めてのPerl 第5版
     32716|    4873114691| 初めてのプログラミング 第2版
     35274|    4873114454| Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
     36256|    4873114128| オープンソースソフトウェアの育て方
     36591|    4873114772| Make: Electronics ―作ってわかる電気と電子回路の基礎 ((Make:PROJECTS))
     39250|    4873114500| 正規表現クックブック
     39580|    4873113598| 詳説 正規表現 第3版
     40622|    4873114179| iPhone SDK アプリケーション開発ガイド
     43505|    4873114357| 並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング
     43992|    4873113431| 詳解 MySQL
     46001|    4873113814| Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
     46035|    4873114314| オプティマイジングWebサイト ―SEO・サーバ・クライアントの最適化技術
     48209| 9784873114408| 実用Git
     48660| 9784873111476| RADIUS―ユーザ認証セキュリティプロトコル
     51227|    4873113210| Google Hacks 第3版 ―プロが使うテクニック & ツール 100選
     51903|    4873113679| 初めてのRuby
     57755|    4873114764| 検索と発見のためのデザイン ―エクスペリエンスの未来へ
     58255|    4873113164| デザイニング・インターフェース ―パターンによる実践的インタラクションデザイン
     60177|    4873112990| アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法 (THEORY/IN/PRACTICE)
     61864|    4873114284| アルゴリズムクイックリファレンス
     64504|    4873114039| リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法
     64869|    4873112575| 初めてのPHP5
     66300|    4873112885| Binary Hacks ―ハッカー秘伝のテクニック100選
     68748|    4873113636| ビューティフルコード
     70025|    4873110637| C++プログラミング入門
     71294|    4873114136| 詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識
     73854|    4873113539| RESTful Webサービス
     77429|    4873113822| Windows PowerShellクックブック
     78369|    4873112850| Windowsサーバークックブック ―ネットワーク管理者のためのレシピ集
     79986| 9784873113005| Perlベストプラクティス
     83763|    4873113288| IPv6 エッセンシャルズ 第2版
     84640|    4873113091| WSHクイックリファレンス 第2版
     89366| 9784873111346| Web情報アーキテクチャ―最適なサイト構築のための論理的アプローチ
     93020| 9784873112770| 入門 GNU Emacs 第3版
     93840|    4873111544| UMLデスクトップリファレンス
     93882|    4873113725| Prototype & script.aculo.us ―JavaScriptライブラリによるAjaxアプリケーション開発
     94179|    4873114527| セマンティックWeb プログラミング
     94864| 9784873113944| プログラミング言語 Ruby
     97540|    4873114624| iPhone/iPadゲーム開発ガイド ―Objective-Cで作る2D/3Dゲーム
     99215|    4873113377| Mind パフォーマンス Hacks ―脳と心のユーザーマニュアル
     99260|    4873113938| 初めてのPython 第3版
    100190|    4873113113| スケーラブルWebサイト
    101576|    4873114306| ビューティフルアーキテクチャ
    102433|    4873114209| Head First Statistics ―頭とからだで覚える統計の基本
    103315|    4873114381| Head First Rails ―頭とからだで覚えるRailsの基本
    104408|    4873110793| 不正アクセス調査ガイド―rootkitの検出とTCTの使い方
    104664| 9784873113951| アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング
    105861|    4873113652| 初めてのPHP & MySQL 第2版
    106342|    487311425X| 初めてのJavaScript 第2版
    109545|    4873112818| 初めてのSQL
    110788|    487311361X| ハイパフォーマンスWebサイト ―高速サイトを実現する14のルール
    117319|    4873112842| UML2.0クイックリファレンス
    120617|    4873113253| JavaScriptクイックリファレンス
    122608|    4873112222| PDF Hacks ―文書作成、管理、活用のための達人テクニック
    122963|    487311232X| CSS完全ガイド 第2版
    124919|    4873113490| Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本
    124925|    4873114101| デザイニング・ウェブナビゲーション ―最適なユーザーエクスペリエンスの設計
    128668| 9784873113586| Ajaxアプリケーション & Webセキュリティ
    128713|    4873113415| Google Maps Hacks 第2版 ―地図検索サービスをもっと活用するテクニック
    130710|    4873113172| 入門 UML 2.0
    133102|    4873113105| Head Rush Ajax ―学びながら読むAjax入門
    136234|    4873113849| Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)
    136685|    4873112826| 入門Webマッピング ―自分で作るオリジナルのデジタル地図
    137625|    4873114675| JavaによるRESTfulシステム構築
    138901|    4873113873| 詳説 ActionScript 3.0
    141685| 9784873110998| SAN & NASストレージネットワーク管理
    150529| 9784873113692| Head First SQL ―頭とからだで覚えるSQLの基本
    151106|    4873112567| Apacheセキュリティ
    153148|    4873113458| イノベーションの神話
    153333|    4873113059| 続・初めてのPerl 改訂版
    153718|    4873114438| Head Firstネットワーク ―頭とからだで覚えるネットワークの基本
    154302| 9784873113661| インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践
    155611|    4873113717| 初めてのActionScript 3.0 ―Flashユーザーのためのステップアップガイド
    158660|    4873112796| Head First Java 第2版 ―頭とからだで覚えるJavaの基本
    161112|    4873113997| キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置
    162858|    4873113423| プログラミングPHP 第2版
    163357|    4873113970| マスタリングPerl
    168535|    4873112761| Python クックブック 第2版
    170929|    4873114519| セキュリティの神話
    171766|    4873113628| Linuxシステムプログラミング
    172708|    4873114004| Railsデプロイ
    174222| 9784873113272| ネットワークセキュリティHacks 第2版 ―プロが使うテクニック & ツール 100+
    176906|    4873114349| デザイニング・ウェブインターフェース ―リッチなウェブアプリケーションを実現する原則とパターン
    185297|    4873113881| Tomcatハンドブック 第2版
    188012|    4873113962| プログラミングC# 第5版
    190186|    4873114462| 続・ハイパフォーマンスWebサイト ―ウェブ高速化のベストプラクティス
    193274|    4873114640| Head Firstデータ解析 ―頭とからだで覚えるデータ解析の基本
    194419|    4873112540| 入門bash 第3版
    195600|    4873113067| Linuxサーバ Hacks 2 ―コネクティング、モニタリング、トラブルシューティング
    197553|    4873114195| Silverlightで開発するデータ駆動アプリケーション
    199371|    4873113334| Ajax&JavaーJavaプログラマのためのAjaxプライマー
    202182|    4873113563| Rubyスクリプティングテクニック ―テスト駆動による日常業務処理術
    206680|    4873114020| プロダクティブ・プログラマ -プログラマのための生産性向上術
    207996|    4873114446| Head First PHP & MySQL ―頭とからだで覚えるWebアプリケーション開発の基本
    209220|    4873112869| 入門PHPセキュリティ
    210337|    487311215X| Hibernate (開発者ノートシリーズ)
    211479|    4873114594| ビューティフルセキュリティ
    214618|    4873112265| Windowsサーバー Hacks ―管理者必携のテクニック & WSHスクリプト 100選
    215696|    4873114152| Adobe AIR クックブック ―プロフェッショナルに学ぶRIAプログラミングの実践
    215781| 9784873112350| Flash Hacks ―プロが教えるテクニック&ツール100選
    217363|    4873114225| 組み込みLinuxシステム構築 第2版
    219530|    4873114233| Real World Haskell―実戦で学ぶ関数型言語プログラミング
    221519|    4873113520| 初めてのFlash Video
    229075|    4873113903| DNS & BIND 第5版
    232727|    4873114241| アート・オブ・アプリケーション パフォーマンステスト
    233398|    4873113083| 802.11無線ネットワーク管理 第2版
    234009| 9784873113548| ネットワークウォリア ―戦う管理者のための知識とテクニック
    236150|    4873112893| Asterisk ―テレフォニーの未来
    239762|    487311389X| ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション
    241002|    4873113466| Linuxシステム管理
    243056|    4873113024| Web解析Hacks ―オンラインビジネスで最大の効果をあげるテクニック & ツール
    248752|    4873112281| Knoppix Hacks ―カスタマイズとシステム管理のテクニック
    250591|    4873110610| Javaネットワークプログラミング 第2版
    256072|    4873113326| Ajax on Rails
    259383|    4873114608| アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得
    261361|    4873113555| インテル スレッディング・ビルディング・ブロック ―マルチコア時代のC++並列プログラミング
    270759|    4873113865| 実践 Rails ―強力なWebアプリケーションをすばやく構築するテクニック
    271210|    4873112389| Word Hacks ―プロが教える文書活用テクニック
    273565|    4873114667| プログラミングF#
    277361|    4873112516| LinuxデスクトップHacks ―プロが教えるテクニック&ツール100選
    279600|    4873112729| プレファクタリング ―リファクタリング軽減のための新設計 (THEORY/IN/PRACTICE)
    282938|    4873112907| 詳説 ビジネスプロセスモデリング ―SOAベストプラクティス (THEORY/IN/PRACTICE)
    292037|    4873113261| CとGNU開発ツールによる組み込みシステムプログラミング 第2版
    292584|    4873112524| MySQLクイックリファレンス
    293180|    4873113369| アート・オブ・SQL ―パフォーマンスを引き出すSQLプログラミング手法
    295815|    487311246X| GDBハンドブック
    299958|    4873114160| エンタープライズ Rails ―企業ユーザのためのWebアプリケーション設計術
    300308|    4873113318| SQL Hacks ―データベースを自由自在に操るテクニック
    305166|    4873113768| bashクックブック
    305266|    4873111811| Amazon Hacks 世界最大のショッピングサイト完全活用テクニック100選
    305402|    4873113156| SQLクックブック ―データベースエキスパートのための実践レシピ集
    312203| 9784873112664| Podcasting Hacks ―構成、録音、発信の必須テクニック
    324583|    4873113709| JavaScript & DHTMLクックブック 第2版 ―Webエキスパート必携テクニック集
    331356|    4873114322| ウェブアプリケーションのためのユニバーサルデザイン
    333882| 9784873112732| Jakarta Strutsクックブック
    334064|    487311330X| Linuxカーネル クイックリファレンス
    340056|    4873111978| JavaServer Faces完全ガイド
    341237|    4873114659| Erlangプログラミング
    360339|    4873113245| Rubyクックブック ―エキスパートのための応用レシピ集
    365951|    4873112370| Linuxハンドブック ―機能引きコマンドガイド
    366864| 9784873112947| 初めてのC# 第2版
    375635|    4873113830| Head First C# ―頭とからだで覚えるC#の基本
    382941|    4873113237| Ajaxデザインパターン ―ユーザビリティと開発効率の向上のために
    383632|    4873110505| 入門Perl DBI
    388502|    4873114470| マスタリングXMPP
    390028|    487311392X| Head Firstソフトウェア開発 ―頭とからだで覚えるソフトウェア開発の基本
    391406|    4873113121| Railsレシピ
    403808|    4873113032| C++クックブック
    423939|    4873113342| エンタープライズSOA ―ビジネス革新実現に向けたITデザイン
    431524|    4873110785| NFS&NIS 第2版
    438615|    4873113504| Web 2.0ストラテジー ―ウェブがビジネスにもたらす意味
    443760|    4873112680| JBoss (開発者ノートシリーズ)
    491177|    4873112125| Google―電網打尽のインターネット掌握術 (THE MISSING MANUALシリーズ)
    502384|    4873112702| Maven (開発者ノートシリーズ)
    559425|    4873112346| Mono (開発者ノートシリーズ)
    591413|    4873112435| ブラウザ選択の時代を読み解く
    612265|    487311165X| ActionScriptデスクトップリファレンス
    953714|    4873111714| Excelポケットガイド


関連リンク
http://internet.watch.impress.co.jp/docs/news/20110323_434606.html
http://www.oreilly.co.jp/editors/archives/2011/03/deal-of-the-days-support-disater-relief.html?utm_source=oreilly.co.jp=rss10
http://m.japan.cnet.com/#story,35000837

Enjoy!