dnd 5e – Tasha’s Beastmaster & communicating

I’ve been looking over the recent changes to the Ranger’s Beastmaster in Tasha’s Cauldron of Everything, and I’m trying to figure out the best way for the beast to communicate with the ranger. The fact that the beast’s intelligence is 8 causes a bit of confusion.

First of all, the only magical option available seems to be speak with animals (beast bond only works on beasts with intelligence lower than 8). That’s OK as far as it goes, but it seems strange that after forming this special bond with a highly intelligent beast, the only way that the ranger can understand it is with one of the precious spell slots. Even then, it only lasts 10 minutes, and is heavily subject to DM interpretation.

Secondly, it seemed easier to justify lack of communication options when the beast’s intelligence was lower. It made sense that the “dumb beast” simply didn’t have the mental capacity to figure out how to communicate ideas to the ranger. However, in Tashs’ it has an intelligence that in many cases is probably the same as the ranger. It just doesn’t seem reasonable that between it and the ranger, they couldn’t figure out something.

Is there another option I’m missing, RAW, RAI, or just widely adopted?

dnd 5e – Tashs’s Beastmaster & communicating

I’ve been looking over the recent changes to the Ranger’s beastmaster in Tasha’s, and I’m trying to figure out the best way for the beast to communicate with the ranger. The fact that the beasts intelligence is 8 causes a bit of confusion.

First of all, the only magical option available seems to be speak with animals (beast bond only works on beasts with intelligence lower than 8). That’s ok as far as it goes, but it seems strange that after forming this special bond with a highly intelligent beast, the only way the ranger can understand it is with one of the precious spell slots. And even then, it only lasts 10 minutes, and is heavily subject to DM interpretation.

Secondly, it seemed easier to justify lack of communication options when the beasts intelligence was lower. It made sense that the “dumb beast” sinple didn’t have the mental capacity to figure out how to communicate ideas to the ranger. However, in Tashs’ it has an intelligence that in many cases is probably the same as the ranger. It just doesn’t seem reasonable that between it and the ranger, they couldn’t figure out something.

Is there another option I’m missing, RAW, RAI, or just widely adopted?

c# – Connecting multiple device/client with server and communicating with these connected devices?

Actually I have a written a code to established a multiple client/device connection with server. My code established a multiple a connection with server and shows me a list of connected clients after When I select a connected device and try to send messages to client it’s working fine but When I try to receive a messages from client it’s not working.

Here is my Code:

Below code established a multiple client/devices connection with server

private void btnstart_Click(object sender, EventArgs e)
          {
    
    
                  string Systemip = getlocalip();
                  txtinfo.Text = "Server IP:" + Systemip + Environment.NewLine;
                  var portno = Int32.Parse("8010");
    
                  String a = "";
    
                  IPAddress ip = IPAddress.Parse(Systemip);
                  server = new TcpListener(ip, portno);
                  server.Start();
    
                 //here environment.newline means, display msg to next line.
                  txtinfo.AppendText("Server started waiting for client.............." + Environment.NewLine);
              counter = 0;
              f = new Form1();
              Thread newone = new Thread(loop);
              newone.Start();
    
    
          }
          public delegate void messageone();
          public void mess()
          {
    
              richtxtbddata.AppendText(counter + "clien connected" + Environment.NewLine);
              richtxtbddata.AppendText("The client is from IP address: " + ((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString() + Environment.NewLine);
          //    iplist.Items.Add(((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString());
              listBox1.Items.Add(counter);         //add this (((IPEndPoint)clientSocket.RemoteEndPoint).Address.ToString()); on the place of counter
          }
    
          public void loop(object obj)
          {
              connectobj = new List<Multipleconnect>();
    
              while (true)
              {
                  counter++;
    
                  socketforclient = server.AcceptSocket();
                 // ns = new NetworkStream(socketforclient);
                  connectobj.Add(new Multipleconnect
                  {
                      objectno = counter,
                      Skt = socketforclient,
                      nstream = new NetworkStream(socketforclient),
                      ip = ((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString()
                  });
    
                  //Box.AppendText(counter + "Client connected");
                  richtxtbddata.Invoke(new messageone(mess));
                  Thread UserThread = new Thread(new ThreadStart(() => f.User(socketforclient)));
                  UserThread.Start();
    
              }
          }
          public void User(Socket client)
          {
              while (true)
              {
                  try
                  {
                      byte() msg = new byte(1024);
                      int size = client.Receive(msg);
                      client.Send(msg, 0, size, SocketFlags.None);
                  }
                  catch (Exception ex)
                  {
                      txtinfo.Text = "Divice Disconnected";
                  }
    
              }
    
          }

Below code is for sending and receiving a messages but In this code messages sent client/device successfully but this code is not receive a messages from client/devices.

private void btnsend_Click(object sender, EventArgs e)
       {

       isNew = true;

           if (servermsg.Text != "") {

               ns = new NetworkStream(socketforclient);
               StreamWriter writer = new StreamWriter(ns);

               writer.WriteLine(servermsg.Text + Environment.NewLine);
               txtinfo.AppendText("Server:" + servermsg.Text + Environment.NewLine);
               writer.Flush();
               writer.Close();
           }


           ns = new NetworkStream(socketforclient);
           StreamReader sr = new StreamReader(ns);
           string myCompleteMessage = string.Empty;

           if (ns.DataAvailable)
           {
               myReadBuffer = new byte(2048);
               datafinal = new double(1);

               myCompleteMessage = Encoding.ASCII.GetString(myReadBuffer, 0, readbytes);

           }

           //runn();



           if (myCompleteMessage != "")
           {
              txtinfo.AppendText("Client:" + myCompleteMessage + Environment.NewLine + Environment.NewLine);
           }

       }

If You want a complete code, It is given below:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

/// <summary>
/// single connection in working condition with old code.....
/// </summary>

namespace TCPSERVER
{
  
    public partial class Form1 : Form
    {
        List<Multipleconnect> connectobj;

        Form1 f;
        int counter = 0;
        NetworkStream ns;
        int i = 0;
        Socket socketforclient;
        TcpListener server;
        byte() myReadBuffer;
        int readbytes;
        int p = 0;
        int y;
        double() datafinal;
        double() yy;
        List<double> xx;
        string stop = "";
        Multipleconnect mulcon = new Multipleconnect();

        public Form1()
        {
            InitializeComponent();
            //txtserverip.Text = getlocalip();
         
            Featuresduringrun();
         //   Connnection();
        }

        private void btnstart_Click(object sender, EventArgs e)
        {
          
            
                string Systemip = getlocalip();
                txtinfo.Text = "Server IP:" + Systemip + Environment.NewLine;
                var portno = Int32.Parse("8010");
             
                String a = "";

                IPAddress ip = IPAddress.Parse(Systemip);
                server = new TcpListener(ip, portno);
                server.Start();

               //here environment.newline means, display msg to next line.
                txtinfo.AppendText("Server started waiting for client.............." + Environment.NewLine);
            counter = 0;
            f = new Form1();
            Thread newone = new Thread(loop);
            newone.Start();

 
        }
        public delegate void messageone();
        public void mess()
        {

            richtxtbddata.AppendText(counter + "clien connected" + Environment.NewLine);
            richtxtbddata.AppendText("The client is from IP address: " + ((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString() + Environment.NewLine);
        //    iplist.Items.Add(((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString());
            listBox1.Items.Add(counter);         //add this (((IPEndPoint)clientSocket.RemoteEndPoint).Address.ToString()); on the place of counter
        }

        public void loop(object obj)
        {
            connectobj = new List<Multipleconnect>();

            while (true)
            {
                counter++;

                socketforclient = server.AcceptSocket();
               // ns = new NetworkStream(socketforclient);
                connectobj.Add(new Multipleconnect
                {
                    objectno = counter,
                    Skt = socketforclient,
                    nstream = new NetworkStream(socketforclient),
                    ip = ((IPEndPoint)socketforclient.RemoteEndPoint).Address.ToString()
                });

                //Box.AppendText(counter + "Client connected");
                richtxtbddata.Invoke(new messageone(mess));
                Thread UserThread = new Thread(new ThreadStart(() => f.User(socketforclient)));
                UserThread.Start();

            }
        }
        public void User(Socket client)
        {
            while (true)
            {
                try
                {
                    byte() msg = new byte(1024);
                    int size = client.Receive(msg);
                    client.Send(msg, 0, size, SocketFlags.None);
                }
                catch (Exception ex)
                {
                    txtinfo.Text = "Divice Disconnected";
                }

            }




        }




        public static string getlocalip()
        {
            var host = Dns.GetHostEntry(Dns.GetHostName());
            foreach(var ip in host.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    return ip.ToString();
                }
            }
            return "not found any ip";
        }
 
        private void btnsend_Click(object sender, EventArgs e)
        {
            string aa = listBox1.SelectedItems(0).ToString();
            if (aa == null)
            {
                MessageBox.Show("Selexct a item");

            }
     

            
            if (servermsg.Text != "") {
               
                ns = new NetworkStream(socketforclient);
                StreamWriter writer = new StreamWriter(ns);
               
                writer.WriteLine(servermsg.Text + Environment.NewLine);
                txtinfo.AppendText("Server:" + servermsg.Text + Environment.NewLine);
                writer.Flush();
                writer.Close();
            }
      

            ns = new NetworkStream(socketforclient);
            StreamReader sr = new StreamReader(ns);
            string myCompleteMessage = string.Empty;

            if (ns.DataAvailable)
            {
            myReadBuffer = new byte(2062);
            int rreadbytes = ns.Read(myReadBuffer, 0, myReadBuffer.Length);
            string Client2 = Encoding.ASCII.GetString(myReadBuffer, 0, rreadbytes);
            myCompleteMessage = Client2;

            }

          
            if (myCompleteMessage != "")
            {
               txtinfo.AppendText("Client:" + myCompleteMessage + Environment.NewLine + Environment.NewLine);
            }

        }










   
  

      
  
  

 
         
   
      
        private Form activeform = null;

     
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string aa = listBox1.SelectedItems(0).ToString();
            if (aa == null)
            {
                MessageBox.Show("Selexct a item");

            }
            ////  int endindex = aa.Length - 1;
            //// int b = aa.IndexOf("}");
            ////aa = aa.Substring(15, 13);

            foreach (var ob in connectobj)
            {
                if (ob.objectno.ToString() == aa)     //write ob.ip on the place of ob.objectno
                {
                    socketforclient = ob.Skt;
                    MessageBox.Show("yes");
                }
            }
        }

  
    }
}

Below code comes another class which is used to store the multiple client

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace TCPSERVER
{
    class Multipleconnect
    {
        public int objectno;
        public Socket Skt;
        public string ip;
        public NetworkStream nstream;
    }
}

testing – Communicating with the software team

testing – Communicating with the software team – Software Engineering Stack Exchange

networking – Ubuntu 20.04: 3 routers communicating over 3 VLANs

I am using VMware to set up 3 Ubuntu VM hosts. The network topology looks something like a triangle where PC-A is located on the bottom left of the triangle, PC-B is located on the top of the triangle and PC-C is the bottom right of the triangle. Each VM has a host-only adapter and 2 internal network adapters:
PC-A is connected to internal network AB and AC
PC-B is connected to internal network AB and BC
PC-C is connected to internal network AC and BC

On each of the VMs I have set up permanent IP forwarding by editing the /etc/sysctl.conf file and have set up reboot-persistent IP Masquerading through iptables.

Here’s the setup so far:

PC-A
On Internal network AB (10.10.10.0/30)
IP address 10.10.10.2/30
Subnet 255.255.255.252
Gateway 10.10.10.1
On Internal network AC (10.10.10.4/30)
IP address 10.10.10.5/30
Subnet 255.255.255.252
Gateway 10.10.10.1

PC-B
On Internal network AB (10.10.10.0/30)
IP address 10.10.10.1/30
Subnet 255.255.255.252
Gateway 10.10.10.10
On Internal network BC (10.10.10.8/30)
IP address 10.10.10.10/30
Subnet 255.255.255.252
Gateway 10.10.10.9

PC-C
On Internal network AC (10.10.10.4/30)
IP address 10.10.10.6/30
Subnet 255.255.255.252
Gateway 10.10.10.5
On Internal network BC (10.10.10.8/30)
IP address 10.10.10.9/30
Subnet 255.255.255.252
Gateway 10.10.10.6

As of now:
PC-A can ping any IP on 10.10.10.0/30 and 10.10.10.4/30 networks but not on the 10.10.10.8/30 network
PC-B can ping any IP on 10.10.10.0/30 and 10.10.10.8/30 networks but not on the 10.10.10.4/30 network

PC-C can ping any IP on 10.10.10.4/30 and 10.10.10.8/30 networks but not on the 10.10.10.0/30 network

How can I fix it so that any host can ping across any of the networks?

Edit
Before anyone asks, all firewalls are inactive

linux – Issues in communicating via IPSec (StrongSwan) between an Android client and its gateway (IKEv2)

I’ve been attempting to create an IPSec VPN into my home network to which I can tunnel from outside, eg. on my phone or thru my laptop when I’m abroad. Authenticating the clients is done via pubkey authentication with x509 certificates. All is working there, the only issue I have is with the Android client (on the official StrongSwan VPN app) which is failing to connect.

(IKE) authentication of 'arch' with RSA_EMSA_PKCS1_SHA2_256 successful
(IKE) IKE_SA android(3) established between (redacted)(C=IT, O=(redacted),
CN=(redacted) (havoc))...(redacted)(arch)
(IKE) scheduling rekeying in 35733s
(IKE) maximum IKE_SA lifetime 37533s
(IKE) installing DNS server 192.168.1.254
(IKE) installing new virtual IP 192.168.1.74
(IKE) received NO_PROPOSAL_CHOSEN notify, no CHILD_SA built
(IKE) closing IKE_SA due CHILD_SA setup failure

From what I’ve found (and been told) the received NO_PROPOSAL_CHOSEN notify, no CHILD_SA built is either due to a mismatch between cipher suites or an invalid ts config. Both should be correct, considering that the official StrongSwan wiki has a configuration that should support most, if not all, the (up-to date) client cipher suites. ts is likely correct because the Android client, as can be seen above, does actually get an IP via DHCP and does actually install it.

Configuration:

root@arch ~ # cat /etc/swanctl/swanctl.conf 
connections { 
        rw { 
                local_addrs = 192.168.1.143, (redacted) 
                pools = dhcp 
                local { 
                        auth = pubkey 
                        certs = serverCert.pem 
                        id = arch 
                } 
                remote { 
                        auth = pubkey 
                } 
                children { 
                        net { 
                                local_ts = 192.168.1.0/24 
                                updown = /usr/local/libexec/ipsec/_updown iptables 
                                esp_proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,default 
                        } 
                } 
                version = 2 
                proposals = aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521,aes192-sha256-modp3072,default 
        } 
} 
include conf.d/*.conf 

Does anyone have any insight into this?

api design – What is an efficent way of communicating between two backend services?

Here is my case: I have a deep learning model built using python, I want to deploy the model on AWS SageMaker and built an API(Node.js) to allow other future applications to interface with it seamlessly.

I thought the better way to do this might be to develop a simple Flask API and deploy it on SageMaker, then on the Node.js API communicate with the Flask API using requests to get predictions from the model.

the model is an OCR so the data coming from users is in the form of photo and the result will be just regular text, there will be moderate amount of load since the audience are big organizations that will use make requests to our services, the load is also bursty since users will only request when they want to OCR some of their documents

Now my question is: what is the standard way of doing this? Is this really a standard/preferred way to deploy a deep learning model? How do you usually go about interfacing between a model and an API? If it’s then is my idea of communicating between the two backends is good? Won’t repeatedly hoping between the two servers make the process really slow?

architecture – Communicating state from the backend to the frontend while the user is logged in

Please note: although this question mentions Angular and Spring Boot (Java), and it would be great to get an answer from someone with experience in that stack, I think this is more of an architectural question at heart and certainly doesn’t require Angular or Java/Spring experience to answer it.


So, I am designing out a web app that I would like to consist of the following architecture:

enter image description here

So:

  • frontend web app (Angular) talks to a single RESTful backend web service (Java/Spring Boot)
  • the backing web service itself talks to many other smaller services, databases, etc.
  • the frontend web app serves up the UI and does all normal frontend stuff
  • backend service houses business logic and other stuff that I don’t want exposed to the frontend and ultimately browswer

In designing this out a scenario occurred to me that I can’t figure out a good solution for, and wasn’t sure what the generally-accepted options/solutions for it are.

Here is the scenario:

  1. A user is logged into the app and has their browser pointed to, say, https://myapp.example.com/fizz/buzz
  2. An admin of the app decides they want to suspend the user for 30 days and does so through an admin web app (or by running a script, whatever). When suspended, users can log in but should be redirected to a “You’ve been suspended!” splash page, and should not be able to navigate anywhere else inside the app. Only when the suspension is lifted should they be able to resume using the app

The problem here is, unless the frontend web app makes a call to the backend web service on each and every page load/reload, and on each and every AJAX/asynchronous call from the browser that warrants the application doing anything meaningful, there is no way for the frontend web app to “know” that the user has been banned and to implement the correct redirection (to the suspension page mentioned above).

Obviously, if this happens while the user is logged out, it would be easy to have the web app to call the GET user/state endpoint upon next login and determine if they are suspended or not. But if we want to have this suspension take effect while they are using the app, I’d have to add a call to that endpoint everywhere and that is nasty and smells.

So what are the common solution(s) here? How does the backend web service communicate changed state to a specific user logged in to the frontend web app? Websockets come to mind, but not sure if thats the right tool for the job as I have no concrete experience with them and am not sure if they apply for web service -> web app communication or just web app -> browser communication.

Thanks in advance for any and all help here!

DreamProxies - Cheapest USA Elite Private Proxies 100 Cheapest USA Private Proxies Buy 200 Cheap USA Private Proxies 400 Best Private Proxies Cheap 1000 USA Private Proxies 2000 USA Private Proxies 5000 Cheap USA Private Proxies ExtraProxies.com - Buy Cheap Private Proxies Buy 50 Private Proxies Buy 100 Private Proxies Buy 200 Private Proxies Buy 500 Private Proxies Buy 1000 Private Proxies Buy 2000 Private Proxies ProxiesLive.com Proxies-free.com New Proxy Lists Every Day Proxies123.com Proxyti.com Buy Quality Private Proxies