Optimizing Machine Learning Deployment: Tips and Tricks

Machine learning has become an integral part of many industries, from healthcare to finance and beyond. It provides us with the tools we need to derive meaningful insights and make better decisions. However, even the most accurate and well-trained machine learning models are useless if they're not deployed in a production environment. That's where machine learning model deployment comes in.

Deploying a machine learning model can be a daunting task, even for experienced engineers. There are many challenges to overcome, from choosing the right deployment platform to ensuring your model is optimized for production. But fear not; in this article, you'll learn advanced tips and techniques to help you optimize your machine learning model deployment process and avoid common pitfalls.

8 Proven Ways to Combat End-of-Life Software Risks

Software has become an essential part of our daily lives, from the apps on our phones to the programs we use at work. However, software, like all things, has a lifecycle, and as it approaches its end-of-life (EOL). 

Then it poses risks to the security, privacy, and performance of the system on which it runs.

Data Lakehouses: The Future of Scalable, Agile, and Cost-Effective Data Infrastructure

In today's data-driven world, businesses across industries are increasingly dependent on data warehouse and data lake solutions to store, process, and analyze their ever-growing volumes of data. These traditional approaches have played a crucial role in helping organizations unlock the value hidden within their data, driving informed decision-making. However, as the data management landscape continues to evolve, businesses face new challenges related to data volume, variety, and velocity, coupled with the need for real-time insights, advanced analytics, and machine learning capabilities.

Overcoming Limitations: Data Lakehouses Emerge as the Next-Gen Data Management Solution

Traditional data warehouses excel at handling structured data and providing fast query performance, but often struggle with scalability and rigidity when incorporating new data sources or adapting to changing business needs. Data lakes, in contrast, offer flexible storage solutions for diverse data types but may lack the necessary performance, governance, and advanced analytics support modern organizations require.

Tackling the Top 5 Kubernetes Debugging Challenges

Cloud-native technologies like Kubernetes enable companies to build software quickly and scale effortlessly. However, debugging these Kubernetes-based applications can be quite challenging due to the added complexity of building service-oriented architectures (microservices) and operating the underlying Kubernetes infrastructure. 

Bugs are inevitable and typically occur as a result of an error or oversight made during the software development process. So, in order for a business to keep pace with app delivery and keep their end users happy, developers need an efficient and effective way to debug. This involves finding, analyzing, and fixing these bugs. 

Creating a Personal ReadMe for Scrum Masters With ChatGPT

Providing a personal ReadMe to your new teammates and stakeholders as a Scrum Master is a great way to build trust and rapport while managing expectations at the same time. I do so regularly, and having a template for that purpose comes in handy.

Therefore, I thought it also might be an excellent exercise to test ChatGPT on more practical aspects of a Scrum Master’s work. So, please follow the complete path to having ChatGPT create a decent personal readme template for Scrum Masters — which took me less than 20 minutes.

What’s New in WordPress 6.2 (Features and Screenshots)

WordPress 6.2 has just been released, and it is the first major WordPress release of 2023.

This new version is packed with significant improvements and new features. Many of them focused on the block editor and site editing in WordPress.

In this article, we’ll show you what’s new in WordPress 6.2 and which features you should try after the update.

An overview WordPerss 6.2 release with features and screenshots

Note: WordPress 6.2 is a major release, and unless you are on a managed WordPress hosting service, you’ll have to initiate the update manually. Here’s how to safely update WordPress.

Important: Don’t forget to create a complete WordPress backup before updating.

That being said, here’s all that’s new in WordPress 6.2.

WordPress Site Editor Comes out of Beta

The site editor comes out of the beta.

It has been around for the past few WordPress releases, the removal of the beta label is merely an invitation for more users to try it.

Site editor comes out of beta

This also indicates the completion of phase 2 of the WordPress development roadmap which started out with the release of the new block editor back in WordPress 5.0 (late 2018).

WordPress 6.2 includes several new features added to the site editor, including some brand-new tools which we’ll talk about later in this article.

Note: Full site editor is available with block themes that support this feature. You can try it out even if you are using the older classic editor with a block-enabled theme.

Improved Navigation Menu Block

Navigation menus help you define your website layout to your users. However, creating them in the full site editor had been a bit difficult for beginners.

WordPress 6.2 now comes with an improved ‘Navigation’ block.

You can now create and manage the Navigation block by editing items in the sidebar.

Managing menu items in block panel

To add a new menu item, simply click on the ‘add (+)’ button. You can also drag and drop menu items to rearrange them.

Want to use a different menu? You can now easily switch between menus you have created earlier by clicking on the Three-dot menu in the sidebar.

Manage menus

Overall, this is a significant improvement to the older Navigation block where you had to edit items inline which was not a good experience for beginners.

Improved Template Browsing Experience

WordPress 6.2 comes with a new template browsing experience.

This allows users to browse different templates to find out which one they need to edit if they want to make changes to a certain area of their website.

Template browser in WordPress 6.2

To edit a template or template part, simply click to load it inside the preview window. After that, just click on the preview window to start editing.

Want to exit the site editor?

Simply click on the WordPress or your site logo at the top left corner of the screen to enter the template browser. Then click again to exit and return to the WordPress dashboard.

Exit site editor

The template browser screen will now also show you that you have unsaved changes.

It also offers an improved saving experience showing what changes you are saving.

Unsaved changes in site editor

Template Parts Highlighted with Colors

A template in the site editor may include several template parts, like the header and footer.

These are global elements that can be used in multiple places on your WordPress website. If you edit a template part on one page, those changes will be reflected all over your site.

Previously when editing a template part, the only indication was the label at the top changed to show the template part name.

Template part editing before WordPress 6.2

Editing template parts affects all templates that include those elements. This makes it important to indicate that users are editing a global template part and not simply the page they are looking at.

WordPress 6.2 now makes this more noticeable by adding colors and an icon to indicate that you are editing a template part.

Template part edited in WordPress 6.2

Modify Your Theme With The Style Book

WordPress 6.2 comes with a style book feature in the site editor.

This is basically one convenient place to browse how your theme displays all the blocks. To access it you need to switch to the Styles panel and then click on the Style Book icon. It is the one that looks like an eye.

Style book shows all block styles at one place

This will show you all the blocks, and how they are styled in your theme. They are organized into different categories so that you can easily locate the block you want to edit.

Click to start editing a block and you will see all the tools that you can use in the sidebar panel. Changes you make here will apply globally to your theme.

Edit block directly from style book

Basically, you can change the appearance of your entire theme by editing individual blocks here and creating a completely new style of your own.

Want to edit block styles individually? Don’t worry there are even more design tools at your disposal to edit blocks.

Ability to Add Custom CSS to Your Theme or Blocks

By default, the site editor hides the legacy Theme Customizer interface. Many users added their custom CSS in the ‘Additional CSS’ panel available with the legacy customizer.

Until 6.2, it was a problem to add custom CSS using the default tools available.

WordPress 6.2, however, now allows you to add custom CSS that applies to your entire site. Simply click on the Styles panel and choose Custom CSS under the three-dot menu.

Custom CSS in site editor

You can also add custom CSS to individual blocks as well.

Switch to the Style panel and then click on Blocks.

Block styles

Now, you need to select the block that you want to modify.

After that, click on the ‘Additional Block CSS’ tab to enter your custom CSS code.

Block styles custom CSS

WordPress 6.2 makes it easier to add custom CSS if you need to. However, it comes with a ton of built-in design tools which are much easier to use than adding custom CSS.

Copy and Paste Block Styles

Another styling feature that reduces the need to add custom CSS is the ability to simply copy and paste block styles.

Let’s say that you just made some changes to a block and want to make the same changes on another block as well.

With WordPress 6.2 you can simply click on ‘Copy styles’ under the block options.

Copy styles

After that, click on the block options for the block where you want to paste the style and select ‘Paste styles.’

Note: Your browser will ask for permission to allow your website to view the contents of the clipboard. You need to click ‘Allow’ to continue.

Paste styles

Improved Pattern Insertion

WordPress block patterns are a collection of pre-made design elements that you can use for creating custom content layouts faster.

By default, WordPress comes with several built-in patterns. Your WordPress theme may also include its own pattern. Plus, you can find more patterns in WordPress Patterns Directory.

WordPress 6.2 comes with an improved pattern insertion interface.

Easier pattern insertion

Openverse Free Media Library Integration

WordPress 6.2 now adds a ‘Media’ tab in the inserter as well.

Here, you can choose media from your own WordPress media library or browse royalty-free images from Openverse.

Openverse Integration in WordPress 6.2

Openverse is a sister project of WordPress.org. It allows openly licensed and public domain works to be discovered and used by everyone.

Once you select an image it will be inserted into the editor and downloaded to your WordPress media library as well.

WordPress will also save the image caption which may include a link back to the original source. You can delete this caption if the image is in the public domain.

New Sub Panels for Block Settings & Styles

WordPress 6.2 now uses sub-panels to separate block settings and styles.

This helps users understand where they need to look if they want to change the appearance of a block.

Sub panels for block settings and styles

New Distraction-Free Mode

Historically, WordPress has always provided options to hide the formatting buttons and toolbars on the post editor screen.

Here is how it looked in WordPress 4.1 with the older classic editor.

Distraction free mode in older classic editor

However, the block editor had the option to be used in full-screen mode. WordPress 5.4 started using the full-screen mode as the default.

This allowed users to have a much cleaner writing interface, but there was no distraction-free mode.

Full-screen mode

WordPress 6.2 now comes with a completely clean and calm distraction-free mode.

Users will be able to choose it from the editor settings, and it removes all toolbars and editing panels from the screen.

Distraction free mode in WordPress 6.2

Import Classic Widgets as Template Parts in Block Themes

WordPress 6.2 provides a nice fallback for importing classic legacy widgets in block themes when switching themes.

Users with classic widget themes lost their legacy widgets when they switched to a block theme. Now, you can import them as template parts.

Simply create a new template part by clicking on the ‘Add New Block’ button (+).

Import classic widgets into template part

From the template part settings panel, click on the Advanced tab to expand it, and you’ll find the option to import a widget area from your previous theme.

Miscellaneous Enhancements

WordPress 6.2 contains a ton of enhancements. It merges 10 Gutenberg releases (‘Gutenberg’ is the codename for the original block editor project) into WordPress core so there are many refinements and new features to explore.

Here are some of the most useful enhancements.

1. Captions Button in Image Block Toolbar

Previously WordPress automatically added the caption area below the image and moved the cursor automatically to the caption.

This led many users to continue writing their text not realizing that they are writing it in the caption area.

WordPress 6.2 fixes this by adding a caption button to the toolbar. Users can now use it to add a caption if needed.

Add caption button

2. Improved Calendar Block

The calendar block now comes with more color options.

Improved color block

3. The List, Outline, and Info Panels are Merged

The list view, outline, and info panel are now merged into one convenient location.

List block now shows outline and information panel

4. Group Block Layout

The ‘Group’ block now lets you choose a layout.

Group block layout

5. The Download Link for Media Files

The media screen will now show a ‘Download File’ link in the list view.

Download link for media files

6. New Icon for Settings Panel

The icon to display the settings panel previously used a gear icon. It is now presented with a panels icon.

Settings icon

Under The Hood Changes

WordPress 6.2 also includes a ton of changes intended for developers. Following are some of these changes:

  • A new HTML API called WP_HTML_Tag_Processor is introduced. (Details)
  • A new client-side filter called blockEditor.useSetting.before is introduced. It allows developers to change block settings before the editor is rendered. (Details)
  • Patterns API extended to include template_types property. (Details)
  • Faster updates by moving directories instead of copying them. (Details)
  • A new switch_to_user_locale() function is introduced. (Details)
  • Create autosave revisions only when content is changed. (Details)
  • Add a style variation tag to themes that use style variations. (Details)

We hope this article helped you uncover what’s new in WordPress 6.2 and which new features to try out. We are particularly excited about all the changes to the site editor and performance improvements for block themes.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post What’s New in WordPress 6.2 (Features and Screenshots) first appeared on WPBeginner.

View the Contents of a Deployed Message Flow in IBM App Connect Enterprise

In the following videos, I explain, using scenarios and examples, how to view the contents of a deployed message flow and how to retrieve and import resources that are deployed to an integration server in IBM App Connect Enterprise.

In the first video, I use a scenario where an HTTP request is sent to a message flow. The message flow sends a REST Request to a back-end REST API, and the REST API then returns a population estimate for a European city that was entered in the original request message that was sent to the message flow.

Reconciling Java and DevOps with JeKa

If you've ever implemented a Java project using a mainstream build system such as Ant, Maven, or Gradle, you've probably noticed that you need to use extra language to describe how to build your project.

While this may seem appealing for basic tasks, it can become trickier for more complicated ones. You need to learn a specific soup of XML, write verbose configurations, or write Kotlin DSLs that are intertwined with complex tooling. 

Java Concurrency: LockSupport

Previously we had a look at the lock class and how it works behind the scenes.
In this post, we shall look at LockSupport and its native methods which are one of the building blocks for locks and synchronization classes.

As we can see the methods of lock support are static and behind the scenes, they are based on the Unsafe class.
The Unsafe class is not intended to be used by your code directly thus only trusted code can obtain instances of it.

How Can Enterprises, ML Developers, and Data Scientists Safely Implement AI to Fight Email Phishing?

AI is the fastest-moving technology with a solution for every security concern for an enterprise. From building a privacy layer for data management systems to using natural language processing for detecting fraud in inbound messages such as emails, there's an abundance of whitespace to create. However, while communicating with several business leaders, I have found that most ignore the severity of what may seem like a minor problem: phishing scams through emails. 

Since emails are the primary mode of corporate communications, millions of employees worldwide risk attracting spam and exposing sensitive information. In fact, as per Proofpoint's findings, 83% of organizations were under email phishing attacks in 2022. 

Effective Jira Test Management

I've heard a lot about Jira not being optimized for QA as, at its core, it is specifically a Project Management solution, and, therefore, it is not about test management. But let's be honest here, Jira feels unnecessarily complicated when you get started with it, regardless of your position or goals. And given it's the go-to standard for organizing and managing software development projects – of which QA is an integral part – you'll barely have a choice in the matter. 

That being said, Jira can (and should) be optimized in a way that is equally efficient for developing new features, testing, and releasing them. 

15 Absolute Best Elementor Themes to Create a Stunning Website

Best Elementor Themes Featured ImageIf you're using Elementor to build your website, then you're probably someone who is highly motivated to create something that not only functions well, but is visually stunning. However, with so many "best Elementor themes" out there, it can be difficult to know which one to pair with this popular page builder. Well, you can rest assured that all of the Elementor themes featured on this list will not only look good, but will also provide you with the functionality you need to achieve your goals - whether that's to build a blog, an ecommerce store, or something else entirely.

Fine-Grained Access Handling And Data Management With Row-Level Security

Many apps have some kind of user-specific information or data that is supposed to be accessed by a certain group of users and not by others. With these sorts of requirements comes a demand for fine-grained access handling. Whether for security or privacy reasons, dealing with sensitive data is an important topic for any app. Big or small, nobody wants to be on the wrong side of a data leakage scandal. So let’s dive in on what it means to handle sensitive or confidential information in our apps.

Take It Seriously

Regardless if you’re requesting access on Twitter, a bank, or your local library, identifying yourself is a crucial first step. Any sort of gateway needs a reliable way to verify if an access request is legitimate.

“Identity theft is not a joke.”
Dwight Schrute

On the web, we encapsulate the process for identifying a user and granting them access as Auth, which stands for two related but distinct actions:

  • Authentication: the act of confirming a user’s identity.
  • Authorization: granting an authenticated user access to a resource.

It is possible to have authentication without authorization, but not the other way around. The strategy to implement authorization at a data management level can be loosely referred to as Row-Level Security (RLS), but RLS is actually a bit more than this. In this article, we will take a step deeper into managing sensitive user data and defining access roles to a user base.

Row-Level Security (RLS)

A ‘row’, in this case, refers to an entry in a database table. For example, in a posts table, a row would be a single article, check this json representation:

{
    "posts": [
        {
            "id": "article_23495044",
            "title": "User Data Management",
            "content": "<huge blob of text>",
            "publishedAt": "2023-03-28",
            "author": "author_2929292"
        },
        // ...
    ]
}

To understand RLS, each object inside posts is a ‘row’.

The above data is enough for creating a filter algorithm to effectively enforce row-level security. Nonetheless, it’s crucial for scalability and data handling that such relationship is defined on your data layer. This way, any service that connects to your database will have all the required information to implement its own access-control logic as required. So for the above example, the schema for the posts table would roughly look like the following:

{
    "posts": {
        "columns": [
            {
                "name": "id",
                "type": "string"
            },
            // ... other primitive types
            // establish relationship with "authors"
            {
                "name": "author",
                "type": "link",
                "link": "authors"
            }
        ]
    }
}

In the above example, we define the type of each value in our posts database and establish a relationship to the authors table. So each post will receive the id of one author. This is a one-to-many relationship: one author can have many posts.

Of course, there are patterns to define many-to-many relationships as well. Take, for example, a team’s backlog. You may want only members of a certain team to have access. In such case, you can create a list of users with access to a specific resource (and thus being very granular about it), or you can define a table for team, and thus connecting a team to multiple tasks, and a team to multiple users: this pattern is called a junction table and is great for defining scoped access within your data layer.

Now we understand what authorization is and looks like in a few cases. This should be enough to design a mental model for defining access to our data. We understand that in order to use the granular access to our data effectively, our app must be aware of which user is using that particular instance of the app (aka who’s behind the mouse).

Authentication

It is time to set up a reliable and cost-effective authentication. Cost-effective because it is counter-productive to re-authenticate the user on every request. And it increases the risk factor of attacks, so let’s keep auth requests to a minimum. The way our app stores the user credentials to re-use in a defined lifecycle is called a session.

There are multiple ways of authenticating users and handling sessions. I invite you to check Eric Burel’s article on “Authentication in Websites: A Banking Analogy”. It’s a great and thorough explanation of how authentication works.

From this moment on, let’s assume we did our due diligence: username and password are securely stored, an authentication provider is able to reliably verify our user’s identity and returns a session, which is an object carrying a userId matching our user’s row in the database.

Connecting The Dots

So now that we have established what it means and the requirements each moving piece brings in order to get it working, our goal is the following:

  1. Authentication
    The provider performs user authentication, the library creates a session, and the app receives that as a payload from the auth request.
  2. Resource request
    Authenticated User performs request with resourceId; the app takes userId from session.
  3. Granting access
    It filters all resources from the table to only the ones owned by userId and returns (if it exists) the one with resourceId.

With the above mental model defined, it is possible to any sort of implementation and properly design your queries. For example, on our first defined schema (posts and authors), we can use filters on our fetching service to only provide access to the results a user should have:

async function getPostsByAuthor(authorId: string) {
    return sdk.db.posts
        .filter({
            author: authorId
        })
        .getPaginated()
}

This contrived snippet is just to exemplify a bare-bones RLS implementation. Maybe as a food-for-thought so you can build upon it.

Conclusion

Hopefully, these concepts have offered extra clarity on defining access management to private and/or sensitive data. It’s important to note that there are security concerns before and around storing such kind of data which were beyond the scope of this article. As a general rule: store as little as you need and provide only the necessary amount of access to data. The least sensible data going over the wire or being stored by your app, the lesser the chance your app is a target or victim of attacks or leaks.

Let me know your questions or feedback in the comment section or on Twitter.

How to Assess the Technical Skills of a Software Development Partner

Software development plays a crucial role, leading many companies to outsource this function to third-party service providers. However, selecting the right software development partner can be daunting given the many factors that require consideration, with the partner's technical proficiency ranking high among them. This article delves deeper into assessing the technical expertise of a software development partner.

Relevant Experience

When you're on the hunt for a software development partner, one of the key factors to consider is their relevant experience. Finding a partner with experience in developing software applications that align with your project requirements is important. For instance, if you're looking to create a mobile application, it's wise to seek a partner with extensive experience in mobile app development.

How to Add Fuzzy Search in WordPress to Improve Results

Do you want to add fuzzy search to your WordPress website?

WordPress fuzzy search helps users easily find the information they are looking for, even if they misspell or incorrectly enter their query. This improves the overall search experience and user engagement on your website.

In this article, we will show you how to easily add fuzzy search to your WordPress website.

How to add fuzzy search to your WordPress website

What Is Fuzzy Search for WordPress?

Fuzzy search looks for partial matches for a search term, and if no exact matches are available, then it shows users the closest results.

This way, users can find the right content on your website even if they make typos in their search queries.

By default, all WordPress websites come with a basic search feature that only shows results for exact matches.

For instance, if a user misspells a term, no results will be shown, not even partial matches. This creates a bad search experience for users and often causes them to leave your site. You can see this in the image below.

No search results found

This is where SearchWP comes in. It is the best WordPress search plugin on the market that automatically replaces the default search with a much better search feature.

Unlike the default WordPress search, SearchWP can use fuzzy search and look for matches in titles, excerpts, post or page content, products, custom fields, categories, tags, PDFs, and more.

For instance, if a user searches for ‘vintage furniture’ on your WordPress blog but misspells a word, then they will still be able to find your posts on this topic.

The image below shows the same misspelled search using the SearchWP plugin.

SearchWP Fuzzy Search

Note: We only recommend adding fuzzy search if you really consider it necessary. This is because partial matches can reduce the effectiveness of the search form on your website and display unwanted results, leading to user frustration.

That being said, let’s see how you can easily add fuzzy search to your WordPress website.

How to Add Fuzzy Search for WordPress

First, you need to install and activate the SearchWP plugin. For more details, please see our guide on how to install a WordPress plugin.

Upon activation, you need to visit the SearchWP » Settings page from the admin sidebar and then enter your license key into the required field. After that, click the ‘Activate’ button.

You can find the license key information in your account on the SearchWP website.

SearchWP license key

Now, the fuzzy search feature is not enabled in SearchWP by default.

However, you can easily turn it on by visiting the SearchWP » Settings page from the WordPress dashboard and scrolling down to the ‘General’ tab.

From here, simply toggle the switch next to the ‘Partial Matches’ option.

Doing so will enable the WordPress fuzzy search feature for your site, and your settings will be saved automatically.

Toggle the Partial matches switch

Once that is done, you should review the other SearchWP settings. The plugin comes with a bunch of powerful options that allow you to customize search on your WordPress blog.

You can see them by going to SearchWP » Algorithm from the WordPress admin sidebar.

Configure SearchWP engine settings

From here, you can assign weight to different search results. This tells SearchWP to consider some attributes as more important when displaying its search results.

You can also click on the ‘Sources & Settings’ button to select additional search areas. For instance, you can enable search for comments, products, and more instead of simply posts and pages.

Enable search for posts, comments, and pages

To learn more about these settings, you can see our complete guide on how to improve WordPress search with SearchWP.

Adding a Search Form to Your Website

SearchWP automatically replaces the default WordPress search. This means that if you have already added the WordPress Search block or widget to your website, then it will start using the SearchWP custom algorithm for results.

However, if you have not added a search form to your website yet, then you can do so by simply inserting the Search block or widget into any post, page, or sidebar area.

Head over to the Appearance » Widgets page from the WordPress dashboard.

Here, click the add block ‘+’ button to find the Search block and add it to your sidebar. Then, don’t forget to click on the ‘Update’ button to store your settings.

Search widget

However, if you are using a block theme, then it may not have a widget-ready area. In that case, you won’t see the Widgets screen under the Appearance menu.

Instead, you can use the full site editor to add the search block to your website. Simply go to the Appearance » Editor page to launch the editor.

Here, click the ‘+’ button and add the Search block to where you want to display the search form on your website.

Adding search block in site editor

Don’t forget to click on the ‘Update’ button to save your settings.

You can now visit your website and try out the new, more powerful search feature.

For example, you can see in the image below how the fuzzy search feature returns multiple relevant results from a misspelled query.

Search results with fuzzy search

Bonus: Search by Category in WordPress to Improve User Experience

By adding fuzzy search, you make it easier for users to find relevant content, which makes your website more user-friendly and helpful for visitors.

Another way to make your website easier to navigate is by allowing users to search by category in WordPress.

Categories allow you to organize the content on your website in a more structured way. If you have a lot of blog posts on your site, then allowing users to search by category makes it easier for them to search within specific topic areas, such as travel.

Preview for searching by category

If you have an online store, then adding a category search for products also makes it easier for customers to find the items they are interested in buying. In turn, this can help increase sales.

You can easily improve user experience by enabling the category search feature using the SearchWP plugin. This creates an interactive form where users can filter results using the different categories on your site.

Category select drop down example

For more details, please see our tutorial on how to search by category in WordPress.

We hope this article helped you learn how to easily add fuzzy search to your WordPress website. You may also want to see our tutorial on how to add multilingual search in WordPress and our list of the most common WordPress errors and how to fix them.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Add Fuzzy Search in WordPress to Improve Results first appeared on WPBeginner.

Redefining the Boundaries of People, Process, and Platforms

Day two of Dynatrace Perform began with a great discussion between Kelsey Hightower, Distinguished Developer Advocate at Google Cloud Platform and Andi Grabner, DevOps Evangelist at Dynatrace. The theme of their discussion was redefining the boundaries of people, processes and platforms. 

Kelsey began the discussion by explaining that his career took off when he began focusing on the fundaments. When he sees something new, he takes a step back and thinks about the first time humans were involved in something like this.