2015-01-31

Google Play ミュージック: ライブラリからの削除・アルバム内の曲順

Google Playミュージックのバージョン5.7.1788Q.1634597を使っているのだが, ライブラリ関連の処理がだめ:-(

アルバム内の再生順序の設定が明示されていないが, 試行錯誤で方法を見つけた. また, 一度ライブラリに登録してしまうと, ライブラリから消すのがたいへんだ.

アルバム内の曲順

アルバム内の曲順は, 以下のキーの優先順位でソートされるらしい.
  1. ID3TAGのトラック番号
  2. ID3TAGのタイトル
  3. もしID3TAGが付いていなければ, ファイル名
じつは, トラックとトラックの間が不連続で変だなと思っていた. 曲順がばらばらになっていることに気づいた. トラック番号をつければ良いだけだった. それにしても, なんでタイトルでソートしたんだろう? タイトルが曲順になっていることって殆ど無いと思うのだが. ファイル名をもう1つ上にしてほしい.

アルバムやファイルの削除

アルバムや曲を削除するには, 以下の方法をとる. ファイルを消しても, ライブラリにデータが残っていて, タップすると「リクエストされたトラックを再生できませんでした」と出る.
  1. ファイルを削除する (AndExplorerなどをつかう)
  2. 端末を再起動
また, [設定][アプリケーション][Google Playミュージック] から, [強制停止], [データを削除] を試したが, 一度ライブラリに登録されると消えない.

ファイルのID3TAGを編集した場合, 一度ファイルを削除して, 端末を再起動し, ファイルを追加し直す必要がある.

2015-01-30

Linux上で注釈を書けるPDFビュワー

Lifehackerに, OkularというPDFビュワーが紹介されているのを見つけた. 注釈の表示もできて便利だ. 見やすさでは Adobe reader にはかなわないが...

2015-01-29

RHEL7: pdftops が両面印刷できないPSを生成する

RHEL6 では,
$ lpr a.pdf
$ pdftops a.pdf -| lpr
によってPDFを印刷できた. しかし, RHEL7でこの方法を使うと, 印刷はできるものの, 両面に設定しても, 片面で印刷されてしまう. どうやら, 出力されるPSの上の方に, pdfSetupPaper というマクロがあるのだが, この実装が悪いらしい. 1ページごとにページサイズを設定するのだが, ページサイズが設定されるとプリンタが両面印刷せずに排紙してしまうようだ.

もうすぐパッチが適用されると思うのだが, 待ちきれなかったので, 自分でビルドしてしまった.

対処1: sedでページを設定する pdfSetupPaper を除去する. 以下のコマンドを pdftops と lpr の間にいれる.

sed -e "s/ pdfSetupPaper/ pop pop/"

Popplerのバグジラで議論されているが, そのパッチを適用する. 他にもいろいろなパッチが出ていたのだが, pdfSetupPaper のパッチだけにした.

$ yumdownloader --source poppler
$ rpm -ivh poppler-0.22.5-6.el7.src.rpm
$ cd ~/rpmbuild/SOURCES/
$ wget -O poppler-pdfSetupPaper.patch https://bugs.freedesktop.org/attachment.cgi?id=91005
$ cd ../SPECS/
$ vim poppler.spec
$ rpmbuild -ba poppler.spec
$ cd ..
$ sudo rpm -Uvh RPM/x86_64/poppler*.rpm

以下にspecファイルの更箇所を示す.

--- poppler-orig.spec 2014-02-15 01:11:43.000000000 +0900
+++ poppler.spec 2015-01-31 00:08:23.569595075 +0900
@@ -1,7 +1,7 @@
 Summary: PDF rendering library
 Name: poppler
 Version: 0.22.5
-Release: 6%{?dist}
+Release: 6%{?dist}a
 License: (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+ and MIT
 Group: Development/Libraries
 URL:     http://poppler.freedesktop.org/
@@ -16,6 +16,9 @@
 # https://bugzilla.redhat.com/show_bug.cgi?id=1053616
 Patch2:  poppler-0.22.5-rotated-words-selection.patch
 
+# https://bugs.freedesktop.org/attachment.cgi?id=91005
+Patch3: poppler-pdfSetupPaper.patch
+
 Requires: poppler-data >= 0.4.0
 BuildRequires: automake libtool
 BuildRequires: gettext-devel
@@ -134,6 +137,7 @@
 %patch0 -p1 -b .CVE-2013-4473
 %patch1 -p1 -b .CVE-2013-4474
 %patch2 -p1 -b .rotated-word-selection
+%patch3 -p1 -b .duplex
 
 iconv -f iso-8859-1 -t utf-8 < "utils/pdftohtml.1" > "utils/pdftohtml.1.utf8"
 mv "utils/pdftohtml.1.utf8" "utils/pdftohtml.1"
@@ -256,3 +260,6 @@
 
 
 %changelog
+* Thu Jan 1 2015 My Name  - 0.22.5-6a
+- pdfSetupPaper macro modified
+

2015-01-28

GHOST 脆弱性のセキュリティアップデート後に

今回の脆弱性は, gethostbyname に見つかって, 任意のコードが実行される可能性があるというもの. glibcのアップデートが必要なのだけれど, アップデートの後, この共有オブジェクトをリンクしているサービスすべてを再起動しないといけない.

一番安全なのは, OSを再起動することなのだけれど, そう簡単にOSすべてを再起動するわけにはいかない場合もあるだろう. こういうとき, 古い (削除済みの) 共有オブジェクトをリンクしているプロセスを探すことができると便利である.

以前にも記事を書いたが, 再掲する. RHEL 5, 6, 7 では, 以下のようなコマンドで, 探すことができる.

sudo sh -c 'grep "\.so.*deleted" /proc/*/maps' | cut -f3 -d/ | xargs ps
/proc/*/mapsにマッピングの状況 (共有オブジェクトやその他いろいろ) が出てくるので, この中で, deleted とラベルがついたものを探す. ただ, 拡張子「.so」がついたものだけを探さないと, 誤検出してしまう.

dvips -> ps2pdf を使うと, GNUplot のタイトルがPDFに設定される

GNUplotが出力するEPSからSDictを削除するには, 以下のようにする.
$ sed -i '/^SDict begin \[$/,/^end$/d' *.eps
このページを参考にした: gnuplot breaks LaTeX PDF title (SOLVED)

2015-01-26

アクセス先でフィッシング行為を検出しました

Chromeでフィッシングサイトにアクセスしてみたら, こういう表示がでた. その上, フォームを送信するたびにこの表示. Firefoxも同じような振る舞い.

こういうサイトには, ランダムなIDやパスワードをいれて送信しておけば良いだろうと思う. 以下のようにしてフィッシングの警告を解除する.

  • Firefoxの場合, 設定のセキュリティタブにある「攻撃/偽装サイトとして報告されているサイトをブロックする」のチェックを外す.
  • Google Chromeの場合, 設定のプライバシーにある「フィッシングや不正なソフトからの保護を有効にする」のチェックを外す.

gnome-terminal から他のターミナルを開くと変な文字が表示される

xfce4-terminal をつかってみると, 「[user@host1 ~]$ 」とプロンプトがでるはずなのに, 以下のように余分なものがついた.
 ]7;file://host1.example.com/home/user[user@host1 ~]$ 
$ ssh localhost で出なくなったので, なにかの環境変数が悪さをしていると疑われる.

結局のところ, VTE_VERSION=3406 という環境変数が問題だった. xfce4-terminal を gnome-terminal から起動していて, そのとき紛れ込んでいた.