dnd 5e – What does “no long range” mean on the soulknife rogue subclass mean?

One of my players just hit level 3 and is taking the soulknife rogue subclass, as written in Tasha’s Cauldron of Everything.

The weapon granted by the class has a weird specification that it has “no long range.” I’m curious how this should be interpreted, seeing as I can’t find other examples of such a property.

This is what Tasha’s says:

You can manifest your psionic power as shimmering blades of psychic energy. Whenever you take the Attack action, you can manifest a psychic blade from your free hand and make the attack with that blade. This magic blade is a simple melee weapon with the finesse and thrown properties. It has a normal range of 60 feet and no long range, and on a hit, it deals psychic damage equal to 1d6 plus the ability modifier you used for the attack roll. The blade vanishes immediately after it hits or misses its target, and it leaves no mark on its target if it deals damage.

There are two possibilities in my mind:

  1. The knife simply can’t go beyond 60 feet, just like the range of a ranged spell attack.

  2. The knife can go arbitrarily far, and after 60 feet the attack is at disadvantage.

I’m inclined to lean for the first choice since an infinitely long ranged attack seems dumb. Though I suppose there’s an argument to be made that the manifested blade is a “psychic attack” so you can attack someone so long as you can see them.

This is the language of ranged weapon attacks, per the PHB:

A weapon that can be used to make a ranged Attack has a range in parentheses after the Ammunition or thrown property. The range lists two numbers. The first is the weapon’s normal range in feet, and the second indicates the weapon’s long range. When attacking a target beyond normal range, you have disadvantage on the Attack roll. You can’t Attack a target beyond the weapon’s long range.

HP Proliant ML350 Gen9 Server with Debian Linux Kernel Does not boot HBA mode SAS drives. initramfs timeout. long disk detection. disks not recognized

This is what I have:

1- HP Proliant ML350 Gen9 with SAS LFF (3.5 inch) Disks running in HBA mode.

2- Debian Linux version 10 (Buster) Kernel Does not boot HBA mode SAS drives normaly. I have to go to recovery mode in order to boot then press ctrl+D to proceed to normal booting.

3- In normal boot with systemd mode, I get initramfs timeout. long disk detection. However, the boot disks not recognized.

4- Some kernel versions do boot on normal systemd mode, some others don’t. I had kernel 4.9.0-8 was able to boot with the follwing GRUB linux kernel options, whereas on a vanilla kernel 5.8.9 compiled using the debian way it does not boot and initramfs times out. I compiled the kernel in order to set it to run for server instead for desktop.

#You can find this line in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet pci=nomsi,noaer log_buf_len=50M"

I used the rootdelay=30 linux kernel option according to the link below it did not work.

Increase disk detection timeout at boot with Linux/Systemd

then I changed GRUB_CMDLINE_LINUX_DEFAULT to the following and the server booted:

GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=30 quiet  log_buf_len=50M"

I all i need is someone tell me what exactly happened. why did the sever boot?

dnd 5e – Can magic items let you cast spells with long casting times as actions?

If a specific rule contradicts a general rule, the specific rule wins.

Here, you are giving examples of items that are giving specific rule that contradicts the general rule on casting times.

The DMG even states that some magic items can modify the casting times:

(A spell cast from a magic item) uses its normal casting time, range, and duration, and the user of the item must concentrate if the spell requires concentration. Certain items make exceptions to these rules, changing the casting time, duration, or other parts of a spell. (DMG p. 141)

The Staff of the Woodlands is indeed one of those exceptional items. It says:

You can use an action to expend 1 or more of the staff’s charges to cast one of the following spells from it (…)

The rule for this staff says that you use an action to cast a spell. The fact that one of those spells is awaken (normal casting time 8 hours) does not matter. That casting time is now superseded by the effect of the magic item.

Thus, any similar magic item that has some effect in it that modifies the casting time, will similarly override the general rule. In this way, magic items can indeed allow you to cast spells using a shorter casting time than normal.

Other effects can modify casting times as well

Spells (eg Wish), metamagic, and other features already exist to modify the casting times of spells. So magic item use is far from the only example of a specific effect overriding spells’ casting times.


Jeremy Crawford also explicitly agrees with this:

The staff of the woodlands allows you to cast the awaken spell as an action, superseding the spell’s normal casting time of 8 hours. Some magic items make exceptions like that, as noted on page 141 of the Dungeon Master’s Guide (see the “Spells” section on that page).

And he also agrees in the very similar case of the necklace of prayer beads:

A necklace of prayer beads lets you cast a spell it contains as a bonus action, regardless of the spell’s normal casting time. For more about how the necklace works, see page 182 of the Dungeon Master’s Guide.

How Long Will It Take To See Results From Social Media Marketing?

How long will it take to see results from social media marketing?

How to get youtube results which more than hour long?

How to get YouTube results which more than hour long? From YouTube filters you only get more than 20 minutes long videos. I heard there was some trick to get more than an hour long videos only

Applying again to visit UK, long term visit visa

I had a UK 6 month visit visa last year which was expired on February 2020.
On my previous application I mentioned that I wanted to visit London but after getting the visa I travelled to Manchester 2 times.
First was for 10 days and second one for 3 days.

Now I want to apply for a long time 2 years visit visa. My friend recently moved to the UK with his Europian passport so on my visit I will meet him but I will pay all my costs I am working and my monthly income is more than 1500£ everything is OK with my bank statement.

I want to know that should my friend have to send me a inviation letter or should I attach it because I will stay at hotel and will visit tourist places together. My plan is to apply on January for going to UK for 6-7 days in February.

My nationality is Bangladeshi and I’m living in Spain as a residence. I have never have been denied any visas. My last visa application was successful. I want to make new appication as my last visa expired.

Need an expert in React and Android (Java) dev, long term work

1. I am building a dashboard for affiliate marketing agencies/affiliate professionals to work with our merchant partners via a single unified portal (instead of signing to each merchant's program). For that I need someone with expertise in React framework to build the frontend.

2. A react native developer to take over our mobile app development. I don't have the time to manage the app anymore.

3. An Android (Java) developer to update our outdated mobile app to the latest Android SDK for…

Need an expert in React and Android (Java) dev, long term work

c# – CodeWars kata Fusc function running too long, but very fast locally

I have a solution to this CodeWars challenge that’s being rejected as “too slow”.

Basically, write public static BigInteger Fusc(BigInteger n) given:

  1. fusc(0) = 0
  2. fusc(1) = 1
  3. fusc(2 * n) = fusc(n)
  4. fusc(2 * n + 1) = fusc(n) + fusc(n + 1)

— CodeWars description (from part 1, which is formatted slightly nicer IMO)

I have the class below. FuscInner is a literal, naïve implementation, to offer a “known good” answer if needed; it’s slow, but that’s fine. The trouble that I’m running into is that FuscInnerTest runs against my test driver in a quarter second, but times out on CodeWars.

While I’m open to any suggestionst for cleaning up FuscInnerTest or MediumInt, my primary goal is to ascertain why it’s running so poorly when I submit to CodeWars (of course, I don’t know how many test cases it runs…).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;

public class FuscSolution {
    public static BigInteger Fusc(BigInteger n) {
        //var timer = System.Diagnostics.Stopwatch.StartNew();
        var answer = FuscInnerTest(n);
        //timer.Stop();
        //Console.WriteLine($"{n} {answer} : {timer.Elapsed}");
        //timer.Restart();
        //answer = FuscInner(n);
        //timer.Stop();
        //Console.WriteLine($"{n} {answer} : {timer.Elapsed}");
        return answer;
    }

    private static BigInteger FuscInner(BigInteger n) {
        if (n == BigInteger.Zero) {
            return BigInteger.Zero;
        }
        if (n == BigInteger.One) {
            return BigInteger.One;
        }

        if (n % 2 == BigInteger.Zero) {
            return FuscInner(n / 2);
        }
        var half = n / 2;
        return FuscInner(half) + FuscInner(half + 1);
    }

    private static readonly Dictionary<BigInteger, BigInteger> _dict = new Dictionary<BigInteger, BigInteger> {
        { BigInteger.Zero, BigInteger.Zero },
        { BigInteger.One, BigInteger.One },
        { new BigInteger(3), new BigInteger(2) },
        { new BigInteger(5), new BigInteger(3) },
    };

    private static BigInteger FuscInnerTest(BigInteger n) {
        // note: making this a Dictionary<BigInteger, BigInteger> worked quickly locally, too
        // the "MediumInt" is an attempt to reduce the number of BigInteger allocations, since
        // they're immutable
        var queue = new Dictionary<BigInteger, MediumInt> {
            { n, new MediumInt(1) },
        };

        BigInteger answer = BigInteger.Zero;

        while (queue.Any()) {
            var current = queue.Keys.Max();
            if (_dict.ContainsKey(current)) {
                answer += _dict(current) * queue(current).ToBigInt();
                queue.Remove(current);
            } else {
                Dequeue(current);
                var half = current / 2;
                Enqueue(half, current);
                if (!current.IsEven) {
                    Enqueue(half + 1, current);
                }
                queue.Remove(current);
            }
        }

        return answer;

        void Dequeue(BigInteger toRemove) {
            if (queue.ContainsKey(toRemove)) {
                if (queue(toRemove).IsPositive()) {
                    queue(toRemove).Decriment();
                } else {
                    queue.Remove(toRemove);
                }
            }
        }

        void Enqueue(BigInteger toAdd, BigInteger parent) {
            if (queue.ContainsKey(toAdd)) {
                queue(toAdd).Incriment();
            } else {
                queue(toAdd) = new MediumInt(1);
            }
            if (parent != null) {
                if (queue.ContainsKey(parent)) {
                    queue(toAdd).Add(queue(parent));
                }
            }
        }
    }

    private class MediumInt {
        private const int max = 2_000_000;
        private const int min = -2_000_000;

        private BigInteger big = BigInteger.Zero;
        private int current = 0;

        public MediumInt(int initialValue) {
            current = initialValue;
            Normalize();
        }

        public bool IsZero() {
            return big == BigInteger.Zero && current == 0;
        }

        public bool IsPositive() {
            if (IsZero()) {
                return false;
            }
            if (current == 0 && big <= 0) {
                return false;
            }
            if (big == BigInteger.Zero && current <= 0) {
                return false;
            }

            if (big == BigInteger.Zero) {
                return current > 0;
            }

            if (big > BigInteger.Zero && big > Math.Abs(current)) {
                return true;
            }
            if (big < BigInteger.Zero && big < Math.Abs(current)) {
                return true;
            }
            throw new Exception("IsPositive unknown state");
        }

        public void Incriment() {
            ++current;
            Normalize();
        }

        public void Decriment() {
            --current;
            Normalize();
        }

        public void Add(MediumInt value) {
            current += value.current;
            big += value.big;
            Normalize();
        }

        public BigInteger ToBigInt() {
            return big + current; ;
        }

        private void Normalize() {
            if (current > max || current < min) {
                big += current;
                current = 0;
            }
        }
    }
}

Driver code:

Assert.AreEqual(BigInteger.Zero, FuscSolution.Fusc(BigInteger.Zero));
Assert.AreEqual(BigInteger.One, FuscSolution.Fusc(BigInteger.One));
Assert.AreEqual(BigInteger.One, FuscSolution.Fusc(new BigInteger(4)));
Assert.AreEqual(new BigInteger(2), FuscSolution.Fusc(new BigInteger(3)));
Assert.AreEqual(new BigInteger(3), FuscSolution.Fusc(new BigInteger(10)));
Assert.AreEqual(new BigInteger(3), FuscSolution.Fusc(5));
Assert.AreEqual(new BigInteger(3), FuscSolution.Fusc(20));
Assert.AreEqual(new BigInteger(8), FuscSolution.Fusc(21));
Assert.AreEqual(new BigInteger(53), FuscSolution.Fusc(9007199254740991L));

// You need to pass these tests very quickly
BigInteger twoPThous = BigInteger.Pow(2, 1000);
Assert.AreEqual(new BigInteger(1001), FuscSolution.Fusc(twoPThous + BigInteger.One));
Assert.AreEqual(new BigInteger(1000), FuscSolution.Fusc(twoPThous - BigInteger.One));
Assert.AreEqual(new BigInteger(2996), FuscSolution.Fusc(twoPThous + 5));
Assert.AreEqual(new BigInteger(7973), FuscSolution.Fusc(twoPThous + 21));
Assert.AreEqual(new BigInteger(50245), FuscSolution.Fusc(twoPThous + 9007199254740991L));
var e = BigInteger.Parse("40441312560834288620677930197198699407914760287917495887121626854370117030034851815445037809554113527157810884542426113562558179684997500659084090344407986124994461497183");
var a = BigInteger.Parse("4496047232746033439866332574607641115185289828815659836877207557974698638551430698226403383854431074455323285812344476437334109742500243442945967768558521790671067401423809250553312923996658420643391496408098163895264498830090255970293513331630261702288646149000136895514918279039816543329290294321200");
Assert.AreEqual(e, FuscSolution.Fusc(a));

How long does the identification process take?

I started a separate page as a Santa to be able to contact families as Santa because of all the COVID restrictions. I went to sign in and it’s asking for ID etc. well of course I gave my real ID. It’s been 2 days and I have had no response. If someone from Facebook is reading this my profile is Santa MacClaus.

How long does this process take?

Thank you all in advance.

linux – How long does it take to format 3TB ext4 disk in gparted?

I have let the gparted to format my (entire) 3TB HDD ext4 disk connected over USB3.0. Can you please give me some estimation how long does it take to format the disk? There is no progress bar so I am no sure if the formatting is going all right. The hard disk is being formatted over 30 hours right now and in the program details there is just information about ongoing operation:

mkfs.ext4 -F -L "" /dev/sdb1

Generally speaking is it dangerous just for the disk’s data to interrupt the gparted process or is it possible I will corrupt the file system if I power off the disk now?