What counts as “loose earth” for the Mold Earth spell?

The Mold Earth cantrip offers the following option:

You choose a portion of dirt or stone that you can see within range and that fits within a 5-foot cube. You manipulate it in one of the following ways:

  • If you target an area of loose earth, you can instantaneously excavate it, move it along the ground, and deposit it up to 5 feet away. This movement doesn’t have enough force to cause damage.

(plus some other options)

What is loose earth?

For example, which of the following would meet this criteria:

  • Top soil of a recently plowed field
  • Digging a 10 ft hole in the middle of said same field
  • Digging a 10 ft hole with a mixture of dirt, gravel, clay
  • Digging a 10 ft hole in a cobblestone road
  • Digging a 10 ft hole in solid stone
  • Digging a 10 ft hole under the foundation of a building

As an analogy, would it be accurate to say that this spell would work on anything in minecraft that I can use a wooden shovel on (with the exception of snow)?

See also: Is it possible to create a sink hole with mold earth and a portable hole?

How can this Line-Breaking algorithm consider spaces as having width different than 1.0?

The Divide & Conquer Algorithm for Line-Breaking described here is given below, both in Python and in Dart (which is similar to Java/C#).

Line-breaking is also known as “line wrap”, “word wrap”, or “paragraph formation”, and this algorithm is used for achieving minimum raggedness.

This algorithm works, but it considers each space as having exactly width = 1.0 .

My Question:

How can I modify this algorithm so that it ignores spaces? In other words, make it consider spaces as having width 0.0? (or it would also work for me if I could define any width I wanted for the spaces, including 0.0).

Python Implementation:

def divide(text, width):     words = text.split()     count = len(words)     offsets = [0]     for w in words:         offsets.append(offsets[-1] + len(w))      minima = [0] + [10 ** 20] * count     breaks = [0] * (count + 1)      def cost(i, j):         w = offsets[j] - offsets[i] + j - i - 1         if w > width:             return 10 ** 10         return minima[i] + (width - w) ** 2      def search(i0, j0, i1, j1):         stack = [(i0, j0, i1, j1)]         while stack:             i0, j0, i1, j1 = stack.pop()             if j0 < j1:                 j = (j0 + j1) // 2                 for i in range(i0, i1):                     c = cost(i, j)                     if c <= minima[j]:                         minima[j] = c                         breaks[j] = i                 stack.append((breaks[j], j+1, i1, j1))                 stack.append((i0, j0, breaks[j]+1, j))      n = count + 1     i = 0     offset = 0     while True:         r = min(n, 2 ** (i + 1))         edge = 2 ** i + offset         search(0 + offset, edge, edge, r + offset)         x = minima[r - 1 + offset]         for j in range(2 ** i, r - 1):             y = cost(j + offset, r - 1 + offset)             if y <= x:                 n -= j                 i = 0                 offset += j                 break         else:             if r == n:                 break             i = i + 1      lines = []     j = count     while j > 0:         i = breaks[j]         lines.append(' '.join(words[i:j]))         j = i     lines.reverse()     return lines 

Dart implementation:

class MinimumRaggedness {    /// Given some [boxWidths], break it into the smallest possible number   /// of lines such as each line has width not larger than [maxWidth].   /// It also minimizes the difference between width of each line,   /// achieving a "balanced" result.   /// Spacing between boxes is 1.0.   static List<List<int>> divide(List<num> boxWidths, num maxWidth) {      int count = boxWidths.length;     List<num> offsets = [0];      for (num boxWidth in boxWidths) {       offsets.add(offsets.last + min(boxWidth, maxWidth));     }      List<num> minimum = [0]..addAll(List<num>.filled(count, 9223372036854775807));     List<int> breaks = List<int>.filled(count + 1, 0);      num cost(int i, int j) {       num width = offsets[j] - offsets[i] + j - i - 1;       if (width > maxWidth)         return 9223372036854775806;       else         return minimum[i] + pow(maxWidth - width, 2);     }      void search(int i0, int j0, int i1, int j1) {       Queue<List<int>> stack = Queue()..add([i0, j0, i1, j1]);        while (stack.isNotEmpty) {         List<int> info = stack.removeLast();         i0 = info[0];         j0 = info[1];         i1 = info[2];         j1 = info[3];          if (j0 < j1) {           int j = (j0 + j1) ~/ 2;            for (int i = i0; i < i1; i++) {             num c = cost(i, j);             if (c <= minimum[j]) {               minimum[j] = c;               breaks[j] = i;             }           }            stack.add([breaks[j], j + 1, i1, j1]);           stack.add([i0, j0, breaks[j] + 1, j]);         }       }     }      int n = count + 1;     int i = 0;     int offset = 0;      while (true) {       int r = min(n, pow(2, i + 1));       int edge = pow(2, i) + offset;       search(0 + offset, edge, edge, r + offset);       num x = minimum[r - 1 + offset];        bool flag = true;       for (int j = pow(2, i); j < r - 1; j++) {         num y = cost(j + offset, r - 1 + offset);         if (y <= x) {           n -= j;           i = 0;           offset += j;           flag = false;           break;         }       }        if (flag) {         if (r == n) break;         i = i + 1;       }     }      int j = count;      List<List<int>> indexes = [];      while (j > 0) {       int i = breaks[j];       indexes.add(List<int>.generate(j - i, (index) => index + i));       j = i;     }      return indexes.reversed.toList();   } } 

How do I determine how many spell slots I have when multiclassing?

How do I determine how many spell slots I have if I multiclass into more than one spellcasting class? For example, I have a character that is a level 3 Wizard, a level 7 Eldritch Knight Fighter, a level 2 Arcane Trickster Rogue, a level 4 Paladin, and a 4 Warlock. How many spell slots do I have and how do I determine this?

How to Export MS SQL DB from Docker-Linux to Access format

I have a MS SQL database which is currently up and running on my Mac within a Docker container that is hosting the Ubuntu Linux version of MS SQL Server. I need to export the database to a format that can be imported into an Access (yes, Access) database.

Alternatively, I would need to export all 300+ tables to CSV, and hopefully would not need to do them one by one. Is there any way to export all tables en masse to CSV? But this is an alternative option. I still prefer the Access-compatible export since our new SIS vendor apparently uses it. Thanks!

Legality & security standards of sending SSN / Drivers License via email

I am building a website for use in the state of Ohio where users enter their last 4 digits of SSN or their Driver’s License number. This data is submitted to the webserver which generates a PDF with the information included on it. The PDF is then emailed to the user.

Are there security standards that govern how this type of sensitive data is handled, especially concerning email?

Also are there potential legal issues / concerns in building an application like this?

Thanks,

Mike

Do you get the extra attack from a Haste spell you cast on yourself with 1 round duration?

A rogue PC in my campaign has just picked up the Trapsmith prestige class and gained spellcasting this way. He picked Haste as one of his first spells. Now I wonder: His current caster level is 1. If he casts haste, how long does it last? Only the round he casts the spell? Then he would only benefit from increased speed (+30 feet or double, whichever is lower) and +1 dodge to Reflex and AC until his next turn. Or could he transfer the benefit to the next round, if he takes his move action first and then casts the spell with the standard action?

On TLS-enabled nginx/httpd, is “ssl_verify_client optional_no_ca” disabling TLS’s “CertificateVerify” checks?

I’m looking for an helping hand with my https nginx setup. I require my application to be exposed through an nginx frontend, offloading TLS. Easy !
The thing is, I need to have Certificate-based client authentication, and my application cannot be advertising a list of CAs it accepts as it will disclose information about my clients.

As a result I am building up a solution based on the optional_no_ca parameter of nginx.

Sadly, this workflow is not discussed on the TLS RFC, and I’m willing to confirm that the CertificateVerify is still part of the verifications done by Nginx/OpenSSL .

I’m willing to do my authentication in 2 phases :
1- ClientCertificate & TLS validation – On Nginx ( to avoid replay and certificate forgery )
2- Certificate validity, CAs and CN validation on Application.

This can only be secure if the CertificateVerify is done properly on Nginx side, as it will be impossible for my application to do it, since it’s not terminating TLS itself ( and cannot ).

Would anyone have confirmations ? Or ideas on how to test this without falling down to scappy ?

Fighter (Eldritch Knight)/Wizard multiclass spell known [duplicate]

I’m about to start a campaign and I wish to play an Eldritch Knight/Wizard multiclass. I’ve read the chapter 6 part for spellcasting:

You determine what spells you know and can prepare for each class individually, as if you were a single-classed m em ber of that class. If you are a ranger 4/w izard 3, for example, you know three 1st-level ranger spells based on your levels in the ranger class.

Now, since in that peculiar case the spells are from the same spellcasting class (the wizard), can I learn spells of higher level, for which I have spell slots, even if my single class level could not permit it? For example: if I’m an EK-7/Wizard-3 (so with 4th level spell slots) can I learn 4th level spells?

Count bridging edges in a family of two component forests

I am given a (simple, undirected, connected) graph $ G = (V, E)$ and a fixed spanning tree $ T$ in this graph. Removing an edge $ e\in E(T)$ from $ T$ splits it into a spanning forest $ F^e$ with two components $ F_1^e$ and $ F_2^e$ . I am interested in the number $ c(e)$ of edges in $ G$ that connect $ F^e$ i.e. with one vertex in $ F_1^e$ and the other in $ F_2^e$ .

I would like to compute the number $ c(e)$ for all $ e$ in $ T$ simultaneously. This can be done naively in $ O(|V||E|)$ . Is there a faster way to achieve this?

The graphs I am working with are small-world graphs. In particular the average distance between nodes in $ G$ can be assumed to be small.