Building backlinks in 2020

This is a two part question. Firstly, what are some methods to build backlinks in late 2020 that are not through guest blogging / blog outreach? Secondly, what are some methods to encourage users to share your content on social platforms?

Read Me!

A fancy experiential essay from the team at Readymag, which is a tool for building… fancy experiential essays, about fancy experiential essays:

With all the technology addressing readability issues, it’s still design basics that distinguish a readable text from one that isn’t. Here are some simple rules we use ourselves when developing engaging texts and layouts.

I like this advice:

Always start with quality writing.

I find that it’s not only longform that inspires a fancy “art directed” post around here, but quality writing.

I can’t decide if I like that the URL changes as you scroll down the article. Seems a little better suited to hash links.

Direct Link to ArticlePermalink


The post Read Me! appeared first on CSS-Tricks.

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

WordPress Themes Directory Adds New “Delist” Status for Non-Compliant Themes

In August, following the suspension of the popular Astra theme, WordPress Meta contributors opened a ticket to add a new “delisting” status for non-compliant themes. Astra’s infraction, breaking the directory’s ban on affiliate links, put more than a million users at risk of not getting theme updates just as WordPress 5.5 was on deck for release. This week the team committed a patch for a delist status that will temporarily hide a theme from search, while still making it available directly. Alex Shiels outlined how the new status will work:

  • Delist is only available from a published state.
  • Relist will set the status back to publish.
  • Delisted themes are excluded from site search.

While a full suspension may seem like the best retributive action when theme authors violate directory guidelines, the necessity for users to be able to continue to get updates outweighs throwing the book at the author, especially for a first-time offense. A delisting policy is more restorative in that it seeks to maintain the connection that users have with the theme’s author instead of merely imposing a penalty that might ultimately have a negative impact on everyone involved.

In the past, the Themes Team has been limited on available actions for responding to violations. Ionut Neagu, CEO of ThemeIsle, had his company’s popular Zerif Lite theme suspended from the directory in 2016 for a five-month period that left 300,000+ users without maintenance and security updates. It also resulted in a 63% decline in the company’s revenue for that theme, since ThemeIsle was using WordPress.org as the primary channel for distribution.

Neagu remarked on how the new “delist” status provides a less severe transition back into the directory for popular themes:

The practice of delisting is something that’s already been done by other companies in similar situations. For instance, delisting is what Google does all the time when they find a website that doesn’t comply. Then, the website is allowed to come back and appear on the ranking pages again when the issues are fixed.

In the end, I think this is a move in the right direction and an improvement to the process of what happens with a problematic theme.

Despite the controversial decision that slashed ThemeIsle’s revenue from $120k/month to $45k/month in 2017, the company continued to support the theme, as well as new products, with WordPress.org as the main place to find them. Neagu reported that when the theme was reinstated, its revenue continued to be hard hit. It lost momentum and was unable to ride the wave of its initial success. Astra faired much better in the aftermath of its violation, given its short-lived suspension.

WordPress Themes Team member Alexandru Cosmin requested the ticket for adding the delisting status receive prompt attention, as the team is set to introduce some new policies and requirements that are tied to it. The patch was committed and then reverted temporarily to review how it impacted theme trac tickets, but the bugs appear to be unrelated to the patch.

The volunteer Themes Team has essentially been the de facto guardians of the WordPress.org marketplace that sends millions of dollars to theme authors, and they perform a great service to the community. But in the interest of supporting and accelerating the growth of the WordPress ecosystem, the team needs to adopt policies that create a more restorative path for violators, instead of obstructing the growth of products where issues have been quickly resolved.

Using a brightness() filter to generically highlight content

Rick Strahl:

I can’t tell you how many times over the years I’ve implemented a custom ‘button’ like CSS implementation. Over the years I’ve used images, backgrounds, gradients, and opacity to effectively ‘highlight’ a control. All that works of course, but the problem with most of these approaches is that one way or the other you’re hard coding a color value, image, or gradient.

You certainly have a lot more control if you specify exact colors, but if you can pull off brightening, darkening, or even a hue-shift in a way that feels cohesive on your site, it’s certainly a lot less code to maintain,

.button.specific-button {
  background: #4CAF50;
}
.button.specific-button:focus,
.button.specific-button:hover {
  background: #A5D6A7;
}

/* vs. */
.button:focus,
.button:hover {
  filter: brightness(120%);
}

/* or maybe you're super hardcore and do it everywhere */
:focus,
:hover {
  filter: brightness(120%) saturate(120%);
}

Direct Link to ArticlePermalink


The post Using a brightness() filter to generically highlight content appeared first on CSS-Tricks.

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

#283: Settings Redesign (Part 1)

Show Description

Marie and Dee talk about changes to the settings panel in your account on CodePen – design changes, how changes you make to your settings get saved, making use of feature flags to test, making sure billing is done right, and Stephen’s beautiful tables.

Time Jumps

Sponsor: Netlify 15:10

Netlify is the fastest way to build the fastest sites, Jamstack style. Netlify is a web host that hosts your static files, but for not-so-static sites. The static file hosting is just so that the site can be served over a global CDN as quickly and securely as is possible to do. Any kind of functionality is possible through things like built-in form processing, auth, and cloud functions, and the developer experience is second to none.

Show Links

CodePen Links

The post #283: Settings Redesign (Part 1) appeared first on CodePen Blog.

Distributed SQL Essentials

Distributed SQL databases combine the resilience and scalability of a NoSQL database with the full functionality of a relational database. In this Refcard, we explore the fundamentals of distributed SQL, including architecting for availability, handling schema design challenges, using JSON and columnar indexes, as well as assessing approaches to replication.

Addressing the Theme Design Problem With Gutenberg’s New Block-Based Widgets System

I could hardly sleep last night. Once in a blue moon, I have an idea I want to try out. While my day job as a writer means I spend far less time breaking sites through the rigorous trials and errors of building plugins and themes, some problems bug me with WordPress, the sort that keeps me from dozing into restful and peaceful dreams.

Last week, Gutenberg 8.9 dropped the experimental flag from its block-based widgets system. Overall, it was a solid first outing for a feature that should land in WordPress 5.6 this December. However, the largest problem centered on how theme authors would be able to style widgets in traditional fashion. Because actual widgets are being phased out and replaced with blocks, theme authors will no longer have access to the standard widget and widget title classes. This is problematic because there is no predictable way to style all widgets of a particular sidebar to look the same.

The classic example is of the boxed widget design. Many themes, such as the popular Colibri, employ such a design for their sidebars as shown in the following screenshot.

Screenshot of the Colibri WordPress theme with a boxed widget design.
Boxed widget design in right sidebar of Colibri theme.

In its current state, there is no reliable way for theme authors to create such a sidebar design via the block-based widgets system. Because there is no way to exert any sort of control over the structure of whatever content users will drop into a sidebar, it would be easy to look at this situation and think that theme designers are losing control.

Based on a recent GitHub ticket and a related Slack discussion from earlier this week, it does not appear that the Gutenberg development team intends to create parity between the old and new widgets systems, at least as far as theme design is concerned.

It bears repeating. I am a fervent supporter of handing over this type of ultimate control to the user. However, we need to balance that with helping them to make smart choices.

Theme authors must begin thinking about how this impacts the work they do and come up with creative solutions for sidebars, widgets, and other areas that will be affected by full-site editing in the future.

A Potential Solution

That thing that kept me up last night was an idea of combining block patterns, one of my favorite features, with widgets. The trouble was that the block-based widgets system does not currently support block patterns. And, until a quick discussion with Mark Uraine, one of Gutenberg’s designers, on a GitHub ticket, the idea did not seem to even be on the table.

For theme authors, the traditional sidebar and widget system of the past was nothing more than a pattern. WordPress provided theme devs with the ability to set a wrapping HTML element for the entire widget and the widget title. It was a rigid and inflexible system, but it was a reliable standard.

Block-based widgets are the complete opposite. They are essentially a free-for-all where users can drop arbitrary content into a “block area.”

What happens when we combine the structure of patterns with the flexibility of blocks inside of sidebars?

That was the idea that got me out of bed and behind the computer screen early this morning after my restless night. It was such a simple concept. Theme authors could provide a “widget” pattern to their end-users. This would provide users with a choice between what the theme author thinks best and forging their own path — the best of both worlds.

Example of using patterns for block-based widgets.
Simple example of recreating a boxed “widget” pattern.

And, here is where the beauty of the block system really comes in. Theme authors can create any number of patterns. This provides even more options for users.

Regardless of whether the Gutenberg plugin currently supports patterns for the block-based widget system, the idea was simple to test. In a sidebar on the new widgets screen, I merely needed to add a new Group block with the widget class. Then, I added an H3 Heading block with the widget__title class. Those classes may even be unnecessary in the context of patterns unless theme authors want to directly target them. Outside of the custom classes, I added a simple background to the Group block and changed the text color of the Heading. I also inserted an empty paragraph where the user’s custom content would go.

Afterward, it was a simple matter of testing it with various blocks.

Using a block pattern to encapsulate a widget.
Faux block pattern in the widgets block editor.

I would love to know what theme authors and the Gutenberg team think of the idea. I think it has some merit while soothing some of the transitional pains between traditional widgets and block-based widgets.

The biggest issue I see is the discoverability aspect. Will end-users know these “widget/block patterns” exist if theme authors went this route?

Amazon Introduces Data API for Redshift

Amazon has announced that Amazon Redshift (a managed cloud data warehouse) is now accessible from the built-in Redshift Data API. Such access makes it easier for developers to build web services applications that include integrations with services such as AWS Lambda, AWS AppSync, and AWS Cloud9. Further, there’s no more need to manage database connections and credentials for access.

The Service Mesh in the Microservices World

The software industry has come a long journey and throughout this journey, Software Architecture has evolved a lot. Starting with 1-tier (Single-node), 2-tier (Client/ Server), 3-tier, and Distributed are some of the Software Architectural patterns we saw in this journey.

The Problem

The majority of software companies are moving from Monolithic architecture to Microservices architecture, and Microservices architecture is taking over the software industry day-by-day. While monolithic architecture has many benefits, it also has so many shortcomings when catering to modern software development needs. With those shortcomings of monolithic architecture, it is very difficult to meet the demand of the modern-world software requirements and as a result, microservices architecture is taking control of the software development aggressively. The Microservices architecture enables us to deploy our applications more frequently, independently, and reliably meeting modern-day software application development requirements.

EFK Stack on Kubernetes (Part 2)

This is the final part of our Kubernetes logging series. In case you missed part 1, you can find it here. In this tutorial, we will learn about configuring Filebeat to run as a DaemonSet in our Kubernetes cluster in order to ship logs to the Elasticsearch backend. We are using Filebeat instead of FluentD or FluentBit because it is an extremely lightweight utility and has a first-class support for Kubernetes. It is best for production-level setups.

Deployment Architecture

Filebeat will run as a DaemonSet in our Kubernetes cluster. It will be:

Analyzing Relationships in Game of Thrones With NetworkX, Gephi, and Nebula Graph (Part Two)

In the last post, we showed the character relationship for the Game of Thrones by using NetworkX and Gephi. In this post, we will show you how to access data in Nebula Graph by using NetworkX.

NetworkX

NetworkX is a modeling tool for the graph theory and complex networks written by Python. With its rich, easy-to-use built-in graphs and analysis algorithms, it’s easy to perform complex network analysis and simulation modeling.

I can’t for each the two dimensional array in PHP

I can't for each the two dimensional array in PHP

Inside of an array is a question and another array inside an array is an anwers

The result of questions which is $one_four_key is Array

$questions_one_four = array("What time will the festival begin?"=>array("10 A.M.","11 A.M.","1 P.M.","2 P.M."),"In line 3, the word feature is closest in meaning to _______."=>array("look","keep","include","entertain"),"What job will be done the day before the festival begins?"=>array("Making posters","Setting up the gym","Cleaning up the gym","Helping the performers"),"Who is told to talk to Ms. Braxton?"=>array("Parents","Students","Teachers","Performers"));foreach ($questions_one_four as $one_four_key => $one_four_value) { echo $one_four_key; }

Best of DZone: Agile and Project Management

Getting Started

A Short Guide on How to Get Started With Agile Project Management by Evgen Domch: Get started with your first Agile project using this step-by-step guide that will walk you through every aspect of the process

Top 40 Project Management Terms and Concepts of 2019 by Fred Wilson: This large list of terms and jargon from project management can serve as a great reference for management and teams beginning their Agile journey.

Cultivating Diversity in the Open Source Community

Jacqueline Salinas has a pretty cool job. As the director of ecosystem and community development for the Continuous Delivery Foundation, she's a prominent advocate for the open source community in which millions of software developers around the world freely collaborate and exchange software code.

At the CD Foundation, Jacqueline is in charge of expanding the community and ecosystem for many of the fastest-growing open source projects for continuous integration and continuous delivery (CI/CD), including Jenkins, Jenkins X, Spinnaker and Tekton. The foundation fosters collaboration between the industry's top DevOps practitioners and creates training materials to help teams around the globe implement CI/CD best practices.

What Is Product Thinking and Why Should You Care?

Product Thinking comes down to problem-solving. Designers need to use Product Thinking in terms of products first and features second.

When it comes to finding a solution, the design team must look at the entire picture to make the product effective for the user. The Problem Thinking process must deliver a first-class end result.

Treat APIs as a Product, or The Sun Is Not the Centre of Your Solar System


I recently stumbled across the above beautiful animation of celestial mechanics by Malin Christersson. On the left-hand side, you see how simple and elegant it is to plot out celestial mechanics when you assume that all the planets in our solar system are in orbit around the sun. Whereas on the right-hand side, you see the resulting chaos if you assume earth is at the center.

If you fail to treat your APIs as products then you’ll end up with the chaos and disarray as seen in the geocentric view of the solar system. Unfortunately, APIs are often relegated to middleware or plumbing. As such, they can be perceived as a cost/liability to an organization and not direct value to the business. In this scenario, APIs are often one-offs resulting in chaos and a high cost of ownership due to the difficulties in untangling the knots that are created by multiple one-offs. However, change the perspective, treat APIs, and integrations as a product. Now instead of chaos, you’ll end up with a beautiful heliocentric solar system of APIs.