2013年1月23日水曜日

GoogleChromeはページを指定してPDFを開ける

GoogleChromeの内蔵PDFビューワはページを指定してPDFを開けます。

PDFのURLの末尾に「#page=5」とか付けるだけ。

↓の場合なら、PDFの4ページ目を開いてくれます。
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf#page=4

ページ番号は0から始まるので注意。

2013年1月18日金曜日

ちょっと賢いgit graph

git logコマンドは--graphオプションなどの組み合わせで、良い感じにコミットグラフを表示させる事ができます。
git log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
Gitのちょっと便利な使い方 (ゆめ技:ゆめみスタッフブログ) http://yumewaza.yumemi.co.jp/2010/07/git.html より

git config --global alias.graph 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=iso'
1 Entry per Day: git graph http://mstssk.blogspot.jp/2012/03/git-graph.html より

ブランチやオプションの指定をしたい

上記のままでも良い感じですが、普通のgit log同様にブランチを指定したりなどしたい。
そこで、シェルスクリプトを作ってそれをgit graphというエイリアスで実行できるようにしてみる。

gitのエイリアス設定は、!マークを先頭に付けると任意のシェルコマンドを実行させられる。
git config --global alias.graph '!~/.git-graph.sh'
※設定出来るシェルコマンドはあくまで1つだけらしい。コマンドをパイプで繋ぐ事は可能だったが、セミコロンが使えないので制御文をワンライナーで記述したりは出来ない。

.git-graph.sh の中身

実行例1:オプション無しなら--allオプションを自動で付加して実行する
$ git graph 
* <b4840e1> 2013-01-16 22:38:56 +0900 [mstssk]  (HEAD, master) F
* <93d7f2c> 2013-01-16 22:38:50 +0900 [mstssk]  E
| * <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
| * <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
|/  
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例2:ブランチ名を指定すれば、そのブランチのlogだけを表示
$ git graph experiment
* <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
* <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例3:日付形式を変更。※シェルがテキトーなので--allが付かなくなる。
$ git graph --date=local 
* <b4840e1> Wed Jan 16 22:38:56 2013 [mstssk]  (HEAD, master) F
* <93d7f2c> Wed Jan 16 22:38:50 2013 [mstssk]  E
* <3251633> Wed Jan 16 22:32:08 2013 [mstssk]  B
* <4264244> Wed Jan 16 22:31:56 2013 [mstssk]  A
* <4a0ab4a> Wed Jan 16 22:28:16 2013 [mstssk]  first commit

tab補完もしたい

ここまで来たらtab補完もしたい。
git logと同じ補完をしてくれるようにするには、以下の設定ファイルを ~/.bash_completion という名前で置いておく。
既に ~/.bash_completion があるなら、追記すれば良い。

2013年1月14日月曜日

UbuntuでGooglePlayの映画を視聴する

UbuntuでGooglePlayで映画見ようと思ったら全然再生できなくて、ググって初めてGooglePlayの映画の「システム要件」ページの存在を知ったのでメモ。何でサイトフッタにリンク置いておかないんだろう。

環境

  • Thinkpad x201s
  • Ubuntu 12.04.1 LTS Precise Pangolin
  • Google Chrome 24.0.1312.52

再生するには

Ubuntu または Linux OS をお使いの場合は、HAL モジュール(リンク先は英語)もインストールする必要があります。

というわけで、Ubuntuで一瞬採用されて2バージョン後くらいにすぐ使われなくなったあの hal をインストールする必要があるそう。
引用内のリンク "HAL モジュール" はAdobeのFlash Playerで保護されたコンテンツを視聴するための要件についてのヘルプページになっている。
Google PlayではDRMにAdobe Flash Accessを使っていてその動作にHALが必要、という事なんだろう。

以下、そのページ「Problems playing protected video content | Ubuntu Linux, Flash Player 11」の内容をざっくりと。

保護されたコンテツを再生する準備


halをインストールする。
sudo apt-get install hal

インストールした後、ブラウザを閉じてから、Adobe Accessのキャッシュをクリアしておく。
cd ~/.adobe/Flash_Player
rm -rf NativeCache AssetCache APSPrivateData2

この他、別のディストリビューションや64bit環境向けの説明もあるので、適宜実施。

保護されたコンテツを再生出来るかテスト


http://drmtest2.adobe.com:8080/SVP/SampleVideoPlayer_FP.html を開いて、画面上部の"Input the video URL:"というテキストボックスにhttp://drmtest2.adobe.com:8080/Content/anonymous.f4vを入力してから、「Play」ボタンを押す。

上手く行けば、ランセンス情報などをロードする処理の後にデモ動画が再生される。

GoogleChromeで再生できない場合


ここまでやっても、GoogleChromeでは再生できなかった。
今回だけではなく、GoogleChrome内蔵のFlashプラグインの挙動が怪しいことは以前からあり、その度に「内蔵プラグインを無効にして、システムにインストールされてる方のFlashを使うようする」という対処をしていたので、今回も実施。
  1. chrome://plugins/にアクセス。GoogleChromeのプラグイン設定画面が表示される。
  2. 画面右端のリンクを操作して詳細表示にする。(もともと詳細表示ならそれでOK)
  3. Adobe Flash Playerの項に、2つプラグインが表示されているので1つ目(Chrome内蔵のPepperFlashプラグイン)を無効にする。
  4. 先述の「保護されたコンテツを再生出来るかテスト」を実施して確認する。内蔵プラグイン無効化後に、テストページはリロードしておくこと。

2013年1月5日土曜日

UbuntuでSublimeText2の入力補完が出来ない時

# ハマったので、備忘録としてと同じ轍を踏む人のためのエントリ

問題

Q. あれ? UbuntuのSublimeText2で ctrl+space で入力補完出来ないぞ!?
A. 落ち着け。Linux版だと入力補完のキーバインドの初期値は alt+/ だ

何故?

ダウンロードページにあるchangelogに書いてある。正式にVersion 2.0になったタイミングで変わったらしい。 ctrl+space だとIME切り替えのキーバインドと被るからね。
  • Linux: Show Completions has changed from ctrl+space to alt+/, to not interfere with IMEs
  • 「Sublime Text - Download http://www.sublimetext.com/2」から

    普段は半角/全角キーを使うか、mac風に変換キーのキーバインドを変えてIMEのon/off出来るようにしてるので、これにハマった時になかなか思い至らなかった。

    workaround

    今は、以下のような設定をPreferences -> Key Bindings-Userに記述している。
    [
      { "keys": ["ctrl+space"], "command": "auto_complete" },
      { "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
        [
          { "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
          { "key": "auto_complete_visible", "operator": "equal", "operand": false },
          { "key": "setting.tab_completion", "operator": "equal", "operand": true }
        ]
      }
    ]
    

    Preferences -> Key Bindings-Defaultから入力補完の設定部分の記述をコピーして ctrl+space に書き換えただけ。