All RPGs and Storygames by Tod Foley are now available at DrivethruRPG and RPGnow. Bring these games to your table!
Every big Drupal release opens fantastic opportunities for websites. Three years ago, the eighth Drupal version came to this world — and the world fell in love with top-notch Drupal 8 improvements.Read more
Installing Lando on a Windows machine is easy. Just follow these 30 (or more) simple steps:
- Review the directions.
- Figure out which version of Windows you are running.
- Realize that you need to upgrade to Windows 10 Professional, because apparently you have to pay extra to actually do work on a Windows machine.
- Open the Windows Store.
- Spend half an hour trying to figure out why the Windows store is only showing blank pages.
- Take a break, go vote, spend some time with your kids, and seriously consider buying a Mac so that you don't have to deal with this shit.
- Reboot your computer and finally get Windows store to respond.
- Pay $100 dollars, while updating your account information because everything is three years out-of-date. Do not pass Go.
- Reboot your computer twice.
- Go to the Lando releases page.
- Spend some time looking for the last stable release (note: there is no spoon stable release).
- Download and run the latest .exe.
- The installer will complain that you don't have Hyper V, which you just paid for.
- Find the obscure command you need to enable Hyper V.
- Find Powershell in the Start menu.
- Discover that you can paste into PowerShell just by right-clicking your mouse. This seems convenient, but it's a trap!
- Run the command. It doesn't work.
- Learn how to run PowerShell as an administrator.
- Run the command, again.
- Reboot your computer, again.
- Run the .exe, again.
- The installer wants to install Docker. Let it.
- The Docker installer wants you to log you out. Let it
- Log back in.
- Open Babun and try the lando command. It isn't found.
- Open Powershell and try the lando command. It isn't found.
- Open the Command Prompt and try the lando command. It isn't found.
- Re-run the Lando installer, for the third time. It turns out that it never finished because Docker logged you out.
- Open Powershell and try the lando command.
- It works! Congratulations, you are done!*
* Just kidding...
- Open PowerShell. Go to the directory where you have your Drupal site.
- Run lando init.
- Choose the drupal 7 recipe.
- Why is it asking for a Pantheon machine token? This isn't a Pantheon site! Hit Ctrl-C.
- Log into Pantheon, create a machine token for your Windows machine. note: Terminus and Lando are notorious for asking for this machine token over and over, so make sure to paste this machine token into a file somewhere, which kind of defeats the entire point of having a machine token.
- Run lando init, again.
- Right clicking to paste doesn't work for the hidden machine token. So, learn a different way to paste the machine token into PowerShell.
- Congratulations, you are done!**
** Just kidding...
- Run lando start. Your terminal will proceed to spew error messages for several minutes.
- Spend an hour searching through the Lando issue queue trying to find the magic sequence that will fix these errors.
- Go apple.com and start comparing the new MacBook Air to the new Mac Mini. Figure out if you can afford either one so that you don't have to deal with this shit.
- Your kids are picking up on your frustration, and everyone is melting down because it is bedtime (and your are anxious about the election).
- Give up for the night, and obsessively refresh the election results at fivethirtyeight.com until the results are clear at 11:00 PM.
- Get up the next morning and write a satirical article about installing Lando on your Windows machine.
I will let you know if I ever actually get it working.Tags:
Provides integration of Drupal Commerce into Googalytics module by implementing the Google Analytics Ecommerce Tracking commands on placing an order.
At least currently, only the Ecommerce Tracking is supported, not the Enhanced one. This is ideal, if you only want to track placed orders (totals, as well as individual order items).
This module creates an animated scroll to elements.
Single and multiple hashes in the URL are allowed. This are some correct URLs:
The scroll speed, pause, correction and easing can be set per element (see below).
Default settings can be set on /admin/config/animate-scroll-to/settings
The settings can be overridden per element with the following attributes:
Last September Dropsolid sponsored and attended Drupal Europe. Compared to the Northern America’s conferences, getting Europeans to move to another location is challenging. Certainly when there are many conferences of such high quality that compete such as Drupalcamps, Drupal Dev Days, Frontend United, Drupalaton, Drupaljam, Drupal Business Days. I’m happy for the team they succeeded in making Drupal Europe profitable, this is a huge accomplishment and it also sends a strong signal to the market!
Knowing these tendencies, it was amazing to see that there is a huge market-fit for the conference that Drupal Europe filled in. Also a great sign for Drupal as a base technology and the growth of Drupal. Hence, for Dropsolid it was a must to attend, help and to sponsor such an event. Not only because it helps us getting the visibility in the developer community but also to connect with the latest technologies surrounding the Drupal ecosystem.
The shift to decoupled projects is a noticeable one for Dropsolid and even the Dropsolid platform is a Drupal decoupled project using Angular as our frontend. Next to that, we had a demo at our booth that showed a web VR environment in our Oculus Rift where cotent came from a Drupal 8 application.
On top of that, Drupal Europe was so important to us that our CTO helped the content team by being a volunteer and selection the sessions that were related to Devops & Infrastructure. Nick has been closely involved in this area and we’re glad to donate his time to help curate and select qualitative sessions for Drupal Europe.
None of this would have been possible without the support of our own Government who supports companies like Dropsolid to be present at these international conferences. Even though Drupal Europe is a new concept, it was seen and accepted as a niche conference that allows companies like Dropsolid to get brand awareness and knowledge outside of Belgium. We thank them for this support!
From Nick: “One of the most interesting sessions for me was the keynote about the “Future of the open web and open source”. The panel included, next to Dries, Barb Palser from Google, DB Hurley from Mautic and Heather Burns. From what we gathered Matt Mullenberg was also supposed to be there but he wasn’t present. Too bad, as I was hoping to see such a collaboration and discussion. The discussion that got me the most is the “creepifying” of our personal data and how this could be reversed. How can one gain control the access of your own data and how can one revoke such an access. Just imagine, how many companies have your personal name and email and how could technology disrupt such a world where an individual controls what is theirs. I recommend watching the keynote in any case!”
*/ /*-->*/ /*-->*/ /*-->*/
We’ve also seen how Drupal.org could look like with the announced integration with Gitlab. I can’t recall myself being more excited when it comes to personal maintenance pain. In-line editing of code being one of the most amazing ones. More explanation can be found at https://dri.es/state-of-drupal-presentation-september-2018.
*/ /*-->*/ /*-->*/ /*-->*/
“Another session that really caught our eye and is worthy of a completely separate blogpost is the session of Markus Kalkbrenner about Advanced Solr. Perhaps to give you some context, I’ve been working with Solr for more than 9 years. I can prove it with a commit even! https://cgit.drupalcode.org/apachesolr_ubercart/commit/?id=b950e78. This session was mind blowing. Markus used very advanced concepts from which I hardly knew the existence of, let alone found an application for it.
One of the use cases is a per-user sort based on the favorites of a user. The example Markus used was a recipe site where you can rate recipes. Obviously you could sort on the average rating but what if you want to sort the recipe’s by “your” rating. This might seem trivial but is a very hard problem to solve as you have to normalize a dataset in Solr which is by default a denormalized dataset.
Now, what if you want to use this data to get personalized recommendations. This means we have to learn about the user and use this data on the fly to get these recommendations based on the votes the user applied to recipes. Watch how this work in the recording of Markus and be prepared to have your mind blown.”
*/ /*-->*/ /*-->*/ /*-->*/
There were a lot of other interesting sessions and most of them had recordings and their details can be found and viewed at https://www.drupaleurope.org/program/schedule. If you are interested in the future of the web and how Drupal plays an important role in this we suggest you take a look. If you are more into meeting people in real-time and being an active listener there is Drupalcamp Ghent (http://drupalcamp.be) at the 23rd and the 24th of November. Dropsolid is also a proud sponsor of this event.
And an additional tip: Markus’s session will also be presented there ;-)
I was recently invited to a friend’s house to take part in their playtest of the second edition of Pathfinder RPG.
The first week went fine. Gameplay quickly revealed that my player character — Spindle, a gnome bard — had little affinity for the shortbow he was carrying.
It was hardly surprising. Singing and inspiration were his hallmarks.
If Spindle’s arrows went ker-plunk, that was to be expected. He was a first-level character, after all.
The following week I arrived determined to emphasize Spindle’s bardic skills. One problem — the player with the dwarf fighter couldn’t make it. I looked at the player with the rogue, and he looked back at me. Then we both looked at the druid and the wizard. For this night’s play, our characters would be the melee combatants?
OK Johnny, rosin up that bow …
But this isn’t a story about how our misfit band of spellcasters prevailed in a dungeon designed to test the ruleset — although that did happen. It’s really about me rolling spectacularly bad, owning those rolls in the moment, and incorporating that into the role-play.
Spindle’s first d20 attack roll of the night was a 1.
It appeared to be a continuation of Spindle’s record of near- and not-so-near misses.
So be it.
As a player you can throw a pout, get angry at the die, curse, or demonstrate your displeasure in any number of ways.
Or, you can scoop up the die and describe how spectacularly bad that arrow shot was.
I chose the latter. (If I was GMing, it’s what I hope my players do.)
It was a move that paid off.
Not by getting better rolls, but by continuing to roll poorly and bringing those fails to life with energy and interaction that other players could feed off of.
Spindle offers to assist the rogue attempting to disable the trap by holding back a distracting gate.
Spindle searches for the key to the locked chest.
Spindle attempts to climb the rope to reach the ledge.
Spindle makes a skill check.
And with each 1, Spindle was coming alive at the table. With every miss, his personality emerged. Admittedly, he wasn’t contributing to the general welfare of the party — which could have used a nice solid attack roll. But I was getting to know Spindle, and so were the other players.
Hands jittery and nervous hovered over the quiver. Reaching in, they shook so badly he knocked two or three arrows out for each one he withdrew.
He might be a hapless, inept bowman, but he was my hapless, inept bowman. And that’s what the table got to experience. A gnome that was out of his league, out of his element, off-balance … perhaps, even a liability.
Spindle renewed his attack and almost tossed another 1, but the die stopped on the seam in the table … hovered at 1 … but then teetered onto 19. Clearly, that shot ricocheted past the target, bounced off the back wall and got the goblin on the rebound. Something like that.
With that, I sensed I was in for a change of fortune, so I switched gears.
“Enough!” Spindle declared, tossing down the bow. He drew out the rapier, tossed magic missile and true strike at the boss opponent and was suddenly back on offense.
I have written in a GS post before about the importance of the GM taking roleplay cues from dice results.
But having a player do it is important, too. Probably moreso than relying on the GM to shoulder the burden. When four players around the table are riffing off their dice rolls, the narration sizzles. The rogue takes poison from the needle trap, and despite the illness and the loss of hit points refuses to retreat. The druid steps up into the fight, slicing at her foe with her scimitar. The wizard calls forth lightning, but it fizzles out, doing only 1 point of damage. Oops.
Unlike a stage play, an rpg session doesn’t have a script.
But it does have lines, of a sort, and they are revealed with each toss of the dice. Hit those cues and you’ll have a session to remember.
Adds Google Optimize for A/B testing and personalization to your website.
Optionally add the Google Optimize page-hiding snippet to pages.
See https://developers.google.com/optimize/#the_page-hiding_snippet_code for Google's documentation.
This module requires the Google Analytics module https://www.drupal.org/project/google_analytics
This module and its sub-modules are fulfilling the need to have a template selector for content types using a standard Drupal entities.The Problem
Drupal is a great content management framework for developers but it lacks an essential part that other frameworks provide which make the mission of the Site builders and content admins easier that is related to select a template for each content type out of the box.
This module creates a field type for displaying charts utilizing the Chart.js. This module is different than other modules using charting and graphing libraries because it creates a field type.
I’ve been running a lot lately, and so have been listening to lots of podcasts! Which is how I stumbled upon this great episode of the Lullabot podcast recently — embarrassingly one from over a year ago: “Talking Performance with Pantheon’s David Strauss and Josh Koenig”, with David and Josh from Pantheon and Nate Lampton from Lullabot.
(Also, I’ve been meaning to blog more, including simple responses to other blog posts!)Interesting remarks about BigPipe
Around 49:00, they start talking about BigPipe. David made these observations around 50:22:
I have some mixed views on exactly whether that’s the perfect approach going forward, in the sense that it relies on PHP pumping cached data through its own system which basically requires handling a whole bunch of strings to send them out, as well as that it seems to be optimized around this sort of HTTP 1.1 behavior. Which, to compare against HTTP 2, there’s not really any cost to additional cost to additional connections in HTTP 2. So I think it still remains to be seen how much benefit it provides in the real world with the ongoing evolution of some of these technologies.
David is right; BigPipe is written for a HTTP 1.1 world, because BigPipe is intended to benefit as many end users as possible.
And around 52:00, Josh then made these observations:
It’s really great that BigPipe is in Drupal core because it’s the kind of thing that if you’re building your application from scratch that you might have to do a six month refactor to even make possible. And the cache layer that supports it, can support lots other interesting things that we’ll be able to develop in the future on top of Drupal 8. […] I would also say that I think the number of cases where BigPipe or ESI are actually called for is very very small. I always whenever we talk about these really hot awesome bleeding-edge cache technologies, I kinda want to go back to what Nate said: start with your Page Cache, figure out when and how to use that, and figure out how to do all the fundamentals of performance before even entertaining doing any of these cutting-edge technologies, because they’re much trickier to implement, much more complex and people sometimes go after those things first and get in over their head, and miss out on a lot of the really big wins that are easier to get and will honestly matter a lot more to end users. “Stop thinking about ESI, turn on your block cache.”
Josh is right too, BigPipe is not a silver bullet for all performance problems; definitely ensure your images and JS are optimized first. But equating BigPipe with ESI is a bit much; ESI is indeed extremely tricky to set up. And … Drupal 8 has always cached blocks by default. :)
Finally, around 53:30 David cites another reason to stress why more sites are not handling authenticated traffic:
[…] things like commenting often move to tools like Disqus and whether you want to use Facebook or the Google+ ones or any one of those kind of options; none of those require dynamic interaction with Drupal.
Also true, but we’re now seeing the inverse movement, with the increased skepticism of trusting social media giants, not to mention the privacy (GDPR) implications. Which means sites that have great performance for dynamic/personalized/uncacheable responses are becoming more important again.BigPipe’s goal
David and Josh were being constructively critical; I would expect nothing less! :)
But in their description and subsequent questioning of BigPipe, I think they forget its two crucial strengths:
BigPipe works on any server, and is therefore available to everybody, and it works for many things out of the box, including f.e. every uncacheable Drupal block!
Bringing this optimization that sits at the intersection of front-end & back-end performance to the masses rather than having it only be available for web giants like Facebook and LinkedIn is a big step forward in making the entire web fast.
Using BigPipe does not require writing a single line of custom code; the module effectively progressively enhances Drupal’s HTML rendering — and turned on by default since Drupal 8.5!Conclusion
Like Josh and David say: don’t forget about performance fundamentals! BigPipe is no silver bullet. If you serve 100% anon traffic, BigPipe won’t make a difference. But for sites with auth traffic, personalized and uncacheable blocks on your Drupal site are streamed automatically by BigPipe, no code changes necessary:
(That’s with 2 slow blocks that take 3 s to render. Only one is cacheable. Hence the page load takes ~6 s with cold caches, ~3 s with warm caches.)
The 2013 heist game continues to be a major earner for Starbreeze, bringing in a total of 20.9 million during the company's latest quarter. ...
An online complaint from a parent has prompted Ubisoft to apologize for how it advertises songs locked behind a paid subscription when the game is in "Kids Mode." ...
During this year and at several events SANDCamp, DrupalCamp LA, DrupalCon Nashville, and DrupalCamp Colorado I had a chance to talk and show how at WeKnow we approached the development of API driven applications. For all of you that use Drupal, this is something like decoupled or headless Drupal but without the Drupal part.
This article outlines weKnow’s approach and provides some insight into how we develop some web applications.
Yes, this may sound strange but whenever we need to build an application that is not content-centric, we use Symfony instead of Drupal; what are those cases? Whenever we do not require the out-of-the-box functionality that Drupal offers as content management, content revision workflow, field widgets/formatters, views, and managing data structure from the UI (content types).jmolivas Tue, 11/06/2018 - 17:17
Pattern Lab (PL), a commonly known pattern library, is an open-source project to generate a design system for your site. In the last two years it has gotten a lot of attention in the Drupal community. It's a great way to implement a design system into your front-end workflow.
The following post describes how our client (the City and County of San Francisco) began to implement a pattern library that will eventually be expanded upon and re-used for other agency websites across the SF.gov ecosystem.USWDS.
Using the U.S. Web Design System (USWDS), until their own pattern library was ready for prime time, was a client requirement.