All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
We're Drupalers who only recently started digging deep into CiviCRM and we're finding some really cool things! This series of videos is meant to share those secrets with other Drupalers, in case they come across a project that could use them. :-)
You may recall the blog post that David put out way back in August 2017. He gave some very detailed instructions on how you can install CiviCRM on Drupal 8!
We have some new Drupal versions released since August, and we've had some requests to demonstrate how to go through some of the steps. So, I'm going to do just that!
Every step will be followed quite literally. Note that David assumed this was being installed on a development system running Linux. Since I'm running a Mac, this should be a great cross-platform test.
Watch the screencast to see if I run into any issues with the instructions:Video of CiviCRM secrets for Drupalers: Screencast of Drupal 8 + CiviCRM Installation
Some highlights from the video:
- Very quick install of Drupal 8 on a Mac running MAMP
- Download and installation of CiviCRM
- Brief comments along the way as I follow the steps
- Finish with a working Drupal 8 + CiviCRM site!
Please leave a comment below!
The blog is follow up on our previous post “My First Impression of Learning AngularJS” where I shared my experience of working in AngularJS. This blog is intended to take you one step ahead and have a better understanding of basic operation workflow. In Angular, we have a concept of ‘Data-binding’ that means synchronization of data between a view to model or model to view (technically).
From the business perspective: Change in the logic (backend) impacts front-end (view) and vice versa.
This article is the first in a series about different Continuous Integration implementations for Drupal 8 projects. Each installment will pick a CI technology and go over its pros and cons for implementing the following set of jobs when someone creates a pull request:
- Run unit and kernel tests.
- Generate a PHPUnit coverage report.
- Check Drupal's coding standards.
- Update the database and run Behat tests.
In this article, we will start with CircleCI, a SaaS platform. Thanks to work initiated by Andrew Berry at drupal_tests—if you maintain a Drupal 8 module, check it out—I can present you a single-command installer to get your Drupal 8 project started with Continuous Integration using CircleCI.
Here is a clip where I take a vanilla Drupal 8 project created with composer-project, I run the installer and commit the files, and when I allow CircleCI to watch the repository I see the jobs running:Videos require iframe browser support.
For details on how to run the installation script and connect your repository with CircleCI, have a look at the repository's README.Killer features
Once you have the setup in place, your project will benefit right away from the following features:Less infrastructure to maintain
When code is pushed to a GitHub repository, CircleCI takes care of spinning up and tearing down containers for each of the jobs that you have defined in the CircleCI configuration file. CircleCI provides a set of pre-built images for you to use on your project but you can use a custom Docker image if you need it. For example, here is the Dockerfile that the installer script uses:# This is the parent image, located at https://hub.docker.com/_/drupal FROM drupal:8.4-apache # Install libraries and extensions. RUN apt-get update && apt-get install -y \ imagemagick \ libmagickwand-dev \ mariadb-client \ sudo \ vim \ wget \ && docker-php-ext-install mysqli \ && docker-php-ext-install pdo \ && docker-php-ext-install pdo_mysql # Remove the vanilla Drupal project that comes with the parent image. RUN rm -rf /var/www/html/* # Change docroot since we use Composer's drupal-project. RUN sed -ri -e 's!/var/www/html!/var/www/html/web!g' /etc/apache2/sites-available/*.conf RUN sed -ri -e 's!/var/www!/var/www/html/web!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf # Install composer. RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/f3333f3bc20ab8334f7f3dada808b8dfbfc46088/web/installer -O - -q | php -- --quiet RUN mv composer.phar /usr/local/bin/composer # Put a turbo on composer. RUN composer global require hirak/prestissimo # Install XDebug. RUN pecl install xdebug-2.5.5 \ && docker-php-ext-enable xdebug # Install Robo CI. # @TODO replace the following URL by http://robo.li/robo.phar when the Robo team fixes it. RUN wget https://github.com/consolidation/Robo/releases/download/1.1.5/robo.phar RUN chmod +x robo.phar && mv robo.phar /usr/local/bin/robo # Install Dockerize. ENV DOCKERIZE_VERSION v0.6.0 RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz # Install ImageMagic to take screenshots. RUN pecl install imagick \ && docker-php-ext-enable imagick Status badges
By adding a CircleCI status badge to your project’s README file, you can check whether the main branch is stable or not:undefined
This is useful when creating a new release. If the badge is red, then you need to investigate what’s going on. Beware, there is an open bug in CircleCI that may display the green PASSED badge even when one of the jobs in a workflow has failed. Until this gets fixed, click on the badge to double check that everything passes.Version control
CircleCI’s jobs live within the project repository under the .circleci directory, which makes it easy to track changes in the jobs and make them evolve along with the project.Intelligent reporting
CircleCI is intelligent at presenting job artifacts. Here are some screenshots:Failed tests
By storing test results as artifacts, CircleCI can parse them and present them in the browser:undefined Links to screenshots taken by Behat
By using the Behat Screenshot extension and storing the screenshots as job artifacts, we can see them as a list of links in the browser:undefined
Here is what we see when we click on the highlighted link above:undefined Coding standard violations
CircleCI can parse the Code Sniffer report and present a summary of Drupal coding standard violations:undefined Test coverage reports
By generating an HTML PHPUnit report and exposing it as an artifact, we can see a link to the report at the CircleCI web interface:undefined
The highlighted link above shows the following report which describes how much of the code is covered by tests:undefined Running CircleCI jobs locally
CircleCI offers a command line interface for running jobs locally. This is a big time saver as it gives you a chance to test and debug a job locally before pushing your changes.undefined Ready to take off!
Do you have a Drupal 8 project and want to try Continuous Integration with CircleCI? If so, follow the instructions at the Drupal8CI repository and start writing tests and getting the jobs to pass. If you find issues or add improvements, please either post a comment here or contribute them to the repository. Happy CI-ing!Acknowledgements
- By : Ganesh
- Date :17-01-2018
The De Overheid.nl Web Metadata Standaard (OWMS) is a Dutch standard for information on the internet about the Dutch government. By using this standard, different websites can link their information in a coherent way.
Currently the module provides the following functionality:
- Saving and automatically updating a specific list of values provided by OWMS into configuration entities.
- Exposing the values of those lists in a custom 'OWMS' field.
- Detecting deprecated values used on the website.
Back when I was working on my masters, I had to take some PhD classes in econometrics. To do that I had to go to the economics department, fill out paperwork and ask them to let me into the classes (Since I wasn’t a PhD student, the department was rightly worried I might find the classes highly challenging. I did eek out a passing grade though.) While waiting to be seen, one of the professors walking by struck up a conversation with me. After about 5 minutes, he said to me (I paraphrase): “I like you. You should read Veblen’s Theory of the Leisure Class. You’re just the right type of weird to enjoy it.” Turns out he was the professor I was going to have daily 6 hour long classes with that summer. He was pretty weird himself, but in a good way.
Wanting to be more into economics than I really was, and wanting to impress the professor, I picked up a copy of the book. (by the way, it’s public domain and you can find it for free online if you care to read it. PDF EPUB and other formats). Published in 1899, it’s a bit of a slog full of unfamiliar words and archaic structure, but that professor was right, I was just the type of weird to enjoy it. Oddly enough, for an economic treatise written seventy years before the creation of role playing games, it provides an interesting lens to view them through and insights into the nature of them.
(Veblen can also be used to explain a lot of human behavior both on the personal and macro scale. As this is not a political site, I leave you to draw your own conclusions on that front. I’m 100% certain that you can find multiple sites on the topic elsewhere on the internet if you want to read up on it.)
Veblen’s main thesis is that despite the complaints of the economists of his day, and non-economists still today, human behavior is more or less rational despite appearances to the contrary. Of course, keep in mind that humans are notoriously bad at evaluating small short term vs larger long term gains, and are often self benefit driven, both a legacy from when life was nasty, brutish, and short. To explain seeming lapses in rationality, Veblen explains the concept of agency and status and posits that all so called irrational behavior are attempts to gather one or the other:
- Agency: Veblen’s concept of agency is related to but distinct from the commonly discussed gaming concept of player agency. It consists of two parts- the ability to take powerful actions which hold the appearance of consciousness (appearance of consciousness means things like powerful storms have agency even though we now know they’re not conscious) and the ability to impose your will on others with agency. Thus the farmer does not have agency, or has very little, because he imposes his will on plants, which do not have agency; but the hunter, shaman, and warrior do because they impose their will on beasts, storms, and other warriors. Note that how one imposes this will is irrelevant. The warrior who imposes his will through brute violence and the rogue who imposes his will through clever action both have equal agency.
In your typical game, there is a ladder of agency. PCs, foes and important NPCs have agency, players and GM influence them with their agency, and above all of that, playing the part of the capricious whimsical gods are the dice which, much like the storms of our ancestors, seem to have a will all their own.
- Status: Status is the acknowledgement, deference, and special treatment we give to those with greater agency. In early or brutal civilizations it’s not mouthing off to the warriors because if you do they might just run you through. In more abstract examples, it’s not mouthing off to the king because even though you’re pretty sure you could take him in a fight, his soldiers will run you through and his bureaucrats will see to it that your taxes are doubled.
Veblen explains that the primary way of gathering agency is the heroic exploit, and that the primary currency used is courage and cunning. Enter the typical archetype of the warrior, hunter, and trickster. But over time he argues it becomes more difficult to show off just how heroic you are. Trophies and treasure gained in exploit can only take you so far. Enter two more ways to show how much agency you have: conspicuous consumption and conspicuous leisure. Eventually heroes have so much accumulated riches from exploit that they can afford to blow those resources on ever more extravagant goods and services and on long periods doing nothing of value. Remember back to the carousing rules from the early Conan RPG and the early DnD rules for building your own keep, crafting magic items and doing spell research. All these things signal to the rest of the world just how formidable you are. Different RPG archetypes focus on different mixes of these four building blocks of agency and status.
- Courage: imposing agency via force of arms and brute strength
- Cunning: imposing agency via cleverness or guile
- Conspicuous Consumption: showing status via display of resources gathered in heroic exploit
- Conspicuous Leisure: showing status via not performing otherwise productive work when not involved in exploit
Veblen says that the expression of these qualities has social value in that you get special treatment for having or displaying them. They are largely expressed in the form of what Veblen terms invidious comparison. I am stronger than that person, I am smarter than this other person, more moral than this person, etc. More abstractly, they can be expressed through trophies of exploits, what resources you have, what groups you associate with, who you work for etc. In the extreme, one who successfully gathers large amounts of resources via exploit can’t spend it all themselves, and may even hire retainers whose only job is to spend their lord’s money. Interestingly, some of these expressions are cultural and change over time. Recent studies have shown that modern Americans are less inclined to give others status for having lots of leisure time and lots of expensive possessions, which were major status symbols in Veblen’s time and are still (apparently) status symbols in other places. (article 1 and article 2).
What in particular struck me while reading through the book was that a large part of RPGs was an attempt to emulate characters with far more agency, and thus status, than players generally have. That’s of course an oversimplification. Different people play RPGs for lots of different reasons, and you can probably find some that don’t hinge on playing with agency, but I can’t think of any . Feel free to correct me if you like. What this means is that in theory RPG experiences featuring the right balance of character agency (enough agency to impose their will on others but not so much that opponents don’t appear to have agency of their own) should be a more satisfying play experience, and giving the characters markers of agency and status should also lead to satisfying play. In fact, one could write an entire book digging through Theory Of The Leisure Class and pulling out elements to enhance games*.
As a side note, plenty of playstyles and even problem playstyles can be chalked up to Veblen’s agency. On the innocuous side is pushing for more PC vs NPC agency. On the destructive side is outright player vs player or player vs GM agency. If you’ve ever wondered what the player who enjoys making everyone else’s experience miserable is getting out of it, this is it: imposing their agency over that of the other players and GM, and if they can’t be convinced to pick a more suitable target, they should be shown the door before it gets worse.
However, even though Veblen explains RPG motivations very well it turns out that taken to extremes, pursuing agency and status also explains a variety of the more unsavory elements of humanity: Slavery, discrimination, sexism, racism etc. are all big markers for agency and status. Some of them, like slavery, are a direct application of agency. One person has the agency to literally own another. Isms are a little more abstract but boil down to an imbalance of status between two groups. If you belong to the group an imbalance favors, you benefit from that status boost. You can see the evidence of this in plenty of the fiction that inspired the RPG hobby. Conan, for example has a scene in at least every other story where he forces himself on a woman and halfway through the act, she stops struggling to get him off her and starts struggling to get her panties off, because he’s just so manly and good at kissing it changes her mind, and Robert E Howard doesn’t even hold a candle to John Norman in that regard. A lot of early space opera sci-fi was heroic American vs evil communist Asians . . . innnn spaaaaace! There are still plenty of vestiges of this era sticking around too. All dwarves are racist against elves, elves are racist against . . . mostly dwarves, but also everyone. Lots of sentient species are kill on sight morally repugnant, and every half-orc gets the one good half orc treatment.
So, TLDR: RPGs are big power fantasies about imposing your will on others and everyone fawning all over you for doing it, and taken too far the natural extension of this is some of the worst parts of the human experience. Lovely.
Let me put on my devil’s advocate hat for a moment and just take things too far. If the above is true, wouldn’t featuring all of those uncomfortable bits of bad human behavior and allowing PCs to wallow in them make your game a more powerful expression of what RPGs are all about, and wouldn’t your game be better for it? Shouldn’t I be saying: “All this stuff adds to the fantasy that is explicitly the entire point of the game, so put it in your game, lots of it!”
That would be an awfully weird position to take, wouldn’t it? Turns out it’s a tempting position, but not necessarily a good one. First, there’s more than enough opportunity for heroic exploit, agency and status in your average game. Dipping into the more problematic aspects of agency just isn’t necessary. Even if you wanted to, most are very sensitive subjects and should be handled with care and only with complete group buy-in. And of course if you don’t take sensitive issues seriously, like other problem play styles, you run the very real risk of trading in game status for out of game status (i.e.: you get labeled a jerk and no one wants to play with you because you don’t respect others’ boundaries.)
But, can dealing with these difficult extremes of agency and status in your game be done without issues? Yes, but it’s nothing groundbreaking. On the extreme end, with player buy-in you can absolutely play an evil game with PCs that push the envelope. In a more traditional game, you can include these issues but reserve them for villainous NPCs that heroic PCs put a stop to. You can include lesser versions of them (the faux racism of all dwarves and elves). You can reserve involuntary traits indicating a lesser status for non sentient or irredeemably evil beings (golems and demons are OK to pick on because even though their status is linked to race one is a mindless automaton, the other is literally made of evil. If your golems and demons don’t follow that mold, things get hazier. This is where the “all orcs are evil” problems come from. Are orcs inherently evil like in Lord of the Rings, or do they fall in a spectrum like most fantasy races?) In fact, these could lead to some interesting introspective role playing moments. Nothing groundbreaking. All common enough that this is not the first time you’ve heard of them.
So that’s it. That’s the short version of viewing role playing games through the lens of Veblen’s Theory Of The Leisure Class, and the problems that come with it. Hopefully it’s an interesting perspective.
* Writing said book has been on my “someday projects” list for quite some time. Also feel free to let me know if that sounds lame and I should let it languish or if it sounds awesome and I should move it up the list
With the Atlas module you can upload images (type: *.jpg, *.png) and mark areas on these images and connect them with a search. Therefore the Solr-Module is required.