Demystifying the Event-Driven Architecture — An Introduction

High throughput, resiliency, scalability and speed — are you searching for a way to leverage microservice integration to handle all the event-driven communications in your growing architecture landscape?

Search no further.

This series of articles guides you through the world of integration using microservice architecture and specifically explores the world of Event-Driven Architecture (EDA). It's a central story to organizations moving forward into the digital world and is worth exploring as part of your strategy for continued success.

Kubernetes Upgrade: The Definitive Guide to Do-It-Yourself

Kubernetes is one of the most active projects on Github to date, having amassed more than 80k commits and 550 releases. The process of installing an HA Kubernetes cluster on-premises or in the Cloud is well documented and, in most cases, we don’t have to perform many steps. There are additional tools like Kops or Kubespray that help to automate some of this process.

Every so often, though, we are required to upgrade the cluster to keep up with the latest security features and bug fixes, as well as benefit from new features being released on an on-going basis. This is especially important when we have installed a really outdated version (for example v1.9) or if we want to automate the process and always be on top of the latest supported version.

Java 14

JDK 14 does not disappoint. In the latest JDK update, we see the usual API changes and low-level JVM enhancements, as well as exciting new language preview features and simplified debugging with NPE.

Chrome + System Fonts Snafu

There was just a bug late last year where system fonts (at least on Mac, I don’t know what the story was on other platforms) in Chrome appeared too thin and tracked-in at small sizes and too thick and tracked-out at larger sizes. That one was fixed, thankfully. But while it was a problem, it was the reason I gave up on system fonts for now and switched something else. A performance loss but aesthetic gain.

Now there is a new much worse bug, where the system font can’t be bolded. It’s not great, as a ton of sites roll with the system font stack as it has two major benefits: 1) it can help your site look like the operating system 2) it has great performance as the site doesn’t need to download/display and custom fonts.

Jon Henshaw wrote it up:

… the bug caught the attention of Adam Argyle, maker of VisBug and Chrome CSS Developer Advocate at Google. Argyle created a Chromium bug report, but the Chromium development team ultimately decided it wasn’t a blocker for releasing version 81. That resulted in sites like Coywolf not being able to use bold text for fonts that are larger than 16px (e.g., every heading).

The bug won’t be fixed in version 82 because the Chromium team announced that they’re skipping it, and will be releasing version 83 in mid-May instead. Argyle assured everyone on the original GitHub bug report that it would be fixed in version 83.

Above is Jon’s site. Andy Bell’s site got hit by it too.

So we’re looking at 4 weeks or so. Šime Vidas proposed a temporary fix of going Helvetica for now:

body {
  font-family: -apple-system, Helvetica;
}

I guess with -apple-system in there, older versions of Chrome/macOS still might be able to benefit from system fonts? Not sure.

That brings up a source of confusion for me. When I first heard of using system font stacks, there was -apple-system and BlinkMacSystemFont and you were supposed to use them in that order in the font stack. Then came along -system-ui, and that seemed to work well all by itself and that was nice as it was obviously less Mac-specific. But there is also system-ui (no starting dash), and that seems to do the same thing and I’m not sure which is correct. Now it looks like the plan is ui-sans-serif and friends (like ui-serif and ui-monospace). I like the idea, but I’d love to hear clarity from browser vendors on what the recommended use is. Are we in a spot like this?

/* Just a guess... */
body {
  font-family: 
    ui-sans-serif, 
    system-ui, 
    -system-ui, 
    -apple-system,
    BlinkMacSystemFont,
    Roboto, Helvetica, Arial, 
    sans-serif, 
    "Apple Color Emoji";
}

Another observation from me… as I was trying to replicate this on Chrome 81, at first I was like “weird, works for me”, because I was trying out the bolding on default 16px text. I noticed that it was when the font was 20px or bigger the problem kicked in:

Bramus has an alternative fix idea: use Inter.

The post Chrome + System Fonts Snafu appeared first on CSS-Tricks.

SVG, Favicons, and All the Fun Things We Can Do With Them

Favicons are the little icons you see in your browser tab. They help you understand which site is which when you’re scanning through your browser’s bookmarks and open tabs. They’re a neat part of internet history that are capable of performing some cool tricks.

One very new trick is the ability to use SVG as a favicon. It’s something that most modern browsers support, with more support on the way.

Here’s the code for how to add favicons to your site:

<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="alternate icon" href="/favicon.ico">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#ff8a01">

If a browser doesn’t support a SVG favicon, it will ignore the first link element declaration and continue on to the second. This ensures that all browsers that support favicons can enjoy the experience. 

You may also notice the alternate attribute value for our rel declaration in the second line. This programmatically communicates to the browser that the favicon with a file format that uses .ico is specifically used as an alternate presentation.

Following the favicons is a line of code that loads another SVG image, one called safari-pinned-tab.svg. This is to support Safari’s pinned tab functionality, which existed before other browsers had SVG favicon support. There’s additional files you can add here to enhance your site for different apps and services, but more on that in a bit.

Here’s more detail on the current level of SVG favicon support:

This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.

Desktop

ChromeFirefoxIEEdgeSafari
8041No80TP

Mobile / Tablet

Android ChromeAndroid FirefoxAndroidiOS Safari
80NoNo13.4

Why SVG?

You may be questioning why this is needed. The .ico file format has been around forever and can support images up to 256×256 pixels in size. Here are three answers for you.

Ease of authoring

It’s a pain to make .ico files. The file is a proprietary format used by Microsoft, meaning you’ll need specialized tools to make them. SVG is an open standard, meaning you can use them without any further tooling or platform lock-in.

Future-proofing

Retina? 5k? 6k? When we use a resolution-agnostic SVG file for a favicon, we guarantee that our favicons look crisp on future devices, regardless of how large their displays get

Performance

SVGs are usually very small files, especially when compared to their raster image counterparts — even more-so if you optimize them beforehand. By only using a 16×16 pixel favicon as a fallback for browsers that don’t support SVG, we provide a combination that enjoys a high degree of support with a smaller file size to boot. 

This might seem a bit extreme, but when it comes to web performance, every byte counts!

Tricks

Another cool thing about SVG is we can embed CSS directly in it. This means we can do fun things like dynamically adjust them with JavaScript, provided the SVG is declared inline and not embedded using an img element.

<svg  version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <style>
    path { fill: #272019; }
  </style>
  <!-- etc. -->
</svg>

Since SVG favicons are embedded using the link element, they can’t really be modified using JavaScript. We can, however, use things like emoji and media queries.

Emoji

Lea Verou had a genius idea about using emoji inside of SVG’s text element to make a quick favicon with a transparent background that holds up at small sizes.

https://twitter.com/LeaVerou/status/1241619866475474946

In response, Chris Coyier whipped up a neat little demo that lets you play around with the concept.

Dark Mode support

Both Thomas Steiner and Mathias Bynens independently stumbled across the idea that you can use the prefers-color-scheme media query to provide support for dark mode. This work is built off of Jake Archibald’s exploration of SVG and media queries.

<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg">
  <style>
    path { fill: #000000; }
    @media (prefers-color-scheme: dark) {
      path { fill: #ffffff; }
    }
  </style>
  <path d="M111.904 52.937a1.95 1.95 0 00-1.555-1.314l-30.835-4.502-13.786-28.136c-.653-1.313-2.803-1.313-3.456 0L48.486 47.121l-30.835 4.502a1.95 1.95 0 00-1.555 1.314 1.952 1.952 0 00.48 1.99l22.33 21.894-5.28 30.918c-.115.715.173 1.45.768 1.894a1.904 1.904 0 002.016.135L64 95.178l27.59 14.59c.269.155.576.232.883.232a1.98 1.98 0 001.133-.367 1.974 1.974 0 00.768-1.894l-5.28-30.918 22.33-21.893c.518-.522.71-1.276.48-1.99z" fill-rule="nonzero"/>
</svg>

For supporting browsers, this code means our star-shaped SVG favicon will change its fill color from black to white when dark mode is activated. Pretty neat!

Other media queries

Dark mode support got me thinking: if SVGs can support prefers-color-scheme, what other things can we do with them? While the support for Level 5 Media Queries may not be there yet, here’s some ideas to consider:

Mockup of four SVG favicon treatments. The first treatment is a pink star with a tab title of, “SVG Favicon.” The second treatment is a hot pink star with a tab title of, “Light Level SVG Favicon.” The third treatment is a light pink star with a tab title of, “Inverted Colors SVG Favicon.” The fourth treatment is a black pink star with a tab title of, “High Contrast Mode SVG Favicon.” The tabs are screen captures from Microsoft Edge, with the browser chrome updating to match each specialized mode.
A mockup of how these media query-based adjustments could work.

Keep it crisp

Another important aspect of good favicon design is making sure they look good in the small browser tab area. The secret to this is making the paths of the vector image line up to the pixel grid, the guide a computer uses to turn SVG math into the bitmap we see on a screen. 

Here’s a simplified example using a square shape:

A crisp orange square on a white background. There is also a faint grid of gray horizontal and vertical lines that represent the pixel grid. Screenshot from Figma.

When the vector points of the square align to the pixel grid of the artboard, the antialiasing effect a computer uses to smooth out the shapes isn’t needed. When the vector points aren’t aligned, we get a “smearing” effect:

A blurred orange square on a white background. There is also a faint grid of gray horizontal and vertical lines that represent the pixel grid. Screenshot from Figma.

A vector point’s position can be adjusted on the pixel grid by using a vector editing program such as Figma, Sketch, Inkscape, or Illustrator. These programs export SVGs as well. To adjust a vector point’s location, select each node with a precision selection tool and drag it into position.

Some more complicated icons may need to be simplified, in order to look good at such a small size. If you’re looking for a good primer on this, Jeremy Frank wrote a really good two-part article over at Vidget.

Go the extra mile

In addition to favicons, there are a bunch of different (and unfortunately proprietary) ways to use icons to enhance its experience. These include things like the aforementioned pinned tab icon for Safari¹, chat app unfurls, a pinned Windows start menu tile, social media previews, and homescreen launchers.

If you’re looking for a great place to get started with these kinds of enhancements, I really like realfavicongenerator.net.

Icon output from realfavicongenerator.net arranged in a grid using CSS-Trick’s logo. There are two rows of five icons: android-chrome-192x192.png, android-chrome-384x384.png, apple-touch-icon.png, favicon-16x16.png, favicon-32x32.png, mstile-150x150.png, safari-pinned-tab.svg, favicon.ico, browserconfig.xml, and site.webmanifest.
It’s a lot, but it guarantees robust support.

A funny thing about the history of the favicon: Internet Explorer was the first browser to support them and they were snuck in at the 11th hour by a developer named Bharat Shyam:

As the story goes, late one night, Shyam was working on his new favicon feature. He called over junior project manager Ray Sun to take a look.

Shyam commented, “This is good, right? Check it in?”, requesting permission to check the code into the Internet Explorer codebase so it could be released in the next version. Sun didn’t think too much of it, the feature was cool and would clearly give IE an edge. So he told Shyam to go ahead and add it. And just like that, the favicon made its way into Internet Explorer 5, which would go on to become one of the largest browser releases the web has ever seen.

The next day, Sun was reprimanded by his manager for letting the feature get by so quickly. As it turns out, Shyam had specifically waited until later in the day, knowing that a less experienced Program Manager would give him a pass. But by then, the code had been merged in. Incidentally, you’d be surprised just how many relatively major browser features have snuck their way into releases like this.

From How We Got the Favicon by Jay Hoffmann

I’m happy to see the platform throw a little love at favicons. They’ve long been one of my favorite little design details, and I’m excited that they’re becoming more reactive to user’s needs. If you have a moment, why not sneak a SVG favicon into your project the same way Bharat Shyam did way back in 1999. 


¹ I haven’t been able to determine if Safari is going to implement SVG favicon support, but I hope they do. Has anyone heard anything?

The post SVG, Favicons, and All the Fun Things We Can Do With Them appeared first on CSS-Tricks.

Different Approaches to Responsive CSS Motion Path

As a follow-up to Jhey’s recent post on responsive motion paths, Michelle Barker notes that another approach could be to just transform: scale() the whole dang element.

The trade-off there is that you’re scaling both the path and the element on the path at the same time; Jhey’s approach only makes path flexbile and the element stays the same size.

Calculating scale is a really cool trick I think and one we’ve also covered before.

Direct Link to ArticlePermalink

The post Different Approaches to Responsive CSS Motion Path appeared first on CSS-Tricks.

AWS vs Azure vs Google: What’s the Best Cloud Platform for Enterprise?

Nowadays, more and more businesses are moving from a self-organized structure to cloud-based public cloud storage. Clouds give a lot of benefits to enterprises. That’s why enterprises prefer to switch to a more innovative approach and keep their focus on doing business, not maintaining a database. 

According to Cloud Vision’s 2020 survey, it is expected that 80% of companies will move from traditional data centers by 2025. 

Why Cloud Native? Speed, Stability, and Full Cycle Development

The emergence of “cloud-native” technologies and practices, such as microservices, cloud computing, and DevOps, has enabled innovative organizations to respond and adapt to market changes more rapidly than their competitors. Just look at the success of the initial web “unicorns”, Spotify, Netflix, and Google. Not every company can be a unicorn, but there is much to learn from the early adopters of the cloud.

The Benefits of Being Cloud-Native

Spotify’s now-famous “squad, chapters, and guilds” organizational model ultimately led to the creation of their applications as independent microservices, which in turn supported the rapid rate of change they desired. Through a combination of a compelling vision and the whole-scale adoption of cloud services, Netflix was able to out-innovate existing market incumbents in the video streaming space. And Google’s approach to collaboration, automation, and solving ops problems using techniques inspired by software development enabled them to scale to a global phenomenon over the past two decades.

MQTT – Message Queue Telemetry Transport

What Is MQTT

  • A message protocol with “a small code footprint and on-the-wire footprint”.
  • MQTT is a publish-subscribe-based messaging protocol.
  • On top of TCP/IP.
  • Requires a broker (e.g. mosquito, hivemq, azure IO Hub).
  • ISO standard (ISO/IEC PRF 20922).
  • A message bus for: unreliable, high latency, low bandwidth
  • Payload with a plain byte array.

MQTT PUB/SUB

  • The protocol uses a publish/subscribe architecture in contrast to HTTP with its request/response paradigm.
  • Publish/Subscribe is event-driven and enables messages to be pushed to clients.
  • The central communication point is the MQTT broker, it is in charge of dispatching all messages between the senders and the rightful receivers.
  • Each client that publishes a message to the broker, includes a topic into the message. The topic is the routing information for the broker.
  • Each client that wants to receive messages subscribes to a certain topic and the broker delivers all messages with the matching topic to the client.
  • Therefore the clients don’t have to know each other, they only communicate over the topic.
  • This architecture enables highly scale-able solutions without dependencies between the data producers and the data consumers.

… and What Is With REST?

  • HTTP/REST is useful to handle documents and resources.
  • MQTT is useful to handle messages.
  • HTTP/REST can be complex and is not always the best solution for simple messages.
  • The MQTT packet size is 2 byte + payload.
  • MQTT supports 1-to-1, 1-to-many, and many-to-many messages.
  • Request and response vs publisher and subscriber.

Architecture

The difference to HTTP is that a client doesn’t have to pull the information it needs, but the broker pushes the information to the client, in case there is something new.

Therefore each MQTT client has a permanently open TCP connection to the broker. If this connection is interrupted by any circumstances, the MQTT broker can buffer all messages and send them to the client when it is back online.

Automatic Email — Jenkins Results in HMTL Table

We often have a requirement to send all consolidated test results of nightly runs (with more than one job configured for test executions) to the team in an easily readable email.

This document outlines the process of achieving the same with a groovy script that used markup language to implement HMTL styles and Extended E-mail Notification plugin to automatically send email notifications.

This Week In Web Design – April 24, 2020

It’s the last Friday in April, and, because it’s Friday, that means it’s time for another edition of “This Week in Web Design”, our weekly roundup of all the web design and development related articles published in the past seven days. So pull up a chair, grab a beverage, and browse our curated list of weekly reading. Enjoy!

Your Web Designer Toolbox

Unlimited Downloads: 500,000+ Web Templates, Icon Sets, Themes & Design Assets
Starting at only $16.50/month!


 

Awesome Demos Roundup #15

A fresh collection of the most intriguing coding experiments from around the web.

Brutalism in Web Design

A few cases of ‘brutalism in Web Design’ that goes beyond the boundaries of the basics (and they probably had a lot of fun making these.)

20+ Best Figma Tutorials for Beginners

We’ve gathered twenty Figma tutorials for beginners to make learning this tool a breeze!

Exciting New Tools for Designers, April 2020

Some of the newest tools and resources for designers are for working through or with the virus’ impact or are inspired by this change to our lifestyles.

How To Harden WordPress For Maximum Security

How to harden WordPress, including the steps you can take from the outset as well as what you must continue to do to ensure your site’s ongoing security.

A Look Into: HTML5 <article> and <section> Elements

In what circumstances should we use these elements and how do we use these elements correctly?

Creating Playful Effects With CSS Text Shadows

Look at how we can use the CSS text-shadow property to create truly 3D-looking text.

10 Things You Must Stay Away From When Designing a Perfect Website Footer

Studies have shown that more easily navigable footer designs may increase the number of customers and increase revenue.

Implementing Skeleton Screens In React

Learn what a skeleton screen UI is and some types of skeleton screen libraries, along with their pros and cons.

Designing the Block: How UX can improve underserved communities

The design process can bring social change.

Using AI to Streamline Website Building Process

Creating a great site takes time, money, and for first-timers, trial and error. Artificial Design Intelligence (ADI) is promising to change that.

Can JavaScript Detect the Browser’s Zoom Level?

No, not really.

Less rigid design systems

What would it take to start swinging the pendulum back towards less rigid design systems that enable experimentation, while at the same time promoting consistency?

15+ Creative Website Header Design Examples + Tips

To help you find inspiration and learn a few tricks about effective header design, we handpicked some of the best website header design examples for your inspiration.

How To Disable RSS Feeds In WordPress

There are certain situations where you may want to turn off RSS feeds. Here’s how to do it without a plugin!

Building a Scalable CSS Architecture With BEM and Utility Classes

This method relies on CSS globals, BEM, and utility classes.

What is SSH? The Magic Of Remote WordPress Access

Did you know you can securely access your WordPress site remotely? But how is it done? By some magician’s trick? Actually, it’s called SSH.

How to Boost Your Developer Career with a Personal Brand

Personal branding is one the most (in)famous trends of the last decade.

Brutalist Web Design – A Big Trend to Notice

These raw, unrefined, and constructive interfaces are widespread and pass for a normal thing that still wins over the audience with its eccentric appearance.

How To Create A Compelling Landing Page

It involves a combination of clear focus, persuasive copy, considered design and relentless testing. Without all four your page will fail.

10 Tools That Will Help Your Remote Design Team Stay On The Same Page

Project management and roadmapping tools, organization tools, and tools to help you stay personally productive.

18 Modern Fonts To Use In 2020

Using modern fonts can really elevate the look of your work, brand, website, promotional materials – whatever! Here are 18 great modern fonts to choose from.

Responsive Web And Desktop Development With Flutter

Here’s what you need to know to be ready to take on the task of developing web and desktop apps using this wonderful cross-platform framework.

How to Add Lunr Search to your Gatsby Website

Build a search index and add search functionality to a Gatsby website with Lunr, a lightweight JavaScript library providing an extensible and customizable search without the need for external, server-side services.

20 Best Icon Search Engines For Web Designers

A collection of the best icon search engines, icons libraries, and repositories for finding unique new icons for your projects.

User Story Template With Examples

Use this format to create a shared understanding of why users do what they do.

Some Little Improvements to My VS Code Workflow (Workspaces, Icons, Tasks)

From Chris Coyier.

10 Must-have VS Code Extensions for JavaScript Developers

Extensions that have gained popularity and those that are indispensable for JavaScript developers.

How to Create a Finance App UI Design in Adobe XD

How to create a finance app design in Adobe XD, and (more importantly) how to easily animate parts of its UI.

How To Limit WordPress Search Results By Post Type

There are occasions in which you may want to limit WordPress search results to a specific post type rather than just the default. Here’s how to do it without a plugin!

Create Flow Diagrams in Sketch With User Flows Plugin

Link artboards with flow charts.

Accessible Font Sizing, Explained

Explore the WCAG requirements for fonts.

15+ Figma Plugins to Help You Design Better

Take a look at some of the best Figma plugins so far.

Exploring Node.js Internals

Learn about what makes up Node.js, give it a meaningful definition, understand how the internals of Node.js interact with one another, and explore the project repository for Node.js on GitHub.

Dark mode and variable fonts

Looking at a fix for font weights in dark mode.

Cover photo courtesy of StockSnap.

7 Best Backlink Checker Tools – Free & Paid Options (Compared)

Do you want to see where your backlinks are coming from? Or check on a competitor’s backlinks?

Backlinks can help boost your search rankings and increase your traffic.

In this guide, we’ll compare the best backlink checker tools that you can use to audit your site’s backlinks as well as a competitor’s backlink profile.

Best Backlink Checker Tools Compared

What Are Backlinks and Why Are They Important?

A backlink is a link to your website from another website. In the eyes of search engines, backlinks are a bit like votes for your site. The more links you have, the higher your site is likely to rank in search engines.

Not all backlinks are created equal, though. The best backlinks are ones from big, respected websites. Backlinks from spammy or suspicious websites can be actively harmful to your site.

After installing a WordPress SEO plugin like All in One SEO or Yoast and following the best practices, the next step is to think through your backlink strategy.

There are a lot of ways to get backlinks to your site, but the process always starts with using a backlink checker to check existing backlinks for your site and your competitors.

That being said, let’s take a look at the best tools to track backlinks of any website.

1. Semrush

Semrush Website

Semrush is our top recommendation for a backlink checker. It’s one of the best keyword research tools on the market, and it has lots of powerful tools to let you analyze backlinks.

To use the backlink features, login to Semrush, select ‘Backlink Analytics,’ and type in the name of the domain you want to investigate. You’ll then see lots of information about the domain and its backlinks.

Semrush backlink checker tool

If you want to dig into more details on any section of this overview, just click the link beneath that section to view the full report.

You can use Semrush to check your site’s links, which could help you pinpoint any issues such as low-quality links. In fact, Semrush makes this easy for you by letting you see how many total links a page linking to you has. If the page has hundreds of links, that can indicate a spammy website.

When it comes to competitors’ backlinks, you can use Semrush to see which high-authority sites are linking to them, what keywords they are ranking for, and so much more. This can give you a whole list of sites to target for your own backlink building.

Price:

Semrush costs from $119.95/month and goes all the way to $449.95 per month.

You can get an exclusive 7-day free trial by going through our link to Semrush. If you want step-by-step instructions on how to get this deal, check out our Semrush coupon code page.

2. All in One SEO (AIOSEO)

All In One SEO - AIOSEO

All in One SEO (AIOSEO) is the best SEO plugin for WordPress. Over 3 million professionals use the plugin, making it super easy to optimize your website for search engines without requiring technical knowledge or hiring an expert.

AIOSEO offers a Link Assistant feature that helps you check internal backlinks on your website. Internal backlinks or internal links, help connect one post or page with each other.

With AIOSEO Link Assistant, you can create better internal links and boost your WordPress SEO score.

Link assistant overview

It helps identify orphan pages with no internal links and offers recommendations to create internal links. There’s even an option to bulk add internal links automatically with just one click.

Plus, the Link Assistant shows linking opportunities from different blog posts and pages. This helps save time and ensures that you don’t miss out on creating an internal link that could benefit your site.

Other than that, AIOSEO also lets you audit outbound links on your website and ensure that there are no broken links.

Pricing:

AIOSEO pricing plans start from $49.50 per year. However, the Internal Link Assistant feature is available in the Pro version and will cost you $199.50 per year.

Each premium plan comes with a 14-day money-back guarantee. There’s also an AIOSEO Lite version which you can use for free.

3. LinkMiner

LinkMiner

LinkMiner is explicitly designed to check backlinks. It’s a tool from Mangools, so you’ll need a Mangools account in order to use it.

As with other tools, LinkMiner lets you filter links by nofollow, deleted, new, and lost.

One handy feature you’ll want to try is the ability to ‘favorite’ backlinks so that you can come back to them easily. This could be a great way to make a shortlist of competitors’ backlinks to target.

You could also use this feature to keep track of any of your own backlinks that you want to fix. For instance, you could create a list of lost backlinks that you want to concentrate on recovering.

LinkMiner backlink report

While LinkMiner isn’t as fully featured as SEMRush, it is a great option if you’re on a tight budget.

You’ll likely want to use it in conjunction with Mangools’ SiteProfiler to view details like a site’s total backlinks and top referring domains.

Price:

You can take a free 10-day trial without entering any credit card details. After that, you’ll need to pay $26.91/month.

This fee covers all Mangools’ tools. These are LinkMiner, KWFinder, SERPChecker, SERPWatcher, and SiteProfiler. It’s a great budget option.

4. Ubersuggest

Ubersuggest

Ubersuggest is a tool from Neil Patel. The main tool offers keyword research features, but there’s also a Backlinks tool that you can use to view details of your site’s backlinks.

Ubersuggest has similar features to the other tools we’ve been looking at. For instance, it can show you new backlinks, backlinks you’ve lost, which backlinks are marked as nofollow, and more.

Ubersuggest backlink report

You can use the free version to see this information, but you’ll only get details of a small number of backlinks for each domain. You need to upgrade to the paid version of Ubersuggest if you want everything.

Ubersuggest’s other tools can analyze traffic and help you come up with keyword and content ideas.

Price:

Ubersuggest’s free version can give you a good sense of what the tool can do. To do any serious backlink analysis, you’ll want the Pro version, which costs $29/month or $290/year if you pay upfront.

There’s a 30-day “no questions asked” money-back guarantee.

5. Ahrefs

ahrefs

Ahrefs is another powerful keyword research tool. Like SEMRush, it’s easy to use. It’ll give you an overview of your chosen domain, and you can drill down to look at lots of details of backlinks.

Ahrefs also makes it really easy to see backlinks that you’ve lost. These are links you once had that have now vanished. Perhaps the website owner deleted the page that linked to you, for instance.

You can also identify backlinks that are broken. These links point to your site, but using a broken URL that lands on your 404 page. You might need to contact the site owner to fix them.

Ahrefs backlink profile

You can also use Ahrefs to examine internal links on your site. You can filter these to check for internal links you’ve accidentally nofollowed, so you can fix those.

Price:

You can take a 7-day trial of Ahrefs’ Site Explorer for just $7. After that, it’s priced from $99/month. If you pay for the year upfront, it’s $82/month.

6. Moz Pro

Moz

Moz Pro, the suite of SEO tools from Moz, includes their Link Explorer tool.

Link Explorer can give you a detailed link profile of your site, which you can compare with the profile of up to 4 competitors. This lets you figure out what they might be doing differently from you.

Moz link intersect tool

It also has a handy tool called Link Intersect, where you can see which sites are linking to your competitors but not to you. These sites are great ones to target for building links.

Like the other tools we’ve looked at, Moz also lets you see what backlinks you’ve lost. This gives you the chance to try to get those links replaced.

As well as the backlink tools, you’ll also get access to all Moz’s other SEO tools. These include Campaigns to track and analyze your site, Rank Checker to evaluate your search engine performance, and more.

Price:

Moz costs from $99/month ($79/month paid upfront annually). There’s a 30-day free trial, though, which gives you full access to all their tools.

7. BuzzSumo

Buzzsumo

BuzzSumo is designed to let you analyze your content and your competitors’ content. It’s a great way to come up with topic ideas, but you can also use it to help you with your backlink strategy.

You can simply type in a keyword or a domain name to see the most popular content for that keyword, or the most popular content on that domain. You can then click the link icon next to any of the results to see the backlinks for that piece of content.

Buzzsumo content analyzer

You can even type in the URL of a specific piece of content and see just the backlinks that point to that. This could be a great way to see which sites are linking to your competitors’ top posts.

Their straightforward Backlinks tool lets you find the pages linking to a specific URL or domain. This is an easy way to see your competitors’ backlinks at a glance.

You can easily filter the backlinks to view ones from various periods of time between the past 24 hours and the past 5 years.

Price:

The basic version of BuzzSumo is free. For in-depth backlink analysis, though, you’ll need to upgrade to BuzzSumo Pro. It costs $99/month, or $79 if you pay annually.

There’s a 30-day free trial available, too. You don’t need to enter any credit card details for this.

Which Is The Best Backlink Checker Tool?

Any of these backlink checkers could help you build your site’s backlinks and rank more highly in search engines. Some of them offer a lot more helpful information than others.

Our top recommendation is SEMRush. It is one of the best SEO tools on the market and helps you grow your business. On the other hand, if you want a detailed overview of internal backlinks and want to improve your internal links, then we recommend All in One SEO (AIOSEO).

If you’re on a tight budget, though, LinkMiner and Ubersuggest are good value. And OpenLinkProfiler is completely free.

We hope this article helped you learn about the best backlink checker tools. You might also like to take a look at our ultimate guide to WordPress SEO for beginners and our tips on how to increase your blog traffic.

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 7 Best Backlink Checker Tools – Free & Paid Options (Compared) first appeared on WPBeginner.

How to Sell on Facebook: Create a Facebook Shop and Engage Billions of Potential Customers

If you’ve ever tried to learn how to sell on Facebook, you know that it’s (how do I put this lightly) an “interesting” experience. Facebook rules, interfaces, security, and just about every part of the social network changes on a regular basis. Many times, it seems like the modifications have nothing to do with helping out users. And those modifications definitely aren’t trying to help out businesses, unless you’re paying for ads.

Why Collaborative Coding Is The Ultimate Career Hack

Why Collaborative Coding Is The Ultimate Career Hack

Why Collaborative Coding Is The Ultimate Career Hack

Bobby Sebolao

Taking your first steps in programming is like picking up a foreign language. At first, the syntax makes no sense, the vocabulary is unfamiliar, and everything looks and sounds unintelligible. If you’re anything like me when I started, fluency feels impossible.

I promise it isn’t. When I began coding, the learning curve hit me — hard. I spent ten months teaching myself the basics while trying to stave off feelings of self-doubt that I now recognize as imposter syndrome. It wasn’t until I started going to beginner-friendly meetups that I realized how coding collaboratively opens up amazing possibilities. You just need the right community of people to practice with.

For me, that community was Founders and Coders, the free JavaScript bootcamp that helped me to switch my career from copywriting to coding. Even now, less than a year after completing the course, I can hardly believe I’m being paid to develop software.

Collaborative coding is all about tackling problems and discovering solutions together. It encompasses techniques like pair programming, which several tech companies take seriously enough to screen for during their interview processes. It also cultivates useful skills that are tough to learn if all you’re doing is coding alone at home.

Whether you’re just starting out in the tech industry or you have several years of experience under your belt, collaborative coding never stops being useful. In this article, we’ll look at how these evergreen skills equip you for a long and successful career in software development.

Perfect Pairing

My first experience of pair programming was at a meetup for beginners called Coding For Everyone. Here’s how it works: people pair up, often with people they’ve never met, to solve JavaScript challenges together at the same laptop. One person assumes the role of the ‘navigator’ and proposes the code they think should be written. The other person, the ‘driver’, types out their suggestions on the laptop and asks questions whenever something isn’t clear. You continue doing this, swapping roles frequently, until the end of the two-hour session.

In theory, it was simple. In practice, not so much.

I found it quite distracting to have someone I didn’t know watching my screen while I typed, and I was reluctant to hand over control when it was time to swap roles. I found navigating even trickier. When an idea cannot go from your head into the computer without first going through your partner’s hands, every word that you say matters. It demanded a degree of communication from us both that we simply weren’t used to, and I felt sure we’d both learn more if we split up to work separately.

Fortunately, we stuck with it; I went again to the meetup the following week. I’ve since spent hundreds of hours pairing with dozens of developers, and I’ve learned more than I initially thought possible.

Pair programming is an incredibly fast way to learn. The magic of the method — once you get over the initial awkwardness — is that it yields immediate results. Some feedback loops, like bubbles in the stock market, can take hours, days, or even months to produce a correction. Pair programming takes minutes, if not seconds. When you misplace a semicolon, two pairs of eyes can spot the mistake faster than one. Need to search StackOverflow for clues about a rogue error message? You and your partner can each read different threads, halving the time it takes to find an answer.

A flow chart that shows the pair programming feedback loop as three steps: write, run, and refactor.
The pair programming feedback loop (Large preview)

For even trickier problems, mob programming can be a further step up. This method requires a cross-functional section of a team to gather around the same computer screen and brainstorm solutions in realtime while one person types.

“All the brilliant minds working on the same thing, at the same time, in the same space, on the same computer.”

— Woody Zuill, Agile Coach and Mob Programming Trainer

While it might seem like an inefficient way to work, mob programming advocates such as Woody Zuill say it can actually save time by eliminating the need for individual code reviews because everyone reviews the code in realtime as it’s being written. Productivity aside, I think mobbing is a fantastic way to learn not just about the code, but about how other people approach problems. If pair programming doubles the number of perspectives you’re exposed to, mob programming yields even more insights.

Ten developers huddled around a laptop using mob programming to solve a problem together.
Sometimes, ten heads are better than two. (Large preview)

That’s not to say that pairing — or indeed mobbing — is plain sailing. Something I struggled with initially was putting my ego to one side to ask questions that I thought might sound stupid. In these situations, it’s good to remember that your partner might be having the same thoughts, especially if you’re both just starting out.

If you find yourself pairing with someone more senior, perhaps at work, don’t be afraid to pick their brains and impress them with your inquisitiveness. Even someone who is only a bit further ahead than you might think of things that wouldn’t occur to someone more senior. Some of my favorite pair programmers only have a few months more experience than me, yet they always seem to know exactly which mistakes I’m about to make and how to steer me in the right direction. When these developers say there’s no such thing as a silly question, they really mean it. The best pair programmers speak freely, without the need to appear fantastic or the fear of looking foolish.

Pair programming takes practice, but it’s worth perfecting. Studies show that programmers who pair to solve problems tend to be more confident, productive, and engaged with their work. Whether you’re looking for your next job or you’re onboarding new hires, pairing is caring.

Resources And Further Reading

Engineering Empathy

When I started teaching myself JavaScript, my code looked a lot like my bedroom floor: I’d let it get messier and messier until I had no choice but to tidy it. As long as my web browser could understand it, I didn’t care how it looked.

It wasn’t until I started reviewing other people’s code that I realized I needed to show a lot more empathy for the people reviewing mine.

Empathy might be the most underrated tool in any developer’s arsenal. It’s the reason why IDEO puts user research at the center of their design process, and why Etsy asks their designers and product managers to do an engineering rotation. Empathy emerges when we have the opportunity to see how our work impacts other people. No wonder collaborative coding is such a great way to build it.

Peer code review — the act of checking each other’s code for mistakes — calls on us to exercise empathy. As the reviewer, it’s important to recognize that someone has gone to considerable effort to write the code that you are about to critique. As such, try to avoid using phrases that might imply judgment or trivialize their work. When you refer to their code, you want to show them the specific functions and lines that you have questions about, and suggest how they might refactor it. Sharing learning resources can also be more helpful than spoon-feeding a solution. Some of the most useful feedback I’ve received from code reviews has come in the form of educational articles, videos, and even podcast recommendations.

Writing good documentation for your code also goes a long way. An act as simple as creating a readme with clear installation instructions shows empathy for anyone who needs to work with your code. GitHub founder Tom Preston-Werner advocates a readme-first approach to development.

“A perfect implementation of the wrong specification is worthless. By the same principle, a beautifully crafted library with no documentation is also damn near worthless. If your software solves the wrong problem or nobody can figure out how to use it, there’s something very bad going on.”

— Tom Preston-Werner, GitHub Founder

I’ve also spoken with tech founders who treat documentation as an essential part of successful onboarding. One CTO said that if a junior developer struggles to reach a level of productivity within six months of joining his team, it points towards the codebase not being well documented enough. It only takes a few seconds to add an explanatory comment to a complex function you’ve written, but it could save the next person who joins your team hours of effort.

Resources And Further Reading

Agile Achievement

From the millions of man-hours that go into making CGI movies to the intense development crunches leading up to big-budget video game releases, towering technical achievements take a mind-boggling amount of effort. The first time I saw my current employer’s codebase, I was floored by the enormity of it all. How on earth did anybody build this?

The answer is that everybody can build a lot more than anybody, given the right collaborative framework. In companies that encourage collaborative coding, the software doesn’t emerge from the efforts of a lone genius. Instead, there are ways of working together that help great teams to do amazing work. Developers at Founders and Coders practice a popular software development methodology known as ‘Agile’, and in my experience, it puts the ‘functional’ in cross-functional development teams.

Entire books have been written about Agile, but here is a summary of the core concepts:

  • A product development team breaks down large pieces of work into small units called ‘user stories’, prioritizes them, and delivers them in two-week cycles called ‘sprints’.
  • For as long as the project continues, the cycles repeat, and new product requirements get fed into a backlog of tasks for future sprints.
  • The team holds daily standup meetings to discuss their progress and address any blockers.
  • The process is both incremental and iterative: the software is built and delivered in pieces and refined in successive sprints.
Ten developers huddled around a laptop using mob programming to solve a problem together.
A typical Agile workflow (Large preview)

As a chronic tinkerer whose solo hobby projects often succumb to ‘feature creep’, I know how easy it is to waste time building the things that no one ever uses. I love the way that Agile forces you to prioritize user stories so that the entire team can focus on delivering features that your users actually care about. It’s motivating to know that you’re all united around the common goal of building a product or service that will continue to have a life after you finish working on it.

Splitting tasks into small user stories also happens to be a great way to timebox pair programming sessions. No matter how deep in the zone you find yourselves, finishing up work on a key feature is always a nice reminder to step away from your desks and take a break. Agile lends structure to collaborative coding where it could otherwise be lacking.

Meanwhile, daily standups give you the freedom to talk about anything that is holding you back, and sprint retrospectives provide space to share key wins and pinpoint where the team could improve. These ceremonies foster a sense of collaboration and accountability, and help us to learn more together than we could by ourselves.

Putting all of these Agile principles into practice can be challenging, especially when no one in a team is used to this way of working. At Founders and Coders, it takes most students a while to get into the habit of doing daily standups. However, after 18 weeks of project-based practice, you find that your processes and communication skills improve immensely. By the time you take on your first client work, you’ve formed a much clearer mental model of how to approach building a full-stack web app in a team.

The best way to learn Agile is to build interesting projects with other people. Attending hackathons is an excellent way to connect with potential collaborators. Many open-source projects make their kanban project boards public, so you can see which GitHub issues different contributors are working on. Several welcome contributions from beginners, and you can often assign yourself to open issues and begin raising pull requests.

Since most tech companies subscribe to some form of Agile, it’s not uncommon for employers to ask about it in interviews. Any experience you have can set you apart from other applicants who may never have coded collaboratively, let alone with Agile in mind.

Resources And Further Reading

Remote Collaborative Coding Tool Recommendations

In the last several years, remote working tools have advanced to the point that prominent companies like Gatsby and Zapier are now “remote first”. While it remains to be seen whether this will turn into a trend, it’s safe to say that remote development teams are here to stay.

In that spirit, here are some tools that can help you and your team code collaboratively from afar:

Markdown Editors HackMD
The killer feature is that you can turn markdown documents into slideshow presentations with next to no effort. Borrows from the popular reveal.js library.
StackEdit
A collaborative online editor with a clean UI and lots of file export options.
Code Editors CodeSandbox
A fantastic collaborative cloud-based code editor that you run in your browser, with no installation needed.
Live Share
A neat extension for the popular Microsoft Visual Studio Code editor that supports real time editing and debugging of files inside the same workspace.
Video Conferencing Solutions Google Hangouts
Superb Google Calendar integration makes it a cinch to schedule video calls.
Microsoft Teams
Video conferencing software that offers really good call quality (1080p video), and supports up to 250 simultaneous participants.

If you take one thing away from reading this article, I want it to be that team players trump individual contributors. In a field where there seems to be a hot new framework to master every other week, our technical skills age in a way that our soft skills don’t. The upshot is that developers who can work well with other people will always find their abilities are in demand. Collaborative coding isn’t just an effective way to learn; it’s a sought after skill set that anyone can develop with enough practice and patience.

Smashing Editorial (fb, ra, yk, il)

7 Handy Tips to Increase MacBook Pro Storage Space and Capability

With Apple managing to sell over 5 million Macs per quarter these days, MacBooks have become some of the most popular laptops. Popular for their sleek interface and user-friendly experience, it’s easy to see why some consumers gravitate towards Apple laptops. But like any laptop, they have issues users can run into — and one of […]

The post 7 Handy Tips to Increase MacBook Pro Storage Space and Capability appeared first on WPArena.