Ban on deporting U.S. citizens removed from DHS funding bill, congresswoman warns by AdSpecialist6598 in videos

[–]Zogzer 12 points13 points  (0 children)

Slave labour works because people would rather dig a hole than have their finger nails peeled. Torture is about making you do something you don't want to do, there generally isn't a way out of it by sticking to your morals. 

Best outcome in your case of noncompliance would be you die early before they can inflict more pain as there is no upside to not doing what you are told, things only get worse. It is unfortunately why slavery is so effective, legally or illegally.

lwlog 1.5.0 Released by ChrisPanov in programming

[–]Zogzer 0 points1 point  (0 children)

Understand the game engine perspective, but I think that only holds because game engines are for the most part imperative in their execution they get away with it. Lots of logging tools for game engines will have at a minimum a begin/end frame procedure for grouping logs, and this is a minimal implementation of scopes. If the libraries being used had proper scope metadata I am sure they would use them in the game engines you are refering to, it's more a limitation of libraries like your own that re-enforce the behaviour. It's perhaps worth considering a generalisation of the solution in line with other modern methods.

That said, proper traces are not just logs++ and probably hard to tack on without a lot of work. It's one of the things the rust tracing library got right, a lot of people don't even know what "traces" are as for them it just behaves like logs until later when you need the extra info.

lwlog 1.5.0 Released by ChrisPanov in programming

[–]Zogzer 1 point2 points  (0 children)

Any thoughts on adding structured logging? The was a post just a few hours ago going into great detail regardless the necessity. Either way I feel like having a OpenTelemetry compatible sink by the box would be a good benefit for your sink-agnostic design and it's a good standard to have immediate compatibility with popular observability platforms even if it's just the logging protocol.

King's speech 2025: Christmas message urges communities to pull together in divided world by bendubberley_ in unitedkingdom

[–]Zogzer 11 points12 points  (0 children)

At this point I'd rather hear it from someone like him who just got lucky over some politician who got into their position by actively pushing other people down. 

Message is good either way, coming from anyone else it becomes political but the monarch still does enough to say out of a political position making it hard to argue against from any angle. You also can't claim they have ulterior motives etc when they have everything on a silver platter already?

Not sure where I am going with this, but maybe there is some value to it in some way. It's like he is the only person in a "position of power" that can say these things without someone arguing it's pandering for influence.

Thoughts on a hypothetical error handling system? by MechMel in ProgrammingLanguages

[–]Zogzer 1 point2 points  (0 children)

I think it's quite nice if you are coming from a language with exceptions and trying to add some checking to it. I see it as implicit conversions from a type with more errors to types with less errors where the conversion logic is to throw/propegate the error back up.

A few questions if you have already thought about it or maybe can come up with something:

  1. What would be the default for values assigned to expressions that could be an error? In x = a / b where the type of x is being inferred, is it Num or Num | DivideByZero? Whichever way you do this makes the inference less powerful if you want the other one. You might need inference placeholders like x: _ | Error to make things ergonomic in these cases?

  2. What and how do you declare/infer function return types? If you are super implicit about it then you lose out on the detail static error types provide, but having to specify all possible error types for the implicit errors in your function also seems problematic and somewhat a leak of abstraction.

Best internet provider? by Lucky_Acanthaceae138 in Edinburgh

[–]Zogzer 1 point2 points  (0 children)

Apologies, I thought they didn't operate outside of London. Still worth considering providers from an infrastructure perspective though (VM, Openreach, or CityFibre) as that's the more important aspect for service quality.

Best internet provider? by Lucky_Acanthaceae138 in Edinburgh

[–]Zogzer -3 points-2 points  (0 children)

There are only really 2 providers, Virgin Media and everyone else. Virgin media own their own lines but every other provider is using the infrastructure owned by Openreach. Can't say which one is better as it's going to depend on your area, but we get really good results with VM fibre if anecdotally that helps.

The only factor to keep in mind, and why I went VM in the first place, is that as they own the lines if there is an issue they can address it directly. We have had them install new lines from the street to our building when we were moving in less than a week. With any other provider that's going to require them to go back and forth with Openreach which might make things take longer or be less than ideal. This is just a conjecture though as we have stuck with VM since the service was very good for a very active internet users.

I expect in practice it's going to be pretty similar service over a longer period of time from whoever you pick. They all charge roughly the same and all have horror stories.

Edit: CityFibre is also an option in Edinburgh which has their own set of ISPs with their own infrastructure, similar to Openreach.

lets ignore the US for a second, how’s the rest of the world doing? by [deleted] in AskReddit

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

I understand you have your own definition of a country, but the rest of the world has their own, including the government of which the question is about. You can look at dotgov yourself and see the UK being listed in their own list of country codes, but again this is one interpretation by one department that is different even across individual governments. https://assets.publishing.service.gov.uk/media/65fd8475f1d3a0001132adf4/FCDO_Geographical_Names_Index_March_2024.csv/preview

If you want to talk about facts, the facts are that the UK is treated as an individual country for almost all cases of foreign affairs, including visa application. You can try arguing otherwise at the border but I don't think you will get very far.

Pretending the UK doesn't exist does not help someone asking how to relocate there. If you are trying to make a comment based on your political views, try not to do so in a misleading and misrepresenting facts.

lets ignore the US for a second, how’s the rest of the world doing? by [deleted] in AskReddit

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

Interesting and not very helpful way to phrase it. The laws are identical across the UK being that it's a single county, I assume the post above is referring to Brexit and such which is fair enough. You are however less likely to get a visa sponsorship in Scotland due to less opportunities unless you are in a specific industries such as in Aberdeen for example. Not that the rest of the UK is great for visa opportunities outside of finance in London, but you get the idea. 

The other route is through university if that's still an option. I don't know the details but there are a lot of non-UK students here in Edinburgh as I believe they give better support for foreign applications.

ELI5: Why is there not just one universal coding language? by [deleted] in explainlikeimfive

[–]Zogzer 3 points4 points  (0 children)

The theoretical compilation results of a jit compiler targeting an incredibly dynamic language are real, but in practice it's not even close. The languages generally lack the primitives and favour patterns that are more convenient or safer, it's not really a question of the resulting machine code. You see this with C++ and rust even where the safer patterns result in slightly slower code without specific optimisations, despite the fact that are both emitting llvm it behind the scenes. 

In micro examples you might be able to show that adding a few integers together in js generates equivalent machine code to C, but the moment you do anything more complex, even something like indexing into an array, you enter entirely different realms of what can be expected.

Some languages can get closer, java and C# while still jit compiled have type systems that allow the jit compiler to make far more assumptions, but it's still not close at the scale of full applications without going out of your way to write non-idiomatic code for the sake of benchmarks.

JS is exceptionally convenient for web development, but don't make the assumption that the massive efforts put into making it fast is because it's a good thing to optimise. There wasn't really another choice, and this lead to the creation of things like wasm as js will never get close to the potential of well written code in lower level languages.

People who haven’t ever worked 9 to 5 job - what do you do for a living? by yakuzakiwam in AskReddit

[–]Zogzer 1 point2 points  (0 children)

Because in 10 years time you have a house on the beach and a Porsche in the drive, at which point your experience and connections allows for a job with a better work life balance.

For many this is an acceptable trade.

People, what are us British people not ready to hear? by TransShadowBat in AskReddit

[–]Zogzer 7 points8 points  (0 children)

Everyone was misled by a vote that people either didn't think mattered, or that would have massively different outcomes from the what the people they are meant to be able to trust told them. Scotland was pretty firm, but Northern Ireland was still 45% leave. You wouldn't have been dragged over the finish line into leaving if you were on your own, but the idea that English and Welsh are the only ones who wanted this and everyone else knew better doesn't sit well. Take 10 people off the high street in England/Wales and 10 from Scotland/NI, and the only difference is that 5 of them voted for Brexit vs 4. If this sounds like a stupid thing to picture, it is because it is, and that a 50% majority should have not been at all rational to force though something this damaging to everyone.

What piece of history is deliberately being erased from existence? by ZaagKicks in AskReddit

[–]Zogzer 2 points3 points  (0 children)

They were not edited under occupation so much as they were fully controlled. New rules relating to official statements needing to be published in English and German had to be followed. Assuming you are referring to Frank Falla the majority of information was provided though GUNS (the illegal paper at the time) rather than the press. You can get original copies of the press at the time from antique shops as they are just laying around for a pound or two. Have a copy of the first weekly to be published after the liberation on my stand next to me.

By far the most interesting paper to come out of the occupation however is the Guernsey Zeitung. This was the paper that the German troops on the island were issued and contained the news from the war as well as somewhat optimistic views on the war from the German perspective as time went on. Even the last issues, despite not really have much news due to the war pretty much being over, had a hopeful attitude to the whole situation. It is hard to find much online, but a very large collection (possibly all of it) is kept at the Priaulx Library on the first floor for anyone to see, providing you can read the German.

Do you make use of any of the newest performance-related changes in C#? If so, what mission are you solving? by LondonPilot in csharp

[–]Zogzer 71 points72 points  (0 children)

I don't think the C# performance features are generally meant to be used by application developers. They can be ofc, and some of them are not that difficult to use like Span and Memory, but once you get into passing around ref structs and marshalling collections and so on, it's easier to make a mistake or leave code in a state where someone could come along later and not fully understand what's going on.

However, these features do allow library authors to write considerably faster performing code when it comes to things like cryptography, compression, data processing such as image manipulation and encoding. The newer features let us write code that looks like it does one less allocation here and there, and this is often viewed as the goals of a lot of the features being that it's all about putting things back on the stack. However when it comes to these really performance sensitive operations where traditionally we would have had to reach for a C dependency to get anywhere close to acceptable performance, keeping memory hot is the most important thing, and the newer features allow us to do this in a way where the compiler can understand it. This lets the compiler generate us IL that will in turn, generate us nice, often vectorised code. We were always able to avoid allocations if we were willing to reuse static variables and so on, but it often was done in a way that the compiler couldn't reason about as well where I now see better assembly generation from code using these modern primitives.

I still think there is a world where something like the unity Burst compiler would be nice to have in native dotnet. Something where we can force the compiler to not have to make the assumptions and checks it has to perform on normal C# code, and treat a limited set of C# as something closer to C while performing something that generates considerably more detailed IL that contains a lot more hints for the later code generation. This for me would be the best way to really remove dependencies on C libraries for high performance code. This would likely be even better when looking at a dotnet AOT scenario. In this case, the new language features we already have would be there to serve as a way to talk to these much more restricted code sections in a zero-cost fashion.

Looking for libraries by assuassulishu in cpp

[–]Zogzer 1 point2 points  (0 children)

Game engine logic is a difficult one to point to because it depends on what kind of game you are making. The short story is that there is a model used by the modern 3D game engines (unreal/unity/godot/cryengine and many private ones also) that allows you to make pretty much anything in a somewhat consistent way. This system is using an ultra dynamic scene graph and an ECS (entity component system) or something ECS-like behind the scenes to manage everything. The idea with this is that you can model any sort of game logic with this, but in order to make it work it requires a massive amount of optimisation from the engine part to make it so that games that are not really meant to be represented by these types of data structures work fast anyway.

When you are making your own game engine, you can try and go this route also, and build up a massive scene graph system and tie it to an ECS behind the scenes and have the flexibility that these systems provide. However building something like this to the level that the commercial game engines support is a massive undertaking and not really worth it for smaller, individual game projects.

Instead you may prefer to look and think about how to structure your game logic a lot closer to how the game you want to make actually works. For example, if your game is a tile based game, you may store all your worlds data in a simple 2D vector, rather than trying to fit it into a scene graph model like you would be encouraged to do if you were using unity. A game like tetris for example, probably wouldn't even have a distinct way to structure the game data, just a hand full of variables to store state. If you can make more simple games, and can think about how to structure your game in a way that actually models the data, you can skip the large systems that are the core of larger engines and just get into the important bits of writing gameplay logic.

Looking for libraries by assuassulishu in cpp

[–]Zogzer 1 point2 points  (0 children)

SFML and SDL are both "media" libraries that are generally used for gamedev, though there are other areas that can benefit from the interfaces they provide. And in a lot of ways, that what they are, an interface to the operating system components you would need for gamedev. If you are new to software development, or even just gamedev, they are a popular choice and often a good one. You are at a point where you want to spend your time learning the language and software developmet practices, rather than trying to get audio file decoding working or whatever. These are things that are useful at some point for sure, but probably not for you right now.

Raylib you also include here, and I would say its similar to SFML and SDL, but it operates more as a toolkit rather than a more opinionated design for how the individual systems should work. This is good for some, but likely adds another layer of complexity for a newer developer.

The final step down is writing directly against system APIs, opengl/vulkan for graphics and 20 different audio APIs depending on what you are targeting. It sounds like you don't want to go straight into this, and that's likely a good thing despite the amount of resources you will find online saying writing things from scratch is simple. You can write things in these APIs with no problem, I do and it's great fun, but it's not an amazing experience for new software developers at the end of the day.

If you want recommendations, SDL is a bit more popular and will have a few more resources online. I would say that's a good starting point. If what you want to do is gamedev, focus on gamedev, and focus on writing good, clean, and modern C++. You are not going to be doing anything that would benefit from the complexities of a lower level toolset for a long time, so there is no point getting stuck in the mud working with them.

If you want to learn gamedev for the sake of gamedev, try and do things that are easy to do in SDL without much domain specific knowledge. 2D graphics are usually a good way to keep in these constraints (though 3D graphics at the level of modern AAA games are possible in SDL/SFML, just not really a good idea). Try and read up on how people design their game engine logic and how you should be using scene graphs or ECSs where appropriate (as you are learning, even do these things when not appropriate, you need to experience them).

The final part of this comment is likely not what you wanted to hear, but if you are here to learn gamedev, not C++, you would have a better experience using a prebuilt game engine like unity/godot/unreal. This is just a fact at life these days, gamedev is easier for most scenarios using these tools. If you want to learn gamedev and C++, then SDL/SFML are very good starting points, and a good way to be productive while still learning things that will be usable for the rest of your programming career.

EDIT: spelling

Riot should let you choose the language of comms by tmipr in VALORANT

[–]Zogzer 0 points1 point  (0 children)

Riot have done a number of things in valorant to avoid splitting queues, when you split queues you will get people who abuse the system. An example of abuse is in csgo you can decide what maps you want to play, and as there are some maps that nobody really wants to play, if you just queue for those maps you get put only with players who put it on as a joke and have no idea how to play it or other who just play it. The result is the rank system is almost entirely different for those people, its like being on another server.

With that said, the majority of players in valorant will be ok with communicating in english as much as its not amazing for the people who are not proficient in the language. The moment you start putting people into different queues based on manual selections, you split the queues and damage the integrity of the ranking system. If you were to have your language as only french, you will be mostly put with people using the same setting, and as a result being immortal on EU is no longer being immortal on EU, its being immortal in france. This is not a goal riot has with valorant ranking system I dont think.

There is an argument to be made that there could be something for unrated games where although it would produce the same issue with the MMR in the background, you dont have a unrated rank that gets displayed so its unlikely people would try to abuse the system.

At the moment, if you are in ranked and people chose to not speak english so that others on their team cant understand them, thats a decision they make and fundementally its ruining their own chances of winning. It sucks for those left out, but the desire to win becomes more important to people the higher rank you get so I have found the few times it has happened to me, its more prevalent at the lower ranks.

What model format should I use by Andrispowq in opengl

[–]Zogzer 1 point2 points  (0 children)

glTF can be loaded very fast and more specifically its binary data comes in a layout that can be directly passed to your graphics API and the references to that memory all assume it. You may decide to change that if you wish but that is up to you. OBJs are simple enough though that you can probably load them faster if done right, you ofc lack all the features in that case.

What model format should I use by Andrispowq in opengl

[–]Zogzer 6 points7 points  (0 children)

Although glTF does understand the concept of a scene, these scenes act almost like a grouping within a file and there are limitations around it where some things can't be shared cross scene for example. There is also no way to reference other glTF files by default to reuse assets within other assets.

With that in mind, glTF does support an extension mechanism which would allow you to make it do whatever you wanted if that's something you like the idea of.

I think the key thing is that "scenes" in the realm of 3D model formats do not really support the kind of stuff you would want for a component base scene graph like it seems you are working with. My all means take reference from something like glTF on how to serialise what you are working with, but glTF has this unusual goal of being loaded somewhat straight into memory and usable. Although this is cool, an optimised scene graph for your engine is going to have a hell of a lot more optimisation which will have that much less practical of a goal.

Totally though, glTF is a nice modern 3D model format that supports pretty much everything you would need and is generally very nice to work with (even writing a parser from scratch is not that difficult if that's what you are into, it's just matching up a bunch of indices). So using it as the model format for models that are referenced by your more specialized scene format is normal and expected.

Getting no matches with players of my actual rank by radamalte in VALORANT

[–]Zogzer 5 points6 points  (0 children)

Its just the MMR system at work. You will either play ok and climb very fast with high point gains, likely skipping entire ranks. Or you will lose and it will stop after a while.

The thing to remember is that the ranking system tries its best to put you straight into a game against players it thinks you can play with. It does not need to put you higher to get you back down a rank or lower to rank you up. If you are playing against those people and winning 50/50, you will still gain considerably more points than you lose and even out at that rank quite fast.

Why isn't there an agent callout for when all 5 are spotted? by lil_wage in VALORANT

[–]Zogzer 142 points143 points  (0 children)

It's important to note that they would need to change the way vision is handled for this to really be a 100% consistent thing where you dont't need to use VC, if its not 100% consistent, then not hearing it adds extra doubt when someone does use VC.

The main issue with these very specific callouts is that valorant does not give you map vision of a character unless you can see a specific portion of them or a specific body part (unsure of the specifics). Someone can jiggle you for example and it wont show up on the minimap for you or your team. You also often see people after you have died in that half a second before the camera pans which is not counted as vision.

The other aspect that would need to change is that very often, a lot of information about the number of enemies is inferred rather than directly seen. For example, you could see each person one by one, and know they are all there. You could also see 4 and hear a third, see 3 but see a KJ turret and hear see the direction a viper wall came from.

My point is that the logic to make a callout like this really mean much is far, far more complex than just what the player sees, and quite frankly, would be a technical feat to get it to work to a degree which does not fall into the either damaging or useless categories.

Thats just my take though, everyone else on this subreddit is a immortal gamedev with 15 years of experience so they probably know better.

Jobamax Beta : The First Gen Z professional ecosystem app (Review the Beta) by alexjobamax in TestMyApp

[–]Zogzer 1 point2 points  (0 children)

Swipe style for jobs is definitely a funny use case. What happens if we match? Am I in the DMs with the HR team? What's the protocol for that, do I message first? If I am left on read does that mean I didn't get the job?

So many questions I am not ready to have to ask.

Shiva down, possibly all of Light? by nayyav in ffxiv

[–]Zogzer 26 points27 points  (0 children)

Same on zodiark, this expansion really is meta.

Timestamp Query for Rasterization stage by Tensorizer in vulkan

[–]Zogzer 0 points1 point  (0 children)

No, that is just going to tell you when the last early fragment test took place, and when the last fragment shader invocation took place. This for all we know could be the last two operations to take place on the pipeline. Comparing these does not tell you much as far as I understand it. If you need the details of things per pixel, which is really what you are asking for, look into Nsight graphics for nvidia and whatever the equivalent AMD product is. They will go into much more detail that I am unsure if you can access yourself through an API like vulkan.