SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Enterprise Migrations
How to move 1 MILLION+ posts from ANY CMS to
WordPress
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
About Me
• Engineer at 10up and yes, we're hiring
• Work and travel
• ivan@kruchkoff.com
• @ivan on WP Slack
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
10up Engineering Best
Practices
• https://10up.github.io/Engineering-Best-Practices/
migrations/
• Includes things like:
• wp_defer_term_counting( true )
• define( 'WP_POST_REVISIONS', 0 )
• Using php 7.1
• define( 'WP_IMPORTING', true )
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
WordPress Single to
Multisite
• https://github.com/10up/MU-Migration/
• Get as many single sites as you need into a multi
site.
• Handle deltas by remigrating.
• Gotchas: Theme Mods and custom tables
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
The Problem Statement
• Acme corp is frustrated using BoringCMS:
• Editorial find the interface horrible to use
• The performance is incredibly slow
• Countless hours spent keeping the CMS running
• They've evaluated other options and have decided
on WordPress.
• Your team is responsible for getting them there.
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Our Aim
• Migrate a live site containing over a million posts
• Migrate all assets (e.g. images)
• Run two CMSs simultaneously for a period of time
• Make delta migrations
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Our Approach
• while ( WordPress not live in Prod() ) {
• export new or updated posts from BoringCMS()
• export new or updated assets to S3()
• update and improve posts parser()
• import posts()
• }
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
The 3 CMS stages
• BoringCMS live in prod
• BoringCMS is still live, WordPress is ready in prod
• WordPress live in Prod
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
BoringCMS in prod
• No WordPress
• WordPress development in progress.
• Content snapshot in WordPress
• WordPress development complete
• Latest content in WordPress
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
BoringCMS is live, WP is
ready in prod
• Editorial in BoringCMS
• Latest content in WordPress
• Editorial in WordPress
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
WP Live in Prod
• Profit
• :partyparrot:
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Export new or updated posts
from BoringCMS()
• Fetch all posts
• Fetch posts updated since
• Fetch posts with min/max id
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Export new or updated
assets to S3()
• Assets is just a fancy way of saying images + more.
• Fetch all assets
• Fetch all assets created / modified since
• Use s3-parallel-put for performance
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Update and Improve Posts
Parser
• Start with a few content exports, ideally as JSON
• Find your unique identifier (ID / File Path)
• Parse the wp_posts fields first:
• post_author, post_date/post_modified, post_content ,
post_title, post_name, post_parent, guid, post_type
• Log all the things
• Any time an error occurs, pause handling this file, log a
message, move to /investigate, continue to next file.
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Import Posts
• First few runs, ignore the data.
• Create four folders:
• pending - any file we haven't yet read / processed
• processed - files that were successfully imported into WP.
• ignored - files that aren't being handled by WP
• investigate - files that should be handled by WP, but threw an
error.
• Log every step
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Logging
• https://github.com/jbroadway/analog
• Processing $filename
• Error $descriptive_error_message in $filename
• Parsed $post_type in $filename
• Processed $filename as $post_id
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Code Structure
• WP Cli command
• File parser, this takes a text file and makes it a PHP
data type (json_decode( file_get_contents( $fn) )
• Content Parser, marshalls data from old format into
something that can be used to create a post.
• Post, contains params for wp_insert_post()
post_meta array and taxonomy terms
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Example Dataset
• Thanks to the team at Web Hose
• https://webhose.io/datasets
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Look at 1 post
• news_0003607.json
• How do I get the post title? (thread -> title)
• How do I get the post slug? ( thread -> uuid? )
• How do I get the post content? ( text )
• How do I get taxonomy? (entities)
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Migrate Overview
• Enable plugin
• Add your parser* to ExportFilesIterator ->
maybe_insert_content()
• Setup your dir structure (e.g. your content is in ./
exports)
• mkdir -p migrate/pending/123 && mv exports migrate/
pending/123
• wp bigmig -f migrate
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Your JSON parser
/**

* Parse a json file, and if it's valid call @maybe_insert_content

* @param $filename

*

* @return bool

*/

function parse_json_file( &$filename ) {

$content_string = file_get_contents( $filename );

$content = json_decode( $content_string, true);

if ( ! is_array( $content ) ) {

Logger::log( "Could not parse JSON file into array in {$filename}",
Analog::ERROR );

FileMover::move_to_investigate( $filename );

return false;

}

$this->maybe_insert_content( $content, $filename );

}
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Create
WebHoseArticleContentParser
<?php

namespace WP_CLIBigMigParsers;



class WebHoseArticleContentParser {



protected $filename;

protected $parsed_content = array();

protected $content;



/**

* Parse a news article json file, returns an array for creating a story WP_Post.

*/

public function parse() {

$this->set_title();

$this->set_body();



return $this->get_parsed_content();

}



public function __construct( &$content, &$filename ) {

$this->content = $content;

$this->filename = $filename;

}



public function get_parsed_content() {

return $this->parsed_content;

}



function set_title() {

$this->parsed_content[ 'title' ] = $this->content['title'];

}





}
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Create a
WebHoseArticlePost
<?php

namespace WP_CLIBigMigPosts;



use WP_CLIBigMigLogger;



class WebHoseArticlePost extends Post {



public function prepare() {

$this->type = 'WebHoseArticle';

$this->set_insert_param_from_content( 'post_content', 'body' );

$this->set_insert_param_from_content( 'post_title', 'title' );



$this->insert_params[ 'meta_input' ] = $this->meta_input;

}

}

Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Look at your logs
• localhost - 2017-07-22 19:35:34 - 1 - Now processing /mnt/tmpfs/
migrate/pending/articles/654/news_0000111.json, processed 1 files.
• localhost - 2017-07-22 19:35:34 - 1 - Moved /mnt/tmpfs/migrate/
pending/articles/654/news_0000111.json to /mnt/tmpfs/migrate/
processed/654/news_0000111.json status: processed
• localhost - 2017-07-22 19:35:34 - 1 - Finished processing content
export /mnt/tmpfs/migrate/pending/articles/654/news_0000111.json
as WP Post 30.
• localhost - 2017-07-22 19:35:34 - 1 - Now processing /mnt/tmpfs/
migrate/pending/articles/654/news_0000110.json, processed 2 files.
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Skip the boring bits
• Content will be broken.
• Tax mapping
• Edge cases.
• That custom format they only used in 1998 for 3
months.
• That 1 article type that is XML
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Speeding Up the Process
• What are your bottlenecks? Latency everywhere
• Reading from a local disk / networked disk / ram
• Reading / writing from a local db / networked db.
• Replication to read nodes.
• Single Process
• Term counting etc. - look at 10up Best Practices :)
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Speedups
• Provision your machine with lots of ram
• defaults['memory'] = 8192 for VVV
• Make a ramdisk
• sudo mount -o size=1G -t tmpfs none /mnt/tmpfs
• Parallelise your processes
• dirsplit -m -e1 -s 10M migrate
• Gnu Parallel, Bash, Gearman, pcntl_fork()
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
A Demo?
• https://github.com/ivankruchkoff/wp-bigmig
Ivan@Kruchkoff.com https://github.com/ivankruchkoff/wp-bigmig
Questions?
• ivan@kruchkoff.com

Mais conteúdo relacionado

Último

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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, Adobeapidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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 FresherRemote DBA Services
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Destaque

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Destaque (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Wordcamp Ottawa WP Big Mig