Gathering Intel – Strategies on balancing social time for different types of players?

I am both a DM and player for our group in two separate campaigns. Some of us are brand new and some are semi-moderately experienced.

I have a noticed a pattern in both games where some players, (about 2 or 3 out of 5), really enjoy the socialization of talking up npc’s and persuading and getting the most of whatever dialogue they can get going. The others seem bored during that portion of role play. I think there are two factors; 1 – their character is someone with terrible social skills and they may feel like trying to engage is sub-optimal or not a good idea, 2 – they want to get to aspects of the game they find more interesting for them.

So when I am GM I want to try to balance between the two and when I am a player (playing a barbarian) I try to stay engaged and input my low intelligence/high ego and let people see that I don’t get punished for opening my mouth.

So I am trying to come up with a balance between the two, which leads to my question: What are common strategies GMs use to balance socialization time for these players with different priorities?

I will mention that the campaign I am GM’ing for is in its early stages, so I am currently facing the setup of the main campaign hub for early-mid game and looking at all these different threads and NPCs the characters have to meet, and knowing that their tendency is to do the online MMO thing of optimizing quest gathering by sweeping through town and collecting all the quests before deciding which are worth pursuing and whether they can complete several at once… which would be one heck of a giant information dump and socialization session.

Strategies for event-driven concurrency

Is there any good formal investigation or at least definition of different strategies of event-driven concurrent programming?

I’ve read that there exist readiness based (pull based) and completion based (push based) approaches, and also callback based and polling based ones. I believe the two classifications are orthogonal:

               | readiness based | completion based | ---------------|-----------------|------------------| callback based |                 |                  | ---------------|-----------------|------------------| polling based  |                 |                  | ---------------|-----------------|------------------| 

Additionally, callback based and polling based are not mutually exclusive: a callback can be used for notification that polling can be retried.

What i’ve read so far gives me only some vague intuition, and distinctions are fuzzy. For example, for an I/O operation to be ready, i suppose that some other operation needs to be completed, and once some operation is completed, something else can become ready.

So, are there any good academic-level references on this subject?

ToElementMesh Error/General meshing strategies

I am trying to create a mesh using ToBoundaryMesh as opposed to DiscretizeRegion. I was hoping this would be a better strategy since most of the action in the problem I am trying to solve happens in a very small region along the right boundary; however I am getting the following error from ToElementMesh

ToElementMesh: The mesh elements are not valid. A set of valid mesh element incidents needs to be positive integers and be able to form a complete sequence starting from 1 to the largest incident present. There are missing incidents; a complete sequence cannot be formed.

Why am I getting this error? As far as I can tell, the mesh elements incidents do form a complete sequence.

Additionally, there are several different ways to create a mesh in Mathematica and I am not familiar with all of them and what types of problems they are best suited for. Could anyone suggest the best strategy given the problem I am trying to solve? The aspect ratio of the domain is extremely high and the segments of the boundary on the right side where things happen are on the nano scale. So this problem requires extremely fine mesh elements in that region.

I’ve included the full code, including the problem I am trying to solve once the mesh is working, below. I would appreciate any help or insight I can get!

ClearAll["Global`*"] Needs["NDSolve`FEM`"] (* 1) Define Constants*) e = 1.60217662*10^-19; F = 96485; kb = 1.381*10^-23; sigi = 18; sigini = 0; sigeni = 2*10^6; T = 1000; n = -0.02; c = 1;  pH2 = 0.2; pH2O = 1 - pH2; pO2 = 1.52*^-19; l = 10*10^-6; a = 100*10^-9; b = 50*10^-9; d = 300*10^-9; y1 = 0.01; y2 = 0.5*y1; y3 = y2 + a; y4 = y3 + d; y5 = y4 + b; mu1 = 0; mu2 = -5.98392*^-19; phi1 = 0;  (* 2) Create mesh*) m = 0.1*l; size1 = 10^-17; size2 = 10^-15; size3 = 10^-7; pts = {{0, 0}, {l, 0}, {l, y2}, {l, y3}, {l, y4}, {l, y5}, {l,      y1}, {0, y1}}; incidents = Partition[FindShortestTour[pts][[2]], 2, 1]; markers = {1, 2, 3, 4, 5, 6, 1, 7}; bcEle = {LineElement[incidents, markers]}; bmesh = ToBoundaryMesh["Coordinates" -> pts,     "BoundaryElements" -> bcEle]; mrf = With[{rmf =       RegionMember[       Region@RegionUnion[Disk[{l, y2}, m], Disk[{l, y3}, m],          Disk[{l, y4}, m], Disk[{l, y5}, m]]]},     Function[{vertices, area}, Block[{x, y}, {x, y} = Mean[vertices];      Which[rmf[{x, y}],        area > size1, (0 <= x <= l && y2 - l <= y <= y2 + l),        area > size2, (0 <= x <= l && y3 - l <= y <= y3 + l),        area > size2, (0 <= x <= l && y4 - l <= y <= y4 + l),        area > size2, (0 <= x <= l && y5 - l <= y <= y5 + l),        area > size2, True, area > size3]]]]; mesh = ToElementMesh[bmesh, MeshRefinementFunction -> mrf];  (* 3) Solve for mu*) bcmu = {DirichletCondition[mu[x, y] == mu1, (x == 0 && 0 < y < y1)],    DirichletCondition[     mu[x, y] ==       mu2, (x == l && y2 <=  y <=  y3) || (x == l && y4 <= y <= y5)]}; solmu = NDSolve[{Laplacian[mu[x, y], {x, y}] ==       0 + NeumannValue[0, y == 0 || y == y1 ||         (x == l && 0 <= y < y2) || (x == l &&            y3 < y < y4) || (x == l && y5 < y < y1)], bcmu},     mu, {x, y} \[Element] mesh, WorkingPrecision -> 50];  (* 4) Solve for electronic conductivity everywhere*) pO2data = Exp[(mu[x, y] /. solmu)/kb/T]; sige0 = 2.77*10^-7; sigedata = Piecewise[{{sige0*pO2data^(-1/4), 0 <= x <= l - m},     {sige0*pO2data^(-1/4), (l - m < x <= l && 0 <= y < y2)},     {(sigeni - sige0*(pO2data /. x -> l - m)^(-1/4))/m*(x - (l - m)) +        sige0*(pO2data /. x -> l - m)^(-1/4), (l - m < x <= l &&         y2 <=  y <= y3)},     {sige0*pO2data^(-1/4), (l - m < x <= l && y3 < y < y4)},     {(sigeni - sige0*(pO2data /. x -> l - m)^(-1/4))/m*(x - (l - m)) +        sige0*(pO2data /. x -> l - m)^(-1/4), (l - m < x <= l &&         y4 <= y <= y5)},     {sige0*pO2data^(-1/4), (l - m < x <= l && y5 < y <= y1)}}];  (* 5) Solve for phi*) Irxn = -(2*F)*(c*pO2^n ); A = (Irxn - sigi/(4*e)*(D[mu[x, y] /. solmu, x] /. x -> l))/(-sigi); B = sigi/(4*e)*(D[mu[x, y] /. solmu, x] /.        x -> l)/(sigi + sigedata /. x -> l - m); bcphi = DirichletCondition[phi[x, y] == phi1, (x == 0 && 0 < y < y1)]; solphi = NDSolve[{Laplacian[phi[x, y], {x, y}] ==       0 + NeumannValue[0,         y == 0 ||          y == y1 || (x == l && 0 <= y < y2) || (x == l &&            y3 < y < y4) || (x == l && y5 < y < y1)] +        NeumannValue[-A[[1]], (x == l && y2 <= y <= y3)] +        NeumannValue[-B[[1]], (x == l && y4 <= y <= y5)], bcphi},     phi, {x, y} \[Element] mesh, WorkingPrecision -> 50]; 

What are the implementation strategies for multiple dispatch: class-based, or method-based organization, or either?

Regarding classes and methods, Practical Foundation of Programming Languages by Harper says:

Dynamic dispatch is often described in terms of a particular implementation strategy, which we will call the class-based organization. In this organization, each object is repre- sented by a vector of methods specialized to the class of that object. We may equivalently use a method-based organization in which each method branches on the class of an ob- ject to determine its behavior. Regardless of the organization used, the fundamental idea is that (a) objects are classified and (b) methods dispatch on the class of an object. The class-based and method-based organizations are interchangeable and, in fact, related by a natural duality between sum and product types. We explain this symmetry by focusing first on the behavior of each method on each object, which is given by a dispatch matrix. From this, we derive both a class-based and a method-based organization in such a way that their equivalence is obvious.

More generally, we may dispatch on the class of multiple arguments simultaneously. We concentrate on single dispatch for the sake of simplicity.

Does “we may dispatch on the class of multiple arguments simultaneously” mean “we may dispatch on the method of multiple arguments simultaneously”

For multiple dispatch, what is its implementation strategy? Class-based organization, or method-based organization, or either? (My guess is that class-based organization doesn’t work for multiple dispatch, but only for single dispatch.)


Algorithm Design Patterns vs. Algorithm Strategies vs. Algorithm Design Techniques vs. Algorithm Design Paradigms

I often encounter these terms, seemingly bearing same semantics and meaning. I’m almost sure they mean same – the types of Algorithms categorized based on their implementation strategy/paradigm.

Just wondering if I’m right and I get this correct, because, again – in different books/courses these terms are encountered in the same context. I’m kind of a very critical to the exactness of the terms I read.

Could you please confirm or reject my assumption?

Strategies for effectively running a temporary online game

Other questions have done a good job of outlining where to find online players and some of the tools available for ongoing virtual games (Roll20, Fantasy Grounds, etc). Many of those tools have a cost associated with them and a large time commitment to configure a custom, homebrew game.

Occasionally, circumstances prevent us from gathering in the way we prefer. The 2020 COVID-19 pandemic is a good example. During those times, finding ways to continue to play together, even if in a non-standard, non-permanent way, is important.

In this question, I’m interested to know what DMs and their players are using to temporarily convert their normal pen and paper, in person gatherings into a system that works with a remote group. I’m specifically interested in answers that address the following common concerns with this type of conversion:

  1. Cost – Low or no added cost (it’s temporary)
  2. Roleplaying – Support for high quality, low delay audio
  3. Content – Support for custom content including maps, handouts, items, etc
  4. Combat – Support for combat positioning, distances, and area effects normally done on a battle mat

Strategies to protect SANs in branch offices in risky places

A company has several remote branch offices located in relatively dangerous places, such as Iraq, and I’m looking into strategies to secure the SAN in the event of theft, looting or rogue admins. Some of these offices are mobile, moving locations every couple of months.

Basically, the goals are:

  1. Prevent data from the SAN falling into the hands of others
  2. Prevent the destruction of data

Each site has:

  • A VPN, providing access to a central data centre in the USA (over a satellite link, sometimes as low as 4MB/s)
  • A local, highly-available ESXi cluster (note the vCentre server is located in a central data centre in Europe)
  • Virtual SAN storage (using StorMagic)
  • No local backups; backups are done remotely to a central data centre in Europe. The satellite links are often slow, and sites can sometimes be without access for several hours

At present, no data is encrypted – for this question, that’s what I want to focus on.

Do you have any suggestions? Should we encrypt at the SAN level, the vSphere level, the OS level? How should keys be managed?

Strategies for handling age of maturity dissonance for Aasimar (or other plane-touched) born to humans?

I find the fact that elves don’t reach adulthood until they are 110 relatively straightforward to work with, since the children and parents are aging at the same rate and their cultures are built around their rate of maturity.

On the other hand, aasimar, tieflings, oreads, etc. seem trickier. Many plane-touched humans are born to two regular human parents (due to plane-touched blood further up their family tree). These children don’t reach maturity until they are 60, but their siblings are adults at 15. If their parents were 25 years old when the child was born, the parent will be 85 when their “little angel” is ready to support himself. In many families, this would mean that plane-touched children will be a terrible burden — likely one born by two or even three generations.


  • Our “little angel” took 4x as long to mature mentally and emotionally as his human siblings, not learning to read until his early-20s, and not safe to leave unattended until his early-30s
  • Our “little angel” took 4x as long to mature physically, crawling until he was 5 years old and staying in diapers until he was 12
  • Our “little angel” will often end up being raised by three generations, with his parents, siblings, and finally nieces or nephews each raising him for 20 years apiece before handing off the young aasimar to their own children.

I don’t have any problem with saying some plane-touched humans live like this…it’s very interesting, plausible, and flavorful.

Saying all plane-touched live like this on the other hand seems counter to the flavor of the world. Frankly, this “kid” (living in a medieval world) is going to likely be seen as stupid and weak, and likely a horrible curse on his poor parents.

Flavor-wise, I’d imagine many plane-touched people are just as fast learners as their sisters and brothers; it’s just that their aging slows to a crawl when they reach adulthood. (This doesn’t seem to be supported by the rules saying they won’t be able to reach 1st level until they are 64+ years old…but the fiction of the world just seems poorer if there aren’t aasimar who are exceptional as youths…for a reason other than exceptional developmental delays.)

How do you play this? Or do you hand-waive it differently?

Has this been addressed by Paizo in any way? (In this case, I’m curious about official statements, but just as interested in how you’ve had success playing it).

Also note, if Alex the Angel has a plane-touched daughter each with Hanna the Human and Emma the Elf, both daughters will reach maturity at 60, but the one with human siblings will see her brothers mature at 15…and the one raised by elves will speed past her fellows, maturing in half their normal rate.