Where Does Middleware Stand in Web Development?

Before we go ahead with the topic, the readers must have some prior knowledge about web development and Middleware. As observed by its name, Web development is a field of computer science. The developers are responsible for developing websites, whether they are for the internet, intranet, single-page website, blog sites, or complete social media platforms. Middleware acts as a glow-in as it provides the path between the front end and back end of a computer or android based application. The main focus of Middleware is to provide those services which are out of reach from the operating system. This can be demonstrated from a simple example that Middleware is such an architect that is not available on windows or an android based devices. Still, the developer needs that specific part to complete their development, so Middleware comes into play and provides something to them. It acts as an unsung hero in web development. 

The Relationship Between Middleware and Web Development

In web development, Middleware lies between the applications and the operating system. As to the previous discussion, it becomes very obvious that the role of Middleware is very important in web development. While it only acts as a hidden layer, which means the user and even the developer can't see it, if we remove this hidden layer, the user will not be able to run the application. The developer will be unable to develop something like that. Middleware provides communication between the inputs and outputs while the developer can work on developing the website. For a better understanding, below is a figure which can help to improve the concept.

User Premissions

Hello
I create project based on c# , and i make roles like admin and users , so that i want to give special premission to users to perfom tasks .

if anyone know how i can make or write this code , please help me .

and in advance THANKYOU.

The What and Why of NLP Search Analytics and How It Can Help Your Business

If your business is considering an advanced analytics solution, your IT and management team has probably already done some research and concluded that the concept of augmented analytics designed to support business users is the right way to go. However, to democratize data, improve data literacy, and transition business users to the Citizen Data Scientist role, the business must select the right solution and plan for success. 

'NLP search analytics  technology improves productivity, user adoption, business results and competitive positioning in the market.'

What’s That (Dev) Tool?

Have you ever looked to see what other tools were available to you within the DevTools toolbox? You’re probably using the same few panels over and over again — I know I am!

It turns out there are more than thirty (30!) individual panels in Chrome DevTools (as well as other Chromium-based browsers, such as Edge). Safari and Firefox have fewer panels but still probably more than you use on any given day.

When I realized this, it gave me an idea for a silly game where you’d try to name as many panels as you could in under one minute. Play it here and try your luck (no cheating, OK?): What’s That Tool?

This game is silly, of course. As a web developer, remembering the exact names of each and every tool in DevTools isn’t important. It’s more important to know how to use these tools when needed.

But the game does prove a point: there are many more tools than what people use or even know about! The whole goal of this game is — by the time the minute is gone and the full list is displayed — to realize, “oh wow, that’s a lot of tools I had no idea even existed.”

So, why are there so many? Let’s face it, DevTools is crammed with buttons, tabs, and features. How did we get here, and is there a way out?

The Story Of An Explosion

In the early 2000s, web development was very different than it is now. Back then, most of the complexity lay in generating the right HTML code from your server. The browsers’ ability to “view source” was enough to debug the odd table colspan problems. JavaScript was only getting started on the web, and CSS was nowhere near the feature-full language it is now.

So, on top of the old alert() debugging trick, the very few tools we used for front-end code debugging were very specialized; they only did one thing. Venkman only did JavaScript debugging, Aardvark was focused on inspecting elements, and Console2 displayed nice JavaScript log messages.

Joe Hewitt) brought it all together under one tool called Firebug which was a Firefox extension. It was an absolute revolution for web developers throughout the world! Around 2010, Firebug was probably the most used front-end debugging tool, and Firefox was a dominant browser. Crazy! Right?

Even if you have never used Firebug and started your web development journey in more recent times, I’m willing to bet this user interface feels familiar.

Though the DevTools we use now aren’t very different from what Firebug used to look like, it felt like we had fewer things to worry about back then and, therefore, fewer tools to help them with.

As the screenshot above shows, there weren’t many tools at all:

  • Console to view logs and execute JavaScript,
  • HTML tab to view and edit the page’s DOM and the applied CSS styles,
  • JavaScript debugger,
  • Network tab to check the downloaded resources and HTTP requests.

Fast forward to 15 years in the future, to now. The user interface of the browser tools we use hasn’t changed much, but the sheer number of panels skyrocketed! Here’s a quick and incomplete (and very approximative) history of when new panels got introduced in Chrome DevTools:

Year Panels
2008 Console, Elements, Sources, Network, JavaScript profiler
2010 Performance (called Timeline at the time)
2013 Rendering, Layers
2014 CSS Overview, Network Conditions
2015 Security, Memory
2016 Animations
2017 Coverage, Lighthouse (called Audits at the time), Performance Monitor, Network Request Blocking
2018 Changes, Accessibility
2020 Media, WebAuthn, WebAudio, Issues
2021 Memory Inspector, Recorder
2022 Performance Insights

There are many reasons why the number of new panels keeps growing. Some of them are good, while others are more questionable:

  • The number of features and APIs available to the Web platform is constantly and quickly increasing. Now, there are many more things a web developer can do on the web than 15 years ago. Some of those things can’t easily be debugged with the 4 or 5 tools we had back then, thus it required new panels in DevTools.
  • Our discipline is way more developed than it used to be. Front-end web development was maybe regarded as a little less interesting or important 15 years ago. It has now proven itself as a much deeper field of computer engineering that requires knowledge of not only programming but also performance optimization, accessibility, user experience, progressive enhancements, and more.
    These things tend to sometimes require specialized tools too.
  • People who write the code for the browsers and DevTools also need tools themselves, and sometimes they end up as new panels. The Protocol Monitor panel in Chromium is a great example of this.
  • Deleting things is really hard! You’re bound to break people’s workflows if you do it. So, things tend to accumulate over time. Chrome, for example, has three tools to do performance optimizations: Performance, Performance Insights, and JavaScript profiler.
  • Finally, there seems to be a general tendency to add new things rather than improve what’s already in place. I get it; it’s more exciting to most people to build new things rather than fix bugs. But it tends to make the software more complicated over a long period of time. And this has most probably been at play in DevTools, too.

In any case, we’re here now with probably what’s one of the most advanced tooling suites any application platform could dream of. But it’s also one of the most complex that no one uses to its full potential.

Is This A Problem?

Yes! Put simply, DevTools is a very complicated product, and its user interface can be scary.

Where other products have five main user scenarios, DevTools has dozens, if not hundreds. Do you need to simulate a mobile screen? Detect color contrast? Convert between font units? See JSON responses? DevTools can do it all! And these are just a few random examples.

So, with that many options and features, it isn’t a surprise that the user interface is complex so much that new users can feel very overwhelmed in their first-run experience. But even experienced users don’t necessarily know what’s available outside of the same few panels they’re used to.

This is starting to become a serious usability problem, in my opinion, one that may sometimes discourage new people in their learning journey. People coming to DevTools today are likely to be used to newer development products that are much easier to use. The digital tool space is undergoing a big change in this direction, and the browser DevTools haven’t started moving yet.

This isn’t a simple problem to solve either. As I said before, there are some really good reasons why we need a lot of specialized tooling. So, the complexity is needed, but I believe it should be opt-in rather than opt-out!

Indeed, the DevTools learning curve is getting very steep because so much information is presented to users right from the start, and people have to learn to ignore the parts they don’t know about or think they don’t need.

Why Don’t We Just Clean It All Up?

Well, it’s complicated. There are many user scenarios built in DevTools, and there are probably as many workflows as there are people using DevTools out there. Even the most rarely used tools are here for a reason, and the few people who use them may depend on them.

In my experience working on DevTools, removing old/un-maintained/rarely used panels for the sake of making the codebase easier to work with always proved to be a bad idea, especially when done without enough customer research.

In fact, while I worked on Firefox, we tried removing the Fonts panel at some point in Firefox DevTools, and the response was pretty instant and strong — so much that we put it back in! We lacked the necessary customer understanding of how this tool was being used and what unique scenarios it supported.

In 2016, the 3D view panel had to be removed because it wasn’t supported anymore by the new (back then) Firefox architecture. To this day, more than six years later, people still complain that it’s gone (note that you can still use it in Edge)!

As a final example, the Chrome team removed the Properties sidebar pane in 2020 but later added it again after seeing how much people needed it.

Usage numbers alone aren’t a good measure of a tool’s worth. Some tools may be used by a few people only, but they may depend on them to do their jobs. Proper user research and understanding of the various user roles and scenarios (and DevTools has a lot of them!) are needed to be able to simplify the product.

A Way Out?

I want to propose two directions that I think have a lot of potential when it comes to improving the situation with DevTools:

  1. simplifying the DevTools core and opening it up to more powerful extensions, so that users make their own tools;
  2. being bold and taking risks with a radically user-friendly user interface.

A Powerful But Simple Core, Boosted With Extensions

Visual Studio Code is such an amazing product! Many people use it and not only web developers. It’s built on a very strong core that can be extended tremendously.

This way, the people who work on VS Code don’t have to worry about all of the features that people might need. VS Code is a bit like DevTools in the sense that no two people have the same needs and workflows, and there are hundreds of ways to use the product.

So, the team’s job is to build a solid foundation that allows basic editing and top that up with an extension API that lets other people dig deep into the platform and add extra features.

There are many advantages to this, but one that is of particular interest to me here is that complexity is opt-in. When you install VS Code the first time, it’s not overwhelming. It’s a text editor, and you can use it to edit text right off the bat. But if your project has special needs, like checking code quality or doing some custom syntax highlighting, then you can install all the fancy extensions you want and get the extra functionality you need.

The VS Code extension API goes really deep into how much you can customize the editor, and I believe this is largely responsible for its success.

DevTools, however, is built differently. You can also install extensions in the browser to add new panels to DevTools, but there aren’t very many useful extensions available outside of the major framework ones (React, for example). The teams who work on DevTools are the ones who pretty much do all the tools that a web developer might need.

By using the browser extensions API, creating a new panel in DevTools isn’t too hard, but the API isn’t as advanced as in VS Code. In particular, there is no way to extend the existing tools to augment their functionality. This is a serious limitation that I think is responsible for the low number of useful extensions we have at our disposal.

As an example, the amazing Motions DevTools extension allows you to view and edit animations on the web. But it’s limited to its own panel container, and it can’t integrate with the Elements panel right next to it, which would have been useful to simplify user workflows and re-use existing components, such as the color picker.

Although they have now gone back to a more traditional tabbed navigation which seems to work better with developers, I appreciate this early attempt to make a more user-friendly interface that’s also more consistent with what people knew at the time.

This also goes to show that very special care needs to be taken to bring developers along a journey of user interface change in DevTools.

This brings me to the team working on the Edge DevTools now (which, full disclosure, I am part of). I believe this is currently the only team doing something in this area.

Our current experiment is called Focus Mode, and it is effectively the first attempt at redesigning the entire DevTools product UI.

Focus Mode is available to users of DevTools on the Canary and Dev pre-release channels of Microsoft Edge by enabling the “Focus Mode” experiment from the DevTools Settings. Most users of these channels should in fact already have it on, as our team is gradually rolling out the feature and listening to user feedback in order to ensure this is not disruptive to existing workflows and a welcome change.

Based on this feedback, we will continue rolling out Focus Mode to users of the Beta channel and eventually to the normal release version of Edge.

Now, it might not seem like a big change at first, but this is only a first step in an iterative approach to creating a more approachable user interface. Again, changing things in this product is complicated, so our team is taking things slow.

But if you look closely, there are a few major changes to the UI that try to make things less cluttered and more streamlined.

The most visible changes are located in the top toolbar. Here is an animation showing a comparison of what the toolbar looks like with and without Focus Mode:

(Large preview)
  • The list of warnings, errors, and infos is now gone from the toolbar, and instead, it appears as colored badges on the Console and Issues panel tabs, removing some clutter.
  • The Settings, Feedback, and main menu icons have been grouped under just one menu button in the top-right corner, further reducing clutter.
  • Tabs now have icons, so they’re easier to see and tell apart.

Here are a few more things coming with Focus Mode.

The + button in the toolbar shows all available tools with their icons making it easier to re-open a tool you’ve closed before and maybe more inviting to try tools you haven’t tried yet.

It’s also possible to switch the tabs to a vertical orientation. Being positioned to the left and hiding the labels further reduces the noise in the central part of the window, letting you focus on the code. Additionally, it matches UI patterns that people are growing used to in other tools (for example, the Activity bar in VS Code or vertical tabs in Edge).

And finally, the drawer in DevTools was re-designed. The drawer is this area of the user interface that appears at the bottom when you press the Esc key on the keyboard, and that normally contains the Console.

It was introduced as a way to have access to the Console at the same time as other tools, and all browser DevTools have this now. But over the years, the Chrome team added more and more things to the drawer, in particular secondary tools that were useful but not quite popular enough for a spot on the main tab bar (e.g., the Rendering panel was added there).

I think it’s come to a point where it’s hard to know for sure which tool is available in which area. Edge — with Focus Mode — is taking a different approach. The drawer is now called Quick View, which is always visible at the bottom of the toolbox (so you don’t even have to know to press Escape) and can be used to display any tool you want.

I’m very excited about where Focus Mode is going, and I can’t wait for our team to start exploring what’s next in this area.

If you want to try Focus Mode out, make sure you have a copy of Edge (you can also get a pre-release version if you prefer to have the latest changes), open DevTools, and if you don’t already have it ON, press F1, then go to Experiments and check the Focus Mode box.

Let the team know what you think about it — and if you have other ideas — by filing new issues on our DevTools GitHub repository.

I believe that a user-friendly DevTools that is both more welcoming to learners and inclusive of everyone’s needs is possible, and together, we can make it happen. As a community, let’s demand more from our friendly DevTools teams!

There are full-time dedicated DevTools product engineering teams working for each browser vendor. They keep adding new features and fixing bugs, but they can only do a good job with our collective help.

Tell them if the UI doesn’t work for you. Let them know about your most common workflows. How many clicks did you need? Do you often forget where things are? Do you wish things were named differently? Input like this can lead to changes that make a big difference for millions of users.

As mentioned, we’re actively seeking feedback on this experiment and other DevTools features. You can leave comments on our GitHub repository. Other browsers also like to hear feedback on their DevTools which you can do at the Mozilla bugzilla tracker for Firefox, on the Chromium bug tracker for Chrome, and on the WebKit bugzilla tracker for Safari.

Thanks for reading! And see you next time.

How to Fix Missing Appearance Menu in WordPress Admin

Do you want to fix the missing Appearance Menu option in the WordPress admin area?

Some WordPress themes may come with support for the full-site editing experience, which changes the options under the Appearance Menu in WordPress admin area.

In this article, we’ll show you how to easily fix the missing appearance menu in WordPress admin area.

Fixing the missing appearance menu in WordPress

What Happened to ‘Appearance Menu’ in WordPress?

WordPress is gradually releasing the full site editing experience which uses blocks to edit all aspects of a WordPress website.

Full site editing allows you to use blocks for theme editing and customization. You can add and edit any part of a theme using blocks, including widgets and menus.

This makes certain items under the Appearance menu redundant, so they’re hidden by default.

Missing items from Appearance menu

This only happens with themes offering the support for the full-site editing. These themes are also called block based themes.

If you are using one such theme, or a default WordPress theme like Twenty Twenty-Two, then your Appearance menu would look different.

How to Fix Missing Menus in WordPress Admin

There are two ways to fix the missing appearance menu in WordPress, so you can create and edit your menus again.

We’ll go through them one by one and you can choose the one that suits you.

1. Use the Navigation Block in Full Site Editor

If you are using a block based WordPress theme with full site editing support, then you cannot access the classic navigation menus screen.

Even if you manually entered the URL for the navigation menu page (e.g. https://example.com/wp-admin/nav-menus.php), then you’ll see the following error message.

No support for menus

When using a full site editing theme, you can add, create, and edit navigation menus using the Navigation block under the site editor.

Simply launch the full site editor by visiting Appearance » Editor page.

This will bring you to the site editor interface. You can insert a new Navigation block by clicking on the (+) add block button.

Navigation block

If you already have a navigation block added by your theme, then you can click to select it.

Then simply choose a menu or create a new one.

Create and manage menus in navigation block

You can even select previous menus that you have created for your website under the Classic Menus section.

If you are starting with a new empty menu, then you can add items to your navigation menu. You can add links like you normally do in the block editor when writing posts and pages.

Adding menu items

Once you are finished, don’t forget to click on the Update button to save your menu and apply it across your WordPress blog.

For more details, you can see our step-by-step guide on how to add a navigation menu in WordPress.

2. Fix Appearance Menu by Switching Theme

Full site editing feature is still in the early phases even in WordPress 6.0.

This means that it may behave unexpectedly with different WordPress themes. It may also feel a bit clunky and unfamiliar to many users.

If you want to keep using the classic navigation menus, then you’ll need to switch your WordPress theme to one that doesn’t include the full site editing feature.

Themes that don't support full site editing

Currently many popular WordPress themes don’t support full site editing. However, there is always a chance that they may start using it as it improves over time.

Alternately, you can create a custom WordPress theme of your own without writing any code.

Fix Other Missing Appearance Menus in WordPress

Navigation menus are not the only items disappearing from the Appearance menu. Here are is how you can fix other missing items under the Appearance Menu.

1. Customize

The Customize menu under Appearance used to launch the Theme Customizer. You can still access a limited version of it by visiting the customize.php URL directly:

https://example.com/wp-admin/customize.php

Simply enter that URL into your browser and change “example.com” to your own site’s domain name.

You’ll see a notification that your theme supports full site editing. Below that, you’ll find a few basic customization options.

Minimum options in customize page

2. Widgets

If your WordPress theme doesn’t have any sidebars or widget areas defined, then you will not see the Widgets menu under Appearance.

Manually accessing the widgets page (e.g. https://example.com/wp-admin/widgets.php) will show you an error message that your theme is not widget-aware.

Your theme is not widget-aware

On the other hand, if your theme does have widget areas, then you will see a widgets menu, but it will still use the block based widget editor.

Block based widgets

You can switch to the legacy widgets screen by using the Classic Widgets plugin.

3. Theme File Editor

WordPress came with a basic file editor that allowed you to edit theme files directly from the WordPress admin area.

We don’t recommend using that editor, but it often came in handy for many beginners when they needed to quickly add a code snippet to their theme’s functions.php file.

The good news is that it is still available, but it is moved under the Tools menu if you are using a full site editing theme.

Theme file editor

We hope this article helped you fix the missing Appearance Menus in the WordPress admin area. You may also want to take a look at how to add a search bar to your menu, or our expert pick of the best WordPress plugins for small business.

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 Fix Missing Appearance Menu in WordPress Admin first appeared on WPBeginner.

Barcode Printing

I am using the code below to populate the DataGridView. I need help in that the Barcode Image is not being generated according to the txtLab.text amd the alphamumeric value. Please see attached image. Thanks

Private Sub btnAdd_Click(sender As System.Object, e As System.EventArgs) Handles btnAdd.Click
        Dim alphaNumeric As String = String.Empty
        Dim number As String = txtSubNo.Text
        Dim alphabet As String = txtAlpha.Text
        Dim loopValue As String = txtNo.Text


        For index As Integer = 0 To loopValue - 1
            alphaNumeric = number.ToString & alphabet
            C1BarCode.Text = txtLabNo.Text & "-" & alphaNumeric.ToString
            DataGridView1.Rows.Add(txtLabNo.Text, "" & alphaNumeric, txtIndicator.Text, C1BarCode.Image)

            If txtAlpha.Text = "" Then
                Exit Sub
            Else
                If Asc(alphabet) + 1 <= 90 Then
                    alphabet = Chr(Asc(alphabet) + 1)
                Else
                    alphabet = "A"
                End If
            End If
        Next
    End Sub

Flutter Development job search

Proficient with Flutter
Experience with Flutter/Native hybrid development
Experience in the development of multiple Flutter projects, including the launch of Flutter projects
Email: tianxzhang@163.coma

Visual Studio Chart display

Hello. I am creating a column chart in Visual Studio 2022 writing in Visual Basic.

The Sql table has a percentage field that is the YValueMember on the chart, ie; 1.2, 2.7, 8.9 ect..

The problem is the YValueMember display only displays with a decimal point on one of the rows, the other is rounded with no decimal.

Any help please, Shane.

How to Streamline the Customer Experience with Monads in Kotlin

 At my company, we see a lot of SDKs and Swagger-generated clients that could throw exceptions at any time. This could be a fault in our logic, or it could be a fault with some 3rd party SDKs that have no rhyme or reason to how their exception handling works. But either way, when our customers want to fetch a Git commit history for a service, they do not want to be greeted with an error message.

We've seen GitHub go down during a customer demo and 3rd party integrations throwing other unexpected exceptions. Overall, it was a very discouraging experience for our customers that we had no control over.

How to Use Gmail SMTP Server for Sending Email

This step-by-step tutorial describes how you can connect to the Gmail SMTP server for sending emails from a Node.js web application that could be deployed on Google Cloud Functions, AWS Lambda, Cloud Run or running on your local machine.

And unlike most other Node SMTP tutorials that use the username and password combination, this approach uses OAuth and doesn’t require you to turn on less secured apps access in your Google account.

Create Gmail OAuth Credentials

Create a new Google Cloud Project and enable the Gmail API as described in a previous tutorial.

Gmail SMTP OAuth Application

In the APIs & Services section, click on Credentials and click on Create credentials > OAuth Client Id to create a new client ID that will be used to identify your application to Google’s OAuth servers.

Set the application type as Web Application and put the following URL in the Authorized Redirect URI.

https://developers.google.com/oauthplayground

Click the Create button and you’ll be provided the OAuth Client ID and Client Secret values that you’ll need in the next step.

Create Gmail Refresh Token

Gmail Access Refresh Token

Next, we’ll generate a refresh token using the Google Developer OAuth 2.0 playground. The access tokens are valid for an hour but the refresh tokens stay valid forever (unless manually revoked) and can be used to generate a fresh access token.

Go to google.com/oauthplayground, click the Gear Icon and check the option that says Use your own OAuth credentials. Copy-paste the Client ID and Client Secret that you have generated in the previous step.

Inside the Select & Authorize APIs section, enter the scope https://mail.google.com and click the Authorize APIs button to generate the authorization code.

Click the Exchange authorization code for tokens to generate the refresh token that we’ll require in the next step.

Refresh Token

Prepare the Node.js Application

Create a new folder and install the googleapis and nodemailer packages.

mkdir gmail-smtp-sender
cd gmail-smtp-sender
npm init --y
npm install dotenv googleapis nodemailer --save
touch index.js

Create a new .env file in the root folder and add the credentials in the file. Add the file to .gitignore so it is not added to the repository.

// Replace these with your own credentials
CLIENT_ID = 'r2l82l8.apps.googleusercontent.com'
CLIENT_SECRET = 'GOCSPX-5n00Mqm5Jc45p'
REFRESH_TOKEN = '1//04yt8hEatvIr3uyk-ZJSYIhmYqMk4C4EqfPK24w'
REDIRECT_URL = 'https://developers.google.com/oauthplayground'

Open the index.js file and add the following code. You may need to replace the sender’s email with the email address of your own Gmail account that you have authorized to send email.

The Gmail SMTP server name is smtp.gmail.com and the Gmail SMTP port is 465. You can send up to 100 emails per day when the messages sent via SMTP.

const { google } = require('googleapis');
const nodemailer = require('nodemailer');
require('dotenv').config();

const sendEmail = async () => {
  const oauth2Client = new google.auth.OAuth2(
    process.env.CLIENT_ID,
    process.env.CLIENT_SECRET,
    process.env.REDIRECT_URL
  );
  oauth2Client.setCredentials({ refresh_token: process.env.REFRESH_TOKEN });

  const accessToken = await oauth2Client.getAccessToken();
  const myEmail = 'amit@labnol.org';

  const smtpTransport = nodemailer.createTransport({
    service: 'gmail',
    host: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
      type: 'OAuth2',
      user: myEmail,
      clientId: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      refreshToken: process.env.REFRESH_TOKEN,
      accessToken,
    },
  });

  const mailOptions = {
    from: 'Sender Name <amit@labnol.org>',
    to: 'Receiver Name <hello@example.com>',
    subject: 'Test email 🚀',
    text: 'This is a test email from Node.js 🎉',
    html: 'This is a <b>test email</b> from Node.js 🎉',
  };

  try {
    const response = await smtpTransport.sendMail(mailOptions);
    console.log(`Email sent!`, response);
  } catch (f) {
    console.error(f.message);
  } finally {
    smtpTransport.close();
  }
};

sendEmail().then(() => console.log('Done!'));

Here’s a test email sent by the application. If the email receiver client doesn’t support HTML mail, the plain text version is rendered.

Gmail Sent email

Correct Gmail OAuth Scope

While you can send emails from Gmail using the https://www.googleapis.com/auth/gmail.send scope, you would need to use the restricted https://mail.google.com/ scope for Gmail SMTP. If your OAuth client uses a different scope when requesting permissions for an user, the application will return the 535-5.7.8 Username and Password not accepted error.

Develop a Daily Reporting System for Chaos Mesh To Improve System Resilience

Chaos Mesh is a cloud-native chaos engineering platform that orchestrates chaos experiments on Kubernetes environments. It allows you to test the resilience of your system by simulating problems such as network faults, file system faults, and Pod faults. After each chaos experiment, you can review the testing results by checking the logs.

But this approach is neither direct nor efficient. Therefore, I decided to develop a daily reporting system that would automatically analyze logs and generate reports. This way, it’s easy to examine the logs and identify the issues. 

Websites Tags appearing in search result – Good or Bad?

Hi, I came across a situation with one of my website that is built with wordpress. I recently checked that many tags in the website are in ranking. Many tags have been ranked more and high than then posts and pages. While it is a good thing but I was told by some fellow seo professional that having more tags and not the posts in ranking, is not ideal for a website.

Do you also believe so? If yes then why? Please share your insights on this.