Androidタブレットでepubcheck

タイトルが大嘘ですみません。
AndroidタブレットZenpadにtermuxでLinux環境を作って仕事・作業もこれで間に合わせよう、というネタ。
電子書籍、EPUBファイルの作成仕事をいただいている。
作業環境というか制作に使うのはエディタとperl。
そして作ったepubファイルが正しくできているかチェックするのに必要なのがepubcheckというjavaで走るスクリプト(プログラム?)。これでチェックしてエラーや警告のないことが納品の前提となる。
wordやinDesign(の出力したepub)をエディタで確認、epubファイル生成用の独自タグを埋めこんだりその他タグの調整をして、perlのスクリプトに食わせてepubファイルのできあがり。
とりあえず作ったepubファイルをepubcheckにかけてエラーの確認。
使っているスクリプトは各クライアント用にカスタマイズ済なので、初めての案件でもない限り、ほぼエラーは出さない。
このエラーのないepubファイルを電子書籍リーダー(Kinoppy)に読みこんで確認・修正作業となる。圏点や太字の漏れや、字下げ、文字サイズ、空行の調整などを原稿(WORDやPDF)を見て、該当するxhtmlファイル(epubファイル)をエディタで開いて手作業での修正だ。
わたしは雑な性格なもんで、ここでエラーを紛れこませてしまう(なので、できるだけスクリプトにして極力手作業は避けるようにしている)
せっかくepubcheckでエラーのないファイルを作っても、その後の手作業修正でエラーにすることがある、ということだ。
ファイルを修正するたびに必ずepubcheckでエラーの確認をしている。
なのでAndroidタブレットでjavaがない、epubcheckが使えないのは致命的。
termuxでjava(jdk-8)を動作させているハッカーのひともいるけど、素人のわたしはパッケージとして用意してもらわないとまず無理。
歓喜の持ち歩けるLinux環境が宝の持ち腐れだ。
わたし得意の「とりあえず」の「やっつけ」で、epubcheckは無理だけど、できたファイルをチェックする程度のスクリプト(perl)を「でっちあげた」
前提として、epubcheckの通ったファイルであること。
手作業で紛れこませるエラーは、タグの不整合(閉じ忘れ・削除し忘れ)、追加や変更があってopfにファイルの登録し忘れ、といったところがほとんど。これらを潰せればだいたい問題はない。
タグの不整合チェックにperlのHTML Lintを入れてみたんだけど、ちょっと使い勝手が思ったのと違うので見送り。タグの数をチェックするだけで十分てことにした。
また、META-INFのcontainer.xmlから辿って、opfファイルを読みこみ、ファイルの有無、manifestとの整合もチェックする。
もちろん、この程度のものが業務実用になるとは思わないので、納品前にはepubcheckを通す。ただ、途中途中、外出先などでの確認作業はこれぐらいで十分だろう。これで急ぎの対応なんかも可能となる。自画自賛。
termuxのコンソールで走らせてニヤニヤした勢いでこの雑記を書いてるんだけど、こりゃただの日常雑記、何の役にも立たんな。
いや、ほんと申し訳ない。
ポケモンGOのイベントがひと段落したら、本格的に持ち歩きLinux環境の稼動だ。
[06/21 19:26:40]
EPUBファイルと同じ階層にスクリプトを配置。
引数にEPUBファイルを渡すと
1)unzipを呼びだして解凍
2)フォルダ構成を表示
3)opfに登録されているファイルが、EPUBパッケージの中で登録通りの場所に配置されているかチェック
4)逆にEPUBパッケージに配置されているファイルが、opfに登録されているかチェック
5)タグの不整合のチェック
・opfに登録されている「contents014.xhtml」ファイルが見当らない
・「cover00.jpg」「contents020.xhtml」がEPUBパッケージ内にあるけど、opfに登録されていない
・spanタグがおかしい。開始タグが1つあるのに閉じタグがない
・contents001.xhtmlの42行目あたり
てな感じ。
昨日書いたように、epubcheckの代わりになるものではない。あくまでも、とりあえず最低限(にも足りないけど)の確認だけ。epubcheckをちゃんと使って確認していることが大前提。
こっちのPCではepubcheckが使えるけど、こっちのPCだと使えない、というような場合の緊急避難的安心感を得るためのもの。いや、こんなんでもけっこう助かる、おれは。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
termux環境でXML::Simpleのインストール

Androidタブレットのlinux環境、termuxにperlをインストールして普段の仕事環境を構築していくネタ。
XML::Parserのコンパイルでハマったのでメモ。
結論からいうと、expat.h expat_external.hというふたつのファイルをexpatの本家サイトからいただいてきて/usr/include/に配置して解決。
expat本家→https://github.com/libexpat/
perlのXML::SimpleというXMLを解析するためのモジュールは必需品。
WEBで提供されるもろもろのデータのほとんどはXMLかjson形式なので、なくてはならないシロモノだ。
また、ワード(.docx)やエクセル(.xlsx)も、その本体はXMLファイルなので、ワードファイルの解析にもXML::Simpleは必須。というか、XML形式のデータは日常のあちこちに広く深く潜んでいる。
このXML::Simpleというモジュールは、MacOSXでも、WINDOWSのActivePerlでもデフォルトで入っている標準のモジュール(…って記憶が曖昧)
ところが、termuxのperlのパッケージには入っていないので、CPAN(perlのモジュールならなんでも揃う巨大なアーカイブ)から持ってくることにした。
CPANのインストール
pkg install cpan
makeのインストール
pkg install make
XML::Simpleをインストールするために必要なXML::Parserは(ていうか、XML::Simpleは被せもの・ガワでその実体はSAXとかParser)「.xs」ファイルを生成する必要がある、Cコンパイラが必要なので。
Cコンパイラのインストール
pkg install llvm
pkg install clang
これで準備完了。cpanのコマンドラインで
install XML::Simple
とやればインストールできるはずなんだけど、XML::Parserのインストールでエラーとなって止まってしまう。面倒くさいけどインストールのログを見ると
コンパイルに必要な「expat.h」が見つからない、というエラーで終了している。
「XML::Parser cpan expat.h」などとぐーぐる様に訊ねてみたらさくっと解答が出てきたので、expat本家サイトから「expat-2.2.5.tar.bz2」をいただいてきて解凍、その中に入っていたexpat.h(と、expat_external.h)を「/usr/include/」にコピーしたら無事インストールできた。
とりあえず今日はここまで。
というのも、termuxのlinux環境はファイルのpathが独特、というか閉じた中でやってるみたいで、スクリプトの中でファイルのコピー操作が意図どおりにいかない。これは調べなきゃ、だなあ。
termuxというAndroidのlinux環境。こりゃ久しぶりに面白いもの見つけたなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
AndroidタブレットでLinux!

ASUSのZenPad8.0 z380mを購入した。
出先のマクドやスタバで、タブレットとキーボードで何やら作業しているひとを見かけることが増えていて、あれ?タブレットて使えるんだ、へえ、と思ってた。
ぐーぐるさまで検索してたら、なんと、termuxというアプリを入れるとAndroidタブレットでLinux環境ができる、perlが使える!というじゃありませんか。
そういや、ウチには2012年のNexus7が塩漬になってるんで、ちょっと立ち上げてみたら…もう全然使いものにならない。アプリの起動に数秒、文字入力にやっぱり数秒かかる。話にならなった。そもそもAndoid4.4.4なのでtermuxもインストールできん。こりゃ文鎮として余生を過してもらおう。
てことで、amazonさまで検索したらASUSのZenPad8.0が15000円弱。Android6.0、アプデで7.0になるとのこと。久しぶりに滾る物欲。家人に相談してポチっと。一緒にマイクロSD128Gや、ケース、保護シートなども買って約20000円也。
ZenPad8.0のスペックはこちら
https://www.asus.com/jp/Tablets/ASUS-ZenPad-8-0-Z380M/
いや、もう素晴しいのひとこと。ブラボーでスパシーボだ。
普段、ウチの仕事の主力機はDELLのInspiron mini 1012というネットブック。ディスプレイが10インチでほぼA4サイズ。2013年ぐらいから主力として使っていてかれこれもう5年ぐらい経つけど、今でもまったくなんの問題もない。
ただ、仕事のデータがかなり溜っていて、おもてに持ち出して仕事をするのはなにかと物騒だし、また、落したり事故ってデータが飛んだらシャレにならない。
ここんとこわたしの仕事環境の変化、というか、一日8時間軟禁拘束される運用仕事が入っていて、それまでのように急な対応ができなくなっている。Inspiron miniを持ち歩くこともちらっと考えたんだけど、上記理由で却下。
急ぎで対応する必要があるのは
・ブラウザを使って管理ページからの作業
・エディタやperlを使って誤植や本の作りに関しての修正
つまり、おもて、外出先でブラウザ、perl、エディタが使えればいい。
そんな時に目についたのがタブレットで、それもLinux環境が使えるという話だ。飛びつかなくてどうする。
手前がZenPad8.0とbluetoothのキーボード、奥がInspiron mini、その奥がmac mini。
届いた状態のZenPad8.0はAndroid6.0で、システムアップデートが何度か走って7.0となった。1時間ぐらいかかった、かな。
同じASUSのZenfone2と並べてみた。
そしてこれがtermuxによるlinux環境。コンソール画面。
termuxについてはこちら(google play ストア)
https://play.google.com/store/apps/details?id=com.termux&hl=ja
ほかのアプリをインストールするのとまったく同じ。rootを取る必要もない。
インストールしたらコンソールで
apt update
apt upgrade
と叩いて最新のものに更新。
termux-setup-storage
で、内部ストレージやSDカードのディレクトリやファイルをいじれるようにする。
あとは、
apt install perl
apt install zip
などと、必要なものをインストールするだけ。
作業的には。
Androidのjota+(エディタ)でファイルを編集修正。
termuxのツールで加工、チェック。
AndroidのAndFTP(FTPアプリ)で納品。
ということができて、自宅作業とほぼ同じことができることとなった。
また、ブラウザの管理ページで作業するにしてもスマホの小さい画面と違ってこのタブレットなら余裕だ。
もちろん、ウチで、Inspiron miniでやってることをそのまま全部できるわけはないんだけど(今時点だとjavaがないし)これでかなり助かるなあ。
権限の問題でファイルが実行(+x)できなかったりクセがあるので、そのあたりはこれから環境設定していく、かな。perlが使えるようになったのでそれ以外は割とどーでもいいんだけどねー(適当)
にしても、2万円弱で持ち運べるLinux環境だ。MSDOSの頃からすると、ほんと21世紀、未来にきたよなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
arrows m02からm03に機種変更

約2年(1年8ヶ月)使ってきたarrows m02のUSBコネクタが怪しくなった。
充電がうまくいかないことが増えて、コネクタに差しこむ角度や深さの調整が必要になった。
それとはまた別に、つい先日、落してしまって、電源ボタンが割れてしまった。
てことで、m02からm03に乗り換えた。
今回はmineoの直販ではなく、秋葉原のイオシス(IOSYS)という中古屋(?)さんで未使用品19800円也。
なんでまたarrowsなのかというと。
わたしの場合、Suica(おサイフケータイ)と生活防水は必須。どちらも便利で手放せないんだよねえ。
このふたつの条件を満たしているものの中から安いものを探したら、またarrowsになった。ポケモンGOには少しスペックがしょぼいんだけど、特に文句もない、可も不可もない優等生2番手タイプの眼鏡クンといったところか。
とりあえず、これでまた2年ぐらいは頑張ってもらおう。
…USBコネクタ部は気をつけないといけなかったなあ。
とほほ。
[2017/12/28 09:20:11] 追記。
挙動不審がひとつ。
「設定」からソフトウエアアップデートを確認してアップデートを繰り返してたら。
「システムが不正改造されてる恐れがある為、ソフトウエア更新を行いませんでした。更新以前のバージョンで再起動します。」
と表示されてアップデートができなかった。
なんじゃそりゃと思って、mineoの公式ページにあるチャット相談で聞いてみたら、初期化してみては、と。それでもダメならメーカーに問い合わせてね、ということだった。
購入直後でたいして面倒でもないので、初期化したら無事最新のバージョンとなった…というか、すでに最新バージョンになっていた。なんだったんだろう。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ipod touch5が来た!

ipod touch5(第6世代)を購入した。
Appleの整備品で18500円也。
iPod touch 32GB [整備済製品] - シルバー(第6世代)
詳しいスペックはappleのサイトで確認できるが、特長として挙げられてる
「厚さ6.1mmの圧倒的に薄いボディ」
これが誇張でもなく本当に圧倒的なのだ。
近所の量販店で実物を見て触ったら
うすっ!ちいさっ!かるっ!
で、ビックリだった。実際手に持つと、このサイズがぴったり掌にハマる。
最近のスマホはどれもこれも手に余るサイズの大鑑巨砲主義で、それはそれでいいんだろうけど、モバイルという言葉からすると違うだろう、とずっと思ってたんで、このtouchには感心してしまった。
…てことで物欲がふつふつと滾って購入となった。ちなみに家人も買ったのでわが家に2台やってきた。
わたしにとっては、iphone4S 以来のapple、iOSのモバイル端末だ。
何につけても清く正しいapple信者はうんざりなんだけど、apple製品のUI、使い勝手とデザインは他のOSやデバイスと比較して断トツだというのは同意する。
わかりやすいし、いじってて楽しい。
ウチではmac OS XとWINDOWS10があるけど、普段はmacを使っていて、WINDOWSは電書制作などの「仕事用」だ。
ipod touch と zenfone2
大きさの違いが一目瞭然。touchは厚みがないので、この見た目比較よりもずっと小さく感じる。もっとも、zenfone2やメインで使っているarrows m02が厚いのはバッテリーだろうからしかたがない。
必要なものだけを並べるとこうなる。
・twitter、Safari、Instagram、音楽player
・gmail、メモ、dropbox、iCloud driveと IngressにポケモンGoだ。
ipod touchにはGPSがないけど、テザリングで接続したケータイから情報を取得することができるらしい。今のところ、GPS機能が必須のIngressもポケモンGoも特に問題もなく動作する。
GPSを掴むのに少し手間取ることがあったり、少し違う場所にいたりするぐらいでゲームに支障はない。
ポケモンGoはアンドロイドとiOSでは動作が別モノだと噂には聞いていたけど、本当だった。
特にジム戦での動きがまるで違う。
アンドロイドスマホでは動きがカクカクしだして、相手の攻撃を避けられなかったり、ボールがうまく投げられなかったりして、途中でいや気がさして投げだすこともあった。
touchでは今のところまったく問題がない。ポケモンの傷を回復する時間さえ早いのには驚いた。
ネットの性能なのかグラフィックの性能なのか。
ただし、この薄さだ。バッテリーはもたない。
モバイルバッテリー必須、あるいは、touchはジム戦用ピンポイントで使う感じでいいかもしれない。アンドロイドよりも起動が全然早いので、再起動も気楽にできる。
にしても、このtouchはいいなあ。しばらく遊べそう・楽しめそうだ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
mineoでarrows m02に機種変更

Ingressで酷使し過ぎたか、2014年8月に買ったAQUOS phone SHL23のバッテリーが終了。
具体的には。
ポータル密集地でIngressを立ち上げてると30分と保たない。Twitterとメール程度でそおーっと使っても1日保たなくなった。
バッテリー劣化の影響かタッチパネルやタイマーほかの動作が怪しくなることが増えてきた。
うーん、2年保たなかったなぁ。
てことで、いきなり文鎮になると困るので機種変更。
機種変更にあたって。
・mineoでauの回線を使っている。
・2年ほど前と比べてauの白ロムの値段が上がっている。未使用新品が2万円程度で買えたのが今は3万円以上はする。
・キャリアじゃなく、SIMフリーのスマホはほとんどその回線はdocomo。値段も2万以下のものからあってバリエーション豊富。
・mineoはdocomoのプランもあるので電話番号そのままで乗り換えも簡単。
この際、docomoに乗り換えて適当なSIMフリースマホでも買うかと思ったんだけど。
AQUOS phoneを使ってきて。
生活防水、お財布ケータイ(Suicaやnanaco)が思ってた以上に便利で重宝する。
SIMフリースマホでこの2点を備えるのがARROWS m02だった。
さらに。ARROWS m02はauでもdocomoでも使える。ついでにストラップホールもついている。
mineoのauプランのままARROWSに機種変更することにした。34992円也(今日時点)
これならいつでもdocomoプランに変更できる。
予想外だったのが、機種変更にかかった日数。申し込み即日スマホを発送してくれるものだと思ってたら、すでにmineoで契約してるのにまた審査があるらしく、その審査に約10日、モノを準備して届くのにさらに2日ほど。機種変更に二週間ほどかかることになった。
ちょっとハマったところ。
液晶保護シートが見当たらなかった。
→arrows m02 と同じ(?) docomoのFit F-01Hの液晶保護シートがそのまま使えた。
nanacoがplayストアでは対応機種から外れていてストア経由でダウンロード&インストールができなかった。
→arrows m02 nanacoで検索して http://tekitou-netablog.seesaa.net/article/430366313.html を参考に無事インストール。情報ありがとうございます。
モバイルSuicaの引き継ぎができない。
→クレジットカードと結びつけてない場合は一度退会して新規登録の必要があった。残金は退会手続きの時に登録した銀行口座に振り込みされる(手数料220円)
これ以外のアプリは、playストアからダウンロード&インストール。IDとパスワードを設定すれば大丈夫だった…って、やっぱ面倒くさかったけどね。
ちなみにauと料金比較すると(今日時点)
au
5,524円/月
http://www.au.kddi.com/mobile/charge/smartphone/
※データ通信使い放題。7Gまで制限なし。2年契約。
mineo(auプラン 3Gコース)
1,510円/月
http://mineo.jp/charge/comparison/
※データ通信3G。(パケットシェアで実質8G前後まで使える)
2年使い続けると。
au
132,576円+ケータイ端末代(実質ゼロ円?)
mineo
36,240円+ケータイ端末代(arrows m02 34,992円)
mineoだとだいたいauの半額で済む。
(※別途かかる通話料も想定して…って、ほとんど「もしもし」には使っていない)
上記したように、mineoはdocomoの回線を使うコースもあるしmineo内で乗り換えも手間いらず。災害対応もあるし、今まで使っていてキャリアの携帯電話との差をまったく感じない。
mineoの回し者じゃないけど、ほんとオススメ。
Ingressがレベル16、満了してるんでそんなに酷使はしないつもり。モバイルバッテリー併用がよくないという話も見かけるので、Ingressを控えれば、モバイルバッテリーの出番も減るだろうし…。
2年ぐらいは保ってほしいところだ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」