Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
QRコードを学んで遊ぼう / php-study-177
Search
meihei
July 30, 2025
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
QRコードを学んで遊ぼう / php-study-177
meihei
July 30, 2025
More Decks by meihei
See All by meihei
隙間ツール開発のすすめ / PHP Conference Fukuoka 2025
meihei3
0
1.3k
改めて学ぶ Trait の使い方 / phpcon odawara 2025
meihei3
1
2k
List とは何か? / PHPerKaigi 2025
meihei3
0
1.8k
WebアプリケーションにおけるPDOの使い方入門 / phpcon odawara 2024
meihei3
3
2.7k
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
0
490
ファイルを選択してZIPダウンロードする機能ってどうやって作るの? / phpcondo 2023
meihei3
1
930
New Relic CodeStreamを 使って、エラーを 加速的迅速に改修しよう! #NRUG Vol.8
meihei3
0
450
PHP8.2から見る、2つの配列 / PHP Conference Japan 2023
meihei3
0
2.6k
良いコードを書く 〜10年後のPR TIMESを作る〜 / LT会 in #PRTIMES_HACKATHON 2023
meihei3
2
290
Other Decks in Technology
See All in Technology
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.4k
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
140
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
11
7k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.7k
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
1
350
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.7k
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
180
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
4
5.3k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
840
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
250
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Code Reviewing Like a Champion
maltzj
528
40k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building an army of robots
kneath
306
46k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
Design in an AI World
tapps
1
260
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Transcript
QRコードを学んで遊ぼう 第177回 PHP勉強会@東京
#phpcon_odawara #boko 自己紹介 meihei | Yohei Ema BASE株式会社 BASE /
Product Dev / Feature Dev 1 X: @app1e_s mixi2: @meihei2 GitHub: @meihei3
None
None
意外と知らないことが多い!!
アジェンダ 1. QRコードって何なんだ!? 2. 誤り訂正符号なにそれ? 3. ロゴ重ねQRコードを作ってみた
QRコードって何なんだ!?
QRコードとは • 1994年にデンソーウェーブが開発した2次元コード ◦ QRコードは株式会社デンソーウェーブの登録商標です ←こういうの 地下鉄での活用事例 https://www.youtube.com/watch?v=I27vrvGgMDQ
何が面白いの? • 一次元コードに比べ情報を多く格納できる • どの角度からも高速で読み取れる • 誤り訂正機能がある 参照 https://time-space.kddi.com/mobile/20190425/2624.html
全方向高速読み取り • 3コーナーに配置されるファインダパターンによって 安定した高速読み取りができる • どの角度からも黒1:白1:黒3:白1:黒1 という黒白比になる 参照 https://www.ipsj.or.jp/dp/contents/publication/51/S1303-S05.html
全方向高速読み取り 黒1:白1:黒3:白1:黒1
誤り訂正機能 • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用 • インターリーブして、連続欠損を分散・訂正能力を 最大化 •
1 ブロックあたり最大で{誤り訂正パリティ}/2語ま での誤りを完全に直せる
?
誤り訂正符号なにそれ?
RS 符号の説明(超簡略化) • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用
RS 符号の説明(超簡略化) • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用
インターリーブする • 1byte(1符号語)ごとに交互に並べる • 連続でデータが掛けることを防ぐ ◦ 現実世界では、データが欠損する場所が集中するため
データの誤りを訂正可能 • 1 ブロックあたり最大で{誤り訂正パリティ}/2語ま での誤りを完全に直せる • インターリーブしたら、見かけ上多くのデータが欠 損していても訂正可能
データと誤り訂正符号の配置 • QRコードには、この誤り 訂正符号が配置されている 参照 https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp
ロゴ重ねQRコードを作ってみた
QR Code Generator https://u7f32phomuw7xbv434d2oqfqf40jadkk.lambda-url.ap-northeast-1.on.aws/ GitHub: https://github.com/meihei3/qr-create-page • Bref + Lambda
Function URLs で実行 • Slim + Twig で HTML を返す • endroid/qr-code でQRコードを生成 • Google Favicon API(正式名称ではない) ◦ https://www.google.com/s2/favicons ?domain=your_url
仕組み • endroid/qr-code で生成した QR コードに、CSS で favicon を乗っけているだけ
Lambdaで動かす時の注意 • 基本的に Bref で動かす ◦ php-84-fpm は al2 なので、来年にはランタイムを
更新する必要がある • GDライブラリを使うのが面倒 ◦ 使わないで済む方法を選ぶ ▪ SVGのQRコードを生成(SVGはXMLなので) ▪ ロゴ入りの画像を生成するのではなく、HTML+CSS でロゴを重ねる。
【おまけ】このアプリを作った生成AI • Claude Code ◦ 今使うならこれが一番かな • Gemini-cli ◦ 無料枠の
gemini 2.5 pro が使えなくなると終わる • Junie (JetBrains AI) ◦ Big Love♡ • Warp ◦ かなり好き ◦ https://app.warp.dev/referral/W9DDKN
まとめ
まとめ
著作権表記 • 本スライドで使用しとる一部の画像の著作権 は KEYENCE CORPORATION、情報処理学会、 KDDI CORPORATION が保有しとります © 2025 KEYENCE CORPORATION. All
Rights Reserved. © 2022 Information Processing Society of Japan. All Rights Reserved. © 2019–2022 KDDI CORPORATION. All Rights Reserved.