How do I get a new player to stop rewriting my game to match his favorite fiction?

I have a D&D 5e game that I’ve been running for a year that is on pause because some players don’t want to play online or go outside (stupid plague ruining my tabletop). So I offered my son and the player who still does small gatherings a filler game. My son picked Star Wars, I agreed. He told his adult sister, who wanted to come over with her boyfriend to join. During session zero I warned that Star Wars canon, for me, is the original trilogy and the original rulebooks from West End Games (1987).

In no time the boyfriend was saying his character is the cousin of Dash Rendar (who?) because that’s his favorite character. He defends his expectation because he bought himself a Dash Rendar miniature. Then, 4 sessions in, he wanted me to replace his ship, despite my effort to give him stats, background, drawings and floorplan, with Dash Rendar’s ship, because he bought a miniature for it (after having the other ship for a couple sessions). There is also the expectation that I make Dash a major NPC in my game, and give him Dash’s guns and equipment, and something about a planet; I stopped listening. I’ve never had a player like this (in 35 years). He’s not belligerent when I point the lines of ‘few’, ‘minor’ or ‘cosmetic’, or session zero. He just repeats the requests endlessly. And argues that they are still few, minor and cosmetic. And that’s just the character he wants to play. And he doesn’t see how making the game “enjoyable for him” should be such a hassle for me. It’s completely poisoning the game for me, I don’t even want to judge it anymore.

So to resolve it (dodge it entirely), I asked them if they would like to join my D&D game when social distancing stops or pauses or lightens or whatever. I thought it would help because they don’t have history with Forgotten Realms, so there wouldn’t be the crossed expectations. Since my son and his uncle are in both games, we could do some side adventures to level them up to toward the existing party, learn the rules and explain their characters’ relationships with the existing party. They said yes, and made D&D Beyond accounts to join my campaign. The boyfreind made a Warlock Hexblade. I was stoked to have eliminated the problem.

But now he doesn’t want to have anything to do with the Raven Queen, he wants me to replace her with some guy named Leoric from Diablo 2 because that’s his favorite console game. And I need to modify Shadowfell to be more like Diablo 2. And ALL of his spells and features and feats need a necromantic effect that mimic his favorite spells from the video game. I don’t want to hardline him, because I made concessions for every player, they just stopped demanding additional changes somewhere around ‘totally reasonable.’ And like my experience in the Star Wars game, a few concessions have already resulted in the expectation of more, more, MORE!

I pushed back, and he said that he wants to replace him with a Necromancer like Raistlin from DragonLance. Head:0, Brick Wall: Infinity

I am teetering on the edge of just telling him that I don’t try to play his PC, so he shouldn’t try to rewrite my game, and he’s welcome to go find another table where he can play Dash Leoric or whatever. Am I actually wrong, does this fall under the umbrella of ‘the judge’s first job is making the game fun for the players’ or is this guy hijacking my agency as creator and judge? If I am right, and discussing it does not work, what’s the next thing to try?

It does NOT help that it was my own dumb ass that invited my daughter’s boyfriend into my game in the first place. πŸ™‚

How to have AdSense Ads match the content of the page?

We have a classified ads website.

We would like to display Google AdSense Ads based on the content and not on the user’s history/profile. It would perform way better and be more accurate to the users’ intentions.

Long time ago it was possible. Today it seems to be only possible with Google AdSense “Custom Search Ads”.

Is there a solution/possibility with Google AdSense “Ads”?

The Certificate’s CN name does not match the passed value

Each time I teach a network course and we attempt to create and use self signed certificates with the Windows 10 SSTP client we encounter the dreaded “The Certificate’s CN name does not match the passed value” error message

The ca and server certificates are created, signed and trusted We then select the server certificate in the SSTP server settings and export the ca certificate for the Windows PC:

Initially we would specify the sstp (server) router’s IP address as the server CN, and set “ca” as the ca’s CN but recently I have noticed that Windows only accepts the ca if its CN also corresponds to this same IP

We import the certificate on the Windows PC:

Configure the Windows SSTP client :

And then connect :

I assume that the problem lies with Windows but I can’t seem to find where the issue is

Any suggestions ? regards yann

Graph algorithm to match labled edges to sequence of labled edges

I’m looking for a standard algorithm to solve a particular type of graph matching problem. Consider the following two graphs:

Graph 1 1 --A--> 3 1 --B--> 2 2 --C--> 3 4 --A--> 8 4 --B--> 5 5 --C--> 6  Graph 2 1 --X--> 3 4 --X--> 6 

When these are matched, I’m looking for a result as follows:

Graph 1:    a --B--> ? --C--> b             == Graph 2:    a --X--> b 

That is, edge X of Graph 2 maps to path BC of Graph 1. The reason is that the start and end vertices joined with edge X in Graph 2 are same as the start and end vertices joined by path BC in Graph 1. Edges labeled A in Graph 1 represent extraneous connections.

Is there a standard algorithm to solve this, especially one implemented in Python? If so, what is it called?

Determining if match is possible

I have a list of patterns with each pattern containing one or more wildcards. For example:

  • abc*
  • a*
  • *a*z*
  • *z

Wildcard (*) matches one or more characters. For example, any input string starting with ‘a’ would match a pattern a*.

How can I determine if there exists an input string that would match all of the provided patterns?

A reversible algorithm to find the closest match between 2 arrays

So I’m looking for a bit of an abstract algorithm and I’d appreciate any references to read up on. This is a bit tough to explain but I’ll try my best.

Suppose we have 2 int arrays-

A -> {1, 7, 10}

B -> {3, 11, 57}

I’d like the sort the second array in such a way that for each index of the 2 arrays, the corresponding element pairs have the least deviation in value. For the example arrays A and B, we’d need to sort B like so => {3, 57, 11}.

The catch is that it needs to be reversible. So if I was given the modified B and the original A, I’d need to figure out the original B. So if I was given {3, 57, 11} and {1, 7, 10} I’d need to get {3, 11, 57}.

I’m really questioning the possibility of such an algorithm, but if there are any algo experts here, please link me to places that I can study to get as close as I can or, better yet, provide an explanation in the comments.


  • Both arrays are of same length
  • The first array must remain unchanged, only the second should be sorted accordingly
  • There may not be enough optimal elements in the second array to provide a perfect/good match, in this case the least amount of sacrifices will be preferred. For instance, if we had => A -> {1, 54, 72} and B-> {2, 73, 100}. The preferable sort of the second array would be {2, 100, 73} but not {2, 73, 100}. This way we completely sacrifice the last element in favor of getting a good match for the second element. This is preferable as long as the number of sacrifices is at a minimum.
  • The int values will be in range [0, 256). That is, 0 to 256, including 0 but not including 256
  • Of course, once again, the algorithm must be reversible.

Also my original usecase requires me to use arrays of tuples (i.e {(2, 3, 7), (128, 132, 92)}) so I guess if I do find an algo, I’ll need to do it twice but that’s ok. As you may have already guessed, this is for pixel data manipulation.

Upsert Row If Columns Don’t Match

I have a table with unique identifier sid, somecolumn and boolean changed that is needed by other program to detect change in row, I’m using insert into ... on conflict (sid) DO UPDATE ... to insert data that’s not already in there, but I also want to update somecolumn and set changed to true, only if somecolumn doesn’t match excluded one.

to make it bit clearer

  • if sid doesn’t exist, insert data
  • if sid exists and somecolumn matches excluded `somecolumn, do nothing

  • if sid exists and somecolumn doesn’t match, update somecolumn with new value and set changed to true

is there clean way to do this? I’d prefer to do this without making multiple queries, I’m inserting hundreds of values in each query.

Calculating match % and ranking according to that

I’m creating a website like where users will answer some yes/no questions set by me, up to them how many of those questions they want to answer. After a user submits his answer(s), he will be shown top 5 matches along with their match percentages. If two users have 10 common questions and their answers match for 8 of those questions then their match % will be 80%.

I can make this but my concern is about efficiency. A way of making this: If a user wants to see his top matches then match % (or match ratio) will be calculated for him vs every other user in the system. This will be stored in a temporary array. Array is sorted. Top 5 matches from the array are displayed.

Any less resource intensive way to calculate and show top matches?

How can we kick our novice roleplayer out of the group for being a poor match, without alienating them from the hobby?

I have someone in my group who is completely new to the hobby. We are now 12 sessions in, and I will most likely need to remove them from the group: Our play styles don’t match, and the rest of the group (me as GM + 3 other people) want to play a campaign with a completely different tone than that player – The campaign was “advertised” on Roll20 as a more “serious” game (Story- and character focused), but the player (or his characters, he is on his second one) does nothing but silly/goofy actions and otherwise does not participate most of the time.

They joined the group via “looking for group” on Roll20 (It is an online game), and in the game description I laid out a few requirements/expectations about the tone of the game. The other three players had experience with RPGs so we decided to accept someone who was completely new to the hobby into the group. It quickly became clear that it was a mismatch. I won’t go into detail here (not necessary to my question), but they were also below the minimum age I had set for my game (again, in the Roll20 game description on the Looking for Group page) by four or five years.

They received a “warning” from the rest of the group: we spoke with them about the difference in style, and they said they where willing to change their playstyle to better fit – I told them that if they could not (or did not want to), we would probably have to part ways.

Now, a few sessions later, they are returning to their previous behaviour, and the group decided that it was time to “kick them out”. Now here is my problem: It is not their fault that the playstyle does not match, they couldn’t really know (as they had never played before) and while they omitted their age when applying, we also didn’t ask (although we suspected just from their style of writing), and accepted them in. They are also quite enthusiastic, which I really like. I absolutely don’t want to destroy their enthusiasm for our hobby, but I am also not that good with people.

So, my question is: How can I make sure that, when I kick them out, they understand and won’t lose their enthusiasm? How do I part ways with them “on good terms”?

The player in question is 13 or 14 (not 100% sure), male, the game has been running for about 6 months, with about 2 sessions per month, they received the “warning” around session 5 or 6 and it got better for a few sessions after that.

ERROR: structure of query does not match function result type

   CREATE OR REPLACE FUNCTION "cem_dashboard"."n_performance_value"("city" character varying, "testdate" character varying, "technology" int4, "param" character varying)       RETURNS TABLE("sim_network_operator_code_a" float8, "client_city" text, "signal_cell_type_a" float8, "test_date" text, "data_value" float8) AS $  BODY$       BEGIN         IF param = 'download' THEN             RETURN QUERY SELECT cem_dashboard.network_performance.sim_network_operator_code_a,network_performance.signal_cell_type_a,network_performance.test_date,sum(network_performance.download_kbps) as download_kbps FROM network_performance WHERE cem_dashboard.network_performance.client_city = city AND cem_dashboard.network_performance.test_date LIKE testdate AND cem_dashboard.network_performance.signal_cell_type_a = technology GROUP BY cem_dashboard.network_performance.sim_network_operator_code_a,cem_dashboard.network_performance.signal_cell_type_a,cem_dashboard.network_performance.test_date;         ELSIF param = 'upload' THEN             RETURN QUERY SELECT cem_dashboard.network_performance.sim_network_operator_code_a,network_performance.signal_cell_type_a,network_performance.test_date,sum(network_performance.upload_kbps) as upload_kbps FROM network_performance WHERE cem_dashboard.network_performance.client_city = city AND cem_dashboard.network_performance.test_date LIKE testdate AND cem_dashboard.network_performance.signal_cell_type_a = technology GROUP BY cem_dashboard.network_performance.sim_network_operator_code_a,cem_dashboard.network_performance.signal_cell_type_a,cem_dashboard.network_performance.test_date;         ELSE             RETURN QUERY SELECT cem_dashboard.network_performance.sim_network_operator_code_a,network_performance.signal_cell_type_a,network_performance.test_date,sum(network_performance.latency) as latency FROM network_performance WHERE cem_dashboard.network_performance.client_city = city AND cem_dashboard.network_performance.test_date LIKE testdate AND cem_dashboard.network_performance.signal_cell_type_a = technology GROUP BY cem_dashboard.network_performance.sim_network_operator_code_a,cem_dashboard.network_performance.signal_cell_type_a,cem_dashboard.network_performance.test_date;         END IF;      END; $  BODY$         LANGUAGE plpgsql VOLATILE       COST 100       ROWS 1000 

I want to make a function with the contents if conditional. In if conditional, I insert a sql query where the sql has special conditions according to the parameters given, but I am confused about how to return it.

Please help me πŸ™

sorry if my english is bad, I use google translate