Kindle Paperwhite向けに自炊pdfを最適化する

id:halfrackKindle Paperwhiteのタワーを作っていたので、Kindle Paperwhite向け自炊pdfの最適化をしてみました。
f:id:halfrack:20121011205048j:image:w200

Kindle Paperwhite向けの自炊pdf最適化は、

  • 余白を適切に削除すること
  • 画像を最適なサイズである横658ドット x 縦905ドットにすること

の2つが大事です。特に後者が重要で、デバイスごとに最適なサイズにすることでpixel by pixelで表示することができます。ちなみに、これまでのKindleでは横560ドット x 縦735ドットが最適でした*1

調査には1ピクセルごとに線を入れたpdfを作成して行いました。このpdfでは、ページごとに画像サイズを1ピクセルずつ変えていて、最適な解像度ではない場合、綺麗に一様な模様にならず、すぐに分かります。これでちょっとずつ探りながら最適なサイズを探すわけです。地道ですね。実際に試したい場合は、使ったpdfをkindle_paperwhite_resolution.pdfに置きましたのでどうぞ。作成スクリプトは https://gist.github.com/3892964 にあります。

Kindle Paperwhite向けに最適化されたのがどれぐらい綺麗かというと、
f:id:stanaka:20121016002842j:image:w200 f:id:stanaka:20121016002841j:image:w200
ぐらい違います。いずれも元pdfは同じで、左がKindle4(最適化済)、右がKindle Paperwhite(最適化済)です。「聖職」に注目すると、文字の細かい線がKindle Paperwhiteのほうがはっきりしていますね。

次は最適化するためのツールが欲しい、ということで、Kindle向けのpdf最適化を行うツールの中から Kindlizer( https://github.com/tdtds/kindlizer )からforkして、https://github.com/stanaka/kindlizer で手を入れてKindle Paperwhite向けにできるようにしました。ただただしさん、ありがとうございます!

Kindlizerの解説や詳しい使い方は、 http://d.hatena.ne.jp/kamosawa/20111116 にあります。
Macでは依存ツールはbrewでざくざく入ります。

brew install sam2p
brew install imagemagick
brew install pdftk
brew install poppler --with-glib

popplerはオプション無しではビルドに失敗した(OSX 10.7.4, XCode 4.5.1)のですが、"--with-glib"をつけたら成功しました。rakeは既に入っていますよね。当然です。

fork版はオリジナルからは以下の変更を加えています。

  • Rakefileをハードコードされていた元pdf(SRC)やマージン(TOP, BOTTOM, LEFT, RIGHT)、サイズ(SIZE)、階調(LEVEL)を引数で指定可能にした
  • 元pdfのファイル名が空白などを含んでいても処理可能にした
  • sample.pdf → sample.out.pdf と変更されていたファイル名のout部分を変更可能にした(POSTFIX)
  • i文庫向けに"[著者名] タイトル.pdf"というルールのファイル名を"タイトル.out.pdf"にしつつ、AUTHORのメタデータを書き換えるようなオプション(UPDATE_METADATA)を新設した

これを使って、Kindle Paperwhite向けの最適化を実行するには、元ファイルをsample.pdfとして用意して、

rake SIZE="658x905"

と一発でいけます。

複数ファイルを対象としたい( & 美白化したい & マージンの調整をしたい & 著者名をメタデータに入れたい)時も

for i in ~/book/*;do rake SRC=$i LEVEL='0%,93%,0.7' TOP=100 UPDATE_METADATA=1 POSTFIX=kindle; rake clean SRC=$i; done

ワンライナーで一発でいけます。

では、快適なKindle Paperwhiteライフを!

Kindle Paperwhite

Kindle Paperwhite


Kindle Paperwhite 3G

Kindle Paperwhite 3G

追記(10/16 9:52)

コメントでjpegをzipしたものなら、リサイズもまともですよ!ということなので、Kindle4で試してみましたが、コントラストの調整ができなくて、ちょっと厳しそう。ページ数が出ないのもナビゲーション的に厳しいですね。あと、Paperwhiteではjpegのzipファイルは認識してくれなかったので、サポート外になったのかもしれません。(同じzipでKindle4では見れました)
f:id:stanaka:20121016095141j:image:w200

追記 2(10/16 10:17)

Kindle Paperwhiteでのスクリーンショットの撮り方は、

All you have to do to take a screenshot is tap the upper left corner and lower right corner at the same time. Or you can tap the upper right corner and lower left corner at the same time.

http://blog.the-ebook-reader.com/2012/10/08/kindle-paperwhite-tips-how-to-take-screenshots-and-remove-recommended-ebooks/

ということで、右上と左下を同時にタップ、もしくは左上と右下を同時にタップで、ルートディレクトリにPNGファイルが生成されます。

*1:参考: http://non-non-chan.blogspot.jp/2010/10/kindle-3-2.html

データベースのモダンな使い方を知りたい人のための「Webエンジニアのためのデータベース技術[実践]入門」

「Webエンジニアのためのデータベース技術実践入門」を献本いただきました。著者の松信さんはMySQLの専門家で、これまでも数々の良書を執筆されています。ここ1,2年でデータベースの設計や運用の考え方は大きく進化したのですが、そのあたりが分かり易く解説されており、期待を裏切らない良本でした。

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

Webエンジニアのための データベース技術[実践]入門 (Software Design plus)

目次は松信さんのブログエントリにありますが、データベース技術の背景にある考え方から、具体的な概念、MySQLでの実践的な運用、データベースに適したハードウェアの特性まで記述されており、Webアプリケーションエンジニアはこの一冊を読んでおけば、必要な知識の相当部分が得られます。

データベースの設計や運用の考え方は、ここ1、2年でのハード性能の大幅な向上やクラウドの普及など外部環境の変化により、前提条件が大幅に変化しています。また、MySQLのバージョンアップにより、パーティションテーブルが実用的になり、スキーマ設計の考え方も進歩しています。実際、現場で新人に教える時にもこれまでのMySQL関連本では、内容が古くなっていると感じるところが多々あります。

松信さんの「Webエンジニアのためのデータベース技術実践入門」で特に良いなと思ったのは、

  • SQLやインデックスなどのデータベース設計に必要な知識
  • SSDによるIO性能の向上による効果や、その性能の引出し方
  • ウェブサービスの現場で使われている運用の考え方
  • リレーショナルデータベース以外のデータベースの概略や利点

あたりについて分かり易く書かれているところです。ウェブアプリケーションエンジニアがモダンなデータベースについて深く知りたくなった時に、スムーズに全体を把握することができそうです。ちなみに、中でもMySQLの内部構造やソースコードの読み方まで書かているのは、松信さんの真骨頂でなかなか他では読めないので、非常に面白かったです。

今週金曜(3/9)発売とのことですので、データベースについてもう一歩知りたいエンジニアの方にお勧めします。

無限串こと、串カツぼての食べ放題にいってきた

串カツぼて

食べログ串カツぼて

先月ぐらいから、社内で急速に流行っている「無限串」こと串カツぼての食べ放題を体験してきました。

「無限串」というニックネームは、ただひたすらに目の前に置かれる串を食べる、というところから来ています。メニューは固定、串が置かれるタイミングも固定。席に座るとドリンク以外注文することもなく次々と串が置かれ、ただ止めるタイミングだけを指定できます。店内の客全員が同じ串カツを同じペースで食べ続けなければならない、という状況に身を置くのが醍醐味です。

ジャンクフードイーターとしては、この挑戦を受けるべく、約2時間、メニューを2順強、計74本の串を食べてきました。食べ放題\1,800と、コストパフォーマンスも高く、ジャンク好きなら、是非一度試してみることをお勧めします!

メニューはちょっとずつ変化しているらしいので、2012/2/12のスナップショットを以下に記録しておきます。

  • チーズ
  • たこ
  • 長芋
  • ミンチカツ
  • 那須
  • ごまなまふ
  • たけのこ
  • マグロとネギ
  • ハムとポテト
  • ささみのしそ巻き
  • こんにゃく
  • 甘エビ
  • アスパラ
  • 貝柱
  • ベビーオニオン
  • ヒレ
  • サーモン
  • おもち
  • うずらのたまご
  • 舞茸
  • 豚肉
  • ヤングコーン
  • うなぎ
  • 銀杏
  • 鶏葱
  • カボチャ
  • ソーセージ
  • イカ
  • エビとズッキーニ
  • ソーセージとししとう

ワイヤレスポータブルスピーカーのJAMBOXがLife Changingでオススメ

出張やちょっとした旅行に行った時のホテルや、週末の誰もいないオフィスで音楽が聞きたいなと思った時は、誰もいないのにわざわざイヤホンを使ったりしていたのですが、最近JAMBOXを買ってから、期待以上に気軽かつ良い音で音楽を楽しむことができて、Life Chaging感があるので、それを紹介します。これはいいガジェットですよ!

【国内正規品】 JAWBONE ポータブル Bluetooth ワイヤレス スピーカー Jawbone JAMBOX レッドドット ALP-JAM-RD

【国内正規品】 JAWBONE ポータブル Bluetooth ワイヤレス スピーカー Jawbone JAMBOX レッドドット ALP-JAM-RD

JAMBOXはざっくり言うと「Bluetoothによるワイヤレスポータブルスピーカー」なのですが、コンパクトさ、デザイン、使い勝手、音質が極めて高い次元でバランスされていて、ワイヤレスポータブルスピーカーにはこんな可能性があるのか!と思わせてくれるガジェットです。

大きいことを言えば、Sonyがウォークマンで音楽を外に持ち出せるようにし、AppleiPodで音楽ライブラリを持ち運べるようにしてくれ、JAMBOXは快適に音楽を聞く環境を運べるようにしてくれる、と言えるのではないでしょうか。いいガジェットを巡り会うと、ところ構わず人に勧めたくなりますが、JAMBOXはそんな魅力を持った製品だと思います。このエントリもそんな欲求の現れです。

JAMBOXはコンパクト

サイズは151 × 57 × 40mmで、500mlペットボトルより一回り小さいぐらい。サイトにある写真を見ると分かりますが、片手で余裕で捕めるサイズです。実際に持ってみると、見掛けの質感よりは多少重さを感じますが、327gと重すぎることはありません。これぐらいなら、軽い外出にも気軽に鞄に入れて、持っていけます。

http://www.trinity.jp/images/products/jambox_04.jpg

JAMBOXは使い易い

Bluetoothのペアリングという行為は、なかなかやっかいで、複数機器とのペアリングをスマートに解決してくれた機器を見たことがありませんでした。が、JAMBOXは複数機器を登録しておくだけで、スイッチをONした際に先着順で捕まえる、というシンプルかつ分かり易い方法で、直感的に使えるようになっています。今もiPhoneMacBookやその他の音楽データが入っているスマートフォンBluetoothを有効にするだけですぐに捕まえてくれています。この違和感の無さは、これまでに無い感覚ですね。

また、充電がKindleAndroid端末と同様のUSB マイクロB端子で可能、というのも汎用的でポイント高いです。いいガジェットなんだけど、充電端子が独自でごついACアダプタを持ち歩かないといけない!というのは悲しいですからね。

JAMBOXはデザインが良い

カラーは、黒、グレー、青、赤の4色が用意されていますが、断然赤が良いとのが私見です。附属している黒のカバーも質感が良く、非常に所有欲を満たしてくれますね。iPhone以降、ガジェットに求められるデザインレベルは、一段上がっていると思いますが、それに十分応えてくれています。

JAMBOXの音は(それほど)悪くない

僕はオーディオにうるさい方というわけではないですが、SHUREのSE530(数万円するイヤホン)を筆頭に、BOSE QuietConfort2を使ったり、Onkyoの10万ぐらいのコンポとスピーカーを買ったことがあるぐらいには音に気を使うけど、Losslessでエンコードするほどではない、という耳です。その耳で聞く分には、JAMBOXは悪くはない音を出していると感じます。

もちろん、このコンパクトなサイズ故に、最適なリスニングポジションが狭かったり、音の広がりに限界があったりしますが、生のiPhoneの音から比べれば、数倍上等の音を出してくれて、カジュアルに聞くには十分だと感じます。

(ここは感覚的な話ですが、JAMBOXの音を「素晴らしい音」と言うことはさすがにできませんが、このレベルの音に満足できない人は、現時点では、より重厚で面倒な手段(有線とか)を使うしかないと思います。)

JAMBOXでLife Changing!

昔はスピーカーに凝っていた時期もありますが、あちこちに引越しが多いこともあり、できるだけ身の回りの物を減らすようにしています。その影響もあって、家であっても存在感のあるでかいスピーカーを置く気にはなりません。なので、MacbookiPhoneの貧弱なスピーカーで我慢するか、あまり長時間付ける気にはならないイヤホンを使うか、という2択だったのでしたが、JAMBOXを買ってからは、どこに行くにもこれを持って行って、快適な音楽環境が手に中に!

出張や旅行に行く時、週末に人のいないオフィスに出社する時、もしくは長めにトイレに篭る時のmust-have!


箱も凝ってますね