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
札幌でテンプレート #hokkaidopm
Search
OGATA Tetsuji
September 19, 2012
Technology
0
18
札幌でテンプレート #hokkaidopm
2012/09/19 に Hokkaido.pm Casual#5 で発表したスライドです。
OGATA Tetsuji
September 19, 2012
Tweet
Share
More Decks by OGATA Tetsuji
See All by OGATA Tetsuji
Hokkaido.pmがあって YAPCでトークできた
xtetsuji
0
17
モダンmod_perl入門 #yapcasia
xtetsuji
0
11
すごいmod_perl
xtetsuji
0
8
Perl WAF Overview, with mod_perl - Hokkaido.pm#7 #hokkaidopm
xtetsuji
0
8
PerlのTwitterモジュールの紹介
xtetsuji
0
11
mod_perl hacks PHP
xtetsuji
0
5
文字化け2011〜まだまだ化けます〜
xtetsuji
0
11
mod_perl温故知新 〜Perl CGIの高速化からメールサーバまで〜
xtetsuji
0
7
Other Decks in Technology
See All in Technology
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
310
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
120
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.1k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
複雑なState管理からの脱却
sansantech
PRO
1
150
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Documentation Writing (for coders)
carmenintech
65
4.4k
4 Signs Your Business is Dying
shpigford
180
21k
How to Ace a Technical Interview
jacobian
276
23k
Designing Experiences People Love
moore
138
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Happy Clients
brianwarren
98
6.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Optimizing for Happiness
mojombo
376
70k
Transcript
ࡳຈͰςϯϓϨʔτ גࣜձࣾfonfun ඌܗ మ࣍ (OGATA Tetsuji) Twitter: @xtetsuji 2012/09/19 Hokkaido.pm
Casual#5
ࣗݾհ
ࣗݾհ • ඌܗ మ࣍ (OGATA Tetsuji) • Twitter: @xtetsuji •
Blog: http://post.tetsuji.jp/ • ಘҙٕ: mod_perl • Perlྺ9͚ͩͲ͕ࣝภ͍ͬͯΔͷͰɺ ࠓʹͳͬͯ৭ʑษڧ͍ͯ͠·͢ʼʻ
ࣗݾհ • Hokkaido.pmʹɺ#5͔Βຖճ(#7·Ͱ)ग़੮ • Hokkaido.pm Casual ࠓճ #5 ͕ॳࢀՃ •
େֶ(1997)͔Β্ژɺब৬ޙͣͬͱ౦ ژ • ࣮Ո͕ଳͰࠓճؼল͍ͭͰʹدΓ·ͨ͠ • Hokkaido.pm ࢲͷނڷͰ͢ʂ
ॴଐհ • גࣜձࣾfonfun(ϑΥϯϑΝϯ) http://www.fonfun.co.jp/ • ओྗɿϦϞʔτϝʔϧ http://rmail.jp/
Casualͷงғؾ͕Α͘ ͔Βͳ͍ͷͰ؇͘ ΒͤͯΒ͍·͢
ࠓճͷςʔϚɿ ςϯϓϨʔτೖ
PerlͷςϯϓϨʔτ • ೖࣾ࣌ͷ2003͔ΒPerl͍ͬͯͨˠ ࣌؆୯ͳϩάॲཧఔͷεΩϧ • 2004ࠒ͔ΒΣϒ։ൃΛ͞Εͨ •·͔͞ϓϩάϥϚʹͳΔͱ… • Σϒ։ൃݴޠͪΖΜPerl
PerlͷςϯϓϨʔτ • 2004ͬͨͷࣾͰ࡞ΒΕͨࣾ ಠࣗͷςϯϓϨʔτΤϯδϯ • ࣄ্࣮ϚχϡΞϧແ͠(´Д⊂ʋ • ৽نͷαΠτͰͷ༻͋·Γߟ͑ ΒΕͨઃܭͰͳ͔ͬͨ
PerlͷςϯϓϨʔτ • 2005ࠒ͔Β։ൃऀࣗҰਓͰ৽ن ։ൃΛߦ͍ͬͯ͘͜ͱʹͳͬͨ • ·ͩWAFશͷ࣌Ͱͳ͔ͬͨͷ Ͱɺ࠷ॳݟΑ͏ݟ·ͶͰී௨ͷPerl CGI (not mod_perl)
• HTML::Template Λ࠾༻
HTML::Template
HTML::Template • Perlʹੲ͔Β͋ΔςϯϓϨʔτΤϯδϯ • ଞͷߴੑೳͳςϯϓϨʔτΤϯδϯ͕ ޙൃͰग़͖ͯͨࠓྑ͘ΘΕ͍ͯΔ • ߏจ͕HTMLͬΆ͍ͷͰͦΕҎ֎Ͱ͏ ͱҧײ͕͋Δ͔ఔ
HTML::Template
HTML::Template • HTML::Template1999ͷϦϦʔεޙͷ ૣ͍ஈ֊ͰςϯϓϨʔτΩϟογϡΛ ࡌ͍ͯͨ͠ (mod_perlӬଓڥͰ) • ΩϟογϡˠCPU(I/O)અ • ඇΩϟογϡˠϝϞϦઅ
HTML::Template • نͷେ͖͍ΣϒΞϓϦέʔγϣϯ ͷ߹ɺςϯϓϨʔτϑΝΠϧͷಡΈ ࠐΈʹίετ͕͔͔ΔέʔεͰ Ωϟογϡ͕༗ޮ • લड़ͷࣗࣾςϯϓϨʔτΤϯδϯ ΩϟογϡΛαϙʔτ͍ͯ͠·͢
ઃఆϑΝΠϧͱ͔ • Ұ෦͚͕ͩҧ͏͚ͩͷେྔͷઃఆ ϑΝΠϧΛҰׅੜ͢Δ߹ • ࠷ۙ͜ͷखͷσϓϩΠπʔϧོ • PerlͰͳ͍ͷͷγϯϓϧͳίϚϯυ ϥΠϯπʔϧͷm4͕ྲྀ༻Ͱ͖Δ͔
m4
None
None
m4 • ݩʑCݴޠͷϓϦϓϩηοα • ݹ͍ݹ͍πʔϧͳͷͰɺbuild-essentialͳ ڥ͕ೖ͍ͬͯΕೖ͍ͬͯΔͣ • ਅ໘ʹ͓͏ͱ͢Δͱେม͚ͩͲɺ ද໘తʹ͏͚ͩͰ໘ന͍
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
m4 • CݴޠͷϓϦϓϩηοαͱͯ͠ߴʹ ར༻͞ΕΔm4͚ͩͲɺ͜Μͳࢸۃ୯७ ͳ࡞ۀ༻్ʹͬͯOKͰ͠ΐ͏ • Perl͡Όͳ͍͚Ͳɺಓ۩దࡐదॴ • ϞμϯͳઃఆϑΝΠϧσϓϩΠπʔϧ Υον͍ͨ͠Ͱ͢Ͷ
ଞͷςϯϓϨʔτͷ ͍৺Ͳ͏ͩΖ͏ • ༷ʑͳςϯϓϨʔτΤϯδϯ͕͋Δ • HTML::Template • Template-Toolkit (TT) •
Text::Xslate …ʑ • ࣌ʹΑͬͯྲྀߦΓ༷ʑ
ଞͷςϯϓϨʔτͷ ͍৺Ͳ͏ͩΖ͏ • ϙετϞμϯͳWAFͱηοτʹͳͬͯ ͍ͨΓ͢ΔςϯϓϨʔτΤϯδϯɺ Έͳ͞ΜͷΦεεϝ࠷ۙͷྲྀߦΓΛ ฉ͍ͯΈ͍ͨͰ͢ • Text::Xslateͱ໊͔લ͚͍ͩͬͯΔ͚ͩ Ͱ࣮ࡍʹͬͨ͜ͱແ͍ଵ͚ऀͰ͢
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠