What is the meaning of ‘permanent’ in description of True Polymorph?

Following on from this question: Can I True Polymorph a goblin into adamantine (and then forge him into a sword?)

Casting True Polymorph on an unwilling creature (relevant parts included only):

You transform the creature into a different creature…or into an object.The transformation lasts for the duration, or until the target drops to O hit points or dies. If you concentrate on this spell for the full hour, the transformation becomes permanent. An unwilling creature can make a Wisdom saving throw, and if it succeeds, it isn’t affected by this spell.

Creature into Creature: The target assumes the hit points of its new form, and when it reverts to its normal form, the creature returns to the number of hit points it had before it transformed. If it reverts as a result of dropping to O hit points, any excess damage carries over to its normal form. As long as the excess damage doesn’t reduce the creature’s normal form to O hit points, it isn’t knocked unconscious.

Creature into Object: If you turn a creature into an object, it transforms along with whatever it is wearing and carrying into that form. The creature’s statistics become those of the object, and the creature has no memory of time spent in this form, after the spell ends and it returns to its normal form.

The consensus seems to be that if the creature fails the Wisdom save, you can transform it into a weak creature like a slug or an object like a cup, and can then wait for 61 minutes concentrating on the spell, then stamp on the item and kill it, permanently, because that was its new permanent form. But this seems terribly unbalanced, requiring a single wisdom save to be failed (and these can be influenced with features such as Heightened Spell and Magical Ambush) to kill any creature which can be polymorphed, no matter its stats. This also seems to make True Polymorph a better version of Power Word Kill (if delayed and requiring a save) since it is completely uncapped by health, only by Wisdom save proficiency, as well as including many other functions. This makes it seem unlikely this is the correct interpretation of True Polymorph since it renders another (already weak, for that level) spell almost entirely pointless.

I presumed the spell to be saying that after one hour of concentrating on it, the polymorphed form no longer needs to be concentrated on and could last forever, but will still revert back to the original form if reduced to 0 HP, as described in the linked question where the creature (polymorphed into crafting materials) was cut apart. This seems to make much more sense and retains balance.

Which interpretation is correct? Does the ‘permanent’ section overrule the ‘transforms back if reduced to 0 hit points’ part?

What’s the exact meaning of the phrase “when the target willingly moves” in Booming Blade?

The Booming Blade cantrip’s secondary effect states that “[the target] becomes sheathed in booming energy until the start of your next turn. If the target willingly moves before then, it immediately takes 1d8 thunder damage, and the spell ends”. We can deduce, then:

  • That the damage does not trigger when the target is dragged or pushed around via physical means (grappling, shoving, scenario effects, etc.)
  • That the damage does not trigger when the target is dragged or pushed around via magical means (Gust, Eldritch Blast with Grasp of Hadar, Graviturgist’s Gravity Well, etc.)

This seems pretty clear. However, what happens when the following cases arise?

  • The target is ordered to move via the use of Command (assuming they don’t know yet that the thunderous aura is damaging).
  • The target is forced to move via the use of Compulsion.
  • The target is invited to move via the use of Suggestion.
  • The target is Turned.
  • The target is Frightened and forced to run via Dissonant Whispers.
  • The target has a Geas that prohibits them from ending a turn next to an enemy if they can avoid it.
  • The target is threatened into leaving the area or else. This one seems “willingly”, but are they truly willing if they are panicking because you are telling them you will cut their heads off if they don’t run?

This SageAdvice entry seems to suggest that forcing people to move via mind control spells doesn’t count as willing. However, from what I understand, Jeremy Crawford’s Twitter rulings are no longer considered official, so I was looking for something more solid to make a RAW judgement of this interaction.

Could you explain the meaning of warlock invocation number next to its grade?

I am rolling a warlock in my current campaign and we started at level 3. For my invocations, I have picked walk unseen and fell flight. I was told I could not do that by my DM since he told me my level wasn’t enough. However, when I referred back to my Complete Arcane, it mentioned:

A least invocation has a level equivalent of 1st or 2nd; a lesser, 3rd or 4th; a greater, 5th or 6th; and a dark invocation has a level equivalent of 6th or higher (maximum 9th).

So I automatically assumed that at level 1 and 2, I have access to least and 3 and 4, I have access to lesser, turns out not.

When I refered back to Complete Arcane for the invocations I picked, it said:

Fell Flight: Lesser; 3rd


Walk Unseen: Lesser; 2nd

I am really confused about which level can I pick these two invocations? I would appreciate it if you could explain how the warlock level corresponds to the invocation grade and the number next to it.

Meaning of short English phrases

Fourth generation programming language is more advanced than traditional high level programming language because they use command, which are more like short English phrases.

Question is- English phrase is understood. Why short is added?

What is the basic meaning of short in this context?

How is a symbol “given meaning by a family of operations indexed by symbols”?

Practical Foundation of Programming Languages by Harper says:

Chapter 31 Symbols

A symbol is an atomic datum with no internal structure. Whereas a variable is given meaning by substitution, a symbol is given meaning by a family of operations indexed by symbols. A symbol is just a name, or index, for a family of operations.

Many different interpretations may be given to symbols according to the operations we choose to consider, giving rise to concepts such as fluid binding, dynamic classification, mutable storage, and communication channels.

A type is associated to each symbol whose interpretation depends on the particular application. For example, in the case of mutable storage, the type of a symbol constrains the contents of the cell named by that symbol to values of that type.

What does “a symbol is given meaning by a family of operations indexed by symbols” mean? Is “a symbol” given meaning by a family of operations not one of the “symbols” indexing the family of operations? What is the relation between “a symbol” and “symbols”?

What does “a symbol is just a name, or index, for a family of operations” mean? Does it mean “a symbol names or indexes a family of operations”?

When a symbol is used in each of the following example cases (which I hope you could consider as many as possible, in particular the first three cases):

  • “represent a variable in symbolic representations of equations or programs” (see the quote below),
  • “represent a word in the representation of natural language sentences” (see the quote below),
  • represent an assignable (?) in mutable storage,
  • represent something (something similar to a variable?) in fluid binding,
  • represent a class (?) in dynamic classification,
  • represent something (?) in communication channels,

how does the above quote about a symbol applies, specifically:

  • is the symbol given meaning by what family of operations indexed by symbols?
  • is the symbol just a name, or index, for what family of operations?


The Scheme Programming Language, 4th Edition, by Dybvig, says

Section 2.2. Simple Expressions

Symbols and variables in Scheme are similar to symbols and variables in mathematical expressions and equations. When we evaluate the mathematical expression 1 – x for some value of x, we think of x as a variable. On the other hand, when we consider the algebraic equation x 2 – 1 = (x – 1)(x + 1), we think of x as a symbol (in fact, we think of the whole equation symbolically).

While symbols are commonly used to represent variables in symbolic representations of equations or programs, symbols may also be used, for example, as words in the representation of natural language sentences.

Meaning of unacknowledged pre key messages

I’ve recently tried to work with the Signal protocol, but the documentation isn’t great. I’ve come across a problem where the messages being sent include the pre key because the client has unacknowledged pre key messages even if a session has already been established. I’ve checked the source code of the Java client, but couldn’t figure out how the flag is cleared.

Can someone explain the concept behind unacknowledged pre key messages? Thank you.

Other posts (without any answer): Signal forum 1, Signal forum 2, Reddit

$ \Omega(m)$ and $O(m)$ meaning in theorem proof about dynamic array complexity

My algorithms and data structures’ book states that to create a dynamic array the following procedure is followed:

Let $ d$ be the length of an array $ a $ and $ n $ the number of elements stored in it. Each time an insertion operation is done, if there is enough space $ (n+1<d)$ , $ n $ grows by 1; otherwise if $ n=d$ , we allocate and array $ b$ of size $ 2d$ , $ d$ is updated to$ 2d$ and all elements are copied to it, then we do $ a=b$ . Similarly, everey time a deletion operation is performed, $ n$ decreases by 1, when $ n=d/4$ , we allocate and array of size $ d/2$ , $ d$ is updated to $ d/2$ and we copy all elements of the array $ a$ to the array $ b$ an do $ a=b$ .

The pseudocode of the functions doing the array doubling and halving is shown in the picture

enter image description here

then the following theorem is prooved:

The execution of N insertion or deletion operations in a dynamic array requires a time $ O(n)$ , beside d=$ O(n)$

proof: Let $ d$ be the length of an array and n the number of elements stored in it After doubling the array’s size there are $ m=d+1$ elements in the new array of $ 2d $ positions. We need at least m-1 insertion requests for a new doubling and at least $ m/2 $ deletion requests for a halving. Similarly,after a halving, there are$ m=d/4$ elements in the new array of $ d/2 $ elements, for wich at least$ m+1$ insertion requests are needed for a new doubling and at least $ m/2 $ deletion requests are needed for a new halving.

In any case, the cost of $ O(m) $ time required for the resizing can be virtually distributed among the $ \Omega(m)$ operations that caused it(starting from the last resizing) . Finally, supposing the when the array is created there are $ n=1$ and $ d=1$ , the number of elements of the array is always one fourth of its size, so $ d=O(n)$

I am a beginner with this $ \Omega(m)$ and $ O(m)$ , I know the mathematical definitions and I’ve been reading a lot about it but I am not able to understand it well in context. I know big O should indicate an upper bound on the time complexity of an algorithm and big omega a lower bound.

I don’t understand the last paragraph when they use these symbols, Why is the time cost O(m), why are they using $ \Omega(m)$ for the number of operations that caused the resizing (besides specifically what operations are they referring to?) and why do they write $ d=O(n)$ , what should I understand from it? Any help will be greatly appreciated

What is the meaning of the mutation rate in genetic algorithms?

Let us suppose that we have a mutation rate of 5%. What does this mean?

  • Each gene of each individual has 5% of probability of change to another value? At the end, around 5% of the genes of each individual in the population will be changed.
  • Each individual in the population has 5% of probability of having a random gene changed to antoher value? At the end, 5% of the population will have a change in some of its genes.

Besides that…Should I apply the mutation operator over all individuals or only to the children generated by the crossover operator?

What is the meaning of similar JA3 in many APK malware analysis reports?

In an online malware analysis website that called – “Joe Sandbox” , I found a few reports of APKS that have the exact same JA3 fingerprint. Those are the reports that I found: https://www.joesandbox.com/analysis/103507/0/html https://www.joesandbox.com/analysis/208046/0/html https://www.joesandbox.com/analysis/209043/0/html https://www.joesandbox.com/analysis/209453/0/html

My question is- Since they all share the same JA fingerprint, does it mean there is any connection between them? (By “connection” I mean – If they all were created by the same the developer, if they all were targeted a specific person etc) if not, why do they share the same JA3 fingerprint value?

Thank you for you help, and sorry for the ignorance on the subject.