Eksell Portfolio Theme Now Available in WordPress Themes Directory

Anders Norén’s new Eksell theme is now available for download from the WordPress Themes directory. Eksell was inspired by Swedish graphic designer Olle Eksell. It arrives a year and a half after Norén’s popular Chaplin theme was released.

Last week Justin Tadlock published a preview of the theme while it was still making its way through the review system. Since that time, Norén has added to the five block patterns he originally submitted with the theme. There are now 12 block patterns that help users create stacked galleries, calls to action, multiple columns with pullquotes, and more.

Eksell also includes a unique “Blank Canvas” page template that only displays content added in the block editor, which Norén said offers a preview of what users will be able to do once Full Site Editing (FSE) is merged into core.

The Eksell announcement post is a sobering reminder of the uncertainty facing even the most experienced theme developers with changes coming later this year. Norén said he is not planning to update his existing 20 themes to support FSE:

My current belief is that I won’t update my existing themes to take advantage of Full Site Editing. Not because I don’t buy into the vision of Full Site Editing, but because I don’t think anyone would be well-served by six year old themes (like Hoffman) very much not built for FSE being updated to sorta-kinda support it. I would rather spend that time on themes built from the ground up to take advantage of the new tools Full Site Editing gives us.

Once FSE is released, Norén said themes not updated to support it will immediately feel outdated “much like Classic Editor themes felt in the spring of 2019.” Theme developers don’t yet know what shape themes will take or how difficult it may be to update them once FSE is in core.

Norén is considering updating Eksell to bridge the gap between the world before FSE and whatever themes look like after it lands in core, but reserved the right to leave it behind with the others. For the time being, it is one of the best themes around for the block editor, but it may be the last of the truly classic themes before the dawn of a new era in theming.

SmartCrawl’s Schema: New Local Business Types, Schema Wizard — and More!

SmartCrawl just arrived with new and improved schema markup tools to help your WordPress site appear better than ever in search results! Schema options are another highly-requested feature to help search engines better understand your site’s content and increase your visibility.

And with SmartCrawl, you can get this set up — for free!

Let’s get right to it! We’ll be discussing:

  1. SmartCrawl and Schema Markup
  2. What Is Schema Markup?
  3. The New Local Business Schema Markup in SmartCrawl
  4. Adding Rules to Your Schema Type
  5. WooCommerce Product Schema
  6. Duplicating, Deleting, and More Schema Tweaks
  7. Adding Multiple Business Locations and More with Local Business Schema

You’ll just need to have SmartCrawl installed and activated on your WordPress site to get started.

1. SmartCrawl and Schema Markup

SmartCrawl recently had schema markup and schema types builder introduced with version 2.9.

Now with the release of 2.10, there are additional schema markup types for Local Business, WooCommerce, 60+ business subtypes — and she didn’t stop there!

Other new features added include:

  • The Schema Wizard to help you quickly set up your schema types
  • The option to duplicate the schema types for a quicker configuration of multiple types
  • The choice to enable or disable schema markup types

And more…

SmartCrawl makes it simple, so you just need to add the schema markup, save it with a few clicks, and then it’ll be valid on Google’s Rich Results Test. (Please note that it may take a bit for your site to appear, depending on a variety of factors.)

Google schema example on a cell phone.
Your business can have an impact like this in search results with SmartCrawl! Image source: https://developers.google.com/search/docs/data-types/local-business

Other plugins require properties to be filled in to configure the schema markup correctly.

We’ll be going over what schema markup is, what’s new in SmartCrawl’s new Schema Wizard, and demonstrate how the new features work.

With SmartCrawl, your schema will never be the same!

2. What Is Schema Markup?

In a nutshell, schema markup is a method to tell search engines and other applications about entities, actions, and relationships between entities.

What does that mean exactly? Well, to clarify, entities are essentially people, places, or things. An action can consist of an entity searching for something (aka — action). And when it comes to relationships, an example can be a business (entity) and that business’s location.

When it’s all said and done, the way your search inquiry appears on a search engine to a user is the result. With a good schema in place, there’s a lot more detail (e.g. store hours, ratings, locations) than just basic information.

Rich snippets can improve clickthrough rates, which can improve your SEO.

The best practices to ensure that schema is implemented correctly include:

  • Schema markup being included on your official website
  • Having a specific and applicable type and property names used
  • The JSON-LD, RDFa, or microdata formats used for schema
  • Having all relevant pages marked up
  • Not having pages that implement schema blocking Googlebot using robots.txt

The settings configured in SmartCrawl will be included as JSON-LD data in the head section. You’re able to view it when looking at a page’s source code. It’ll appear in a tag like this:

<script type="application/ld+json">{"@context":"https:\/\/schema.org","@graph":[{ ... }]</script>

All things between the opening and closing brackets in that tag would be the schema output created from your configuration in SmartCrawl, and it’s what search engines will use to populate the rich snippets in result pages.

There’s a lot of detailed schema information. To get an inside scoop of how it works, what it does, how to view it, and more, read our article: How to Add Schema.org Markup to WordPress for Better SEO.

3. The New Local Business Schema Markup in SmartCrawl

When we released SmartCrawl 2.9, we saw new schema types, including Article, Webpage, Events, FAQ, How-To, Product, and WooCommerce.

Now, with the release of 2.10, SmartCrawl also has Local Business added to its schema markup roster, which includes 60+ subtypes.

These additions allow you to customize the schema further to fit your needs and configure schema types to particular posts, pages, and taxonomies from the Types Builder in SmartCrawl’s new Schema Wizard.

The Types Builder is located in her admin under Schema > Types Builder.

SmartCrawl schema types.
You can even vote for a new schema type here.

This is where you’ll add a new type and choose what post types and taxonomies you want to associate with each schema.

With Type Builder, search engines will display your information in rich snippets and offer users valuable insights about yourself, a product, store, or whatever purpose you have your site set up for.

Let’s get started creating a new schema type. Just click Add New Type.

Where you add a new type.
One-click will get you started.

This will bring up options to start with. You’ll select the schema type you want to use. By default, each schema includes the properties Google requires and recommends.

As of now, you have the schema options of:

  • Article
  • Event
  • FAQ Page
  • How To
  • Local Business
  • Product
  • WooCommerce Product

Pick the most appropriate option and click Continue.

Where you add a schema type.
All of these schemas are recommended by google.

For this example, we’ll pick Article.

Once you decide on a schema type, you can select a Sub Type. This narrows it down to a more specific category of what your site’s about. Or, you can continue to use the Article schema type without subtypes.

Where you select subtypes.
You can also search for a subtype if you don’t see it listed below.

From here, you can rename it something other than Article to help you remember it.

Where you name the schema type.
For example, I renamed this one “Article for WPMU DEV Blog.”

Once you have it named, you can always edit it later on. And you’ll be ready to start…

4. Adding Rules to Your Schema Type

Now you can add Rules for your schema type. Each condition (except for Show Globally and Homepage) consists of two parts. The two components have two different dropdown menus.

The first dropdown selects the general location of the condition. The options for this currently are:

  • Page
  • Post Type
  • Show Globally
  • Homepage
  • Post Author Role
  • Post
  • Post Category
  • Post Tag
  • Media
  • Page Template
  • Custom Post Types
  • Post Format
The schema rules.
The dropdown has all the rules.

The custom post types will also become visible as additional items when the significant plugins are active. An example of this is if your site has WooCommerce installed and active, the first dropdown will also include “Product and Product Type.”

As we move forward, the second dropdown menu is dependent on the first one. There are corresponding dropdowns based on the first one.

For example, if you choose Post Type as a rule in the first dropdown, the next dropdown will have Post, Media, Template, and Page as options.

The second schema dropdown.
All of your options appear in the dropdown.

Check out a complete list of corresponding dropdowns in our documentation.

One thing to keep in mind about conditions is they function with AND, OR, and NOT logic. That means that conditions can be stacked to collaborate in union with each other, they can be made to overlap, and they can also function as an exclusion or inclusion.

Case in point, this particular condition is set for AND.

The AND button.
You can see AND is what’s selected.

AND means that the schema type is only applied when all the conditions have been added with AND logic are true.

When it comes to the Equal sign, by default, each condition stands as an inclusion to the schema type and is shown by the equal sign. That means that each added condition stands for a situation where the schema type will be applied.

If you want to change this, simply click on the equal sign, and it will turn into an unequal sign. With the unequal sign, the schema type will not be applied.

The unequal sign.
The equal sign gets crossed out when unequal is applied.

Add any AND rule by clicking AND. You can include as many as you’d like.

Add as many as you need.

Need to delete a rule? Just click on the red X that appears by it when hovering over a specific one.

As you can see, deleting just takes one click.

You can add an OR rule by clicking on ADD RULE (OR).

Where you add a rule.
Click ADD RULE (OR) adds an Or option.

Or will add a case for the schema type as an add-on to other conditions that are applied.

When you’re all set with adding your schema type, just hit + ADD, and the type will be added.

5. WooCommerce Product Schema

SmartCrawl has a fully predefined WooCommerce Product Schema markup. With this, you can create subtypes for variables and basic products. Plus, it has the option to fetch WooCommerce reviews and ratings automatically.

It’s so quick and easy; watch this schema get up in LESS than 15 seconds.

Whew! That was fast…

Need a recap (a bit slowed down)? We’ll go through it below.

First, I’ll mention, when this schema is used, it replaces the WooCommerce default schema. It will avoid duplicate product schema on the identical product pages, and Rich Results remain properly intact.

This schema is available as an option if you have the WooCommerce plugin installed and ready to go.

The WooCommerce product schema button.
Clicking on WooCommerce Product will get you started.

To start things off, you’ll have the option of choosing either a Simple Product or Variable Product subtype. This part can also be skipped if you prefer to use the generic WooCommerce Product type instead.

WooCommerce subtypes.
Choose between Variable Product, Simple Product, or none for the generic WooCommerce product type.

After selecting the subtype, choose your properties. The WooCommerce Product schema has the default properties:

  • Name
  • Description
  • SKU
  • Images
  • Brand
  • WooCommerce Reviews
  • Aggregate Rating
  • Aggregate Offer
The WooCommerce properties.
With the Image properties, you can add as many additional images as you’d like by clicking the plus sign.

As you can see, you can display ratings, offers, brands, and more!

And you can also include these additional properties by clicking Add Property:

  • GTIN
  • GTIN-8
  • GTIN-12
  • GTIN-13
  • GTIN-14
  • MPN
Where you add properties.
Once you have the properties you want, just click ‘Add.’

When it comes to WooCommerce Reviews, they will be repeated for each product review and can also be turned into a Reviews property if you would like to add your custom review instead of fetching WooCommerce reviews. This is done by clicking the Switch Type arrows that appear when hovered over.

Where you change the property type.
It’s one click to change the type of property.

Similarly, the Aggregate Offer features Switch Type arrows as well.

SmartCrawl delivers more than just a product schema for WooCommerce. With all of the property options and fine-tuning you can make, your WooCommerce WordPress site will be as eye-catching as ever on search results.

6. Duplicating, Deleting, and More Schema Tweaks

After clicking +ADD, SmartCrawl allows you to choose what post types and taxonomies you want to associate with each available schema type. The top section is where you can add more rules (like we just did) in the Location section.

Schema type rules.
Add more rules from this location.

From here, you can also Deactivate the type by clicking the blue switch. Or, Rename, Duplicate, or Delete by hitting the gear icon.

Where you deactivate, rename, duplicate, or delete a schema.
Flip the switch to deactivate this type.

Below the Location area, you can edit the Source and Value of each Property.

Again, this will vary depending on what schema type you have. For this example, here are the properties you have available for Article.

SEO meta.
As you can see, there are a lot of properties to this schema.

Want to reset the properties? That can be done in one click by tapping Reset Properties.

The reset properties button.
It’s as easy as ever to reset properties quickly.

Be sure to read our documentation to find out specific properties that are included with each schema type.

7. Adding Multiple Business Locations and More with Local Business Schema

Let’s say you have a business with more than one location. It’s easy to set up multiple locations with SmartCrawl’s Schema Wizard.

Plus, you can specify a Sub Type — everything from childcare, food establishment, government office, and more!

The Local Business schema makes it easy.

Local business schema.
Clicking on Local Business will get the schema started.

Let’s say you need to add a Local Business for “florist.” You just type it in the search bar…

As you can see, it will pull up your search with just a few letters.

Once you start, you can see the options for a Sub Type. SmartCrawl has over 60+ Local Business subtypes, so you’re bound to find what’s suitable for your business. We use all of the local business subtypes from Schema.org.

A subtype is optional, and no subtype is required if you don’t want one.

Many local business types have an additional setup option to refine the business type even further. For example, the Entertainment Business subtype gives you the options of:

  • Art Gallery
  • Casino
  • Comedy Club
  • Movie Theater
  • Night Club

And other options…

Where you select subtypes.
You decide what subtype best defines your business.

Do you have multiple addresses? You can add as many addresses as you’d like by clicking on the plus sign that appears when hovering over the Address property.

Adding another address is as simple as that.

This will show two (or however many) addresses but with the same Local business data. That would include the same phone number, reviews, ratings, etc.

Usually, business owners prefer to have different data for different locations and associate them with other pages to have a page for each place of business.

To do this, simply click Duplicate from the gear icon on your Local Business, and change the information (e.g. phone number, images, etc.) that reflect this particular location.

The duplicate dropdown from the gear icon.
You can also Rename and Delete from the gear icon.

SmartCrawl makes it possible, unlike some other SEO plugins. With Yoast and Rank Math, you have to add a new custom post type for each location. Additionally, Yoast and Rank Math don’t have the option to add multiple addresses under the exact location (if you wanted to add one more address).

More Schema Markup Coming Soon…

As you can see, setting up and implementing schema markup for your WordPress site is easier (and better) than ever with SmartCrawl!

And with SmartCrawl’s new updates, it doesn’t end there!

We’ll be adding more and more schema types in the near future. Plus, we’re initiating an in-post schema builder so that users can override schema settings added in SmartCrawl.

Additionally, we’re adding a custom schema builder where you’ll be able to start from scratch and add any schema type out there.

Also, do you have a specific schema you want to see included first? You’ll notice that there’s a place for YOU to vote on your schema types, right in SmartCrawl’s admin.

Where you vote for the next schema type.
What’s your top choice for a schema type?

With that, enjoy attention-grabbing text, hours, WooCommerce details, multiple locations, and more — thanks to SmartCrawl’s schema markup. She’ll ensure you’ll stomp your mark on the search engines and leave a great impression.

Reimagining the SQL Curriculum: Change How SQL is Taught

After looking at SQL's impressive 50-year reign and what we could learn from it, let us now focus on how we can learn it.

Not only is SQL everywhere, but it is also in high demand. A quick search of job boards easily reveals not only that virtually all of the S&P 500 companies are hiring for SQL skills, but that the demand for them is even higher than more 'high-tech' languages like R and Python.

Decoding Django Sessions in PostgreSQL

Sessions in Django

Sessions are an important part of any HTTP-based web framework. They allow web servers to keep track of the identities of repeat HTTP clients without requiring them to re-authenticate for each request. There are several different ways to keep track of sessions. Some do not require the server to persist session data (like JSON Web Tokens), while others do.

Django, a popular Python-based web framework, ships with a default session backend that does store persistent session data. There are several storage and caching options; you can elect to simply store sessions in the SQL database and look them up each time, store them in a cache like Redis or Memcached, or use both, with the caching engine set up in front of the database store. If you use one of the options that ultimately stores sessions in SQL, the django_session table will contain your user's sessions.

Maps Scroll Wheel Fix

This blog post by Steve Fenton came across my feeds the other day. I’d never heard of HERE maps before, but apparently they are embeddable somehow, like Google Maps. The problem is that you zoom and and out of HERE maps with the scrollwheel. So imagine you’re scrolling down a page, your cursor (or finger) ends up on the HERE map, and now you can’t continue scrolling down the page because that scrolling event is captured by the map and turns into map zooming.

Steve’s solution: put a “coverer” <div> over the map when a scroll event starts on the window, and remove it after a short delay (when scrolling “stops”). That solution resonates with me, as not only have I coded solutions like that in the past for embedded maps, we have a solution like that in place on CodePen today. On CodePen, you can resize the “preview” window, which is an <iframe> of the code you write. If you drag too swiftly, your mouse cursor (or touch event) might trigger movement off of the draggable element, possible onto the <iframe> itself. If that happens, the <iframe> will swallow the event, and the resizing you are trying to do stops working correctly. To prevent this, we put a “covered” <div> over top the <iframe> while you are dragging, and remove it when you stop dragging.

Thinking of maps though, it reminds me Brad Frost’s Adaptive Maps idea documented back in 2012. The idea is that embedding a map on a small screen mobile device just isn’t a good idea. Space is cramped, they can slow down page load, and, like Steve experienced nearly a decade later, they can mess with users scrolling through the page. Brads solution is to serve an image of a map (which can still be API-driven) conditionally for small screens with a “View Map” link that takes them to a full-screen map experience, probably within the map native app itself. Large screens can still have the interactive map, although, I might argue that having the image-that-links-to-map-service might be a smart pattern for any browser with less technical debt.


The post Maps Scroll Wheel Fix appeared first on CSS-Tricks.

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

AgileIndy 2021: Why Agile Transformation Fails [Video]


This is Mike Cottmeyer's talk from AgileIndy 2021 on The Executive's Guide to Why Agile Transformation Fails.

Transcript

[Announcer] This is Mike Cottmeyer’s talk from AgileIndy, 2021 on “Why Agile Transformation Fails.”

– Okay, so we’re gonna talk about today is this thing I call “Executives Guide to Why Agile Transformations Fail.” And if you’ve been following my stuff, there’s really kind of a fascinating evolution of this story. So I got involved with agile back in like 2003 and I was working in this company called CheckFree. We were doing like large online banking bill payment kinds of things. And so my indoctrination to agile was never ever in the small. It was always large-scale agile stuff. And I was working for this VP that was like really super cool, is very into agile and we were coming up with really creative things for like team formation strategies and agile governance, all stuff. And this was like way before the days Dean Leffingwell hadn’t even written his first book on scaling. None of the stuff on scaling was out there. So we’re inventing scaling models and really trying to bring this. It was like these four or 500 people, this organization through an Agile Transformation. And so I started writing about multi-tier models and different teaming strategies and things like that and then I went to go work for version one for a couple of years. You guys remember them? It feels like I talk about them and I don’t even think they exist as a thing anymore. Version one CollabNet or something, I guess I call them now. So anyway, kind of a different company, but worked there probably about 10, 12 years ago and was going into a bunch of different organizations that were trying to adopt agile. And then the process developed a point of view around kind of why companies were jacking it up. And so I did talk on the three things and then we came up with this talk. It was just why agile fails. And the hypothesis behind that rev of why agile fails was largely about people trying to adopt practices of agile, and whether it’d be Scrum or extreme programming or now SAFe or LeSS or disciplined agile delivery, something like that, trying to adopt the practices of agile without the words I would use now, but I wouldn’t use them, the business architecture necessary for those practices to work.

Unifying Data Into a Single Source of Truth for Cumul.io With Panoply.io

Introduction

Being someone who works in the field of data visualization, I have seen my colleagues have 'the talk' with customers about data preparation all too often. It's a common pain point for anyone who needs a layer of analytics and visualizations for the data they’ve accumulated. It’s perfectly normal to arrive at this stage only to notice that data is distributed across different places, they don’t match in some cases, and overall look messy. 

Luckily, there are plenty of tools to help unify and clean data in a meaningful way. In this article, I've decided to demonstrate how such a tool would work together with a data visualization tool. I've decided to use Cumul.io (get a free trial) as my data visualization technology, and Panoply.io (get a free trial) as our data modeling tool.

Common Anti-Patterns in Go

It has been widely acknowledged that coding is an art, and like every artisan who crafts wonderful art and is proud of them, we as developers are also really proud of the code we write. In order to achieve the best results, artists constantly keep searching for ways and tools to improve their craft. Similarly, we as developers keep leveling up our skills and remain curious to know the answer to the single most important question — 'How to write good code.'

Frederick P. Brooks in his book 'The Mythical Man Month: Essays on Software Engineering' wrote:

Hibernate Naming Strategies: JPA Specification vs Spring Boot Opinionation

Each time we inject a dependency into our project, we sign a contract, which often has lots of hidden things "written in the fine print". In this article, we will take a look at something you could miss when signing a tripartite contract between you, Hibernate, and Spring Boot. We will talk about naming strategies.

Defaults in JPA Naming

The ultimate rule about defaults: they must be intuitive. Let's check if this rule applies to a standard Spring Boot application with default configuration using Hibernate as a JPA implementation. Imagine you have an entity "PetType". Let's guess what table name in the database it is associated with.

How to Extract Sentences and Entities From a String in Java

In this article, we will be discussing more great ways to utilize Natural Language Processing. As we have discussed in previous articles, natural language processing combines linguistics and artificial intelligence to perform large amounts of natural language data analysis. Essentially, this technology can simplify the scanning of content by categorizing and organizing it through machine learning. While these rules were formerly coded by hand, automatic learning has improved the process by leveraging statistical inference algorithms to produce models that can process unfamiliar or inaccurate information.

The two tasks that we will be covering today are how to extract sentences and how to extract entities from a string in Java. Extracting sentences from a string can be an incredibly time-consuming operation if you’re trying to parse chunks of text, but with the help of an NLP API, it becomes a quick and easy step. The API will scan the input string and return the separated sentences as individual strings, instantly making the text more readable for you or your customers.

The Data Access Layer in Jmix: JPA on Steroids

JPA with Jmix

Introduction

The data model is one of the cornerstones of any enterprise application. When you start planning the model, you should not only take into account business data requirements but also answer some additional questions that may affect your application design. For example: do you need row-based security? Are you going to use soft delete? Do we need CRUD API and who will do this boring job?

JPA is a de-facto standard for creating a data model for Java applications. This API does not provide facilities to implement advanced security or soft delete, so developers have to implement their own solutions.

How to Make Five Billion Dollars With APIs: API Monetization at eBay [Video]

API Monetization is on everybody’s mind: How can I make money with APIs? How can I justify my investments in API-related activities?

But all too often, direct monetization (i.e., charging for API access) is what people think about when they think about monetization. In the vast majority of cases, however, this monetization model is not a good choice. Instead, think of APIs as something to improve the value that you’re generating with your business.

Imagining native skip links

I love it when standards evolve from something that a bunch of developers are already doing, and making it easier and foolproof. Kitty Giraudel is onto that here with skip links, something that every website should probably have, and that has a whole checklist of things that we can and do screw up:

  • It should be the first thing to tab into.
  • It should be hidden carefully so it remains focusable.
  • When focused, it should become visible.
  • Its content should start with “Skip” to be easily recognisable.
  • It should lead to the main content of the page.

Doing this natively could solve all those problems and more (like displaying in the correct language for that user). Nice little project for someone to mock up as a browser extension, I’d say.

Reminds me of the idea of extending the Web Share API into native HTML. It’s just a good idea.

Direct Link to ArticlePermalink


The post Imagining native skip links appeared first on CSS-Tricks.

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

Top 18 Python Pattern Programs You Must Know About [Snippets]

Preparing for technical interviews takes a lot of preparation, and it’s highly probable that you might have to create Python pattern programs there. That’s why we’ve sorted a list of multiple ideas for pattern printing in Python to start your preparations. 

We have multiple kinds of Python pattern programs in this list, so choose your expertise and experience. Make sure that you understand what part of code does what before you move onto the next pattern. Without a proper understanding of how the system works, you would face a lot of difficulty in explaining its working.

Java Game Programming For Beginners: Where to Start

Java is broadly utilized by non-mainstream game advancement organizations and for making versatile games. Furthermore, it shouldn't come as a very remarkable shock, given how flexible the language is and given its rich assortment of open-source material. Large numbers of the world's top portable games have been created in Java. Mobile games like Minecraft, Mission Impossible III, asphalt 6, and the best PC games under 1 Gb RAM are more than a couple of well-known names you are likely acquainted with. 

The Ins and Outs of Java Game Programming

Java is not difficult to utilize, so a novice can figure out how to make a scope of projects and compose reusable code, effectively moving between PC frameworks as they do. In contrast with programming dialects like C++, Java is simpler to compose, investigate, learn, and gather. 

Implementing a Rock-Paper-Scissors Game Using Event Sourcing

Our favorite runtime environment for applications is usually Dropwizard but since many out there prefer Spring Boot I decided to use it instead for this article. Serialized Java client works with any runtime environment or platform you use on the JVM.

Configure the Serialized project

To develop our game we will use Serialized aggregates and projections. The aggregates will store the events for each game and the projections will provide a view of each game as well as a high score list of the top winners (in the case of multiple games being run).