• 7 Posts
  • 45 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle
















  • That advertisement would be interpreted as Node C’s advertisement.

    The plan is to treat public keys as node’s identity and trust mechanism similar to OpenPGP (e.g. include any node key signed by a master key as a cluster member)

    Right now, none of the encryption part is done and it is not a priority right now. I need to first implement transitive node detection, actually forward packets between nodes, some way to store and manage routes, and then trust and encryption mechanisms before I’d dare to test this stuff on a real network.




  • I didn’t know the answer either, but usually you can compose solution from solutions of smaller problems.

    solution(0): There are no disks. Nothing to do. solution(n): Let’s see if I can use solution(n-1) here. I’ll use solution(n-1) to move all but last disk A->B, just need to rename the pins. Then move the largest disk A->C. Then use solution(n-1) to move disks B->C by renaming the pins. There we go, we have a stack based solution running in exponential time.

    It’s one of the easiest problem in algorithm design, but running the solution by hand would give you a PTSD.



  • I was thinking along the lines of

    Plenty of libraries can build the XML using structs/classes. e.g. with serde:

    //Data type for row
    #[derive(serde::Serialize)]
    pub struct Foo {
    	pub status: String,
    	pub name: String,
    }
    
    //Example row
    let ent = Foo {
        status: "paid".into(),
        name: "bob".into(),
    }
    
    //Example execution
    sqlx::query(&serde_xml_rs::to_string(&InsertStmt{
    	table: "foo".into(),
    	value: &ent,
    })?).execute(&conn)?;
    

    Or with jackson-dataformat-xml:

    //Data type for row
    public class Foo {
        public string status;
        public string name;
    }
    
    //Example row
    Foo ent = new Foo();
    foo.status = "paid";
    foo.value = "bob";
    
    //Example execution
    XmlMapper xmlMapper = new XmlMapper();
    String xml = xmlMapper.writeValueAsString(new InsertStmt("foo", ent));
    try (Statement stmt = conn.createStatement()) {
        stmt.executeUpdate(xml)
    }
    

    I don’t do JS (yet) but maybe JSX could also do similar things with XML queries.

    No more matching $1, $2, … (or ? for mysql) with individual columns, I could dump entire structs/objects into a query and it would work.


  • Better than parameterized queries. Yes, we have stuff like query("INSERT INTO table(status, name) VALUES ($1, $2);").bind(ent.status).bind(ent.name).execute..., but that’s kind of awful isn’t it? With XML queries, we could use any of the XML libraries we have to create and manipulate XML queries without risking ‘XML injection’. e.g we could convert ordinary structs/classes into column values automatically without having to use any ORM.