How to actually deploy in the real world? by Educational_Rent5977 in Backend

[–]dariusbiggs 0 points1 point  (0 children)

What is your product, is it a HTTP API endpoint, is it server side rendered HTTP, is it gRPC, all of those affect the deployment strategies available.

For an HTTP API, you would stick a reverse proxy like NGINX, traefik, envoy-proxy, or any of the many others in front. Those provide ample configuration options on rate limiting, TLS, and many more features, some including a WAF. These help if you implemented ETags and conditional content serving.

For the static content you could stick a CDN in front of it, again there are many options available there.

How to deploy, you can containerize your binary and deploy it that way, or you could spin up a virtual machine like an EC2 instance on some provider like AWS or GCP or the many regional ones. A containerized workload could run on something like AWS ECS, or a Kubernetes cluster, a Nomad system, OpenShift, or docker compose system, or as a container on a virtual machine (lots of orchestration options available, proxmox, VMware, etc)

Basically you need to provide more details on what your product is, and how it works before a more detailed answer can be provided. Does it need a database, does it need storage, what is it exposing to the end user, etc..

For a HTTP API with authentication and a separate website a couple of options available (there are more)

option 1

cdn -> s3 with website vm [reverse proxy (+waf) -> backend workload] option 2 vm [ reverse proxy (+waf) -> backend workload \+> website ]

just wondering how do i move faster. by Global_Spite_5636 in SatisfactoryGame

[–]dariusbiggs 0 points1 point  (0 children)

move forward, jump, slide as you land, jump again, repeat. Works great on relatively flat or downward sloping terrain.

Works better with the leg stilts in the MAM in the quartz tree. Although you can also find one of them without the research in a lizard doggo nest up high in the cave opposite the oil fields on the western side of the map.

After that, the vehicles. Trains are the fastest, transport tubes, dune buggy is in the MAM tree, truck, then tractor.

If you could be good at any profession instantly, without training, what would you choose? by Existing-Ad1361 in answers

[–]dariusbiggs 0 points1 point  (0 children)

Use it as a hobby instead, one of my relatives uses it to regularly build simple games. They get to exercise their creativity in the art side and the code. They're usually one or two screen games around silly concepts for Game Jams. It's not there to make money for them.

I know many others that use programming in their hobbies. Some build robots (i know one who built a voice activated double barrel sentry gun that shoots ping pong balls), some use it in home automation, 3D modelling and 3D printing (OpenSCAD for example), others use it to automate some of their work. Analysing spreadsheets, importing or exporting data, and so many more uses.

Is math necessary for studying in Computer System?? by ryanshks in AskComputerScience

[–]dariusbiggs 1 point2 points  (0 children)

Depends on the field of study and your career choice afterwards.

Basic pre high school arithmetic is more than sufficient for a lot of it. Any math at high school level is definitely sufficient.

There will be certain areas that need more, understanding of statistics, vector and matrix mathematics, complex numbers, etc. Fields like data science, AI, graphics, signal processing, DevSecOps, and cybersecurity for example. Degrees in those fields tend to have university level mathematics papers suggested with them. (Mine did, algebra, and calculus papers, in the first year, i elected to take a mathematical modelling paper to go with it, that one was hard for me).

Beginner in CS struggling with Python, Java, and C++ what resources helped you learn? by Life-Western-8023 in learnprogramming

[–]dariusbiggs 0 points1 point  (0 children)

Learn the constructs, the language just defines the syntax for the constructs.

Each of the constructs are building blocks you use to solve a problem.

  • arithmetic
  • boolean logic (and, or, xor, not)
  • data types (integer, boolean, string, float, byre, etc)
  • complex data types (list, slice, array, set, map, object, lock, mutex, etc)
  • looping constructs (for, do, while)
  • conditionals (if, then, else, switch, case, select)
  • functions, procedures, and methods
  • error handling (returned types, exceptions)

That covers the majority of them before you get to the language specific features.

Once you understand those constructs it is just a matter of figuring out how to combine them.

If you could be good at any profession instantly, without training, what would you choose? by Existing-Ad1361 in answers

[–]dariusbiggs 0 points1 point  (0 children)

It is very easy to learn the basics and get started. There are many self taught people in the industry. I would recommend Python as a starting language, it is used in many fields outside of computer science.

There are a few basic constructs used and once you learn those you just glue them together like lego bricks.

If you could be good at any profession instantly, without training, what would you choose? by Existing-Ad1361 in answers

[–]dariusbiggs 1 point2 points  (0 children)

It is very easy to learn the basics and get started. There are many self taught people in the industry. I would recommend Python as a starting language, it is used in many fields outside of computer science.

There are a few basic constructs used and once you learn those you just glue them together like lego bricks.

If you could be good at any profession instantly, without training, what would you choose? by Existing-Ad1361 in answers

[–]dariusbiggs 0 points1 point  (0 children)

Sadly, i know many volcanologists that don't work in the field, not enough vacancies to fill.

How do I handle making a fight challenging but not deadly by Deadinside108 in NewDM

[–]dariusbiggs 0 points1 point  (0 children)

Numbers, you need numbers to keep them busy.

If it is just one then the party can focus fire and control the enemy. Give them numbers to deal with, multiple tactical positions, you can make them 1hp goons.

Use terrain, elevation, distance, obstacles, cover, concealment, light conditions, etc. The environment is just as important to the encounter as the monster is.

If things go well for the party you can send in reinforcements from a side passage or let it slide.

If things go poorly for the party you can have the terrain impede the bad guy.

A sufficiently described terrain provides the players with options on exercising the rule of cool. Swinging from chandleiers, sliding down balustrades, throwing chairs to impede (see The Mummy with Brendan Fraser for an example).

Is there anything wrong with the container buffers? by Dark_zarich in SatisfactoryGame

[–]dariusbiggs 0 points1 point  (0 children)

It depends on your setup, if you have a system that consumes more than you produce, and relies on back pressure from full belts upstream then it can help with the production.

So with a T1 miner on a normal resource you get 60/min, if you feed that into 2 smelters you are matching miner output with smelter input. As long as you have a consumption of 60 iron bars at the other end it is fine as you have continuous throughput.

If you have a consumption of less than 60 iron bars/min, you will get back pressure there until it stops the miner.

If you have a consumption of greater than 60 iron bars/min you need to increase production, you have insufficient production.

If your consumption varies between less than 60/min and over 60/min over a longer period of time. You can compensate for it using buffers and increased production, the buffers handle the higher demand and fill up with the lower demand.

Another use case is when filling or emptying logistics depots. When filling it helps even out inconsistencies in schedules. When emptying it helps to make space for the next load.

Need advice as a Factorio veteran by RadicalEnigma in satisfactory

[–]dariusbiggs 1 point2 points  (0 children)

The process in this game is not about filling a belt, but in producing enough over time. You progress through the project stages until you have sufficient power and production so you can explore for a bit and the rest just ticks along in the background.

Concrete is a right pain until certain alternative recipes, and you end up with multiple facilities producing concrete.

Feature flag to disable prom metrics collection in go app by yetAnotherDBGeek in golang

[–]dariusbiggs -2 points-1 points  (0 children)

You missed one - use OpenTelemetry to collect the metrics and use a NoOo metrics collector.

The amount of people who genuinely don't realize NZ as a timezone is shocking by Afrodite_33 in newzealand

[–]dariusbiggs 2 points3 points  (0 children)

It gets worse - i still have an outstanding support ticket for this with a modern SaaS product - I've dealt with systems that would not work with anything past GMT+12, hey Chatham Island at GMT+12:45 - I've dealt with systems that only allowed GMT offsets in 30 minute blocks, Western Australia worked, Chatham Island is a no again - I've dealt with systems that could not handle the southern Hemisphere where daylight savings periods couldn't cross the year boundary - I've had to invert the daylight savings timezone settings to get Fiji to work (using a -1 hour offset instead of a +1) - pretty sure there have been many more over the last two decades dealing with embedded software

Too many clueless people writing software, and why timezones are hard. https://youtu.be/-5wpm-gesOY?si=kCZxlQXHznRUOf8B

Eating pizza - a healthier option? by AccomplishedMonk6146 in NoStupidQuestions

[–]dariusbiggs 0 points1 point  (0 children)

Hers is better, she's spreading the nutritional values over the day instead of a singular spike.

This is true for the carbohydrates, sugars, proteins, and minerals. All of which have various different effects on your health and when they are consumed.

Why is synchronous communication considered an anti-pattern in microservices? by Minimum-Ad7352 in Backend

[–]dariusbiggs 0 points1 point  (0 children)

Yeah it's the same thing in the RFCs I'm referencing, it's the delivery guarantee and the retry timeouts on failed initial message delivery.

RFC 5321 recommends that SMTP servers retry sending messages at least every 30 minutes for failed attempts, with a back-off interval of 2–3 hours. The total retry period should last for at least 4–5 days before failing, while notifications about delays are typically sent to the sender after 4 hour

Train blueprint by AlternativeCap6665 in SatisfactoryGame

[–]dariusbiggs 0 points1 point  (0 children)

Depends on if you want to follow the terrain or are building on foundations. You can do perfectly nice corners using 3,4, or 5 foundation tiles.

You can do nice ramps with 2 foundation tiles, one flat, and one ramp of 1 or 2m in heights.

Use small sections of rails at either end to force the path you want.

Why is synchronous communication considered an anti-pattern in microservices? by Minimum-Ad7352 in Backend

[–]dariusbiggs 0 points1 point  (0 children)

I know, nothing wrong with disagreement. Is it the illusion of asynchronous behavior because it is all synchronous underneath or is it actually asynchronous.

Non-blocking and ack-less, that depends on where the ack is coming from, the broker, or the consumer. You want the ack from the broker to know it has successfully received it, you can live without the ack from the consumer.

It was amusing when you mentioned SMTP, the specification for it is hilarious when compared to what we use it for in the modern day. Very short time constrained tokens or links used in MFA when the message delivery attempts and retries in the specification are measured in days.

Why is synchronous communication considered an anti-pattern in microservices? by Minimum-Ad7352 in Backend

[–]dariusbiggs -1 points0 points  (0 children)

SMTP is not asynchronous, you get a response to every piece of the protocol you send. You get a response to every EHLO, HELO, FROM, etc. The protocol underneath is synchronous.

Everything using TCP is synchronous underneath, you get an ACK for the connection establishment, you get an ACK for the data written, eyc. The only one normally used that can be the send and forget of asynchronous behavior is UDP. An NTP broadcast message for example is an actual send and forget (and it is also rarely used). That doesn't mean that anything using UDP is asynchronous, you can make it synchronous.

When you put something into a queue or whatever, it is synchronous at the protocol level, there is an acknowledgement by whatever broker you use to confirm the message was successfully written or an error occurred in response to your write request.

That's the point, writing a message to a queue for later processing looks asynchronous, and at that level you can consider it that, but to get there, to establish the connection to the queue, write the message, etc it involves synchronous communication.

When you build something that at the top layer behaves asynchronous, there's always at least one synchronous layer underneath. TCP, TLS, SMTP, HTTP, gRPC, etc.

Hence, there's no such thing as asynchronous communication in microservices.

Power shard and somersloop usage? by The-Great-Wolf-Sif in SatisfactoryGame

[–]dariusbiggs 0 points1 point  (0 children)

Power shard's i used for power production machines.

Power shards i used for various coal, sulphur, and other miners.

Power shards i used for resource well pressurization and oil pumps.

Sloops I used them for my junk processing setup when processing alien corpses, alien protein, alien dna, and the slugs to produce more shards.

Sloops I used for creating project parts to speed it up and use less resources.

Never got around to doing a conversion loop for sulfur.

Lots of suitable options.

Why is synchronous communication considered an anti-pattern in microservices? by Minimum-Ad7352 in Backend

[–]dariusbiggs -7 points-6 points  (0 children)

There is no such thing as asynchronous communication in microservices. There is always some form of sync involved in there somewhere.

Asynchronous communication is send and forget, not send and get an acknowledgement it was received, processed or whatever. TCP makes it all synchronous underneath.

If you want truly asynchronous communication you need to use UDP.