私はバーコードが好きだ。それも、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画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- 『定年退職したら夫婦で海外旅行でもしよう』と旅行積立をして、満期で受け取った旅行券ウン十万円分が10年前に有効期限切れしていた事に今日気付いたon 2026年3月3日 at AM 7:30
「定年退職後の夫婦旅行のために積み立て、満期で受け取った旅行券が有効期限切れで無価値になっていたと配偶者が発見。受け取りは15年前で有効期間は5年だったため失効。旅行券は商品券と違い期限管理が必要で、気づかず失効するケースがある。」
- 近所の飲食店で店員を大声で恫喝し続けている男がいた→恐怖を覚えた一般客として警察に通報するまでの流れがこちらon 2026年3月3日 at AM 7:01
てけ @taka_koro 近所の飲食店で、店員さんを大声で恫喝し続けてる男性がいたので通報しました ベストな対応だったかは分からないけど、似た状況に遭われた時の判断材料になればいいな…とメモ残しておきます(何かあれば消します) ・物理的に暴れてる訳ではなく、対応する店員さんの一挙一動を罵ってる状態だった 2026-...
- 【速報】金融庁、首相名の仮想通貨を調査へon 2026年3月3日 at AM 6:43
金融庁が高市早苗首相の名前入りの暗号資産(仮想通貨)「SANAE TOKEN」に関し、関連業者への調査を検討していることが3日、分かった。携わったとされる企業は、仮想通貨の発行に必要な登録がなく、事実関係を確認する。
- OpenAIが「政府による大規模監視へのAI活用」に同意したとの指摘を受けサム・アルトマンCEOが契約の見直しを発表on 2026年3月3日 at AM 6:37
by TechCrunch OpenAIはアメリカ国防総省(戦争省)と契約して自社AIの軍事利用に同意しましたが、国民の大規模監視や自律型兵器の開発は認めていません。一方、OpenAIの前に契約していたAnthropicはこの2つを明確に禁止したために国防総省から契約を切られ国家安全保障上のリスクであるとの烙印を押されています。なぜ同...
- Metaのスマートグラスの背後にいる「データアノテイター」はユーザーのプライベートな映像や写真をすべて見ることができるon 2026年3月3日 at AM 6:31
Metaが販売するAI搭載のスマートグラスについて、ユーザーの極めて私的なデータがケニアの労働者によって手作業で処理されている実態を、スウェーデンのメディア・Svenska Dagbladetが共同調査で明らかにしました。Metaのスマートグラスは日常生活を支える便利な助手として宣伝されていますが、その裏側ではプライバシー...
- FF14まとめサイト「馬鳥速報」も更新停止に スクエニの「ネトゲ速報」への対応受けon 2026年3月3日 at AM 6:05
この発表内容を踏まえ、馬鳥速報の管理者はサイトの閉鎖を決定。「インターネット上で情報を発信する責任の重さを改めて考え、自分なりに区切りをつけることにいたしました。ご迷惑をおかけしたFF14開発・運営スタッフの皆さま、本当に申し訳ございません」と謝罪している。 更新停止の理由としては、誹謗(ひぼう)中傷...
- 何ら権力を持たない一個人が、性犯罪の前科がある者の漫画を掲載するなと..on 2026年3月3日 at AM 6:05
何ら権力を持たない一個人が、性犯罪の前科がある者の漫画を掲載するなとネットで言うだけで 更生を妨げるとか人権侵害だとか認定するのはおかしいだろ。 ネットで文句を言われようが、直接抗議されようが、表現の自由は何ら奪われていないし 従いたくないなら抗議の声を無視して勝手にやればいいだけ。 抗議する事すら...
- リチウム不使用で発火リスクを抑えた単3形充電池。USB Type-Cで直接充電on 2026年3月3日 at AM 5:59
リチウム不使用で発火リスクを抑えた単3形充電池。USB Type-Cで直接充電

