Newsfeeds

PUBG is rolling out console crossplay to Xbox One and PS4 this year

Social/Online Games - Gamasutra - 19 August 2019 - 9:06am

The team behind PlayerUnknown†™s Battlegrounds is bringing cross-platform play to its Xbox One and PlayStation 4 versions. ...

Categories: Game Theory & Design

Agaric Collective: Adding HTTP request headers and authentication to remote JSON and XML in Drupal migrations

Planet Drupal - 19 August 2019 - 7:45am

In the previous two blog posts, we learned to migrate data from JSON and XML files. We presented to configure the migrations to fetch remote files. In today's blog post, we will learn how to add HTTP request headers and authentication to the request. . For HTTP authentication, you need to choose among three options: Basic, Digest, and OAuth2. To provide this functionality, the Migrate API leverages the Guzzle HTTP Client library. Usage requirements and limitations will be presented. Let's begin.

Migrate Plus architecture for remote data fetching

The Migrate Plus module provides an extensible architecture for importing remote files. It makes use of different plugin types to fetch file, add HTTP authentication to the request, and parse the response. The following is an overview of the different plugins and how they work together to allow code and configuration reuse.

Source plugin

The url source plugin is at the core of the implementation. Its purpose is to retrieve data from a list of URLs. Ingrained in the system is the goal to separate the file fetching from the file parsing. The url plugin will delegate both tasks to other plugin types provided by Migrate Plus.

Data fetcher plugins

For file fetching, you have two options. A general-purpose file fetcher for getting files from the local file system or via stream wrappers. This plugin has been explained in detail on the posts about JSON and XML migrations. Because it supports stream wrapper, this plugin is very useful to fetch files from different locations and over different protocols. But it has two major downsides. First, it does not allow setting custom HTTP headers nor authentication parameters. Second, this fetcher is completely ignored if used with the xml or soap data parser (see below).

The second fetcher plugin is http. Under the hood, it uses the Guzzle HTTP Client library. This plugin allows you to define a headers configuration. You can set it to a list of HTTP headers to send along with the request. It also allows you to use authentication plugins (see below). The downside is that you cannot use stream wrappers. Only protocols supported by curl can be used: http, https, ftp, ftps, sftp, etc.

Data parsers plugins

Data parsers are responsible for processing the files considering their type: JSON, XML, or SOAP. These plugins let you select a subtree within the file hierarchy that contains the elements to be imported. Each record might contain more data than what you need for the migration. So, you make a second selection to manually indicate which elements will be made available to the migration. Migrate plus provides four data parses, but only two use the data fetcher plugins. Here is a summary:

  • json can use any of the data fetchers. Offers an extra configuration option called include_raw_data. When set to true, in addition to all the fields manually defined, a new one is attached to the source with the name raw. This contains a copy of the full object currently being processed.
  • simple_xml can use any data fetcher. It uses the SimpleXML class.
  • xml does not use any of the data fetchers. It uses the XMLReader class to directly fetch the file. Therefore, it is not possible to set HTTP headers or authentication.
  • xml does not use any data fetcher. It uses the SoapClient class to directly fetch the file. Therefore, it is not possible to set HTTP headers or authentication.

The difference between xml and simple_xml were presented in the previous article.

Authentication plugins

These plugins add authentication headers to the request. If correct, you could fetch data from protected resources. They work exclusively with the http data fetcher. Therefore, you can use them only with json and simple_xml data parsers. To do that, you set an authentication configuration whose value can be one of the following:

  • basic for HTTP Basic authentication.
  • digest for HTTP Digest authentication.
  • oauth2 for OAuth2 authentication over HTTP.

Below are examples for JSON and XML imports with HTTP headers and authentication configured. The code snippets do not contain real migrations. You can also find them in the ud_migrations_http_headers_authentication directory of the demo repository https://github.com/dinarcon/ud_migrations.

Important: The examples are shown for reference only. Do not store any sensitive data in plain text or commit it to the repository.

JSON and XML Drupal migrations with HTTP request headers and Basic authentication. source: plugin: url data_fetcher_plugin: http # Choose one data parser. data_parser_plugin: json|simple_xml urls: - https://understanddrupal.com/files/data.json item_selector: /data/udm_root # This configuration is provided by the http data fetcher plugin. # Do not disclose any sensitive information in the headers. headers: Accept-Encoding: 'gzip, deflate, br' Accept-Language: 'en-US,en;q=0.5' Custom-Key: 'understand' Arbitrary-Header: 'drupal' # This configuration is provided by the basic authentication plugin. # Credentials should never be saved in plain text nor committed to the repo. autorization: plugin: basic username: totally password: insecure fields: - name: src_unique_id label: 'Unique ID' selector: unique_id - name: src_title label: 'Title' selector: title ids: src_unique_id: type: integer process: title: src_title destination: plugin: 'entity:node' default_bundle: pageJSON and XML Drupal migrations with HTTP request headers and Digest authentication. source: plugin: url data_fetcher_plugin: http # Choose one data parser. data_parser_plugin: json|simple_xml urls: - https://understanddrupal.com/files/data.json item_selector: /data/udm_root # This configuration is provided by the http data fetcher plugin. # Do not disclose any sensitive information in the headers. headers: Accept: 'application/json; charset=utf-8' Accept-Encoding: 'gzip, deflate, br' Accept-Language: 'en-US,en;q=0.5' Custom-Key: 'understand' Arbitrary-Header: 'drupal' # This configuration is provided by the digest authentication plugin. # Credentials should never be saved in plain text nor committed to the repo. autorization: plugin: digest username: totally password: insecure fields: - name: src_unique_id label: 'Unique ID' selector: unique_id - name: src_title label: 'Title' selector: title ids: src_unique_id: type: integer process: title: src_title destination: plugin: 'entity:node' default_bundle: pageJSON and XML Drupal migrations with HTTP request headers and OAuth2 authentication. source: plugin: url data_fetcher_plugin: http # Choose one data parser. data_parser_plugin: json|simple_xml urls: - https://understanddrupal.com/files/data.json item_selector: /data/udm_root # This configuration is provided by the http data fetcher plugin. # Do not disclose any sensitive information in the headers. headers: Accept: 'application/json; charset=utf-8' Accept-Encoding: 'gzip, deflate, br' Accept-Language: 'en-US,en;q=0.5' Custom-Key: 'understand' Arbitrary-Header: 'drupal' # This configuration is provided by the oauth2 authentication plugin. # Credentials should never be saved in plain text nor committed to the repo. autorization: plugin: oauth2 grant_type: client_credentials base_uri: https://understanddrupal.com token_url: /oauth2/token client_id: some_client_id client_secret: totally_insecure_secret fields: - name: src_unique_id label: 'Unique ID' selector: unique_id - name: src_title label: 'Title' selector: title ids: src_unique_id: type: integer process: title: src_title destination: plugin: 'entity:node' default_bundle: page

What did you learn in today’s blog post? Did you know the configuration names for adding HTTP request headers and authentication to your JSON and XML requests? Did you know that this was limited to the parsers that make use of the http fetcher? Please share your answers in the comments. Also, I would be grateful if you shared this blog post with others.

This blog post series, cross-posted at UnderstandDrupal.com as well as here on Agaric.coop, is made possible thanks to these generous sponsors: Drupalize.me by Osio Labs has online tutorials about migrations, among other topics, and Agaric provides migration trainings, among other services.  Contact Understand Drupal if your organization would like to support this documentation project, whether it is the migration series or other topics.

Read more and discuss at agaric.coop.

Categories: Drupal

Using mystery as the core of marketing. - by Alejandro Maldonado

Gamasutra.com Blogs - 19 August 2019 - 7:41am
Yume Nikki is a very good game, but the mystery surrounding the developer, Kikiyama, was definitely of great importance for all the commercial movements around it.
Categories: Game Theory & Design

Kliuless #45: Esports Expands - by Kenneth Liu

Gamasutra.com Blogs - 19 August 2019 - 7:36am
Each week I compile a gaming industry insights newsletter that I publish broadly. Opinions are mine.
Categories: Game Theory & Design

The first four days of a Kickstarter - by Nic Rutherford

Gamasutra.com Blogs - 19 August 2019 - 7:36am
More information about the Fringe Planet Kickstarter - along with two huge mistakes I made with campaign. Blogging about this to help others avoid these mistakes
Categories: Game Theory & Design

Beginner balance versus pro balance - by Joost van Dongen

Gamasutra.com Blogs - 19 August 2019 - 7:33am
What to do if something is overpowered for beginners, but fine for experienced players? Simple stat changes won't do in such cases. This blogpost discusses 3 approaches to fixing beginner balance that we've used in Awesomenauts and Swords & Soldiers 2.
Categories: Game Theory & Design

NBG Currency

New Drupal Modules - 19 August 2019 - 6:57am
Categories: Drupal

New tool makes web browsing easier for the visually impaired

Virtual Reality - Science Daily - 19 August 2019 - 6:30am
Researchers have developed a new voice assistant that allows people with visual impairments to get web content as quickly and as effortlessly as possible from smart speakers and similar devices.
Categories: Virtual Reality

Downtime Training

Gnome Stew - 19 August 2019 - 5:00am

As many of my close circle of friends know, I was late to play the fifth edition of the world’s greatest role playing game. It’s a long story, but the fourth edition of the game burned me badly enough, I didn’t want to risk my time, energy, and money on the next version. I have to admit that I regret this delay because I’ve been running a game of fifth edition for the past few months, and it’s been incredibly fun. However, this isn’t a review or commentary on fifth edition, but I did want to set the stage.

I have for expanding the “Training to Gain Levels” concepts in the Dungeon Master’s Guide, and I thought I’d drop them here for your consideration, consumption, and possible commentary. So here goes with the brainstorming….

 I’ve never been a huge fan of “trapping” someone at their current level. Share1Tweet1Reddit1Email

The “Training to Gain Levels” section of the DMG has a very brief segment on page 131 regarding an optional approach at training to level up. I’m glad they made it optional because I’ve never been a huge fan of “trapping” someone at their current level until they leave the adventure behind, find a nearby city, track down someone better than them, and train for a certain period of time before they can leverage what they’ve already learned “on the job” or “in the field.” It just doesn’t seem fair or right. It also interrupts the flow of the storytelling because players want (or even need) their characters to be as cool and powerful as possible while running through the storyline.

Xanathar’s Guide to Everything expands on the idea of training to allow a character to learn a language or pick up a proficiency with a tool. That’s an excellent expansion of the training concept, and I like it quite a bit. I’ll even go on record to state that I love this style of training because it improves the character by “spending” some downtime moments on it.

I am a fan of is training to gain experience points. Share1Tweet1Reddit1Email

In the level-based training, what I am a fan of is training to gain experience points. These XP can, obviously, trigger a “level up” moment if enough XP is gain. That’s where my concepts and ideas come into play. If a player simply doesn’t have anything to do with their character during a downtime segment, then I don’t mind if they run off to a trainer, expert, mentor, or some such to spend a downtime segment (and some gold) to earn a few XP.

Basing my chart on the one found in the DMG, here’s my proposal:

Current Level

Downtime Segments

Training Cost

XP Gain

1-4

1

20 gp

100 XP

5-10

2

40 gp

1250 XP

11-16

3

60 gp

2,500 XP

17-20

4

80 gp

6,500 XP

This also assumes the PC can track down someone better than them to do the teaching. As the character reaches higher tiers of play, this will become more difficult. I’m going to leverage the rarity system from the DMG for magic items, and state that trainers are going to be common, uncommon, rare, or very rare. The more difficult the trainer is to find might lead to side quests to find the trainer, or even downtime and gold spent to find the trainer. I’m going to throw out an optional table here for my optional ruleset of training. This one pertains to finding the trainer.

Current Level

Rarity

Downtime Segments

Finding Cost

1-4

Common

0 (Automatic)

0 gp

5-10

Uncommon

1

20 gp

11-16

Rare

2

40 gp

17-20

Very Rare

3

60 gp

The above table shows long it would take to find a trainer and how much in expense it would take in bribes and other expenses to track down the trainer. I’d also recommend someone who is flush with liquid funds to spend more than the base “finding cost” to reduce the downtime segments, so they can find their trainer faster. How this plays out in your game is entire up to you.

 I’m completely aware that this may create a party imbalance. Share1Tweet1Reddit1Email

I’m completely aware that this may create a party imbalance to some extent because this may allow one character to obtain one level more than the rest of the party, but they’ll also be behind the other characters in gold, renown, social contacts, and so on. I think it will even out in the long run because the XP gains from training that I’m proposing aren’t that extreme and won’t allow the higher level PC to remain at that higher plateau for too long.

Those are my ideas and approaches on training to gain experience points in fifth edition. See any gaps in the proposal? How about some ideas to use or improve on the concept? Let me know!

Categories: Game Theory & Design

Group SAML

New Drupal Modules - 19 August 2019 - 3:14am

The Group SAML (gsaml) module allows you to manage group permissions based on a selected user attribute. The module make uses of the following configurations: an array of the user attributes, an array of group roles and an array of terms. It then creates a group for each term. The combination of group's with roles creates a matrix which is filled with the strings from the user entity.

Therefore it is possible to manage user access to content and media by taxonomy term.

The configuration page can be faund in /en/admin/group/saml.

Features:

Categories: Drupal

Agiledrop.com Blog: Top 10 Drupal Accessibility Modules

Planet Drupal - 19 August 2019 - 3:09am

In this post, we'll take a look at some of the most useful modules that will help make your Drupal site more accessible to developers, content editors and users alike.

READ MORE
Categories: Drupal

Slack Logger

New Drupal Modules - 19 August 2019 - 2:50am

This module is submodule for Slack module which allows sending error logs to your configured Slack channel.

You can configure the module, to select a minimum severity level, for example:
Configured level value is "Error", so when all logs that are at least errors (Error, Critical, Alert, Emergency), will be sent to your slack.

Categories: Drupal

Dries Buytaert: Low-code and no-code tools continue to drive the web forward

Planet Drupal - 19 August 2019 - 1:35am

A version of this article was originally published on Devops.com.

Twelve years ago, I wrote a post called Drupal and Eliminating Middlemen. For years, it was one of the most-read pieces on my blog. Later, I followed that up with a blog post called The Assembled Web, which remains one of the most read posts to date.

The point of both blog posts was the same: I believed that the web would move toward a model where non-technical users could assemble their own sites with little to no coding experience of their own.

This idea isn't new; no-code and low-code tools on the web have been on a 25-year long rise, starting with the first web content management systems in the early 1990s. Since then no-code and low-code solutions have had an increasing impact on the web. Examples include:

While this has been a long-run trend, I believe we're only at the beginning.

Trends driving the low-code and no-code movements

According to Forrester Wave: Low-Code Development Platforms for AD&D Professionals, Q1 2019, In our survey of global developers, 23% reported using low-code platforms in 2018, and another 22% planned to do so within a year..

Major market forces driving this trend include a talent shortage among developers, with an estimated one million computer programming jobs expected to remain unfilled by 2020 in the United States alone.

What is more, the developers who are employed are often overloaded with work and struggle with how to prioritize it all. Some of this burden could be removed by low-code and no-code tools.

In addition, the fact that technology has permeated every aspect of our lives — from our smartphones to our smart homes — has driven a desire for more people to become creators. As the founder of Product Hunt Ryan Hoover said in a blog post: As creating things on the internet becomes more accessible, more people will become makers..

But this does not only apply to individuals. Consider this: the typical large organization has to build and maintain hundreds of websites. They need to build, launch and customize these sites in days or weeks, not months. Today and in the future, marketers can embrace no-code and low-code tools to rapidly develop websites.

Abstraction drives innovation

As discussed in my middleman blog post, developers won't go away. Just as the role of the original webmaster has evolved with the advent of web content management systems, the role of web developers is changing with the rise of low-code and no-code tools.

Successful no-code approaches abstract away complexity for web development. This enables less technical people to do things that previously could only by done by developers. And when those abstractions happen, developers often move on to the next area of innovation.

When everyone is a builder, more good things will happen on the web. I was excited about this trend more than 12 years ago, and remain excited today. I'm eager to see the progress no-code and low-code solutions will bring to the web in the next decade.

Categories: Drupal

Low-code and no-code tools continue to drive the web forward

Dries Buytaert - 19 August 2019 - 1:35am

A version of this article was originally published on Devops.com.

Twelve years ago, I wrote a post called Drupal and Eliminating Middlemen. For years, it was one of the most-read pieces on my blog. Later, I followed that up with a blog post called The Assembled Web, which remains one of the most read posts to date.

The point of both blog posts was the same: I believed that the web would move toward a model where non-technical users could assemble their own sites with little to no coding experience of their own.

This idea isn't new; no-code and low-code tools on the web have been on a 25-year long rise, starting with the first web content management systems in the early 1990s. Since then no-code and low-code solutions have had an increasing impact on the web. Examples include:

While this has been a long-run trend, I believe we're only at the beginning.

Trends driving the low-code and no-code movements

According to Forrester Wave: Low-Code Development Platforms for AD&D Professionals, Q1 2019, In our survey of global developers, 23% reported using low-code platforms in 2018, and another 22% planned to do so within a year..

Major market forces driving this trend include a talent shortage among developers, with an estimated one million computer programming jobs expected to remain unfilled by 2020 in the United States alone.

What is more, the developers who are employed are often overloaded with work and struggle with how to prioritize it all. Some of this burden could be removed by low-code and no-code tools.

In addition, the fact that technology has permeated every aspect of our lives — from our smartphones to our smart homes — has driven a desire for more people to become creators. As the founder of Product Hunt Ryan Hoover said in a blog post: As creating things on the internet becomes more accessible, more people will become makers..

But this does not only apply to individuals. Consider this: the typical large organization has to build and maintain hundreds of websites. They need to build, launch and customize these sites in days or weeks, not months. Today and in the future, marketers can embrace no-code and low-code tools to rapidly develop websites.

Abstraction drives innovation

As discussed in my middleman blog post, developers won't go away. Just as the role of the original webmaster (FTP hand-written HTML files, anyone?) has evolved with the advent of web content management systems, the role of web developers is changing with the rise of low-code and no-code tools.

Successful no-code approaches abstract away complexity for web development. This enables less technical people to do things that previously could only be done by developers. And when those abstractions happen, developers often move on to the next area of innovation.

When everyone is a builder, more good things will happen on the web. I was excited about this trend more than 12 years ago, and remain excited today. I'm eager to see the progress no-code and low-code solutions will bring to the web in the next decade.

Categories: Drupal

Amazon Elastic Transcoder and AWS Lambda

New Drupal Modules - 19 August 2019 - 1:27am

This module is provide all functionality for Amazon Elastic Transcoder and AWS Lambda in Drupal 8.

Currently In development mood.

Categories: Drupal

Fuzzy Thinking: Top Ten Rejected 1st Ed. AD&D Module Titles

RPGNet - 19 August 2019 - 12:00am
The Goat Tower of Inverness?
Categories: Game Theory & Design

Designing communities for kindness

Social/Online Games - Gamasutra - 18 August 2019 - 11:51pm

How to better set up your game communities for kinder user experiences. ...

Categories: Game Theory & Design

Amazon Elastic Transcoder Move

New Drupal Modules - 18 August 2019 - 11:23pm

This module is move at new location:

https://www.drupal.org/project/aetl
Categories: Drupal

Liip: How to nail your on-page SEO: A step-by-step guide

Planet Drupal - 18 August 2019 - 3:00pm

On-page SEO is much more than title tags, meta descriptions and valuable content. Here is my actionable guide for digital marketers. I am an SEO Specialist and teamed up with one of my colleagues – a Content Marketing Specialist – for this article. Have fun reading it.

On-page SEO is about creating relevant signals to let search engines know what your page is about. Which improves the website’s ranking in search results.

There are no IT skills needed to implement on-page recommendations as most CMS have an extension for it. For example, if you use WordPress, download the Yoast SEO plugin, or add the Metatag module to Drupal.

On-Page SEO: Hypothetical case study

How to create those relevant signals? Let’s take the example of a florist. StarFlo is located in Lausanne and Zurich, Switzerland. StarFlo has a website in three languages (French, German and English). The flower shop decided to create a specific product page for wedding, in English. A product page is designed to provide information to users about a product and/or a service.

Find relevant keywords with the right search intent

The first step is to define keywords with the highest potential. The goal is to select words, which help to increase the ranking of the wedding product page.
Here are some examples of keywords (non-exhaustive list):

  • “wedding flowers lausanne”
  • “wedding flowers zurich”
  • “wedding table decorations”
  • “wedding bouquet”
  • “rose bouquet bridal”
  • “winter wedding flowers”
  • “wedding floral packages”
  • “orchid wedding bouquet”
  • “wedding flowers shop”

We will take the monthly volume of English keywords in Switzerland into consideration, because we are focusing on a flower shop located in Lausanne and Zurich whose product page is in English.

According to the image below, “wedding table decorations” and “wedding bouquet” have a higher volume (column Search) and a low difficulty score (column KD). Therefore, it could probably make sense to use those keywords. However, you need to investigate further.

If you check Google search results for the keyword “wedding table decorations”, you see a lot of images coming from Pinterest. People who are looking for “wedding table decorations” are looking for ideas and inspiration. As a result, “Wedding table decoration” might be a great blog post topic. As FloStar wants to create a product page, we suggest using “wedding flower shop” as a primary keyword, even if this keyword has a lower volume than “wedding table decorations”. The intent of the people searching “wedding flowers shop” is to buy wedding flowers. The intent of the new product page of FloStar is to sell wedding flowers. Therefore the goal is to align both the intent of the target public and the intent of the product page with this keyword.
Once you have the keywords, optimize the content of the page

On-page SEO structural elements

Title tags, H1, H2, and images are part of the on-page structural elements that communicate with search engines

Title tag best practices: clear and easy to understand

The title tag, is the page title and must contain the keyword in less than 60 characters (600 pixels). Ideally, the title tag is unambiguous and easy to understand. You define the title tag individually for each page.

For example:

Wedding flowers shop in Zurich & Lausanne | StarFlo

You do not need to end your title tag with your brand name. However, it helps to build awareness, even without raising the volume of clicks.

Meta description best practices: a short description with a call to action

The meta description describes the content of a page and appears in the search results. The purpose of the meta description is to help the user choose the right page among the results in Google Search. It must be clear, short and engaging. You have 160 characters at your disposal.

We recommend finishing your meta description with a clear call-to-action. Use a verb to describe what you want your target audience to do.

For example:

StarFlo is a flower shop located in Lausanne & Zurich which designs traditional & modern wedding flower arrangements. See our unique wedding creations.

SEO URL’s best practices

The URL is the address of your website. Its name describes both the content of the page and encompasses the page in the overall site map. The URL should contain the keyword and be short.
The structure of the URL is usually governed by rules in the CMS you are using.
Examples for StarFlo landing page about wedding flowers:
✔︎ https://starflo.ch/wedding-flowers
https://starflo.ch/node/357

Use secondary keywords to reinforce the semantic of your page

Startflow wants to be listed top for “wedding flower shop” and “Lausanne”. You can help this page improve its ranking by also using secondary keywords. Secondary keywords are keywords that relate to your primary keyword.

Ask yourself: what questions are your target audience looking to answer by searching for these keywords? What valuable information can you provide to help them?
Your text content must offer added value for your target audience. To ensure this, create a list of topics. In the case of StarFLo, you can include secondary keywords such as “wedding bouquet” and “wedding table decorations”. It may seem odd that the keyword used as the primary keyword has a lower volume than the secondary keywords, but it makes sense in this context. Because these secondary keywords reinforce the semantic of the page.

In the “wedding bouquet” section, you can give some examples of “Bridesmaid bouquets”, “Bridal bouquets” and “Maid of Honor bouquets”, as well as other services or products related to the proposed bouquets.

SEO H1 & H2 tags best practices: structure the text with several titles

A structured text with titles and subtitles is easier to read. Furthermore, titles support your organic referencing as they are considered strong signals by search engines. Start by defining your titles H1 and H2. Use only one H1. Your titles should be clear and descriptive. Avoid generic or thematic titles.

Here is an example:

  • H1: StarFlo, wedding flower shop specialized in nuptial floral design in Lausanne, Zurich & the surrounding area
  • H2: Outstanding wedding table decorations created by our wedding flower specialist in Lausanne & Zurich
  • H2: Wedding bouquet for the bride in Lausanne & Zurich
  • H2: Best seasonal flowers for your wedding
On-page content best practices: Write a text longer than 300 words

Keep in mind these three key points when you write your text:

  • Anything under 300 words is considered thin content.
  • Make sure that your primary keyword is part of the first 100 words in your text.
  • Structure your text with titles and subtitles to help your readers. Moreover, as said above H1 & H2 are strong signals
Images & videos best practices: Define file names, alt-texts and captions

Search engines don’t scan the content of a video or an image (yet). Search engines scan the content of file names, alt-texts and captions only.
Define a meaningful alt-text for each image and video. The alt-text should include your keyword in the file name. Google can then grasp what the image shows. Remember that you wish the website to load fast, so you may compress images.

SEO Internal linking best practices: create a thematic universe within your website using internal links

When writing your text, try to create links to other pages on your website. You can add links in the text or in teasers to race attention on more (or related) topics.

From a content point of view, when you link pages of your own website, you add value to your target audience as their attention is drawn to other pages of interest. Furthermore, the audience may stay longer on your website. Moreover, creating links gives the search engine a better understanding of the website and creates a thematic universe. Topics within such a universe will be preferred by search engines. Thematic universes help Google determine the importance of a page.

From an SEO point of view, internal linking is very important. Because it implies a transfer of authority between pages. A website with high domain authority will appear higher in the search engine results. Usually, homepages have the highest authority. In the case of StarFLo, you could add a hyperlink that connects the homepage to the wedding page. We also recommend adding hyperlinks between pages. For instance, you are writing about winter wedding flowers on your wedding page, and you have a dedicated page about seasonal bouquets. You could add a hyperlink from the wedding page to the seasonal flower page.

The result: the homepage will transfer the authority to the wedding page and the wedding page to the seasonal flower page. For each transfer of authority, there will be a slight dumping factor. This means that if a page has an authority of 10 when it links to another page, the authority transferred will be for example 8.5.

Outbound links Best practices: add relevant content

Link your content to external sources, when it makes sense. For example, StartFlo provided the floral decorations for a wedding in the Lausanne Cathedral. You can add a link to the website of Lausanne’s Cathedral while mentioning.

Bonus: write SEO-optimized blog posts with strong keywords

After publishing your product page, create more entry points to your website. For example, you can write blog posts about your main subject using powerful keywords.

Answer the needs of your readers

When we did the keyword research for StarFlo, we identified a list of topics connected to the main topic. As a reminder, when we were looking at wedding flowers, we discovered that people were very interested in wedding table decorations. We also noticed that people looked for different kinds of bouquets (types of flowers, etc.). You could, for instance, create a page about winter wedding flowers and use these related keywords on it. This strategy helps to define blog post topics.

On the winter wedding flowers page, you could describe the local flowers available in the winter months, the flowers that go best together, etc.

In this case, each of your pages should focus on a different keyword. If two pages are optimized for the same keyword, they compete with each other.

Prioritize your writing according to your business

Once you have a list of topics, it’s good practice not to start writing all at once. We recommend creating an editorial plan. Be honest with yourself: how many hours per week can you dedicate to writing? How long do you need to write a 500-word article? How long do you need to find or create suitable images?

Start with the strongest keywords and the topic with the highest priority for your business.

Here is an example of prioritization:

  • “Wedding table decoration”
  • “Wedding bouquet”
  • “Winter wedding flowers”
  • “Winter wedding floral packages”

If you start writing in September and the branding guidelines of your shop include ‘local’, ‘sustainable’ and ‘proximity’. You will, therefore, write about “Winter wedding flowers” first.

You decide to focus on:

  • “Winter wedding flowers”
  • “Winter wedding floral packages”

As a wrap-up, we prepared the checklist below for you.

Checklist
  • Main keyword is defined
  • Topic brings value to the target public
  • Meta Description and Title Page are written and contain the keyword
  • URL contains the keyword
  • H1 contains the keyword, at the beginning, if possible
  • Text contains a keyword density of 3%
  • Introduction and last paragraph have a particularly high keyword density
  • File names of photos and videos contain the keyword
  • Alt-Text of photos and videos contain the keyword
  • Photo captions contain the keyword
  • Page contains links to other pages on the site
  • Page contains links to valuable external resources
What’s next

On-page SEO is an important part of SEO. However, it’s not the only aspect. Technical SEO has also a tremendous impact. We work on a hands-on blog post about technical SEO. Reach out to us if you wish to be notified when our guide will be ready! Moreover, don’t miss our next SEO/ content meet-up taking place on the 26th of September. We are going to explain how to perform a keyword research. Contact our content expert if you want to be part of the meet up.

If you want to have a personalized workshop about on-page SEO or just want to increase your ranking on Google contact our SEO team:
for English, German and French.

Categories: Drupal

Liip: A recipe for "smart" applications

Planet Drupal - 18 August 2019 - 3:00pm

While creating applications that heavily rely on data, I’ve gotten excited about many projects which soon ended up in the graveyard of good ideas.

Have you experienced this chicken-and-egg situation: no one wants to give you money to develop something until they know how good it will be, but you can’t promise anything before experimenting with the data first?

Smart Application Canvas

To get out of this impasse fast, Liip's Data team has developed a pragmatic "recipe" for data-intensive applications: the Smart Application Canvas.

It's simple and takes around 5 minutes: whenever we get started on a project idea, we ask the four questions below. And then we ask them again at every iteration to see if the answers have changed in the meantime.

It doesn't matter which of the four you start with - the trick is to have at least a rough answer to all four questions before investing more time and energy into an idea (for example, building a prototype, pitching a project proposal, etc). As long as one of these "ingredients" remain entirely blank, the project has a slim chance of succeeding.

>> Download this template as a PDF: template_data-application-idea_v1-0.pdf

*Released under a "Creative Commons" license (Attribution / ShareAlike). This means that you're free to use and change it, provided you mention www.liip.ch and share any modified version under the same terms.* USE - Who are the users? What job does it do well for them?

Are you looking for a way to attract more new users, keep the current ones happy, or solve an annoying issue with an existing service? Do you want to make employees' life easier or to provide better public services for citizens?

Who to ask: Designers, product managers, line managers, frontline staff who are always in contact with users

Example: Customers can get immediate help 24/7 through a chatbot on our Facebook page.

Why: Avoid building something that nobody wants

BUSINESS CASE - Who might want to pay for this? How do they benefit in return?

Should the application help a person or an organization to save money, save time, or to generate more income? Should it help them to achieve something that isn't simply isn't possible with the current alternatives? Even with intangible benefits like happiness or social status, it's worth thinking of how much the current alternatives cost: this will give you an idea of how much you can afford to invest in the development of the application.

Who to ask: Businesspeople, salespeople, executives who have a bird's eye view of the most pressing concerns in their organization

Example: Online retailer XYZ can win more return customers thanks to a better after-sales service.

Why: Get someone to invest or give you a budget. The business benefits of innovative technology aren’t straightforward at first. Do you remember the time when smartphones were new and everyone thought they needed a native app just “because it’s the future”? By now it’s much easier to say whether an app is worth the cost, but what about a chatbot?

TECHNOLOGY - What main hardware / software are necessary to get the job done?

What is possible with current technology and with how much effort? Or how can a new technology be applied in a "real-world" application? The key part of the question here is "to get the job done". When innovative technologies come along, it's tempting to try to solve too many problems at once: if there are several possible use cases, pick one. You can always change it later if you see that it doesn't work.

Who to ask: Software engineers, data scientists, hardware engineers if applicable

Example: Facebook page, chatbot framework, natural language processing (NLP), search

Why: Avoid a very costly, never-ending implementation

DATA - What numbers, text, images are necessary for it to work?

Does your organization have a lot of great data but doesn't know what to do with it? What kind of data should you start collecting? Which external data sources can you use (e.g. open data)? Where is the data saved and in which format (e.g. in a database, in PDF files, in emails, ...)?

Who to ask: People who work with the data on a daily basis (e.g. Customer Care team), database specialist, data scientist

Example: Collection of past customer questions and matching support staff answers (e.g. in emails or in an issue tracking system)

Why: What makes software "smart" is data, rather than “only” predefined rules. There might be no / not enough data, its quality might not be sufficient, or it might be difficult to access because of security or technical issues. This makes the outcome of development unpredictable. Whether our data is good enough, we can only learn by trial-and-error.

Examples

Here are a few examples of early-stage ideas by participants of the Open Data Forum 2019. The goal was to come up with applications that make use of open data.

Some canvases already carry notes on the biggest risks the idea faces, so that this can be worked on as a next step.

Acknowledgements

The following were sources of inspiration:

  • Lean Canvas by Ash Maurya
  • Business Model Canvas by Strategyzer AG
  • Machine Learning Canvas by Louis Dorard
  • Migros's "Bananita" roulade cake enjoyed on a particularly creative coffee break
  • Our clients and colleagues in the past year with whom we've tested and refined our way of working

We're constantly working on improving our methods and would love to hear about your experience with the Smart Application Canvas. Drop us a line at team-data@liip.ch.

Categories: Drupal

Pages

Subscribe to As If Productions aggregator