ブラウザでバーコードをスキャンしてISBNを取得する

2006年公開のWEB本棚「趣味は読書2」のスマホ版にバーコードをスキャンして本を登録できるようにしたのでメモ。
このWEB本棚は、なんだかんだ15年以上続けていて、最初は自宅で組んだパソコンをサーバーにして公開してたんだけど、東日本大震災があって、計画停電とかいつ停電してもおかしくない状況というのがあって、レンタルサーバーに引っ越し、現在にいたる。
WEB本棚「趣味は読書2」https://doncha.net/
もともと自分で使うことを考えてたので、既読・未読がわかって、簡単なメモやカテゴリをつけられればいいので、機能的には十分足りてる。
ただ、1冊ずつISBNを手入力するのがちょっと面倒くさい。ガサツなわたしはISBNをタイプミスしてエラーになることも少なくないし。
なもんで、後づけで、アマゾンの検索結果を一覧にしてチェックしたものを本棚に登録できるようにして使ってたら、2019年のAPIの利用規定改定でアフィリエイトで売上のないアカウントはAPIを利用できないということになった。当然アフィリエイトの売上などないわたしは、APIを利用した検索結果からの一括登録ができなくなってしまった。
これを作った当初の状態に戻っただけなので、まあしょうがないな、ぐらいな感じ。本を買っては/読んでは、ちまちま本棚に登録していた。
てな昨今だったわけだけど。
イーロン・マスクがTwitterを買って、何かと騒がしいので、以前アカウントを作っていたマストドンに久しぶりにログイン。
ここは本好き、本読みのひとが集まるサーバー(インスタンス)で、流れてくる話も小説がらみが多くて静かに面白い。本の整理、積読なんかの話も流れてくる。
本好きの集まるマストドンはこちら
それに刺激されて、ふたたびだかみたびよたびだか、WEB本棚の見直しをしてみた。
機能的には満足しちゃっていて、データベースの構造もシンプルで必要十分、昔の自分をちょっと褒めてもいいかもだった。
UIを含めたデザインが古臭くて気に入らない。でも、変更するとなると、かなり面倒くてさすがに手をつける気合気力体力がない…IE対応なんかのスタイルシートも混じってて、そのうち考えないとなあ。
スマホ版も見直しかな、とスマホでログインして触ってみて、そういやISBNの入力をバーコードスキャンでやりたいと思ってたんだと。
さっそく検索してみた。
…て、ここまで、自分でもびっくりするぐらい無駄なまえがき、無用なゴタクが長くてすまん。もう爺、老人なもので許してください。
ブラウザからスマホのカメラを使うためのjavascriptライブラリも公開されていた。
Quagga.jsというライブラリで、公式ページはこちら→QuaggaJS
javascriptも詳しくないし、読み取り精度をあげるためには、HTML5あたりのcanvasも使う必要があるらしい。
あちこち実装されてるかたのサイトを拝見しては、ちょっとずつ試して試して、最終的にこちらのサイトに助けられて、どうにかISBNのバーコードスキャンに成功。
QuaggaJSを使ってブラウザでバーコードスキャン:なんぶ電子
ほんと、こちらのページには感謝しかない。
テストページでいろんなコードを試してまる一日。javascriptだけじゃだめで、canvasも使う必要があるのが大騒ぎで、javascriptが意図通りじゃないのか、それともHTML的な問題なのか切り分けるのに時間がかかった…って、どっちも自分のスキル不足が原因なんだけど。
WEB本棚「趣味は読書2」スマホ版 https://doncha.net/sp/


WEB本棚「趣味は読書2」ついて https://doncha.net/about.pl
WEB本棚「趣味は読書2」で出来ること https://doncha.net/about.pl?c=help
たぶん、小学校の頃、自動車文庫(移動図書館)がなければ、いまの自分はなかった。
ほんと、小説は面白いぞー!
50代無職初老の働き方

昨日は、2011年に1年弱在籍していた地元のアパレルリサイクルチェーン店の知り合いから連絡があって打ち合わせというか雑談にでかけた。
立ち上げたばかりの子供服の店舗とネット販売について。
わたし、知り合い、店を立ち上げた知り合いの友人(オーナー)の三人とも50代だ。
わたしはフリーター、知り合いはリサイクルチェーン店を辞めて職安経由で什器メーカーに営業職で入り込んだ会社が合わず年内に退職予定、オーナーは今年の7月に独立起業して今にいたる。
この歳になると。
a) 手に職を活かして現場仕事
b) 生活手段として職を雇われ仕事で賄う
c) 金と時間、リスクを負って仕組みづくりをする
ということですなあ、としみじみ老後についての雑談。
おそらく、イイ歳こいたおっさんに対する社会の要請はc。そこで雇用も生み出し経済、というかお金を流すこと。国や地元行政でほぼゼロに近い金利でお金も借りられる、らしい。
終身雇用でもろもろ保障されているひとはともかく、所属のない50代はなんとかして年金受給まで頑張らないといけません。
若者の雇用がー、と言われてるけど、自殺も無職も中高年の方が数字的には多いよねえ。
打ち合わせの後は、ヨメと合流して谷中散歩。
焼豚とか茗荷の巻寿司とか、刺身とか舌鼓でご満悦でございましたです。


[更新]2026-02-01 13:00:42
twitterのOAuthについて改めて

perlでtwitterのOAuth認証するまで概略。
(今まで何度か書いたと思って探したら、スゲーテキトーなことしか書いてなかった)
「OAuthとは」てのはわたしもよくわかってない。詳しいサイトがたくさんあるので興味のかたは検索して調べてください。
大雑把に。
ユーザーを識別するのに、IDとパスワードが必要になるんだけど「野良サービスにメールアドレスやパスワードを登録するのはどうなの?」「いろいろなところにIDやパスワードを登録しても忘れちゃうし」ということで不安だし不便。サービスを提供する側としてもユーザーのIDなどを管理するのはリスキー。
そこで、twitterやfacebook、yahoo、mixiなどすでに利用していて信用できそうなサイトにログインしたら、そのまま他のサービスも使えるようにする・twitterなどがユーザーを保証してくれるのがOAuth認証というやつ(言葉はたぶん間違ってる)
ウチの「創作文芸見本誌会場HappyReading」http://books.doncha.net/happy-reading/ で使っている。
1 同人誌の登録ページにログインする
2 twitterのログイン画面に飛ぶ
3 twitterでIDとパスワードを入力する
4 ウチのページに戻ってくる
2のこんな画面は見たことがあると思う。

・ユーザーはtwitterのアカウントがあれば、twitterのID・パスワードでウチも使える。
・ウチとしてはユーザーのIDやパスワードを管理しない(知らないまま)なのでリスクが少ない。
準備
↑まずはアプリをここで登録をする。
(WEBだったらCGIなどのサービス)
登録するとOAuthに使うパラメータというかトークンが設定されるのでメモ。
・Consumer key
・Consumer secret
・Access token
・Access token secret
以下のURLもメモ。
・Request token URL
ttps://api.twitter.com/oauth/request_token
・Authorize URL
ttps://api.twitter.com/oauth/authorize
・Access token URL
ttps://api.twitter.com/oauth/access_token
・Callback URL
(これは自分が登録したWEBサービスなど)
その1
consumer key と consumer secret、callback URLをパラメータに持ってtwitterにトークンを要求する。
ttps://api.twitter.com/oauth/request_token に以下のHEADERをつけてGETでアクセス。
OAuth oauth_callback="http%3A%2F%2Fexample.com%2Ftest.cgi",oauth_consumer_key="ZQWERTYUIOPXXXXXXXXXX",oauth_nonce="%241%241f%24DKEidkeNKHL7fodEGuHDAE",oauth_signature="IdEGUKDIEKDLADnupxwCorOK%2BkE%3D%0A",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1385108107",oauth_version="1.0"
その2
consumer key と consumer secret に問題がなければ、oauth_tokenを取得できる。
twitterのログインページ(上図 ttps://api.twitter.com/oauth/authorize)にoauth_tokenをパラメータにつけてリダイレクトする。
ttps://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXX
その3
twitterのログインページでアプリを承認をすると再びウチのページに戻ってくる。
その時、oauth_token と新たに oauth_verifier というパラメータを付けてくる。
ttp://example.com/test.cgi?oauth_token=KDCCCCYXXkdieKKDDDDIONkciwehkIDKENGIEGKDInhQDc&oauth_verifier=PQINdinehgkEoengDleGdIENGDKIGKEOngesged
その4
oauth_verifier をパラメータに追加して ttps://api.twitter.com/oauth/access_token にPOSTでアクセスする。
postのcontent
oauth_callback=&oauth_consumer_key=XXXXXYYYYYIUYnHGGGYEN&oauth_nonce=%444%8765d%24Hnl6V5mrifewf93h3b%2FWC0&oauth_signature=r4c0T3Ufewfiwoefwbiowfweas3D%0A&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1385254657&oauth_token=f93fwKIfjiewofwefibwefeoaifdeeeoibD&oauth_verifier=KOEFWODIVDIFEDKFOMMZVDJJFKLFJQFIJOEGI&oauth_version=1.0
問題がなければ、oauth_token と oauth_secret と screen_name が取得できる。
後はこの oauth_token と oauth_secret を使って(セッションなど利用して)ユーザーがウチのサービスを使えるようにする。
補足:OAuth のパラメータ
URL
METHOD
oauth_callback
oauth_consumer_key
oauth_nonce(一意のランダムな文字列)
oauth_signature(署名)
oauth_signature_method(署名の方法 HMAC-SHA1)
oauth_timestamp(タイムスタンプ timeの出力)
oauth_version(oauthのバージョン)
署名の作り方についてはこのあたり→ 「token secretの保存」(2009/12/26)
ここんとこ、ツイート1のスパムアカウントからのフォローが断続的に続いて、いちいち手動でスパムブロックするのが面倒になったので、一括スパム報告するスクリプトを作ってみたら…OAuthなどずいぶんいろいろ忘れてたので、備忘録。
もの忘れが激しい。とほほ。
[更新]2026-02-01 13:01:01
kindleのシェアは同人誌読書会になるか!?

kindleでは読んでいる小説など、文章の一部をハイライトしてシェア=ネットで共有することができる。たとえばある一冊。複数のひとがそれに対して傍線をひいたりコメントをつけられる、ようなイメージ。kindleで読んでいて「あれ?なんかここハイライト表示されてるぞ」と思ったらそこは同じ本を読んだほかの誰かがチェック入れた、ということかな。
この機能自体あまり宣伝喧伝されてないようで、まだ試行錯誤中かも知れない。ネタバレも含めてよけいなお世話だと感じるひともいるだろうし、このフレーズが人気なのかへええと共有することに面白みを感じるひともいるだろうし。
https://kindle.amazon.co.jp/profile/t2akii/14771871
↑kindleで共有するとこんなページができる。
個人作家、同人誌が商業出版にまるで歯が立たないところが部数。
読んだ本に関して、共通する・共有することが難しいので、継続や広がりが見込めないことだと思う。
「これ面白かったよ」「ああ、おれも読んだよ、確かに!」「でも、ちょっとここが物足りなかったかなあ」「いや、でもその分キャラがさ」などなど。
読んでない本が面白そうに話されていたら、本屋さんで見かけたら手に取るだろうし購入するかもしれない。でも個人作家の本や同人誌は売ってない手に入らない。イベントでせっかく買ってもらって、面白いと思ってもらっても、その次がなかなか難しい。
いわゆる読書会。わたしの学生時代の読書会は、特定の作家について、あるジャンルについて「事前に」本を読んでいって、主宰の用意したレジュメに沿ってみんなでその共通する本についてわいわいがやがや。読んでない本があったらその場で読む・借りる。というもので、それなりに面白かった記憶がある。
コミティアが主催する読書会。これはイベントで読み切れなかった探しきれなかったひとのための、同人誌の回し読み会。それはわたしが経験した読書会とは性格が違うもので、発見するための読書会。部数も出会う機会も少ない同人誌にとってはとても有意義なものだ。
こんなところで、電子書籍の出番となる、のかな。
もちろん、紙印刷の本がいいというのはあるけど、それはおいといて。電子書籍にしておけば「一冊の本、ひとりの作家について『事前に同じ本を読んで』わいわいがやがや読書会」を開くことができる。このシェアされたページが、読書会がわりになる、かも。
このあたりの強みを生かして、広がりに繋がればいいんじゃないかと思う。
[11/25 10:29:50]追記。
Kindleパーソナルドキュメントサービスというのもあるのか。
これを使えば仲間内で「来週の読書会の課題図書はこれなー」というのができる。
↓パーソナルドキュメントサービスのわかりやすい解説ブログ
Kindleパーソナル・ドキュメントサービスとは 代助のブログ
[2013/12/05 16:08:42] 追記。
準備
kindleのページを作る(Amazonのアカウントと同じメールアドレス、パスワード)
・配布されるパーソナルドキュメントを受信する
読書会
・kindle端末orアプリでパーソナルドキュメントを読む
メモをつけたりハイライトをつけたりする
・kindleのページを見ると

↑こんな感じ。
読んだ本のページがあって、そこには他の人のメモ(note)やハイライトされた箇所が一覧される。
パーソナルドキュメントで仲間内だけ回し読みっぽく遊べる。
[2013/12/07 15:01:48]追記
嘘ついてました。
パーソナルドキュメントは読んだ本の一覧ページには出てきません。
てことは、パーソナルドキュメントで読書会にするには、twitterにシェアで投稿する時にハッシュタグを利用するしかなさそう。いまいち使い勝手が悪い、か。
[更新]2026-02-02 07:58:51
一日のったりまったり、ムカついたり

曇天の今日は地元まわり。1000円床屋で散髪して、フィルムを一本現像に出して、太巻きとバッテラを買って、ジャンプを買って、猫缶と猫砂を買って、絶品レバカツを買って、部屋でスクリプトいじりながらいちんちワインをだらだら。
今のサイトは本棚をcsvでダウンロードできるようにしてあるんだけど、それをそのまま移植したら文字化け。
リニューアルでは
binmode STDOUT=>":utf8"
てことをデフォルトにしてるんで、SHIFT_JISで出力しようにもうまくいかない、てのがオチ。いやそれなら、いま時、WEBはutfがデフォルトだし、csvもutfで出せばいいか・・・というワケにはいかないんだよなあ。くそエクセルのせいで。ド腐れ低脳エクセルはutf8がわからんのだ。なんでこんなカスのためにひと手間、と思うだけでムカついてやる気ダウン。こんな使えねえクソソフト使ってないでOpenOffice使いませんか、と言ったところで世間さまは魯鈍痴愚エクセル。csvダウンロード?どれどれ・・・wクリックしたら文字化けで壊れてる、んじゃ話にならないんだよなあ。
趣味でやってるサイトでまでエクセルに足引っ張られんのかよ、と。
それはともかく。
くどいようだが、地元の肉屋の惣菜は絶品で、レバカツとメンチ、ハムカツを買って、昼からワインのつまみに。揚げ物なんて、くどくてワインを殺すんじゃねえの、と思われそうな取り合わせだけど、特にレバカツの少し苦味のあるほんのり甘い味は、フルボディ系赤ワインの酸味苦味にぴったり。
そいや、ちょっと前まで梅酒で、その前が酢=サワー、んで今日この頃は蜂蜜漬けがヨメのブーム。しょうが、ゆず、レモンなどが蜂蜜に漬けられて台所に転がってる。お湯で割って飲むと身体の芯からほこほこあったまるんで季節的にぴったりの逸品。…てのはいいんだけど、蜂蜜10キロって、すげー量だな。

