Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Untitled No. 12
Search
Stevan Little
January 16, 2010
Programming
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Untitled No. 12
I gave this talk at the Orlando Perl Workshop in 2010
Stevan Little
January 16, 2010
More Decks by Stevan Little
See All by Stevan Little
Perl's not dead, .. it got better!
stevan_little
1
800
Perl's Syntactic Legacy
stevan_little
0
1.2k
Installation & Configuration of Modern Perl
stevan_little
2
710
Moe Status Update
stevan_little
1
1.4k
Perl - The Detroit of Scripting Languages
stevan_little
14
13k
Perl is not Dead, it is a Dead End
stevan_little
38
46k
Perl 5 MOP
stevan_little
9
2.1k
REST from the trenches
stevan_little
6
1.6k
DC-Baltimore Perl Workshop - Keynote
stevan_little
4
920
Other Decks in Programming
See All in Programming
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
180
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
500
Java 27新機能 / Java 27 new features
kishida
2
170
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
190
Security issues being discussed on Web Platforms
petamoriken
0
1.2k
AHC070解法紹介
eijirou
0
130
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.4k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
270
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
460
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
170
What We Talk About When We Talk About XP
m_seki
2
680
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Producing Creativity
orderedlist
PRO
348
41k
The browser strikes back
jonoalderson
0
1.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
KATA
mclloyd
PRO
35
16k
4 Signs Your Business is Dying
shpigford
187
23k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
730
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
300
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
510
Transcript
hello
Welcome to my talk, here are some of the modules
I will be talking about
Bread::Board is a Dependency Injection framework, available on CPAN
Plack is Web Infastructure-ware written by miyagawa
Plack::Middleware is the killer app of Plack
Path::Router is a module available on CPAN
... and of course Moose
But first let me toast Open Source, for all the
collaboration and sharing of ideas that make it so much fun to participate in.
There is vast knowledge and great ideas to be found
out there, both in the ivory towers of CompSci departments and in other Open Source communities, it is time to rediscover some ...
This is a great book with a lot of Lambda
Calculus in it and the Y-Combinator is awesome, this kind of elegance and simplicity is not useful, but should be inspiring
Smalltalk is a great system from which too steal from,
Steve Jobs did it in the 80s, Ruby did it in the 90s and Moose did it in the 00s
Haskell is mind-bendingly insane and strikingly beautiful at the same
time
LISP is a wonderful language used by many really smart
people, we can learn from them too
Moose borrows shamelessly from all these technologies and more and
brings them to Perl
Miyagawa has been mining the knowledge of other Open Source
communities to bring us Plack and the next generation of Perl web tools
Now I would like to show you my latest experiment,
bringing together the modules I mentioned earlier.
The goal is simplicity and avoiding needless framework boilerplate or
useless subclassing
Here is an example of a simple counting program, over-engineered
to illustrate how the pieces of an OX::Application fit together
This is the core of the Bread::Board config, notice the
circular dependency between View/Nib and Controller/Root, Bread::Board takes care of this.
This is the routing spec, it defines the available URLs
for the application and will automatically wire them to the controller dependencies
Here is the model, very simple plain old Moose class
Here is the controller, also a simple plain old Moose
class
This is an experiment in making TT work in a
way that is conceptually similar to Cocoa (the Mac OS X framework)
This is our .psgi file, it is so simple and
clean :)
This is our .psgi file evolved to take advantage of
some Plack::Middleware
Web apps should be easily testable too, here we fetch
Bread::Board services to test.
Here we use the Test::Path::Router to check the URLs our
web application will respond too
Here we use Plack::Test to test our web application
Holy crap, look at all the plugs in that outlet!