私はバーコードが好きだ。それも、JAN-13/EAN-13形式限定で。理由はいくつかあるが、4種の太さのバーを4種の間隔に置くと13桁の数字を表現でき、それが世界中の企業や製品名とリンクしている、という情報量の少なさに比べたときの表現力の大きさに尽きる。バーの太さが重要な情報となるため、高い印刷精度...
私はバーコードが好きだ。それも、JAN-13/EAN-13形式限定で。理由はいくつかあるが、4種の太さのバーを4種の間隔に置くと13桁の数字を表現でき、それが世界中の企業や製品名とリンクしている、という情報量の少なさに比べたときの表現力の大きさに尽きる。バーの太さが重要な情報となるため、高い印刷精度と読取り精度が要求されるが、カメラを内蔵した携帯電話の普及やCCDの性能向上もあり、その活用範囲は拡がっている。
JAN-13/EAN-13の場合、最初の2桁は国コード(日本の場合49または45)、次の5桁(2001年以降は7桁)は商品メーカーコード、次の5桁(2001年以降は3桁)がメーカーが独自に決める商品アイテムコード、最後の1桁は読み取りが正しいかどうか判定するための情報(チェックデジット)とされている。
このJAN-13/EAN-13バーコードは、当コラムでいうところの「マッシュアップ」に使える素材だと考えている。そして最近、にわかにその必要性にかられているのだ。
というのも、CDの耐久性が気になり始めたから。一説にCDの寿命は数十年と言われるが、仮に30年が目安だとすると、自分のCDライブラリはそろそろヤバめということになる。プログレとかAORとか、GRP全盛期のフュージョンとか、購入から20年を経ているものが多いためだ。ふだんは湿気の少ない冷暗所(書斎ともいう)に保管しているが、それらが一斉に寿命を迎えたらかなりへこむ。
だから、CDが健全なうちにCD-Rへバックアップしようと考えている。数百枚は格納できるケースにCD-Rを収納し、PPシートへ管理タグ代わりにJAN-13/EAN-13バーコードを貼り付けよう、という計画なのだ。そのCDの情報が必要になったときは、スマートフォンのバーコード読み取りアプリを使えばいい。これも一種のマッシュアップと考えるが、いかがだろう?
肝心の方法だが……Rubyのバーコード生成ライブラリ「barby」を使うことにした。バーコードを生成してくれるWebサイトもあるが、さすがに数百枚ものCDを処理したくない。CD-Rへのバックアップは手作業にならざるをえないとして、チェックデジットを除いた12桁の数値をブラウザのテキストフィールドに手入力することは避けたい、そう考えれば自動処理を模索するのは必然だ。
準備はかんたん、Rubyを標準装備するOS Xの場合、TerminalからgemコマンドでBarbyとPNG出力用ライブラリをインストールすればOK。あとはスクリプトを用意すれば、バーコードを生成できるはずだ。
・BarbyおよびPNG出力用ライブラリのインストール $ sudo gem install barby $ sudo gem install barby-chunky_png
とりあえず作成したスクリプトは、ヘッダ部分を除き実質1行というかんたんなもの。それでも、引数として12桁の数値 — JAN-13/EAN-13バーコードの下にある数値の右端を除いた12桁 — を与え、出力先のPNGファイルを指定して実行すれば、立派なバーコードを作成できる。
今回はテストのためごく基本的な機能しか用意していないが、CSVファイルから数値を入力したり、複数のバーコードを帳票状に整形したりすれば、より実用的になるはず。マッシュアップは道半ば、引き続き改良を続けてみたい。
リスト1:バーコード生成用スクリプト(makeJAN13.rb) require 'rubygems' require 'barby' require 'barby/barcode/ean_13' require 'barby/outputter/png_outputter' print Barby::EAN13.new(ARGV[0]).to_png
コマンド実行例 $ ruby makeJAN13.rb 498800970102 > barcode.png
iPhoneでバーコード読み取りアプリ「ZBar Barcode Reader」を使い、今回用意したスクリプトで出力したPNG画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- 英とカナダ、パレスチナ国家承認 G7で初めて、豪も発表on 2025年9月21日 at PM 4:16
【ロンドン共同】スターマー英首相とカナダのカーニー首相は21日、パレスチナを正式に国家承認したとそれぞれ発表した。承認は先進7カ国(G7)で初めて。オーストラリア政府も21日、国家承認した。フランスも近く承認する意向を表明している。人道危機が深刻化するパレスチナ自治区ガザに攻撃を続けるイスラエルに対し、...
- NPMサプライチェーン攻撃のあったtinycolorを含むコンテナイメージを拡張スキャンで検査してみた | DevelopersIOon 2025年9月21日 at PM 4:09
NPMサプライ-チェーン攻撃の被害に遭った@ctrl/tinycolorパッケージを含むコンテナイメージをAmazon ECRの拡張スキャンで検証し、Inspectorによる検査の有効性を確認してみました 2025年9月15日、StepSecurityのブログで、週に200万回以上ダウンロードされる人気のNPMパッケージ @ctrl/tinycolor をはじめ、多数のパッケ...
- [第2話]呪術廻戦≡/週刊少年ジャンプ新連載試し読み - 芥見下々/岩崎優次 | 少年ジャンプ+on 2025年9月21日 at PM 4:05
JASRAC許諾第9009285055Y45038号 JASRAC許諾第9009285050Y45038号 JASRAC許諾第9009285049Y43128号 許諾番号 ID000002929 ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。
- [30話]セイレーンは君に歌わない - 猗笠怜司 | 少年ジャンプ+on 2025年9月21日 at PM 4:02
セイレーンは君に歌わない 猗笠怜司 <毎週月曜更新!最新2話無料>セイレーンの末裔・小鳥遊叶羽は、同級生の渋谷圭に夢中。叶羽は「愛する人を食べたくなってしまう」セイレーンの性質と恋心の間で揺れながら、勇気を出して告白するも呆気なく玉砕!しかしそこから渋谷くんの秘密を知ることになって… [JC3巻10/3発売]
- 極力負担が少ない形で本番データの正当性を担保する仕組みを導入した話 - エムスリーテックブログon 2025年9月21日 at PM 3:23
【Unit1 ブログリレー4日目】こんにちは、Unit1(製薬企業向けプラットフォームチーム)の高澤です。ブログリレー3日目は河野さんによる「AWS ECSの各クラスタのデプロイの失敗を横断的に検知する方法」でした。 Unit1 では Web講演会 という医師に向けた情報の講演会ライブ配信サービスを開発・運用しています。2020年...
- 大阪維新の会、大阪・摂津市議選で3人落選 阪南市議選でも1人落選:朝日新聞on 2025年9月21日 at PM 3:20
9月21日に投開票された大阪府摂津市議選(定数19)で、大阪維新の会の候補者3人が落選した。 市議選には大阪維新の会から現職3人、新顔4人の計7人が立候補した。そのうち、現職1人、新顔2人の計3人が…
- [番外編11]目の前の神様 - 久野田ショウ | 少年ジャンプ+on 2025年9月21日 at PM 3:06
目の前の神様 久野田ショウ <隔週月曜更新>大刀は最近、自分の指す手に自信が持てない。自らのデビュー戦で“神様”と出会ってから、何かが変わってしまった。同世代の“神様”に勝てる日は来るのか――自らを“凡人”と思う一人の棋士と“神様”、そして彼らと同じ時代を生きた人々の物語。 [JC4巻10/3発売]
- 強い石/ジャンプ+漫画賞 2025年5-6月期 - 今村孔輝 | 少年ジャンプ+on 2025年9月21日 at PM 3:06
JASRAC許諾第9009285055Y45038号 JASRAC許諾第9009285050Y45038号 JASRAC許諾第9009285049Y43128号 許諾番号 ID000002929 ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。