Slide 1

Slide 1 text

ࠓ೔ͷ”Ͳ͏ॻ͘”໰୊ͷ ΞϧΰϦζϜྫ 2019/04/17 #nagoyaphp @ttskch

Slide 2

Slide 2 text

๻ʹ͍ͭͯ

Slide 3

Slide 3 text

͖ͨͭͪʢ໊͋ͩʣ • (ג)ΧϧςοτίϛϡχέʔγϣϯζCTO • WebΤϯδχΞྺ7೥ɺPHPྺ7೥ • #nagoyaphpʊ • #symfony_meetup

Slide 4

Slide 4 text

͖ͨͭͪʢ໊͋ͩʣ • ͓ख఻͍ͨ͠ຊʢ2015/12ʣ • Schooߨࢣʢ2018/04ʣ ʮGitHubΛ࢖ͬͨσϓϩΠࣗಈԽ࣮ફʯ ʮجຊ͔Β͔ͬ͠ΓֶͿ Symfony2ೖ໳ʯ

Slide 5

Slide 5 text

ͨ ͭ ͖ ͪ twitter.com/ttskch ͋͞ɺ͋ͳͨ΋ࠓ͙͢ϑΥϩʔ͠Α͏!!! ׬શແྉ ·͞ʹ໊ݴ੡଄ػ ਓੜͰେ੾ͳ͜ͱ͸ɺ͢΂ͯ ͖͔ͨͭͪΒڭΘͬͨ ͖ͨͭͪΛϑΥϩʔͨ͠Β
 ࠊ௧͕࣏Γ·ͨ͠ 100% φϯτʂ ϑΥϩϫʔ͔Βͷࢧ࣋཰ 100% ͍ͯ͠Δ ͍ͯ͠ͳ͍ ϑΥϩϫʔ͞Μ100ਓʹฉ͖·ͨ͠ ͖ͨͭͪΛϑΥϩʔ͍ͯ͠Δʁ

Slide 6

Slide 6 text

ձࣾʹ͍ͭͯ

Slide 7

Slide 7 text

(ג)Χϧςοτίϛϡχέʔγϣϯζ https://quartet-communications.com

Slide 8

Slide 8 text

(ג)Χϧςοτίϛϡχέʔγϣϯζ https://www.google.co.jp/search?q=Χʔςϯ

Slide 9

Slide 9 text

(ג)Χϧςοτίϛϡχέʔγϣϯζ https://lisket.jp

Slide 10

Slide 10 text

We are hiring!ʢϚδͰʣ • PHPer/JSer ઈࢍେืूதʂʢϦϞʔτ΍όΠτ΋Մʣ • Symfony+Angular ͰɺWeb޿ࠂۀքΛ
 ϗϫΠτʹ͢Δ࢓૊ΈΛ࡞ͬͯ·͢ • ܦӦϏδϣϯ͸ʮੈքҰޮ཰తͳ୅ཧళʯ

Slide 11

Slide 11 text

We are hiring!ʢϚδͰʣ • ࣗࣾαʔϏεʮLisketʯͰࣗࣾͷۀ຿΋ޮ཰Խ • શࣾһͷฏۉ࢒ۀ͕࣌ؒ5h/݄͙Β͍Ͱ͢ ಛผ৆ड৆

Slide 12

Slide 12 text

We are hiring!ʢϚδͰʣ ΤϯδχΞͷಇ͖΍͢͞௒େࣄʹͯ͠·͢✨

Slide 13

Slide 13 text

We are hiring!ʢϚδͰʣ ·ͣ͸͓࿩͚ͩͰ΋ʂؾܰʹ੠͔͚͍ͯͩ͘͞

Slide 14

Slide 14 text

ࠓ೔ͷ”Ͳ͏ॻ͘”໰୊ͷ ΞϧΰϦζϜྫ 2019/04/17 #nagoyaphp @ttskch

Slide 15

Slide 15 text

http://nabetani.sakura.ne.jp/hena/ordf04octsp/

Slide 16

Slide 16 text

௖఺਺ͷٻΊํ

Slide 17

Slide 17 text

1 2 4 8 16 32 64 128

Slide 18

Slide 18 text

3 5 4 4

Slide 19

Slide 19 text

3 5 4 4 1 2 3 2

Slide 20

Slide 20 text

1 2 3 2 3 5 4 4 ؔ܎ͯͦ͠͏

Slide 21

Slide 21 text

3 5 4 4 1 2 3 2

Slide 22

Slide 22 text

3 5 4 4 1 2 3 2 3 -1 = 2

Slide 23

Slide 23 text

3 5 4 4 1 2 3 2 2 + 3 = 5 3 -1 = 2

Slide 24

Slide 24 text

3 5 4 4 1 2 3 2

Slide 25

Slide 25 text

3 5 4 4 1 2 3 2 2 -1 = 1

Slide 26

Slide 26 text

3 5 4 4 1 2 3 2 1 + 3 = 4 2 -1 = 1

Slide 27

Slide 27 text

3 5 4 4 ࣮ઢؒͷڑ཭͔Β௖఺਺͸ٻΊΒΕΔ

Slide 28

Slide 28 text

5

Slide 29

Slide 29 text

5 4

Slide 30

Slide 30 text

5 4 4 -1 = 3

Slide 31

Slide 31 text

5 4 3 + 3 = 6 4 -1 = 3

Slide 32

Slide 32 text

5 4 4 -1 = 3 3 + 3 = 6 3 + 2= 5

Slide 33

Slide 33 text

5 4 ڑ཭͕4ͷͱ͖͚ͩܭࢉํ๏͕มΘΔ

Slide 34

Slide 34 text

1 2 4 8 16 32 64 128

Slide 35

Slide 35 text

2 8 16 64 1 2 3 2 1 4 32 128

Slide 36

Slide 36 text

21 23 24 26 1 2 3 2 20 22 25 27

Slide 37

Slide 37 text

21 23 24 26 1 2 3 2 20 22 25 27

Slide 38

Slide 38 text

21 23 24 26 1 2 3 2 20 22 25 27 ൪߸Λ2ͷྦྷ৐Ͱද͢ͱࢦ਺෦ͷࠩͰڑ཭ΛٻΊΒΕΔ

Slide 39

Slide 39 text

21 23 24 26 2 3 2 22 25 Ұप͢Δͱۙͮ͘ߏ଄ͳͷͰ8ͷ৒༨Λ࢖͑͹Αͦ͞͏✋ 1 20 27

Slide 40

Slide 40 text

ೖྗͷύʔε

Slide 41

Slide 41 text

1 2 4 8 16 32 64 128

Slide 42

Slide 42 text

2 8 16 64 165 Λ 1 + 4 + 32 + 128 ʹ෼ղ͍ͨ͠ 1 4 32 128

Slide 43

Slide 43 text

2 8 16 64 1 4 32 128

Slide 44

Slide 44 text

21 23 24 26 20 22 25 27

Slide 45

Slide 45 text

165 = 27x1 + 26x0 + 25x1 + 24x0 + 23x0 + 22x1 + 21x0 + 20x1 21 23 24 26 20 22 25 27

Slide 46

Slide 46 text

165 = b10100101 21 23 24 26 20 22 25 27

Slide 47

Slide 47 text

21 23 24 26 20 22 25 27 ೖྗΛ2ਐ਺Ͱද͢ͱɺ஋͕1ͷܻ͕࣮ઢͷҐஔΛࣔ͢

Slide 48

Slide 48 text

࣮૷ྫ

Slide 49

Slide 49 text

public function run(string $input): string { $lines = array_values(array_filter(range(0, 7), function (int $i) use ($input) { return str_split(sprintf('%b', $input))[$i] ?? false; })); $vertices = []; for ($i = 0; $i < count($lines); $i++) { $distance = ($lines[($i + 1) % count($lines)] - $lines[$i] + 8) % 8; $vertices[] = ($distance === 4 ? 2 : 3) + $distance - 1; } sort($vertices); return implode('', $vertices); }

Slide 50

Slide 50 text

public function run(string $input): string { $lines = array_values(array_filter(range(0, 7), function (int $i) use ($input) { return str_split(sprintf('%b', $input))[$i] ?? false; })); $vertices = []; for ($i = 0; $i < count($lines); $i++) { $distance = ($lines[($i + 1) % count($lines)] - $lines[$i] + 8) % 8; $vertices[] = ($distance === 4 ? 2 : 3) + $distance - 1; } sort($vertices); return implode('', $vertices); } ೖྗΛ2ਐ਺ʹม׵ͯ͠ɺཱ͍ͬͯΔϏοτͷҐஔʢ0ʙ7ʣΛ഑ྻʹ͢Δɻ ྫ୊ͷ৔߹͸ $lines === [0, 2, 5, 7] ͱͳΔɻ͜Ε͕࣮ઢͷҐஔɻ ೖྗͷύʔε

Slide 51

Slide 51 text

public function run(string $input): string { $lines = array_values(array_filter(range(0, 7), function (int $i) use ($input) { return str_split(sprintf('%b', $input))[$i] ?? false; })); $vertices = []; for ($i = 0; $i < count($lines); $i++) { $distance = ($lines[($i + 1) % count($lines)] - $lines[$i] + 8) % 8; $vertices[] = ($distance === 4 ? 2 : 3) + $distance - 1; } sort($vertices); return implode('', $vertices); } [0, 2, 5, 7] ͱ͍͏഑ྻʹରͯ͠ɺཁૉؒͷ͔ࠩΒ࣮ઢؒͷڑ཭ΛٻΊΔͱɺ (2-0+8)%8=2, (5-2+8)%8=3, (7-5+8)%8=2, (0-7+8)%8=1 ͱͳΔɻ ڑ཭͕4ͷ৔߹͸ 2+ڑ཭-1 ͕ɺڑ཭͕ͦΕҎ֎ͷ৔߹͸ 3+ڑ཭-1 ͕௖఺਺ɻ ௖఺਺ͷܭࢉ

Slide 52

Slide 52 text

https://github.com/ ttskch/nagoyaphp15

Slide 53

Slide 53 text

@ttskch ʘThanks!ʗ