[-] nibblebit@programming.dev 2 points 3 years ago

Aah yes, naming collisions. I hadn't considered that. I'm curious what kind packages you want to make available to the public are also prone to naming collisions that can be solved by a namespace convention. Are you publishing libraries, applications, VS extensions or templates?

[-] nibblebit@programming.dev 1 points 3 years ago

ooh i haven't heard of sleet that looks so neat.

10 publishes a day? Is that slow? I'm at a 20 man team and we run up to about 10 a month. is your final product a suite of packages or are you like only using package references in your projects?

[-] nibblebit@programming.dev 2 points 3 years ago* (last edited 3 years ago)

Not every log needs that kind of security and a chain does not need to be public. You download blocks from peers and do your own accounting.

Nothing is preventing you from only giving access to your chain to a trusted circle of peers.

Something you could do is encrypt your logs and push them to a chain shared by a number of peers who do they same with their own keys. Now you have a pool of accountability buddies, because if someone tries to tamper with the logs, you all hang together.

If you're doing some spooky stuff and need to prove a high degree of integrity is you could push encrypted logs to a chain. The auditor then can appoint several independent parties whose only job it is to continuously prove the integrity of your logs. After that is proven you can release your keys to the auditor who can inspect your logs knowing that they have been complete and untampered during the audit period.

Again I understand it's not the most efficient system, but there are less efficient and less flexible systems out there in enterprise land haha

[-] nibblebit@programming.dev 2 points 3 years ago

As others have said so far. If you have zero experience what you are aiming for is pretty complicated.

  • you need path-finding. Godot nav mesh will do great. But you could implement waypoints and A* yourself if you like more control and want to learn.
  • you need some place holder models. Using prisms or Sprite3d is better because you can more easily see which way they are facing
  • you need some agent behaviour. What does move randomly but also towards the player mean? Are you thinking of a pacman like situation?. You might want to think about a state machines
  • If you want the levels to be procedurally generated you open a whole new can of worms.
  • Depending on your use case you might want to spend time getting comfortable with the UI framework and Control nodes to create buttons and widgets to create start and reset levels.
[-] nibblebit@programming.dev 1 points 3 years ago

Hey, I've worked with ML.NET before and it's not the best framework for C#, but it is capable. I'm having trouble understanding what the goal of your model would be. Is it just text prediction or classification? ML.NET and pretty much any ML framework do need some experience with machine learning methods and models to achieve good results. Is this your first time doing something with ML?

I would look into the SciSharp stack a great collection of AI/ML framework bindings for common frameworks I would recommend looking into Torch.Net and Keras in particular.

[-] nibblebit@programming.dev 2 points 3 years ago

Explain to me how this isn't code golfing.

[-] nibblebit@programming.dev 2 points 3 years ago

It depends... The myriad of reasons to have a dedicated release day have often to do with synchronizing marketing, support and the other departments.

My question is what does QA mean for your org? Does it mean defect detection? Testing? Acceptance? Those are all different things. The teams i see that are able to release every day have a strict separation of Quality Control and Functional Acceptance. QC used to detect defects and regression and is handled by highly automated processes accounted for by engineering. Then acceptance is done by a dedicated product/quality team that figure out if the new functionality actually is built to spec and solves the customer problems. This also involves blogs, documentation, customer contact, release notes, tutorials and workshop for the support team etc... This second part is handled by feature flagging, so that the product teams can bèta test, run a limited release and track adoption.

It really depends on what kind of software youre running and what your relationship is towards the end user and the rest of the org. Something that is the same in all cases is that your requirements and acceptance criteria need to be very clear from the start and regression resting needs to be fully automated.

[-] nibblebit@programming.dev 2 points 3 years ago* (last edited 3 years ago)

Thank you so much for asking this question! More game devs should be asking, because it's too easy to turn your game into dangerous malware for your players if you're not careful.

So, implementing networking is a big topic. Networking is basically remotely sending instructions from one computer to another. This can happen either directly (Peer-To-Peer), or indirectly (Client-Server). Problems arise when a user can send instructions to another user's machine that that the host does not want. These bad instructions can be extractive (the host computer exposes sensitive information) or destructive (the host computer deletes some critical information).

Unsafe games provide ways for malicious users to manipulate other users' computers to do funky stuff. If you limit and control the type of signals the host machine receives and processes, you will have a more secure game.

Some common exploits include sharing user-generated content. Say, in your game, a user can upload an image for their avatar. This image is then propagated to the machines that the player plays a game with so that those users can see his avatar. A clever user can actually write a small program that can pretend it's an image and can use an exploit in the software renderer to execute that program at soon as your game tries to load it into memory. Now they have remote code execution on that host's machine. This is the reason why many multiplayer games don't allow players to host images like avatars and graffiti tags anymore.

Another way you can improve application security is by taking care of the information you let a user propagate to all clients. Say a user needs to create an account in order to go online. They need to enter and verify some personal information to create that account. Some of that information might be critical to gameplay, like an IP address or geolocation or scoreboard, like an email or name and phone number might not be. But if you're not careful you could broadcast each player the whole profile including sensitive information to all peers even if the client is not actively using that information. A clever user with access to profiling tools can scrape that sensitive information directly from memory.

Less harmful, but annoying consequences is dealing with DOS attacks, botting and cheating, performance and consistency. This is a problem for anonymous and real-time games or games that broadcast a full gamestate to all clients. There are plenty of resources on how that's done historically.

You really need to be conscious of how your game can influence the host machine and what signals it can propegate.

[-] nibblebit@programming.dev 2 points 3 years ago

I'm sorry, I think ik misinterpreted. To me it sounds liken you could accomplish it with the evaluate expression context in the debugger

[-] nibblebit@programming.dev 1 points 3 years ago

Yeah for us, mermaid has been great to through in a documentation git repo and keep some consistencies. But 90% of the utility of a diagraming system is easily being able to draw something on a whiteboard with an almost empty marker and be halfway understood

[-] nibblebit@programming.dev 1 points 3 years ago

I think that would be great! I started working on a Azure Functions bot and started a DI dotnet client that I put on nuget https://github.com/ydinkov/Lemmy.Net

It's super wip right now, but Ill be adding more models, tests and error handling.

[-] nibblebit@programming.dev 1 points 3 years ago

Hey! Why don't you try to build a basic github action from scratch and deploy it 40 times before it's green, waiting 10 minutes between builds to discover how each task creatively interprets directory path notation!

view more: ‹ prev next ›

nibblebit

0 post score
0 comment score
joined 3 years ago
MODERATOR OF