ブックオフの収穫とかデータいじりとか
亀有のブックオフを覗いてみたら、105円本がどれでも6冊で480円、という特売モード。とくになにを買う気でもなかったんだけど、未読のロバート・パーカー、スペンサーものや、NO6なんかを6冊掴んでレジに。ワンコインで6冊たっぷり、だ。
読書SNSで致命的バグを見つける。登録した本にメモをつけるところで、複数のメモがあったら、ちょっとヤバイ状況になっていたのに気づかず。もともと、そりゃどうなのよ、というデータ取得部分の実装で、なんとかせんといかんなぁ、と思ってたところ。実害はないだろうと思ってたのに、豪快な実害が生じる。慌てて根本的な部分の一部書き直しで、久しぶりに夜なべ(死語)明け方までかかってしまった。
ついで、といっちゃナニだけど、仕事がらみでも売り上げなどのデータをグラフにするCGIを作成中。グラフにするっても、FusionChartsFreeにXMLを渡すだけ。くそエクセルなんぞ1mmも触りたくないので、CGIでごまかしてしまおう、と。仕事になると、なにをするにも「工数がどーした」「手戻りを少なくしたい(無駄はいや)」で、ちゃっちゃと見たい、試しに知りたい、なんて要求はきかない。無駄だなんだと言う前に、とりあえずやってしまおう、という発想がない。忙しいんだろうからしかたないにせよ、世の中、無駄なことをたくさんしてきた人間のほうがエライんだゼ(根拠はない)
なので、こうして週末、事務所にログインしてCGIをせこせこ試すハメになる。なんだかなぁ、だ。perlが使えてほんとうに助かった。
とはいえ。競馬から始まったプログラムというかスクリプトいじり。データおたくといえなくもないので、いじってる分にはおもしろい。膨大なデータの中から知りたい部分を抽出加工成型して、さらにグラフにして見えるカタチにする。見えなかったものが見えてくる、かも知れない、てのはちょっとした達成感と快感。そうでもなきゃ休みつぶしてやってない。すべてにおいて判断基準は。面白いか面白くないか。
昨日イトーヨーカドーで買ったメルシャンのワイン。3Lで1760円。飲みやすい軽さでハマりそう。値段も安いし、ちょっと危険。ゴッドファーザー1で、マイケル(アル・パチーノ)と話す、引退後のヴィト・コルレオーネ(マーロン・ブランド)が、デキャンタからなみなみと赤ワインを注いで飲むシーンを思い出しますです。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ローマ数字
忘れないうちにメモ。
なに今さら、なコトなんだけど。
ローマ数字を変換するときに、(Windowsの場合)文字コードを「shiftjis」ではなくて「cp932」にすると一発解決だった。
Encode::decode('cp932', strings)
ううううむ。あちこち検索しまくってた。perlはやっぱスゲーなあ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
本をまとめて登録する
読書SNSで、一度に大量に本を登録するユーザーさんがいる。せいぜい図書館でまとめて借りる、ブックオフでまとめて買う、程度しか考えてないので100冊単位なんてのは論外想定外。
ウチの読書SNSは一冊ずつISBNを入力する、という方式なので冊数分入力が必要。その後、図書カードにジャンルやメモを記入することになるんだけど、リニューアルでセキュリティ強化、なにか書き込みが生じるようなケースでは必ず「確認画面」を出すようにした。ということは冊数分記入×2のページ遷移が生じる。
今のUIとページレイアウトに大量登録のページをつけるのはけっこう難しいので、とりあえず、csvで一括登録できるようにしてみた。
わたし自身は、くそエクセルなんぞ1mmも触りたくない
んだけど、世間でよく使われるソフトなのでしかたない。とはいえ、そもそも、エクセルを使えて本のデータもエクセルで管理できるひとが、ウチのようなショボイWEBサービスを使うのか、とか。そもそも、ちょっとはコミュニティサービスの体裁をとっているところに、一括登録なんて機能は必要なんだろうか、とか。
ビミョーな機能つけちゃったなぁ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
lolipop に Digest SHA PurePerl
https://books.doncha.net/
まったく、ひと気、ひと通りがなく、放置気味だったアマゾンアフィリエイトサイト。ここも当然Amazonの認証に対応しないといけない。
てことで、
読書SNSの ttp://www.holeinthewall.jp/ と同じモジュールを入れた…んだけど、lolipop には Digest::SHA がインストールされていないようで、エラーになってしまう。
「lolipop Digest SHA Amazon」 で検索してみると、PurePerl版をcpanからもってきて自分のディレクトリに入れておく、てことで対応できると。さっそく持ってきてゴソゴソftpで置いて無事対応。
いろいろ大変だ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
amazon のAPIで認証が必要になる
英文のメールが来ていたのは知ってた。ふーん、なんか変わるのか、ぐらいで流し…てたら、日本語のメールも来る。AWSという名称を変更するそうだ。
てのは、どうでもよくて、アマゾンにデータを取りにいくのに認証が必要になるらしい。それも5月11日から。猶予期間は3ヶ月ほどあるらしいけど、それまでにパラメータや認証キーを仕込みなおさないとまずいぢゃん。
当然ながら、今日時点では、ありがたく使わせていただけそうな例もまだないのでメモだけ。
新しくパラメータにTimestampが必要
RESTのURI+αを、SECRET KEYをキーにしてSHA256でHASHしてSignatureを生成してくっつける、らしい。
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html
perl のDigest SHA
https://search.cpan.org/~mshelor/Digest-SHA-5.47/lib/Digest/SHA.pm
って、まだ全然わかってないんだけど。
use Digest::SHA qw(hmac_sha256_base64);
my $key = 'ABCD0987';
my $data = 'aiueo12345xyz';
my $digest = hmac_sha256_base64($data, $key);
print $digest;
認証のための署名はこれで作れる。
情報収集して対応しないといけません。
[05/11 10:56:47]
$digest .= '=' while length($digest) % 4;
4で割って余りが出ないように、「=」で埋める必要があるらしい。
https://blog.livedoor.jp/dankogai/archives/51211577.html
[05/11 23:46:32]
てことでチェックできた。
従来のURIにTimestampを追加。
Timestamp=2009-05-11T23:34:12Z
署名のためのデータを上記URIから作る。&でバラしてkeyをsortして並べ替えてURLエンコードしておく。
GET
webservices.amazon.co.jp
/onca/xml
上記URI
の4行のデータ。これをアマゾンの秘密鍵をキーに、SHA256でハッシュ化して署名を作る。
URIの最後にURLエンコードした署名をくっつけてできあがり(&Signature=署名)
と、エラソに書いたけど、ハマリがひとつ。何度やっても署名が間違ってる、と撥ねられて、しばし悶絶。あーだこーだパラメータをひとつずつ潰していったら、URLエンコードが原因でびっくりした。
今までずっと
s/(W)/sprintf("%%%02X",unpack("C", $1))/eg
とやっていて何も問題なかったんだよなあ。
# RFC3986
# URI の生成を行うものは
# ALPHA (%41-%5A と %61-%7A),
# DIGIT (%30-%39), hyphen (%2D),
# period (%2E), underscore (%5F), tilde (%7E)
# の範囲におけるパーセントエンコードされたオクテットを
# 生成すべきではない
ううううむ。てことで
s/([^0-9a-zA-Z~._-])/sprintf("%%%02X",unpack("C", $1))/eg
にしたら、無事通過。
ひっかかったのはTimestampの2009-05-11のハイフンあたりだったようだ。
とりあえずチェックスクリプトはこれでOKだったんで、週末にでも実装してしまおう。
参考:
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?BasicAuthProcess.html
https://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html
↑こいつを見てたら、ハイフンがエンコードされてないんで、変だなあ、と。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
一日のったりまったり、ムカついたり
曇天の今日は地元まわり。1000円床屋で散髪して、フィルムを一本現像に出して、太巻きとバッテラを買って、ジャンプを買って、猫缶と猫砂を買って、絶品レバカツを買って、部屋でスクリプトいじりながらいちんちワインをだらだら。
今のサイトは本棚をcsvでダウンロードできるようにしてあるんだけど、それをそのまま移植したら文字化け。
リニューアルでは
binmode STDOUT=>":utf8"
てことをデフォルトにしてるんで、SHIFT_JISで出力しようにもうまくいかない、てのがオチ。いやそれなら、いま時、WEBはutfがデフォルトだし、csvもutfで出せばいいか・・・というワケにはいかないんだよなあ。くそエクセルのせいで。ド腐れ低脳エクセルはutf8がわからんのだ。なんでこんなカスのためにひと手間、と思うだけでムカついてやる気ダウン。こんな使えねえクソソフト使ってないでOpenOffice使いませんか、と言ったところで世間さまは魯鈍痴愚エクセル。csvダウンロード?どれどれ・・・wクリックしたら文字化けで壊れてる、んじゃ話にならないんだよなあ。
趣味でやってるサイトでまでエクセルに足引っ張られんのかよ、と。
それはともかく。
くどいようだが、地元の肉屋の惣菜は絶品で、レバカツとメンチ、ハムカツを買って、昼からワインのつまみに。揚げ物なんて、くどくてワインを殺すんじゃねえの、と思われそうな取り合わせだけど、特にレバカツの少し苦味のあるほんのり甘い味は、フルボディ系赤ワインの酸味苦味にぴったり。
そいや、ちょっと前まで梅酒で、その前が酢=サワー、んで今日この頃は蜂蜜漬けがヨメのブーム。しょうが、ゆず、レモンなどが蜂蜜に漬けられて台所に転がってる。お湯で割って飲むと身体の芯からほこほこあったまるんで季節的にぴったりの逸品。…てのはいいんだけど、蜂蜜10キロって、すげー量だな。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」