Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
バーコードリーダーになろう!
Search
MakKi
October 05, 2018
Technology
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
バーコードリーダーになろう!
MakKi
October 05, 2018
More Decks by MakKi
See All by MakKi
テストだけじゃない!インプロセスDBで生まれるGoらしさ
makki_d
0
79
テストだけじゃない!インプロセスDBで生まれるGoらしさ
makki_d
0
80
SQLだけでマイグレーションしたい!
makki_d
0
1.4k
Recap: An Operating System in Go
makki_d
2
200
XSLTで作るBrainfuck処理系
makki_d
0
450
眼鏡と視力についての誤解を解く
makki_d
0
260
標準ライブラリの動向とイテレータのパフォーマンス
makki_d
3
790
range over funcのエラー処理
makki_d
1
1.9k
GoとテストとインプロセスDB
makki_d
3
720
Other Decks in Technology
See All in Technology
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
130
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
260
SDDの運用にめげずに向き合った話
sansantech
PRO
0
130
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
140
[2026 Oracle Technical Deep Dive] OCI AI Resilience -OCIのセキュリティ対策機能をきちんと使いこなす- (2026年9月17日開催)
oracle4engineer
PRO
0
120
Meet AgentCore Identity Consent Portal
hironobuiga
3
190
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
220
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
200
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
100
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
2
700
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
310
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
350
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Building Adaptive Systems
keathley
44
3.2k
The SEO Collaboration Effect
kristinabergwall1
1
590
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Statistics for Hackers
jakevdp
799
230k
My Coaching Mixtape
mlcsv
0
340
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
930
エンジニアに許された特別な時間の終わり
watany
109
250k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Test your architecture with Archunit
thirion
2
2.4k
Transcript
バーコードリーダーに なろう! KLab株式会社 EM部 牧内大輔
自己紹介 牧内大輔 Twitter: @makki_d GitHub: makiuchi-d 学生時代: 動画編集関連のフリーソフト 就職してから: ブラウザゲームの開発(モバゲー・GREE)
EMLauncher(デバッグアプリ配布ツール) 同期対戦通信基盤(Unity・Websocket・Go)
最近の趣味 ZXingをGo言語に移植 • ZXing (zebra crossing) ◦ https://github.com/zxing/zxing ◦ マルチフォーマットバーコードリーダー
▪ QRコードのような2次元コードもサポート ◦ Java製 ◦ AndroidのQRコードリーダーとして広く利用されている • gozxing ◦ https://gitub.com/makiuchi-d/gozxing ◦ Pure-Go実装
QRコードに詳しくなった Before↓ After→
せっかくだから みんなにも 詳しくなってほしい
でもQRコードは 覚えることが多くて さすがに難しい
バーコードくらいなら 単純でわかりやすい
今日はバーコードを 読めるようになって もらおう
バーコードリーダーに なろう!
バーコードの規格について 世の中にはたくさんの規格がある • EAN-8/13、UPC-A/E、Code-39/93/128、ITF、RSS-14、…… 今日扱うバーコード: EAN-13 • 商品を表すバーコード ◦ レジで読み取るやつ
• 国際規格 ◦ ISO/IEC 15420 ◦ 日本ではJANとも呼ばれる ▪ JIS-X-0507 画像出典: https://en.wikipedia.org/wiki/International_Article_Number
EAN-13の構造 • シンボルキャラクタ ◦ バー7本分の幅 ◦ 1個1桁の数値 ◦ 12個 •
ガードパターン ◦ 固定パターン ◦ 長いやつ ▪ 長くなってないこともある
シンボルキャラクタ表 • 30種類のパターン ◦ AとBは左半分用 ◦ Cは右半分用 数値 セットA セットB
セットC 0 1 2 3 4 5 6 7 8 9
シンボルキャラクタ表 • 30種類のパターン ◦ AとBは左半分用 ◦ Cは右半分用 実は10種類覚えればOK • CはAの白黒反転
• BはCの逆順 • 比率だと覚えやすい 数値 セットA セットB セットC 0 3:2:1:1 1 2:2:2:1 2 2:1:2:2 3 1:4:1:1 4 1:1:3:2 5 1:2:3:1 6 1:1:1:4 7 1:3:1:2 8 1:2:1:3 9 3:1:1:2
さっそく 読んでみよう
読んでみよう A9 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-1 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-12 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-123 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-1234 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-12345 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
読んでみよう A9B0B1A2A3B4-123457 数値 セットA セットB セットC 0 1 2 3
4 5 6 7 8 9
先頭の1桁は? 左半分にはAとBが混ざっていました A9B0B1A2A3B4-123457
先頭の1桁は? 左半分にはAとBが混ざっていました A9B0B1A2A3B4-123457 これを右の表に照らし合わせると ABBAAB → 5 0 A A
A A A A 1 A A B A B B 2 A A B B A B 3 A A B B B A 4 A B A A B B 5 A B B A A B 6 A B B B A A 7 A B A B A B 8 A B A B B A 9 A B B A B A
先頭の1桁は? 左半分にはAとBが混ざっていました A9B0B1A2A3B4-123457 これを右の表に照らし合わせると ABBAAB → 5 3つに分けてAの位置に注目すると覚えやすい 0 A
A A A A A 1 A A B A B B 2 A A B B A B 3 A A B B B A 4 A B A A B B 5 A B B A A B 6 A B B B A A 7 A B A B A B 8 A B A B B A 9 A B B A B A
これであなたもバーコードリーダー! 5-901234-123457
今日お話した内容は…… • KLab Tech Book Vol.3 に掲載 • 技術書典5にて頒布 ◦
10/8 ◦ 池袋サンシャインシティ • 電子版も無料配布予定 KLabGames Tech Blogをチェック! http://klabgames.tech.blog.jp.klab.com/