2014/04/26

Dropboxアプリの不調

いつの頃からか、Dropbox(nautilus-dropbox)が起動しなくなった。
具体的には、起動するとsudoのためのパスワードを求められるが、入力しても起動しない、という状況。

原因切り分け


ターミナルで、dropboxを直接起動してみた。
すると、下記のようにエラーが出て終了してしまった。
どうやらこのようにエラーが出るために起動できてなかった模様。

$ dropbox start
Starting Dropbox...Traceback (most recent call last):
File "dropbox/client/main.py", line 13, in
File "autogen_explicit_imports.py", line 13, in
File "ui/common/selective_sync.py", line 6, in
File "arch/__init__.py", line 28, in
File "arch/linux/tracing.py", line 8, in
File "hard_trace.py", line 6, in
File "client_api/connection_hub.py", line 21, in
File "client_api/kv_connection.py", line 23, in
File "pylinux/__init__.py", line 71, in
File "cffi/api.py", line 311, in verify
File "dropbox/overrides.py", line 398, in load_library
File "cffi/verifier.py", line 69, in load_library
File "cffi/verifier.py", line 154, in _load_library
File "cffi/vengine_cpy.py", line 124, in load_library
VerificationError: importing '/home/xxx/pylinux/__pycache__/_cffi__xa0c4f46bx1d95b4de.so': No module named _cffi__xa0c4f46bx1d95b4de

The Dropbox daemon is not installed!
Run "dropbox start -i" to install the daemon

対処


必要な対処は下記二点。
  • /var/lib/dropbox/.dropbox-distを削除 (dropboxの古いバイナリを削除)
  • dropbox start -iを実行 (dropboxのバイナリを再度ダウンロード)

これらを実施することで、前と同じようにdropboxが起動するようになった。

参考

2014/03/02

自炊雑感


Epson DS-510を購入したので数十冊自炊してみた。
今のところの感想や気づいたことなど。

ちなみに、裁断〜スキャン〜後処理 の所要時間はコミック1冊平均20〜30分くらい。
カバー/表紙/カラーページ/本体 それぞれ別々に処理しているせいだとは思うが、もう少し短縮したいところ。

スキャン

今のところ、スキャン時の設定等はこんな感じで落ち着いている。
  • 300dpi
  • ページに合わせてカラー/グレースケール/白黒を選択
  • PNM形式で保存
  • xsaneのスキャナ側の設定は、明るさを0.4〜0.6くらい、コントラストを0〜0.3くらいに設定 (白い部分がきちんと白くなり、色味が変わり過ぎない程度)
  • 一度にスキャンするページ数は120ページ以内
そして、スキャンしていて気になったことがいくつか。
  • 長尺物のスキャンができない
    DS-510のマニュアルを見るとWindows等の場合は長尺物もスキャンできるようだが、xsaneからではできなかった。
    結果、コミックのカバーが一発ではスキャンできないので、裁断して2回に分けてスキャンしている。場合によってはGimpで加工して1枚に再合成。
  • スキャン中にxsaneがたまに落ちる
    調子がいい時は全然落ちないのだけど、頻繁に落ちることもある。何がきっかけで落ちているのかは今のところ不明。
  • 一度にスキャンするページ数を増やしすぎると斜めになりやすい
    うまく置くとスキャナの上限枚数を超えてセットできるが、斜めにスキャンされる率が高くなったので60枚以内に抑えるようにした。

スキャン後の処理


小説


小説はページの端が白いスペースになっている。
そのため、余白を削除することでスマートフォンやタブレット等で見た時に大きく表示することができる。
余白を削除する際には、pamcutで読み取り境界付近の黒いラインをカットしたあとにpnmcropを行うことでうまく削除できた。(場合によってはpnmcropのオプションで調整)
その後pnmscaleでサイズを縮小(このとき白黒からグレースケールに変換される)してからjpegへ変換。

毎回コマンド手打ちは面倒なので、下記のようなシェルスクリプトを作った。(marginやらscaleやらは適当なので微調整が必要かも)

#!/bin/bash

outputdir="/home/xxx/hoge"

margin_top=100
margin_left=100
cut_width=1300
cut_height=1950

scale=0.56

temp_dir=jpg

current_dir=`pwd`
string_dir=${current_dir##*/}
output_zip_filename=${string_dir}.zip

# make temp dir
mkdir -p ${temp_dir}

# convert image file
for i in $* ; do
  outputfilename=`echo ${i} | sed "s/pnm/jpg/"`
  pamcut -left ${margin_left} -top ${margin_top} -width ${cut_width} -height ${cut_height} ${i} | pnmcrop | pnmscale ${scale} | pnmtojpeg > ${temp_dir}/${outputfilename}
done

# compress all files
zip -r -j -q -9 ${outputdir}/${output_zip_filename} ${temp_dir}


コミック

コミックは余白削除が必要無いため、サイズ縮小のみやればOK。
小説と同様、下記のようなシェルスクリプトを作った。


#!/bin/bash

outputdir="/home/xxx/hoge"
scale=0.56
temp_dir=jpg

current_dir=`pwd`
string_dir=${current_dir##*/}
output_zip_filename=${string_dir}.zip

# make temp dir
mkdir -p ${temp_dir}

# convert image file
for i in $* ; do
  outputfilename=`echo ${i} | sed "s/pnm/jpg/"`
  pnmscale ${scale} ${i} | pnmtojpeg > ${temp_dir}/${outputfilename}
done

# compress all files
zip -r -j -q -9 ${outputdir}/${output_zip_filename} ${temp_dir}


そして複数巻一気にスキャンだけした後で、下記のようなコマンドで一括でjpegへ変換を実行。

for i in `seq -w 1 10`; do cd xxx_${i}; ~/hoge/scale_comic.sh *.pnm; cd ../; done

2014/02/09

Epson DS-510をUbuntuで使う


Epson DS-510用ドライバのインストール


Epson DS-510が届いたので、早速セイコーエプソン株式会社が提供するLinuxドライバから*.debなファイルをダウンロードしてきた。
しかし、Ubuntu10.04向けのパッケージのため依存するパッケージの一部(libhal1, libudev0, hal)が見つからず、そのままでは13.10な環境には入らないようだ。

そのため、ソースファイルからdebパッケージを作りなおすことにした。

必要なパッケージのインストール


deb作成に必要なもの、コンパイルに必要なもの等いろいろあるが、下記あたりをインストール。

  • build-essential
  • debhelper
  • devscripts
  • lintian
  • dh-make
  • cdbs
  • libltdl-dev
  • libudev-dev
  • libusb-1.0-0-dev
  • libgtkmm-2.4-dev
  • libsane-dev
  • libjpeg-dev
  • libtiff-dev
  • libbz2-dev
  • libz-dev
  • libboost-all-dev (必要なもののみ入れればいいのだが、面倒だったので全部まとめて入れた)

ダウンロード


ダウンロードするのは下記のファイル。
  • imagescan_3.4.0.orig.tar.gz
  • imagescan_3.4.0-1epson4ubuntu10.04.debian.tar.gz

前者を展開するとutsushi-0.4.0というディレクトリができる。
しかし、ディレクトリ名がパッケージファイル名になるので、imagescan-3.4.0に変更しておく。
また、後者はdebパッケージを作る際に必要なファイルなので、imagescan-3.4.0の中に置いておく(imagescan-3.4.0/debian)。

buildに向けた修正


本当はソースファイルのあるディレクトリでdebuild -uc -us -bとするだけでバイナリの作成まで出来るはず… なのだけど、そのままでは通らなかったのでいくつか修正。

debian/control


13.10にはlibhal-devというパッケージが存在しない。
そのため、6行目のBuild-Depends:に記載されているlibhal-devを削除。
同様に、halというパッケージも存在しないので、11行目のDepends:からhalを削除。

debian/rules


デフォルトではソースファイル内のBoostをコンパイルして利用するようだが、スレッド関連でエラーが出てコンパイルに失敗した。
そのため、Boostはソースファイル内のものではなくUbuntuで提供されているライブラリを利用する。
ライブラリを使用するために20行目あたりに下記を追記。

DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-system=boost_system
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-filesystem=boost_filesystem
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-iostreams=boost_iostreams
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-program-options=boost_program_options
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-regex=boost_regex
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-thread=boost_thread
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-unit-test-framework=boost_unit_test_framework

configureスクリプト

rulesにオプションを適切に指定していても、なぜか下記のエラーが出る。
configure: error: Could not link against boost_unit_test_framework !
いろいろ試行錯誤はしてみたものの解決できなかった。
ライブラリそのものはあるので問題ないはず、ということで(本当はよくないのだろうけど)このエラーを出力している19,966行目あたりを修正して、強制的に通してしまう。

変更前:

if test "x$link_unit_test_framework" != "xyes"; then
 as_fn_error "Could not link against $ax_lib !" "$LINENO" 5
fi


変更後:

if test "x$link_unit_test_framework" != "xyes"; then 
 #as_fn_error "Could not link against $ax_lib !" "$LINENO" 5
 BOOST_UNIT_TEST_FRAMEWORK_LIB="-lboost_unit_test_framework"
fi


debパッケージ作成&インストール


debuild -uc -us -bを実行すると、一つ上のディレクトリにimagescan_3.4.0-1epson4ubuntu10.04_xxx.debが作成される。
これを実行し、Ubuntuソフトウェアセンターからインストールを実行。

これにより、/usr/bin/imagescan(および関連するファイル)がインストールされる。

使えるかどうか確認


DS-510を電源ON&USBで接続し、認識するか確認。

確認その1:imagescan
$ imagescan list
usb:esci:/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0


確認その2:SANE
$ sane-find-scanner
...
found USB scanner (vendor=0x04b8 [EPSON], product=0x014c [EPSON DS-510]) at libusb:001:005
...
$ scanimage -L
device `imagescan:usb:esci:/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0' is a EPSON EPSON_DS-510


スキャン


xsanesimple-scanといったSANEフロントエンドを使ってスキャン。


参考

自炊環境構築

自炊

漫画やら小説やらを少しずつ買い続けた結果、本棚に入らない本が平積みになってしまっている。
ただでさえ狭い部屋なのにこれ以上狭くなるのはつらいので、電子化を考えることにした。

手持ちの本を電子化する場合の選択肢はこの3種類。

  • 代行業者
  • 自炊機材レンタル
  • 自炊機材を購入

代行業者

自炊代行

一冊100〜200円程度(+送料)で裁断〜スキャンまでやってもらえるサービス。
スキャンは300dpi&一冊のページ数が多い場合は追加料金になる業者が多い。

裁断代行


本の裁断のみの代行サービス。
一冊数十円程度(+送料)。

(参考)

自炊機材レンタル

裁断機とスキャナのセットを一週間数千円や一ヶ月一万円程度でレンタルが可能。
一日あたり何冊程度処理できるかよくわからないので、費用面で代行業者や機材購入と比べるのが難しいところ。

(参考)

自炊機材を購入


自炊に必要なのは裁断機とスキャナ。
それぞれについていろいろ調べてみた。

裁断機

いろいろ調べたところ、裁断機は全体的に大きい。狭い部屋なことを考えると、少しでも場所をとらない方がありがたい。

という観点で調べると、それなりの枚数を裁断できるものであればハンドルをおろした状態で収納できるDurodex 200DX(\37,800-)がよさそう。
もしくは、一度に裁断できる枚数は少ないが圧倒的に安いCARL DC-210N(約\9,500-)か。

上記裁断代行の値段を考えると、Durodex 200DXなら400冊、CARL DC-210Nなら100冊以上裁断するなら買ったほうが安そう。


スキャナ

メインで使っているマシンがUbuntuなことを考えると、Linuxで使えるスキャナなことが望ましい。
Linuxでスキャナを使う場合、SANEを使ってスキャナにアクセスするのが一般的らしい。

自炊用で使われているスキャナについて調べたところ、候補がいくつかに絞られた。

  • 富士通 ScanSnapシリーズ(特に2009/02発売のS1500や2012/11発売のiX500)
    SANE対応済(S1500:complete, iX500:good)。
    一番メジャーなシリーズ。価格は3万円台後半〜4万円台前半。
  • Canon DR-C125 (2011/07発売)
    SANEではuntestedになっているが、Canon EuropeのサポートページにLinux用ドライバ(SANE backend用)があるのを発見。
    価格は2万円台後半。
  • EPSON ES-D350 (2012/05発売)
    SANE対応済(good)。
    2013/11に後継モデルのDS-510が発売された。さすがにこちらはドライバがないかと思ったが、セイコーエプソン株式会社が提供するLinuxドライバの中にDS-510も含まれていた。
    価格はES-D350、DS-510ともに3万円台前半〜中盤。
  • ブラザー ADS-2500W (2012/10発売)
    公式のLinuxドライバがある。
    Webの設定管理機能があったりPCを介さずクラウド上に保存する機能があったりと他社とは少々毛色が違う感じ。
    価格は3万円台前半。

400冊程度スキャンするなら自炊代行より買ったほうが安くなりそう。

ScansnapはLinuxで使った/使えたというblog等々見つかるので問題なく使えそう。
それ以外はそういった記事が見つからず、ドライバはあるもののホントに使えるのかが微妙によくわからない。

(参考)

ではどうするか?


家にある本は350〜400冊程度、これからも増えるんだろうな〜 ということを考えて一式揃えることに。
ということで下記2点を購入。
特にスキャナはUbuntuでどこまで使えるか半分博打なところはあるけど、それはそれで楽しめそう。

2014/01/11

SONY WALKMANでのAAC再生

SONY WALKMAN NW-A850


通勤中などに音楽を聞く用途の場合、ノイズキャンセリング対応&そこそこ小型、というのが重要。

ということで、普段はNW-A850を使用している。


こいつを使用する上で、不満だった点がいくつかあった。
  • 24h使用しないとスタンバイモードから電源OFFになるが、電源OFFになると再生していた場所を忘れる
  • Vorbisに対応していない
  • AACに対応と書いてあるが再生できない?

これらのうち、最後のAACの件について少しだけ進展したのでメモ。

aacの再生できなかった状況


NW-A850の仕様一覧を見ると、音声圧縮形式としてAACにも対応、と書いてある。

しかし、*.aacなファイルを入れても再生リストに出てこない。

実は再生不可能なフォーマットになっていて、そういったものはリストに出てこないのかと思って*.wmaで48kHzなファイルを入れてみた。

しかし、再生リストには出てくるが未対応のフォーマットです、と怒られる。ということで再生可能かどうかはあまり関係ないらしい。


aacが再生リストに表示されない原因


WALKMAN用のファイル転送ソフトであるx-アプリに関するWikipediaのページを見ると、aacに関するコンテナフォーマットとしてMP4(*.3gp,*.mp4,*.m4a)と書かれていた。

つまり、拡張子が*.aacで再生リストに表示されなかった理由はコンテナだった。

AACといえば拡張子はaac、と思っていたので、まさかコンテナの問題とは思わなかった…



aac→m4aの変換方法


aacからm4aへの変換はffmpegでできる。

ffmpegで音声変換を行う際の基本的な書式はffmpeg -i <input_filename> -acodec copy <output_filename>だが、どうやらffmpegでは出力ファイル名として*.aacが指定された場合には素のAAC、*.m4aが指定された場合にはMPEG4コンテナに格納されたAACを出力するらしい。

そのため、<input_filename>*.aacを、<output_filename>*.m4aを指定することでAACファイルをMPEG4コンテナに入れることができる。
今回は下記のようなシェルスクリプトを作って一括で変換。

#!/bin/bash

IFS=$'\n'

for input_file in $*
do
/usr/bin/ffmpeg -i ${input_file} -acodec copy ${input_file%.*}.m4a
done

変換した後にWALKMANへコピーすることでリストにも表示されるようになった。

しかし、再生してみると再生はされてるようだけど音が出ない…
詳細情報を見るとビットレートが0kbpsと表示されているのでまだ何かがおかしいらしい。
原因はなんだろうなぁ…


(追記)
いろいろ試してみたところ0kbpsと表示されても再生できるものもある。
  • ダメだったもの: 48kHz / 49kbps
  • 再生できたもの: 44.1kHz / 49kbps, 98kbps, 194kbps

ちなみにNW-A850の仕様には下記のように書いてある。
本体で再生可能なAACファイル形式フォーマット:AAC-LC
ビットレート:16-320kbps(VBR)(サンプリング周波数によっては規格外および保証外の数値も含みます)
サンプリング周波数:8/11.025/12/16/22.05/24/32/44.1/48kHz

サンプリング周波数によっては規格外および保証外の数値も含みますに引っかかってしまっているのかもしれない。


(追記 その2)
先日スペインへ行った際に、WALKMAN本体を紛失してしまった。
そのため試行錯誤も終了。


参考

2013/10/26

Ubuntu 13.10へのアップグレード

Ubuntuのアップグレード実施


13.10へのアップグレード通知がきていたのでアップグレードしてみたところ、いくつかトラブルがあったのでメモ。
  • GUIでログインすると操作不能
  • IBusの仕様変更
  • Chromiumでの拡張機能動作不良
  • ディスプレイのスリープ不可

GUIでログインすると操作不能

ログイン画面でパスワードを入力すると13.04で使用していたユーザでログインはできる。
しかし、その後は背景画像とマウスカーソルが表示されているだけでそれ以外には何も表示されない。

マウスをクリックしても特に何も起きない。
もちろんキーボード入力も意味がない。(NumLock On/OffでLEDは点灯消灯するので、生きてはいる) 

また、Ctrl-Alt-F2 で別のコンソールに切り替えても、ディスプレイ上の表示は変わらない。
ただ操作自体はできているようで、(目隠し状態で)ログインして shutdown -h now 等実行することは可能だった。 

ちなみに、試しに他のマシンからSSHでログインしてみたところ、通常通り操作可能。
SSHでログインして.xsession-errorsを見ると、init: dbus pre-start terminated status 2といったことが書かれていた。(細部はうろ覚え)

 もう他に打つ手が思いつかなかったので、試しに別のユーザを作成してログインしてみた結果…
ふつーに表示できている!(何故?) 
これはどこかの設定がおかしいのだろうと思い、事象が発生しているユーザの設定系を全部renameしてみた。
しかし、状況は変わらず。

手詰まりになってしまったため、新しいユーザに古いユーザの設定をすべて移行してこちらを使うことにした。

IBusの仕様変更

上記のトラブルを乗り越え13.10を使い始めたものの、早速次のトラブルに遭遇。
日本語入力はどうやるの?

IBusの設定を見ても、以前あった日本語入力ON/OFFキーの設定がなくなり、次のインプットメソッドだけになっていた。
ちなみに、この次のインプットメソッドの設定はmozcやAnthyといったインプットメソッドを切り替えるキーの設定で、日本語入力ON/OFFを行うキーではない。

どうやら、Ubuntu 13.10に入っているIBus 1.5は以前と仕様が変わってしまった模様。

当座の解決策としては、インプットメソッドとしてmozcやAnthyを選択した状態のままにしておくこと?
とりあえず、mozcやAnthyが選択されていれば全角半角で日本語入力ON/OFFを切り替えられた。
アイコンは変わらないので入力するまで日本語入力が現在ON/OFFどちらなのかわからず、使いづらいが…

なお、IBusの代わりにFcitxを使うという解決策もあるらしいので、乗り換えようか検討中。

Chromiumでの拡張機能動作不良


Chromiumの拡張機能のうち、表示されている要素を書き換える系のものがうまく動いていない。
例えば、通常Adblock Plusでブロックされた要素は非表示となるハズだが、現在は(画像の読み込みはブロックされているが)要素そのものは残っている。

何かの設定が影響しているのかと思っていじっているが、今のところ原因不明。

このままでは使い勝手が悪いので、メインのブラウザはFirefoxに戻した。
ただ、最近はAndroidからPCへURLを送るphone2chromeという拡張機能をよく使っていたので、Firefoxでそれ相当の拡張機能を探さなきゃいけないのがちょっと面倒…

(追記)
しばらくぶりにchromiumを使ってみたら、Adblock Plus等が問題なく使えるようになっていた。
このときになぜ使えなかったのかは相変わらず不明。

ディスプレイのスリープ不可


ディスプレイがなぜかスリープしない。
原因はなんだろう?

2013/10/07

CEATEC2013

CEATECへ行ったので、感想をつらつらと。

全体的に

数年前からだいぶ元気がない感じだったが、今年もそこまで回復してない印象。
去年/一昨年はHEMSとかのエネルギー関係が多かったけど、今年はそれが少し減った分4Kが増えた感じ。
ブースの数は減ってる気がする。

メーカブース


SONY

  • 4K有機ELディスプレイがとっても綺麗
  • 最近話題のレンズスタイルカメラ(DSC-QX100)は、コンセプトはおもしろいんだけど結構使い勝手が悪い印象 ソフト改善で何とかなるか?

SONYブースの4K有機EL



富士通&三菱

  • 展示内容がバリエーションに富んでて見応えがあった
  • 特に富士通の参考出展エリアがおもしろかった

富士通の参考出展 FingerLink


富士通の参考出展 FingerLinkを実際に操作している様子。
テーブルに置かれた紙をスキャン&指の位置を検出してクリック動作&紙の位置に合わせて情報を表示。



Panasonic

  • 富士通や三菱と対照的に「4K」一本に絞った潔い展示
  • 4K TV、4Kタブレット、4Kカメラ、etc...

Panasonicブースの4K有機EL



SHARP

  • 一部コンセプト展示(コールドモックレベル)はあったけどほぼIGZO一色
  • 通常の液晶ディスプレイ以外にもMEMS IGZOとかもあった
  • あまりにIGZOに偏りすぎていて、「亀山モデル」の失敗を繰り返さなければいいけど… と心配になるレベル



東芝&NEC

  • 富士通&三菱とPanasonic&SHARPの中間くらい 良く言えば普通、悪く言えば印象に残らない



DoCoMo

  • 今年は端末の展示がほとんどなくてコンセプト展示がメイン
  • コンセプト展示のメガネ型デバイスはおもしろいんだけど 普及はまだまだ先な感じ

メガネ型デバイスを使って紙のノートの上にディスプレイ(というかタブレット端末)があるように見せるコンセプト展示。
ノートを近づけたり遠ざけたりするとそれにあわせてディスプレイの大きさも変わる。



車系メーカ

  • 家電の遠隔制御とかスマートフォンを使った話とか去年よりもCEATECっぽい展示が増えた
  • DENSOのワインセーバーはもうちょっと安かったら欲しいところ

DENSOのワインセーバー



ASKANET

  • 去年出していた空中ディスプレイにセンサをつけて より実用的な展示
  • とてもおもしろい製品なのでぜひマスプロダクトになってほしい