2014年12月6日土曜日

iPod nano 6th 押せなくなったスリープボタンを修理

iPodのボタンのクリック感が無くなった

「あれっ?クリック感が無い」、ことのはじまりはスリープボタンを押したときの感触の変化でした。

数日後「ボタンがへこんだまま戻らない」、まだこのときはボタンを強く押せば動作していました。

ところが次の日「ボタンを押しても反応しなくなった」「こまった! 修理せねば」となりました。

iPodの修理情報を収集

作業開始

先人の皆さんの情報を元に、分解していきます。

スリープボタン部分を分解すると、「黒い小さなポッチ」の位置がずれていました。見たところ、この「黒い小さなポッチ」がタクタイルスイッチのプランジャーの役割をしているようです。

タクタイルスイッチはプランジャーが円形板バネの中央部を押すと円形板バネが反転し、クリック感と接点の導通が確保される構造と思われます。そのため、プランジャーの押す位置が円形板バネの中央からずれてしまうと、円形板バネがうまく反転しなくなり接点が導通できなくなると考えられます。

一般的なタクタイルスイッチでは、スイッチの筐体が位置ガイドになってプランジャの位置がずれない構造になっているのですが、このiPodの場合は小さな本体に収めるための苦肉の策なのでしょうか、かなり強引な構造設計のように感じます。

スイッチの動作を回復するべく「黒い小さなポッチ」を両面テープで貼り付けてみました。ところが組み立てるときに位置がずれてしまうようでうまくいきませんでした。下の写真は両面テープが「ずれたり」「丸まったり」の試行錯誤中のときのものです。

数回の試行錯誤の結果、接着剤を使って「黒い小さなポッチ」を円形板バネの中央に固定する方法でうまくいきました。

使用した接着剤は「ロックタイトDPL-030」、ほんの少し粘度があるものです。接着剤が円形板バネの接点の中に入ると手の施しようが無くなってしまうので注意してください。スイッチの接点部では粘度の低いさらさらの瞬間接着剤の使用は避けましょう。

修理完了

スリープボタンの動作とクリック感が戻りました。先人の皆さんに感謝!

2014年11月26日水曜日

iPhone用ステレオマイク TASCAM iM2 をUSBマイクに改造

ドックコネクタ接続のマイクを改造してUSBマイクにする方法

ステレオマイク TASCAM iM2 は、iPhone や iPad、iPod touch 専用の製品なので接続インターフェースはドックコネクタ接続になっています。このドックコネクタ経由でやり取りされる信号線には アナログオーディオ、ビデオ、シリアル、FireWire、USB、電源などがあります。

TASCAM iM2 の場合

  • 製品内部では USB デバイスとして動作しているのではないだろうか?
  • さらに、TASCAM iM2 には充電用の USB コネクタが付いています。これを使えばドックコネクタ経由の USB 信号線を外部に引き出すことなく間単に USB 接続できそうだ!
この二つが改造アイデアに繋がっています。

この改造の元アイデアは TT@北海道 さんです。


はじめに接続ヶ所を確認

それぞれの資料から、USB データポートのピン番号を調査します。


USBデータポートのピンを確認

  • D+ : MCU 16 ピン、Dock connector 4 ピン、USB コネクタ 3 ピン
  • D- : MCU 17 ピン、Dock connector 6 ピン、USB コネクタ 2 ピン

電源ラインのピンを確認

USB コネクタのUSB 5Vは iPhone 充電用に使われており、TASCAM iM2 の動作電源は Dock connector 経由の3.3Vのようです。そのため、TASCAM iM2 を PC に USB 接続して動作させるには、この電源供給方法を Dock connector から USB に変更する必要があります。

  • 5V : USB コネクタ 1 ピン
  • 3.3V: Dock connector 13 ピン
  • GND : Dock connector 1 ピン

配線作業

それぞれの信号線の接続ポイントを確認後、配線作業を開始します。

  • USB コネクタ部 :USB 充電モード用の抵抗(D+,D-間の抵抗)を除去。
  • 電源部 :ツェナーダイオードと抵抗を取り付け。
  • USB データポート :D+,D-を UEW でバイパス。

今回の改造では、TASCAM iM2 の電源(3.3V)にツェナーダイオードHZ3C2 3.3Vを使用しました。iM2 の消費電力が90 mW、ツェナー電流5 mAから

抵抗Rは、$R=\frac{5V-3.3V}{5mA+27mA} = 53.125 \fallingdotseq 51\Omega$

改造完了後の実測では 3.4 Vになりました。

D+,D-の接続点は、TT@北海道 さんが改造されたのと同じように USB のダンピング抵抗に接続するのがいちばん作業しやすいです。


改造完了

TASCAM iM2 を Windows PC に接続して確認

使用環境:Windows7 64bit

USB 接続した iM2 を自動認識して、デバイスドライバがインストールされました。

デバイスマネージャで確認すると。USB オーディオデバイスとして認識されています。

実際にオーディオ入力として使ってみると USB マイクとして働いてくれています。

おまけに MIDI やスピーカが一緒についてきましたが、この機能は使うことができません。元々これらの入出力回路が iM2 に備わって無いので、追加回路無しでは使用できないと思われます。もしかすると他の製品ラインナップに同じ MCU を使った機種があるのかもしれませんね。

これで改造成功です、TT@北海道 さん、情報ありがとうございます。

2014年11月18日火曜日

lo_updateを使って LibreOffice4.3.4へ自動アップデート

LibreOffice 4.3.4

The Document Foundation より LibreOffice 4.3.4 のリリースがアナウンスされました。

さっそく、自動アップデートスクリプトlo_updateを使ってみました。

自動アップデートを実行

今回はインストールファイルのダウンロードも自動で行うので、オプション-gを付けて実行します。

lo_update -g 4.3.4

アップデート完了。

自動アップデートスクリプトは、うまく動いてくれています。

LibreOfficeの自動アップデートスクリプト lo_update はこちらの投稿に記載しています

cURL コマンドを使って LibreOffice を自動アップデート
http://babooshka-innerjourneys.blogspot.jp/2014/11/curl-lbreoffice.html

2014年11月6日木曜日

curl コマンドを使って LibreOffice を自動アップデート

前回の「LibreOffice のアップデート用スクリプト」を少し改良して、ファイルのダウンロードも自動化できるようにしてみました。ファイルのダウロードには curl コマンドを使っています。



Windowsでcurlを使う

curl コマンドを Windows で使えるように準備をします。

公式サイトの Download ページからインストールファイルをダウンロードします。

Win64 - GenericセクションのWin64 2000/XP x86_64 MSIのリンクをクリックすると、Windows バイナリの配布サイト cURL for Windows に移動します。ここで、使用環境に合わせてインストールファイルをダウンロードします。私の場合、使用環境が Windows 7 professional 64 bit SP1 なので curl-7.38.0-win64.msi をダウンロードしました。

ダウンロード完了後 msi インストーラを実行して curl をインストールします。インストール時に PATH が自動設定されます。

インストールが完了すれば curl コマンドを使えるようになります。例えば、mozilla.jp のコンテンツを取得するには、このように入力します。

curl www.mozilla.jp/

curl コマンドの使い方は cURL - Manual (マニュアル日本語訳) に詳しく書かれています。



LibreOffice の自動アップデートスクリプト


使い方

バッチファイルの保存場所は、前回と同じフォルダ(c:\lo_tmp)を使って説明します。

  1. 下記のコードをファイル名lo_update.batで保存します。(例 保存フォルダc:\lo_tmp

  2. スタートメニューのコマンドプロンプトを右クリック、「管理者として実行」で起動。

  3. lo_update.batの保存フォルダへ移動。(例 cd c:\lo_tmp

  4. バッチファイルを実行
    (例 LibreOffice 4.3.3 をダウンロード後アップデートする場合は
    lo_update -g 4.3.3を入力。)

  5. 「メインインストーラ」のインストール結果の確認ダイアログが表示されます。

  6. 「日本語の LibreOffice 組み込みヘルプ」のインストール結果の確認ダイアログが表示されます。

  7. アップデート完了しました。

インストール結果はカレントフォルダのログファイルに書き込まれます。

  • 「メインインストーラー」のインストールログファイルはlogfileMain.txt
  • 「日本語の LibreOffice 組み込みヘルプ」のインストールログファイルはlogfileHelppack.txt

このバッチファイルでは、「メインインストーラー」と「日本語の LibreOffice 組み込みヘルプ」のインストール結果だけをダイアログ表示するようにしています。

サイレントインストールする場合は、「INSTALL」セクション(114行目~)のmsiexec.exeのオプションを、/qn+から/qnに変更すれば OK です。

インストールに指定できるファイルバージョンは、LibreOffice の安定版 Index of /libreoffice/stable で公開されているリリースバージョンを利用できます。現在(Nov 06, 2014)指定可能なものは4.2.7,4.3.2,4.3.3(Nov 06, 2014 現在)です。このディレクトリで公開されているファイル構成はリリースの都度に更新されていて、新しいバージョンが追加されると古いものは削除されるようです。また、何かの都合でダウンロードサイトの URL に変更があった場合は、スクリプトの修正(20 ~ 35 行目)で対応する必要があります。

ご注意!:コマンドプロンプトのデフォルトのエンコードは「シフト JIS」なので、バッチファイルの保存時のエンコードも「シフト JIS」で保存しないと表示が文字化けします。

lo_update.bat

2014年10月31日金曜日

LibreOfficeのアップデート用スクリプト

LibreOffice 4.3.3 がリリースされました。

LibreOffice のインストールやアップデートでは「メインインストーラー」と「日本語のLibreOffice組み込みヘルプ」の2つのファイルをインストールする必要があります。

そこで、毎回のアップデート作業の手間を減らすために、簡単なスクリプトを書いてみました。バッチファイルの引数にインストールするLibreOfficeのバージョン番号を与えるだけでアップデートできます。



使い方

あらかじめ「メインインストーラー」と「日本語のLibreOffice組み込みヘルプ」をダウンロードしておきます。保存フォルダはバッチファイルと同じ場所にします。(例 保存フォルダc:\lo_tmp

LibreOffice最新版のダウンロード
http://ja.libreoffice.org/download/libreoffice-fresh/

  1. 下記のコードをファイル名lo_update.batで保存します。(例 保存フォルダc:\lo_tmp

  2. スタートメニューのコマンドプロンプトを右クリック、「管理者として実行」で起動。

  3. lo_update.batの保存フォルダへ移動。(例 cd c:\lo_tmp

  4. バッチファイルを実行

    (例 LibreOffice 4.3.3 にアップデートする場合はlo_update 4.3.3を入力。)

  5. 「メインインストーラー」のインストール結果のダイアログを表示。

  6. 「日本語のLibreOffice組み込みヘルプ」のインストール結果のダイアログを表示。

  7. アップデート完了

インストール結果はカレントフォルダのログファイルに書き込まれます。

  • 「メインインストーラー」のインストールログファイルはlogfileMain.txt
  • 「日本語のLibreOffice組み込みヘルプ」のインストールログファイルはlogfileHelppack.txt


LibreOffice アップデートスクリプト

このバッチファイルでは、「メインインストーラー」と「日本語のLibreOffice組み込みヘルプ」のインストール結果だけをダイアログ表示するようにしています。

サイレントインストールする場合は、「INSTALL」セクション(45行目~)のmsiexec.exeのオプションを、/qn+から/qnに変更すればOKです。

ご注意!:コマンドプロンプトのデフォルトのエンコードは「シフトJIS」なので、バッチファイルの保存時のエンコードも「シフトJIS」で保存しないと文字化けします。

lo_update.bat

Nov 9, 2014 追記:
ダウンロードも自動化してみました。「 cURL コマンドを使って LibreOffice を自動アップデート

2014年10月22日水曜日

Firefox33.0がリリースされました。

デスクトップ版 Firefox のダウンロード
http://www.mozilla.jp/firefox/download/
デスクトップ版 Firefox のリリースノート
http://www.mozilla.jp/firefox/33.0/releasenotes/

先週の10月14日に、Firefox33.0がリリースされました。

新機能では、OpenH264 Video Codec plugin が同梱されるようになりました。セッション情報の保存方法が改良されてセッション復元機能の信頼度が向上しました。新機能の詳細はリリースノートをご覧ください。



セッション情報のバックアップフォルダ

Firefox のプロファイルフォルダに、sessionstore-backupsフォルダが新たに追加されました。セッション情報のバックアップは、このフォルダに保存されます。バックアップは少なくとも15秒間隔で書き込まれます。これらのファイルは、すべてJSON 形式です。<さらに詳しく>



プロファイルフォルダに作成されるファイル

  • sessionstore.js : このファイルには最新のシャットダウン中のFirefoxの状態が含まれています。ただし、Firefoxがクラッシュした場合にはこのファイルは存在しません。


sessionstore-backups フォルダに作成されるファイル

  • recovery.js : ユーザーの操作またはスクリプトが必要とするたびに、セッションを復元するための情報をこのファイルに書き込みます。 "recovery.js" には15秒以内の古い状態が含まれています。

  • recovery.bak : 前回の正常な "recovery.js" のバックアップが書き込まれます。 "recovery.bak" は30秒以内の古い状態が含まれています。

  • previous.js : 前回のシャットダウンが成功した時の状態が書き込まれています。 Firefox は起動時に "sessionstore.js" が有効な場合、その内容を "previous.js" に書き込みます。

  • upgrade.js-[build id] : 最新の更新後の Firefox の状態が書き込まれています。 Firefox は更新後の最初の起動時に "upgrade.js-[build id]" に、 "sessionstore.js" の内容を書き込みます。



デスクトップ版 Firefox の、開発ツールの更新と追加された機能のまとめ



インスペクタ


イベントリスナのポップアップ表示

イベントリスナが設定されている要素の横にevアイコンが表示されるようになりました。このアイコンをクリックすると、要素にアタッチされた全てのイベントリスナの一覧が表示されます。この一覧は、ファイル名と行番号、イベントの伝搬フェーズや、定義されたイベントの DOM レベルを表示します。

一覧の「一時停止アイコン」をクリックするとデバッガーに切り替わりイベントリスナに移動します。「ファイル名と行番号」の部分をクリックするとポップアップでリスナ関数を表示します。


新しいルールを追加

インスペクタで選択中の要素に新しいルールを追加できます。CSS ペインのルールビューのコンテキストメニューから、「ルールを追加」をクリックすると選択中の要素にマッチしたセレクタが追加されます。今回からルールの追加の他に、セレクタの編集も可能になりました。


@keyframes の編集

インスペクタのルールビューに、CSS アニメーションの@keyframesの表示が追加されました。ブラウザで動作を確認しながら内容を編集することができます。


3次ベジェ曲線エディタ

animation-timing-function プロパティの 3次ベジェ曲線cubic-bezier(x1,y1,x2,y2)を視覚的に編集できるようになりました。3次ベジェ曲線のコントロールポイント P1、P2 をマウスで操作して動作タイミングを設定できます。


Transform のオーバーレイ表示

インスペクタのルールビューで Transform で変形した操作を、要素自身にオーバーレイ表示するようになりました。 以前のツールチップ表示からオーバーレイ表示になったことで、要素の変形の状態を、より確認しやすくなりました。これを確認するには、ルールビューで transform プロパティにマウスカーソルをポインタを載せます。



スタイルエディタ


@mediaサイドバーが追加されました。

スタイルシート中の @media 規則が、サイドバーに表示されるようになりました。選択中のスタイルシートに @media 規則が含まれている場合、このサイドバーに一覧が表示されます。サードバーの右端の数字は、定義されている行番号へのリンクになっています。サイドバーの一覧の中で現在適用されていないものはグレーアウトで表示されています。



デバッガ


ミニファイされたソースをブラックボックス化

min.js拡張子を持つソースは自動的にブラックボックス化されます。デバッガのオプション設定メニューでこの機能を無効にすることができます。



オプションパネル


詳細な設定

ツールボックスのオプションパネルで、「詳細な設定」セクションの「キャッシュを無効」のチェックボックスをオンにすると、ツールボックスの使用中はブラウザキャッシュが無効化されます。

今まではツールボックスを開くたびにキャッシュが有効に戻りましたが、今回からチェックボックスの状態を保持するようになりました。また、通常のブラウジングでは、この設定にかかわらずツールボックスを閉じるとブラウザキャッシュは有効化されます。


エディタ設定

ツールボックスのオプションパネルに「エディタ設定」が追加されました。タブやインデントの設定、閉じ括弧の自動入力などの設定ができます。

キーバインドの設定は、Vim,Emacs,Sublime Textの選択が可能です。



レスポンシブデザインビュー


ビューポートサイズ

ビューポートサイズの値を直接編集できるようになりました。これによって独自の寸法設定ができるようになりました。



開発ツールバー (Shift+F2)


新しいコマンドが追加されました。

  • folder : >> folder open [path]
    引数の [path] フォルダをエクスプローラで開きます。

    Firefox のプロファイルフォルダを開く場合は>> folder openprofileを使うと簡単です。

  • highlight : >> highlight [selector] [options]
    引数のセレクタ [selector] にマッチするすべてのノードをハイライト表示します。

    ハイライトの消去は>> unhighlightです。

    使用できる [options] の一覧

    • --keep : ハイライト状態の固定

    • --fill <string> : <string> で指定した色でマーク。

    • --hideguides : ハイライトした要素のガイド線を非表示にする。

    • --region <selection> : ボックスモデルをハイライトします。 <selection> には "content","padding","border","margin" が使えます。

    • --showinfobar : ハイライトした要素の情報を表示します。(タグ名と属性とサイズが表示されます。)

  • inject : >> inject <library> または>> inject <url>

    jQuery などのライブラリをページに挿入します。

2014年10月8日水曜日

TiddlyWikiにファビコンを追加する

TiddlyWiki

お気に入りメモツールの TiddlyWiki は、お気に入りのブラウザ Firefox を起動すれば何時でも使えるように「タブをピン留め」して使っています。 Firefox ではタブをピン留めするとファビコンだけの表示になります。

( 追記:Dec 22, 2014
  現在は最新版の TiddlyWiki5 と区別するため、 TiddlyWiki Classic と呼ばれています。
  http://classic.tiddlywiki.com/ )

ファビコンが無い場合、Google Chrome や IE では代替のファビコンが表示されるようですが、Firefox ではファビコンの無いものは表示してくれません。そのような訳でファビコンの無い TiddlyWiki は「のっぺらぼう」でなんだか寂しいです。



TiddlyWiki にファビコンを追加しよう

この方法は Firefox だけで使えます

ファビコンを指定する link 要素は head 要素の中に記述することになっているので、追加する場合は TiddlyWiki の HTML を直接編集するか、ファビコン表示用のマクロを書かなければなりません。ところが Firefox で TiddlyWiki を使う場合は、以下の方法でファビコンを追加することができます。

  1. favicon.ico を作る
  2. TiddlyWiki のカレントフォルダに favicon.ico を保存
  3. 「MainMenu」tiddler にコードを追加

コードを追加する tiddler は「MainMenu」tiddler で無くても良く、起動時に常に読み込まれる tiddler なら問題ないと思います。それでは手順を説明します



マルチアイコン favicon.ico を作る

元になる画像を作る

ImageMagickconvertコマンドを使い、テキストデータから画像ファイルfavicon.pngを作ります。今回は「TW」の文字を使って画像を生成します。

Windows のコマンドプロンプトで実行

convert -font Consolas -pointsize 48 ^
    -interline-spacing -35 ^
    -kerning -2 -crop 56x52+0+0 ^
    -background lightblue -fill black ^
    -bordercolor black -border 1 ^
    label:"T\n W" ^
    favicon.png

元画像からマルチアイコンを作る

次に、出来上がった画像ファイルfavicon.pngを元にして、マルチアイコンファイルfavicon.icoを生成します。

convert favicon.png ^
    -bordercolor white -border 0 ^
    ^( -clone 0 -resize 16x16 ^) ^
    ^( -clone 0 -resize 32x32 ^) ^
    ^( -clone 0 -resize 48x48 ^) ^
    ^( -clone 0 -resize 64x64 ^) ^
    -delete 0 -alpha off -colors 256 favicon.ico

これでfavicon.icoができあがりました。



TiddlyWiki のカレントフォルダに favicon.ico を保存

ファビコンを追加したい TiddlyWiki のカレントフォルダに favicon.ico ファイルを保存します。



「MainMenu」tiddler にコードを追加

TiddlyWiki の「MainMenu」tiddler に、次のコードを追加します。

<html>
<link rel="shortcut icon" href="./favicon.ico">
</html>

これで完了です、TiddlyWiki のファビコンが表示されています



もうひとつの方法:データURIスキームを使う

この場合は tiddler への追記だけでOKです。この方法の良い所は、参照用のfavicon.icoファイルをカレントフォルダに設置しなくて済むことです。

link の中に、予め Base64エンコードしたfavicon.icoを、テキストデータとして記述します。

こんなかんじです

<html>
<link href="ここにエンコード済みテキストデータを挿入" rel="shortcut icon" type="image/png">
</html>


画像ファイルを Base64エンコードするには

Firefox のインスペクタを使います。

  1. アドレスバーにabout:blankを入力。
  2. 開いたページにfavicon.icoファイルをドロップすると、ページにファイルの画像が表示されます。
  3. Firefox のインスペクタを起動 Ctrl+Shift+C
  4. favicon.ico画像を選択。
  5. インスペクタのfavicon.icoの行のコンテキストメニューから「画像のデータURIをコピー」を選択。
  6. エディタにペーストすると Base64エンコード済みのテキストデータが得られます。

得られた画像のテキストデータを上記のコードに挿入すると、このようになります。

<html>
<link href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIklEQVQ4jXWTX0xTdxzFf5mPC2wlkxlRprK9DIJbMrPgRpxLnC+LybLF8AAyspk9sIcpGoYKtmXQqUXEODPHjKUq0N723rb38r/Iyv49LGFsgGBLaQFbCoWKGboMk3320KzaLHs4j+eTk/P9HvHRyXoudg9jlvsxK/2ck/swKwM0ubyYbBqGNgmj1YnR6khJb5Ew2TQqagwIvUWiWb3FFzcUzjp6MCsDmDpV6m/IXP1+lJ7IGlr4HtrsakpqKIE3vo7JpiEqG8+TV7CTTbnbyHhWx1MbNpCz40WeyXqO8urTdM3dxzY2i3T7bkr28TnUUAK9RUIYrU608D28S39RXl3H81tfQA0lUAKLOKei2CfmcU5F0yRNzOOZWcFodSCMVgeemWX6Y39SdvwU2TlbcQfjOCYjuKbj9EbX0syOyQiyP8ZQ4m+MVmcS4A4u07fwkLJjSYArsIQ7GOfK0C9UNV9JM7uml2gdHqH22w70FvvjBH1PJFD8MXoif3Cq9SaZuiw6fw8j+2PYxsL0RNb4/KtrbH+5gPrr8v8AAotos6ucdfai25iN5edxPKEV3ME4vdEHfHbuEvm7ijgjdT8BWHjIoeO1ZG/JxRVYRA0luNT3Ixm6LFp9I3T8NkPDTReD8UccrmvklTffwqz0p5dYWnWSjZu34JpOdnDtpzGezsjk6g+jHGm6jBACdzBOeXUdRfvf5bxn8F/ACr3RB3xc20BefiGu6SWUwCLtvwbJ1GXR0uVj38FShBAY2iRKq07w9vslXNC+SwK02VUckxHs43N0jM7gnIoi31lAmphn8/Y8KhubeW3vPt4pKWPPgQ947/CnHKj4hIvdw48B0u27yHcWUPyx1Nlkf4yC13ez84097C85RKtvhJwdL1G4u5gPq08nE+gtEmoogX18LvmqE/Opd/WEVni1eC9CCI61fIM3vk5hUTFCCI40XcasDCBMNg1vfB01lPjPYAaXH3Gw8ij5u4qwjYXx3YcTX1vZlLuNli4fF7QhREWNAZNNQ2+R0iZrtDowtDloaHfzpb2L+usyhjaJhnY3pk6VM1I3FTUG/gEHGNeMoFv3zwAAAABJRU5ErkJggg==" rel="shortcut icon" type="image/png">
</html>

このコードを、TiddlyWikiの「MainMenu」tiddler に追加すれば完了です。



さらにもうひとつの方法: MarkupPreHead tiddler を使う

さらにもうひとつ TiddlyWiki の MarkupPreHead tiddler を使う方法がありました。この tiddler に書き込むと TiddlyWiki HTML ファイルの<head>要素の中に、書き込まれた内容が挿入されるようになっています。

MarkupPreHead は shadow tiddler なので tiddlerリストの Shadowed タブの中に表示されます。

MarkupPreHead tiddler を開いて追記します。

<link rel="shortcut icon" href="./favicon.ico">

データURIスキームを使う場合も同じ箇所に挿入すればOKです。

TiddlyWiki を保存して再読み込みすると MarkupPreHead tiddler に書き込んだ内容が TiddlyWikiHTML ファイルの<head>要素に挿入されます。Firefox のインスペクタで確認すると、このように挿入されていることがわかります。

これでファビコンが表示できるようになりました。

この方法では Firefox と Google Chrome でファビコンの表示ができましたが、 IE はダメでした。



オリジナルのファビコンを作りたい

もっと簡単にファビコンをデザインしたい場合は、オンラインで作れるウェブサービスが幾つかあります。例えばこんな所favicon.ico Generator

あなたのTiddlyWikiに、オリジナルファビコンを作ってみてはいかがですか。

Firefox & TiddlyWiki で楽しいメモ環境をつくりましょう!

2014年9月30日火曜日

MP3をiTunes Podcastに変換

広島大学外国語教育研究センターでは、英語学習のためのPodcast「 Hiroshima University's English Podcast」を配信しています。このPodcastでは「やさしい英語会話」をはじめ「アメリカ探究の旅」や「ドラマで英語を学ぼう」「異文化ディスカッション」など趣向を凝らした番組内容を楽しむことができます。

PodcastをiTunesに登録すると、最新タイトルを含めて最近配信された数十タイトルがiTunesにダウンロードされて聴取可能になります。また、ウェブサイトでは最新タイトルから過去タイトルまで、全てのタイトルの聴取やダウンロード( MP3 )が可能です。

さらにウェブサイトではPodcastの解説やスクリプトが記載されており、番組内容のチェックやPodcastで聞き取りにくい単語などを文字で確認することができるため、とても便利です。

iTunesの場合は、歌詞表示用のエリアを利用して番組スクリプトが書き込まれています。その場合はPodcastファイルのプロパティを開き、歌詞のタブをクリックします。

追記:Feb 09, 2015
新しいiTunesでは、プロパティダイアログの表示が変更になりました。

  • 新しいタイトルの場合:
    タイトル右横の「さらに見る」をクリック、あるいは右クリックメニューの「説明を表示」をクリックでスクリプトを表示できます。
  • 古いタイトルの場合:
    新しいプロパティダイアログには歌詞タブがありません。以前のプロパティダイアログを呼び出すには、SHIFTを押したままで右クリックメニューの「プロパティ」をクリックします。すると、以前のプロパティダイアログが表示されるので歌詞タブを表示できます。



現在のPodcastに過去タイトルを加えたい

Podcastの登録時に配信されるタイトル数は、最新タイトルを含めて最近配信された数十タイトルです(約50タイトル)。これ以外の過去タイトルをPodcastに加えたい場合は、ダウンロードしたMP3ファイルをiTunesに登録することになります。

ダウンロードしたMP3ファイルをiTunesに登録すると、通常の「ミュージック」ファイルとして登録されます。このファイルをPodcastに変換するには、ファイルのプロパティの「オプション」タブを開き、「メディアの種類」をミュージックからPodcastに変更します。

ただし、この方法で変換した場合は別の番組エピソードとしてPodcastに登録されてしまいます。



過去タイトルを同じ番組エピソードに加えたい

過去タイトルのMP3ファイルを現在のPodcastと同じ番組エピソードに加えるには、他にも設定しなければならない項目があります。しかし、この項目はiTunesのファイルのプロパティで設定することができません。なぜなら、その項目は購読登録したPodcastからiTunesが自動的に設定する項目だからです。

どうすればいいの?

ここで「Mp3tag」の出番です。Mp3tagは多くのメディアファイル形式に対応したメタデータ(タグ)編集ツールで、多くのGUIツールの中でもiTunes Podcastのメタデータの編集に対応しているのが特徴です。

このMp3tagを使うと「MP3ファイルをPodcastに変換」を行うことができます。以下に手順を説明します。



Mp3tagオプション設定

MP3ファイルのメタデータの中でPodcastに最低限必要な項目は、ID3v2フレームのPCSTWFEDです。

今回は登録済みのPodcastに合わせるためTDRL,PCST,TGID,WFED,TCATを追加します。

タグパネルにフィールドを追加

「ツール」-「オプション」を開き「フィールドを追加」ボタンをクリック。「フィールドを編集」ウインドウでタグパネルに項目を追加します。

つぎの表は追加する項目の一覧です。ドロップダウンリストから「フィールド」を選択して「名前」を入力します。

フィールド 名前 ID3
RELEASETIME リリース日 TDRL
PODCAST メディアの種類 PCST
PODCASTID PODCASTID TGID
PODCASTURL PODCASTURL WFED
PODCASTCATEGORY PODCASTCATEGORY TCAT

入力が完了するとこのようになります。並び順は上下ボタンで変更できます。

カラムの表示項目を追加

「表示」-「カラムのカスタマイズ」を開き、「新規作成」ボタンをクリック。「カラムの表示を設定」ウインドウで項目を追加します。

つぎの表は追加する項目の一覧です。「名前」「値」「フィールド」の各項目を入力します。

名前 フィールド
リリース日 %releasetime% %releasetime%
メディアの種類 %podcast% %podcast%
podcastid %podcastid% %podcastid%
podcasturl %podcasturl% %podcasturl%
podcastcategory %podcastcategory% %podcastcategory%

上表の「値」の項目を次のようにしておくと、「フィールド値」を一括入力することができます。
**注意** この「値」の項目は、今回の作業終了後に上表の内容に戻しておきましょう。そうしないと他のファイルを開いたときに、実際と違う値が表示されてしまいます。

  • リリース日
    20$mid(%_filename%,1,2)-$mid(%_filename%,3,2)-$mid(%_filename%,5,2)
  • メディアの種類
    1
  • podcastid
    http://pod.flare.hiroshima-u.ac.jp/cms/media/1/%_filename_ext%
  • podcasturl
    http://pod.flare.hiroshima-u.ac.jp/cms/xml-rss2.php
  • podcastcategory
    Podcast (Dialogue)

入力が完了するとこのようになります。並び順は「上に移動」「下に移動」ボタンで変更できます。



メタデータを書き込む

予めPodcastに変更したいMP3ファイルを、「 Hiroshima University's English Podcast」のウェブサイトからダウンロードしてフォルダにまとめておきます。このとき、ファイル名はオリジナルのまま変更せずに保存します。

Mp3tagの「ファイル」-「ディレクトリの追加」でフォルダを指定して開きます。

カラムのカスタマイズ設定で「値」を一括設定できるようにしていれば、「リリース日」や「podcastid」がファイル名から自動的に計算されて表示されます。ただし、この状態の値は表示のみで、入力値はまだ確定していないので注意してください。

フィールド値の確定は、該当セルをクリックして編集モードに入り、つぎにenterキーを押すと表示値が確定します。この操作を先頭行から開始してenterキーを押し続けると、全ての行の値を確定することができます。

最後に、全て選択Ctrl+Aキーで保存対象のファイルを選択して、タグの保存Ctrl+Sキーでメタデータをファイルに書き込めば完了です。

Mp3tagオプション設定の「カラムのカスタマイズ設定」を元に戻すのを忘れないでください。



Podcastに変更したMP3ファイルをiTunesに登録

iTunesで「ファイル」-「フォルダをライブラリに追加」を選択し、上記でPodcastに変更したMP3ファイルフォルダを追加します。

これで、同じ番組エピソードの中に登録できました。リリース日順に並べると、古いものから順に聴取することができます。



最後に、広島大学外国語教育研究センターのスタッフの皆さんに感謝! 素敵なPodcastをありがとうございます。

2014年8月29日金曜日

TiddlyWikiのMathJaxプラグイン

Plugin MathJax

TiddlyWiki classicMathJaxを使うためのプラグインです。

( 追記:Dec. 22, 2014
  現在は最新版の TiddlyWiki5 と区別するため、 TiddlyWiki Classic と呼ばれています。
  http://classic.tiddlywiki.com/ )

このプラグインは、オリジナルの作者Guy RutenbergさんのMathJaxPluginを参考にして、使いたい機能を追加しました。


特長

  • inline equation $---$が使えます。
  • 数式番号の表示ができるように設定しました。数式番号はtiddler更新毎に「初期値1」から順番にナンバリングされます。
  • オンライン使用ならば、このプラグインのインストールだけですぐに使えます。もちろんオフライン使用も可能です。

NOTE:MathJaxは前回のナンバリング値を記憶するようで、tiddlerの更新毎に番号が再ナンバリングされ増加してしまいました。そのため、tiddlerの更新毎に数式番号を「初期値1」にリセットするようにしています。



インストール

icm7216.github.io/MyTiddlyWiki/からインポートできない場合は手動でプラグインtiddlerを作成してください。

プラグインtiddlerの作成手順

新規tiddlerを以下の内容で作成します。

tiddlerタイトル

PluginMathJax

tiddler本文

tiddler本文に、文末のcode:PluginMathJaxの内容をコピーして貼り付けます。

tiddlerタグ

systemConfig

tiddlerを保存して、ブラウザのページを再読み込みすればインストール完了です。


オフライン使用の場合

TiddlyWikiはオフラインで使えるWikiです。もちろんこのプラグインもオフラインで使用できます。

オフラインで使用するにはMathJaxをインストールする必要があります。


setp1

以下のリンクから MathJax をダウンロードして展開します。展開には7-ZipLhaplusなどが使えます。

MathJaxのダウンロード

現在(Aug. 28, 2014)の最新版はMathJax-2.4 です。

ダウンロードしたファイル"MathJax-2.x-latest.zip"("x"にはMathJaxの最新バージョンの番号が入ります)を展開します。

展開したフォルダ名を "MathJax-2.x-latest" から "MathJax" にリネーム。

"MathJax"フォルダを、使用するTiddlyWikiファイル(memo.html 等)と同じフォルダにコピーします。

こんなかんじです
TiddlyWiki/
    memo.html           <== 使用する TiddlyWiki ファイル
    MathJax/            <== ここに MathJax フォルダをコピー
        config/
        docs/
        extensions/
        fonts/
        images/
        jax/
        localization/
        test/
        unpacked/
        MathJax.js
        *** etc. *** 

step2

PluginMathJaxのコードを修正してローカルファイルのフォルダを指定します。

  • Code内の「## Online use ##」項目の行頭に//を」追加してコメントアウトします。
  • つづいて「## Offine use ##」項目の、次の行頭のコメントを取り除きます。

このように変更します

// ## Offine use ##
mathJaxScript: "MathJax/MathJax.js?config=TeX-AMS_HTML",

// ## Online use ##
//mathJaxScript: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",
// ## uncomment the following line if you want to access MathJax using SSL ##
//mathJaxScript: "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",

step3

TiddlyWikiを保存後に、ページを再読み込みすれば完了です。



使い方

簡単な使い方を、 PluginMathJax内のUsage項目に書いていますので参照してください。icm7216.github.io/MyTiddlyWiki/のPluginsへ

動作確認はWindows7 Firefox 31.0.0 で行いましたが、その他の環境では未確認です。

code:PluginMathJax

追記:Sep. 08, 2017
最新版のソースコードは github.com/icm7216/TWC-MathJax-Plugin で確認できます。

追記:Jun. 03, 2017
最新版は icm7216.github.io/MyTiddlyWiki/#PluginMathJax に置いています。

MathJax CDN 廃止に伴い CDN をcdnjs に修正しました。(May. 24, 2017)

/***
|''Name:''|PluginMathJax|
|''Description:''|Enable LaTeX formulas for TiddlyWiki|
|''Author:''|babooshka|
|''Version:''|1.1.4|
|''Date:''|Aug 27, 2014|
|''Requires''|[[MathJax|http://www.mathjax.org/]]|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.8.1|
|''Type''|plugin|

!! 変更履歴
!!! 1.1.4 Aug 27, 2014
* MathJax Secure Access CDN を最新のアドレス {{{https://cdn.mathjax.org}}} に修正。
!!! 1.1.3 Nov 22, 2013
* MathJaxメニュー、エラーメッセージの日本語表示化の設定。
* {{{\$}}}をエスケープして{{{$}}}を表示可能に。
!!! 1.1.2 Nov 09, 2013
* handlerのmatchTextに「&#36;」を追加。
!!! 1.1.1 Nov 06, 2013
* ロードイベントを修正(IE8対応)。
!!! 1.1.0 Oct 22, 2013
* オフライン使用できるように修正。
* autoNumberを有効にした。Tiddlerの更新時に式番号が再加算される問題が発生する、"resetEquationNumbers"で式番号とラベルをリセットするように修正。[[参考|https://groups.google.com/forum/#!searchin/mathjax-users/equationNumbers/mathjax-users/kzOOFw1qtxw/5ywOF87P-KEJ]]

ここに、参考にしたオリジナルのクレジットを記載します。
<<<
credit of original author
|''Name:''|MathJaxPlugin|
|''Description:''|Enable LaTeX formulas for TiddlyWiki|
|''Version:''|1.0.1|
|''Date:''|Feb 11, 2012|
|''Source:''|http://www.guyrutenberg.com/2011/06/25/latex-for-tiddlywiki-a-mathjax-plugin|
|''Author:''|Guy Rutenberg|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.5.0|
<<<





----
!Description

* allows to use MathJax in TiddlyWiki Classic.
* added inline equation {{{$---$}}}.
* allows to use offline.
* an equation numbers are reset by loading of a tiddler when using autoNumber.





!Usage
!! inline equation {{{$---$}}}
{{{
This is an inline equation $P(E) = {n \choose k} p^k (1-p)^{ n-k}$ 
}}}
This is an inline equation $P(E) = {n \choose k} p^k (1-p)^{ n-k}$ 

!! inline equation {{{\(---\)}}}
{{{
This is an inline equation \(P(E) = {n \choose k} p^k (1-p)^{ n-k}\)
}}}
This is an inline equation \(P(E) = {n \choose k} p^k (1-p)^{ n-k}\)
 
!! displayed equation {{{$$---$$}}}
{{{
this is a displayed equation: 
$$
P(E) = {n \choose k} p^k (1-p)^{ n-k}
$$
}}}
this is a displayed equation: 
$$
P(E) = {n \choose k} p^k (1-p)^{ n-k}
$$

!! displayed equation {{{\[---\]}}}
{{{
this is a displayed equation: 
\[
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
\]
}}}
this is a displayed equation: 
\[
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
\]

!!equation numbers
{{{
\[
\begin{equation}
   E = mc^2
\end{equation}
\]
}}}
will be numbered, while
\[
\begin{equation}
   E = mc^2
\end{equation}
\]
\[
\begin{equation}
   E = mc^2
\end{equation}
\]
\[
\begin{equation}
   E = mc^2
\end{equation}
\]
{{{
\[
\begin{equation*}
   e^{\pi i} + 1 = 0
\end{equation*}
\]
}}}
won’t be numbered.
\[
\begin{equation*}
   e^{\pi i} + 1 = 0
\end{equation*}
\]

labeled equation and a reference.
{{{
In equation $\eqref{eq:sample}$, we find the value of an
interesting integral:
\[
\begin{equation}
  \int_0^\infty \frac{x^3}{e^x-1}\,dx = \frac{\pi^4}{15}
  \label{eq:sample}
\end{equation}
\]
}}}
In equation $\eqref{eq:sample}$, we find the value of an
interesting integral:
\[
\begin{equation}
  \int_0^\infty \frac{x^3}{e^x-1}\,dx = \frac{\pi^4}{15}
  \label{eq:sample}
\end{equation}
\]

!!!If you writing the dollar sign into a tiddler. To use escape the "$" sign for "\$" notation.
{{{
13‑inch starts at \$1299, 15‑inch starts at \$1999
}}}
13‑inch starts at \$1299, 15‑inch starts at \$1999





----
!When using local installation.
If you want to use offline. You need to install the "MathJax" to your PC.

!!How to local installation

setp1.
Download MathJax zip file. Extract zip file using any extract tool. For example, [[7-Zip|http://www.7-zip.org/]], [[Lhaplus|http://www.forest.impress.co.jp/library/software/lhaplus/]], etc.

Download MathJax from here.
* [[MathJax|http://docs.mathjax.org/en/latest/installation.html]]

Extract "MathJax-2.x-latest.zip" files. ("x" is any number of MathJax Current Version.) 
Rename the directory name to "MathJax" from "MathJax-2.x-latest".  
Copy the "MathJax" directory to your TiddlyWiki directory.

These files should be installed under the directory of TiddlyWiki.
like this
{{{
TiddlyWiki/
    memo.html           <== your TiddlyWiki file
    MathJax/            <== MathJax directory is here
        config/
        docs/
        extensions/
        fonts/
        images/
        jax/
        localization/
        test/
        unpacked/
        MathJax.js
        *** etc. *** 
}}}


step2.
Edit the code to specify the local file directory.
* Add comment mark {{{"//"}}} within an "online use" section.
* Remove comment mark {{{"//"}}} within an "offline use" section.
Fix this part of the code.
like this
{{{
    // ## Offine use ##
    mathJaxScript: "MathJax/MathJax.js?config=TeX-AMS_HTML",

    // ## Online use ##
    //mathJaxScript: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",
    // ## uncomment the following line if you want to access MathJax using SSL ##
    //mathJaxScript: "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",
}}}


step3.
Save the TiddlyWiki. Reload the TiddlyWiki browser window.





----

!! Code
***/
//{{{
config.extensions.MathJax = {

    // ## Offine use ##
    //mathJaxScript: "MathJax/MathJax.js?config=TeX-AMS_HTML",

    // ## Online use ##
    //mathJaxScript: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",
    // ## uncomment the following line if you want to access MathJax using SSL ##
    mathJaxScript: "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",

    // ## MathJax Configuration Options. MathJax.Hub.Config() ##
    HubConfig: {
        menuSettings: { locale: "en" },  // if setting Menu language "japanese" is { locale: "ja" };
        extensions: [ "tex2jax.js", "MathMenu.js", "MathZoom.js" ],
        TeX: {
            extensions: [ "AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js" ],
            noErrors: { disabled: true },
            noUndefined: { disabled: true },
            equationNumbers: { autoNumber: "AMS" } 
        },
        jax: [ "input/TeX", "output/HTML-CSS" ],
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        "HTML-CSS": {
            scale: 100,
            undefinedFamily: "Consolas, 'メイリオ', verdana, STIXGeneral"
        },
        styles: { ".MathJax": { color:"blue"} },
        noErrors: {
            inlineDelimiters: [['$','$'], ["\\(","\\)"]],
            multiLine: true,    // false for TeX on all one line
            style: {
                "font-size":   "80%",
                "text-align":  "left",
                "color":       "green",
                "padding":     "1px 3px",
                "border":      "1px solid"
                // add any additional CSS styles that you want
                // ( be sure there is no extra comma at the end of the last item )
            }
        },
        noUndefined: {
            attributes: {
                mathcolor: "red",
                mathbackground: "#FFEEEE",
                mathsize: "90%"
            }
        }
    },

    displayTiddler: function( TiddlerName ) {
        config.extensions.MathJax.displayTiddler_old.apply( this, arguments );
        MathJax.Hub.Queue(
            [ "resetEquationNumbers", MathJax.InputJax.TeX ],
            [ "Typeset", MathJax.Hub ]
        );
    },

    loadScript: function(src, callback) {
        var elem = document.createElement('script');
        elem.type = 'text/javascript';
        elem.src = src

        if ( elem.addEventListener ) { 
            elem.addEventListener('load', callback, false);
        } else {
            elem.onreadystatechange = function() { // ## IE8 ##
                if ( elem.readyState in {complete: 1, loaded: 1 }) {
                    elem.onreadystatechange = null;
                    callback();
                }
            };
        }
        document.getElementsByTagName('head')[0].appendChild(elem);
    },

    install: function() {
        var _mathjax = config.extensions.MathJax;

        _mathjax.loadScript( _mathjax.mathJaxScript, function () {
            MathJax.Localization.setLocale("ja");  // ## setting locale "Japan" ##
            MathJax.Hub.Config( _mathjax.HubConfig );
            MathJax.Hub.Startup.onload();
            _mathjax.displayTiddler_old = story.displayTiddler;
            story.displayTiddler = _mathjax.displayTiddler;
        });
    }
};

config.formatters.push({
    name: "escapeSingleDollar",
    match: "\\\\\\$",
    handler: function(w) {
        createTiddlyElement( w.output, "span" ).innerHTML = "&#36;";
        w.nextMatch = w.matchStart+2;
    }
});

config.formatters.push({
    name: "mathJaxFormula",
    match: "\\\\\\[|\\$\\$|\\\\\\(|\\$",
    handler: function(w) {
        switch( w.matchText ) {
            case "\\[": // displayed equations
                this.lookaheadRegExp = /\\\[((?:.|\n)*?)(\\\])/mg;
                break;
            case "$$": // displayed equations
                this.lookaheadRegExp = /\$\$((?:.|\n)*?)(\$\$)/mg;
                break;
            case "\\(": // inline equations
                this.lookaheadRegExp = /\\\(((?:.)*?)(\\\))/mg;
                break;
            case "$": // inline equations
                this.lookaheadRegExp = /\$((?:.)*?)(\$)/mg;
                break;

            default:
                break;
        }
        this.lookaheadRegExp.lastIndex = w.matchStart;
        var lookaheadMatch = this.lookaheadRegExp.exec( w.source );

        if( lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
            createTiddlyElement( w.output, "span", null, "TW-math", lookaheadMatch[0] );
            w.nextMatch = this.lookaheadRegExp.lastIndex;
        }
    }
});

config.extensions.MathJax.install();
//}}}

2014年7月30日水曜日

DVD-RAMのVROファイル分割ツール

DVDレコーダとDVD-RAM

アナログ放送時代の DVD レコーダは既に現役引退ですが、映像ソースの保存や FM チューナのタイマー録音等まだ活躍の場が残っています。

DVD レコーダの HDD に記録したファイルを編集する場合、操作性の悪いレコーダ本体の編集機能よりも PC で編集したいところです。その場合は面倒ですが DVD-RAM に書き出して PC で編集することになります。(ただし CPRM で保護された動画は不可です。)


DVD-RAMのファイル構成

DVD-RAM のファイルは、DVD_RTAV フォルダの中に 3 個のファイルで構成されています。

  • VR_MANGR.BUP
  • VR_MANGR.IFO
  • VR_MOVIE.VRO
複数タイトルを DVD-RAM に書き出した場合でもこのファイル数は変わりません。書き出された各タイトルは、ひとつのファイルに纏められて VR_MOVIE.VRO に保存されています。また、このファイルのコーデックは mpeg2 なので、拡張子をmpgに書き換えれば動画ファイルとして再生することもできます。

各タイトルの情報はひとつに纏められて VR_MANGR.IFO に保存されています。 DVD-RAM の再生はこのファイルの情報を元に VR_MOVIE.VRO から読み出されます。


DVD-VRユーティリティ

このツールは VR_MANGR.IFO や VIDEO_TS.IFO からタイトルなどの情報を読み出します。そして IFO ファイルの情報を元にタイトルごとにファイルを分割します。動作環境は Linux と Mac OS X です。 Windows の場合はcygwin環境で実行可能です。また、実行ファイルは配布されておらずソースのみの公開のため、各自でビルドする必要があります。


cygwinでビルド

cygwin のインストール時にビルドに必要なライブラリを入れておきます。

  • libiconv
  • gcc-core: C compiler
  • make: The GNU version of the 'make' utirity

make install でビルドが完了すれば、実行時に cygwin 環境が無くてもOKです。その場合、実行に必要なファイルcygwin1.dllcygiconv-2.dllC:\cygwin\binから、dvd-vr.exeと同じフォルダにコピーしておく必要があります。


コマンドオプション

コマンド一覧は--helpで確認できます。

dvd-vr --help

>dvd-vr --help
Usage: dvd-vr [OPTION]... VR_MANGR.IFO [VR_MOVIE.VRO]
Print info about and optionally extract vob data from DVD-VR files.

If the VRO file is specified, the component programs are
extracted to the current directory or to stdout.

-p, --program=NUM  
Only process program NUM rather than all programs.

-n, --name=NAME    
Specify a basename to use for extracted vob files rather than 
using one based on the timestamp.
If you pass - the vob files will be written to stdout.
If you pass [label] the names will be based on a sanitized 
version of the title or label.

--help         Display this help and exit.
--version      Output version information and exit.

IFOファイルから情報を読み出す

コマンド引数に IFO ファイルを渡すと、ファイル内の各タイトル情報が表示されます。

dvd-vr VR_MANGR.IFO

>dvd-vr VR_MANGR.IFO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704

VROファイルを分割する

コマンド引数に IFO ファイルと VRO ファイルを渡すと、ファイル内の各タイトルを分割します。

dvd-vr VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr VR_MANGR.IFO VR_MOVIE.VRO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880
Warning: program is partially encrypted

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704
Warning: program is partially encrypted

上の例では VR_MOVIE.VRO を分割したファイルが 2 つ出力されています。分割したファイル名はタイムスタンプを元に設定されます。

2014-06-16_08-15-00.vob
2014-06-16_13-00-00.vob

ベースネームを指定する

ベースネームを指定すると、出力ファイル名は連番になります。例えば、ベースネームにDVDを指定する場合--name=DVDと書きます。

dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO


DVD#001.vob
DVD#002.vob

分割後のファイルをFFmpegで確認

元ファイルの情報

>ffmpeg -i VR_MOVIE.VRO
Input #0, mpeg, from 'VR_MOVIE.VRO':
Duration: 00:45:01.18, start: 0.225367, bitrate: 4789 kb/s
    
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST1

>ffmpeg -i DVD#001.vob
Input #0, mpeg, from 'DVD#001.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2388 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc

Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST2

>ffmpeg -i DVD#002.vob
Input #0, mpeg, from 'DVD#002.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2401 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

2014年6月13日金曜日

Firefox30.0 がリリースされました。

デスクトップ版Firefoxのダウンロード
http://www.mozilla.jp/firefox/download/
デスクトップ版Firefoxのリリースノート
http://www.mozilla.jp/firefox/30.0/releasenotes/

新機能の詳細はリリースノートをごらんください。



サイドバーボタン

Firefoxメニューのカスタマイズに、サイドバーボタンが追加されました。Firefoxメニューにサイドバーボタンを登録すると、ブックマークや履歴のアクセスが簡単になります。

サイドバーボタンをクリックするとスライドパネルが開きます。サイドバーの一覧から使用するサイドバーを選択できます。


デスクトップ版Firefoxの、開発ツールの更新と追加された機能


Webコンソール

コンソールに出力されたDOM要素の上にマウスカーソルをのせると、ページ上でハイライトされます。

上の例では

document.getElementById("main-feature")

id="main-feature"を取得すると。

<div id="main-feature">

が出力されます。

コンソール出力されたノードの右横には青色のアイコンが表示されています。このアイコンをクリックするとインスペクタに切り替わり、この要素が選択された状態になります。



インスペクタ

ボックスモデルのハイライト機能が追加されました。

ページのボックス要素を選択すると、ボックスモデル領域がハイライト表示されるようになりました。ページ右下の、ボックスモデルペインの表示の配色と同じなのでわかりやすいです。


フォントファミリーのツールチップ

font-familyの値にマウスカーソルをのせると、フォントの見本が表示されます。



ネットワークモニタ

画像のネットワーク要求では、ファイル名の先頭に画像のサムネイルが表示されるようになりました。そして、ファイル名にマウスカーソルをのせると画像のサムネイルがポップアップで表示されます。



ツールボックスのボタン

表示するボタンをカスタマイズできるようになりました。

オプションパネルの「利用可能なツールボックスのボタン」項目で、表示するボタンを選択できます。 デフォルトでは「ページ要素の選択」、「コンソールの常時表示」、「レスポンシブデザインモード」が表示されます。



デバッガ

Firefox27のデバッガに追加されたイベントペイン(選択したDOMイベントのブレークポイントを自動で設定できる機能)ですが、Firefox28以降ではイベント名が何も表示されませんでした。

今回のFirefox30で、イベントペインの表示がようやく戻ってきました。

おかえり「イベントペイン」

とはいうものの、ソースペインで不可解な現象が発生しています。不思議なことにアドオンのファイル名がソースペインに表示されています。これは、ブラウザツールボックスのデバッガに表示されるものが、通常の開発ツールのデバッガに表示されているようにみえます。

表示されているファイルを見ると、インストールしているアドオン「Replace Translator」のファイルのようです。