SlideShare a Scribd company logo
1 of 35
Stuff you need Preamble:Ruby or go home For Ruby Sinatra http://www.sinatrarb.com/ Ruby on Rails http://www.rubyonrails.org For PHP Junior http://github.com/madpilot/junior The World’s smallest PHP Framework† + Apache (with mod_rewrite) † Probably...
The Setup Junior:World’s smallest PHP framework You will need: A web server that supports URL rewrites PHP 4 (5 is better)
The Setup Junior:The guts You will need: A web server that supports URL rewrites PHP 4 (5 is better)
Friendly URLS Lesson 1: Make your URLs nicer You will need: A web server that supports URL rewrites
Friendly URLS Lesson 1: Make your URLs nicer You will need: A web server that supports URL rewrites
Tags and Abstracts Lesson 2: Dynamic Redirects Moving stuff around? Most would use .htaccess – not happiness Store from URLS and to URS Redirect with 301 Permanent Bask in Google love
Tags and Abstracts Lesson 2: Dynamic Redirects
Tags and Abstracts Lesson 2: Dynamic Redirects
Tags and Abstracts Lesson 3: Auto generate tags and descriptions Google might not care about meta tags anymore, but some sites do. Also useful for internal search...
Tags and Abstracts Lesson 3: Auto generate tags In five easy steps Strip out all the HTML and non-alpha characters Split the all the text into tokens (single words) Strip out common words (stop words) Count the frequency of the remaining words Return the top 10 (or whatever)
Tags and Abstracts Lesson 3: Auto generate tags You will need: A list of stop words
Tags and Abstracts Lesson 3: Auto generate tags You will need: A list of stop words
Tags and Abstracts Lesson 4: Auto generate abstract Most users will just use the first paragraph for descriptions – let’s do it for them Find as many paragraphs as you can, without going over the word count. OR Find as many sentences in the first paragraph as you can, without going over the word count OR Find as many works in the first sentence as you can without going over the word count (and add a ellipses) OR Truncate the world’s longest word (and add a ellipses)
Tags and Abstracts Lesson 4: Auto generate abstract You will need: PHP + Tidy Plugin or Ruby + Nokogiri
Tags and Abstracts Lesson 4: Auto generate abstract You will need: PHP + Tidy Plugin or Ruby + Nokogiri
Search Lesson 5: Adding Search You will need: MySQL with MyISAM or acts_as_indexplugin
Search Lesson 5: Adding Search MySQL has full text search: CREATE TABLE `searches` (   `id` int(11) unsigned NOT NULL auto_increment,   `title` varchar(255) default NULL,   `abstract` varchar(255) default NULL,   `copy` text,   `keywords` varchar(255) default NULL,   `permalink` varchar(255) default NULL,   `entry_id` int(11) default NULL,   `entry_type` varchar(255) default NULL,   `created` datetime default NULL,   `modified` datetime default NULL,   PRIMARY KEY  (`id`), FULLTEXT KEY `title` (`title`,`copy`,`keywords`) ) ENGINE=MyISAM You will need: MySQL with MyISAM or acts_as_indexplugin
Search Lesson 5: Adding Search You will need: MySQL with MyISAM or acts_as_indexplugin
Search Lesson 5: Adding Search acts_as_indexed :fields => [ :title, :body, :generate_keywords ] You will need: MySQL with MyISAM or acts_as_indexplugin
Did you mean? Lesson 6: Did you mean? Correct misspelled search terms Split the term into tokens (on spaces) Spell check each token If it is wrong, show the correction Make the corrected string a link You will need: PHP + Pspell or Ruby + raspell
Did you mean? Lesson 6: Did you mean? You will need: PHP + Pspell or Ruby + raspell
Did you mean? Lesson 6: Did you mean? You will need: PHP + Pspell or Ruby + raspell
Clean up Lesson 7: Cleaning up user HTML First thing clients do: Write their copy in Word, then paste it in You tell the client not to cut-and-paste word documents The second thing the client does: Write their copy in Word, then paste it in... Also, RTE’s produce bad code, and each produces different bad code. You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
Clean up Lesson 7: Cleaning up user HTML You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
Clean up Lesson 7: Cleaning up user HTML You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
Shpelling Lesson 8: TinyMCE Spell check This is a TinyMCEplugin. Just need to define two JSON endpoints, and use the same library from the “Did you mean” section You will need: TinyMCE + Pspell or raspell
Shpelling Lesson 8: TinyMCE Spell check You will need: TinyMCE + Pspell or raspell
Shpelling Lesson 8: TinyMCE Spell check You will need: TinyMCE + Pspell or raspell
Uploader Lesson 8: File Uploader Why are they so HARD!? It’s 2009 for god’s sake... There is an apache module. Not so good for shared servers, but it works. You can use a jqueryplugin, to turn normal uploaders into better uploaders Oh, if any Adobe people are here: SORT FLASH UPLOADERS OUT. Also. If there is any W3C people here: LET ME UPLOAD USING AJAX. You will need: mod_upload_progress Some jquerymagic AND NOT PHP
Uploader Caveat: PHP has not happiness You CAN use the APC. It’s pretty flaky. The shared memory fills up, and it breaks. #balls You will need: APC PECL module A lot of patience
Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
Links Sinatra:http://www.sinatrarb.com Junior:http://www.github.com/madpilot/junior Apache Uploader: http://github.com/drogus/apache-upload-progress-module TinyMCESpellchecker for Rails: http://github.com/madpilot/tinymce_spellcheck Acts as Indexed: http://github.com/dougal/acts_as_indexed HTMLPurifier: http://htmlpurifier.org/ Sanitize: http://wonko.com/post/sanitize

More Related Content

What's hot

Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answersiimjobs and hirist
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web ArchitectureChamnap Chhorn
 
Your website is only as safe as your last good backup
Your website is only as safe as your last good backupYour website is only as safe as your last good backup
Your website is only as safe as your last good backupTerri Orlowski
 
Webmatrixppt
WebmatrixpptWebmatrixppt
Webmatrixpptyuvaraj72
 
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp..."Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...Sudeep Balchhaudi
 
Online publishing with wordpress(installation)
Online publishing with wordpress(installation)Online publishing with wordpress(installation)
Online publishing with wordpress(installation)Ankit Sigdel
 
Joomla Extreme Performance
Joomla Extreme PerformanceJoomla Extreme Performance
Joomla Extreme PerformanceMitch Pirtle
 
How to install word press on local server
How to install word press on local serverHow to install word press on local server
How to install word press on local serverHimanshi Garg
 
How to Win Friends and Influence WordPress Core
How to Win Friends and Influence WordPress CoreHow to Win Friends and Influence WordPress Core
How to Win Friends and Influence WordPress CoreDrewAPicture
 
seopler.com Sample Website Audit Report
seopler.com Sample Website Audit Reportseopler.com Sample Website Audit Report
seopler.com Sample Website Audit ReportGraham O'Shea
 
handout_further_resources
handout_further_resourceshandout_further_resources
handout_further_resourcestutorialsruby
 

What's hot (17)

Top 100 PHP Questions and Answers
Top 100 PHP Questions and AnswersTop 100 PHP Questions and Answers
Top 100 PHP Questions and Answers
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web Architecture
 
Your website is only as safe as your last good backup
Your website is only as safe as your last good backupYour website is only as safe as your last good backup
Your website is only as safe as your last good backup
 
Webmatrixppt
WebmatrixpptWebmatrixppt
Webmatrixppt
 
Tf ffccjs
Tf ffccjsTf ffccjs
Tf ffccjs
 
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp..."Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...
"Ensuring chances of theme acceptance in wordpress.org directory" on WordCamp...
 
Online publishing with wordpress(installation)
Online publishing with wordpress(installation)Online publishing with wordpress(installation)
Online publishing with wordpress(installation)
 
Tf frccjs
Tf frccjsTf frccjs
Tf frccjs
 
Tf ffccjs
Tf   ffccjsTf   ffccjs
Tf ffccjs
 
Joomla Extreme Performance
Joomla Extreme PerformanceJoomla Extreme Performance
Joomla Extreme Performance
 
Web application intro
Web application introWeb application intro
Web application intro
 
How to install word press on local server
How to install word press on local serverHow to install word press on local server
How to install word press on local server
 
Tf ffccjs
Tf ffccjsTf ffccjs
Tf ffccjs
 
How to Win Friends and Influence WordPress Core
How to Win Friends and Influence WordPress CoreHow to Win Friends and Influence WordPress Core
How to Win Friends and Influence WordPress Core
 
seopler.com Sample Website Audit Report
seopler.com Sample Website Audit Reportseopler.com Sample Website Audit Report
seopler.com Sample Website Audit Report
 
handout_further_resources
handout_further_resourceshandout_further_resources
handout_further_resources
 
Hosting
HostingHosting
Hosting
 

Viewers also liked

Website Strategy Formal Report Presentation
Website Strategy Formal Report PresentationWebsite Strategy Formal Report Presentation
Website Strategy Formal Report PresentationShawnee Stump
 
Recommendations for your school center website
Recommendations for your school center websiteRecommendations for your school center website
Recommendations for your school center websitejpsiko
 
Getting Schooled — Building Your School Website in WordPress
Getting Schooled — Building Your School Website in WordPressGetting Schooled — Building Your School Website in WordPress
Getting Schooled — Building Your School Website in WordPressEileen Violini
 
Media Production - Planning
Media Production - PlanningMedia Production - Planning
Media Production - Planninghiimbatman
 
School of Education Website Recommendations_Garrison
School of Education Website Recommendations_GarrisonSchool of Education Website Recommendations_Garrison
School of Education Website Recommendations_GarrisonGwyn Garrison
 
School Website Development Presentation
School Website Development  PresentationSchool Website Development  Presentation
School Website Development PresentationKen Ouma
 
Website Design Business Plan
Website Design Business PlanWebsite Design Business Plan
Website Design Business Planinditech
 
Business plan for a web design company
Business plan for a web design companyBusiness plan for a web design company
Business plan for a web design companyTanya Efremova
 

Viewers also liked (8)

Website Strategy Formal Report Presentation
Website Strategy Formal Report PresentationWebsite Strategy Formal Report Presentation
Website Strategy Formal Report Presentation
 
Recommendations for your school center website
Recommendations for your school center websiteRecommendations for your school center website
Recommendations for your school center website
 
Getting Schooled — Building Your School Website in WordPress
Getting Schooled — Building Your School Website in WordPressGetting Schooled — Building Your School Website in WordPress
Getting Schooled — Building Your School Website in WordPress
 
Media Production - Planning
Media Production - PlanningMedia Production - Planning
Media Production - Planning
 
School of Education Website Recommendations_Garrison
School of Education Website Recommendations_GarrisonSchool of Education Website Recommendations_Garrison
School of Education Website Recommendations_Garrison
 
School Website Development Presentation
School Website Development  PresentationSchool Website Development  Presentation
School Website Development Presentation
 
Website Design Business Plan
Website Design Business PlanWebsite Design Business Plan
Website Design Business Plan
 
Business plan for a web design company
Business plan for a web design companyBusiness plan for a web design company
Business plan for a web design company
 

Similar to Stuff They Never Taught You At Website School

Php mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjanPhp mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjanphp2ranjan
 
php training in hyderabad
php training in hyderabadphp training in hyderabad
php training in hyderabadphp2ranjan
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPtutorialsruby
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPtutorialsruby
 
oop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comoop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comtutorialsruby
 
oop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comoop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comtutorialsruby
 
Oop in php_tutorial_for_killerphp.com
Oop in php_tutorial_for_killerphp.comOop in php_tutorial_for_killerphp.com
Oop in php_tutorial_for_killerphp.comayandoesnotemail
 
Article 01 What Is Php
Article 01   What Is PhpArticle 01   What Is Php
Article 01 What Is Phpdrperl
 
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...LinnAlexandra
 
PHP Basics Ebook
PHP Basics EbookPHP Basics Ebook
PHP Basics EbookSwanand Pol
 
PHP Variables & Comments 01
PHP Variables & Comments 01PHP Variables & Comments 01
PHP Variables & Comments 01Spy Seat
 
100 PHP question and answer
100 PHP  question and answer100 PHP  question and answer
100 PHP question and answerSandip Murari
 
An SEO’s Intro to Web Dev PHP
An SEO’s Intro to Web Dev PHPAn SEO’s Intro to Web Dev PHP
An SEO’s Intro to Web Dev PHPTroyfawkes
 
Php Interview Questions
Php Interview QuestionsPhp Interview Questions
Php Interview QuestionsUmeshSingh159
 

Similar to Stuff They Never Taught You At Website School (20)

Php mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjanPhp mysql-training online-by_php2ranjan
Php mysql-training online-by_php2ranjan
 
php training in hyderabad
php training in hyderabadphp training in hyderabad
php training in hyderabad
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHP
 
Winter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHPWinter%200405%20-%20Beginning%20PHP
Winter%200405%20-%20Beginning%20PHP
 
oop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comoop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.com
 
oop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.comoop_in_php_tutorial_for_killerphp.com
oop_in_php_tutorial_for_killerphp.com
 
Oop in php_tutorial_for_killerphp.com
Oop in php_tutorial_for_killerphp.comOop in php_tutorial_for_killerphp.com
Oop in php_tutorial_for_killerphp.com
 
Oop in php tutorial
Oop in php tutorialOop in php tutorial
Oop in php tutorial
 
Article 01 What Is Php
Article 01   What Is PhpArticle 01   What Is Php
Article 01 What Is Php
 
Current state-of-php
Current state-of-phpCurrent state-of-php
Current state-of-php
 
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
 
PHP Basics Ebook
PHP Basics EbookPHP Basics Ebook
PHP Basics Ebook
 
phptutorial
phptutorialphptutorial
phptutorial
 
phptutorial
phptutorialphptutorial
phptutorial
 
PHP Variables & Comments 01
PHP Variables & Comments 01PHP Variables & Comments 01
PHP Variables & Comments 01
 
<?php + WordPress
<?php + WordPress<?php + WordPress
<?php + WordPress
 
Lesson 01
Lesson 01Lesson 01
Lesson 01
 
100 PHP question and answer
100 PHP  question and answer100 PHP  question and answer
100 PHP question and answer
 
An SEO’s Intro to Web Dev PHP
An SEO’s Intro to Web Dev PHPAn SEO’s Intro to Web Dev PHP
An SEO’s Intro to Web Dev PHP
 
Php Interview Questions
Php Interview QuestionsPhp Interview Questions
Php Interview Questions
 

Recently uploaded

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Stuff They Never Taught You At Website School

  • 1.
  • 2. Stuff you need Preamble:Ruby or go home For Ruby Sinatra http://www.sinatrarb.com/ Ruby on Rails http://www.rubyonrails.org For PHP Junior http://github.com/madpilot/junior The World’s smallest PHP Framework† + Apache (with mod_rewrite) † Probably...
  • 3. The Setup Junior:World’s smallest PHP framework You will need: A web server that supports URL rewrites PHP 4 (5 is better)
  • 4. The Setup Junior:The guts You will need: A web server that supports URL rewrites PHP 4 (5 is better)
  • 5. Friendly URLS Lesson 1: Make your URLs nicer You will need: A web server that supports URL rewrites
  • 6. Friendly URLS Lesson 1: Make your URLs nicer You will need: A web server that supports URL rewrites
  • 7. Tags and Abstracts Lesson 2: Dynamic Redirects Moving stuff around? Most would use .htaccess – not happiness Store from URLS and to URS Redirect with 301 Permanent Bask in Google love
  • 8. Tags and Abstracts Lesson 2: Dynamic Redirects
  • 9. Tags and Abstracts Lesson 2: Dynamic Redirects
  • 10. Tags and Abstracts Lesson 3: Auto generate tags and descriptions Google might not care about meta tags anymore, but some sites do. Also useful for internal search...
  • 11. Tags and Abstracts Lesson 3: Auto generate tags In five easy steps Strip out all the HTML and non-alpha characters Split the all the text into tokens (single words) Strip out common words (stop words) Count the frequency of the remaining words Return the top 10 (or whatever)
  • 12. Tags and Abstracts Lesson 3: Auto generate tags You will need: A list of stop words
  • 13. Tags and Abstracts Lesson 3: Auto generate tags You will need: A list of stop words
  • 14. Tags and Abstracts Lesson 4: Auto generate abstract Most users will just use the first paragraph for descriptions – let’s do it for them Find as many paragraphs as you can, without going over the word count. OR Find as many sentences in the first paragraph as you can, without going over the word count OR Find as many works in the first sentence as you can without going over the word count (and add a ellipses) OR Truncate the world’s longest word (and add a ellipses)
  • 15. Tags and Abstracts Lesson 4: Auto generate abstract You will need: PHP + Tidy Plugin or Ruby + Nokogiri
  • 16. Tags and Abstracts Lesson 4: Auto generate abstract You will need: PHP + Tidy Plugin or Ruby + Nokogiri
  • 17. Search Lesson 5: Adding Search You will need: MySQL with MyISAM or acts_as_indexplugin
  • 18. Search Lesson 5: Adding Search MySQL has full text search: CREATE TABLE `searches` ( `id` int(11) unsigned NOT NULL auto_increment, `title` varchar(255) default NULL, `abstract` varchar(255) default NULL, `copy` text, `keywords` varchar(255) default NULL, `permalink` varchar(255) default NULL, `entry_id` int(11) default NULL, `entry_type` varchar(255) default NULL, `created` datetime default NULL, `modified` datetime default NULL, PRIMARY KEY (`id`), FULLTEXT KEY `title` (`title`,`copy`,`keywords`) ) ENGINE=MyISAM You will need: MySQL with MyISAM or acts_as_indexplugin
  • 19. Search Lesson 5: Adding Search You will need: MySQL with MyISAM or acts_as_indexplugin
  • 20. Search Lesson 5: Adding Search acts_as_indexed :fields => [ :title, :body, :generate_keywords ] You will need: MySQL with MyISAM or acts_as_indexplugin
  • 21. Did you mean? Lesson 6: Did you mean? Correct misspelled search terms Split the term into tokens (on spaces) Spell check each token If it is wrong, show the correction Make the corrected string a link You will need: PHP + Pspell or Ruby + raspell
  • 22. Did you mean? Lesson 6: Did you mean? You will need: PHP + Pspell or Ruby + raspell
  • 23. Did you mean? Lesson 6: Did you mean? You will need: PHP + Pspell or Ruby + raspell
  • 24. Clean up Lesson 7: Cleaning up user HTML First thing clients do: Write their copy in Word, then paste it in You tell the client not to cut-and-paste word documents The second thing the client does: Write their copy in Word, then paste it in... Also, RTE’s produce bad code, and each produces different bad code. You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
  • 25. Clean up Lesson 7: Cleaning up user HTML You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
  • 26. Clean up Lesson 7: Cleaning up user HTML You will need: PHP + Tidy/HTMLPurify or Ruby + sanitize
  • 27. Shpelling Lesson 8: TinyMCE Spell check This is a TinyMCEplugin. Just need to define two JSON endpoints, and use the same library from the “Did you mean” section You will need: TinyMCE + Pspell or raspell
  • 28. Shpelling Lesson 8: TinyMCE Spell check You will need: TinyMCE + Pspell or raspell
  • 29. Shpelling Lesson 8: TinyMCE Spell check You will need: TinyMCE + Pspell or raspell
  • 30. Uploader Lesson 8: File Uploader Why are they so HARD!? It’s 2009 for god’s sake... There is an apache module. Not so good for shared servers, but it works. You can use a jqueryplugin, to turn normal uploaders into better uploaders Oh, if any Adobe people are here: SORT FLASH UPLOADERS OUT. Also. If there is any W3C people here: LET ME UPLOAD USING AJAX. You will need: mod_upload_progress Some jquerymagic AND NOT PHP
  • 31. Uploader Caveat: PHP has not happiness You CAN use the APC. It’s pretty flaky. The shared memory fills up, and it breaks. #balls You will need: APC PECL module A lot of patience
  • 32. Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
  • 33. Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
  • 34. Uploader Lesson 8: File Uploader You will need: mod_upload_progress Some jquery magic
  • 35. Links Sinatra:http://www.sinatrarb.com Junior:http://www.github.com/madpilot/junior Apache Uploader: http://github.com/drogus/apache-upload-progress-module TinyMCESpellchecker for Rails: http://github.com/madpilot/tinymce_spellcheck Acts as Indexed: http://github.com/dougal/acts_as_indexed HTMLPurifier: http://htmlpurifier.org/ Sanitize: http://wonko.com/post/sanitize