スキャンしたjpegからKindle用のmobiを作る

はじめに

随分前に 裁断機を買いました 。 この時にスキャンしたものはjpegをzipで固めてSambaの共有ディレクトリに配置、Nexus9で ComittoN を使って閲覧できるようにしていました。 この形はデバイス本体にファイルを置かないため、ストレージの空きを気にしなくてよいのがメリットな一方、当たり前ながらSambaにアクセスできる環境でしかファイルを閲覧できません。 VPNを構築すればこの制限は回避できます。

ただしかし手元にある本の数がそれほど多いというわけではないけれど、物理的な本がこれ以上増え続けるのもどうかなと思い始めてきたので、最近新しく買う本はKindleにしようかどうかと考えていました。 そこで、もしKindleへ移行した場合、既存のデータもKindleで読むことができないかと考えました。 スキャン済みのデータは多くないので簡単に変換できるようであれば変換してしまってKindleに一本化したいというのが今回の動機です。

スキャン後の画像データを調べる

今回はmobi形式のデータを作成するのに Kindle Comic Creator と画像の前処理にImageMagic を使います。

image

お試しとして、以前スキャンした攻殻機動隊のデータを使いました。 この冊子のデータは300ppiでスキャンしたもので、表紙、裏表紙を含めて全部で52枚(000001.jpg-000052.jpg)、 縦が2125-2166px、横は1473-1489pxでした。ScanSnapが適当にトリミングするので画像の大きさにばらつきがあります。 Kindle Comic Creatorは全ての画像が同じアスペクト比になっていないとダメみたいなので余白を加えるなどして調節が必要そうです。 あとNexus9の解像度が2048x1536で、それ以上大きくても意味がないので少し縮小した方がサイズの節約になりそうです。

Kindle Comic CreatorがWindows/Mac対応だったのでMacで作業しました。 ImageMagicはhomebrewでインストールしました。 正しくインストールされていれば identify と ...

more ...

AnniversaryUpdate適用後にNW-E052が認識されなくなる問題の対応

何が起きたか

妻のマシンをWindows10へアップデートしたあとしばらくしてから(AnniversaryUpdate適用後)、Walkmanが使えなくなったと言われました。 具体的には以下のような画面が表示されたので本体の初期化をしたが状況が改善されない、ということでした。

image image

通常WalkmanはUSBメモリと同じようにエクスプローラに表示されるのでプロパティを確認してみると、 このようになっていてドライブとして正しく認識されていないようでした。

image

コンピュータの管理から確認してみるとこう。ボリュームが無いように見えます。

image

公式の情報

Windowsのアップデートをする前は特に問題なく使えていたということでした。 アップデートが原因だとはあまり考えられないのではと思ったのですが、調べてみたら公式のアナウンスを見つけることができました。

ここにはE080/S10/S770/S780で問題が起きること、これらのモデルはソフトウェアアップデートで対応することが書かれていました。 手元のNW-E052でも同様の問題が起きていましたが、サポートが切れているためかここでは触れられていませんでした。 また当時は暫定の回避策の情報もなかったので打てる対策がない状況でした。

見つけた対応策

買い換えるしかないのかなぁと思ったのですが、なんとか回避できないかと思ってしつこく調べていたら 認識するようにできたという情報 があったので試してみました。 結果的にあとからアナウンスされた公式の回避策も含めて以下の2通りの方法があります。

  1. Windows10以外またはAnniversaryUpdate未適用のPCでフォーマットする。 (公式)
  2. MiniTool Partition Wizard というツールを使ってWalkmanのボリュームに対し Set inactive という操作をする。 (非公式)

環境を用意できる人は1の公式の対応策に従ってください。 ただこの公式の方法ですが、普通の人は他のPCを用意できない場合が多いと思います。 が、AnniversaryUpdate適用済みのPCでも復活させる方法を偶然見つけたのでこちらも書いておきます ...

more ...

秋月電子で買えるIGZO液晶のケースを作ってみた

前回 動作確認をした液晶ですが、ケースの加工の見積もりを依頼した業者がどうも信用できない印象だったのでキャンセルしました。 レーザーカッターを使わせてもらえる場所がいくつかあるので、そこを利用して自作することにしました。 そのうちリーズナブルで講習を受ける必要もないし場所も職場とそれほど離れていなかったため FabCafe Tokyo でカットしてもらうことにしました。

レーザーカッター の説明にあるように、Drop-inでの利用は10分800円。 データの作成方法は簡単にですが FAQ に書いてありました。 ただ見るべき場所が分散しているので、FAQからの抜粋と今回実際に利用してみてわかったことをまとめておきます。

素材について (主にアクリル板について)

  • 800x450mmまでの素材をカット可能
  • アクリル板の場合、厚みは最大5mmまで
  • 上記の制限内であれば持ちこみ可能
  • 150x150mm、2mm厚のアクリル板は店頭で購入できる

データについて

  • 図面のデータはIllustrator CS4形式を推奨
  • カラーモードはRGB
  • カットしたい線の太さは0.01pt、色はRGBで255,0,0
  • カットする順序を変えたい場合は赤と緑以外で別の色にしておく (今回は0,255,255を使用)
  • 彫刻する面は、線無し、塗りつぶしの色は0,255,0
  • 上記の条件を満たしていればInkscapeで作成したSVGでも可 (今回は問題なかった、ズレる可能性はある)

Inkscapeについて

  • はじめに ファイル -> ドキュメントのプロパティ ...
more ...

秋月電子で買えるIGZO液晶を試してみた

秋月電子で SHARPの7インチIGZO液晶モジュール を購入したらあっという間に届いたので動作確認してみました。 動作確認自体は土曜に終わっていて、本当はアクリルのケースを作成してから記事を書くつもりでした。 が、月曜の夜に見積もり依頼を出して既に木曜の深夜です… メールには2営業日と書いてあったのに何が起きているんだろうなぁと少しイラッときたので先に記事だけ書いてしまうことにしました。 (ちなみに今日くらいから シリコンハウスでも購入できる みたいですね。)

組み立てと接続に関しては付属の説明書を参考にすれば特に問題なく済ませることができると思います。 注意すべきことがあるとすれば、細い方のフレキシブルケーブルのコネクタは、開く方向が太い方とは逆になっていた点くらいです。 あとは単純に壊さないように作業するだけです。(すごく壊れやすそうなので何度も作業したくない感じでした。)

映像の出力機器に関して、とりあえず普段使用している MiniDP-HDMI変換ケーブル を使ってMBAと接続してみたのですが無反応でした。 次にGentooがインストールされているデスクトップと DVI-HDMI変換ケーブル を使って接続してみたら、こちらはうまく表示されました。 MBAが悪いのか、変換ケーブルが悪いのかは切り分けることができていませんが多少相性はあるようです。 Twitterでも報告している人がいましたが接続する機器によっては映らないということがわりと当たり前に起こりそうです。こわいですね。

下の画像はデスクトップに接続して画面を左に90度回転した状態で撮影したものです。 この液晶の仕様でデフォルトでは縦画面の1200x1920で認識されるようです。 なので、横向きで使用したい場合はOS側で画面を回転させてやる必要があります。 (この仕様のせいでおそらくPC以外の機器との接続が難しくなっているのだと思われます。)

Gentoo(Linux)のXでは xrandr というコマンドがあり、これを利用すると画面を回転させることができます。 今回はこのように xrandr -o left 実行しました。

image

アクリルケースに関しては、本当はCADやIllustratorを使用して書くのかもしれませんが、木材を使った家具のイメージ作りのために SketchUp を使っていて ...

more ...

GentooとNginxでLet's Encryptを使う

Let's Encrypt がPublic Betaになったので使ってみました。 Gentooに関してはまだ実験的なサポートで、Nginxはこれからプラグインが取り込まれる予定みたいです。 (なので他の組み合わせて使うより多少不便なのかもしれない) ただ試してみた結果現状でもとても簡単に利用できました。

基本的には ドキュメントInstallationHow to run the client の章を読めば事足りて、 あとは必要に応じて User Guide も読むといいはず。

まず必要なファイルはgithubからcloneするだけ、コマンドを実行したタイミングでディストリビュージョンごとに必要なパッケージが自動でインストールされるようになっていました。 Gentooの場合は bootstrap/_gentoo_common.sh に書かれていて以下のパッケージがインストールされるようになっていました。 あと普通に実行するとGentooは実験的なサポートなので --debug をつけて実行するように言われるのでそのようにします。 ただこれは初回のパッケージのインストール時のみ必要みたいなので、次回以降はつける必要がありませんでした。

PACKAGES="dev-vcs/git
  dev-lang/python:2.7
  dev-python/virtualenv
  dev-util/dialog
  app-admin/augeas
  dev-libs ...
more ...

WN-G300UAを使ってみる

今までWiFiのアクセスポイントには WLI-UC-GNM を使用していたのですが、たまにOSごと巻き込んでクラッシュするのとアンテナがないので電波が悪い部屋があったので交換してみることに
アンテナがついている機種でLinuxでの動作実績がありそうなものを探した結果 WN-G300UARaspberryPiでの動作実績もあるみたい で良さそうだったので購入してみました
ちなみにWLI-UC-GNMは772円、WN-G300UAは1470円でした
上述の参考サイトにはモジュールのオプションでパワーマネージメントを無効にすれば普通に動くということだったのですが、これから色々ハマるとは思いもしませんでした…

  • このデバイス用のドライバがカーネルに含まれていますがまともに動作しませんでした (繋がるけれどすぐ切れるという動作 Kernel 3.14.48)
  • チップセットメーカーもドライバを提供していて参考にしていたサイトではそれを使うように説明がありました
    しかし手元のカーネルではビルドすらできませんでした
    参考にしていたサイトはRaspberryPiを使ったサイトが多かったのですが、彼らの使用しているカーネルは古かったようです

いろいろ検証した結果ArchLinuxのパッケージで使われているリポジトリとパッチを当てたものを使用すれば動作することがわかりました
Arch以外のディストリビュージョンではそのままビルドすることができないのでArchで使っているリポジトリをサブモジュールにしてMakefileとWN-G300UA用のパッチを追加したリポジトリを作成しました

以下の手順でビルドすることができます

$ git clone https://github.com/lostman-github/8192cu
$ cd 8192cu
$ git checkout WN-G300UA
$ git submodule init
$ git submodule update
$ make
$ cd -

$ git clone ...
more ...

Xvfb上でChromeを動かしてみた

外出中にFlashを使ったサイトをチェックしたいという要望が某所から出てきたので環境を作ってみた
普段から PC を持ち歩いている人には必要ないことかもしれないけれど普通の人は持ち歩いていないよね
私も荷物を持つのが嫌いなのでポケットに入るスマホと財布くらいしか持ち歩いていないです
ということで、スマホで見れるといいけれど Android の Firefox で使える Flash はもうサポートが切れているのでいまいちな感じ
で、自宅には常時起動のマシンがあるのでそこで何か用意できないかなと考えて今回 Xvfb を試してみた

Xvfb はなにかというと通常 X はクライアントからの要求を受けてドライバを経由して実際のモニタに描画するのに対し、
モニタでなくメモリ上に確保した仮想のフレームバッファに画面を描画します
このため画面がないマシンでも GUI のアプリケーションが起動できます
サーバ上で GUI のアプリを動かすにはうってつけですね
ただこのままだと外部から描画された画面を見ることができないので
x11vnc を使って外部から画面の様子をVNCクライアントを使って見れるようにしました
Chrome を選択したのは Flash を動かすのに追加でプラグインが必要ないためってだけ

必要なものをインストールする前に package.use に必要は USE フラグを追加して

app-text/ghostscript-gpl cups
media-fonts/ja-ipafonts X
net-libs/libvncserver threads ...
more ...

SketchUpをLinuxにインストール

SketchUp を Mac にインストールして使用していたのですが、 Mac のタッチパッドだといまいち操作性が良くありませんでした
大画面でマウスを使って操作したかったのでデスクトップの Linux マシンにインストールしてみました
SketchUp は Linux 版が提供されていないので Wine を使用することになります (公式の FAQ にもしれっと記述があった
WineHQ にも SketchUpのWikiページ があり情報がまとめられています
ただ多少ハマった部分があったのでやったことを残しておく

まず 公式サイト からインストーラを入手する
自分がダウンロードしたのは SketchUpMake-ja-x64.exe だった
インストール後にバージョンを確認したら 15.3.331 64ビット となっていた

デフォルトの Windows XP だとバージョンチェックで起動できないので winecfg を起動して Windows 7 へ変更する
インストールするディレクトリを変えたい場合は WINEPREFIX 環境変数を使ってwine関係のコマンドを実行する
(デフォルトでは ~/.wine ...

more ...

ibusからuim-mozcへ移行

一時期 ibus が色々話題になりましたね *1 *2
僕の環境では ibus-mozc を使っていたのですが、 1.5 系へは移行せず 1.4 系にとどまっていました
このまま放置していてもよかったんだけれど、 Gentoo のリポジトリから 1.4 が
なくなっていることに気がついたので別のインプットメソッドへ移行することにしました

Linux でのインプットメソッドで代表的なものは ibus 、 uim 、 fcitx といくつかあるけれど
Mac で MacUIM を使っているので Linux のマシンでも uim を使うことにしました
ただ Gentoo の公式リポジトリのパッケージでは mozc を uim と組み合わせることができないみたいだったので
自分で ebuild を書くか、他の人が書いたものを使わせてもらうかのどちらかがあるみたいです
今回は wjn-overlay を使わせてもらうことにしました

ここ ...

more ...

Redmineをインストールしてみた

Googleカレンダーに予定を入れるようにしていたんだけれど、カレンダーなので日付を入れなくてはいけなくて
日にちが決まってないけれどやろうと思っていることを入れておくことができないのでちょっと不便でした
Redmine等のプロジェクト管理ソフトを入れるのは大袈裟な気がしていたんだけれどRedmineは以前仕事でも使っていたし
自分のサーバにインストールして使うとなると思いの外選択肢が少ない感じだったのでRedmineを入れてみました

もやっとした要件は

  • サービスでなく、自分のサーバにインストールできること
  • 依存するものが少なく、導入が楽
  • 日付を入れずにタスクを登録できる
  • 優先度を設定できる
  • 日付が入っているものはカレンダーで確認できる
  • スマホからタスクを確認、編集できる

なんとなく導入が面倒というイメージを持っていたんだけれど、手順を見る限り簡単そうでした
ただ、少しハマった部分もあるのでそれは後述 (最新は3.0.1なんだけれどドキュメントが2.xのまま更新されていなかったりする
あとスマホでのタスクの確認はRedmineではできなくて、 RedminePM というアプリから行うことにしました

今回RedmineをインストールするOSにはRubyが入っていないのでRedmine用のユーザを用意して
ホームディレクトリにrbenvをインストール、rbenvを使ってRubyをインストール、Redmineをインストール
と、全て専用ユーザのホームディレクトリ以下で済ますことにしました
また、追加でインストールするものも抑えたかったのでRedmineはWEBRick、SQLite、ImageMagickなし、で動かすことにしました

まずユーザを作って、ログイン

# useradd -m redmine
# su - redmine

rbenvruby-build をインストールする
ここからは全てこのユーザのホームディレクトリ以下で作業

more ...