SlideShare a Scribd company logo
1 of 53
Download to read offline
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic
The Radiant Ethic

More Related Content

More from Sean Cribbs

Riak (Øredev nosql day)
Riak (Øredev nosql day)Riak (Øredev nosql day)
Riak (Øredev nosql day)
Sean Cribbs
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)
Sean Cribbs
 
Content Management That Won't Rot Your Brain
Content Management That Won't Rot Your BrainContent Management That Won't Rot Your Brain
Content Management That Won't Rot Your Brain
Sean Cribbs
 

More from Sean Cribbs (13)

Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with Ripple
 
Riak (Øredev nosql day)
Riak (Øredev nosql day)Riak (Øredev nosql day)
Riak (Øredev nosql day)
 
Riak Tutorial (Øredev)
Riak Tutorial (Øredev)Riak Tutorial (Øredev)
Riak Tutorial (Øredev)
 
Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)Introduction to Riak and Ripple (KC.rb)
Introduction to Riak and Ripple (KC.rb)
 
Schema Design for Riak
Schema Design for RiakSchema Design for Riak
Schema Design for Riak
 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf Training
 
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and Ripple
 
Round PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing FunctionallyRound PEG, Round Hole - Parsing Functionally
Round PEG, Round Hole - Parsing Functionally
 
Story Driven Development With Cucumber
Story Driven Development With CucumberStory Driven Development With Cucumber
Story Driven Development With Cucumber
 
Achieving Parsing Sanity In Erlang
Achieving Parsing Sanity In ErlangAchieving Parsing Sanity In Erlang
Achieving Parsing Sanity In Erlang
 
Of Rats And Dragons
Of Rats And DragonsOf Rats And Dragons
Of Rats And Dragons
 
Erlang/OTP for Rubyists
Erlang/OTP for RubyistsErlang/OTP for Rubyists
Erlang/OTP for Rubyists
 
Content Management That Won't Rot Your Brain
Content Management That Won't Rot Your BrainContent Management That Won't Rot Your Brain
Content Management That Won't Rot Your Brain
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Editor's Notes

  1. *** T/BDD, Test-first *** DRY *** Convention over configuration *** "Beautiful code" **** Efficiency, Expressivity, Elegance
  2. [Why is this ethical/moral?] *** Originally for ruby-lang.org *** "Static++" - flat, but easy to do typical site-management tasks *** Always had auto-expiring page cache **** 2006 custom-built expiring page cache (YML + content) **** 2009 converted to customized Rack::Cache (HTTP-friendly) *** Page/parts/snippets/layouts model strikes balance between generation and curation
  3. [Why is this ethical/moral?] *** Originally for ruby-lang.org *** "Static++" - flat, but easy to do typical site-management tasks *** Always had auto-expiring page cache **** 2006 custom-built expiring page cache (YML + content) **** 2009 converted to customized Rack::Cache (HTTP-friendly) *** Page/parts/snippets/layouts model strikes balance between generation and curation
  4. [Explain Pilsbury dough boy - tastes great, but leaves you fatter and wondering the contents of what you ate] [Why is this ethical/moral?] Core is < 6000 LOC (not including tests) Move non-core things to extensions and libraries Stand on others’ shoulders (Rails, Rack::Cache, RedCloth)
  5. [Why is this ethical/moral?] *** if-else vs. ternary operator *** tag design - if/unless, first/last (designer and content-model focused, not generic) *** Haml - simplifies default templates, emphasizes structure *** avoiding long chains of methods *** List for page tree is more pure, but harder to control and extend - uses table with classes
  6. [Why is this ethical/moral?] *** if-else vs. ternary operator *** tag design - if/unless, first/last (designer and content-model focused, not generic) *** Haml - simplifies default templates, emphasizes structure *** avoiding long chains of methods *** List for page tree is more pure, but harder to control and extend - uses table with classes
  7. [Why is this ethical/moral?] *** if-else vs. ternary operator *** tag design - if/unless, first/last (designer and content-model focused, not generic) *** Haml - simplifies default templates, emphasizes structure *** avoiding long chains of methods *** List for page tree is more pure, but harder to control and extend - uses table with classes
  8. [Why is this ethical/moral?] *** if-else vs. ternary operator *** tag design - if/unless, first/last (designer and content-model focused, not generic) *** Haml - simplifies default templates, emphasizes structure *** avoiding long chains of methods *** List for page tree is more pure, but harder to control and extend - uses table with classes
  9. [Why is this ethical/moral?] No ivory-tower content model No standard: * comment system * file-management * version-control * event calendar... etc.
  10. [Why is this ethical/moral?] 241 Extensions in the registry. Top 3 types: 1) Tweaks to admin UI or data model 2) Enhancements to page capabilities 3) Integration with external services and APIs Some core features are moving into extensions
  11. The simplicity, clarity and strong principles of Radiant have inspired others to copy it (Frog and Wolf) or take it as the basis for new systems (Webvanta), or even write reactions to it (Browser CMS).
  12. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  13. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  14. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  15. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  16. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  17. Extensions: proliferate, enable developer freedom Tags: some of my favorites are yield, children:if_first/last, aggregate
  18. Static Lean code Clarity General usefulness New features in extensions
  19. Static Lean code Clarity General usefulness New features in extensions
  20. Static Lean code Clarity General usefulness New features in extensions
  21. Static Lean code Clarity General usefulness New features in extensions
  22. Static Lean code Clarity General usefulness New features in extensions
  23. Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better. Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.
  24. Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better. Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.
  25. Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better. Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.
  26. Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better. Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.