私はバーコードが好きだ。それも、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画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- 【分析】台湾とフアン氏の互恵関係に暗雲、敏感な部分に触れた中国スパイ疑惑2026年11月12日 に AM 6:25 に
ファンが差し出した雑誌の表紙にサインをするエヌビディアのフアンCEO=2025年1月17日、台湾・台北/Ann Wang/Reuters (CNN) 米半導体大手エヌビディアのジェンスン・フアン最高経営責任者(CEO)は長い年月をかけて、生まれ故郷の台湾と個人的な絆を築いてきた。 フアン氏は台湾を訪れるたびに地元の飲食店で食事を取...
- とにかく泣き止まない娘、泣き止まないという特性を活かして助産院に来ている実習生のあやし練習の相手になっており、学生たちから「先生」と呼ばれてた2026年11月12日 に AM 5:26 に
とにかく泣き止まない娘、泣き止まないという特性を活かして助産院に来ている実習生のあやし練習の相手になっており、学生たちから「先生」と呼ばれてた
- ちょっといい朝食が食べたくてホテルビュッフェに突入したら、超欲しいけど絶対いらないタイプの機械が設置されていた『全自動ヌテラサーバー』2026年11月12日 に AM 5:10 に
ちょっといい朝食が食べたくてホテルビュッフェに突入したら、超欲しいけど絶対いらないタイプの機械が設置されていた『全自動ヌテラサーバー』
- Compromised GitHub accounts push CI secret stealer to tens of thousands of repositories2026年11月12日 に AM 4:27 に
Compromised GitHub accounts push CI secret stealer to tens of thousands of repositories Compromised GitHub accounts push CI secret stealer to tens of thousands of repositories Starting on November 10, a threat actor used stolen GitHub credentials to push a malicious workflow payload into tens of ...
- (憲法季評)「道徳的悪」を禁止する売春防止法 性労働者の利益、無用に損なう 安藤馨:朝日新聞2026年11月12日 に AM 4:18 に
今秋の臨時国会では、売春防止法の改正法案提出が検討されている。現行の同法5条は、売る側の勧誘等のみを処罰するが、改正により買う側の勧誘等にも規制が及ぶ見込みである。同法3条は売買春自体を「禁止」するが、罰則はない。法務省の検討会の報告書では、性交について成人間の同意を無効とすることの理論的正当化...
- Googleが意思決定AIモデルの「Gemini Decisions 1」をリリース2026年11月12日 に AM 4:12 に
大規模言語モデル(LLM)とは異なるアプローチでタスクを解決するAIモデル「Jev」が登場して以降、同様の「意思決定モデル」と呼ばれるAIエージェントの判断を誘導するモデルが相次いで登場しています。新たにGoogleから意思決定モデルの「Gemini Decision 1」が登場しました。 Gemini Decisions API: Fast multimodal dec...
- 麻生コンクリート工業問題(3)工場内で発生する汚水を未処理のまま放流か|NetIB-News2026年11月12日 に AM 3:49 に
麻生コンクリート工業(株)(福岡県粕屋町、清原定之代表)の生コン工場で、工場内で発生した汚水が適切な処理を経ないまま、公共用水域につながる水路へ放流されていた疑いが浮上した。同工場は水質汚濁防止法上の特定事業場に該当する。当社は、同工場から水路への排水状況を示す資料などを確認しており、こうした排...
- すかいらーくHD、博多ラーメン「Shin-Shin」買収 低価格帯を強化 - 日本経済新聞2026年11月12日 に AM 3:47 に
すかいらーくホールディングス(HD)は12日、博多ラーメンの人気店「Shin-Shin(しんしん)」の運営会社を買収すると発表した。取得額は約120億円。主力のファミレスより低価格な業態を取り込み、都市部や海外での出店を強化する。12日に株式譲渡契約を結んだ。Shin-Shin創業者の中牟田信一氏が保有する全株式を取得し、...

