Slide 1

Slide 1 text

ࡳຈͰςϯϓϨʔτ גࣜձࣾfonfun ඌܗ మ࣍ (OGATA Tetsuji) Twitter: @xtetsuji 2012/09/19 Hokkaido.pm Casual#5

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ࣗݾ঺հ • ඌܗ మ࣍ (OGATA Tetsuji) • Twitter: @xtetsuji • Blog: http://post.tetsuji.jp/ • ಘҙٕ: mod_perl • Perlྺ9೥͚ͩͲ஌͕ࣝภ͍ͬͯΔͷͰɺ ࠓʹͳͬͯ৭ʑษڧ͍ͯ͠·͢ʼʻ

Slide 4

Slide 4 text

ࣗݾ঺հ • Hokkaido.pmʹ͸ɺ#5͔Βຖճ(#7·Ͱ)ग़੮ • Hokkaido.pm Casual ͸ࠓճ #5 ͕ॳࢀՃ • େֶ(1997೥)͔Β্ژɺब৬ޙ΋ͣͬͱ౦ ژ • ࣮Ո͕ଳ޿Ͱࠓճؼল͍ͭͰʹدΓ·ͨ͠ • Hokkaido.pm ͸ࢲͷނڷͰ͢ʂ

Slide 5

Slide 5 text

ॴଐ঺հ • גࣜձࣾfonfun(ϑΥϯϑΝϯ) http://www.fonfun.co.jp/ • ओྗ੡඼ɿϦϞʔτϝʔϧ http://rmail.jp/

Slide 6

Slide 6 text

Casualͷงғؾ͕Α͘ ෼͔Βͳ͍ͷͰ؇͘ ΍Βͤͯ΋Β͍·͢

Slide 7

Slide 7 text

ࠓճͷςʔϚɿ ςϯϓϨʔτೖ໳

Slide 8

Slide 8 text

PerlͷςϯϓϨʔτ • ೖࣾ౰࣌ͷ2003೥͔ΒPerl࢖͍ͬͯͨˠ ౰࣌͸؆୯ͳϩάॲཧఔ౓ͷεΩϧ • 2004೥ࠒ͔Β΢Σϒ։ൃΛ೚͞Εͨ •·͔͞ϓϩάϥϚʹͳΔͱ͸… • ΢Σϒ։ൃݴޠ͸΋ͪΖΜPerl

Slide 9

Slide 9 text

PerlͷςϯϓϨʔτ • 2004೥࢖ͬͨͷ͸ࣾ಺Ͱ࡞ΒΕͨࣾ಺ ಠࣗͷςϯϓϨʔτΤϯδϯ • ࣄ্࣮ϚχϡΞϧແ͠(´Д⊂ʋ • ৽نͷαΠτͰͷ࢖༻͸͋·Γߟ͑ ΒΕͨઃܭͰ͸ͳ͔ͬͨ

Slide 10

Slide 10 text

PerlͷςϯϓϨʔτ • 2005೥ࠒ͔Β։ൃऀ͸ࣗ෼ҰਓͰ৽ن ։ൃΛߦ͍ͬͯ͘͜ͱʹͳͬͨ • ·ͩWAFશ੝ͷ࣌୅Ͱ͸ͳ͔ͬͨͷ Ͱɺ࠷ॳ͸ݟΑ͏ݟ·ͶͰී௨ͷPerl CGI (not mod_perl) • HTML::Template Λ࠾༻

Slide 11

Slide 11 text

HTML::Template

Slide 12

Slide 12 text

HTML::Template • Perlʹੲ͔Β͋ΔςϯϓϨʔτΤϯδϯ • ଞͷߴੑೳͳςϯϓϨʔτΤϯδϯ͕ ޙൃͰग़͖ͯͨࠓ΋ྑ͘࢖ΘΕ͍ͯΔ • ߏจ͕HTMLͬΆ͍ͷͰͦΕҎ֎Ͱ࢖͏ ͱҧ࿨ײ͕͋Δ͔΋ఔ౓

Slide 13

Slide 13 text

HTML::Template

Slide 14

Slide 14 text

HTML::Template • HTML::Template͸1999೥ͷϦϦʔεޙͷ ૣ͍ஈ֊ͰςϯϓϨʔτΩϟογϡΛ ౥ࡌ͍ͯͨ͠ (mod_perlӬଓ؀ڥ౳Ͱ) • ΩϟογϡˠCPU(I/O)અ໿ • ඇΩϟογϡˠϝϞϦઅ໿

Slide 15

Slide 15 text

HTML::Template • ن໛ͷେ͖͍΢ΣϒΞϓϦέʔγϣϯ ͷ৔߹ɺςϯϓϨʔτϑΝΠϧͷಡΈ ࠐΈʹίετ͕͔͔ΔέʔεͰ͸ Ωϟογϡ͕༗ޮ • લड़ͷࣗࣾςϯϓϨʔτΤϯδϯ΋ ΩϟογϡΛαϙʔτ͍ͯ͠·͢

Slide 16

Slide 16 text

ઃఆϑΝΠϧͱ͔ • Ұ෦෼͚͕ͩҧ͏͚ͩͷେྔͷઃఆ ϑΝΠϧΛҰׅੜ੒͢Δ৔߹ • ࠷ۙ͸͜ͷखͷσϓϩΠπʔϧ΋ོ੝ • PerlͰ͸ͳ͍΋ͷͷγϯϓϧͳίϚϯυ ϥΠϯπʔϧͷm4͕ྲྀ༻Ͱ͖Δ͔΋

Slide 17

Slide 17 text

m4

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

m4 • ݩʑ͸Cݴޠ౳ͷϓϦϓϩηοα • ݹ͍ݹ͍πʔϧͳͷͰɺbuild-essentialͳ ؀ڥ͕ೖ͍ͬͯΕ͹ೖ͍ͬͯΔ͸ͣ • ਅ໘໨ʹ࢖͓͏ͱ͢Δͱେม͚ͩͲɺ ද໘తʹ࢖͏͚ͩͰ΋໘ന͍

Slide 21

Slide 21 text

m4 # Ծ૝తͳઃఆϑΝΠϧ - some.conf.m4 hostname: __HOSTNAME__ username: someuser # ...ҎԼུ #!/bin/bash for hostname in sv{01..99} ; do m4 -D __HOSTNAME__=$hostname \ some.conf.m4 > some.conf.$hostname done

Slide 22

Slide 22 text

m4 • CݴޠͷϓϦϓϩηοα౳ͱͯ͠ߴ౓ʹ ར༻͞ΕΔm4͚ͩͲɺ͜Μͳࢸۃ୯७ ͳ࡞ۀ༻్ʹ࢖ͬͯ΋OKͰ͠ΐ͏ • Perl͡Όͳ͍͚Ͳɺಓ۩͸దࡐదॴ • ϞμϯͳઃఆϑΝΠϧσϓϩΠπʔϧ ΋΢Υον͍ͨ͠Ͱ͢Ͷ

Slide 23

Slide 23 text

ଞͷςϯϓϨʔτͷ ࢖͍৺஍͸Ͳ͏ͩΖ͏ • ༷ʑͳςϯϓϨʔτΤϯδϯ͕͋Δ • HTML::Template • Template-Toolkit (TT) • Text::Xslate …౳ʑ • ࣌୅ʹΑͬͯྲྀߦΓ͸༷ʑ

Slide 24

Slide 24 text

ଞͷςϯϓϨʔτͷ ࢖͍৺஍͸Ͳ͏ͩΖ͏ • ϙετϞμϯͳWAFͱηοτʹͳͬͯ ͍ͨΓ͢ΔςϯϓϨʔτΤϯδϯ౳ɺ Έͳ͞ΜͷΦεεϝ΍࠷ۙͷྲྀߦΓΛ ฉ͍ͯΈ͍ͨͰ͢ • Text::Xslateͱ໊͔લ͚ͩ஌͍ͬͯΔ͚ͩ Ͱ࣮ࡍʹ࢖ͬͨ͜ͱແ͍ଵ͚ऀͰ͢

Slide 25

Slide 25 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠