DELL inspiron S13に引き継ぎ
去年12月に2,2980円というスマホより安いノートパソコン、ASUSのvivobookを購入。
なんの問題もなく使ってたんだけど、WINDOWS UPDATE 1903 がインストールできないので終了のお知らせ。
このvivobookはストレージが32Gしかなく、WINDOWS様がおっしゃるにはストレージの空き容量が足りない、ということらしい。外付けUSBやSDカードを使っていても、システムのCドライブの空き容量が足りないんじゃ無理だと。
11.6inchのディスプレイで小さいし軽いし、バッテリー駆動時間も12時間ぐらいあって、かなり気に入ってたのに、まさか8か月で終了とか。めちゃくちゃ残念。
「22980円のノートパソコンvivobook購入」
https://t2aki.doncha.net/?id=1545120465
現状のWINDOWSは11月でサポート終了。もしかするとそれまでに1903を32Gのストレージでインストールできるようになるかもしれないと思ったけど、ネットで検索してみる限り、望み薄、期待できない。
たぶん、ストレージが32Gしかないノートパソコン、ネットブックが格安の投げ売りになるだろうけど、使い物にならないので間違っても買ってはいけない。
てことで、たまたま家人が先月7月にDELLアウトレットで購入していた DELL Inspiron S13を共用で使わせてもらうことにした。
スペック厨でもある家人の目利きだ。スペック的にはまったく問題はない。
CPU Intel Core i5 1.60GHz
メモリ 8GB
ストレージ 256GB SSD
ディスプレイ13inch
Windows 10 Home 64bit
重さは1,2kgぐらい、バッテリ駆動は8時間ぐらいだろうか。
vivobookより大きく重くなったけど、このぐらいなら持ち運んで外出先での使用も大丈夫だ。
(ディスプレイが14インチ以上のノーパソになると、持ち運びはまず無理)
てことで、さっそく日常使用のアプリ、フリーウエアをインストール。
perlとエディタは必須。
その他、電子書籍(epub)制作に必要なツールや、コマンドラインを使いやすくするツールなどなど。
ActivePerl-5-2.4
java8
Gow-0.8.0
unzip-5.51-1
Ctrl2Cap
vim81-kaoriya-win64-8.1.1048-20190325
WinMerge-2.16.0
WinSCP-5.13.8
SKK
制作した電子書籍の確認のためにKindleと紀伊國屋kinoppy
Kindle_for_PC_Windows
kindlegen_win32_v2_9
Kinoppy
在宅仕事のWEBページサポート、確認のために
firefox
chrome
これら以外はマイクロソフトのオフィスやアドビのソフト。
とりあえずしばらくはvivobookとInspironS13を併用するから、データのバックアップを共有するためのバッチファイルをでっちあげ。
vivobook→USBメモリ
Inspiron→USBメモリ
USBメモリ→vivobook
USBメモリ→Inspiron
の4パターンが必要。
ノーパソからUSBメモリへはrobocopyを使ってパソコンの作業フォルダごと同期させる。
USBメモリからノーパソへはxcopyを使って新しいファイルだけ上書きコピーする。
という運用にした。
[08/20 05:36:22]
xcopyじゃなくて、robocopy
そういや、いま使ってるmac miniも最新のMojaveがインストールできない。切り捨てられた古いハードウエアだ。こっちも買い替えないとダメだな。
まあ、しょうがない。時代はもう令和だ。昭和を引きずってるわけにはいかんてこっちゃ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ポケモンGO:ブイズでジムバトル
現在のジムは相変わらずのハピナス、ラッキー、ガビゴン、ケッキング。ノーマル属性でHPの高い事務員が中心。それにプラスして、メタグロス、ドサイドン、バンギラス、ボーマンダ、カイリュー、ギャラドスあたり。
ノーマルに抜群を取れる格闘技を持つカイリキー、気合い玉ミュウツーで攻めるのが効率的で手っ取り早い。
けど、毎回それだと、飽きる。つまらない。
てことで、ここんとこマイブームはブイズ=イーブイの進化系を6体並べてのジムバトル。
シャワーズ(水)ブースター(火)サンダース(電)エーフィ(エスパー)グレイシア(氷)リーフィア(草)の6体だ。
ブラッキー(悪)は控えで。
ブイズは各属性でトップクラスの実力な上、デザインもいい。
ノーマル属性の常連事務員に対しては、タフなシャワーズ、高火力のブースター、エーフィを当てる。当然、格闘技より時間もかかるけどやる気満タンのハピナス相手でも時間切れすることなく突破できる。
タイプ相性的に弱点をつけるボーマンダやギャラドスはグレイシア、サンダースで瞬殺だし、ドサイドンなんかはリーフィアで楽勝だ。
属性を考えないごり押しも、属性相性を合わせて弱点をつく攻撃も、ブイズ6体だけで遊べる。
野生で見かけることも多くて育成コストもかからないブイズはナイアンの良心、親心的存在だろう。
面白いのが、アクアテールのシャワーズ。
事務員の技1の間にアクアテールが入る。つまり、事務員の技を全部避けてこちらの技を全部入れることができるのだ。時間を見つつ、全避けスタイルでやって体力温存して継戦能力を高める。もともとシャワーズはタフなので、なかなか赤ゲージにならない。
ジムバトルやってる感を味わえる。
デザイン的には今回追加されたリーフィア(草)が一番かなあ。
超美少女、実は男の娘、といったところか。草タイプはお馴染のソーラービームや限定技のハードプラントが高火力で定評があるけど、リーフィアが覚えるリーフブレードも3ゲージなのに高火力で使い勝手がいいんだよねえ。
しばらく、このままブイズで遊ぶか。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
日本語ディレクトリ名で吐血
今さら、ハマったんでメモしておこう。
perl の ファイルテスト演算子 -d とかディレクトリを開くopendir()でディレクトリとして認識してくれず、そのディレクトリだけ見えない状態だった。
WINDOWS10で、ActivePerl。
日本語のディレクトリ名で、たぶんこいつだろう、という見当はついていた。
「―」←こいつ。
utf16 2015
utf8 E28095
euc A1BD
shiftjis 815c
罫線というか日本語のダーシ?ダッシュ?に使われる記号。
↓グーグル様を駆け巡ってたどり着いたのがこちら
https://nomenclator.la.coocan.jp/perl/shiftjis.htm
「Shift-JISテキストを正しく扱う」
助かりました。ありがとうございます。
「―」はshiftjisだと「815c」で、この「\x5c」がファイル名やパスの末尾にあるとperlはうまく扱えない、らしい。
回避するには
ディレクトリ名の末尾に「'/.'」path区切りをつけてカレントディレクトリのピリオドをつける。苦肉の策ではあるけど、これで無事ディレクトリを辿ることができた。
具体的には
-d dirname
てなことやってたところを
-d dirname . '/.'
などとやって無事perlからディレクトリが見えるようになった。
(再帰的にディレクトリを辿るサブルーチンにさっそく採用させていただいた)
ディレクトリ名に日本語を使いたくはないんだけど、仕様で必要とされるケースがあるので、しかたなく。
にしても、ほんと今さらなトラップに仰け反ったぞ。ほんとびっくりした。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
utf16からutf8に変換
管理ページからダウンロードしたデータがNNNNN.csvという名前なのに、中をみるとタブ区切りでびっくりしてたんだけど、perlでいつものようにごそごそやると文字化け。
エクセルに読み込んで別名保存すればいつもの意図通り。エクセルで保存すると文字コードはcp932、いつも通りになるからだ。
で、文字化けするタブ区切りのcsvファイルの文字コードを確認したらutf16LE BOM付き、でビックリ。ていうかなんでやねん。
これはperlで扱いにくい文字コードで、確か以前悶絶して諦めた記憶。結局一度エクセルなどに読み込ませて別名保存でcp932にしてからperlで処理していた。
今回、頻度ボリュームともけっこうあるので、こんなひと手間をかけたくない。perlだけで処理したい。
ということでぐーぐる様。
WindowsでPerlを使ってUnicode処理(1)
https://blog.livedoor.jp/numa2666/archives/52344850.html
↑こちらのサイトを参考にさせていただきました。ありがとうございます。
わたしの場合、汎用は必要なくて、入力はUTF16LE BOM付、出力はUTF8 BOMなしの決め打ち
UTF16LE BOM付を、UTF8 BOMなしに変換するサブルーチン
詳細は上記サイト参照。
ここではやってることの説明だけ。ちゃんと理解してるわけでなく、結果オーライでやってるので間違ってる可能性があるけど。
・入力はバイナリモードで読み込む必要がある。
・ファイル全部一気読みのために、入力レコードのセパレーターを殺す。
・データの頭のBOMを削除
・utf-16でデコード(スクリプトで処理するため)
perlの内部形式にデコードしてしまえば、あとはそのまま処理してもいいだろうし、他の文字コードにエンコードしてもいいし。
ここから先はいつも通り、となる。
…にしても、どうしてutf16なんてものがあるんだろう。
(perlで扱いにくいってだけなのかもしれないけど)スゲーめんどくさい。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
書誌情報データを求めて三千里
一昨日、新元号の発表があった4月1日に国立国会図書館の書誌データAPIが解禁となった。
今までも検索などに使えていたけど、データベースとしてガツガツ使うには登録が必要だったり面倒くさかったのが、4月1日からは誰でも自由に使ってもかまわんぜ!になった。
てことで、今さら国立国会図書館の書誌データAPIをごそごそ覗いてみた。
国立国会図書館サーチについて>API仕様の概要
https://iss.ndl.go.jp/information/api/riyou/
わたしの、というかわたしが公開しているサイトの使い方は前にも書いた通り。
「ISBNをキーにして書誌データと書影URLを取得したい」
たとえば、スティーヴン・キングの『シャイニング』
ISBNは978-4167705633
これを国立国会図書館のAPIで探すには以下
https://iss.ndl.go.jp/api/opensearch?isbn=978-4167705633
→書誌情報のXMLが返ってくる
https://iss.ndl.go.jp/api/openurl?isbn=978-4167705633
→検索結果ページが返ってくる
https://iss.ndl.go.jp/api/sru?operation=searchRetrieve&maximumRecords=10&query=isbn%3d9784167705633
→書誌情報XMLが返ってくる(このsruはさらに細かく検索方法の指定もできる)
うちの場合、必要な書誌情報はopensearchで十分。
著者についてももろもろ考慮されて(同性同名や読みなど)おり、データのクオリティは信用できる。さすが。
https://www.ndl.go.jp/jp/data/faq/author.html
蔵書のある図書館の情報なども取得できるので、位置情報と合わせて「目当ての本がある最寄りの図書館」なんて検索も実装できるし、その手のアプリがすでにあるのは、国会図書館のデータが元ネタじゃないかな。
だけど、書影がないのはほんと残念。
本棚を眺める楽しみのひとつ、というか欠かせないのが表紙だもんなあ。
基本的な書誌情報は国立国会図書館で、書影・表示画像はamazonなどのショップサイトのURLを別途取得…とか1冊の本のために2回も外部にリクエストしてるとサイトの表示がもたつく原因になってしまう。
てことで、うちのサイトのデータ取得方法は現状のままとする。
国会図書館のデータはまた何か別の用途で利用させてもらおう。しっかりとしたデータは見ていて気持ちいい(データオタク)
ちなみに。
「一般社団法人 日本出版インフラセンター」という版元主導のところも3月25日に書誌データベースのサイトをオープンしたけど、APIもなく、手入力でポチポチ検索できるだけ、なのでスルー。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
スクレイピングをブロックされるの巻
ISBNをキーに本の情報(タイトル、著者、書影)を求めて三千里、だ。
あらすじその1
かれこれ15年以上、ずっと利用させてもらっていたAmazon(PA-API)の利用条件が変更となり、うちのように売上のほとんどないサイトだと利用するのが難しくなった。
状態を見ていると、使えたり使えなかったり、というかほとんど使えないんだけど、時々使えることがある、といった感じ。その条件がよくわからない。
あらすじその2
PA-APIがそんな状態なもんだから、Amazonの商品ページをスクレイピングしてのデータ取得に変更。すんなりデータが取れた、と思う間もなく(ほとんど7日以内)スクレイピングがAmazonにブロックされてしまった。
データが取れなくなったんで、取得するHTMLを眺めたら、自動アクセスしているようだけどAPIがあるからそちらを使いなさい、というコメントが入っていた。
そもそもアマゾンは規約でスクレイピングが禁止されてるので、やっちゃいかんのだ。
てことでamazonについては、ほぼ利用できなくなった。
(アフィリエイトタグ、リンクやアカウントには問題はない。データベースとしてAmazonが使えなくなったということ。念のため)
何度も書いてるように4月になったら国立国会図書館がAPIを公開するので乗り換えを検討。
ただ、どんなAPIなのかどんなデータが使えるのか、実際に公開されてから確認となる。
いま公開していて、ユーザーさんが利用してくれているサイトもあり、いままさにどうするのかということで、繋ぎでいいのでなんとかしなければならない。
AmazonのPA-APIが不定でたまにしか使えない(たまに使えるからかえって未練たらたらとなる)
Amazonに対するスクレイピングは規約も不可。
ということで、その場しのぎのでっちあげ、というわたしの得意技。
AmazonのAPIを使ってページを公開しているサイトをピックアップして、そちらをスクレイピングすることにした。
アマゾン本家ではなくAPIを利用しているコバンザメからデータを持ってくる便所バエ作戦だ。
本のデータを取得するためだけに、文字通り機械的にアクセスするわけだから、そのサイトにとっては何の利益にもならない、ただの無駄なアクセスとなる。amazonのようにインフラも強固巨大なサイトならともかく、規模的に小さなサイトだとちょっとした負荷も迷惑でしかない。
さすがに申し訳ない。
のべつ幕なしリクエストを投げるようなことを避けるために自鯖内で期間限定のキャッシュすることにした。
図式的には
・本の情報が欲しい時はまず自鯖のキャッシュを確認
・キャッシュされていればそれを利用
・キャッシュになければPA-APIを利用してデータ取得を試す
・PA-APIでデータ取得できればそれを利用。取得したデータをキャッシュ
・利用制限でデータ取得できなかったら他サイトをスクレイピング。
・スクレイピングでデータ取得できればそれを利用。取得したデータをキャッシュ
てことにした。
キャッシュするのは、ISBN・タイトル・著者の基本3点セット。さらにデータがあれば書影のURL。
本のタイトルや著者をキャッシュすることは問題ないはずだけど、書影(画像)についてはたぶん権利関係がらみで面倒くさいことがあるだろう。
画像をダウンロードして利用するなどもちろんアウト…というかただの犯罪行為。
公開されている書影のURLについては問題ないと思うけど、書影を公開しているサイトと書影(画像)の権利者とでどのような約束があるのか不明で、おそらくずっと同じURLで公開しない。もしかしたらアクセスのたびにURLが変わることも考えられる。なので自鯖でのキャッシュを期間限定とした。
今回のことでちょっと調べてみたら、スクレイピング行為がなにやらマーケティングだのなんだので使われていて、スクレイピングについてのスキルを持っているといろいろ重宝されて優位に立ち回れるとのこと。
いやいや、ちょっと待てよ、だ。
公開されているものとはいえ、他人の著作物から、自分の都合の良いデータだけ切り取ってもってくるのがスクレイピング。そしてそのデータは権利者の意図とは違う使い方をされるのがほとんどだろう。カタカナ言葉でなんかごまかそうとしているけど、単なるタダ乗り行為。
なんちゃら猛々しいんじゃねえのかとか、便所バエの自覚はないのかと昭和老害は思うわけですな。
て、オライリーからこんな本まで出てるんだなぁ。ううううむ。ほんまかいな。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」