All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
This week marks the 10th anniversary of Minecraftâ€ s very first release and Microsoft now says that the game has sold over 176 million copies worldwide in that decade. ...
ACH Attach JS is a module that helps to better integrate a Drupal site with Acquia Lift and Acquia Content Hub.
In our booth during DrupalCon Seattle this year, we had the pleasure of speaking with people in the Drupal community about our new Support & Maintenance offering. The response we heard most often was, “Doesn’t Lullabot already do support and maintenance?” The short answer is yes.
This adds a data transform plugin system to Paragraphs Sets by wrapping that module's data_alter hooks.
The annotated plugins operate kinda sorta like migration process plugins. Currently include plugins:
- `simple`: an identity plugin
- `create_entity`: construct nested entities for an entity reference field
For example, in a paragraphs set, we want a paragraph that references custom entities to prepopulate (i.e., create) the entities:
The SAML extras module allows to map user fields with simpleSAMLphp attributes during user authentication.
Once attributes are mapped, the module calls the 'hook_simplesamlphp_auth_user_attributes' to save the values into user fields after login.
This module implements the functionality requested in the following sandbox project: SimpleSAMLphp Custom Attribute Mapping
In my experience, a big part of making a Drupal 8 site usable for content editors is customizing the WYSIWYG, which usually includes adding a couple additional CKEditor plugins.
Of course, you can simply download the plugins into the 'libraries' folder, and that's fine. But these days, it's becoming best practice to pull in all of your site's dependencies using Composer.
Adding 'package' repositories to your composer.json for the CKEditor plugins (the current best practice) works fine - but only for your individual site.
It doesn't work so well if you want to install:
- A Drupal "Feature" (like with the Features module) that configures the WYSIWYG, including adding some CKEditor plugins, or
- A Drupal distribution (like Panopoly or Lightning)
In those cases, you can't depend on what the individual site may have in its top-level composer.json, and asking the user to manually copy-paste a bunch of 'package' repositories in there may create enough confusion or problems that potential users will just give up.
Well, I've got an possible solution to this problem: an experimental Composer repository which includes CKEditor plugins for use on a Drupal site.
It works better for Feature modules and distributions, but can also make life easier for individual sites too.
Read more to find out how it works and how to use it!
Opening with an account of a golden past, when people lived in harmony with their gods, all was peaceful, a time of learning and of plenty, we then hear how it all went wrong predictably enough by the gods starting to squabble amongst themselves and wrecking it all for everybody else. Mortal lands lie divided, with brave adventurers (guess who?) guiding people between them and dealing with monsters, exploring ruins to find relics of the lost golden age over a thousand years in the past.
Next, there's an overview of character creation. Notes explain that Odysseys and Overlords is designed to be used with the Basic Fantasy Role-Playing Game, but any 'old school rules' will do: it's aimed at those who like that style of play... just about everything you need is here, though. Every character has a genus (equivalent to race) and a class, the one chosen to demonstrate how classes are presented is that of the Bard. It's all pretty familiar if you have played a bard in any class/level fantasy game - bards can fight a bit but their primary skills are in performance (often music, but poets, storytellers and the like can also be played), and through their performance thay can generate spells. There are various charts showing how a bard character gains levels and develops as they gaim experience.
Though short - two whole pages of an eight-page PDF are devoted to the Open Game Licence - this gives quite a good overview of the game/setting as a whole, and should let you decide if you want to investigate further. The little bit of world history provided is evocative and sets the scene well for the sort of game envisaged, encapsulating a world that sounds like it will be fun to adventure in. The notes also suggest that it ought to be easy to introduce younger children to this game, always a good thing. Take a look, and if you like the sound, jump right on in!
You’ll sometimes run across the phrase “springing up like mushrooms after a rainstorm” to describe something that makes an appearance too quickly to be pure coincidence. Mushrooms are able to do that because the mushroom, which is only the visible part of a larger fungus, is often fully-formed and ready to go, just waiting for the correct conditions to inflate like a water balloon and pop up out of the ground, ready to absolutely wreak havoc on people with mold allergies. This is a great metaphor for a lot of things—lawyer phone calls after a car accident, complaints after a Star Wars movie, or those moments when you realize you’re overdue for your next tongue-in-cheek listicle. Luckily, like a mushroom, this article was already mostly-formed because of part 1 of this series.
Just a quick reminder and warning: mushrooms can and will kill you if you eat the wrong ones. Warning: mushrooms can and will kill you if you eat the wrong ones. Share1Tweet1Reddit1EmailDon’t eat anything that appears in this article based on what I write. I am not a person you should trust about what you should eat or drink, as both my waistline and liver demonstrate.
But enough introduction. You’re here for gaming advice and lowbrow humor.
The Humongous Fungus (armillaria ostoyae)
Nearly 2,500 acres and 2,000 years old, the single largest organism on Earth is not, contrary to what you may have heard, a slumbering elder god or tarrasque. The “humongous fungus” as it’s called, makes an occasional appearance in the form of honey-colored mushrooms scattered throughout its body that scientists have recently discovered are clones of one another, meaning that this single organism has been spreading for centuries, sapping life and resources from the place it calls home, which reminds me that I have some old roommates I should probably call and apologize to.
Potential Game Use:
Okay, so first of all, if you can’t think of something to do with a millennia-old evil the size of a small town hiding under the ground and only occasionally showing itself, I don’t know what to tell you, other than, I guess, my idea of what to do with a millennia-old evil the size of a small town hiding under the ground and only occasionally showing itself:
The adventuring party has been hired at a ridiculously high rate of pay by a frustrated but distant noble in order to investigate why an area’s crops and/or forest is inexplicably dying, threatening the livelihood of both the locals and the noble in question.
As the characters visit, they are enthusiastically fed a nonstop diet of delicious and filling mushroom steaks, pastas, soups, and breads; they should quickly realize the situation actually isn’t all that inexplicable: the populace realizes there’s a fungal infection in the area, but it’s providing them a seemingly-endless supply of tasty, healthy food that requires no work whatsoever to produce. Further, because the noble doesn’t know or especially care about what the people gather if it’s not crops or other easily-inventoried resources, they get to keep all of it. Upon learning how heavily the people are being taxed, the characters should better understand their position. A new era of art and leisure has dawned for the locals, as much of the time they would have spent tilling fields or hunting for sustenance is both unnecessary (because of the mushrooms) and useless (also because of the mushrooms).
Investigating further, the characters discover the underground lair of the sapient mushroom presence that has been preying (?) on the region and its people by draining vital energy. The characters are left with a conundrum: should they do thing adventurers do and delve into the subterranean (and almost-certainly mushroom-themed) lair of the creature that is simultaneously feeding the people and destroying their land? Or should they leave the locals to their entertainments and free time, knowing that, someday soon, their resources will run out? If they do decide to slay the mushroom beast, will the people help or hinder them in their efforts to restore them to their old lives of thankless and exploited labor?
The Bleeding Tooth Fungus (hydnellum peckii)
I’d be lying if I pretended the number one reason for this mushroom making the list was anything except how incredibly metal its name and appearance are. Seriously. Look at that thing. It’s like Pennywise the Clown got ahold of some cauliflower and decided to really up the ante on the “caul” part.
But by happy accident,that gory-looking fluid on the mushroom is both an antibacterial agent and an anticoagulant. “Magical plant that saves the heroes” is a staple of genre fiction, and for good reason. Prior to the advent of modern medicine, local plants, fungi, and animals were basically the closest thing humans had to a medicine cabinet. Only the oldest and most daring of those who lived in the woods knew the secrets of which plants save lives and which killed, which is honestly as perfect an example of survivor bias as you’re ever likely to get.
Potential Game Use:
A dangerous affliction has struck an important NPC; maybe he foolishly tried to use a cursed magical item to escape some bad guys and was stuck by some sort of ghost-sword, therefore slowly becoming one of the undead while his companions look on helplessly. Obviously, the best solution would be to stick with his friends and count on them to protect him, ESPECIALLY WHEN SAM WAS ALREADY TRYING TO FIGHT THEM LIKE A HOBBIT ON FIRE BECAUSE HE IS THE BEST PART OF THOSE MOVIES.
But hindsight is 20/20 and the characters find themselves in a situation where time is of the essence. An adventure involving a bleeding tooth fungus takes place in three phases:
Phase I is identifying the problem (and the solution). In this phase, PCs must make medicine/arcana/lore rolls to identify the malady and its solution. Particularly good results or clever roleplay can be rewarded by providing the characters temporary options that slow the spread of the poison (elevate the wound, use magic to apply ice to the injured limb, have Sam tearfully confess his true feelings to Frodo so they can be together forever). Poor rolls result in lost time, but still lead to the same conclusion. The ultimate cure, of course, is a heaping helping of hydnellum peckii and/or slash fan fiction.
Phase 2 is finding the fungus. Because this is presumably an adventure, this phase can take the form of whatever best suits your group’s style. Options include anything from an extended scavenger hunt (“the Devil’s Tooth only grows near the trees that spring up where a wizard dies”), to a combat encounter (“the mushroom springs from the mummified remains of the giant spider Himmthrow’s victims”), to a tense negotiation (“the local Fair Folk control the whole supply, and demand unspeakable booms from those who seek it”). Be sure to offer players ways to make rolls in this phase easier or more successful by taking longer.
Phase 3 is where the clock set up in Phase 1 really becomes important. If your players have been wise stewards of their time (or especially lucky), they will have enough time to get back to the NPC and save them. This is a great opportunity to use chase rules and mechanics in an unusual way, as the characters scramble against time to save their friend. Remember failure should always be an option in order to give the situation stakes. However, in this case failure doesn’t necessarily mean death. If the PCs don’t make it in time, the NPC might lose a limb, go into an extended coma (which could provide the impetus for a whole other adventure) or, if deus ex machina is more your speed, the NPC could be rescued by a nearby elf who takes them to safety and treatment, but then proceeds to lord it over the PCs for the rest of the game.
In case it needs to be said: everything I’ve said about not eating mushrooms based on this article apply 10,0000 times as much to trying to use them as medicine. Just don’t. Also: #Frodo/Sam4Ever.
Hat-Thrower Fungus (pilobolus crystallinus)
A previous article on medieval European/Classical jobs included references to a real-life fecal fireball. How could I possibly one-up that? With a poop rifle based on actual fungal biology, of course. Right now, you might be asking yourself “is he setting up a whole scatological armory?” And the answer is that I am definitely not not doing that, because my sense of humor hasn’t evolved since I was eleven years old.
Anyway, the hat-thrower fungus, as it’s sometimes called, is tiny (nearly-microscopic, in fact) and exclusively grows on herbivore dung. Its particular take on reproduction involves building up pockets of highly-pressurized fluid that, when ready, eject its spores with twice the acceleration of a modern rifle; [joke removed because this is a family-friendly website].
Potential Game Use:
Elves. They live in the forest and defend it against interlopers using techniques ranging from magic to animated trees to really hurtful comments about someone’s appearance. One of the great things about forests is that “real thing, except gigantic” fits their theme perfectly. Because this fungus only grows on the dung of herbivores, it stands to reason that giant versions of the fungus would only grow on the dung of giant herbivores. Shhhhh. Don’t think too hard about it.
So, imagine an elven village, defended by citizens armed with arm-length pilobolus stalks. Basically replace any given infantry charge from any given war movie with elves shooting single-use, bulb-headed mushroom cannons, and you’ve pretty much got the right idea.
Much like how actual firearms changed the face of war, our pointy-eared friends are nigh-unto unassailable in their forest. Except that their latest enemy, an unscrupulous lord seeking to turn the forest into timber, has discovered the secret to their defense, and sent his spies to the manure field/armory that the elves depend on and burned it to the stinking ground. The player characters have been charged with gathering additional weapons and refreshing the fields the elves depend on for their defense.
Remember how I mentioned that the imaginary pilobolus only grows on the dung of giant mammals? Here’s where that becomes relevant. The characters must find the territory of a wild giant deer (any other herbivore will work, but I like deer), identify its spoor, and figure out how to bring back enough of it to revitalize the martial strength of their elven allies, all without getting caught by the opposition forces who are also looking for the same deer. When those opposition forces find and try to slay the source of the elves’ strength, how will the characters save it? Assuming the characters survive, they might be granted a few “loaded” pilobolus stalks as a reward. Since these are single-use and extremely valuable, making them extremely damaging won’t overly impact the direction of the game, since once the characters use up the three to five they were given, that’s pretty much it.
This idea works best woven into an already-existing conflict. The defenders don’t necessarily have to be elves—they might instead be a group of druids defending a sacred grove, or even a clan of barbarians resisting the encroachment of their more “civilized” neighbors.
Truffle (~185 species)
Truffles are well known for being expensive and requiring a well-trained pig to find, since they grow underground. Slightly less-famously, they give off a fragrance that strongly imitates mammalian pheromones, which is why pigs (and to a lesser degree, dogs) are so attracted to them in the first place. So, basically, at some point in time, some rich people decided that lumpy, underground balls of fungus that smell like an excited pig’s crotch are worth approximately $100 an ounce, which is probably an even better refutation of the “rich people are rich because they’re smart argument” than the rise and fall of the Juicero.
Potential Game Use:
A small farm has had its crops routinely destroyed by an endless, rotating cast of wild animals (mammals, specifically). No one is entirely certain where these creatures are coming from, or why they’re so obsessed with this particular farmer’s fields. Neighboring farmers’ fields are entirely untouched, and the animals that have been destroying the wheat, barley, beans, and similar staples have been leaving the plants themselves alone.
Investigating the fields, the characters should be able to see that the animals were extremely agitated as they hunted through the dirt. Particularly good rolls might reveal that the animals were obviously looking for something, and they took that something away with them. Characters who stalk these animals to their lairs will find nothing out of the ordinary, though those that kill the animals (or catch them in the act) may realize that whatever they’re hunting for, these animals eat. If players get stuck at this phase, feel free to leave a trail of breadcrumbs in the form of spots where the animals have stopped to eat the truffles that they find, or even catching one of these creatures in the midst of chowing down on some disturbing nuggets of what looks like dirt.
Successful nature-type rolls will enable the characters to realize that the things that these animals are eating are, indeed, truffles, and the reason why the crops are being destroyed is that these (extremely valuable) truffles are growing in the farmer’s field. If the characters fail their nature rolls, have the character who is most closely associated with high culture recognize what the tiny dirt balls actually are. While the players or locals could attempt to just keep killing animals that try to dig up the fungi, or wait for the animals to exhaust the supply of spores in the ground (which will happen if some part of the truffles are not placed back underground) players will probably want to work with the farmer to capitalize on the much more valuable crop they just discovered. This is a great jumping-off point for a low-stakes game of intrigue as the farmer fights with their local lord about the proper ownership of these truffles, neighbors begin sneaking into the fields with their own dogs or pigs to try to dig up the fungi to sell themselves, and traders from the nearest Big City (TM) attempt to negotiate the lowest possible price for these truffles, possibly using shady maneuvers that only the characters will recognize. This kind of intrigue/setup probably won’t work as well at higher levels, but it does create an immediate investment in an NPC (the farmer and their family) an area (the farm and the village), and rivals who, despite being various flavors of jerk and/or unethical, probably shouldn’t just be executed with a fireball for how they deal with the sudden presence of a valuable resource.In Conclusion
Fungi can be just about anything you need them to be in your game: environment, medicine, food, weapon, ally, or antagonist. Now you have, in total, eight different ways to use fungi in your own game, and I hope you enjoy incorporating them into your world as much as I’ve enjoyed including them. So do you think you’ll be using more fungi in your games? If so, how? Sound off in the comments and let us know!
Earlier this week, The Cut ran a piece about a “Tinder Hacker” who created a fake profile with his roommate’s photos, then hooked a piece of code up to the Tinder API and did some very simple string substitutions so that men who messaged “her”–after “she” swiped right on them–were tricked into actually talking to other men who did the same. In brief, he put strangers in contact with each other under false pretenses, rerouted and surveilled their communications without consent, and proceeded to use this as a bragging point on dates and in interviews.
One might take exception to a number of elements of this story, but let’s start with its terminology. “Hacking” is a word whose meaning has broadened beyond all practical use, but in no sense did “Sean”, the pseudonymous subject of the story, “hack Tinder.” He relied on someone else’s reverse engineering to write some buggy code that ran against its API. That’s all.
The article itself seems confused about whether the Tinder API, or Application Program Interface, only exists to allow homebrew apps on Windows Phone. But an API is just a set of commands made available by a server, like the Tinder mothership, to accept instructions from client apps, like the many copies of the Tinder app that run on all kinds of phones. Almost all the apps on your phone are clients that work this way, and APIs are ubiquitous. Even the Drupal and Wordpress sites we build each have their own versions.
The code described in the article fits less within the definition of a hack than that of a bot. It would live on a server, persist as a service, wait for triggers–like incoming messages–and then respond to them according to certain rules. Some bots are used for automated customer service; some are used for art projects; some are used for jokes. Many, many, many bots are used for spam or other malicious purposes.
The ethics of bot development are not always simple, but they’re not new territory either. That’s the second and most glaring exception to be taken here: Sean’s assertion that his bot was at the “gray hat” level of malice in terms of its exploitation of code. Bot creator and Portland local Darius Kazemi wrote a thoughtful piece about considering and refining the possibility space of joke bots toward kindness in 2015. That in turn references fellow creator Leonard Richardson’s seminal 2013 post “Bots Should Punch Up”, which contains a telling bit with regard to the color of that hat:“Hackers and comedians and artists are always attracted to the grey areas. But your bot is an extension of your will, and if you're a white guy like me, most of the grey areas are not grey in your favor.”
Perhaps it’s assuming too much to conclude that Sean, a San Francisco programmer whose race is not mentioned in the article, is a white guy. Perhaps not. Technology as a field in the US is overwhelmingly full of white men, offering most of the benefits of the biggest wealth creation engine in history to the people who were already granted our society’s highest levels of privilege. That privilege, and power, means that thoughtless choices have more potential to do harm: by default, they’re punching down.
But even if that weren’t the case, as an educated and socialized human adult, it shouldn’t have been hard to see that writing a service solely to entice, deceive, manipulate and mock people in a vulnerable space like a dating app might have consequences. That is, unless you’ve spent a career being rewarded for ignoring consequences, because you work in tech. That’s the third exception to be taken. For pulling a prank like this, many people would be fired or sued. Instead, Sean got a better job.
I can admit that this story struck me on a personal level. Back before I had to quit Twitter, I used to write bots using their API myself. One of them, which I created in 2014, worked on a similar principle to the Tinder bot: it would receive a person’s message, put it in holding, and send them back a random held message from someone else in response. The juxtapositions were surreal, delightful, and often rewarding. And everyone involved was informed, consenting, and able to make use of built-in safety tools to report bad actors.
I’m not an ethicist or a researcher by training, but I knew to consider those aspects of my work because I have an interest in the history of the internet. According to the article, Sean does too–I’m willing to bet he and I read the same books about phone phreaks, blue boxes and Captain Crunch.
The phreakers he admires, by the way, were indeed “punching up” with their pranks–using low-rent tools to get one back at Bell, an exploitative tech monopoly that would eventually be broken up. Hey, there’s an idea.
People have made infamously bad choices like Sean’s before, and one might expect creators here in the future to work at avoiding their repetition. But instead, his story reflects the broader attitude of a tech sector that is not just ahistorical, but willfully naive and ignorant of the lessons of its past. (If you only read one thing linked in this whole piece, make it that last one. Go ahead, I’ll wait.)
The things I value about working at ThinkShout stand in opposition to all of that. My colleagues here are technical experts, but they’re also widely read, deeply informed, and always working to expand our collective view of the world in inclusive and considerate ways. That’s why we take pride in supporting progressive organizations like the Campaign Legal Center and ChangeLab Solutions. That’s why we focus on accessibility for all users as a core concern and increasing equity in our own job pipeline. That’s why we’re fine with being located far outside the insular centers of big tech culture, where it seems like people would rather try to land on the Moon than make change on the ground.
Even if the article in The Cut highlights the deep problems in the technology sphere that engulfs us all, there are certainly worse things on the internet than a man getting his kicks by trolling a bunch of other men. But there are better things too. If you’d prefer to join us on that side, please get in touch! We’re hiring, and we’d be glad to hear about how your hobby project brought a little kindness and empathy to the world.
The module provides a field formatter that displays a text of field as trimmed text with read more/read less links.Dependencies
The module depends on Smart Trim module.
hCaptcha is a drop-in replacement for reCAPTCHA that earns website owners money and helps companies get their data labeled.
Out-of-the-box, the JSON:API module works with the Comment module to provide HTTP resources for retrieving, updating and deleting comments in a very generic way. This module adds additional JSON:API compliant routes that enhance the developer experience of creating progressively decoupled or fully decoupled comment functionality.
Some (or all) of this module's features and enhancements may be merged into Drupal core. At that point, this module will become obsolete and deprecated.Set up Installation
Download it and enable it! Done.
One of the best things about Drupal’s open-source ecosystem is that it empowers you to be open-minded. Given the vast array of solutions and modules available, users can customize their site to their whims. Alternatively, if you think up and code something new, your contributions can be shared online with other users. With all of the customization available, Drupal is a conducive platform for outside-the-box thinking.
Decoupling is a recent example of this philosophy. Where a standard Drupal website would feature a Drupal-powered front and backend, decoupling opens the door for a variety of possibilities. A decoupled site can utilize different platforms and technologies for both the front and backend. For example, a decoupled site could utilize Drupal’s backend CMS while running a React-powered frontend. Such is Drupal’s flexibility that it can power scores of different, user-facing channels from a single backend, including other sites, native apps, Internet of Things (IoT), and more.
This decoupled or “headless” concept has more applications than just for site design, though. The search function of a website, for one, can benefit from components that utilize this headless approach – and not a moment too soon. As Google has begun to sunset its Google Search Appliance offering, there is now a need for an open and flexible search tool with enterprise-level capabilities.
At this year’s Midwest Drupal Camp, the team from Palantir demonstrated that a decoupled approach to site search was viable. This solution, federated search, allows for indexing and searching across multiple sites. For organizations with a large web portfolio across different platforms, this open federated search solution can fill the gap left by Google.
Understanding why federated search for Drupal is important requires an understanding of how regular site search functions operate. At the core, the search feature is built from three different components: the source, index and results. The source simply refers to all of the searchable content on a given site, from blogs to landing pages. The index is a compilation of metadata that makes the content form the source easier to parse. At Duo, we often use Apache Solr, a platform-agnostic, open source solution for indexing, as it provides speed, power and its own server capabilities. Finally, the results refers to the front-end experience that compiles and delivers the search results to the user.
The above setup will work fine for most simple websites, but larger organizations often require a more robust solution. With federated search, users can query across multiple sites across different platforms without placing much strain on Drupal, since Apache Solr is handling generating the index and providing results. This is accomplished through some tweaking of the basic site search formula.
Part of what makes this search so powerful is that it takes advantage of Drupal’s backend without relying on its frontend. For that, Apache Solr’s dedicated servers empower this new search solution by shouldering the burden of indexing and providing the results. Before it can work, though, some configuration is needed. Based on this configuration, Apache Solr can encompass searches across different sites – including sites that aren’t built with Drupal. Creating this custom solution, in conjunction with the Search API and Search API Solr modules, will ensure that the different data types being indexed will be standardized.
This powerful and streamlined take on site search has a variety of applications. Before releasing the solution, Palantir originally developed federated search for the University of Michigan, as each department ran their own sites on different platforms. Federated search now allows users to seamlessly search for information across the entire school’s network, regardless of the technology used to deliver the content. Beyond university ecosystems, federated search also presents an opportunity for eCommerce. Using this solution, products from different vendors can be consolidated into a simple search.
Thanks to Drupal being open source, organizations can utilize federated search and any other contributed solution at any time. This level of openness is what makes Duo such champions of the Drupal platform. At Duo, we’re committed to exploring new features like this and helping each of our partners think outside the box. If you’re ready to start rethinking your website or sites, we’re just a click away.
Sony and Microsoft had announced a partnership that centers around joint development of cloud tech using Microsfotâ€ s Azure platform, with the goal of supporting their individual game and content-streaming services. ...