SlideShare a Scribd company logo
IMPLEMENTING QR CODE
SUBSPLASH TECH TALK 2017
IMPLEMENTING QR CODE
WHY QR CODE?
2
IMPLEMENTING QR CODE
OVERVIEW
3
"show me the money"
|
+---------------------+
| QR Code Encoder |
+---------------------+
|
v
|
+---------------------+
| QR Code Decoder |
+---------------------+
|
v
"show me the money"
IMPLEMENTING QR CODE
ENCODER
▸ Encode data
▸ Draw the QR code
4
IMPLEMENTING QR CODE
QR CODE DATA STRUCTURE
5
{{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}}
IMPLEMENTING QR CODE
QR CODE STRUCTURE
6
IMPLEMENTING QR CODE
STRUCTURE: FINDER PATTERNS
7
IMPLEMENTING QR CODE
STRUCTURE: SEPARATORS
8
IMPLEMENTING QR CODE
STRUCTURE: ALIGNMENT PATTERNS
9
IMPLEMENTING QR CODE
STRUCTURE: ALIGNMENT PATTERNS
10
Version 1 Version 2 Version 7
IMPLEMENTING QR CODE
STRUCTURE: ALIGNMENT PATTERNS
11
IMPLEMENTING QR CODE
STRUCTURE: TIMING PATTERNS
12
IMPLEMENTING QR CODE
STRUCTURE: TIMING PATTERNS
13
Version 2 Version 7
IMPLEMENTING QR CODE
STRUCTURE: TIMING PATTERNS
14
IMPLEMENTING QR CODE
STRUCTURE: DARK MODULE
15
IMPLEMENTING QR CODE
STRUCTURE: RESERVED FORMAT AREAS
16
IMPLEMENTING QR CODE
STRUCTURE: RESERVED VERSION AREAS
17
IMPLEMENTING QR CODE
STRUCTURE: RESERVED VERSION AREAS
18
Version 2 Version 7
IMPLEMENTING QR CODE
STRUCTURE: RESERVED VERSION AREAS
19
IMPLEMENTING QR CODE
STRUCTURE: DATA & ECC
20
IMPLEMENTING QR CODE
STRUCTURE: QUITE ZONE
21
IMPLEMENTING QR CODE
STRUCTURE: QUITE ZONE
22
Version 1 Version 2 Version 7
IMPLEMENTING QR CODE
ENCODING MODE
23
Numeric 12345, 9527
Alphanumeric "HELLO WORLD 123"
Kanji "⾃自動⾞車車"
Byte "Hello, world!", "你好, 世界!”
IMPLEMENTING QR CODE
BYTE MODE ENCODING
24
s 115 0111 0011
h 104 0110 1000
o 111 0110 1111
w 119 0111 0111
032 0010 0000
m 109 0110 1101
e 101 0110 0101
032 0010 0000
t 116 0111 0100
h 104 0110 1000
e 101 0110 0101
032 0010 0000
m 109 0110 1101
o 111 0110 1111
n 110 0110 1110
e 101 0110 0101
y 121 0111 1001
Mode Indicator 0100
Count Indicator 0001 0001
Encoded data 0111 0011 ...
Terminator 0000
Padding byte 1110 1100
0001 0001
IMPLEMENTING QR CODE
BYTE MODE ENCODING
25
0100 0001 0001 0111 0011 0110 1000 0110 1111 0111
0111 0010 0000 0110 1101 0110 0101 0010 0000 0111
0100 0110 1000 0110 0101 0010 0000 0110 1101 0110
1111 0110 1110 0110 0101 0111 1001 0000
IMPLEMENTING QR CODE
ERROR CORRECTION CODING
▸ Reed-Solomon
▸ Galois Field GF(256)
▸ Polynomial long division
26
message polynomial
rs_ecc = ----------------------
generator polynomial
IMPLEMENTING QR CODE
REED-SOLOMON
27
0100 0001 0001 0111 0011 0110 1000 0110 1111 0111
0111 0010 0000 0110 1101 0110 0101 0010 0000 0111
0100 0110 1000 0110 0101 0010 0000 0110 1101 0110
1111 0110 1110 0110 0101 0111 1001 0000
[65, 23, 54, 134, 247, 114, 6, 214, 82, 7, 70, 134, 82, 6, 214, 246, 230, 87, 144]
----------------------------------------------------------------
[0, 87, 229, 146, 149, 238, 102, 21]
[87, 3, 122, 77, 183, 109, 202]
||
IMPLEMENTING QR CODE
FINAL ENCODED DATA + ECC
28
0100 0001 0001 0111 0011 0110 1000 0110 1111 0111
0111 0010 0000 0110 1101 0110 0101 0010 0000 0111
0100 0110 1000 0110 0101 0010 0000 0110 1101 0110
1111 0110 1110 0110 0101 0111 1001 0000 0101 0111
0000 0011 0111 1010 0100 1101 1011 0111 0110 1101
1100 1010
IMPLEMENTING QR CODE
MATRIX SO FAR
29
IMPLEMENTING QR CODE
FILL IN THE DATA
30
IMPLEMENTING QR CODE
DATA MASKING
31
IMPLEMENTING QR CODE
MASK 0
32
IMPLEMENTING QR CODE
MASK 1
33
IMPLEMENTING QR CODE
MASK 2
34
IMPLEMENTING QR CODE
MASK 3
35
IMPLEMENTING QR CODE
MASK 4
36
IMPLEMENTING QR CODE
MASK 5
37
IMPLEMENTING QR CODE
MASK 6
38
IMPLEMENTING QR CODE
MASK 7
39
IMPLEMENTING QR CODE
APPLY MASKS
40
IMPLEMENTING QR CODE
APPLY MASKS
41
IMPLEMENTING QR CODE
PENALTY RULES
42
IMPLEMENTING QR CODE
RULE 1
43
every consecutive 5 blocks +3
every 1 block after that +1
score: 208
IMPLEMENTING QR CODE
RULE 2
44
every m x n rectangle 3 * (m - 1) * (n - 1)
score: 120
IMPLEMENTING QR CODE
RULE 3
45
score: 80
every 00001011101 40
every 10111010000 40
IMPLEMENTING QR CODE
RULE 4
46
dark module percentage
every 5% away from 45-55% 10
score: 10
277
IMPLEMENTING QR CODE
AND THE WINNER IS…
47
418 321 378 277
337 379 344 318
IMPLEMENTING QR CODE
MASK 3
48
IMPLEMENTING QR CODE
FORMAT INFORMATION
49
ecc level L 01
mask pattern 011
result 01011
ecc 111100010011
format info 01011111100010011
IMPLEMENTING QR CODE
FORMAT INFORMATION
50
ecc level L 01
mask pattern 011
result 01011
ecc 111100010011
format info 01011111100010011
IMPLEMENTING QR CODE
ALMOST DONE
51
IMPLEMENTING QR CODE
FINISHED
52
IMPLEMENTING QR CODE
IMPLEMENTATION NOTES
▸ Pattern matching
▸ Bitstring manipulation <<>>
▸ Recursion
▸ High order functions: Stream/Enum
▸ Meta programming
53
total loc 670
loc w/o comments 420
IMPLEMENTING QR CODE
IMMUTABLE DATA
54
def encode(binary) do
data = QRCode.Encode.encode(binary)
|> QRCode.ReedSolomon.encode()
QRCode.Encode.version(binary)
|> QRCode.Matrix.new()
|> QRCode.Matrix.draw_finder_patterns()
|> QRCode.Matrix.draw_seperators()
|> QRCode.Matrix.draw_alignment_patterns()
|> QRCode.Matrix.draw_timing_patterns()
|> QRCode.Matrix.draw_dark_module()
|> QRCode.Matrix.draw_reserved_format_areas()
|> QRCode.Matrix.draw_reserved_version_areas()
|> QRCode.Matrix.draw_data_with_mask(data)
|> QRCode.Matrix.draw_format_areas()
|> QRCode.Matrix.draw_version_areas()
|> QRCode.Matrix.draw_quite_zone()
end
‣ Encode data
‣ Draw the QR code
IMPLEMENTING QR CODE
FUN
55
@finder_pattern [
1, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 0, 0, 1,
1, 0, 1, 1, 1, 0, 1,
1, 0, 1, 1, 1, 0, 1,
1, 0, 1, 1, 1, 0, 1,
1, 0, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1,
]
IMPLEMENTING QR CODE
BITSTRING MANIPULATION
56
s 115 0111 0011
h 104 0110 1000
o 111 0110 1111
w 119 0111 0111
032 0010 0000
m 109 0110 1101
e 101 0110 0101
032 0010 0000
t 116 0111 0100
h 104 0110 1000
e 101 0110 0101
iex(1)> for <<b::1 <- "show me the money">>, do: b
[0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1,
1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, ...]
IMPLEMENTING QR CODE
META PROGRAMMING
57
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 29
9 58
. .
. .
. .
255 1
defmodule GaloisField do
Stream.iterate(1, fn e ->
n = e <<< 1
if n >= 256, do: n ^^^ 0b100011101, else: n
end)
|> Stream.take(256)
|> Stream.with_index()
|> Enum.each(fn {e, i} ->
def to_i(unquote(i)), do: unquote(e)
def to_a(unquote(e)), do: unquote(i)
end)
end
IMPLEMENTING QR CODE
RULE 1 RECURSION
58
defp do_rule1([h | t], {_, 0}, acc), do: do_rule1(t, {h, 1}, acc)
defp do_rule1([h | t], {h, 4}, acc), do: do_rule1(t, {h, 5}, acc + 3)
defp do_rule1([h | t], {h, 5}, acc), do: do_rule1(t, {h, 5}, acc + 1)
defp do_rule1([h | t], {h, n}, acc), do: do_rule1(t, {h, n + 1}, acc)
defp do_rule1([h | t], {_, _}, acc), do: do_rule1(t, {h, 1}, acc)
defp do_rule1([], _, acc), do: acc
[1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]
every consecutive 5 blocks +3
every 1 block after that +1
IMPLEMENTING QR CODE
RULE 2/3 PATTERN MATCHING
59
defp do_rule2([1, 1, 1, 1], acc), do: acc + 3
defp do_rule2([0, 0, 0, 0], acc), do: acc + 3
defp do_rule2([_, _, _, _], acc), do: acc
defp do_rule3([1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0]), do: 40
defp do_rule3([0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1]), do: 40
defp do_rule3([_, _, _, _, _, _, _, _, _, _, _]), do: 0
IMPLEMENTING QR CODE
SOURCE CODE
60
IMPLEMENTING QR CODE
USE CASE
61
IMPLEMENTING QR CODE
ADDING LOGO
62
IMPLEMENTING QR CODE
CUSTOMIZE QR CODE
63

More Related Content

What's hot

Lec5 encoder
Lec5 encoderLec5 encoder
Lec5 encoder
JabranButt
 
Gilat_ch01.pdf
Gilat_ch01.pdfGilat_ch01.pdf
Gilat_ch01.pdf
ArhamQadeer
 
Hash map
Hash mapHash map
Hash map
Emmanuel Fuchs
 
Introduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionIntroduction to Homomorphic Encryption
Introduction to Homomorphic Encryption
Christoph Matthies
 
Window functions in MariaDB 10.2
Window functions in MariaDB 10.2Window functions in MariaDB 10.2
Window functions in MariaDB 10.2
Sergey Petrunya
 
Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
Mohammad Amin Amjadi
 
Arna Friend Controls II Final
Arna Friend Controls II FinalArna Friend Controls II Final
Arna Friend Controls II Final
Arna Friend
 
Gilat_ch02.pdf
Gilat_ch02.pdfGilat_ch02.pdf
Gilat_ch02.pdf
ArhamQadeer
 
Gilat_ch03.pdf
Gilat_ch03.pdfGilat_ch03.pdf
Gilat_ch03.pdf
ArhamQadeer
 
Access pattern of tags
Access pattern of tagsAccess pattern of tags
Access pattern of tags
Harish Chetty
 
Gilat_ch05.pdf
Gilat_ch05.pdfGilat_ch05.pdf
Gilat_ch05.pdf
ArhamQadeer
 
Computing on Encrypted Data
Computing on Encrypted DataComputing on Encrypted Data
Computing on Encrypted Data
New York Technology Council
 
Reliable multimedia transmission under noisy condition
Reliable multimedia transmission under noisy conditionReliable multimedia transmission under noisy condition
Reliable multimedia transmission under noisy condition
Shahrukh Ali Khan
 
2019-ME-37(NMC).docx
2019-ME-37(NMC).docx2019-ME-37(NMC).docx
2019-ME-37(NMC).docx
ArhamQadeer
 
Convolution as matrix multiplication
Convolution as matrix multiplicationConvolution as matrix multiplication
Convolution as matrix multiplication
Edwin Efraín Jiménez Lepe
 
LEC 8-DS ALGO(heaps).pdf
LEC 8-DS  ALGO(heaps).pdfLEC 8-DS  ALGO(heaps).pdf
LEC 8-DS ALGO(heaps).pdf
MuhammadUmerIhtisham
 
SQLチューニング総合診療Oracle CloudWorld出張所
SQLチューニング総合診療Oracle CloudWorld出張所SQLチューニング総合診療Oracle CloudWorld出張所
SQLチューニング総合診療Oracle CloudWorld出張所
Hiroshi Sekiguchi
 
MariaDB: ANALYZE for statements (lightning talk)
MariaDB:  ANALYZE for statements (lightning talk)MariaDB:  ANALYZE for statements (lightning talk)
MariaDB: ANALYZE for statements (lightning talk)
Sergey Petrunya
 
Boost Performance With My S Q L 51 Partitions
Boost Performance With  My S Q L 51 PartitionsBoost Performance With  My S Q L 51 Partitions
Boost Performance With My S Q L 51 Partitions
PerconaPerformance
 

What's hot (19)

Lec5 encoder
Lec5 encoderLec5 encoder
Lec5 encoder
 
Gilat_ch01.pdf
Gilat_ch01.pdfGilat_ch01.pdf
Gilat_ch01.pdf
 
Hash map
Hash mapHash map
Hash map
 
Introduction to Homomorphic Encryption
Introduction to Homomorphic EncryptionIntroduction to Homomorphic Encryption
Introduction to Homomorphic Encryption
 
Window functions in MariaDB 10.2
Window functions in MariaDB 10.2Window functions in MariaDB 10.2
Window functions in MariaDB 10.2
 
Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
 
Arna Friend Controls II Final
Arna Friend Controls II FinalArna Friend Controls II Final
Arna Friend Controls II Final
 
Gilat_ch02.pdf
Gilat_ch02.pdfGilat_ch02.pdf
Gilat_ch02.pdf
 
Gilat_ch03.pdf
Gilat_ch03.pdfGilat_ch03.pdf
Gilat_ch03.pdf
 
Access pattern of tags
Access pattern of tagsAccess pattern of tags
Access pattern of tags
 
Gilat_ch05.pdf
Gilat_ch05.pdfGilat_ch05.pdf
Gilat_ch05.pdf
 
Computing on Encrypted Data
Computing on Encrypted DataComputing on Encrypted Data
Computing on Encrypted Data
 
Reliable multimedia transmission under noisy condition
Reliable multimedia transmission under noisy conditionReliable multimedia transmission under noisy condition
Reliable multimedia transmission under noisy condition
 
2019-ME-37(NMC).docx
2019-ME-37(NMC).docx2019-ME-37(NMC).docx
2019-ME-37(NMC).docx
 
Convolution as matrix multiplication
Convolution as matrix multiplicationConvolution as matrix multiplication
Convolution as matrix multiplication
 
LEC 8-DS ALGO(heaps).pdf
LEC 8-DS  ALGO(heaps).pdfLEC 8-DS  ALGO(heaps).pdf
LEC 8-DS ALGO(heaps).pdf
 
SQLチューニング総合診療Oracle CloudWorld出張所
SQLチューニング総合診療Oracle CloudWorld出張所SQLチューニング総合診療Oracle CloudWorld出張所
SQLチューニング総合診療Oracle CloudWorld出張所
 
MariaDB: ANALYZE for statements (lightning talk)
MariaDB:  ANALYZE for statements (lightning talk)MariaDB:  ANALYZE for statements (lightning talk)
MariaDB: ANALYZE for statements (lightning talk)
 
Boost Performance With My S Q L 51 Partitions
Boost Performance With  My S Q L 51 PartitionsBoost Performance With  My S Q L 51 Partitions
Boost Performance With My S Q L 51 Partitions
 

Similar to Implementing qrcode

Enumerating cycles in bipartite graph using matrix approach
Enumerating cycles in bipartite graph using matrix approachEnumerating cycles in bipartite graph using matrix approach
Enumerating cycles in bipartite graph using matrix approach
Usatyuk Vasiliy
 
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity VerificationQRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
ArcBlock
 
Number System | Types of Number System | Binary Number System | Octal Number ...
Number System | Types of Number System | Binary Number System | Octal Number ...Number System | Types of Number System | Binary Number System | Octal Number ...
Number System | Types of Number System | Binary Number System | Octal Number ...
Get & Spread Knowledge
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Decipher Multi-Factor Authentication - A Developers Introduction
Decipher Multi-Factor Authentication - A Developers IntroductionDecipher Multi-Factor Authentication - A Developers Introduction
Decipher Multi-Factor Authentication - A Developers Introduction
ArcBlock
 
Static analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systemsStatic analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systems
Andrey Karpov
 
Indexes From the Concept to Internals
Indexes From the Concept to InternalsIndexes From the Concept to Internals
Indexes From the Concept to Internals
Deiby Gómez
 
stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?
NETWAYS
 
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docxmetadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
ARIV4
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
Wim Godden
 
Hackers vs Hackers
Hackers vs HackersHackers vs Hackers
Hackers vs Hackers
jobandesther
 
Test s velocity_15_5_4
Test s velocity_15_5_4Test s velocity_15_5_4
Test s velocity_15_5_4
Kunihiko Saito
 
Snake Game on FPGA in Verilog
Snake Game on FPGA in VerilogSnake Game on FPGA in Verilog
Snake Game on FPGA in Verilog
Krishnajith S S
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
Flink Forward
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
Pankaj Rathod
 
OpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersOpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer Disasters
Connor McDonald
 
Algebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions ManualAlgebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions Manual
kejeqadaqo
 

Similar to Implementing qrcode (20)

Enumerating cycles in bipartite graph using matrix approach
Enumerating cycles in bipartite graph using matrix approachEnumerating cycles in bipartite graph using matrix approach
Enumerating cycles in bipartite graph using matrix approach
 
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity VerificationQRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
QRCodes are Fun, Easy, and Useful for Links, Payments and Identity Verification
 
Number System | Types of Number System | Binary Number System | Octal Number ...
Number System | Types of Number System | Binary Number System | Octal Number ...Number System | Types of Number System | Binary Number System | Octal Number ...
Number System | Types of Number System | Binary Number System | Octal Number ...
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Decipher Multi-Factor Authentication - A Developers Introduction
Decipher Multi-Factor Authentication - A Developers IntroductionDecipher Multi-Factor Authentication - A Developers Introduction
Decipher Multi-Factor Authentication - A Developers Introduction
 
Static analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systemsStatic analysis and writing C/C++ of high quality code for embedded systems
Static analysis and writing C/C++ of high quality code for embedded systems
 
Indexes From the Concept to Internals
Indexes From the Concept to InternalsIndexes From the Concept to Internals
Indexes From the Concept to Internals
 
stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?stackconf 2022: Are all programming languages in english?
stackconf 2022: Are all programming languages in english?
 
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docxmetadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
metadatacoreProperties.xmlModel2015-07-13T030104Zthua3267th.docx
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
Hackers vs Hackers
Hackers vs HackersHackers vs Hackers
Hackers vs Hackers
 
Test s velocity_15_5_4
Test s velocity_15_5_4Test s velocity_15_5_4
Test s velocity_15_5_4
 
Snake Game on FPGA in Verilog
Snake Game on FPGA in VerilogSnake Game on FPGA in Verilog
Snake Game on FPGA in Verilog
 
The Current State of Table API in 2022
The Current State of Table API in 2022The Current State of Table API in 2022
The Current State of Table API in 2022
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
Pushandpullproductionsystems chap7-ppt-100210005527-phpapp01[1]
 
OpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer DisastersOpenWorld 2018 - Common Application Developer Disasters
OpenWorld 2018 - Common Application Developer Disasters
 
Algebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions ManualAlgebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions Manual
 

Recently uploaded

IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
ssuser36d3051
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
Madhumitha Jayaram
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
PuktoonEngr
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
awadeshbabu
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
yokeleetan1
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
heavyhaig
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
PauloRodrigues104553
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 

Recently uploaded (20)

IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
sieving analysis and results interpretation
sieving analysis and results interpretationsieving analysis and results interpretation
sieving analysis and results interpretation
 
Wearable antenna for antenna applications
Wearable antenna for antenna applicationsWearable antenna for antenna applications
Wearable antenna for antenna applications
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt2. Operations Strategy in a Global Environment.ppt
2. Operations Strategy in a Global Environment.ppt
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Swimming pool mechanical components design.pptx
Swimming pool  mechanical components design.pptxSwimming pool  mechanical components design.pptx
Swimming pool mechanical components design.pptx
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
Technical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prismsTechnical Drawings introduction to drawing of prisms
Technical Drawings introduction to drawing of prisms
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
Series of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.pptSeries of visio cisco devices Cisco_Icons.ppt
Series of visio cisco devices Cisco_Icons.ppt
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 

Implementing qrcode