All RPGs and Storygames by Tod Foley are now available at DrivethruRPG. Bring these games to your table!
A Drush 9 command that will query a Drupal 7 database migration source for potential migration issues, generating an Excel file tracing issues to a URL.
This module was originally created for the Georgia.gov project and is currently being generalized for use on any site.
Your world is basic as all hell.
Mine is too, don’t worry about it.
As a GM, I’ve been working on my own homebrew setting for several years. As GM veterans and aspirants, you all likely have one of your own or are at least thinking about the one you might make in the future. As creators and storytellers, it’s somewhat inevitable to imagine ‘what would a world I make look like?’ For some, they might spend their lifetime building upon a single world and constantly adding to its depth. For others, they might have made a new world for each and every campaign. But more often than not, these worlds are made in the confines of our laptops and notebooks, something we build in secrecy by our lonesome. While we may come out and talk about our world to our friends, I’ve seen many a GM recoil when suggestions concerning it come out. After spending so long nurturing it, it can feel like whiplash when others provide feedback. Many builders here continue to work on it, alone.
But a sword does not take shape until it is hammered by steel and whet by stone.
This is not to say your world sucks; it could be deep and expansive, with long histories and family lineages tracing back hundreds and thousands of years. It could have dozens of quirky npcs, races, and cultures. However, I posit that unless you’re developing it with the opinions and voices of many others, it’s a world that’s going to be entirely dyed by your preferences. A world written entirely by yourself is like painting with a single color: you can have a single red square on a white canvas be worth $15mil at some art gallery, but it doesn’t change that it’s basic as all hell.
Our biases, interests, and preferences are hard to separate entirely from our work. If you happen to prefer swords or have consumed a large amount of media that features swords, you’re far more likely to have cool and magical swords as relics over any other weapon in your world. If you were heavily influenced by Lord of the Rings, you probably have an idea of elves and dwarves that’s hard to shake. If you happen to like Terry Pratchett, you’re far more likely to be interested in weird, or in other words gonzo, fantasy and—by extension—Old School Revival(OSR) systems.
We are already the product of many different sources of influence, that’s just how we are. However, despite all that, we’re still limited in that all that information goes through filter after filter of our preferences. We keep what we like, toss what we don’t, and can’t fully capture the nuances of all the content we absorb. We’re all a collection of those preferences and biases, so how can we imagine a nuanced world when the only point of view we have is our own?“Nothing of me is original. I am the combined effort of everyone I’ve ever known.” ― Chuck Palahniuk, Invisible Monsters The magic of others
There’s this system, Microscope, that works in one part tabletop, two parts world-building engine. Between a group of players, you begin by deciding how the world starts and ends, then take turns filling in the various ages and events in-between. When I played it, my friends and I created a world where a giant hole to hell opened up in New York’s Time Square, which then ended when everyone on Earth was a demon. Personally I had a timeline in my head where the demons rose up and fought an excruciatingly long war with the humans, and that we’d detail a large number of the battles that happened in-between.
On my turn, I progressed that story.
But then the humans turned magical girls happened.
And the demons were friendly.
And more holes opened up and the demons monetized an intercontinental wormhole subway which led to a nomadic and free-love otherwise unheard of.
I was constantly face to face with scenarios I never would have expected and had my ideas responded to through angles I never would have imagined. We eventually created a world that had magical girl armies building on the moon, demons slowly integrating with human society(and so each generation had more demon blood), and with one lone immortal Japanese ramen chef forced to cater to weeaboo magical girls for all eternity. He was literally the last full-human to ever exist.
If you’ve GM’d before, you’re likely used to this feeling. No, not the magical girls and such, but the feeling when something is going ‘off the rails’ in a manner that you’re honestly 100% okay with. When you realize you have no idea what’s going to happen and suddenly you need to improvise your butt off and, while it’s nerve-wracking, it’s exhilarating because you want to see where this it’s all going. Ultimately this is where I end up feeling the most alive in tabletops. When once I finally pull away from the moment I can’t help but laugh and wonder ‘wait, just how the heck did we get here?’ I’m okay with that in the end because, at that moment, I’m fully aware that I alone wouldn’t have been able to come up with the idea in a hundred years.[There was] one lone immortal Japanese ramen chef forced to cater to weeaboo magical girls for all eternity. Share27Tweet1Reddit1Email
Alone, your world is unlikely to have that degree of complexity.
In another example, I’m currently playing a Fantasy AGE game where I’ve allowed the players to go all out with character creation. Fantasy AGE, in particular, has this race called the ‘half-blooded’ which allows characters to derive ancestry from literally EVERY monster in the bestiary. The game also has strong support for mixed-raced characters, allowing you to do things like half-human/half-dwarf. Combine that with half-blooded, however, and we’ve got wacky combinations like dwarf/gargoyle, gnome/carnivorous tree, or—through utilizing half-blooded/half-blooded—something like ooze/mothman.
I know. I had apprehensions too but bear with me.
Obviously there was no bloody way I was going to spend a bunch of time trying to figure out all the reasons why this worked, or what the various cultures behind those mixes would be like. So from the very beginning, I went with one rule for my players:
“You all have the final say about your culture.”
Not even two sessions in and I suddenly get a wide variety of stories I couldn’t have dreamed of. The gnome/carnivorous tree goes on an entire creation myth about the world starting with a gnome and a tree, and therefore through a complicated family tree, all gnomes and trees and distantly related. We spent nearly an hour in a session brainstorming about dwarf/gargoyle culture and how they harden over time into diamond, so elderly gargoyles need to be protected by the younger ones from poachers, and how their burial grounds are effectively El Dorado’s but with statues of diamond made from grandma.
And here I am, the GM, just throwing bonus exp out left and right for their amazing roleplay and world-building. I’m honestly worried they’re going to level up too fast, but I can’t not reward them for all this.Where I’m going with this
Let me say this again: even if you make your world by yourself, it’ll be fine. Despite everything I’ve said here, you’ll likely create an interesting world that your players will enjoy. To be honest, the opening line was mostly out of shock factor.
But I wasn’t kidding with the rest of it. A world written alone might be a great reflection of your imagination, but I don’t believe it’ll truly be a world one could call complex. Our own world might currently be going through several crises but it’s beautifully complex and built over centuries of conflict and collaboration, where many minds made their mark upon it over and over. We still find pieces to this day that can completely and radically change how we see the past.
Meanwhile, for most worlds, it’s often just a single lost ancient civilization, tops.
I think there’s a lot more we can do for world-building that can drastically improve the quality of worlds we make and the games we run, but I’ll save that for another article.
~Di, signing out
From gated content to event enrollments, social logins and easy registration are the go-to for many sites now. The website captures data and permissions from your social accounts and gives you access to the content. There are modules primarily dedicated to integrate social accounts and run the process.
Drupal offers many modules for seamless integration of social logins for your website.
Let’s skim through the list and their features!
Check out this list of modules for social login in Drupal 8 and choose the one that suits you best:OneAll Social Login
Offering 35+ social networks to login from, the OneAll Social Login is a significant module that can benefit you. It is fully compliant with European (GDPR) and U.S. data protection laws. The module monitors changes constantly and automatically updates APIs for a smooth run of the logins. The simplified process helps increase the registration rate, too.Social Auth
A commonly used module, Social Auth is part of the Social API. It possesses its own content entity and stores all data in the database. With this Drupal 8 module, visitors can register on the website via 30 social networks including Slack, Reddit, Uber, and more.Auth0 Single Sign On
It provides a login form powered by Auth0. With implementing authentification for platforms like GitHub and Twitter, Auth0 Single Sign On is another top module in the list.Social Auth Google
Primarily for Google account, the Social Auth Google module can help you register and log in with any social site. It performs the authentication on your behalf and gives seamless access.Hybrid Auth Social Login
With the aid of the HybridAuth library, this module integrates Drupal and allows the login and registrations for the visitors on sites like Facebook, Twitter, Windows Live, Instagram, AOL, and much more. The HybridAuth Social Login doesn’t depend on external services or load any external CSS or JS files for the authentification process.
However, it relies on a third-party open source PHP library, HybridAuth, developed and supported on GitHub.uLogin (advanced version)
A selective range of forms is available in this module for the social logins to be integrated with your Drupal site. Written in compliance with Drupal coding standards, uLogin has several widgets with default settings that are configurable through UI. The module gives you options to remove username and password fields from the user profile edit form.Varbase Social Single Sign-On
Varbase module is built using Social API and adds single sign-on using your social networking services. It is supported by the Drupal 8 version and even if installed with the Minimal or Standard profile.Social Auth Facebook
It is a direct module for Facebook and allows users to register/login to the Drupal site via a Facebook account. The scope of the website’s request is wider and based on the authentication with Facebook services. The module also compares the user id or email address facilitated by Facebook. It automatically accepts the login if it is a returning user to the site.Social Auth Twitter
Similar to the above two, this is also exclusive to Twitter. It allows the user to register and login to your Drupal site and is based on Social Auth and Social API.
The Social Auth Twitter module lets you compare the user id or email address once Twitter brings you back to the site.Social Auth LinkedIn
This module allows websites to request any scopes and users to register/login to your Drupal site with the LinkedIn account. The Social Auth LinkedIn module lets you compare the user id or email address once LinkedIn brings you back to the site. The ‘LinkedIn’ button lets you initiate the login in the social auth block.Conclusion
These modules will definitely support the login process of your website and placidly run the integration. With each module having its own significance one can only decide for themselves which suits them the best.
We at OpenSense Labs have a pioneering experience in site building with Drupal 8 and its modules. For the best of services contact us at firstname.lastname@example.orgSocial Media Platforms Drupal 8 Drupal module Drupal Modules Drupal 8 Module Blog Type Articles Is it a good read ? On
Drupal core announcements: Drupal 7 roadmap and release schedule published, plus PHP 7.3 compatibility!
The Drupal 7 maintainers have published a new D7 roadmap and release schedule:
There is also a new proposed D7 contributor / maintainer workflow issue:
Finally, we're pleased to announce that the 7.x branch's core tests now pass in PHP 7.3!
Feedback is welcome, and thank you very much to all of the many D7 contributors!
This module provides validation to Date Recur fields in order to prevent
overlapping dates from being saved.
Simply enable "Prevent overlapping occurrences" in the field settings page. This option will show up for every field of type "date_recur".Requirements
This module only requires the Date Recur module.
If you are a frontend web developer you have probably heard of GraphQL or maybe you have even used it, but what is it? GraphQL is a query language for APIs that allows you to write queries that define the data you receive. No more emailing the backend team to update an endpoint for your application. The client developer defines the data returned in the request.What is a GraphQL Server/API?
A GraphQL server is a server-side implementation of the GraphQL spec. In other words, a GraphQL server exposes your data as a GraphQL API that your client applications can query for data. These clients could be a single page application, a CMS like Drupal, a mobile app, or almost anything. For example, say you have a MySQL database and you want to expose the content to a React application. You could create a GraphQL server that will allow our React application to query the database indirectly through the GraphQL server.Why would you consider a GraphQL API? 1. You need an API for your applications
At Mediacurrent, we have been building decoupled static web sites using GatsbyJS. But sometimes we also need some components with dynamic data. You need an API for that and our front-end team was already using GraphQL in Gatsby. Or maybe you might develop a mobile app and need a reliable and fast way to get data from your legacy database. You can use GraphQL to expose only the data you need for your new app but at the same time give your client app developers the ability to control what data they get back from the API.2. You need data normalization
For our purposes as developers data normalization is simply the process of structuring our data to remove redundancy and create relationships between our data. Data normalization is something database designers think about but developers and software architects should consider as well.
One of the biggest mistakes I’ve seen in my years building web applications is the pattern of including too much business logic in application components. These days, it is not unusual to require data from multiple applications, public REST APIs as well as databases. There is often duplication across these systems and the relationships are rarely clear to the development team. Creating components that require data from multiple systems can be a challenging task. Not only do you have to make multiple queries to retrieve the data, but you also need to combine it in your component. It’s a good pattern to normalize the data outside of your components so that your client application’s components can be as simple and easy to maintain as possible. This is an area where GraphQL shines. You define your data’s types and the relationships between your data in a schema. This is what allows your client applications to query data from multiple data sources in a single request.3. You love your client application developers
A well-built GraphQL server will avoid these issues that are common with REST APIs.
- Over-fetching - receiving more data than you need.
- Under-fetching - not receiving all the data you need.
- Dependent requests - requiring a series of requests to get the data you need.
- Multiple round trips - needing to wait for multiple requests to resolve before you can continue.
In a perfect would we would only fetch the data we need. If you have ever worked with a REST API you will likely know what I mean here. Your client application developers may only need a user’s name but it is likely that when they request the name using the REST endpoint they will get much more data back from the API. GraphQL allows the client to specify the data returned in the request. This means a smaller payload delivered over the web which will only help your app be more performant.
Under-fetching, dependent requests, and multiple round trips
Another scenario is under-fetching. If you need a user’s name and the last three projects they were active on, you probably need to make two HTTP requests to your REST API. With GraphQL relationships, you can get this data back in a single request. No more callbacks and waiting on multiple endpoints to resolve. Get all your data in one request. Now you are avoiding multiple requests, dependent requests, and multiple round trips to get the data for your app’s components.
GraphQL single request to multiple data sources.
The type based schema that GraphQL provides creates the structure to build powerful tools like Graphiql, an in-browser IDE for exploring GraphQL.
This schema also allows for what I would call a self documenting API. GraphQL playground is an example of the power of the GraphQL schema. It takes this schema and creates documentation as well as an IDE like Graphiql. When you update your schema, your documentation is automatically updated as well as the IDE. That’s a huge win!
You can try out a demo of the GraphQL Playground on graphqlbin.com.4. GraphQL can replace your legacy REST API
It can be challenging to maintain versions of a REST API. Requirements change. You need to add new fields or maybe you want to delete fields from your database. Due to the requirements for backward compatibility your API has to continue supporting these old requirements. Maybe you have an old Android mobile app that relies on your REST endpoints. Maybe you have a Salesforce integration that you don’t have time to update. Most organizations can’t update all their applications at once so you can’t just turn off your old REST API. A GraphQL server can act as a middleware between your old REST API and your new applications. Then as you update your other client apps that use the REST API’s you can update them to work with your new GraphQL API. Once all of your clients are no longer using the REST endpoints you can replace the REST API fully with the GraphQL API.5. You’re tired of maintaining old versions of your REST API
GraphQL has the @deprecated annotation that you can add to your schema to let clients know that a field should no longer be used. This is much easier to maintain than multiple versions of a REST API.Which server should you use?
I hope I’ve sparked your interest in GraphQL and building a GraphQL server API. At Mediacurrent, we have seen how powerful this tool can be for solving complex application and data problems and we’d love to talk with you about it. Hit us up in the comments.
LDAP SSO Auth module
* Recommended Modules
This LDAP SSO Auth module provides a simplified way of SSO (Single Sign On) via an LDAP server. It covers fewer use-cases that the ldap_sso module, but works faster, without page redirects during authentication. This module is the right choice if all content should be accessible only for authenticated users.
Each month, we do a roundup of all the blog posts we wrote in the previous month. So, no need to worry if you missed some of our posts from October - here’s an overview of all of them!READ MORE
The API that the JSON:API module makes available is centered on Drupal's entity types and bundles. Every bundle receives its own, unique URL path, which all follow a shared pattern.karthikkumardk Friday, 08 November 2019 - 15:15:10 IST
This module aims to make it easier to render blocks programatically in Drupal 8.
Take-Two Interactive has raised its revenue forecasts for fiscal 2020 as Q2 GAAP net revenue jumps from $492.7 million to $857.9 million year-over-year. ...
This blog has been re-posted and edited with permission from Dries Buytaert's blog.
DrupalCon Amsterdam Driesnote presentation
Last week, many Drupalists came together for Drupalcon Amsterdam.
I kicked off my keynote with an update on Drupal 8. Drupal 8.8 is expected to ship on December 4th, and will come with many exciting improvements.
Drupal 8.7 shipped with a Media Library to allow editors to reuse images, videos and other media assets. In Drupal 8.8, Media Library has been marked as stable, and features a way to easily embed media assets using a WYSIWYG text editor.
I'm even more proud to say that Drupal has never looked better, nor been more accessible. I showed our progress on Claro, a new administration UI for Drupal. Once Claro is stable, Drupal will look more modern and appealing out-of-the-box.
The Composer Initiative has also made significant progress. Drupal 8.8 will be the first Drupal release with proper, official support for Composer out-of-the-box. Composer helps solve the problem of Drupal being difficult to install and update. With Composer, developers can update Drupal in one step, as Composer will take care of updating all the dependencies (e.g. third party code).
What is better than one-step updates? Zero-step updates. We also showed progress on the Automated Updates Initiative.
Finally, Drupal 8.8 marks significant progress with our API-first Initiative, with several new improvements to JSON:API support in the contributed space, including an interactive query builder called JSON:API Explorer. This work solidifies Drupal's leadership position as a leading headless or decoupled solution.Drupal 9 will be the easiest major update
Next, I gave an update on Drupal 9, as we're just eight months from the target release date. We have been working hard to make Drupal 9 the easiest major update in the last decade. In my keynote at 42:25, I showed how to upgrade your site to Drupal 9.0.0's development release.Drupal 9 product strategy
I am proud of all the progress we made on Drupal 8. Nevertheless, it's also time to start thinking about our strategic priorities for Drupal 9. With that in mind, I proposed four strategic tracks for Drupal 9 (and three initial initiatives):Strategic track 1: reduce cost and effort
Users want site development to be low-cost and zero-maintenance. As a result, we'll need to continue to focus on initiatives such as automated updates, configuration management, and more.Strategic track 2: prioritizing the beginner experience
As we saw in a survey Acqua's UX team conducted, most people have a relatively poor initial impression of Drupal, though if they stick with Drupal long enough, their impression of Drupal grows significantly over time. This unlike any of its competitors, whose impression decreases as experience is gained. Drupal 9 should focus on attracting new users, and decreasing beginners' barriers to entry so they can fall in love with Drupal much sooner.
Beginners struggle with Drupal while experts love Drupal.
Drupal's sentiment curve goes in the opposite direction of WordPress', AEM's and Sitecore's. This presents both a big challenge and opportunity for Drupal.
We also officially launched the first initiative on this track; a new front-end theme for Drupal called "Olivero". This new default theme will give new users a much better first impression of Drupal, as well as reflect the modern backend that Drupal sports under the hood.Strategic track 3: drive the Open Web
As you may know, 1 out of 40 websites run on Drupal. With that comes a responsibility to help drive the future of the Open Web. By 2022-2025, 4 billion new people will join the internet. We want all people to have access to the open web, and as a result should focus on accessibility, inclusiveness, security, privacy, and interoperability.Strategic track 4: be the best structured data engine
We've already seen the beginnings of a content explosion, and will experience 300 billion new devices coming online by 2030. By continuing to make Drupal a better and better content repository with a flexible API, we'll be ready for a future with more content, more integrations, more devices, and more channels.
Over the next six months, we'll be opening up these proposed tracks to the community for discussion, and introducing surveys to define the 10 inaugural initiatives for Drupal 9. So far the feedback at DrupalCon Amsterdam has been very positive, but I'm looking forward to much more feedback!Growing sponsored contributions
In a previous blog post, Balancing Makers and Takers to scale and sustain Open Source, I covered a number of topics related to organizational contribution. Around 1:19:44, my keynote goes into more details, including interviews with several prominent business owners and corporate contributors in the Drupal community.
You can find the different interview snippet belows:
- Baddy Sonja Breidert, co-founder of 1xINTERNET, on why it is important to help convert Takers become Makers.
- Tiffany Farriss, CEO of Palantir, on what it would take for her organization to contribute substantially more to Drupal.
- Mike Lamb, Vice President of Global Digital Platforms at Pfizer, announcing that we are establishing the Contribution Recognition Committee to govern and improve Drupal's contribution credit system.
Thank you to everyone who attended Drupalcon Amsterdam and contributed to the event's success. I'm always amazed by the vibrant community that makes Drupal so unique. I'm proud to showcase the impressive work of contributors in my presentations, and congratulate all of the hardworking people that are crucial to building Drupal 8 and 9 behind the scenes. I'm excited to continue to celebrate our work and friendships at future events.
Thanks to the 641 individuals who worked on Drupal 8.8 so far.
Thanks to the 243 different individuals who contributed to Drupal 8.8 to date.
Revenue at Activision Blizzard is down year-over-year but higher than expected for the quarter, something the company credits to better-than-expected performance for both Call of Duty and World of Warcraft. ...
tl;dr: You can now sponsor my open source development work via GitHub Sponsors.
GitHub Sponsors is the latest foray into building a more sustainable future for open source software development. There have been many attempts before, a few of which I tried (Gratipay, Patreon, etc.), but most of them never reached a critical mass, and at most you'd end up getting maybe $20-50/month out of the platform. Another prolific open source contributor I've long followed wrote about the topic of open source support and developer burnout in a post this year, Webform, Drupal, and Open Source...Where are we going?.