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
0
130
QRコードを学んで遊ぼう / php-study-177
meihei
July 30, 2025
Tweet
Share
More Decks by meihei
See All by meihei
隙間ツール開発のすすめ / PHP Conference Fukuoka 2025
meihei3
0
990
改めて学ぶ Trait の使い方 / phpcon odawara 2025
meihei3
1
1.7k
List とは何か? / PHPerKaigi 2025
meihei3
0
1.5k
WebアプリケーションにおけるPDOの使い方入門 / phpcon odawara 2024
meihei3
3
2.4k
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
0
440
ファイルを選択してZIPダウンロードする機能ってどうやって作るの? / phpcondo 2023
meihei3
1
830
New Relic CodeStreamを 使って、エラーを 加速的迅速に改修しよう! #NRUG Vol.8
meihei3
0
430
PHP8.2から見る、2つの配列 / PHP Conference Japan 2023
meihei3
0
2.4k
良いコードを書く 〜10年後のPR TIMESを作る〜 / LT会 in #PRTIMES_HACKATHON 2023
meihei3
2
270
Other Decks in Technology
See All in Technology
2026年はチャンキングを極める!
shibuiwilliam
9
1.9k
Introduction to Bill One Development Engineer
sansan33
PRO
0
360
使いにくいの壁を突破する
sansantech
PRO
1
110
分析画面のクリック操作をそのままコード化 ! エンジニアとビジネスユーザーが共存するAI-ReadyなBI基盤
ikumi
1
220
AI時代、1年目エンジニアの悩み
jin4
1
160
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
140
Deno・Bunの標準機能やElysiaJSを使ったWebSocketサーバー実装 / ラーメン屋を貸し切ってLT会! IoTLT 2026新年会
you
PRO
0
290
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
1
150
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Designing for Performance
lara
610
70k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
First, design no harm
axbom
PRO
2
1.1k
Accessibility Awareness
sabderemane
0
48
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
920
Raft: Consensus for Rubyists
vanstee
141
7.3k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
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.