WordPress to Drop Support for IE11 in Upcoming 5.8 or 5.9 Release

In early March, WordPress contributors began discussing the possibility of dropping support for IE11 in the near future after usage fell below ~1%. This week, the discussion’s facilitator, Héctor Prieto, confirmed the majority of participants are in agreement to move forward and set a timeline for discontinuing support. Contributors are now considering either the 5.8. or 5.9 release.

“The argument for dropping in 5.8 is to realize the change and improvement quicker, while others are inclined to wait until 5.9 to provide a longer window between the official announcement and the effective date,” Prieto said. The final call is up the the 5.8 release team, which has not yet been identified.

The release scope and schedule hinges on whether or not the April go/no-go conditions are met for including full-site editing in the merge for 5.8 (July 2021) or 5.9 (December 2021). Teams for 5.8 will be finalized in April/May, and they will decide how to proceed for discontinuing IE11.

Jb Audras suggested that if 5.8 release leads elect to drop support for IE11, he could work with other contributors to update the BrowseHappy notice in one of the upcoming minor versions.

“Even if the BrowseHappy notice can be updated independently from Core releases, I think it’s better to update alongside a release, to give better visibility to this change,” Audras said.

Microsoft 365 apps and services will no longer support IE11 beginning August 17, 2021. Drupal recently went through a similar process of deciding to drop IE11 support with the upcoming Drupal 10 release, anticipated in June 2022. Those who have to use IE11 retain the option to remain on Drupal 9’s LTS release until the end of 2023. Participants in the discussion cited many of the same considerations now facing WordPress contributors.

Matt Mullenweg commented on the preliminary discussion to suggest giving IE11 users a path forward if they land on wp-admin using an unsupported browser:

Supportive of dropping support, and if someone visits on an explicitly dropped browser like IE11 showing them a friendly message saying why wp-admin is not accessible and next steps they can take.

The technical implementation is being discussed in the ticket Riad Benguella created to discourage IE11 usage and WordPress’ projects and teams will begin examining the practical implications of dropping support.

BDD Tests on Github Actions With Cucumber Run in Parallel Jobs

Cucumber employs Behavior-Driven Development (BDD) for testing your application. This type of test is often time-consuming when running in the browser. You will learn how to run Cucumber tests on Github Actions using parallel jobs to execute the test suite much faster.

Github Actions Matrix Strategy

Augmented Reality Demo With Apache Kafka and Machine Learning

Augmented Reality (AR) and Virtual Reality (VR) get traction across industries far beyond gaming. Retail, manufacturing, transportation, healthcare, and other verticals leverage it more and more. This blog post explores a retail demo that integrates a cutting-edge augmented reality mobile shopping experience with the backend systems via the event streaming platform Apache Kafka.

Augmented Reality (AR) and Virtual Reality (VR)

Augmented reality (AR) is an interactive experience of a real-world environment where the objects in the real world are enhanced by computer-generated perceptual information. AR is a system that fulfills three basic features: a combination of real and virtual worlds, real-time interaction, and accurate 3D registration of virtual and real objects.

The Problem With Annotation Processors

For reasons unknown, broaching the subject of annotation processors seems to elicit some primordial fear in developers. People tend to associate annotation processing with borderline witchcraft and sorcery performable only by the most adept of basement wizards. It doesn’t have to be that way. Annotation processing doesn’t have to be the big scary monster hiding under the bed.

Monster Under the Bed
Image taken from https://sourcesofinsight.com/monsters-under-the-bed/


Singleton Design Pattern

Design patterns are important as they help us solve general problems with software that people face during development. These patterns help us make code maintainable, extensible, and loosely coupled. One such design pattern is the Singleton Design pattern.

In simple terms, Singleton is a class that allows us only to create a single instance of it. It makes it impossible for us to instantiate the class for the second time.

How to Migrate Data From SQL Server to PostgreSQL

Migrating data between different types of databases is not a trivial task. In this article, we will compare several ways of converting from SQL Server to PostgreSQL.

Microsoft SQL Server is a great database engine, but it has drawbacks in some cases.

How to Convert PDF to Text in Java

Without the ability to copy, paste, or edit within a PDF document, it can be a frustrating task to manually transcribe a PDF to text. Fortunately for us, we have Optical Character Recognition (OCR) technology to help us out. We have discussed this a bit in previous articles, but to clarify, optical character recognition or optical character reader is the electronic or mechanical conversion of images of typed, handwritten, or printed text into machine-encoded text. 

OCR is most popular as a form of data entry for printed paper data records, but it is also frequently used to digitize printed texts so that they can be edited, stored compactly, or displayed online. This technology has been refined and trained to recognize patterns, and now with the additional assistance of AI, can provide a high degree of accuracy with little effort. 

How to describe element’s natural sizing behavior

PPK:

When introducing width and height I explain that by default width takes as much horizontal space as it can, while height takes as little vertical space as possible. This leads to a discussion of these two opposed models that I excerpt below.

My question is: which names do I give to these models?

The three options:

  • inside-out and outside-in
  • context-based and content-based
  • extrinsic and intrinsic size

There is more context in the post.

I definitely don’t like inside-out and outside-in — they make my head spin. I think I’m gonna vote for extrinsic and intrinsic size. I hear those terms thrown around a lot more lately and the fact that they match the specs is something I like. At the same time, I do feel like context-based and content-based are maybe a smidge more clear, but since they are already abstracted and made up, might as well go with the abstracted and made up term that already has legs.


The post How to describe element’s natural sizing behavior appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Editing grub to allow booting Windows and Linux

I recently installed Linux on my computer to enjoy a more versatile Ruby on Rails programming environment. The computer already had Windows 7 installed. However, I lost the booting path for windows after the installation. Currently, I cannot boot into Windows. Does anyone know how to edit Grub to allow me to choose either of the operating systems at start up?

10up Creates Classic Post Migration Route With Its Convert to Blocks WordPress Plugin

Yesterday, 10up officially announced Convert to Blocks, a WordPress plugin for transforming classic posts into blocks. The goal is to provide users with a safe migration route for old content while removing the burdens of other options in the space.

I briefly mentioned this plugin in an article covering bulk conversion in the Ask the Bartender series. However, I could not recommend it to most users because it was hosted on GitHub, a site that is geared toward developers. With it now officially in the WordPress plugin directory, it is a much more user-friendly option.

Most conversion options either convert posts in bulk or through a manual process, such as the user clicking a button. Bulk converters can be problematic at a large scale simply because there is no reliable way for users to check the success of each post’s conversion to blocks. Of course, users could check these posts individually, but that is impractical when dealing with more than a few dozen posts.

Bulk converters are also done so in conjunction with a database backup. It is sensible to do this when altering large amounts of content at once just to be on the safe side.

“We saw a space for a third way — a solution that eliminates editors stumbling upon Classic blocks and needing to know how to convert them, while also holding back on content transformation until content needs to be modified — at which point it is also, typically, checked again on the front end of the site,” wrote Darshan Sawardekar, a 10up lead web engineer, in the announcement.

“That’s where the idea for Convert to Blocks came into play. It began as a creative engineering solution to mitigate risk and improve content mapping. Its success inspired the development and public release of the plugin to help others facilitate safe content migrations to the WordPress block editor.”

10up’s solution is a bit of a middle ground. It only converts a post when a user enters the editing screen for it. From that point, the user can check whether the conversion looks correct, fix any problems if they arise, and save the post.

Converted classic gallery post to blocks in the WordPress editor.
Converted gallery post.

Essentially, it works the same as the default convert-to-blocks options in WordPress without the manual step.

For many users, this is the ideal solution. Because classic content works the same as it always has on the front end, it is unnecessary to convert it unless the need to edit the post also arises.

Convert to Blocks also adds a new column to the manage posts screen named “Editor.” It lists whether the post content was created with either the block or classic editor, providing users with an at-a-glance look without checking posts individually.

Manage posts screen with "Editor" column to distinguish between block and classic posts.
Additional “Editor” column on the manage posts screen.

Like other plugins, Convert to Blocks uses the core transformation feature, which is an imperfect solution. Depending on the content of the post, the conversion will sometimes throw an error. That is why bulk solutions are often problematic. With this plugin, users will know immediately upon editing a post if there is an issue.

Given the plugins available today for converting classic posts to blocks, this would be my top choice. It focuses on transforming to blocks where it matters — during the editing process — and removes some manual work for the user.

Ebbs and Flows of DevOps Debugging

Introduction

Ever since Patrick Debois coined the word DevOps back in 2009, teams and organizations have been clamoring to adopt relevant practices, tools, and a sense of culture in a bid to increase velocity while maintaining stability. However, this race to incorporate “DevOps” in software development practices has resulted in a perversion of the concept. This does not mean that there are no successful practices of teams adopting DevOps practices, but the word overall has become a buzzword. As per the DORA 2019 State of DevOps report, team managers are more likely to proclaim that their teams are practicing DevOps compared to the actual frontline engineers and developers.

Therefore, this piece aims to realign the meaning of DevOps as well as highlight the need for considering debugging as a core element of the practices and cultures that enable DevOps for teams. The argument for debugging as a core component in the DevOps pipeline is a result of the evident need for a shift-left in the way we build and release software, empowering developers to adhere to the intrinsic principle of you build it you run it.

The Complete Guide to Scrum Project Management

Everyone in the project management space has heard of Scrum. But even though this project management methodology is so popular, there’s a lot of confusion surrounding the term.

If you’re considering implementing Scrum with your team and projects, you need to have a firm grasp of how it works.

This guide will walk you through everything you need to know about using the Scrum methodology for a wide range of projects.

What is Scrum Project Management?

Scrum is a project management framework within the agile methodology. It’s designed to help teams improve the way they work together through autonomy, organization, and self-reflection.

The scrum management methodology is built for complex projects, like software development.

This framework is intended for smaller teams led by a “Scrum master.” All of the work is completed in short cycles, referred to as “sprints,” and the team meets quickly on a daily basis to identify tasks and roadblocks.

3 Tools to Improve Scrum Project Management

Scrum project management won’t be useful if you’re not leveraging technology to your advantage. These are the three tools that every Scrum master should consider using to ensure success for their teams:

#1 — ClickUp

ClickUp is trusted by 200,000+ teams across the globe. This includes big names like Uber, Google, and Booking.com. What makes this software unique compared to other tools on the market today is its robust functionality. It’s more than just a platform for managing your Scrum projects; ClickUp is an all-in-one solution for productive work. The tool is designed to replace other apps for things like team chat, goal planning, task lists, and more.

In terms of Scrum projects, ClickUp has a dedicated feature set for managing and planning new sprints. It’s easy for anyone to assign dates, designate priorities, and automatically move unfinished work into the next sprint. Scrum masters have full control over the entire team’s workload. It’s easy to sort tasks and subtasks by role and view everyone’s progress at-a-glance. The tool comes with burndown charts, burnup charts, cumulative flow workload reports, velocity metrics, and more. The basic version of ClickUp is free for unlimited users. But I strongly recommend the premium version. At just $5 per user per month, it’s tough to beat that value. Learn more.

#2 — Jira Software

Scrum is popular among software development teams, and Jira by Atlassian is built specifically for this use case. If you’re managing an agile development team using the Scrum framework, Jira Software should definitely be on your radar. The tool has everything your team needs to plan, track, and release high-quality software. You can use it to plan sprints, create user stories, and assign tasks to everyone on your team. The software makes it really easy for managers to prioritize tasks and collaborate with total visibility. Everyone can view the status of tasks, sprints, and projects with real-time visual data charts.

I like Jira because it comes with pre-built workflows, which can save you a ton of time when you’re first getting started with Scrum. With that in mind, you can use this tool to create a completely customized workflow to match the way your Scrum team works. Jira’s functionality can be extended with 3,000+ apps in the Atlassian marketplace. The software is trusted by 65,000+ businesses worldwide, including technology leaders like Spotify, Airbnb, Square, eBay, and Cisco. Jira is free forever for teams of up to ten users. Paid plans start at just $7 per user per month, and you can try it free for seven days.

#3 — Trello

Trello is one of the most popular project management tools on the market today. That’s why 1+ million teams across a wide range of industries rely on this solution. Compared to other tools, Trello shines due to its simplicity. At its core, it’s a basic Kanban-style board for project management. But the software can easily be manipulated to handle the requirements of a Scrum team.

For example, Trello comes with sprint board templates, sprint retrospective templates, and product backlog templates as well. You can also add-on plug-ins and power-ups to bring essential Scrum functionality into your team’s workflow. Use Trello to create custom columns and color-code tasks based on priorities. If you and your team are new to Scrum, you might find other tools to be too confusing or complex. But Trello is easy to figure out, even for non-technical users. The basic version of Trello is free, and paid plans start at just $10 per user per month. Try it free for 14 days.

The Basics of Scrum Project Management

Like other project management methodologies, there are specific components of the Scrum framework that apply to all Scrum projects. This section will explain each one in greater detail.

Scrum Roles

First, you need to understand how a Scrum team is arranged. Scrum teams must be highly flexible, cross-functional, and adaptive to change. These teams are typically made of 5-11 people segmented into three clearly defined roles—product owner, Scrum master, and development team.

  • Product Owner — The product owner is ultimately in charge of the business end of the project in question. As a primary stakeholder in the project, it’s the product owner’s job to clearly communicate the vision for the final product. The product owner is also responsible for establishing the product backlog requirements for the team. The backlog will contain a list of features with a brief description of the functionality required for each one. Product owners need to delegate tasks and responsibilities to the rest of the team without worrying about micromanaging how things are done. This person will also be a resource for clarification and communication while motivating the entire team.
  • Scrum Master — The Scrum master is more of a facilitator than the product owner. They work directly with the product owner to manage the product backlog while ensuring the entire process is streamlined effectively. It’s the Scrum master’s job to take whatever steps are necessary to ensure that the team succeeds. They will ultimately identify and remove any obstacles that impede the team’s progress. The Scrum master offers guidance to the team while allowing everyone to solve problems on their own.
  • Development Team — Everyone else working on the technical aspects of a project is on the development team. They’ll be responsible for the coding, design, testing, analysis, and other processes required to reach the final goal. Development teams typically contain three to nine people. Within that team, roles will be segmented further between developers, designers, QAs, business analysts, product testers, and more. The development team is collectively responsible for the success and failures of the project.

It’s crucial for everyone to understand their role from the beginning. Leadership will be responsible for clearly defining those roles and conveying what’s expected of the team.

Scrum Artifacts

There are three main artifacts designed to prioritize deliverables and business value within the Scrum framework:

  • Product Backlog
  • Spring Backlog
  • Increments

It’s up to the product owner to prioritize the product backlog. This contains all functionalities that must be incorporated in the final deliverable. Once this has been prioritized, the entire team will understand the top requirements of a project, which ultimately eliminates guesswork and confusion.

The sprint backlog contains a prioritized list of activities that must be completed for each sprint.

Increments refer to the completed work at the end of each sprint. The increments are typically managed on Scrum boards and burndown charts. Each scrum team might have a unique way of defining a particular action item as “Done” based on the increments for each sprint.

Sprint Planning

Sprints are a core component of the agile framework and Scrum methodology. They can be defined as short time-boxed periods when a team aims to complete a predefined amount of work. This helps break down bigger projects into smaller pieces that are much more manageable.

Sprint planning starts before the actual development work begins. The team will determine what specific features can be delivered during the upcoming sprint and come up with a plan for how those deliverables will be achieved.

Team members will be assigned different tasks based on their role and the tasks’ priority level.

Daily Scrum

Daily Scrums are commonly known as “standup meetings.” That’s because these meetings are supposed to be so quick that you wouldn’t need to sit down.

In less than 15 minutes total, your entire team will give a quick update. They’ll explain what work they’ve completed in the previous day and identify what they plan to achieve in the coming day. This will be the time for anyone to raise concerns or identify problems they might be facing.

The goal of a daily Scrum is to ensure that the whole team is on the same page.

Sprint Review

Generally speaking, sprints should last no more than 2-4 weeks. At the end of each sprint, the team will meet again to review the progress made during that period.

This will also be an opportunity for the team to optimize the upcoming sprint based on feedback from the previous one.

The product owner, Scrum master, and development team will all be present during the sprint review. Everyone will compare actual deliverables against planned deliverables for the sprint. Did the team meet their intended achievements?

Some sprint reviews might involve a product demonstration for clients or stakeholders to keep them updated with the team’s progress.

Sprint Retrospective

The sprint retrospective is a bit unique compared to the sprint review. Rather than focusing on the actual deliverables and activities associated with a sprint, the team will assess the overall process and procedures to determine what went well and what needs improvement.

For example, team members can share how they were feeling during the sprint, whether positive or negative. The team will also discuss how the sprint process can be improved by eliminating unnecessary steps, adding a new procedure, or continuing with things that worked.

Sprint retrospectives end with the four L’s—liked, learned, lacked, and longed for. Everyone on the team has a chance to share their thoughts on each of these points.

3 Tricks For Scrum Project Management

Every project manager using the Scrum framework can apply these quick tips and best practices. This will make your life much easier and improve your team’s performance.

Trick #1: Use Project Management Software to Manage Sprints

The whole foundation of Scum is to take something complex and simplify it. That’s why larger projects are broken down into sprints with different tasks and deliverables along the way.

To make everyone’s job easier, the entire team should have access to the project tasks, backlog, and sprint planning at all times. The easiest way to achieve this is with software.

In addition to the tools listed earlier in this guide, check out our list of the best project management software for full reviews and alternative suggestions. Since Scrum has become such a popular framework in the world of project management, so many tools on the market today have solutions built for Scrum teams.

Teams should have virtual access to Scrum boards where they can update their progress with the entire team in real-time. This is the best way to manage projects, especially if you’re working with a remote team.

Trick #2: Set a Main Goal For Every Sprint

Sprints are more than just a two-week task list. Each sprint should all have a main goal that’s articulated in a one or two-sentence statement.

Sprint planning helps ensure that teams and stakeholders have clearly aligned objectives for the coming weeks. This process is much easier if the team knows exactly what goal they should be working towards.

Be specific. Whether it’s launching a specific feature or finalizing certain functionality within the product, each sprint should have a main endpoint.

Without a main goal for the sprint, it can be tough for teams to distinguish between one sprint and another. This defeats the purpose of Scrum and makes the project feel like a larger task as opposed to something that’s segmented into achievable steps along the way.

Trick #3: Establish Team Communication Guidelines

Lots of Scrum teams work remotely or from dispersed locations. That’s just the reality of the modern workforce.

With that said, your entire team must understand what’s expected of them from a communication standpoint. While you may not necessarily require a team to be available via Slack, Skype, or another team messaging platform at all times, you should definitely require everyone to attend the daily Scum.

Set your daily Scrum for the exact same time every day. So regardless of location or time zone, your team knows that they must be available for the 15-minute period.

Beyond the daily Scrum, updates and progress can be made directly within your project management software. So team members can see these updates at their leisure and get notified about anything directly related to their tasks.

Serverless Integration With Salesforce Using Kumologica

Salesforce is a popular CRM platform used by many enterprises. Integration of salesforce modules with different enterprise systems is very common. There are multiple ways by which salesforce objects can be integrated.

  1. SOQL query (Pulling the records)
  2. Platform Events (Pushing the events)
  3. CDC (Pushing the events)
  4. OutboundMessages (Pushing the events using webhooks)

Most of the real-time integrations with Salesforce work with PE (platform events), CDC, and OutboundMessages. There are also solutions where SOQL query works in complementary with PE, CDC, or OutboundMessages (Webhooks).

Want to Write a Hover Effect With Inline CSS? Use CSS Variables.

The other day I was working on a blog where each post has a custom color attached to it for a little dose of personality. The author gets to pick that color in the CMS when they’re writing the post. Just a super-light layer of art direction.

To make that color show up on the front end, I wrote the value right into an inline style attribute on the <article> element. My templates happened to be in Liquid, but this would look similar in other templating languages:

{% for post in posts %}
<article style="background: {{post.custom_color}}">
  <h1>{{post.title}}</h1>
  {{content}}
</article>
{% endfor %}

No problem there. But then I thought, “Wouldn’t it be nice if the custom color only showed up when when hovering over the article card?” But you can’t write hover styles in a style attribute, right?

My first idea was to leave the style attribute in place and write CSS like this:

article {
  background: lightgray !important;
}
article:hover {
  /* Doesn't work! */
  background: inherit;
}

I can override the inline style by using !important, but there’s no way to undo that on hover.

Eventually, I decided I could use a style attribute to get the color value from the CMS, but instead of applying it right away, store it as a CSS variable:

<article style="--custom_color: {{post.custom_color}}">
  <h1>{{post.title}}</h1>
  {{content}}
</article>

Then, that variable can be used to define the hover style in regular CSS:

article {
  background: lightgray;
}
article:hover {
  /* Works! */
  background: var(--custom_color);
}

Now that the color value is saved as a CSS variable, there are all kinds of other things we can do with it. For instance, we could make all links in the post appear in the custom color:

article a {
  color: var(--custom_color);
}

And because the variable is scoped to the <article> element, it won’t affect anything else on the page. We can even display multiple posts on the same page where each one renders in its own custom color.

Browser support for CSS variables is pretty deep, with the exception of Internet Explorer. Anyway, just a neat little trick that might come in handy if you find yourself working with light art direction in a CMS, as well as a reminder of just how awesome CSS variables can be.


The post Want to Write a Hover Effect With Inline CSS? Use CSS Variables. appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.