2013年12月19日木曜日

情報セキュリティ設計に役立ちそうなPCI DSS(Payment Card Industry Data Security Standard)の参考資料



  1. PCI (Payment Card Industry) DSS (Data Security Standard)とは

  2. PayPalのサイトより引用


    PCI (Payment Card Industry) DSS (Data Security Standard)とは
    PCI DSSは、American Express、Discover Financial Services、JCB International、MasterCard Worldwide、およびVisa Inc. International によって規定された、支払いアカウントデータのセキュリティを強化するための一連の包括的要件です。これは、世界的規模で一貫したデータセキュリティ対策を普及するために開発されました。American Express、Discover、JCB、MasterCard、あるいはVisaの支払いカード情報を処理、保存、または送信するマーチャントはすべて、PCI DSSにしたがう必要があります。



  3. 5分で絶対に分かるPCI DSS

  4. @ITの記事がよくまとまっていてわかりやすい。
    クレジットカード情報や個人情報保護等、情報セキュリティに対する具体的な実装の基準として採用される傾向にある。


  5. PCI Standards & Documents · Documents Library

  6. 本家サイトから以下の日本語ドキュメントがダウンロードできる。

    Payment Card Industry(PCI)データセキュリティ基準 要件とセキュリティ評価手順 バージョン 3.0
    PCI(Payment Card Industry)ペイメントアプリケーションデータセキュリティ基準 要件とセキュリティ評価手順 バージョン 3.0


  7. IPA(独立行政法人情報処理推進機構)

  8. IPAが公開しているドキュメントも参考になる。

    脆弱性検査と脆弱性対策に関するレポート
    ウェブサイトにおける脆弱性検査の紹介(ウェブアプリケーション編)
    ※オープンソースの脆弱性検査ツールからタイプ別に「OWASP ZAP(Zed Attack Proxy)」「Paros」「Ratproxy」のツールの使い方や検査手順を紹介している。
    大企業・中堅企業の情報システムのセキュリティ対策~脅威と対策~


  9. JPCERT

  10. JPCERTコーディネーションセンターが公開しているドキュメントはコーディングレベルで参考になる。

    セキュアコーディング
    HTML5 を利用したWeb アプリケーションのセキュリティ問題に関する調査報告書


2013年12月11日水曜日

VMWare vSphere 5.xで使用するネットワークポート番号



  1. Network port diagram for vSphere 5.x (2054806)

  2. 上記からダウンロードできる「NetworkPortDiagram-vSphere5x-ReferenceTable-v2.pdf」が視覚的には一番わかりやすい。
    2013/12/11現在、vSphere 5.1系までで、5.5には対応していない。

  3. TCP and UDP Ports required to access vCenter Server, ESXi/ESX hosts, and other network components (1012382)

  4. VMWare製品間の「Source/Target」がわかりやすい。
    2013/12/11現在、vSphere 5.1系までで、5.5には対応していない。

    日本語訳もあるが、更新日付(Updated)はだいぶ古いので、最新情報は英語版の記事を参照した方がいい。
    vCenter Server、ESX ホスト、およびその他のネットワーク コンポーネントにアクセス用の TCP および UDP ポート一覧 (1000589)

  5. ESXi および vCenter Server 5.5 のドキュメント - vSphere セキュリティ - vSphere ネットワークのセキュリティ強化 - ファイアウォールによるネットワークのセキュリティ強化

  6. 「VMware vSphere 5.5 ドキュメント センター」のファイアウォール環境下での「TCP および UDP ポート」の一覧。
    vSphere 5.0、5.1、5.5間でも差異があるため、上記資料との差分を参照するといい。

    英語版であれば、「?lang=en」
    日本語版であれば、「?lang=ja」
    末尾につければ、言語を切り替えられるっぽい。

2013年10月24日木曜日

仮想化基盤のシステム設計の英語表記に使えそうなコンピューター略語/ドキュメント

    仮想化基盤のシステム設計をする際に、英語の略称の統一感を出すのに迷うので、今後はこの辺を参考にしていきたい。


  1. コンピュータ略語
  2. List of computing and IT abbreviations
    コンピュータ略語一覧
    コンピューター略語・IT略語辞典 : 翻訳のためのインターネットリソース


  3. VMWare - stencil
  4. VMware View Visio Stencil Download
    New VMware Icons Visio Stencil Download
    Veeam Stencils for VMware and Hyper-V
    The Unofficial VMware Visio Stencils


  5. VMWare - 用語集・ドキュメント
  6. VMware Technical Publications Glossary
    VMware の主なドキュメント セット
    VMTN Best Practices


  7. AWS - stencil
  8. AWS Simple Icons for Architecture Diagrams


  9. AWS - ドキュメント
  10. AWS アーキテクチャセンター
    AWSクラウドデザインパターン
    「Obama for America」のAWSのクラウドのアーキテクチャ


  11. Citrix - stencil
  12. Citrix Infrastructure Visio Stencil Set


  13. Citrix - 用語集・ドキュメント
  14. Citrix Glossary
    Citrix eDocs


  15. MS - stencil
  16. Microsoft Visio シェイプ & ツール集
    Windows Server 2012 Visio stencil
    Hyper-V,SCVMM-Vision Stencil
    SCCM 2012 Visio Stencils
    Windows Azure Symbol/Icon Set


  17. MS - 用語集
  18. ランゲージ ポータル


  19. RedHat - 用語集
  20. Red Hat Glossary
    Red Hat Enterprise Linux - Managing Smart Cards - Glossary

2013年10月16日水曜日

Windows7 64Bit上のVagrant+VirtualBox+CentOS6.4で、GitLabインストール

    CentOS 6.4 用の GitLab 自動インストールスクリプトを書いた
    で公開されている、以下のインストーラーを実行するだけで動作した。

2013年9月27日金曜日

Windows7 64Bit上でVMWarePlayer+ESXiインストール

    VMWarePlayer上で、ESXiを動かすことができることを知ったので、メモ。
    自PC上で、手軽にVMWareベースの仮想環境の検証をするにはいいかも。


  1. VMWarePlayer・ESXiの資材ダウンロード

  2. My VMWare(要アカウント登録)にログインし、「My VMware Downloads All Downloads」から

    VMware vSphere Hypervisor (ESXi)
    VMware Player
    VMware-PowerCLI

    をダウンロードする。

    VMware ESXi5.1検証 第2回目 ダウンロード編が参考になる。


  3. VMWarePlayer・ESXiのインストール

  4. 何か記事を書こうと思ったけど、以下の参考資料を参照すれば、拍子抜けするほど簡単にインストールが完了した。

    VMware ESXi5.1検証 第3回目 ESXiインストール編
    "VMware vSphere Hypervisor 5.1(ESXi) on VMware Player"で、できたこと
    【仮想】VMware vSphere 5.1環境を構築してみよう


  5. PowerCLIのインストール・サンプル

  6. コマンドラインから、ホスト(ESXi)・ゲスト(仮想マシン)の操作をしたい場合は、PowerShellベースのPowerCLIを使えばいい。

    VMware PowerCLI で自動化を試す
    第4回 PowerCLIを使った仮想化の自動運用
    Sample Scripts for Managing vSphere with VMware vSphere PowerCLI
    VMware vSphere PowerCLI Cmdlets Reference
    VMware vSphere™ PowerCLI

  7. OSインストールの自動化

  8. OSインストールの自動化まで踏み込むのであれば、RHEL/CentOS系のLinuxであれば、kickstartを採用すればいい。

    [[linux:インストール自動化:kickstart]]
    ■ Linux を自動インストールする方法 (Kickstart)
    第32章 キックスタートインストール

2013年9月13日金曜日

selenium-webdriver(webdriver-firefox-esr-previous.dll)をrubyから実行時に、Norton Internet Securityのウィルス警告

    以下の構成で実行した際に、Symantecの検疫に引っかかった。
    ・Windows7 SP1 64Bit
    ・ruby 2.0.0p247
    ・Norton Internet Security(20.4.0.40)
    ・selenium-webdriver-2.35.1で、ブラウザ起動に「:firefox」を指定。

    Symantecの検疫ログは以下のとおり。
    Symantec公式に、2013/9/13時点で日本語の情報はまだ無い。
    Suspicious.Cloud.7.EP

    「Suspicious.Cloud」自体は、新種のマルウェアの脅威を検出するためのシリーズっぽい。
    Suspicious.Cloud

    「Selenium」のメーリングリストやチケットだと、既知事象のようだ。特に問題はなさそう。
    Selenium Users › Suspicious.Cloud.7.EP
    Issue 6120: Virus warning (Suspicious.Cloud.7.EP) in webdriver-firefox-esr-previous.dll

    会社で使おうと思ったのに残念。
    無害でも検出されると面倒なので、職場で試さなくてよかった。

2013年9月10日火曜日

Windows7 64Bit上でVeewee+Vagrant+CentOS6.4インストール

    以下のサイトを参考にさせていただいた。
    Veewee による Vagrant の Box 作成環境構築 Windows 版 その1
    Veewee による Vagrant の Box 作成環境構築 Windows 版 その2


    Vagrantの基本的な操作については、Windows7 64Bit上でVagrant+CentOS6.4インストールで記載済みのため、割愛する。


  1. VirtualBoxのインストール
  2. Download VirtualBoxから、最新版(2013/9/10現在は「VirtualBox 4.2.18 for Windows hosts x86/amd64」)をインストールする。


  3. Vagrantのインストール
  4. Vagrant download siteから、最新版(2013/9/10現在は「v1.3.1/Vagrant_1.3.1.msi」)をインストールする。
    インストール後、再起動を求められるため、CPUがAMDの場合、BIOS設定を確認する。


  5. BIOS設定の確認
  6. 「BIOSセットアップユーティリティ」-「パワー」-「Virtualizationテクノロジー」が「有効」(Enabled)になっていることを確認する。
    ※「無効」(Disabled)の場合は、VirtualBoxから新しい仮想マシンを起動した際に、「AMD-V is disabled in the BIOS」というメッセージが出て起動しない。


  7. 再起動後、コマンドプロンプトを立ち上げる。
  8. Windowsのデスクトップから「Windows」+「R」キー押下する。
    「ファイル名を指定して実行」画面で「cmd」と入力し、「OK」ボタンを押下する。
    以下、コマンドプロンプト上での作業。


  9. 「vagrant -v」でvagrantのバージョンを確認する。


  10. msysgitのインストール
  11. msysgitから、最新版(2013/9/10現在は「Git-1.8.3-preview20130601.exe」)をインストールする。
    「Adjusting your PATH environment」では、「Run Git and included Unix tools from the Windows Command Prompt」を選択して、コマンドプロンプト上で、unixコマンドを使えるようにした。
    「find.exe」や「sort.exe」のように、windowsのコマンドと重複するものは、PATHの優先順序で置き換えられるので注意が必要。


  12. rubyのインストール
  13. RubyInstaller for Windowsから、最新版(2013/9/10現在は「Ruby 2.0.0-p247 (x64)」)をインストールする。
    「インストール先とオプションの指定」では、「Rubyの実行ファイルへ環境変数PATHを設定する」を選択した。


  14. bundlerのインストール
  15. Gemのパッケージ管理ツール(bundler)をインストールする。


  16. DEVELOPMENT KITの解凍
  17. RubyInstaller for Windowsから、最新版(2013/9/10現在は「DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe」)を任意のフォルダ(例:「c:\DevKit-mingw64-64-4.7.2」)に解凍する。


  18. DEVELOPMENT KITのインストール
  19. コマンドプロンプトから以下のコマンドを実行する。


  20. veeweeのインストール
  21. コマンドプロンプトから以下のコマンドを実行する。


  22. veeweeの雛形テンプレートの一覧を確認・作成
  23. コマンドプロンプトから以下のコマンドを実行する。


  24. veeweeの雛形テンプレートの編集
  25. テキストエディタで「C:\work\veewee\definitions\centos64」配下に作成されたテンプレートを編集する。

    [ks.cfg]
    ひとまず以下の変更を実施した。
    ・LANGを変更(「en_US.UTF-8」→「ja_JP.UTF-8」)
    ・キーボードを変更(「us」→「jp106」)
    ・タイムゾーンを変更(「UTC」→「Asia/Tokyo」)

    [definition.rb]
    ひとまず以下の変更を実施した。
    ・仮想メモリのサイズを変更(480MB→1024MB)
    ・ISO取得先を日本のミラーサイトに変更
    ・インストールの事後処理で「puppet.sh」を実行しないようにコメントアウト(chef以外に使う予定が無いため)



  26. veeweeの雛形テンプレートのOSインストール
  27. kickstartによるOSインストールを実行する。


  28. 仮想マシンへのSSH接続
  29. インストールされた仮想マシンにSSH接続する。
    デフォルトで作成されているユーザ/パスワードは以下のとおり。

    user/pass
    veewee/veewee
    vagrant/vagrant
    root/vagrant


  30. 仮想マシンのシャットダウン
  31. SSH接続経由で仮想マシンをシャットダウンする。


  32. 仮想マシンのエクスポート
  33. 仮想マシンをエクスポートする。


  34. エクスポートしたboxを使用する。
  35. エクスポートしたboxをvagrant経由で使用する。

2013年9月3日火曜日

Windows7 64Bit上でVagrant+CentOS6.4インストール

  1. VirtualBoxのインストール
  2. Download VirtualBox>から、最新版(2013/9/3現在は「VirtualBox 4.2.16 for Windows hosts x86/amd64」)をインストールする。


  3. Vagrantのインストール
  4. Vagrant download siteから、最新版(2013/9/3現在は「v1.2.7/Vagrant_1.2.7.msi」)をインストールする。
    インストール後、再起動を求められるため、CPUがAMDの場合、BIOS設定を確認する。


  5. BIOS設定の確認
  6. 「BIOSセットアップユーティリティ」-「パワー」-「Virtualizationテクノロジー」が「有効」(Enabled)になっていることを確認する。
    ※「無効」(Disabled)の場合は、VirtualBoxから新しい仮想マシンを起動した際に、「AMD-V is disabled in the BIOS」というメッセージが出て起動しない。


  7. 再起動後、コマンドプロンプトを立ち上げる。
  8. Windowsのデスクトップから「Windows」+「R」キー押下する。
    「ファイル名を指定して実行」画面で「cmd」と入力し、「OK」ボタンを押下する。
    以下、コマンドプロンプト上での作業。


  9. 「vagrant -v」でvagrantのバージョンを確認する。


  10. 「vagrant -h」でヘルプを確認する。
  11. 個別のコマンド「例:box」を調べたい場合は、「vagrant box -h」と実行する。


  12. 「vagrant box add」でboxを追加する。
  13. Vagrantbox.esのboxを指定してもいいが、
    ryuzee.comで公開されていたboxの使い勝手の方が良さそうだったので、こちらを使ってみた。


  14. 「vagrant box list」でboxの一覧を表示する。
  15. boxの実体は、「C:\Users\%USERNAME%\.vagrant.d\boxes\」配下にある。


  16. 「vagrant init」で「Vagrantfile」を初期作成する。
  17. カレントディレクトリに作成されるため、複数バージョンのboxを切り替えて使用する場合は、任意のディレクトリ(例:CentOS6)を作成しておくといい。


  18. 「Vagrantfile」をテキストエディタで編集する。


  19. 「vagrant up」でVMを起動する。


  20. 「vagrant status」でVMのステータスを確認する。
  21. 「vagrant status」の状態は、「running」になる。


  22. Teraterm等のターミナルソフトでSSH接続する。


  23. 「vagrant suspend」でVMを一時停止する。
  24. 「vagrant status」の状態は、「saved」になる。
    「vagrant up」または「vagrant resume」で再開する。

    「vagrant up」の場合
    「vagrant resume」の場合


  25. 「vagrant reload」で「Vagrantfile」を再読み込みする。
  26. 「Vagrantfile」を編集し、再度読み込む場合には、「vagrant reload」で再起動する。

  27. 「vagrant halt」でVMを停止する。
  28. 「vagrant status」の状態は、「poweroff」になる。


  29. 「vagrant destroy」でVMを除去する。


  30. 「vagrant box remove」で不要なboxを削除する。


  31. 「del Vagrantfile」で不要な「Vagrantfile」を削除する。
  32. 削除していない場合は、「vagrant init」を再度実行しても警告メッセージが出る。


  33. 「Provisioning」の使用方法
  34. VM起動後の後処理を「Vagrantfile」に、「config.vm.provision :shell」として記述する。
    「Vagrantfile」に、以下の4行を追記した。
    「provision.sh」は、「Vagrantfile」と同じディレクトリに、以下の内容で設置する。
    「vagrant up」でVMを起動する。
    「Running provisioner: shell...」の出力後、
    「Running: inline script」で、「config.vm.provision :shell, :inline」の実行結果がでる。

    「Running: C:/Users/%USERNAME%/AppData/Local/Temp/vagrant-shell20130903-6200-dm6b64」で、「config.vm.provision :shell, :path」の実行結果がでる。
    VM上では、「/tmp/vagrant-shell」に設置されている。


  35. 「vagrant package」の使用方法
  36. VMからboxファイルをエクスポートする。


    「vagrant package -h」でヘルプを表示する。
    「vagrant package」でboxをエクスポートする。
    起動中のVMは一度シャットダウンされるため、注意する。
    デフォルトでは、「package.box」のファイル名で保存される。
    出力ファイル名を指定する場合は、「--output」オプションで指定する。
    「vagrant box add」でエクスポートしたboxを追加する。


  37. 「sahara」の使用方法
  38. 「sahara」(スナップショットプラグイン)の使用方法は以下のとおり。


  39. 「vagrant plugin install」で「sahara」をインストールする。
  40. 「vagrant sandbox -h」でヘルプを表示する。
  41. 「vagrant plugin list」でインストールされているプラグインの一覧を表示する。
  42. 「vagrant plugin uninstall」で「sahara」をアンインストールできる。
  43. 「vagrant sandbox on」で「sandbox」を開始する。
  44. 「vagrant sandbox status」の状態は、「on」になる。
  45. 「vagrant sandbox rollback」で、コミットしていない変更内容を破棄する。
  46. 「vagrant sandbox commit」で、変更内容をコミットする。
  47. 「vagrant sandbox off」で「sandbox」を終了する。コミットしていない変更内容は破棄される。
  48. 「vagrant sandbox status」の状態は、「off」になる。

2013年6月13日木曜日

rubyでexcel操作

rubyでexcel操作するとしたら、今までは

VBA より便利で手軽 Excel 操作スクリプト言語「Ruby」へのお誘い (前編)
Win32OLE 活用法 【第 2 回】 Excel

を参考にしていた。

さすがに手間なので、書き込み限定で、

Ruby1.9でWriteExcelを試してみた。

りもしたけれども、 WriteExcelspreadsheet みたいなライブラリは、
Excelで使える機能の代替が無いか散々調べたあげく、
結局、細かい設定やExcel依存の機能をwin32ole経由で処理することが多いわけで。

ちょっと凝ったことをやりたければ、イチからwin32ole経由でExcel操作するスクリプトを書いた方が早い。
とはいえ、vba/vbscriptで培ったwin32ole操作スキルなんて普段使わないと忘れるので、
いつも思い出すところからスタートするのも苦痛。

Excel操作の必要があるたびに、Excel互換ライブラリを探して、無ければvba/vbscriptの復習。
vba/vbscriptを捨てるためにrubyに移行しているのに、復習からスタートする必要があるのは、いつも釈然としなかった。

Excelの読み書きをしたいんであって、vba/vbscriptの復習をしたいわけじゃないんだけど、、
っと思いつつ、久々に「ruby excel」でググったところ、
上位で見つけたExcel用のモジュールがとても便利だった。

Ruby: Win32OLEでの Excelの操作

これぐらい小さいモジュールであれば見ればすぐ思い出せるし、拡張や応用も楽。

(いい意味でvba/vbscriptよりも使いやすい)独自文法で、
(vba/vbscriptよりは落ちるけど比較的)多機能な
凝ったExcel互換ライブラリを無理に探す必要はないなぁ…っと、
目から鱗が落ちる思いでした。

以下、参考資料。

Ruby による Win32OLE プログラミング

2013年4月16日火曜日

さくらVPS CentOS6.2にsystemuをインストール ruby-2.0.0-p0

  1. systemuのインストール
  2. rubyから実行した外部コマンドの出力結果が EUC-JP なのに、端末の表示は UTF-8 の場合、当然ながら文字化けする。
    リダイレクトでファイルに書き込んで、「iconv -f euc-jp -t utf-8」で文字コードを変換するのも何か微妙な気がしたので、
    systemuを使用することにした。

    サンプルスクリプト(test.rb)のイメージは、以下のような感じ。
  3. Rubyから外部コマンドを実行する場合の参考資料
  4. Rubyで外部コマンドを実行して結果を受け取る方法あれこれ systemu で外部コマンドを実行する
    systemu を使用して Ruby から外部コマンドを実行する

2013年3月27日水曜日

さくらVPS CentOS6.2にraccをインストール ruby-2.0.0-p0

  1. raccのインストール
  2. Racc でおてがる構文解析を見て、raccを使ってみたくなった。

    ヘルプを表示する。

  3. 【補足】「--no-ri --no-rdoc」オプションをつけなかった場合。
  4. でインストールした場合に、

    っと、以下の警告が出ていた。

    ひとまずgemのインストール場所を探す。

    16進数の制御コードでgrepしてみる。

    16進数の制御コードでgrepしても見つからない。。


    こういうときは、「--no-ri --no-rdocオプションをつけて、ドキュメントをインストールしない対処でいいんだろうか。
    「/usr/local/lib/ruby/gems/2.0.0/gems/racc-1.4.9/lib/racc」ディレクトリ配下に格納されているファイルで「cparse.so」だけバイナリファイルで、「*.rb」じゃないのが原因な気もする。

2013年3月20日水曜日

さくらVPS CentOS6.2でインターネット公報SGMLをOpenjadeを使ってHTML変換

  1. インターネット意匠公報のダウンロード
  2. 電子署名検証(TARP7→TAR形式)
  3. インターネット利用による公報発行サイトにも書いておいたが、Windowsのクライアント上で、あらかじめ、


    電子署名検証方法について(「特許庁公報電子署名検証プログラム」のダウンロード)


    に従って、プログラム本体のダウンロードと電子署名検証を一度は試しておき、取得した以下のファイルをインターネット意匠公報(TARP7形式)と同一ディレクトリに格納する。


    ・電子署名検証して取得したルート証明書(例:JPT_2013006_01-01_root.der)
    ・p7verify.jar


    TARを解凍する。


  4. OpenJadeのインストール


  5. CATALOGのファイルの用意
  6. 「./JPD_2013006/SOFTWARE/CATALOG_BASE.FIL」(Shift-JIS)を元に、ファイル名を小文字にしておく。


    Linux(CentOS6.2)でデフォルトがutf-8エンコーディングのため、以下の加工をしておく。

    ・「*1*:\」、「*2*」の文言を削除しておく。
    ・ファイル名を小文字にしておく。
    でvimの文字コードを「Shift-JIS」に変更して編集できる。

  7. SGMLDECLファイルの用意
  8. 「./JPD_2011048/GAZETTE.SGM」を元に、ファイル名を小文字にしておく。



  9. DTDファイルの用意
  10. 「./JPD_2011048/DES.DTD」を元に、ファイル名を小文字にしておく。



  11. ENTITYファイルの用意
  12. 「./JPD_2011048/SOFTWARE/*.ENT」を元に、ファイル名を小文字にしておく。



  13. 公報(SGML 文書)を閲覧するための編集形式について
  14. 「公報仕様 意匠、商標、公開・国際商標、審決 第8版について」-「第3編 公報文書の詳細」-「1.意匠公報」-「1.5. 公報編集形式」に以下の記載がある。

    SGML文書より、表示例のごとく表示するための編集形式を以降に示す。
    公報(SGML 文書)を閲覧するための閲覧ソフトウェアは以降の編集形式にしたがって、公報データを表示すること。


    公報ビューアでの編集形式が記載されている「./JPD_2011048/SOFTWARE/DES.CSV」(euc-jp)が参考になる。

  15. DSSSLスタイルシートの用意
  16. DSSSLスタイルシートを「euc-jp」で作成する。

    でvimの文字コードを「euc-jp」に変更して編集できる。



  17. SGMLの準備
  18. 何かいいサンプルが無いかとGoogleで探したら、意匠登録第1429489号が任天堂の「Wii U」の意匠らしいので、それをサンプルに使ってみる。


  19. マルチTIFFの解凍
  20. ImageMagickのconvertコマンドを使用する。
    詳細はさくらVPS CentOS6.2でインターネット公報SGMLのマルチTIFFを分割で解説済みのため、割愛する。


    convertコマンドで分割する。
    IMGファイル(マルチTIFF形式)に格納されている順序が以下のため、convertコマンドで抽出順序順に連番を付与すると、残念ながらファイル名がずれてしまう。

    ということで、RMagickを使ったRubyスクリプトを作成した。

    IMAGEタグのORIGINAL-FILE-NAMEに設定されているファイル名で書き込みをしているため、マルチTIFFに格納されているイメージがJPEG/TIFFかどうかを判定する必要もない。

    スクリプトを実行する。



  21. HTMLへ変換
  22. openjadeでHTML変換し、iconvで文字コードを「utf-8」に変換する。


  23. HTMLをブラウザで表示
  24. 「Internet Explorer 9(以下IE9)」から、デフォルトでTIFF表示できる。TIFFプラグインを考えたくないなら、IE9でOK。








  25. 公報ビューアで元SGML表示
  26. 公報ビューアで表示した場合と比較しても、特に問題ないように見えるので、ひとまずは満足した。







  27. SGML/DSSSL/JADEの参考資料
  28. SGML/DSSSL/JADEについては、以下を参考にした。

    「SGML」

    The SGML/XML Page

    「DSSSL」

    DSSSL入門
    DSSSLへの手引き
    The DSSSL Cookbook

    「2013/04/09追記」
    文書スタイル意味指定言語 (DSSSL)

    「JADE」

    フォーマッターJADE
    OpenJade

    DSSSLは、Lisp Schemeを手本にしているので、細かい表現はSchemeが参考になる。

    「Scheme」

    もうひとつの Scheme 入門
    逆引きScheme
    scheme Programming
    Gauche ユーザリファレンス
    「2013/04/09追記」
    Scheme演習


2013年3月7日木曜日

RubyでOffice2007/2010のExcel/Word/PowerPoint/VisioファイルをPDF変換する際の注意点

  1. PDF/XPSドキュメントの作成について
  2. Office2010から標準でPDF/XPS ドキュメントを作成する機能が組み込まれている。
    ※Office2007では、2007 Microsoft Office プログラム用 Microsoft PDF/XPS 保存アドインをインストール必要がある。


    基本的には、指定した形式のファイルにエクスポート(ExportAsFixedFormatメソッド)を使用すればいい。


  3. ExportAsFixedFormatメソッドのパラメータについて
  4. Document.ExportAsFixedFormat Method (Word)
    Workbook.ExportAsFixedFormat メソッド (Excel)
    Presentation.ExportAsFixedFormat Method (PowerPoint)
    Document.ExportAsFixedFormat Method (Visio)


    出力先のパスを指定するキーワード名レベルで、各Officeドキュメントで指定方法が変わるので注意が必要。微妙な相違で落ちるため、コピペ対応をしようとして少しはまった。。
    例:Word…「OutputFileName」、Excel…「Filename」、PowerPoint…「Path」、Visio…「OutputFileName」

    個人的には、必須/任意オプションをオンラインドキュメントで確認しつつ、vbaの「マクロの記録」や「オブジェクトブラウザー」でコード値を調査し、試行錯誤していくのがやりやすかった。
    Office2010だと、開発タブが無いため、Office 2010 のリボンに「開発」を表示させたいを参考にして、「マクロ」や「Visual Basic」エディタから「オブジェクトブラウザー」を使用する。


  5. rubyスクリプトでPDFに変換する方法について
  6. 以下の記事が参考になった。
    Word,Excel,PowerPointをPDFに一括変換
    WordファイルやExcelファイルを一括でPDFに変換するRubyスクリプト


    プリンタドライバへの印刷と違い、ファイル名を指定して保存とほぼ同等な処理のため、PDF変換速度が速いのにびびった。
    なお、PowerPointだと、「ExportAsFixedFormat」が落ちるため、「SaveAs」メソッドで回避する必要がある。これではまった。。

2013年2月25日月曜日

さくらVPS CentOS6.2でインターネット公報SGMLのマルチTIFFを分割

  1. インターネット意匠公報のダウンロード
  2. 電子署名検証(TARP7→TAR形式)
  3. インターネット利用による公報発行サイトにも書いておいたが、Windowsのクライアント上で、あらかじめ、


    電子署名検証方法について(「特許庁公報電子署名検証プログラム」のダウンロード)


    に従って、プログラム本体のダウンロードと電子署名検証を一度は試しておき、取得した以下のファイルをインターネット意匠公報(TARP7形式)と同一ディレクトリに格納する。


    ・電子署名検証して取得したルート証明書(例:JPT_2013006_01-01_root.der)
    ・p7verify.jar


    TARを解凍する。


  4. ImageMagickのインストール
  5. さくらVPS CentOS6.2にImageMagick + RMagickをインストールでインストール済みの前提のため、割愛する。

  6. マルチTIFFの解凍
  7. ImageMagickのconvertコマンドを使用する。
    「参考」
    ImageMagickの使い方は、このサイトがわかりやすい。


    「分割後の拡張子がTIFFの場合」 以下のように表示される場合は、分割後のイメージファイルはTIFF形式。




    convertコマンドで分割する。


    tiffsplitコマンドで分割した場合も、正常にファイル分割される。


    「分割後の拡張子がJPEGの場合」 以下のように表示される場合は、分割後のイメージファイルはJPEG形式。




    convertコマンドで分割する。


    以下の警告が出るが、分割後のファイルをイメージビューアで見ることは出来る。


    tiffsplitコマンドで分割した場合は、警告が出た上で、ファイル分割が行われない。




    イメージファイルの詳細仕様については、公報仕様書を参照。2013年2月現在は、第8版が最新。
    公報仕様 意匠、商標、公開・国際商標、審決 第8版について
    第2編 各ファイルの詳細
    5.イメージファイル


    (2013/03/10修正)
    これによると「tag 293」は、「T6 エンコードオプション(圧縮)」の模様。
    Tagged Image File Formatに以下の記載がある。


    JPEG圧縮
    TIFF6.0で導入されたJPEG圧縮については、仕様上の不備が指摘されており、後に発行されたAdobe Photoshop Technical Notesによって大幅な変更が加えられた。この変更では、従来のTIFF6.0でJPEG圧縮のために定義されていたCompression=6および関連タグを廃止し、代わりに新しくCompression=7およびそれに関連するタグが導入されている。これによって様々な問題点がクリアされ実装も容易になったことから徐々にこの形式への移行が進んでいるが、互換性などの問題から従来のCompression=6も引き続き使われている。なおCompression=6ではタグの記述方法が難解なことなどから、TIFF6.0の仕様にさえも準拠せず独自の解釈でエンコード/デコードを行うアプリケーションソフトウェアも少なくない。そのため、JPEG圧縮のTIFFファイルの中には著しく互換性の低いものがある。
    


    公報仕様書によるとCompression=6(カラー)を使っているので、JPEG圧縮の互換性関連で警告が出ているっぽい。
    convertコマンドのファイル分割結果に特に問題はないようなので、当面気にしないことにする。