In evaluating developers, I routinely come across very talented developers with a decade or more of experience with databases who nonetheless can't design even the simplest of schemas. This presentation is based on my popular blog post of the same name: http://blogs.perl.org/users/ovid/2013/07/how-to-fake-database-design.html
Driven by some of the results seen across client accounts during world events like the conflict in Ukraine, Angelo and
Rob embarked on a mission to build a quick and reliable method to compare the impact of specific events on Google’s
algorithm to organic performance. In this talk, Angelo presents a methodology that is highly valuable to understand
the impact world events have on users’ search behaviour. It works retrospectively to understand how and why an event
has influenced organic traffic. But it also works proactively to allow SEOs to accurately assess and project uplift and
opportunities associated with upcoming world and national events.
Vemos cómo podemos crear clusters de URLs con el mismo significado para definir qué URLs deben redirigir a qué URLs y evitar contenido duplicado.
Ponencia SEO presentada por Lino Uruñuela en el Seonthebeach 2022 #SOB22 #SEO #SEOtecnico #seoavanzaado
How to Incorporate ML in your SERP Analysis, Lazarina Stoy -BrightonSEO Oct, ...LazarinaStoyanova
Google conducts 800,000 experiments and improvements to search annually to optimize search results for users. In 2021 alone, Google made 5,000 improvements to search. As of August 2022, 92% of all search queries are handled by Google. The document then provides an in-depth overview of how to conduct a comprehensive search engine optimization (SEO) analysis, including competitor analysis, entity analysis, sentiment analysis, search intent analysis, language use analysis, and rank analysis. It recommends leveraging tools like Google APIs, Data for SEO, and GPT-3 to automate the analysis and provide classifications. The analysis is intended to guide content and keyword strategy execution rather than replace it.
Mike King examines the state of the SEO industry and talks through knowing information retrieval will help improve our understanding of Google. This talk debuted at MozCon
Hannah Rogers - Facing Your SEO Fears: ForecastingHannahRogers52
A run through of the importance of accountability in SEO forecasting, an example of how to incorporate this into your processes and how it can help your work in the long term
BrightonSEO October 2022 - Martijn Scheybeler - SEO Testing: Find Out What Wo...Martijn Scheijbeler
This document discusses SEO testing and experimentation. It provides examples of types of SEO tests that could be done, such as pre-post testing, A/B testing, and combining different measurement approaches. Specific cases are also mentioned, like testing the impact of internal linking, HTML sitemaps, and changes to page titles and meta descriptions. The document emphasizes that SEO testing takes work to set up properly and find meaningful results, but it is important for identifying what strategies are truly effective.
While SEO is a constantly evolving discipline and some SEO elements have become important in 2022, other core elements remain evergreen. In this session, I will highlight SEO strategies that need to be on your radar so your brand can effectively compete in the search results in 2022.
Key Takeaways:
- Are links still important?
- Content Quality vs Content Quantity
- Technical SEO
- Core Web VitalsAnd more...
Driven by some of the results seen across client accounts during world events like the conflict in Ukraine, Angelo and
Rob embarked on a mission to build a quick and reliable method to compare the impact of specific events on Google’s
algorithm to organic performance. In this talk, Angelo presents a methodology that is highly valuable to understand
the impact world events have on users’ search behaviour. It works retrospectively to understand how and why an event
has influenced organic traffic. But it also works proactively to allow SEOs to accurately assess and project uplift and
opportunities associated with upcoming world and national events.
Vemos cómo podemos crear clusters de URLs con el mismo significado para definir qué URLs deben redirigir a qué URLs y evitar contenido duplicado.
Ponencia SEO presentada por Lino Uruñuela en el Seonthebeach 2022 #SOB22 #SEO #SEOtecnico #seoavanzaado
How to Incorporate ML in your SERP Analysis, Lazarina Stoy -BrightonSEO Oct, ...LazarinaStoyanova
Google conducts 800,000 experiments and improvements to search annually to optimize search results for users. In 2021 alone, Google made 5,000 improvements to search. As of August 2022, 92% of all search queries are handled by Google. The document then provides an in-depth overview of how to conduct a comprehensive search engine optimization (SEO) analysis, including competitor analysis, entity analysis, sentiment analysis, search intent analysis, language use analysis, and rank analysis. It recommends leveraging tools like Google APIs, Data for SEO, and GPT-3 to automate the analysis and provide classifications. The analysis is intended to guide content and keyword strategy execution rather than replace it.
Mike King examines the state of the SEO industry and talks through knowing information retrieval will help improve our understanding of Google. This talk debuted at MozCon
Hannah Rogers - Facing Your SEO Fears: ForecastingHannahRogers52
A run through of the importance of accountability in SEO forecasting, an example of how to incorporate this into your processes and how it can help your work in the long term
BrightonSEO October 2022 - Martijn Scheybeler - SEO Testing: Find Out What Wo...Martijn Scheijbeler
This document discusses SEO testing and experimentation. It provides examples of types of SEO tests that could be done, such as pre-post testing, A/B testing, and combining different measurement approaches. Specific cases are also mentioned, like testing the impact of internal linking, HTML sitemaps, and changes to page titles and meta descriptions. The document emphasizes that SEO testing takes work to set up properly and find meaningful results, but it is important for identifying what strategies are truly effective.
While SEO is a constantly evolving discipline and some SEO elements have become important in 2022, other core elements remain evergreen. In this session, I will highlight SEO strategies that need to be on your radar so your brand can effectively compete in the search results in 2022.
Key Takeaways:
- Are links still important?
- Content Quality vs Content Quantity
- Technical SEO
- Core Web VitalsAnd more...
Screaming Frog + Xpath: BrightonSEO April 2019Sabine Langmann
This document provides a guide to using Screaming Frog and XPath to analyze competitor websites. It introduces XPath as a query language for selecting nodes from XML documents. Examples are given for analyzing BBC.com and TheGuardian.com by counting elements like images, headings, and links to specific pages using relevant XPath selectors. Further examples compare Yourcat.co.uk and TheFoodaholic.co.uk by counting internal and external links within editorial content. The document emphasizes identifying the necessary data and using the correct XPath selector for analysis.
This document provides an overview of MongoDB and discusses its installation and configuration on Windows systems. It covers downloading the appropriate MongoDB version, installing the downloaded file, setting up the MongoDB environment by creating a data directory and log files, and connecting to MongoDB using the mongo shell. The document is divided into multiple sections covering MongoDB's features, data modeling using documents, database and collection management operations, and connecting to MongoDB from Java applications.
Este documento describe el diseño de una base de datos para un blog de noticias donde los usuarios pueden publicar comentarios. Se propone un modelo con colecciones para usuarios, noticias y comentarios, con índices para consultas frecuentes como búsquedas por nombre de usuario, código postal o número de teléfono. Se discuten dos opciones para almacenar los teléfonos y la dirección de los usuarios.
Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021Paige Hobart
This document provides guidance on conducting keyword research. It discusses the importance of keywords for tracking search engine performance and outlines a 4-stage process: 1) Extract keywords from Google Search Console, website content and competitors; 2) Add metrics like source, category, search volume and rank; 3) Expand the keyword list using tools and by researching competitors; 4) Optimize the list by removing irrelevant keywords, sorting by metrics, and filtering out uncompetitive or unrealistic keywords. The key lessons are to focus on relevancy, tag keywords as research is done, avoid bulk importing keywords, and have realistic expectations.
Search Query Processing: The Secret Life of Queries, Parsing, Rewriting & SEOKoray Tugberk GUBUR
Query Processing is the process of query term weight calculation, query augmentation, query context defining, and more. Query understanding and Query clustering are related to Information Retrieval tasks for the search engines. To provide a better search engine optimization effort and project result, the organic search performance optimizers need to implement query processing methodologies. Digital marketing and SEO are connected to each other. Understanding a query includes query parsing, query rewriting, question generation, and answer pairing. Multi-stages Query Processing, Candidate Answer Passages, or Candidate Answer Passages and Answer Term Weighting are some of the concepts from the Google Search Engine to parse the queries.
The presentation of The Secret Life of Queries, Parsing, Rewriting & SEO has been presented at the Brighton SEO Event in April 2022. The event speech focused on explaining the theoretical SEO and practical SEO examples together.
Query Processing methodologies are beyond synonym matching or synonym finding. It involves multiple aspects of the words, and meanings of the words. The theme of words, the centrality of words, attention windows, context windows, and word co-occurrence matrices, GloVe, Word2Vec, word embeddings, character embeddings, and more.
Themes of words contain the word probability like in Continues Bag of Window.
The search engine optimization community focuses on keyword research by matching the queries. Query processing involves query word order change, query word type change, query word combination change, query phrase synonym usage, query question generation, query clustering. Query processing and document processing are correlational. Query processing is to understand a query while document processing is to process a web document. Both of the processes are for ranking algorithms. Providing a better ranking algorithm requires a better query understanding. And providing better rankings as SEOs require better search engine understanding. Thus, understanding the methods of query processing is necessary.
Search Query Processing is implementing the query processing for thesearch engines. Search query refers to the phrase that search engine users use for searching. Search intent understanding and search intent grouping are two different things. But, query templates, questions templates, and document templates work together. Search query is for organic search behaviors. A web search engine answers millions of queries every day. Search query processing is a fundamental task for search engine optimization and search engine result page optimization.
The "Semantic Search Engine: Query Processing" slides from Koray Tuğberk GÜBÜR supported the presentation of "Search Query Processing: The Secret Life of Queries, Parsing, Rewriting & SEO". The presentation has been created by Dear Rebecca Berbel.
Many thanks to the Google engineers that created the Semantic Search Engine patents including Larry Page.
Data Pitfalls - Brighton SEO - Katie Swann.pptxKatieSwann5
We always hope to see our digital PR campaigns take off, but sometimes they can take off in the worst way.
From inaccurate data to misleading headlines, there are plenty of ways that we can fall into data-related pitfalls.
I explore some of the most common data dangers and how to avoid them so your campaigns don’t end up on the wrong side of digital PR Twitter, keeping you and your clients happy!
How to produce great multilingual content, even when you can't read it | Laur...Oban International
Laura will cover the importance of multilingual, properly localised content as part of an international marketing strategy, exploring some actionable steps to making that happen and highlighting some common pitfalls to avoid.
Using Tags & Taxonomies to super charge your eCommerce SEOMichael King
Using tags and taxonomies can supercharge ecommerce SEO. Properly labeling products and categorizing them allows for (1) better targeting of long-tail keywords, (2) improved internal linking to distribute PageRank, and (3) helping Google's crawlers discover content more efficiently. Key recommendations include designing three-level categorization for products and using tags to link diverse products. Automating recommendations and dynamic linking based on tags and attributes can further boost performance.
Swipe left: Why your content is getting ghostedEleni Cashell
Creating engaging content is a tricky thing, and even if your work is perfectly targeted to your audience, with all the SEO research to back it up, it doesn’t guarantee engagement.
In this talk, Eleni will showcase some of the mistakes she’s made and seen first-hand, explain why this isn’t getting engagement, and reveal how to fix it. From making content more accessible and inclusive, to key research methods that are often ignored, this talk will show you how to turn content that’s being ghosted and ignored, into something that creates meaningful connections.
Giulia Panozzo | BrightonSEO Measurefest | October 2022GiuliaPanozzo1
The document discusses using Causal Impact analysis to evaluate the effects of marketing tests and strategies. Causal Impact is a statistical technique that uses time series data and a Bayesian structural time series model to estimate the causal effect of an intervention or change. The document provides an example of how Causal Impact could determine if adding a price to a title tag increased clicks and traffic. It also outlines the steps to set up and run a Causal Impact analysis in R Studio, including preparing the data, selecting pre and post periods, and interpreting the results. Some limitations of Causal Impact are also discussed, such as external events influencing data and outliers.
Everything You Didn't Know About Entity SEO Sara Taher
This document provides an overview of entity SEO, including:
- What an entity is and why entity SEO is important as search engines have evolved from information engines to knowledge engines
- How search algorithms like Panda, Penguin, and Hummingbird helped drive this transition by prioritizing high-quality content over low-quality sites
- Techniques for entity SEO including entity research, topical maps, schema, internal linking, and case studies
- Tools like Google's Knowledge Graph that can help with entity research and understanding how entities are ranked
The document discusses the benefits of exercise for mental health. It states that regular exercise can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help alleviate symptoms of mental illness.
The document discusses the "dark funnel" which refers to the invisible or unknown steps a company takes when researching and evaluating vendors before making a purchase decision. It notes that over 75% of companies have already made their decision before engaging with a vendor. It then discusses how marketers can shine light on the dark funnel by building online communities, monitoring website behavior and intent data, and having a self-reinforcing marketing approach to identify companies in the early stages of consideration. Measuring engagement in the dark funnel can help marketers gain a better understanding of attribution and improve conversion rates.
Patrick Stox gives a presentation on how search works. He discusses how Google crawls and indexes websites, processes content, handles queries, and ranks results. Some key points include: Google's crawler downloads pages and files from websites; processing includes duplicate detection, link parsing, and content analysis; queries are understood through techniques like spelling correction and query expansion; and search results are ranked based on numerous freshness, popularity, and relevancy signals.
Building a semantic search system - one that can correctly parse and interpret end-user intent and return the ideal results for users’ queries - is not an easy task. It requires semantically parsing the terms, phrases, and structure within queries, disambiguating polysemous terms, correcting misspellings, expanding to conceptually synonymous or related concepts, and rewriting queries in a way that maps the correct interpretation of each end user’s query into the ideal representation of features and weights that will return the best results for that user. Not only that, but the above must often be done within the confines of a very specific domain - ripe with its own jargon and linguistic and conceptual nuances.
This talk will walk through the anatomy of a semantic search system and how each of the pieces described above fit together to deliver a final solution. We'll leverage several recently-released capabilities in Apache Solr (the Semantic Knowledge Graph, Solr Text Tagger, Statistical Phrase Identifier) and Lucidworks Fusion (query log mining, misspelling job, word2vec job, query pipelines, relevancy experiment backtesting) to show you an end-to-end working Semantic Search system that can automatically learn the nuances of any domain and deliver a substantially more relevant search experience.
Managing Director of iPullRank, Mike King, talks about how to leverage automated testing to ensure that developers engaged in Continuous Integration don't end up accidentally breaking the optimizations in place for SEO
This document discusses optimizing product listings on Amazon to improve search engine results rankings. It covers Amazon's search algorithm which prioritizes products based on sales performance and text relevance. The presenter recommends auditing listings and performing keyword research to optimize key on-page elements like product titles, bullets, descriptions and images as well as backend search terms. Examples of dos and don'ts are provided for each element. Case studies show rankings and visibility improving after implementing optimizations.
This document discusses how to control Googlebot's crawling of a website. It notes that Googlebot often does not crawl all pages of large websites due to limited crawl budgets. It recommends analyzing website logs and other metrics like pages crawled, indexed, ranked, impressions, clicks and conversions to understand Googlebot's behavior. The key factors that influence Googlebot are described as the "magic triangle" of links, content, and technical aspects. All three need attention to help Googlebot fully crawl and index a website.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
ChatGPT and other large language models are changing how we work. This is a series of small lighting talks merged into one larger talk to explore some of the impacts.
We've long wondered if we're along in the universe. There's more and more tantalizing hints that we might not be alone in our own solar system. The default assumption is that those "hints" are weird chemistry or bad measurements or modeling, but if that's not the case, what then?
Screaming Frog + Xpath: BrightonSEO April 2019Sabine Langmann
This document provides a guide to using Screaming Frog and XPath to analyze competitor websites. It introduces XPath as a query language for selecting nodes from XML documents. Examples are given for analyzing BBC.com and TheGuardian.com by counting elements like images, headings, and links to specific pages using relevant XPath selectors. Further examples compare Yourcat.co.uk and TheFoodaholic.co.uk by counting internal and external links within editorial content. The document emphasizes identifying the necessary data and using the correct XPath selector for analysis.
This document provides an overview of MongoDB and discusses its installation and configuration on Windows systems. It covers downloading the appropriate MongoDB version, installing the downloaded file, setting up the MongoDB environment by creating a data directory and log files, and connecting to MongoDB using the mongo shell. The document is divided into multiple sections covering MongoDB's features, data modeling using documents, database and collection management operations, and connecting to MongoDB from Java applications.
Este documento describe el diseño de una base de datos para un blog de noticias donde los usuarios pueden publicar comentarios. Se propone un modelo con colecciones para usuarios, noticias y comentarios, con índices para consultas frecuentes como búsquedas por nombre de usuario, código postal o número de teléfono. Se discuten dos opciones para almacenar los teléfonos y la dirección de los usuarios.
Paige Hobart - How to do GOOD Keyword Research - Search Advertising Show 2021Paige Hobart
This document provides guidance on conducting keyword research. It discusses the importance of keywords for tracking search engine performance and outlines a 4-stage process: 1) Extract keywords from Google Search Console, website content and competitors; 2) Add metrics like source, category, search volume and rank; 3) Expand the keyword list using tools and by researching competitors; 4) Optimize the list by removing irrelevant keywords, sorting by metrics, and filtering out uncompetitive or unrealistic keywords. The key lessons are to focus on relevancy, tag keywords as research is done, avoid bulk importing keywords, and have realistic expectations.
Search Query Processing: The Secret Life of Queries, Parsing, Rewriting & SEOKoray Tugberk GUBUR
Query Processing is the process of query term weight calculation, query augmentation, query context defining, and more. Query understanding and Query clustering are related to Information Retrieval tasks for the search engines. To provide a better search engine optimization effort and project result, the organic search performance optimizers need to implement query processing methodologies. Digital marketing and SEO are connected to each other. Understanding a query includes query parsing, query rewriting, question generation, and answer pairing. Multi-stages Query Processing, Candidate Answer Passages, or Candidate Answer Passages and Answer Term Weighting are some of the concepts from the Google Search Engine to parse the queries.
The presentation of The Secret Life of Queries, Parsing, Rewriting & SEO has been presented at the Brighton SEO Event in April 2022. The event speech focused on explaining the theoretical SEO and practical SEO examples together.
Query Processing methodologies are beyond synonym matching or synonym finding. It involves multiple aspects of the words, and meanings of the words. The theme of words, the centrality of words, attention windows, context windows, and word co-occurrence matrices, GloVe, Word2Vec, word embeddings, character embeddings, and more.
Themes of words contain the word probability like in Continues Bag of Window.
The search engine optimization community focuses on keyword research by matching the queries. Query processing involves query word order change, query word type change, query word combination change, query phrase synonym usage, query question generation, query clustering. Query processing and document processing are correlational. Query processing is to understand a query while document processing is to process a web document. Both of the processes are for ranking algorithms. Providing a better ranking algorithm requires a better query understanding. And providing better rankings as SEOs require better search engine understanding. Thus, understanding the methods of query processing is necessary.
Search Query Processing is implementing the query processing for thesearch engines. Search query refers to the phrase that search engine users use for searching. Search intent understanding and search intent grouping are two different things. But, query templates, questions templates, and document templates work together. Search query is for organic search behaviors. A web search engine answers millions of queries every day. Search query processing is a fundamental task for search engine optimization and search engine result page optimization.
The "Semantic Search Engine: Query Processing" slides from Koray Tuğberk GÜBÜR supported the presentation of "Search Query Processing: The Secret Life of Queries, Parsing, Rewriting & SEO". The presentation has been created by Dear Rebecca Berbel.
Many thanks to the Google engineers that created the Semantic Search Engine patents including Larry Page.
Data Pitfalls - Brighton SEO - Katie Swann.pptxKatieSwann5
We always hope to see our digital PR campaigns take off, but sometimes they can take off in the worst way.
From inaccurate data to misleading headlines, there are plenty of ways that we can fall into data-related pitfalls.
I explore some of the most common data dangers and how to avoid them so your campaigns don’t end up on the wrong side of digital PR Twitter, keeping you and your clients happy!
How to produce great multilingual content, even when you can't read it | Laur...Oban International
Laura will cover the importance of multilingual, properly localised content as part of an international marketing strategy, exploring some actionable steps to making that happen and highlighting some common pitfalls to avoid.
Using Tags & Taxonomies to super charge your eCommerce SEOMichael King
Using tags and taxonomies can supercharge ecommerce SEO. Properly labeling products and categorizing them allows for (1) better targeting of long-tail keywords, (2) improved internal linking to distribute PageRank, and (3) helping Google's crawlers discover content more efficiently. Key recommendations include designing three-level categorization for products and using tags to link diverse products. Automating recommendations and dynamic linking based on tags and attributes can further boost performance.
Swipe left: Why your content is getting ghostedEleni Cashell
Creating engaging content is a tricky thing, and even if your work is perfectly targeted to your audience, with all the SEO research to back it up, it doesn’t guarantee engagement.
In this talk, Eleni will showcase some of the mistakes she’s made and seen first-hand, explain why this isn’t getting engagement, and reveal how to fix it. From making content more accessible and inclusive, to key research methods that are often ignored, this talk will show you how to turn content that’s being ghosted and ignored, into something that creates meaningful connections.
Giulia Panozzo | BrightonSEO Measurefest | October 2022GiuliaPanozzo1
The document discusses using Causal Impact analysis to evaluate the effects of marketing tests and strategies. Causal Impact is a statistical technique that uses time series data and a Bayesian structural time series model to estimate the causal effect of an intervention or change. The document provides an example of how Causal Impact could determine if adding a price to a title tag increased clicks and traffic. It also outlines the steps to set up and run a Causal Impact analysis in R Studio, including preparing the data, selecting pre and post periods, and interpreting the results. Some limitations of Causal Impact are also discussed, such as external events influencing data and outliers.
Everything You Didn't Know About Entity SEO Sara Taher
This document provides an overview of entity SEO, including:
- What an entity is and why entity SEO is important as search engines have evolved from information engines to knowledge engines
- How search algorithms like Panda, Penguin, and Hummingbird helped drive this transition by prioritizing high-quality content over low-quality sites
- Techniques for entity SEO including entity research, topical maps, schema, internal linking, and case studies
- Tools like Google's Knowledge Graph that can help with entity research and understanding how entities are ranked
The document discusses the benefits of exercise for mental health. It states that regular exercise can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help alleviate symptoms of mental illness.
The document discusses the "dark funnel" which refers to the invisible or unknown steps a company takes when researching and evaluating vendors before making a purchase decision. It notes that over 75% of companies have already made their decision before engaging with a vendor. It then discusses how marketers can shine light on the dark funnel by building online communities, monitoring website behavior and intent data, and having a self-reinforcing marketing approach to identify companies in the early stages of consideration. Measuring engagement in the dark funnel can help marketers gain a better understanding of attribution and improve conversion rates.
Patrick Stox gives a presentation on how search works. He discusses how Google crawls and indexes websites, processes content, handles queries, and ranks results. Some key points include: Google's crawler downloads pages and files from websites; processing includes duplicate detection, link parsing, and content analysis; queries are understood through techniques like spelling correction and query expansion; and search results are ranked based on numerous freshness, popularity, and relevancy signals.
Building a semantic search system - one that can correctly parse and interpret end-user intent and return the ideal results for users’ queries - is not an easy task. It requires semantically parsing the terms, phrases, and structure within queries, disambiguating polysemous terms, correcting misspellings, expanding to conceptually synonymous or related concepts, and rewriting queries in a way that maps the correct interpretation of each end user’s query into the ideal representation of features and weights that will return the best results for that user. Not only that, but the above must often be done within the confines of a very specific domain - ripe with its own jargon and linguistic and conceptual nuances.
This talk will walk through the anatomy of a semantic search system and how each of the pieces described above fit together to deliver a final solution. We'll leverage several recently-released capabilities in Apache Solr (the Semantic Knowledge Graph, Solr Text Tagger, Statistical Phrase Identifier) and Lucidworks Fusion (query log mining, misspelling job, word2vec job, query pipelines, relevancy experiment backtesting) to show you an end-to-end working Semantic Search system that can automatically learn the nuances of any domain and deliver a substantially more relevant search experience.
Managing Director of iPullRank, Mike King, talks about how to leverage automated testing to ensure that developers engaged in Continuous Integration don't end up accidentally breaking the optimizations in place for SEO
This document discusses optimizing product listings on Amazon to improve search engine results rankings. It covers Amazon's search algorithm which prioritizes products based on sales performance and text relevance. The presenter recommends auditing listings and performing keyword research to optimize key on-page elements like product titles, bullets, descriptions and images as well as backend search terms. Examples of dos and don'ts are provided for each element. Case studies show rankings and visibility improving after implementing optimizations.
This document discusses how to control Googlebot's crawling of a website. It notes that Googlebot often does not crawl all pages of large websites due to limited crawl budgets. It recommends analyzing website logs and other metrics like pages crawled, indexed, ranked, impressions, clicks and conversions to understand Googlebot's behavior. The key factors that influence Googlebot are described as the "magic triangle" of links, content, and technical aspects. All three need attention to help Googlebot fully crawl and index a website.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
ChatGPT and other large language models are changing how we work. This is a series of small lighting talks merged into one larger talk to explore some of the impacts.
We've long wondered if we're along in the universe. There's more and more tantalizing hints that we might not be alone in our own solar system. The default assumption is that those "hints" are weird chemistry or bad measurements or modeling, but if that's not the case, what then?
This document provides updates on the status of Corinna, Perl's new object system. It discusses the seven stages of Corinna's development, including that classes and inheritance are complete. It provides an example of a Cache class written using Corinna syntax. The document notes that Corinna will introduce new programming idioms that developers do not yet know. It also references resources for learning to build a roguelike game in Perl.
The current status of the Corinna OOP proposal for the Perl programming language.
After years of design and discussion, the Perl Steering Committee has accepted the Corinna RFC (in a scaled-back initial form) for inclusion in the Perl language.
This talk gives the history of the proposal and where we're going from here.
A rambling tour of surprising things in several OO languages. These and other features were considered while I was designing Corinna, the next-generation OO syntax being proposed for the Perl core.
We're often faced with the "rewrite vs. refactor" debate for legacy code bases. Here we present both business and technical considerations involved in the decision.
Many people seem intimidated by Perl 6 because it's so complicated. However, a car can seem complicated if it's explained by a race car enthusiast, but most of us just get in and drive. In reality, Perl 6 isn't that hard and helps to avoid one of the largest class of errors that many programs have: passing data between functions.
In the long run, I suspect that Perl 6, given that it runs on the JVM, might become increasingly popular with enterprise clients who want the speed of development of dynamic languages, the ease of deployment with the JVM, and the safety of many "static" languages.
A curious mixture of the Internet and Agile development has led to more and more companies eliminating middle management. Some have eliminated management altogether. This talk explores this trend, discusses how modern corporations resemble feudal societies and why they're less likely to innovate.
We then survey many "managerless" companies that have arisen today, but also cover many highly successful, large, managerless companies who have been with us for decades, including some whose products you probably have in your home.
It's long been noticed that public companies tend to be less innovative. There's also a trend in many Agile companies to eschew management. Are private, Agile companies without managers the future?
This talk is more about half-truths than lies, but the concepts are important. There are several areas in which we think we have more confidence in our information than we actually do. This presentation covers both areas in which the evidence is against our beliefs and areas in which we simply need more information.
A/B Testing - What your mother didn't tell youCurtis Poe
Many people think A/B testing is merely showing customers two versions of something and choosing the one that customers respond to better.
It's much, much more complex than that.
Test::Class::Moose combines Test::Class, Moose and Test::Most to take test suites to the next level. It gives you unparalleled levels of control and information for you test suite.
The document describes using Test::Class to write object-oriented tests for OO code in Perl. It discusses organizing test suites into classes that inherit from a base test class, and using Test::Class methods to test object construction, attributes, and methods. Tests can be run together across multiple class hierarchies using the Test::Class framework.
This my keynote speech for YAPC::Europe, 2012. It went over very well, but it is effectively a rough draft of this concept and needs work. However, it was popular enough that people kept asking to see it, even in its incomplete form.
The document provides an overview of macroeconomics and how to move to Europe for work in the information technology field. It discusses key macroeconomic concepts like resources, labor, capital and how an educated and mobile workforce is important. It then explains how information and knowledge workers are in high demand in Europe, with countries offering tax advantages and immigration benefits for these positions. Specific jobs needed like system administrators and developers are listed, along with benefits of working for an IT company in Europe like tax breaks, salary, vacation time and relocation assistance.
This article describes how to test Perl programs with the excellent "Test::Class" module. It brings xUnit style testing to Perl. I explain many advanced tips and techniques which even experienced users of "Test::Class" might not be aware of.
The formatting is handled by an experimental piece of software I'm writing which turns Perl's POD format into beautiful postscript files.
Inheritance Versus Roles - The In-Depth VersionCurtis Poe
This is the paper to accompany my slides explaining what's wrong with inheritance and how traits (roles) help to solve these issues: http://www.slideshare.net/Ovid/inheritance-versus-roles
This is an expanded version of my "Refactoring with Roles" talk. People don't ask me how to use roles. They're easy to use. They ask me why to use roles. That's pretty easy to, so long as you understand what's wrong with inheritance. This talk covers that.
A paper for this talk is at http://www.slideshare.net/Ovid/inheritance-versus-roles-1799996
This document discusses ways to optimize and speed up test suites. It recommends aggregating tests to run them together more efficiently, using databases strategically to avoid rebuilding them for each test, and leveraging tools like Test::Aggregate and Test::Most. Running tests in parallel using 'prove -j' can significantly reduce test suite runtime. Test coverage tools like Devel::CoverX::Covered can help identify which tests cover different parts of code. Overall, the document presents several techniques for analyzing and improving test suite performance.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Energy consumption of Database Management - Florina Jonuzi
How to Fake a Database Design
1. How to Fake a Database Design
How do I spell “normalization”?
OSCON 2014
Curtis "Ovid" Poe
http://allaroundtheworld.fr/
Copyright 2014, http://www.allaroundtheworld.fr/
March 18, 2022
2. Good Database Schemas
• Generally normalized
• Denormalized only as necessary
• No duplicate data
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
3. Typical Developer Schemas
• A steaming pile of ones and zeros
• … with a “family friendly” background
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
Source: http://commons.wikimedia.org/wiki/File:Spaghetti-prepared.jpg
4. Database Normalization
• Remove redundancy
• Create logical relations
• Decomposing data to atomic elements
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
5. Only Covering 3NF
1. Remove repeating groups of data
2. Remove partial key dependencies
3. Remove data unrelated to key
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
6. How to Feel Stupid
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
“It is shown that if a relation
schema is in third normal form and
every key is simple, then it is in
projection-join normal form
(sometimes called fifth normal
form), the ultimate normal form
with respect to projections and
joins.”
Simple Conditions for Guaranteeing Higher Normal
Forms in Relational Databases — C. J. Date
http://commons.wikimedia.org/wiki/File:%22I_should_have_gone_to_the_pro_station%22_-_NARA_-
_514564.tif
7. ‘Nuff of that – Let’s Get Started
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
I’m going to discuss “how”, not “why”,
because I only have 50 minutes.
8. Faking a Database Design
• Forget everything you know about Excel
• Focus on nouns (sort of)
• Duplicate data is a design flaw
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
9. Real-World Problem
• Client wanted a rewrite of recipes site
• They sent us their Access (!) database
• Main objects:
– customers
– recipes
– orders
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
10. Our “DBA” Said This Was OK
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
11. March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
Our “DBA” also lost his job shortly thereafter
12. Back to the plot …
• Customers
• Orders
• Recipes
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
22. Searching
SELECT recipe_id, name FROM recipes
WHERE
ingredient1 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient2 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient3 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient4 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient5 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient6 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient7 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni')
OR
ingredient8 IN ( 'fettuccinne', 'fettuchini', 'fettucini', 'fettucinne', 'fetuchine', 'fetuchinney',
'fetuchinni', 'fetucine', 'fetucini', 'fetucinni');
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
23. It’s “fettuccine”, in case
you were wondering
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
24. Searching
SELECT recipe_id, name FROM recipes
WHERE ingredient1 = 'fettuccine'
OR ingredient2 = 'fettuccine'
OR ingredient3 = 'fettuccine'
OR ingredient4 = 'fettuccine'
OR ingredient5 = 'fettuccine'
OR ingredient6 = 'fettuccine'
OR ingredient7 = 'fettuccine'
OR ingredient8 = 'fettuccine';
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
26. Rule #3
1. Nouns == tables
2. Another table’s ID must have a FK constraint
3. Lists of things get their own table
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
28. Searching
SELECT recipe_id, name
FROM recipes r
JOIN recipe_ingredients ri ON ri.recipe_id = r.recipe_id
JOIN ingredients i ON i.ingredient_id =
ri.ingredient_id
WHERE i.name = 'fettuccine';
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
31. Rule #4
1. Nouns == tables
2. Another table’s ID must have a FK constraint
3. Lists of things get their own table
4. Many-to-many == lookup table (with FKs)
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
32. So How Do We Order Recipes?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
34. How Many of Which Ingredient?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
35. March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
Our simple “customers”, “orders”, and “recipes”
database has grown to seven tables.
And it will keep growing.
36. So Far
• Every noun has its own table (*)
• Lookup tables join related tables
• And generally have some of unique constraint
• Other table’s ids have foreign key constraints
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
37. Database Tips
• We’ve covered the main rules
• They only cover structure
• Now to dive deeper
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
38. Equality ≠ Identity
• No duplication == not duplicating identity
• Are identical twins the same person?
• Are two guys named “John” the same guy?
• This is important and easy to get wrong
• For example …
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
39. How do you get the total of an order?
• Assume each recipe has a price
• Store total in the order? (hint: no)
• Store price on the recipe? (hint: yes)
• Is that enough?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
41. Calculating the Order Total?
SELECT o.order_id, sum(i.price)
FROM orders o
JOIN orders_recipes orr
ON orr.order_id = o.order_id
JOIN recipes r
ON r.recipe_id = orr.recipe_id
GROUP BY o.order_id
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
42. What if the price changes?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
44. Calculating the Order Total
SELECT o.order_id, sum(orr.price)
FROM orders o
JOIN orders_recipes orr
ON orr.order_id = o.order_id
GROUP BY o.order_id
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
45. Equality is not Identity
• Order item price isn’t item price
• What if the item price changes?
• What if you give a discount on the order item?
• A subtle, but common bug
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
46. Rule #5
1. Nouns == tables
2. Another table’s ID must have a FK constraint
3. Lists of things get their own table
4. Many-to-many == lookup table (with FKs)
5. Watch for equal values that aren’t identical
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
47. Naming
• Names are important
• Identical columns should have identical names
• Names should hint at use
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
48. Bad Naming
SELECT name, 'too cold'
FROM areas
WHERE temperature < 32;
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
50. ID Names
SELECT o.id, sum(i.price)
FROM orders o
JOIN orders_recipes orr
ON orr.order_id = o.id
JOIN recipes r
on r.id = o.id
GROUP BY o.order_id
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
51. ID Names
SELECT o.id, sum(i.price)
FROM orders o
JOIN orders_recipes orr
ON orr.order_id = o.id
JOIN recipes r
on r.id = o.id
GROUP BY o.order_id
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
52. Conceptually Similar to …
SELECT name
FROM customer
WHERE id > weight;
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
53. ID Names
SELECT thread.*
FROM email thread
JOIN email selected ON selected.id = thread.id
JOIN character recipient ON recipient.id = thread.recipient_id
JOIN station_area sa ON sa.id = recipient.id
JOIN station st ON st.id = sa.id
JOIN star origin ON origin.id = thread.id
JOIN star destination ON destination.id = st.id
LEFT JOIN route
ON ( route.from_id = origin.id AND route.to_id = destination.id )
WHERE selected.id = ?
AND ( thread.sender_id = ?
OR ( thread.recipient_id = ?
AND ( origin.id = destination.id
OR ( route.distance IS NOT NULL
AND
now() >= thread.datesent
+ ( route.distance * interval '30 seconds' )
))))
ORDER BY datesent ASC, thread.parent_id ASC NULLS FIRST
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
54. Rule #6
1. Nouns == tables
2. Another table’s ID must have a FK constraint
3. Lists of things get their own table
4. Many-to-many == lookup table (with FKs)
5. Watch for equal values that aren’t identical
6. Name columns as descriptively as possible
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
55. Summary
• Nouns == tables (*)
• FK constraints
• Proper naming is important
• Your DBAs will thank you
• Your apps will be more robust
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
56. March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
?
http://www.slideshare.net/ovid/
57. Bonus Slides!
Super-duper important stuff I wasn’t
sure I had time to cover because it’s
going to make your head hurt.
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
58. Avoid NULL Values
• Every column should have a type
• NULLs, by definition, are unknown values
• Thus, their type is unknown
• But … every column should have a type?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
59. Our employees Table
CREATE TABLE employees (
employee_id SERIAL PRIMARY KEY,
name CHARACTER VARYING(255) NOT NULL,
salary MONEY NULL
);
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
60. Giving Bonuses
• $1,000 bonus to all employees
• … if they make less than $40,000/year
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
61. Get Employees For Bonus
SELECT employee_id, name
FROM employee
WHERE salary < 40000;
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
62. Bad SQL
• Won’t return anyone with a NULL salary
• Why is the salary NULL?
– What if it’s confidential?
– What if they’re a contractor and in that table?
– What if they’re an unpaid slave intern?
– What if it’s unknown when the data was entered?
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
63. NULLs tell you nothing
supplier_id city
s1 ‘London’
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
part_id city
p1 NULL
suppliers table
parts table
Example via “Database In Depth” by C.J. Date
64. NULLs tell you nothing
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
part_id city
p1 NULL
parts table
Example via “Database In Depth” by C.J. Date
SELECT part_id
FROM parts;
SELECT part_id
FROM parts
WHERE city = city;
65. NULLs tell you nothing
supplier_id city
s1 ‘London’
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
part_id city
p1 NULL
Example via “Database In Depth” by C.J. Date
SELECT s.supplier_id, p.part_id
FROM suppliers s, parts p
WHERE p.city <> s.city -- can’t compare NULL
OR p.city <> 'Paris’; -- can’t compare NULL
66. NULLs tell you lies
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
Example via “Database In Depth” by C.J. Date
SELECT s.supplier_id, p.part_id
FROM suppliers s, parts p
WHERE p.city <> s.city -- can’t compare NULL
OR p.city <> 'Paris’; -- can’t compare NULL
• We get no rows because we can’t compare a NULL city
• The unknown city is Paris or it isn't.
• If it’s Paris, the first condition is true
• If it’s not Paris, the second condition is true
• Thus, the WHERE clause must be true, but it’s not
67. Rule #7
1. Nouns == tables
2. Another table’s ID must have an FK constraint
3. Lists of things get their own table
4. Many-to-many == lookup table (with FKs)
5. Watch for equal values that aren’t identical
6. Name columns as descriptively as possible
7. Avoid NULL columns like the plague
March 18, 2022 Copyright 2014, http://www.allaroundtheworld.fr/
Editor's Notes
Duplicate data means identity, not equality!
Any guesses as to what was in ingredient8?
Note that ‘address’ and ‘directions’ aren’t separate tables. Great point for discussion. (Surprêmes de volaille aux champignons === chicken parisienne)
FKs prevent crap data.
How many of you have worked on databases with crap data?
Well-designed databases can make it hard to add crap data.
Even if you *knew* you would never need more than 8 ingredients,
what do you do when you find out that macaroni, barbecue, or fettucinne
are routinely misspelled?