« October 2006 | Main | January 2007 »

年越しそば

年越しそば

日本橋 砂場にならぶ。はれててよかった。

| | Comments (0)

ユリーカのチーズ入りパンケーキ

ユリーカのチーズ入りパンケーキ

帝国ホテルユリーカ、閉店とは惜しい。

| | Comments (0)

バーコード3

前回は、書籍の裏表紙をバーコードリーダーで読み込んでみたところまでのお話。
ISBNを表示しているらしきバーコードに格納されている数字が微妙に違う、というところで時間切れだった。

学生出欠システムという目標からははずれるが、ちょっと遠回りをして、ISBNとバーコードの基礎について整理したい。

ISBNとは、International Standard Book Number の頭文字で、国際標準図書番号である。

前回取り上げた成文堂の「会社法重要判例解説」だとISBNは4-7923-2499-8と表記されている。

この番号、1桁目の「4」は言語コード、次の4桁「7923」が会社コード、次の4桁「2499」がその会社での書籍番号、最後の1桁「8」がチェックディジットだ。それぞれの桁数は決まっていないが、全部で必ず10桁になるように決められている。

順番に行こう。

言語コードは、日本の場合「4」、内容が日本語というよりは、日本語圏の出版社の場合は4、英語圏なら0、フランス語圏は2、ドイツ語圏は3、などなど。マイナー言語の場合は桁が増えて、四桁の場合もある。

日本語圏は言語番号が1桁で、残り9桁のうち最後の1桁は後述するチェックディジットに使われるので、会社コードと書籍番号は、あわせて8桁ということになる。上の例では出版社の「成文堂」は4桁の「7923」が当てられている。出版点数が多い会社は、書籍番号もたくさん必要だから、会社コードの桁は少ないことが必要だ、一方出版点数が少ない会社は、会社番号の桁を増やせる。というわけで会社コードが小さいところは大会社または歴史のある会社、大きいところは中小出版社という傾向になる。

ちなみに栄えある会社コード「00」は、岩波書店である。
有斐閣は641、信山社は7972、なんてぐあいで、さらに桁が増えて6桁なんてなると、もう知らない会社ばっかりで

http://chiro-h.hp.infoseek.co.jp/isbnlist3.html

あたりを見ていただきたい。
会社コードが6桁なら、書籍番号は2桁いけるから、ということは99冊出版できるということか。

7桁の会社コードも存在するんだが、そうすると9冊しか出版できない。が、それでもいいんだろうな。

http://chiro-h.hp.infoseek.co.jp/isbnlist4.html

を眺めてるとそんな気もしてくる。個人名で会社コード取ってるところもある。

そして最後の1桁、チェックディジット、これはチェックサムと呼ぶ場合もある。

これはここまでの9桁が正確に入力されているかどうかを判別する魔法の数字である。

どんな風に魔法かというとたいしたことはなくて、単純に言えば、そこまでの桁の数字を任意の数、例えば11で割る。そうすると余りは0から10のどれかになる。途中の数字を誤って読み取ったりしていると、この余りの数字と齟齬がでるので、誤入力があることが判明するということだ、ただし偶然余りが同じになるような誤入力をしてしまった場合はエラーが検出できないが、まあ、無いよりマシということで。
で、余りが10の場合は桁が増えてしまうのでXを当てる。

手元の本を探して、ISBNの末尾がXになっているものを探してみてほしい。もし見つけたら幸運が訪れるらしいから。
11で割らないで9とかで割れば、Xなんて文字を使用しなくてもいいのだが、そうするとエラー検出の可能性が減ってしまう。なら、どうせ余計な記号を使うなら17とかでわって最後の末尾は0~9とA~Fの16進数風にしたほうがいいんじゃないかと思うが、統一規格なんでいまさらブーイングをしてもしょうがない。

では、さっそく上9桁を11で割ってみよう

479232499割ることの11は・・・・

計算機でやっても小数点が表示されるだけだ orz

しょうがないので十数年ぶりに紙で手計算してみる。
筆算で割り算なんてひさしぶりだな、答えは4356659余り9と出た。

おやまあ、この本のISBNの末尾は8だから、なんか違う。

確認のためにエクセルで計算する。

セルA1に479232499と入力して、隣のセルに
=MOD(A1,11)
と書き込む。MOD モジュール関数というやつだな。公開鍵暗号のところででてきたアレだ。
結果はやっぱり「9」。
私の筆算の正確さが証明された次第。

だが、そんなこと証明されても問題は解決しない。

おそらく、ISBNのチェックディジットは、単純に割っているだけではない。つまりはこういうことらしい。

どうやら「各桁に「ウェイト」をかけて、計算し、その和を11で割った余りと11の整数倍との差」がチェックディジットのようだ。

なんでそんな手間をかけるのか、僕は知らない。おそらく、そうしたほうが数学的にエラーが少ないんだろう。そのうち理由を数学が得意な人に聞いてみたい。

ともあれ、上の方法で計算をしなおす。1桁目には10を掛ける。2桁目には9を掛ける、・・・・・と。

ISBN 4 7 9 2 3 2 4 9 9   
ウエイト 10 9 8 7 6 5 4 3 2   
ISBN*ウエイト 40 63 72 14 18 10 16 27 18 

ウエイトをかけた数値を全部足す

40+63+72+14+18+10+16+27+18=278

11の整数倍で近いものは
11*25=275と次は 11*26=286、

278と286の差は8

だからチェックディジットは8ということになる。正解。

あるいは、278を11で割ると余りは3で、11-3=8 としてもいい。

[11-MOD(278,11)] =8 ということか。

この計算方法を「モジュラス11ウェイト10-2」と呼ぶ。ウエイトを10から2まで並べるということだ。

これでISBNのチェックディジットは分かった。

しかし、バーコードの方は末尾に「5」とあったから、また別の計算方法を採用しているに違いない。

次回は再びシマシマをめぐる冒険に出る。

| | Comments (0)

シャモニー

シャモニー

宇都宮でまともなバーの筆頭の一つ。
ジャーナリストはステアだし、ややこしいカクテルもたいてい通る。さすが。

| | Comments (0)

宇都宮検定2

宇都宮検定2

プレゼンもうまく行った。

| | Comments (0)

宇都宮検定

宇都宮検定

今日は宇都宮市役所で学生による発表会。
こちらはポスターセッション。

| | Comments (0)

バーコード2

購入したリーダーを、パソコンにつないで見た。

接続した瞬間はピロリロリとビープ音がなるが、それ以外にはデバイスドライバすらない、本当にただつなぐだけ。
トリガーボタンを押すと赤い光が照射される。

ハードウェアとしては、USBキーボードとして認識されるようだ。
つまり、読み取ったバーコードのデータを、あたかもキーボードからPCに送るように送信されると、ただそれだけのようだ。

ということは、ワードでもエクセルでも、そのままつかえるということだろうか。

では、早速なにか読み取ってみよう。

まずは試しにエクセルを立ち上げる。

手元にはたまたま、つい一昨日に嘉悦大学の小菅成一先生から頂いた著書
「会社法重要判例解説〔第3版〕」(成文堂)

酒巻俊雄 尾崎安央編著
成文堂
cover

があるので、裏表紙のバーコードにリーダーを当ててトリガーを引く。
「ピッ」というスーパーのレジのような音がして、エクセルに文字が入力された。
「よやゆうやよふあふうよよえ」と表示される。

うむむ、何じゃこりゃ、と思ったが、日本語入力を入れたままだったのに気づく。
私は太古の昔からキーボードは「かな入力」なので、キーボード最上段の数字キーに相当する場所のひらがなが入力されてしまったようだ。

気を取り直して、日本語入力をオフにして、もう1回。

こんどは「9.78479E+12」と表示される。

あいすいません

エクセルのセル設定がデフォルトの「数値」のままだから、指数表示になってしまった。

セル書式を「文字列」に直して3度目の正直   「ピッ」

バーコード2

みごと、バーコードのシマシマの下に書かれている数字が、エクセルに入力された次第。

ところがこの数字、ISBNナンバーとは微妙に違う。

始まりの3桁が余計だし、最後の一桁が違っている。

Img356

それから、バーコードのシマシマは上下二つある。

下のほうは、右にあるCコードと定価の数字が織り込まれているようだ。

この数字の謎については次回。シマシマをめぐる冒険は、始まったばかりだ。

| | Comments (0)

ツリー

ツリー

銀座ミキモト前

| | Comments (1)

バーコード

バーコード

髪形の話ではない。
バーコードリーダー、買ってしまった。
学生出欠システムをつくるつもり、もちろん青森大より安くて使えるものにしたいところ。
うまくいくやら。。。。。
冬休みの自由研究だ。

| | Comments (0)

情報ネットワーク法学会

情報ネットワーク学会

今年は企業ブースが二つ、レクシスとウエストだった。レクシスはボールペンを、ウエストはカレンダーをくれた。(あたしゃモノもらいか)。

| | Comments (1)

« October 2006 | Main | January 2007 »