2014/12/29

Oracle DBA & Developer Days 2014の資料を参照し易くする

11月26日〜27日に開催された Oracle DBA & Developer Days 2014 の資料が公開されました。とても濃い内容がコンパクトにまとまっていますので、一括ダウンロードして電子書籍リーダで参照する際に参考になるかも知れない情報を共有します。

資料ダウンロードページが公開!

少し前に講演者でもある @sora_to_umi さんが JPOUG Advent Calendar 2014 の記事として告知されていますね。 それよりも前に @sabotage さんが見つけられていましたね。

イベントページから資料を一括ダウンロード

同じ内容のセッションもありましたので PDF ファイルとしては 21 個ありますね。(Dセッションはハンズオン用のスクリプトとともに zip ファイルになっています)

% wget -O- 'http://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x14073486e5' 2>/dev/null | tee ./oddd2014.html | grep -E '\.(pdf|zip)' | cut -d'"' -f 6 | sort | uniq -c | nl
     1     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A1-1-print.pdf
     2     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A1-2-print.pdf
     3     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A1-3-print.pdf
     4     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A1-4-print.pdf
     5     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A2-1-print.pdf
     6     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A2-2-print.pdf
     7     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A2-3-print.pdf
     8     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/A2-4-print.pdf
     9     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B1-1-cohe.pdf
    10     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B1-2-print.pdf
    11     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B1-3-print.pdf
    12     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B1-4-print.pdf
    13     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B2-1-print.pdf
    14     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B2-2-print.pdf
    15     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B2-3-print.pdf
    16     1 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/B2-4-print.pdf
    17     2 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/C1-1-3-print.pdf
    18     2 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/C1-2-4-print.pdf
    19     4 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/C2-print.pdf
    20     4 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/D1.zip
    21     4 https://www.oracle.com/webfolder/s/delivery_production/docs/FY15h1/doc8/D2.zip
これを wget コマンドで再帰ダウンロードします。robots=off してしまっているので気持ち程度に待ち時間を 2 秒入れています。
% wget --wait=2 --execute robots=off --continue --recursive --level=1 --span-hosts --no-directories --domains='www.oracle.com' --accept '*.pdf' --accept '*.zip' 'http://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x14073486e5'
再帰ダウンロードに抵抗?がある場合は確認した URL の一覧からダウンロードします。
% cat ./oddd2014.html | grep -E '\.(pdf|zip)' | cut -d'"' -f 6 | sort | uniq | wget --wait=2 --continue --input-file=-
ダウンロード後、D セッションの資料は zip ファイルなので解凍します。
% ls -1 *.zip | xargs -n 1 unzip
Archive:  D1.zip
   creating: D1/
  inflating: D1/D1-print-script.pdf
  inflating: D1/D1-print.pdf
Archive:  D2.zip
   creating: D2/
  inflating: D2/D2-print-script.pdf
  inflating: D2/D2-print.pdf
この後の作業のため資料は同じ階層に移動します。
% mv D?/*-print.pdf .

OTN セミナーオンデマンドページから資料を一括ダウンロード

あとで気づきましたが 12/24 配信の Japan-OTN Newsletter でも資料公開について案内されています。

そこでは OTN セミナー オンデマンドという位置づけでイベントページとは別のページがあります。

微妙に HTML の構造などが違いますので、こちらから取得する場合を以下にまとめます。なおダウンロードファイルの sha1sum を見る限り D1/D2 以外の資料は同じものでした。

% wget -O- 'http://www.oracle.com/technetwork/jp/ondemand/ddd-2014-2377191-ja.html?evite=JPFM14052540MPP003' 2>/dev/null | tee ./oddd2014.html | grep -E '\.(pdf|zip).*<img' | cut -d'"' -f 4,6 | sed 's/_blank//' | tr -d '"' | sort | uniq -c | nl
     1     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A1-1.pdf
     2     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A1-2.pdf
     3     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A1-3.pdf
     4     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A1-4.pdf
     5     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A2-1.pdf
     6     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A2-2.pdf
     7     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A2-3.pdf
     8     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/A2-4.pdf
     9     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B1-1.pdf
    10     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B1-2.pdf
    11     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B1-3.pdf
    12     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B1-4.pdf
    13     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B2-1.pdf
    14     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B2-2.pdf
    15     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B2-3.pdf
    16     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/B2-4.pdf
    17     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/C1-1-3.pdf
    18     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/C1-2-4.pdf
    19     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/C2.pdf
    20     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/D1.zip
    21     1 http://www.oracle.com/webfolder/technetwork/jp/ondemand/ddd2014/D2.zip
% cat ./oddd2014.html | grep -E '\.(pdf|zip).*<img' | cut -d'"' -f 4,6 | sed 's/_blank//' | tr -d '"' | sort | uniq | wget --wait=2 --continue --input-file=-

表紙が(ほぼ)全てロゴ。。。

さてこれで資料はダウンロードできたので電子書籍リーダ(私の場合は iBooks)に入れて見るぞー!となりますが、ここ最近の Oracle さんの資料は1ページ目が企業ロゴであるためサムネイルからでは見たい資料がどれかパッとは分かりません。セッション番号から内容をいつまでも覚えているわけでもありませんし。。。

一部のページを削除する

ということで、個人使用なので電子書籍リーダに入れる資料は自分が見易いように少し加工します。

加工には qpdf コマンドを使用します。OSX 環境では homebrew、Debian GNU/Linux 環境では apt で導入できます。

次のようなスクリプトをダウンロードした PDF と同じディレクトリに cd している状態で実行します。

  • qpdf-output ディレクトリを作成してその下に変換後の PDF を作成します
  • 以下のページを削除
    • 表紙の Oracle ページ
    • 末尾のセミナー案内以降のページ
このスクリプトで作成された PDF を iBooks に取り込むとこのようになります。
これである程度マシになったのですが、同じレイアウトの表紙で文字が細かいですので、やはりここからタイトルを把握するのは少し難しいです。不明な著者という表示も気になります。

ファイル名をセッションタイトルにしてメタデータを埋め込む

せっかくなのでもうちょっと加工します。

PDF メタデータの操作には exiftool コマンドを使います。OSX 環境では homebrew でインストール出来ます。

次のようなスクリプトをダウンロードした PDF と同じディレクトリに cd している状態で実行します。

  • renamed ディレクトリを作成してその下に変換後の PDF を作成します
  • ファイル名を「セッション番号 セッションタイトル.pdf」に変更
  • PDF タイトルにセッションタイトルを設定
  • PDF 著者にセッション講演者名を設定
このスクリプトで作成された PDF を iBooks に取り込むとこのようになります。

おわりに

気になるセミナの資料などは電子書籍リーダに入れていつでも参照できるようにしていますが、公開資料で PDF ファイルのメタデータまで考慮しているものは多くないのかも知れません。

Good Reader などの汎用的なドキュメントリーダでは、セッション一覧 PDF ないしは HTML で PDF ファイルへのリンクを張って、それを取り込んで索引がわりに使用していましたが、OSX 上の iBooks では Adobe Reader で開くので PDF のローカルファイルへのリンクも辿れますが、iPad だとそれが出来ないようなのでどうしたものか考えていました。

そこまで無償で求めるのは高望みかも知れませんが、ぼんやりと講演者名やセッションタイトルで検索したいことがたまにありますので、個人使用用途として今回のように変換した PDF ファイルを使用しています。手順の整理も含めて公開してみました。

これで ODDD2014 でシバタツさんのセッションどれだっけ?というときにもサクッと検索で見つけることが出来るようになりました。

0 件のコメント:

コメントを投稿