SlideShare a Scribd company logo
1 of 86
Building an Anti-CMS (and how it’s changed our web team) Michael Nolan http://twitter.com/MikeNolan/ http://www.michaelnolan.co.uk/ http://blogs.edgehill.ac.uk/webservices/ http://joind.in/621/
Edge HillWTF?
3 years 1 month 3 days
© 1984 Charles Platt and David Langford; Micromania: The Whole Truth About Home Computers
SOAP RPC REST
SOAP RPC REST
Anti-CMS?
CMS?
Loremipsumdolor sit amet, consecteturadipiscingelit. Nullabibendum, urna non luctus tempus, purusurnaposuere nisi, velfeugiatorcifelis in turpis. Curabiturvenenatiseros et enimlaoreet a sollicitudinipsumhendrerit. Quisqueurnaarcu, egestasnecvarius non, consectetur vitae libero. Nullarutrummalesuadasuscipit. Donecbibendumiaculisdolor sit ametmollis. Last updated: 10 seconds ago
workflow, version control, roles, support, audit trail, kitchen sink...
EVERYONE HAS ONE
Reality
Wrong People
Training on… System
Training on… Writingfor theWeb
CMS inhibit creativity
CMS are slow to adapt to new technologies
CMS often tie you to the vendor for extensions
News
Events
Courses
/programmes /music
domain expert
Press Releases
Calendar Entries
Courses?
XCRI-CAP
Propel ORM * yes, we are still using symfony 1.0 and yes, I know we should upgrade
$ symfony propel-init-admin frontend courseAdmin Course
<div class="vcard"> <a href="/performingarts/about/staff/phil-christopher" class="url">   <img class="photo" src="/images/phil-christopher" alt="Phil Christopher" /> </a> <h3 class="fn">   <a href="/performingarts/about/staff/phil-christopher">     <span class="given-name">Phil</span>     <span class="family-name">Christopher</span>   </a> </h3> <p class="role">Head of Performing Arts</p> <div class="tel">   <span class="type">Work</span> 01695 584688 </div> <div class="email">   <a href="mailto:chrisp@edgehill.ac.uk"       title="chrisp@edgehill.ac.uk">Email</a> </div> <div class="vprofile">   <a href="/performingarts/about/staff/phil-christopher">View Profile</a> </div> <div class="tags">   <ul>     <li><a href="/profiles/tag/Directing" rel="tag">Directing</a></li>     <li><a href="/profiles/tag/Drama" rel="tag">Drama</a></li>     <li><a href="/profiles/tag/Performance" rel="tag">Performance</a></li>     <li><a href="/profiles/tag/Theatre" rel="tag">Theatre</a></li>   </ul> </div> </div>
TAGS
machine TAGS
ehu:news=count-on-edge-hill
ehu:event=42
ehu:course=accountancy
ehu:profile=nolanm
ehu:video=graduation-2009
ehu:department=education
Zend Search Lucene
Atom, JSON, PHP, XCRI, iCal
job done?
contentordata
Zend, Symfony, Cake, CI, Yii, Agavi...Django, RoR, .Net MVC, *ducks*
(and how it’s changed our web team)
( www || blogs || wiki )
Building an Anti-CMS (and how it’s changed our web team) Michael Nolan http://twitter.com/MikeNolan/ http://www.michaelnolan.co.uk/ http://blogs.edgehill.ac.uk/webservices/ http://joind.in/621/
Creative Commons http://www.flickr.com/photos/dalelane/3089960339/ http://en.wikipedia.org/wiki/File:Edge_Hill,_Liverpool.JPG http://en.wikipedia.org/wiki/File:Groove_Armada.jpg http://www.flickr.com/photos/cellphonesusie/2135374403/ http://www.flickr.com/photos/dcvision2006/3297075008/ http://www.flickr.com/photos/marquette/1812518264/ http://www.flickr.com/photos/wboessen/636999249/ http://www.flickr.com/photos/lokar/3345753029/

More Related Content

Similar to Building an Anti-CMS

Responsible Microservices
Responsible MicroservicesResponsible Microservices
Responsible MicroservicesVMware Tanzu
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Burr Sutter
 
Normal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesNormal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesJonathan Creasy
 
SemanticExperts-Reador octobre2016
SemanticExperts-Reador octobre2016SemanticExperts-Reador octobre2016
SemanticExperts-Reador octobre2016Pascal Flamand
 
Safety Bot Guaranteed -- Shmoocon 2017
Safety Bot Guaranteed -- Shmoocon 2017Safety Bot Guaranteed -- Shmoocon 2017
Safety Bot Guaranteed -- Shmoocon 2017Richard Seymour
 
Why Software Drives Us Crazy
Why Software Drives Us CrazyWhy Software Drives Us Crazy
Why Software Drives Us CrazyTechWell
 
Who's that knocking on my firewall door?
Who's that knocking on my firewall door?Who's that knocking on my firewall door?
Who's that knocking on my firewall door?Bruce Wolfe
 
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Codemotion
 
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Codemotion
 
How Did We End up Here?
 How Did We End up Here? How Did We End up Here?
How Did We End up Here?C4Media
 
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...Amazon Web Services
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansChristian Heilmann
 
A People's History of Microservices
A People's History of MicroservicesA People's History of Microservices
A People's History of MicroservicesCamille Fournier
 
How to Beat Information Overload - Pint of Science 2017 Presentation
How to Beat Information Overload - Pint of Science 2017 PresentationHow to Beat Information Overload - Pint of Science 2017 Presentation
How to Beat Information Overload - Pint of Science 2017 PresentationAndy Tattersall
 
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018Codemotion
 
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...John Mancini
 
Microservicos: Cuándo y Cómo
Microservicos: Cuándo y CómoMicroservicos: Cuándo y Cómo
Microservicos: Cuándo y CómoCarlos Hernando
 
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...Jim "Brodie" Brazell
 

Similar to Building an Anti-CMS (20)

Responsible Microservices
Responsible MicroservicesResponsible Microservices
Responsible Microservices
 
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
 
Normal accidents and outpatient surgeries
Normal accidents and outpatient surgeriesNormal accidents and outpatient surgeries
Normal accidents and outpatient surgeries
 
SemanticExperts-Reador octobre2016
SemanticExperts-Reador octobre2016SemanticExperts-Reador octobre2016
SemanticExperts-Reador octobre2016
 
Safety Bot Guaranteed -- Shmoocon 2017
Safety Bot Guaranteed -- Shmoocon 2017Safety Bot Guaranteed -- Shmoocon 2017
Safety Bot Guaranteed -- Shmoocon 2017
 
Leadership Style Essay
Leadership Style EssayLeadership Style Essay
Leadership Style Essay
 
EPQ Dissertation
EPQ DissertationEPQ Dissertation
EPQ Dissertation
 
Why Software Drives Us Crazy
Why Software Drives Us CrazyWhy Software Drives Us Crazy
Why Software Drives Us Crazy
 
Who's that knocking on my firewall door?
Who's that knocking on my firewall door?Who's that knocking on my firewall door?
Who's that knocking on my firewall door?
 
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
 
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
Armagan Amcalar - The Human Side of Microservices - Codemotion Berlin 2018
 
How Did We End up Here?
 How Did We End up Here? How Did We End up Here?
How Did We End up Here?
 
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...
Start Up Austin 2017: Manual vs Automation - When to Start Automating your Pr...
 
The Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for HumansThe Soul in The Machine - Developing for Humans
The Soul in The Machine - Developing for Humans
 
A People's History of Microservices
A People's History of MicroservicesA People's History of Microservices
A People's History of Microservices
 
How to Beat Information Overload - Pint of Science 2017 Presentation
How to Beat Information Overload - Pint of Science 2017 PresentationHow to Beat Information Overload - Pint of Science 2017 Presentation
How to Beat Information Overload - Pint of Science 2017 Presentation
 
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018
The Human Side of Microservices - Armagan Amcalar - Codemotion Rome 2018
 
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...
Updated! -- #AIIM16 keynote -- Why the H**** Should You Care About Informatio...
 
Microservicos: Cuándo y Cómo
Microservicos: Cuándo y CómoMicroservicos: Cuándo y Cómo
Microservicos: Cuándo y Cómo
 
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...
8.27.2014, Robot World: How Cyber Physical Systems are Changing Human-Machine...
 

More from Michael Nolan

Scouting for boys and girls
Scouting for boys and girlsScouting for boys and girls
Scouting for boys and girlsMichael Nolan
 
Handling Social Media Overload
Handling Social Media OverloadHandling Social Media Overload
Handling Social Media OverloadMichael Nolan
 
Mashed Libraries: data.ac.uk
Mashed Libraries: data.ac.ukMashed Libraries: data.ac.uk
Mashed Libraries: data.ac.ukMichael Nolan
 
Developers Developers Developers
Developers Developers DevelopersDevelopers Developers Developers
Developers Developers DevelopersMichael Nolan
 
symfony: PHP doesn't have to be crap
symfony: PHP doesn't have to be crapsymfony: PHP doesn't have to be crap
symfony: PHP doesn't have to be crapMichael Nolan
 

More from Michael Nolan (8)

Newbies
NewbiesNewbies
Newbies
 
Scouting for boys and girls
Scouting for boys and girlsScouting for boys and girls
Scouting for boys and girls
 
Edge Hill XCRI
Edge Hill XCRIEdge Hill XCRI
Edge Hill XCRI
 
Handling Social Media Overload
Handling Social Media OverloadHandling Social Media Overload
Handling Social Media Overload
 
Mashed Libraries: data.ac.uk
Mashed Libraries: data.ac.ukMashed Libraries: data.ac.uk
Mashed Libraries: data.ac.uk
 
Slate My Website
Slate My WebsiteSlate My Website
Slate My Website
 
Developers Developers Developers
Developers Developers DevelopersDevelopers Developers Developers
Developers Developers Developers
 
symfony: PHP doesn't have to be crap
symfony: PHP doesn't have to be crapsymfony: PHP doesn't have to be crap
symfony: PHP doesn't have to be crap
 

Recently uploaded

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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 WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Building an Anti-CMS

Editor's Notes

  1. So a little bit of background information about me and where I work.
  2. Not in Birmingham
  3. We train lots of these (teachers)
  4. And these (nurses)
  5. corporate website
  6. portal
  7. student communities. And of course attending lots of meetings.
  8. So what is an Anti-CMS?
  9. Allow non-technical users to update content
  10. Provide a uniform template across the site
  11. Keep sites up to date
  12. Whole bunch of other stuff.
  13. Because everyone else has one! In the higher education sector, most institutions went through this process in the last five or six years. Many are now on their second or third CMS.
  14. The reality of many CMS deployments is:
  15. The wrong people are given access to create content
  16. Given training on how to use the system,
  17. not how to write for the web
  18. CMS inhibit creativity
  19. Slow to adapt to new technologies
  20. Little access to internals meaning often you need to go back to the vendor for extensions
  21. They built the /programmes website and more recently /music and it turns out we did a similar kind of thing but without knowing it and obviously not as well!
  22. They explained how they get a domain expert to sketch their world.  Ignore what the resulting website is going to look like and concentrate on real things.  In their case TV or radio programmes, channels, series and so on.
  23. Course information was a trickier proposition but fortunately around the time we were redeveloping this area of the website another project did all the hard work for us.
  24. An XML format called XCRI-CAP defines course information for marketing purposes quite neatly and we were able to convert that into a database.
  25. To get a little bit technical, we use a web framework called Symfony.
  26. The Propel ORM is built into this making defining database models a piece of cake.  
  27. From these models an "admin generator" can automagically create an interface to create and manage records in the database.
  28. Editing a few YAML configuration files and customising some templates results in a nice interface to the database.
  29. With some test data in the database we can start to work on how the front end should work.  This is often done from two directions simultaneously by developer and designer.  The designer is creating Photoshop mock-ups of how these would ideally look
  30. while the developer outputs nice, hopefully semantic HTML representing the data we want to display.  Through several iterations these come together to the final working design.
  31. Where there’s an established structured way of presenting information like a microformat
  32. We can use that as the basis of our code so here’s an example of a vCard we can create from the database.
  33. Which can then be styled to look pretty.
  34. This can be a delicate balancing act.  Pay too much attention to designs and you end up making horrible hacks to the code while we all know what happens when you leave a developer to design websites!
  35. Hopefully we end up with some nice looking, usable and accessible designs for each area of the site but we can do more than this.  Now that we’re managing our data in a structured way we can start to reuse it across our sites.
  36. So as well as a central news site
  37. we can show stories from the stakeholder magazine
  38. or those related to a particular department on their website just a little extra coding and tagging stories correctly.
  39. In our Anti-CMS we use tags
  40. or more specifically machine tags to say how different types of data is linked.
  41. We can also do things that regular CMSs do but more customised to our requirements.
  42. So when searching for courses you can see useful details rather than a random snippet of text from the page.
  43. Likewise event search results have things like embedded microformats. Stefan is doing a session on how Zend and Symfony can be used together and I think Lucene might be one of the things he talks about.
  44. Recently we were able to add search as you type to course searches in just a few minutes using a jQueryplugin hooked up to a JSON feed.
  45. The talk title also promised to tell you how it changed our web team.
  46. Part of our approach to this is questioning whether publishing to the corporate website is the best place for everything or if a blog or an area on our extranet wiki would be a more appropriate place for their content.
  47. Ask me at PHPNW10 how it works out.