Distributed Locks Are Dead, Long Live Distributed Locks

"Distributed locks aren't real," "Anyone who's trying to sell you a distributed lock is selling you sawdust and lies." This may sound rather bleak, but it doesn't say that locking, itself, is impossible in a distributed system: It's just that some like to remind us that all of the system's components must participate in the protocol. This blog post is the story of how we implemented a distributed locking protocol that gives your components a straightforward way of joining in.

The coordinating component of the protocol is an object that extends the semantics of java.util.concurrent.locks.Lock. We call it FencedLock, following the naming used in Martin Kleppmann's 2016 post "How to Do Distributed Locking."

Developers at Yoast and Google Collaborate on Proposal to Add XML Sitemaps to WordPress Core

Developers at Google and Yoast are collaborating with other contributors on a proposal to add XML sitemaps to WordPress core. This capability has traditionally been handled by plugins, which provide a variety of implementations. The goal of this new feature project is to ship basic XML sitemaps in core while providing an XML Sitemaps API for plugin developers to extend. It would also update WordPress’ robots.txt file to reference the sitemap index.

Thierry Muller, a Developer Relations Program Manager at Google, published the details of the collaborators’ plans on WordPress.org. The sitemaps included in core would be enabled by default and would index the following content:

  • Homepage
  • Posts page
  • Core Post Types (Pages and Posts)
  • Custom Post Types
  • Core Taxonomies (Tags and Categories)
  • Custom Taxonomies
  • Users (Authors)

Although WordPress contributors have had multiple discussions regarding XML sitemaps on trac, Muller said there had not yet been a group to take ownership and get things moving forward. His proposal notes that 4 out of the top 15 plugins in the WordPress plugin directory ship with their own implementation of XML. Despite the demonstrated high demand for XML sitemaps, the right team for getting this added to core had not been assembled until now.

“XML Sitemaps is a standard across all search engines these days and any website with content which is intended to be indexed should have one,” Muller said. “Having XML Sitemaps in core would speed up content discoverability and indexing. We started discussing this topic last year with Yoast and agreed that it would be great to finally make it happen.”

So far the initiative has received a favorable response from the community and has already gained the support of WordPress project lead Matt Mullenweg.

“This makes a lot of sense, looking forward to seeing the v1 of this in core and for it to evolve in future releases and cement WordPress’ well-deserved reputation of being the best CMS for SEO,” Mullenweg commented on the proposal.

Performance is one of the primary concerns that the WordPress development community has expressed regarding adding XML sitemaps to core.

“As simple and straightforward as XML sitemaps are, they present some relatively significant performance challenges at scale,” Matthew Boynes, partner at Alley Interactive, said. “As one for-instance, how many urls are going to be in each paginated (sub-) sitemap? A sitemap index file is limited to 50,000 sitemaps, so even though each sitemap is limited to a maximum of 50,000 urls, generating 50,000 urls in one page request would be extremely difficult and non-performant to do on-the-fly.”

Muller and other contributors on the project have a strategy for addressing scalability concerns and are planning to keep these considerations on the forefront while building core’s implementation.

“As for everything else, engineering new features should always be done with security and performance in mind,” Muller said. “It starts at the high level architecture down to the granular details. Each Sitemap entry will only contain , and which should not overload the server request with a paginated approach. The number of entries per Sitemap is still to be defined, performance will definitely be a deciding factor.”

The XML Sitemaps project has a clearly defined scope. The initial implementation will not include features like image, video, or news sitemaps. It also will not include a UI for controls to exclude individual posts, pages, or custom post types from the sitemap. This is somewhat controversial but plugins can always extend core to offer these features until a more sophisticated version of sitemaps lands in core.

Plugin authors who offer XML sitemaps will need to re-architect their plugins with the new API in order to avoid conflicts and indexing errors.

“I can confidently say that we will make it as smooth as possible and work with plugin authors to avoid conflicts,” Muller said. “If anything else, having XML Sitemaps as well as a Core API to extend it will make their lives easier – plugin authors will have a standard way to extend it.”

This effort to get sitemaps added to WordPress core is not limited to those working at Google and Yoast. Muller encouraged authors of other XML sitemaps plugins to get involved or at least follow the project’s development to ensure their plugins are compatible once it is merged into core.

ABBYY Announces New Mobile Web Capture SDK

ABBYY, a provider of document capture and optical character recognition services, announced a new SDK for mobile web capture. With the ABBYY Mobile WebCapture SDK developers will be able to add real-time image and data capture to mobile web services.

5 Steps to Building an Amazing App Website With 20 Examples for Inspiration

If you’re thinking of turning your focus more toward app website design, we have both good news and bad news for you.

The good news is, there’s a growing need for app websites, which could mean plenty of work for you. The bad news is, as more and more app websites are being built, visitors are beginning to suffer from “app website fatigue”. If your site looks like all the others, you’ll be lucky if you can keep a visitor interested for more than 5 seconds – not anywhere long enough to make a sale, much less convince that visitor to stick around.

The solution is pretty straightforward. Build a better website.

Easier said than done, right?

Follow the steps below, and you can start creating app websites that are not only attention-getting, but potential conversion powerhouses.

 

5 steps to Creating “Take Your Breath Away” App Websites

Step 1: Choose a “can hardly stop looking at it” color palette

Your choice may to some extent be a matter of taste. You’ll find it helpful to view a few examples, like those presented here. Whatever color palette you choose; it should follow these three simple rules:

– It should instantly attract a visitor’s attention

– It needs to be on-brand, and

– It also needs to visually support your website’s message

Over utilizes BOLD color touches in a way that instantly attracts attention.

This Be Theme pre-built website provides another excellent example of an eye-grabbing color palette.

Forest aligns its color palette with its brand with earth colors like greens and browns; a color scheme that makes the app visually memorable.

FlightCard uses a subtle, cold color palette to reinforce the message that boarding passes are so easy to use that you almost forget you’re even carrying one.

Looking for a color palette that will appeal to a larger audience? BeApp2 is a perfect example.

Step 2: Display crystal-clear product pics

If people can’t immediately see what the app looks like, the 5-second rule is going to kick in. They can usually tell at a glance if it will be easy to use or involves a not-so-flat learning curve. They can also see how it differs, if it does, from the other 400 or so apps on the market.

Pennies emphatically displays what their app looks likes on a smartphone. At a glance, you can tell how intuitive it is to use and even figure out how the color codes function.

You can create a similar app website with BeWallet as your starting point. This pre-built website was designed from scratch for financial apps; a potential gold mine since there are SO many financial apps out there in dire need of a decent website – and you can do much better than “decent”.

Or, you could choose a more general pre-built website like BeSoftware  if you want to display crystal-clear pics from inside the app.

JibJab takes things one step further by employing a simple yet persuasive tactic to show what its app does. It shows the before and after.

Step 3: Show visitors how the app works

If people can’t tell how an app works, they’re less likely to become interested. Helping them image themselves as actual users is a powerful marketing tactic

PeekCalendar has placed a video on its hero section. It demonstrates how people can use their app to better organize their lifestyle.

BeApp3 allows you to give visitors the full app experience by adding product images and a video that shows exactly how the app looks and works.

BePay has placed a Watch Video CTA button right above the fold, so visitors can immediately go to their product demo video.

CutestPaw is a pet-lover’s dream app. Everything is cleverly rolled up into a single hero image that shows how the app works AND what it looks like on a smartphone. Anyone who likes little kittens might be tempted to purchase the app.

Step 4: (Over)use “white” space

White space is sometimes a design element you just can’t use too much of. A page that’s 95+% white space can often do the best job of highlighting a message. White space is so important that it’s an app website’s #1 visual element.

Tha Fly Nation offers a clean, airy design that directs the eye toward focusing on the site’s key elements.

You can create a similar experience with BeProduct4 or BeHosting2— two pre-built websites where white space is effectively used to enhance the visitor’s experience and emphasize the critical elements on the page.

SpellTower is perhaps THE most extreme when it comes to white space. It’s part of their brand and it drives the message home like no other. Now, you can understand why 95% whitespace can be so effective.

Step 5: Make your CTAs grab them by the eyeballs

The next worst thing to forgetting to include a CTA button is to have one that doesn’t stand out—really stand out. A CTA button has to be so big, bright, and bold that a visitor simply can’t resist clicking it.

Big, bright, and bold hints at greater things to come.

Wire’s CTA button clearly stands out above the fold: it’s big and bold enough to draw your attention to it the instant you’ve finished reading the headline. It’s centered on the page, like a “gate” you can’t move around, but need to click if to move forward.

BeERP uses precisely the same bright-green button for its main CTA. A secondary, somewhat nondescript optional button is on the right.

You can also direct attention to your CTA by having it match other elements on the page. BeKids is a great example of this. You can see how the blue of the CTA button matches several of the hero section’s visual elements.

Summary

As you can see, these steps are not complicated at all. They give you a surefire means of building an app website that’s eye-catching. It will stand out from the competition and is built for conversion.

Use the most stunning visuals you can get your hands on, don’t skimp on the use of white space. You need to know what your audience wants, and you’ll be off and running.

As simple as these steps are, building a quality website takes time. That’s true for app websites as well. You might be juggling multiple projects and facing one emergency deadline after another. Then, you might try the following approach.

You’ll find a large and impressive gallery of 400+ pre-built websites on Be Theme. You can select from it and customize it to your liking. You’ve seen several in the foregoing examples.

They are functional and visually impressive.  They feature interactive elements, stunning effects, and intuitive navigation. Personalize one to fit your app and you’re good to go!

Read More at 5 Steps to Building an Amazing App Website With 20 Examples for Inspiration

Every Layout

Every Layout is a new work-in-progress website and book by Heydon Pickering and Andy Bell that explains how to make common layout patterns with CSS. They describe a lot of the issues when it comes to the design of these layouts, such as responsive problems and making sure we all write maintainable code, and then they’ve provided a handy generator at the end of each article to create our own little frameworks for dealing with these things.

They also have a complementary blog and one of the posts called "Algorithmic Design" caught my eye:

We make many of our biggest mistakes as visual designers for the web by insisting on hard coding designs. We break browsers’ layout algorithms by applying fixed positions and dimensions to our content.

Instead, we should be deferential to the underlying algorithms that power CSS, and we should think in terms of algorithms as we extrapolate layouts based on these foundations. We need to be leveraging selector logic, harnessing flow and wrapping behavior, and using calculations to adapt layout to context.

The tools for flexible, robust, and efficient web layout are there. We are just too busy churning out CSS to use them.

I’m looking forward to seeing where this project goes and how many more layouts these two end up documenting.

Direct Link to ArticlePermalink

The post Every Layout appeared first on CSS-Tricks.

WordPress 5.2.2 Squashes 13 Bugs

WordPress 5.2.2 dubbed a short-cycle maintenance release is available for download. This release addresses 13 bugs and improves the Site Heath features introduced in 5.2.

One of the changes in 5.2.2 affects the theme update link in the Customizer of multisite installs. The update link for themes on multisite installs in the Customizer has been removed. This is because updates can not be performed from within the Customizer in this situation.

Other changes include, adding a exit recovery mode button in the responsive view, making the Site Health page access filterable, and updates to the page editor packages.

JB Audras, Justin Ahinon and Mary Baum co-led the release with guidance from Executive Director, Josepha Haden. Thirty people contributed to WordPress 5.2.2.

3 Major Steps To Drive Social Media Traffic To Your Site

When it comes to driving traffic to your site, one of the easiest, and cheapest ways to do this is through social media. If you company is not on social media, I hate to break it to you, but you are behind. Marketing is all about chasing the consumer’s attention, and with 3.4 billion social media users around the world, it’s not hard to tell where to focus is.

While it may seem easy that users who follow you on Facebook or Instagram will eventually land on your site, there has to be a quicker way to get them there right? That’s right! By utilizing the right steps, you can use your social media profiles to increase traffic to your site for new user acquisition and increased conversions.

Step 1: Optimizing Your Social Media Pages

The first step in driving more traffic using your social media is to make sure that your social accounts are fully optimized for driving traffic. There are many factors to look at here and the first thing you want to look at is your voice.

Voice

When it comes to social media, people are looking to communicate with people and businesses on the same level as them, in a relatable sense if you will. For this to work in your favor, you need to determine what kind of voice you want your brand to have on social media.

For those with a self-centered business such as an inspiration speaker or athlete, you are going to want to make sure that you are remaining personable and marketing yourself so that others get a personable connection to you.

For those with a brand or using social media as a company, you can use the same approach, but you will want to ensure your brand standards are kept. For example, if you are marketing to millennials, you will want someone with a younger, more hip dialog rather than an older marketer who does not speak the same slang as your target market.

Display

Presentation is everything, especially when it comes to first impressions with your brand or company. Since social media is one of the first places that people discover a brand, it is important that you are making a professional appearance right off the bat.

To optimize your page for a good first impression, you are going to want to include a fully built out profile with photos that represent your business, and about us section, and all of the contact details that one would need to get ahold of you.

One of the most important things to remember is a link to your site. While the link in your profile page isn’t going to be the main focus of traffic driving, it is nice to have it in case anyone is searching for your site on your page.

It is highly important to keep up with the trends on social media posting. Users are using social media profiles to be entertained and find out news updates from their friends and family. By posting ad-like updates, chances are, you are not going to get any interaction from your audience. Finding a way to interact with your audience is going to be key to keeping people interacting with your brand, ultimately helping to drive traffic to your site.

Step 2: Optimize Your Site & Content For Your Consumers

Just like social media, the first impression of your site can make or break a customers decision to stay on your site. Content is king in the internet world and with many of Google’s algorithms look at content and user experience as a ranking factor, it is important to make sure your content is what the customer is wanting.

When creating landing pages for your social media consumers to land on, you will want to make sure that each page is relevant to what they are wanting to see by clicking your link. If you have them land on a product page when they were wanting to get more information on a service you provide, chances are they are going to simply go back to browsing social media rather than trying to navigate your site to find the right service.

To make the most of your landing page, make sure that you are including everything that a consumer may need to see. If you are selling a product, include reviews, install instructions, and all of the product information to push people through the sales funnel and keep them from visiting other sites to get that information.

Step 3: Getting People From Your Social Media To Your Site

Now the fun part - getting people to from your social media profiles to your site. There are many different ways to do this, but following these steps can help ensure that you are maximizing your social media traffic to your site.

Make Sure You Post Often

People are constantly checking social media for the latest news and updates. This is why it is highly important to update often to show up in news feeds more often. While you do not want to flood your fan's timelines, posting 1-2 times a day can help to increase visibility and interactions on your posts. It is also an easy way to show potential consumers that you are active on social media, which is always a plus when someone is researching your company. Include links to your site for more information on your posts.

Switch Up Your Content

Posting simply text status updates is so 2010. In order to take up more real estate on timelines and increase user engagement (not to mention favor algorithms) it is important to use video and photo status updates. With apps like Pinterest and Instagram, more and more people are becoming accustomed to visual stimulation. Videos and photos can evoke a more personal feel about a brand or company as they can show off more than you can type. By seeing the types of photos and videos you share, a person can feel more connected to you and your brand.

Share Content Of Others

One easy way to make a post update when you are having trouble coming up with content is by sharing other company's posts. This helps to give you extra content to post and introduces your brand to another company or individual. If you are lucky, they will return the favor and share one of your posts thus introducing your brand to their network. When doing this, make sure that their content matches your brand's ultimate goal to keep uniformity of your content.

Repost Your Own Posts

Another easy way to come up with content ideas is to share old content that got good engagement in the past. You will see many companies doing this as it is quick, easy, and has been proven to work. A simple click of a button can save you time and energy coming up with a new post, and it is most likely going to do just as good as it did the first time around.

Find Unique Ways To Drive Engagement

Engagement on your posts can help others feel more comfortable about your brand, allow you to connect with your fans, and can even help get your post seen by others thanks to social media algorithms. While telling people to specifically LIKE or COMMENT can trigger some algorithms to mark your post as spammy, there are many ways to get people commenting without telling them what to do. You can ask a question, post a question as a photo, or have people tell their own personal stories that relate to your content.

Keep Up With Interactions

Now that you have people interacting with your content, it is time to go back in and reply to these comments or mentions to interact back with your fans. This goes a long way with most people as it shows the business cares about their fans. This can be done in a quick thank you, answering questions, or providing more information to those who need it. Either way you do it, showing that you are actively interacting with your consumers is a great way to build trust.

Automating Serverless Framework Deployments Using Bitbucket Pipelines

Bitbucket now offers pre-built Pipes to deploy Lambdas to AWS. But what if we want to deploy an entire Serverless stack? That’s what we’ll talk about today.

What is the Serverless framework?

The Serverless framework is a vendor-agnostic, declarative, and configurable framework. We use it to deploy Lambdas and their dependencies. We define our stack as a YAML file, and Serverless takes care of resource management.

Connecting MongoDB to Ruby With Self-Signed Certificates for SSL

Given the popularity of our post on connecting MongoDB SSL with Self-Signed Certificates in Node.js, we decided to write a tutorial on connecting MongoDB with Ruby. In this article, we’ll show you how to connect to a MongoDB server configured with self-signed certificates for SSL using both the Ruby MongoDB driver and the popular Object-Document-Mapper (ODM) mongoid.

ScaleGrid currently uses self-signed certificates for SSL when creating nodes for a new cluster. Additionally, we also provide you with the option of purchasing your own SSL certificates and configuring them on the MongoDB server, and you can email to learn more about this offer.

JMeter Correlation: The Best Way for Extracting Variables

Dynamic response in software testing provides different values for different iterations. This might affect the subsequent requests. This JMeter Correlation article will show you how to store the dynamic value from the response, store in a variable and use it in all required requests.

What is Correlation?

Correlation is the process of extracting some value from the response of one step into the request of another step. It captures and stores the dynamic response from the server and passes it on to subsequent requests.

Data Lakes Are Not Just For Big Data

We recently wrote an article debunking common myths about data lake architectures, data lake definitions, and data lake analytics. It is called "What is a Data Lake? Get A Leg Up Avoiding The Biggest Myths." In that article, we framed the current conversation about data lakes and how they fit within enterprise data strategies. This topic has historically been confusing and opaque for those wanting to get value from a data lake due to conflicting advice from consultants and vendors.  

One area that can be particularly confusing is the perception that lakes are only for "big data." If you spend any time reading materials on lakes, you would think there is only one type and it would look like the Capsian Sea (it’s a lake despite “sea” in the name). People describe data lakes as massive, all-encompassing entities, designed to hold all knowledge. The good news is that lakes are not just for "big data" and you have more opportunities than ever to have them be part of your data stack.

My Journey With Python (Part I)

I’ve been working with Java for about 14 years now, and the last two years I’ve also worked with Node.js and Golang to build some middleware AI platforms at my startup. Nevertheless, I often push myself in learning other technologies as well. I’ve been learning Python these past few weeks. I was inspired by its concise syntax and the prominent feature that supports almost anything. You can use Python for any GUI and/or web development, operating system shell, data processing and analysis (data science), etc. Someone said that you can build the world with Python. Mmmmm, sounds interesting.

Since I believe that the best way to grasp the knowledge is to write what I’ve learned, I’m gonna try here to write everything I know so far about Python. I have read different books and websites, so here I’m trying to summarize within six parts everything I gotten from these different resources. Hopefully, you'll find this article useful, especially for those of you who are trying to learn Python in a crash course.

Computing Spatial Distances in RavenDB Queries

RavenDB has had support for spatial queries for a long time. In RavenDB 4.0 we did a whole bunch of work to make spatial queries better. In particular, we have separate the concepts of searching and ordering for spatial queries. In most cases, if you are doing a spatial query, you'll want to sort the results by their distance. The classic example is: "Give me the Pizza stores within 5 km from me". I'll usually also want to see them listed by their distance. But there are other ways to go about it. For example, if I want to see a concert by Queen, I want to sort them by distance, but I don't want to do any spatial filtering.

It gets interesting when you combine different spatial operations at the same time. For example, consider the following query. Here is how you can search for a house in a particular school district, but want to find the one that is nearest to the office. The two spatial queries aren't related at all to one another.

Spring Boot Tutorial for Beginners: Hello World Program

We will create a simple Hello world program in this article. We will use Spring Boot to create our first Hello World program.

Developing your first Spring Boot application is quite easy. As we know, Spring Boot makes it easy to create stand-alone, production-grade Spring-based applications that you can "just run." It's basically used to minimize the configuration or the boiler plate code.

Apache NiFi Overview

What Is Apache NiFI?

Apache NiFi is a robust open-source Data Ingestion and Distribution framework and more. It can propagate any data content from any source to any destination.

NiFi is based on a different programming paradigm called Flow-Based Programming (FBP). I’m not going to explain the definition of Flow-Based Programming. Instead, I will tell how NiFi works, and then you can connect it with the definition of Flow-Based Programming.