Newsfeeds

Lullabot: Common max-age Pitfalls When Working with Drupal's Page Cache

Planet Drupal - 13 November 2019 - 12:18am

If you build sites with Drupal, you’ve probably heard at some point that Drupal 8’s caching system is great. So you probably think that it shouldn’t be a big deal to have a time-based piece of content in a Drupal page that's visited by millions of visitors, and still have a reasonable caching system behind it, right? Let’s figure it out in this article.

Categories: Drupal

Steam search suggestions & premium positioning - by Simon Carless

Gamasutra.com Blogs - 12 November 2019 - 10:05pm
This time out, I thought it would be interesting to look - incredibly specifically - at Steam search suggestions. That is, the games that pop up when you start typing in things in Steam search.
Categories: Game Theory & Design

PreviousNext: Updating to Drupal 8.8.0 Beta with Composer

Planet Drupal - 12 November 2019 - 8:46pm

PreviousNext continue to be major contributors to the development and promotion of Drupal 8. As participants of the Drupal 8.8.0 Beta Testing Program, we thought it would be useful to document the steps we took to update one of our sites on Drupal 8.7 to the latest 8.8.0 beta.

Every site is different, so your mileage may vary, but it may save you some time.

by Kim Pepper / 13 November 2019

Drupal 8.8 is a big release, with a number of new features added, and APIs deprecated to pave the way to a Drupal 9.0 release. Thankfully, the upgrade process was fairly straightforward in our case.

Upgrade PathAuto

First step was to deal with The Path Alias core subsystem has been moved to the "path_alias" module This meant some classes were moved to different namespaces. In order to make things smoother, we installed the latest version of pathauto module and clear the caches.

composer require drupal/pathauto:^1.6@beta
drush cr

Core Dev Composer Package

We use the same developer tools for testing as Drupal core, and we want to switch to the new core composer packages, so first we remove the old one.

composer remove --dev webflo/drupal-core-require-dev

Update Patches

We sometimes need to patch core using cweagans/composer-patches. In the case of this site, we are using a patch from ckeditor_stylesheets cache busting: use system.css_js_query_string which needed to be re-rolled for Drupal 8.8.x. We re-rolled the patch, then updated the link in the extra/patches section.

Update Drupal Core and Friends

In our first attempt, composer could not install due to a version conflict with some symfony packages (symfony/findersymfony/filesystem and symfony/debug). These are transient dependencies (we don't require them explicitly). Our solution was to explicitly require them (temporarily) with versions that Drupal core is compatible with, then remove them afterwards.

First require new Drupal core and dependencies:

composer require --update-with-dependencies \
  drupal/core:^8.8@beta \
  symfony/finder:^3.4 \
  symfony/filesystem:^3.4

Second, require new core-dev package and dependencies:

composer require --dev --update-with-dependencies \
  drupal/core-dev:^8.8@beta \
  symfony/debug:^3.4

Lastly, remove the temporary required dependencies:

composer remove -n \
  symfony/finder \
  symfony/filesystem \
  symfony/debug

Update the Database and Export Config

Now our code is updated, we need to update the database schema, then re-export our config. We use drush_cmi_tools, so your commands may be different, e.g. just a drush config-export instead of drush cexy.

drush updb
drush cr
drush cexy

Settings.php

We also need to update our settings.php file now that The sync directory is defined in $settings and not $config_directories.

This is a trivial change from:

$config_directories['sync'] = 'foo/bar';to:$settings['config_sync_directory'] = 'foo/bar';

Final Touches

In order to make sure our code is compatible with Drupal 9, we check for any custom code that is using deprecated APIs using the excellent PHPStan and Matt Glaman's mglaman/phpstan-drupal. (Alternatively you can use Drupal Check.)

 We were using an older version that was incompatible with "nette/bootstrap":">=3" so needed to remove that from the conflict section and do the remove/require dance once again.

composer remove --dev \
  phpstan/phpstan-deprecation-rules \
  mglaman/phpstan-drupal

composer require --dev --update-with-dependencies \
  phpstan/phpstan-deprecation-rules:^0.11.2 \
  mglaman/phpstan-drupal:^0.11.12

And that's it! Altogether not too painful once the composer dependencies were all sorted out. As we are testing the beta, some of these issues may be addressed in future betas and RCs.

I hope you found this useful! Got a better solution? Let us know in the comments!

Tagged Drupal Beta Testing
Categories: Drupal

PreviousNext: Updating to Drupal 8.8.0 Beta with Composer

Planet Drupal - 12 November 2019 - 8:46pm

PreviousNext continue to be major contributors to the development and promotion of Drupal 8. As participants of the Drupal 8.8.0 Beta Testing Program, we thought it would be useful to document the steps we took to update one of our sites on Drupal 8.7 to the latest 8.8.0 beta.

Every site is different, so your mileage may vary, but it may save you some time.

by Kim Pepper / 13 November 2019

Drupal 8.8 is a big release, with a number of new features added, and APIs deprecated to pave the way to a Drupal 9.0 release. Thankfully, the upgrade process was fairly straightforward in our case.

Upgrade PathAuto

First step was to deal with The Path Alias core subsystem has been moved to the "path_alias" module This meant some classes were moved to different namespaces. In order to make things smoother, we installed the latest version of pathauto module and clear the caches.

composer require drupal/pathauto:^1.6@beta
drush cr

Core Dev Composer Package

We use the same developer tools for testing as Drupal core, and we want to switch to the new core composer packages, so first we remove the old one.

composer remove --dev webflo/drupal-core-require-dev

Update Patches

We sometimes need to patch core using cweagans/composer-patches. In the case of this site, we are using a patch from ckeditor_stylesheets cache busting: use system.css_js_query_string which needed to be re-rolled for Drupal 8.8.x. We re-rolled the patch, then updated the link in the extra/patches section.

Update Drupal Core and Friends

In our first attempt, composer could not install due to a version conflict with some symfony packages (symfony/findersymfony/filesystem and symfony/debug). These are transient dependencies (we don't require them explicitly). Our solution was to explicitly require them (temporarily) with versions that Drupal core is compatible with, then remove them afterwards.

First require new Drupal core and dependencies:

composer require --update-with-dependencies \
  drupal/core:^8.8@beta \
  symfony/finder:^3.4 \
  symfony/filesystem:^3.4

Second, require new core-dev package and dependencies:

composer require --dev --update-with-dependencies \
  drupal/core-dev:^8.8@beta \
  symfony/debug:^3.4

Lastly, remove the temporary required dependencies:

composer remove -n \
  symfony/finder \
  symfony/filesystem \
  symfony/debug

Update the Database and Export Config

Now our code is updated, we need to update the database schema, then re-export our config. We use drush_cmi_tools, so your commands may be different, e.g. just a drush config-export instead of drush cexy.

drush updb
drush cr
drush cexy

Settings.php

We also need to update our settings.php file now that The sync directory is defined in $settings and not $config_directories.

This is a trivial change from:

$config_directories['sync'] = 'foo/bar';to:$settings['config_sync_directory'] = 'foo/bar';

Final Touches

In order to make sure our code is compatible with Drupal 9, we check for any custom code that is using deprecated APIs using the excellent PHPStan and Matt Glaman's mglaman/phpstan-drupal. (Alternatively you can use Drupal Check.)

 We were using an older version that was incompatible with "nette/bootstrap":">=3" so needed to remove that from the conflict section and do the remove/require dance once again.

composer remove --dev \
  phpstan/phpstan-deprecation-rules \
  mglaman/phpstan-drupal

composer require --dev --update-with-dependencies \
  phpstan/phpstan-deprecation-rules:^0.11.2 \
  mglaman/phpstan-drupal:^0.11.12

And that's it! Altogether not too painful once the composer dependencies were all sorted out. As we are testing the beta, some of these issues may be addressed in future betas and RCs.

I hope you found this useful! Got a better solution? Let us know in the comments!

Tagged Drupal Beta Testing
Categories: Drupal

Gangbusters B/X version

New RPG Product Reviews - 12 November 2019 - 8:12pm
Publisher: Mark Hunt
Rating: 5
The latest game to take over the Old-School gaming scene like, well, gangbusters is the new B/X Gangbusters; an update to the old TSR Gangbusters.

Gangbusters is a new game from Mark Hunt based on both the original Gangbusters and Basic/Expert D and D. At first, I was a little wary of this. It seemed a little too close to trademarks and I have seen some shady stuff. But it turns out that Mark legally owns the Gangbusters trademark and this has been a dream of his for some time. Reading his posts about it online you get his enthusiasm and it is contagious. So does it live up to the hype? Let's check it out.

Gangbusters is an old school game built on the Basic version of D and D; or at least a suitable clone of it. So if you know that game you how this one works.
Characters have a choice of class; Brutish, Connected, Educated, and Street Smart. And each class has six levels, complete with level titles no less!

Each class gets a good write-up and running them through my memory of Good Fellas, The Untouchables and the Godfather I think they cover just about everything. My tastes would run more towards Private Eyes so Connected and Street Smart would be great for me.

The alignment system here is Law vs. Neutrality vs. Dishonesty. It works. It works rather well, to be honest.

There are a lot of lists of equipment with 1920s costs. For historical games, I love this stuff.
There are guides for playing characters and playing in the time period.

Part 3 is the newest material, Piece Of the Action, covers playing the Gangbusters game. A lot of great information here.

Part 4 covers Game Mastering or Judging. This covers running a city. Now, this is where I commit heresy, but there some great stuff here I might steal for other B/X style games. This also covers awarding experience points.

For Part 5 we get Investigations. Part 6 deals with Law Enforcement and Part 7 handles The Encounter. The big gem of Part 7 is the table of vehicles.

Part 8 is Wandering Adversaries and that is our "Monster" section. It is 100% or at least 99% compatible with every other OSR game. Though these are city adversaries of the 1920s. You get adversaries like Angry Mob, Cat Burglars, Gangsters, Klansmen, Moonshiners and more. I have to admit, I now want to send a coven of my witches after a group of klansmen.

Part 9 covers Combat. This is expected stuff, but the really cool thing are the Saving Throws. Gangbusters gives us, Moxie. Quickness. Toughness. Driving. and Observation. Really, how awesome is that?

There is an optional section here that grabbed my attention. Mysterious Powers allows you to play as Golden Age heroes. That is a very, very interesting development.

The game comes as a PDF and a Print on Demand book. Color covers and Black and White interior art. It comes in at 63 pages. The game is also released under the OGL.

How Does it Compare to Original Gangbusters?
By using the "Basic" system there are a lot details in the original game that are not needed in the newer game. For example, skills are less of a game mechanic in the newer game. The original Gangbusters has more detail on various weapon effects but the newer game is far better organized.
OG Gangbusters weighs in at 64 pages, as was common for TSR at the time and a smaller font. So it, in general, has more text, but that doesn't mean more game in this case.

All in all. Gangbusters is a great game. Part of that greatest comes from Mark Hunt's enthusiasm and his obvious love for this game. Personally, I would get it for that alone, but thankfully the game here is also great all on it's own.

If you enjoy the 1920s, Gangster films or even, like me, B/X D and D and related games, then this is a must buy.
Categories: Game Theory & Design

JD Does Development: Docksal gets a Training

Planet Drupal - 12 November 2019 - 3:19pm
Docksal gets a Training jflynn Tue, 11/12/2019 - 17:19

In July of last year I started a new job as a developer with a new agency. During my first week, in between meetings, HR trainings, and all the other fun things that happen during onboarding, I was introduced to the preferred local development environment that was being used on most of the projects.

It was lightweight, based on Docker, it ran easily, and it was extremely easy to configure. Prior to this, I had bounced around from local setup to local setup. My local dev environment resume included such hits as MAMP, WAMP, Acquia Dev Desktop, Kalabox, VAMPD, DrupalVM, Vagrant, ScotchBox, VirtualBox, native LAMP stacks, and everything in between. All of them had their strengths and weaknesses, but none of them really had that spark that really hooked me.

Enter Docksal.

When I first started using Docksal, I thought it was just like any other setup, and to a point, it is. It creates a reusable environment that can be shared across multiple developers and setup to mimic a hosting provider to a certain point, but the two things that really grabbed me were how easy it was to get started and how fast it was compared to other systems. Docksal has one key, killer feature in my opinionated mind, and that’s the fact that the entire application is written in Bash. The primary binary (which may or may not be the name of my upcoming one-man, off-Broadway, off-any stage show) begins with #! /usr/bin/env bash and runs on any system that has the bash executable, which encompasses Linux (of course), macOS, and now Windows thanks to WSL and the ability to add Ubuntu.

One thing that was missing, though, was a training guide. It has AMAZING documentation, available at https://docs.docksal.io, including a great getting started walkthrough, but for someone just starting out using it who might not have guidance and support from people they work with, it might take a little getting used to.

If you know me, you know that I enjoy talking at conferences. I’ve given over two dozen presentations at several types of events from local meetup groups to national level conferences. If you don’t know me, you just learned something new about me. Since I enjoy talking in front of people so much, the next logical step was to find something I’m familiar with and make a training of it. Turns out, I’m familiar with Docksal.

I submitted my pitch for a training to NEDCamp, the New England Drupal Camp, and they accepted it. Since I now had a reason to write a training, I began writing a training. Initially, I started with a very high-level outline, and eventually built a framework for my training. Thanks to the nature of open source, I was able to use many of the features that https://docs.docksal.io already had in order to make my training seem a little familiar to current users and easily accessible to new users.

The first go at this training will be at NEDCamp 2019 on Friday, November 22nd. This will be the first time a dedicated training spot has been used to train on Docksal, and I'm extremely excited to see how it goes and how to improve. After that training, I will make my handbook available online, eventually to be merged into the Docksal Github repo as part of the documentation. I have had help from numerous people in building this training, especially from the Docksal maintainers, Sean Dietrich, Leonid Makarov, Alexei Chekiulaev; folks who have reviewed what I've written so far, Dwayne McDaniel and Wes Ruvalcaba; and people who have challenged me to learn more about Docksal, whose numbers are too high to list them all.

If you're interested in learning how to use Docksal or what it's all about, consider attending my training at NEDCamp on November 22nd. You can find all the details on the NEDCamp training page, and if you can't make it, be sure to watch for the handbook to be released soon.

Since I'm still working on the finishing touches, why not take the time to let me know what you would like to get out of this type of training or what you wish you would have known when learning how to use Docksal or a similar product in the comments and where you feel extra attention should be placed.

Category Development Tags Drupal Planet Docksal Drupal NEDCamp Comments
Categories: Drupal

Army researcher promotes cooperation between humans, autonomous machines

Virtual Reality - Science Daily - 12 November 2019 - 1:02pm
The trust between humans and autonomous machines is a research priority -- as machines become integral to society, it is critical to understand the impact on human decision-making.
Categories: Virtual Reality

Epic is suing another tester for leaking Fortnite Chapter 2 content

Social/Online Games - Gamasutra - 12 November 2019 - 12:37pm

Epic Games has filed a statement of claim in the Quebec Superior court against former Keywords employee Lucas Johnston that accuses him of leaking Fortnites recently launched new map ahead of its official reveal. ...

Categories: Game Theory & Design

Tag1 Consulting: A Deep Dive into Yjs part 1- Tag1 Team Talk #004

Planet Drupal - 12 November 2019 - 11:28am
Description Yjs is a very compelling choice when it comes to building real-time collaborative applications. A powerful open-source, offline first, peer to peer, shared editing framework that is modular and extensible, Yjs enables developers to easily add real time collaborative capabilities to any type of application. Rich text editing, drawing, 3d modeling... the list of potential use cases for Yjs is lengthy and remarkable. But how did it get started, what is the algorithm it’s based on, and what does the future hold for Yjs? In this Tag1 Team Talk, hear directly from Kevin Jahns, the creator of Yjs, as we dive deeply into the foundations of Yjs and where it’s headed. Join moderator Preston So (Contributing Editor, Tag1 Consulting) and guests Kevin Jahns (Real Time Collaboration Systems Lead, Tag1; Creator of Yjs), Fabian Franz (Senior Technical Architect and Performance Lead, Tag1), and Michael Meyers (Managing Director, Tag1) for an insider’s perspective on the past, present, and future of Yjs. Related Content A Deep Dive into Yjs Part 2 Evaluating Real Time Collaborative Editing Solutions for a Top Fortune 50 Company Modern Rich Text Editors: How to Evaluate the Evolving LandscapeRead more jgilbert Tue, 11/12/2019 - 11:28
Categories: Drupal

Is virtual reality the next big thing in art therapy?

Virtual Reality - Science Daily - 12 November 2019 - 10:04am
Researchers have conducted a study to see if virtual reality can be used as an expressive tool in art therapy.
Categories: Virtual Reality

2 Ways to create interactive music in your games - by Albert Fernandez

Gamasutra.com Blogs - 12 November 2019 - 7:49am
This a series of articles that want to present to developers 6 easy ways of creating interactive music so they can add a fresher experience for their future projects. Let's start with the first 2 ways!
Categories: Game Theory & Design

Unity: Your Scene Hierarchy is Robbing you Performance - by Ruben Torres Bonet

Gamasutra.com Blogs - 12 November 2019 - 7:48am
You've optimized all of the low-hanging fruits of your game. Except that you didn't. You missed a sneaky, non-so-obvious spot: optimizing your Unity Scene Hierarchy.
Categories: Game Theory & Design

10 Tips for Game Jam Success - by Nadya Primak

Gamasutra.com Blogs - 12 November 2019 - 7:39am
Over the years I have participated in several game jams. I don’t regret getting involved in any of them, but there were definitely some disappointments along the way that I think could have been avoided if I had done a bit more research.
Categories: Game Theory & Design

Yusef Blog: Composer cheatsheet for a Drupalist

Planet Drupal - 12 November 2019 - 7:31am
As you know Composer is a great tool to manage packages and their dependencies in PHP, while in Drupal 8.8 is going to more composer compatible, you can find composer cheatsheet in the following.    
Categories: Drupal

Telephone Plus Field

New Drupal Modules - 12 November 2019 - 7:25am

Provides a telephone field with the following options:

  • Optional title per telephone entry (e.g. Office, Helpline).
  • Provides a field for telephone extensions.
  • Optional supplementary info (e.g. operating hours).
  • Option for default international dialling code or let the user select.
Formatters

Plain text
Display the number in plain text.

Link text
Display the number as a link using the tel: protocol with support for extensions.
Option to enable vCard support.

Categories: Drupal

Specific neurons that map memories now identified in the human brain

Virtual Reality - Science Daily - 12 November 2019 - 6:57am
Neuroengineers have found the first evidence that individual neurons in the human brain target specific memories during recall. They studied recordings in neurosurgical patients who had electrodes implanted in their brains and examined how the patients' brain signals corresponded to their behavior while performing a virtual-reality object-location memory task. The researchers identified 'memory-trace cells' whose activity was spatially tuned to the location where subjects remembered encountering specific objects.
Categories: Virtual Reality

Migrate Wordpress

New Drupal Modules - 12 November 2019 - 6:44am

Placeholder for a database-sourced Wordpress migration module.

Categories: Drupal

Hook 42: Drupal Core Initiative Meetings Recap - November 04 - November 08, 2019

Planet Drupal - 12 November 2019 - 6:30am
Drupal Core Initiative Meetings Recap - November 04 - November 08, 2019 Lindsey Gemmill Tue, 11/12/2019 - 14:30
Categories: Drupal

src

New Drupal Modules - 12 November 2019 - 5:45am

Make life more interesting

Categories: Drupal

Larger than life: Augmented ants

Virtual Reality - Science Daily - 12 November 2019 - 5:16am
The first app of its kind allows users to interact with biodiversity research through augmented reality.
Categories: Virtual Reality

Pages

Subscribe to As If Productions aggregator