SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Henry Van Styn
<vanstyn@cpan.org>
YAPC::NA 2014
Tuesday, 24 June - 11:00AM
www.rapidapp.info
irc.perl.org - #rapidapp
Agenda
• What is RapidApp - overview & rationale
• How it works - basic architecture & APIs
• Live Demos & Examples…
• Questions feedback from audience & IRC:
join #rapidapp on irc.perl.org
RapidApp is…
• An extension to the Catalyst stack
• Aims to speed development with easy access to
common interface paradigms
• Preserves native APIs and environments
• Flexible, uber-modular design
• Multiple declarative configuration layers
• Wide-range of application personalities…
Features…
• Automatic, model-driven Ajax interfaces (ExtJS)
• Maps DBIx::Class methods to web front-ends (CRUD+)
• RESTful URL navigation schemes
• Powerful built-in templating and CMS
• Automatic asset management (css, js, icons, etc)
• (and other gooey-goodness)
Why another web framework?
Interfaces.
implicit interfaces
…the CRUD-based interfaces which are already implied
by the schema
* all you should have to do to ask for them (declarative) *
“Give me an interface to add rows to Foo”
• Should auto-generate a robust, fully working form
• with fields for each of Foo’s columns
• according to each column type…
• datetime? - date selector
• varchar? - text box
• etc.
• Column non-nullable? - required field
• Foreign key? - selection dialog for the remote source (e.g. dropdown)
• and so on
“Give me an interface to add rows to Foo”
…and, don’t be stupid:
• yes - handle client-side validation
• yes - scroll long content in a manner that is not moronic
• yes - display exceptions to the client
• etc.
• no - do not truncate column names…
• no - do not drown the children in the tub…
(or any other horrible thing I haven’t thought of but obviously don’t want)
Be on-demand - automatically change with the schema…
• column dropped? - field ceases to exist
• made nullable? - field no longer required
And obviously…
• Handle all the plumbing to tie cleanly into the backend
• Just work.
“Give me an interface to add rows to Foo”
And one more thing:
Do predict & provide high-level choices & options…
…and allow me to customize, extend & build upon the base…
…but don’t limit me.
Do not hinder me in any way from doing things differently.
All I’m really sayin’ …
give me everything
for free
with no trade-offs
Is that really so much to ask??
We already take powerful, declarative APIs for
granted in our perl-side code.
(how I learned I wanted them)
Perl has spoiled me
…and showed what great APIs can & should do
Catalyst
Moose
DBIx::Class
Devel::NYTProf
IO::All
Type::Tiny
Moo
Try::Tiny DateTime
Dist::Zilla
Plack
Path::Class
Web::Simple
Authen::Passphrase
Test::More
Template::Toolkit
DBI
Dancer
makes programming feel like …
Until…
…it was time to write the front-side code
Y U NO USE MY CSS CLASS?!
But, to be fair …
proficiency bias…
and it usually wasn’t the fault of CSS, Firefox …
(it was IE’s fault)
I don’t want to know CSS.
I want to write models and business logic.
(and still feel entitled to robust web interfaces)
Controller
ViewModel
Application Architecture:
Standard MVC
(“Components” in Catalyst)
DBIC
Controller
ViewModel
Application Architecture:
Standard MVC
(“Components” in Catalyst)
DBIC
Controller
ViewModel
Module
Application Architecture:
RapidApp adds
“Modules” to the mix
Standard MVC
(“Components” in Catalyst)
DBIC
Controller
ViewModel
Module
Application Architecture:
RapidApp adds
“Modules” to the mix
Encapsulate interface(s)
w/ plumbing
ViewModel
Controller Root
Module
DBIC
Controller
ViewModel
Module
Application Architecture:
Controller(s)
View(s)Model(s)
RapidApp adds
“Modules” to the mix
Encapsulate interface(s)
w/ plumbing
Components live
adjacent to each other
ViewModel
Controller Root
Module
DBIC
Controller
ViewModel
Module
Application Architecture:
Controller(s)
View(s)Model(s)
Components live
adjacent to each other
Modules live in a
hierarchy
ViewModel
Controller Root
Module
DBIC
Controller(s)
View(s)Model(s)
Module
Module Module
ModuleModule
...
Application Architecture:
Components live
adjacent to each other
Modules live in a
hierarchy
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
...
Application Architecture:
Only one
“Root” Module
…which is a Controller
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
...
Application Architecture:
RapidApp extends Catalyst via
the standard plugin API
Excitement for learning another DSL…
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
...
Application Architecture:
automatically injects and configures
modules and components…
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
...
Application Architecture:
automatically injects and configures
modules and components…
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
...
Application Architecture:
loads and configures other plugins…
ViewModel
Controller
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
Plugin
...
Application Architecture:
loads and configures other plugins…
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
Plugin
Plugin
...
...
More
Declarative
Application Architecture:
+
More
Specialized
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
Plugin
Plugin
...
...
More
Declarative
Application Architecture:
+
More
Specialized
Plugin
Application Architecture:
DBIC
Controller(s)
View(s)Model(s)
Root
Module
Module Module
ModuleModule
Catalyst::Plugin::RapidApp
Plugin Plugin Plugin
Plugin
...
Controller
Module
Ok… so, show us some code!
Example - MyDNS
• Lightweight authoritative DNS server
• C daemon serves records directly from MySQL
• Very simple schema (only 2 tables)
• Generally recognizable data (for those familiar with DNS)
Our task:
• Create a web-based admin app to manage MyDNS
MyDNS Schema
MyDNS Schema
(demo)
Demo checklist (RA::MyDNS) - 1
cpanm RapidApp
Explain + bootstrap with rapidapp.pl
Run app (1):
Explain navtree + tab panel
Show that URLs are all RESTful
Show grids
Paging, sorting, items p/pg, query time
Columns, show/hide, reorder, auto-size
Row page (double-click)
Filters
Quick Search
Relationship columns
CSV export
Configure app (1):
Show main app class, model & generated
schema classes
Explain grid_params & TableSpecs
enable editing
Run app (2):
Edit in grid, page & edit form
Delete: single, multiple
Batch Modify
Add rr w/ existing, then new soa
Configure app (2):
Set display_column (Soa/origin)
Run app (3):
Reload tab
Show zone rel w/ edit
Demo checklist (RA::MyDNS) - 2
Demo checklist (RA::MyDNS) - 3
Configure app (3):
Create ‘Type’ ResultSource::View
Run app (4):
Show new Type grid
With its rrs relationship
Configure app (4):
Add AuthCore plugin
Run app (5):
Login and out and in…
Show login via direct URL
Configure app (5):
Add CoreSchemaAdmin plugin
Run app (6):
Change a password
Show Sessions grid
Configure app (7):
Add NavCore plugin
Run app (8):
Create a saved view
Organize Navtree
Set a default source view
Demo checklist (RA::MyDNS) - 4
Demo BlueBox checklist
Explain AngleHack + BlueBox
git clone BlueBox repo
Run app:
Show public demo (newman)
Login and show admin section
Show editing template pages
nested templates
*.md templates
Show order_list page
view page source
explain iframe
Configure app:
Show code
Explain main class cnf opts
Explain Template Access class
Explain Chinook Demo (already on site)
git clone RA-ChinookDemo repo
checkout complex_rels branch
Show HEAD commit in github
Run app:
Show Album single-rels
Show Artist single-rel (self_titled_album)
Show MediaType multi-rel (rock_tracks)
Demo RA-ChinookDemo checklist
Questions?
Henry Van Styn
<vanstyn@cpan.org>
www.rapidapp.info
irc.perl.org - #rapidapp

Weitere ähnliche Inhalte

Was ist angesagt?

Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Fabio Franzini
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
SPTechCon
 

Was ist angesagt? (20)

Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
Getting Started with Rails
Getting Started with RailsGetting Started with Rails
Getting Started with Rails
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
SPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownSPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have known
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuery
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday Jersey
 
Twig
TwigTwig
Twig
 
Building a spa_in_30min
Building a spa_in_30minBuilding a spa_in_30min
Building a spa_in_30min
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6Efficient Rails Test-Driven Development - Week 6
Efficient Rails Test-Driven Development - Week 6
 
Vibe Custom Development
Vibe Custom DevelopmentVibe Custom Development
Vibe Custom Development
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!
 

Ähnlich wie RapidApp - YAPC::NA 2014

Ähnlich wie RapidApp - YAPC::NA 2014 (20)

Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 
web2py:Web development like a boss
web2py:Web development like a bossweb2py:Web development like a boss
web2py:Web development like a boss
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
 
Apex Code Analysis Using the Tooling API and Canvas
Apex Code Analysis Using the Tooling API and CanvasApex Code Analysis Using the Tooling API and Canvas
Apex Code Analysis Using the Tooling API and Canvas
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introduction
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Unlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin ArchitectureUnlocking the power of the APEX Plugin Architecture
Unlocking the power of the APEX Plugin Architecture
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 Questions
 
ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)ASP.net MVC Introduction Wikilogia (nov 2014)
ASP.net MVC Introduction Wikilogia (nov 2014)
 
2011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 52011 NetUG HH: ASP.NET MVC & HTML 5
2011 NetUG HH: ASP.NET MVC & HTML 5
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Progressive EPiServer Development
Progressive EPiServer DevelopmentProgressive EPiServer Development
Progressive EPiServer Development
 
Next Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring RooNext Generation Spring MVC with Spring Roo
Next Generation Spring MVC with Spring Roo
 
Web Development Today
Web Development TodayWeb Development Today
Web Development Today
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 

RapidApp - YAPC::NA 2014

Hinweis der Redaktion

  1. Going to talk about the open-source, RapidApp web framework Which has been an in-house platform that we’ve been developing internally for 5 years. Just started open-sourcing within the past year. which is an extension to Catalyst that focuses on building database-driven apps faster than ever.
  2. Once we get to the demos will go “off-script” and will dive into features and code partially based on audience feedback This slideshow will be uploaded to slideshare with link on yapcna.org after the end of the talk. There will also be links to all the code we’ll cover (including code we’ll write live during the talk) want to get to the demos & actual code quickly, … but first we need some context to set the stage
  3. It does… DBIC: this is one of the primary, original core features,… and we’ll be exploring it quite a bit in this talk… …but is still just a piece of a larger puzzle RapidApp also does…
  4. What problems does RapidApp solve?
  5. Still require entirely too much effort Not so much about custom specialty interfaces & designs - the highly visible ones you/designer want and plan to write … there are plenty of existing designer tools custom is custom… All the other, general interfaces… That you need but don’t want to write… And the interfaces that you just do without because you don’t have time to write them
  6. Just the idea that the basic rules and info needed for interfaces are already defined in the table schema… should be able to have access to them without a lot of effort Here is one, specific example: (NEXT) ->
  7. Where Foo is an existing model object, like a DBIC source
  8. Database won’t let you insert a string into an integer column … … so the form shouldn’t either Stay tied to schema…
  9. just as important as what a framework gives is what it takes away Don’t presume to know all the use-cases in advance
  10. Particularly in the tools coming out of the modern Perl movement, like Moose
  11. it feels great to program when you have awesome tools and libraries at your disposal it’s why i love Perl
  12. it’s how good APIs should make you feel …how Perl usually makes me feel
  13. Its like going from casting lightning bolts from your fingertips like a jedi master… … to scrubbing the bathroom floor with a toothbrush
  14. and CSS and I get along a lot better these days… CSS and JavaScript are robust, well-designed & impressive But that’s not the point…
  15. NEXT: Let’s see how RapidApp is built to accomplish this
  16. RapidApp is still Catalyst, so we still have the same Models, Views and Controllers…
  17. …with DBIC-based database backends connected through the Model API… Also standard
  18. Think of as specialized “Fat controller” Contains within it its own MVC-type structures
  19. Uses standard plugin API… Loading Plugin::RapidApp is what makes a Catalyst application become a RapidApp application… NEXT: Excitement for learning another DSL…
  20. These are the general items I plan to cover in the RA::MyDNS live demo…
  21. These are the general items I plan to cover in the RA::MyDNS live demo…
  22. These are the general items I plan to cover in the BlueBox live demo…