私はバーコードが好きだ。それも、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画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- ASEANで石油共同備蓄、日本が主導 インドネシア・タイに拠点 - 日本経済新聞2026年11月12日 に AM 2:52 に
東南アジア諸国連合(ASEAN)諸国が石油製品の共同備蓄を始める。日本が主導して2027年にもインドネシアとタイに備蓄拠点を設ける。緊急時にASEAN域内の国に融通できるようにする。米国・イランの軍事衝突が2月に始まって以降、十分な備蓄がないASEAN諸国でエネルギー供給への不安が強まった。ASEANで備蓄体制が整えば、...
- Mozkey(もずきー)| 書くことに集中できる、日本語入力。2026年11月12日 に AM 2:13 に
書くことに集中できる、 日本語入力。自然に変換し、使うほど馴染む。 あなたの入力スタイルに合わせられる、日本語IME。
- Kotlin コンテキストパラメータの詳細な挙動を調べてみた - ドワンゴ教育サービス開発者ブログ2026年11月12日 に AM 2:06 に
概要 サンプルクラス コンテキストパラメータの定義 コンテキストパラメータの受け渡し方 ラムダ式 まとめ KotlinFestの宣伝 概要 コンテキストパラメータは Kotlin 2.4.0 で正式採用された新しい機能で、関数やプロパティの依存関係を、通常の引数とは違うかたちで暗黙的に受け渡すことができます。 kotlinlang.org こ...
- 【米中間選挙2026】 民主党コロム氏が歴史的勝利、ミシシッピ州の連邦上院選 - BBCニュース2026年11月12日 に AM 2:06 に
3日に投開票された米中間選挙の連邦上院選で、民主党候補のスコット・コロム氏がミシシッピ州で勝利した。数十年にわたり共和党を選出してきた極めて保守的な同州で、民主党が衝撃的な勝利を獲得した。同州から黒人候補が連邦上院に選ばれるのは、1881年以来。
- [社説]ロシアのJT介入を懸念する - 日本経済新聞2026年11月12日 に AM 1:58 に
ロシアのプーチン大統領は日本たばこ産業(JT)グループの現地法人7社を一時的にロシア企業の管理下に置く大統領令に署名した。7社の経営権を事実上奪う措置で、市場では1兆円規模の資産価値が損なわれるリスクが警戒されている。ロシアのウクライナ侵略を批判する国の企業だからといって、経営に一方的に介入するのは許...
- 本職の弁護士が訴訟相手からバリバリのAI書面が来た時の対応をコメント、こちらの書面もAIに読み込まれるのを想定すると、相手のAIが説得してくれる模様2026年11月12日 に AM 1:55 に
弁護士荒川香遥 @koyoarakawa 相手本人から、AIバリバリ書面に出くわすが、こういうときの反論書は、AIに読み込まれることを前提に裁判例をつけまくることにしてる。相手は判例検索に課金していないから判例を使った反論ができないし、こちらの書面を読み込ませて、相手がAIに説得されてきちんとした妥結を図れて...
- Software Factoryの先へ:全社の仕事をAI-NativeにするUbieの内製クラウドエージェント基盤2026年11月12日 に AM 1:43 に
Ubie CTO の @yukukotani です。 Ubie では 2023 年、GPT-3.5 Turbo が出た頃から、Web UI や Slack を起点に動くクラウドエージェント基盤を内製してきました(当時の様子)。 2025 年には、Software Factory を目指して、クラウド型エンジニアリングエージェント Uvin の開発も始めました(当時の様子)。一貫してクラ...
- NVIDIA、ファンCEOの解任準備と米紙報道 取締役会で進退議論 - 日本経済新聞2026年11月12日 に AM 1:18 に
【シリコンバレー=山田航平】米半導体大手エヌビディアの取締役会が、ジェンスン・ファン最高経営責任者(CEO)の進退をめぐり、11日に議論することが分かった。米紙ウォール・ストリート・ジャーナル(WSJ)は、取締役会が解任準備を進めていると報じた。ブルームバーグ通信によると、エヌビディアの取締役会は外部企業...

