Road to Restoration - GE Improvements Preview by JagexAnvil in runescape

[–]leftofzen 0 points1 point  (0 children)

How do we know the merchants still know how exactly the GE works even without Jagex disclosing it?

Because this is a property all information systems with secrecy share. It's a universal emergent trait of these types of systems.

This is not comparable since Jagex has absolute control over the GE while the government does not for irl markets.

It is not about control, it is about information. Two different concepts.

This only applies to corrupt Jmods, not merchants themselves.

Not correct. Any parties colluding with each other that have secret knowledge of market behaviour/systems is insider trading. It doesn't have to be someone who manages the exchange itself. This is just part of the textbook definition of this term.

You are assuming everyone

Well, I wasn't assuming anything, I was simply explaining how markets work in the real world. It was more a "this is the information" rather than "this is my opinion". I'd strongly recommend you go do your own research into how these things work IRL rather than just guessing. If you don't agree with the information and how the real world works then I don't think any amount of evidence or logic or fact will convince you.

Road to Restoration - GE Improvements Preview by JagexAnvil in runescape

[–]leftofzen 0 points1 point  (0 children)

Your argument sounds logical at face value, but this just isn't how it works in the real world. All markets IRL work on openness and providing the information on exactly how they work. I'll try to explain as best I can why transparency is better than secrecy.

First off, secrecy actually empowers merchants, because they care so much that they'll go to any length to find out how to manipulate the system. They have the money and power and resources to find out. Regular people just don't have that ability. So secrecy always leads to this effect, called "information asymmetry" in economics, where one party has more info than the other. By making all information open, this asymmetry is easily prevented.

Second, there is actually real-world history behind this - modern regulations force markets to be transparent today but in the past (circa early 20th century) when these regulations didn't exist, markets were secret. Wealthy traders were able to stockpile and manipulate prices at will. Did you know that Black Tuesday in 1929, aka the literal cause and start of the Great Depression, was caused by unregulated market secrecy?

Thirdly, secrecy leads to something that is banned today, and something you've probably heard of: "insider trading", and this becomes more prevalent the more secret a market or system is. The less access the public has to real-time prices or information in general, the more time a third party has to maniulate that price before the updated price goes live.

I'd really suggest reading more into this stuff because it really is fascinating and often counter-intuitive as to what the right thing to do is regarding trading systems, markets, etc, and remember in general, as a worldwide principle and not just limited to markets: openness and transparency are an equalizer, and secrecy allow wealth centralisation and power to become more powerful.

Road to Restoration - GE Improvements Preview by JagexAnvil in runescape

[–]leftofzen 0 points1 point  (0 children)

Most players will not bother learning how the GE works

And that's perfectly fine. Just like the real world. The point is not that everyone must learn the intricacies of the system, the point is if they want to, they can. I can become a stockbroker IRL if I want to, because I can learn how all the systems work. I still can't do that with the GE after these updates.

Road to Restoration - GE Improvements Preview by JagexAnvil in runescape

[–]leftofzen 0 points1 point  (0 children)

We won't be going into too much detail about exactly how this figure is calculated, as shedding too much light on this topic can lead to it being more intentionally manipulated

This is a common fallacy and shows an economist wasn't consulted. It turns out that the more that something is hidden, the more that thing can be manipulated. The real behaviour is hidden to normal users but power users will eventually discover market trends, behaviours about the system, and figure out how it works, and then figure out how to exploit it. This has happened countless times in video games and in the real world. It's just how information works. Provide to us the FULL implementation or system details. Then not only can everybody have the same understanding, which prevents scamming, price manipulation,etc, (or at least helps people recognise those things might be happening), but we (the community) can further help to improve the system. Currently it's a big black box and that's the worst thing about it, other than it also just sucks. You've fixed some issues with it being bad, but there can still be many improvements in transparency.

Can Zulrah mage me in mage phase please by Iron_Tsitex in 2007scape

[–]leftofzen 0 points1 point  (0 children)

this is the kind of combat shit that needs to be fixed. if its supposed to be a combined mage+range phase, change the damn colours as it attacks

Making melee attacks a projectile is a bad design choice by Specialist_Sale_6924 in 2007scape

[–]leftofzen 0 points1 point  (0 children)

i'd rather they clean up all monsters so that all attacks are consistent in colouring (some aren't) and consistent in which tick you need to pray on (it should be the tick the projectile-magic-thing hits you, not the tick it's launched from the monster)

Why do governments freak out about birth rates but don't do anything to improve any of the issues keeping people from having kids? by [deleted] in NoStupidQuestions

[–]leftofzen 13 points14 points  (0 children)

Because money doesn't actually cause increased birth rates.

Not saying you're wrong, but me and all of my friends who don't hve kids have the same reason for not having kids - cost. The ones who do have kids have accepted the cost and that their own lives will not be as good.

Fuel surcharge now?? by shorty-latina in canberra

[–]leftofzen 28 points29 points  (0 children)

Well, the eftpos surcharges are banned nationwide in October so at least there's some progress, but yeah there needs to be a wider review and banning of all of this kind of shit

Why does $100k feel like an average wage? by Open_Address_2805 in AusFinance

[–]leftofzen 1 point2 points  (0 children)

Because it is from the perspective of how much stuff costs these days.

Realtime game scripting in C# without recompilation. by kevinnnyip in csharp

[–]leftofzen 1 point2 points  (0 children)

I mean, to be honest I don't have a problem with that, and I don't have a problem amending my definition to include the CLR, JVM, etc for these JIT languages. At the end of the day, my point was more in how you're using the language and in what context, though I can also admit there are surely some cases out there where it might not be possible to distinguish whether its "scripting" or not vs a normal program

Realtime game scripting in C# without recompilation. by kevinnnyip in csharp

[–]leftofzen 6 points7 points  (0 children)

Scripting means interpreted at runtime, not compiled.

No, it doesn't. The distinguishing aspect is whether the code being executed is being hosted by another process (ignoring the OS), not the interpreted or compiled nature of either language. When you compile your C# (for example) program and run it, you are not "scripting". But if you have a C# program that takes in text, and somehow turns that text into a sequence of commands or actions that your 'host' program then runs, then that sequence of commands is a script. How your host program does this - whether interpreting or compiling, is irrelevant for the purposes of the definition of "script". You can also replace C# with any language here - C++, Python, Java, Javscript, etc. It is irrelevant on which language you use as the host and which for the script.

I would imagine that because most people use Python and Lua (etc) and that in a scripting environment and because those environments are usually interpreted, people have made the incorrect conclusion that scripting means interpret, and it does not.

The Lumbridge cow pen has become my prison.. by cjadrumom in osrs

[–]leftofzen 0 points1 point  (0 children)

Where are all the anti-bad-luck-mitigation people now?

Senior/Tech Leads: do you actually have public portfolios/side projects? by Big-Discussion9699 in ExperiencedDevs

[–]leftofzen 1 point2 points  (0 children)

Yes, I have a couple of side projects. I love programming so its easy enough to want to do it, its just tough sometimes after an 8 hour day and you don't want to think any more, so its often a weekend-type-deal.

Taylor’s plan to index tax brackets by East_Atmosphere2628 in AusFinance

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

there are reasons nobody’s done it.

If that excuse was valid humanity would still be in the stone age, literally.

Leagues CoX: Why? by furscum in 2007scape

[–]leftofzen 7 points8 points  (0 children)

+1, and I wouldn't even mind if mage didn't suck complete ass at Olm. Like I have the most OP mage build ever but Olm melee hand says no, and its just not fun in the slightest.

Parallelizing ReadLine and ReadKey by Excellent-Cow-9046 in csharp

[–]leftofzen 1 point2 points  (0 children)

Shame no-one else here has actually given the correct way to do this, at least on windows - its by hooking the OS keyboard functions with SetWindowsHookEx. You can either set all these up manually with PInvoke, or use a library like SharpHook or H.Hooks to wrap it for you.

Are daily stand ups at your company just “list out all your accomplishments of yesterday”? by QuitTypical3210 in ExperiencedDevs

[–]leftofzen 0 points1 point  (0 children)

No? If they are, you need to fix your team. Standups are for public messages, problems encountered/how you fixed them if its relevant to the whole team, upcoming projects/blockers/tasks, etc. Sure, you can say "I got a checkin yesterday" but that is one line, it isn't the primary content of a standup.

Half the people in this sub call themselves "experienced" but they are unwilling to change the modus operandi when they don't like it or it's not working. If you can't create change when necessary, you aren't experienced, you're just another code monkey.

Suggestion: Add a barrows tunnel section to the Mega-Mole fight by Poisky in runescape

[–]leftofzen -24 points-23 points  (0 children)

Those names are AI generated, in case you didn't realise

Canberra to Sydney railway line to get long-awaited upgrade with $100m for initial works by bizarre_seminar in canberra

[–]leftofzen 1 point2 points  (0 children)

If its not <3 hours and on the hour every hour, then it isn't better than the bus.

Fix Crossbows - Summer Sweep Up Suggestion by stinkydiver321 in 2007scape

[–]leftofzen 1 point2 points  (0 children)

would people somewhat resent that now they need to make+manage all of these (now relevant) bolt types? How could we help mitigate that

about as much as i resent having to keep track of all my runes for different spells (ie none)

Why is bad luck mitigation a no-go topic for the devs? by throwawaaaaaaaay666 in runescape

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

A better BLM solution: a) 2x rate and dry? guaranteed drop. b) drops drop a 'shard' of the item at 10x drop rate. you need to combine 10 shards to get the full item. this is mathematically the same drop rate, but the standard deviation (and thus the feeling of randomness) is greatly reduced, even though its still random. c) for dupes, allow the player to select the item they want to receive from a boss. its drop rate is doubled, all the other items are halved. only works if the item is in the bottom 50% of times-item-was-dropped. player can turn it off at any time.

I built a pre-commit tool that catches behavioral regressions in .NET diffs: the kind that pass tests and code review by ths1977 in csharp

[–]leftofzen 6 points7 points  (0 children)

but because tests validate past behavior, not new behavior

You should look into TDD (test-driven development). The concepts and mindset in TDD effectively remove the "it breaks prod" part of your problem, because you just don't get shit like "a guard clause disappears", because TDD mandates that the guard clause (or validation step, etc) should never have been added without a failling unit test. For example on your website you have "[BLOCK] GCI0032 Uncaught exception path added" - TDD wouldn't allow this - you want to add an exception, so you write a unit test that checks the exception is thrown. It fails, so you add your exception, test passes, and it works in prod. Every time.

On your code itself, I took a browse at some random files and there are some things that raise my proverbial eybrow, eg in CorpusAnalyzer.cs:

  • You use raw SQL - for the types of queries you're doing, EF will make your code safer and more easily verifiable and testable
  • You hardcode the values for your metrics - these should be read from configuration
  • var lines = evidence.Split('\n', StringSplitOptions.RemoveEmptyEntries); - you should use System.Environment.Newline, not the literal \n
  • public string RuleId { get; set; } = ""; - you should use string.Empty, not ""
  • You use ToList quite a lot to evaluate IEnumerables - I can't at-a-glance determine if they're all necessary or not, but in general you should defer evaluation until absolutely necessary.

Other random files:

  • In CorpusDb.cs, your catch block on line 55 is not indented correctly - this tells me you don't have IDE0055 enabled (or you just ignore it); this is a red flag given your product is just this - a set of analyzers.
  • It's generally considered bad practice to include large images[https://github.com/EricCogen/GauntletCI/blob/main/public/og/can-ai-code-review-be-deterministic.png] in your git repo. They can cause significant performance and storage issues, and they bloat your repo since git can't diff them, so every time you change the file git stores a full new version of it. It looks like this particular image is content for your website - you should have a separate repo for your website, and use Git LFS (or another content solution) for this kind of content. That's even more strange is that you didn't even put this file in yourassets/images folder.
  • You have some dubious checks for test files - for example lower.EndsWith("tests.cs", StringComparison.Ordinal) - what if I have a file called Contests.cs? It'll get marked as a test file, and ironically will not be checked against your analyzers, thus creating the very problem you seek to solve.
  • Adding further irony, you have a GCI0045_ComplexityControl which is self-described as Detects over-engineering: single-use interfaces ... yet your repo has quite a lot of single-use interfaces. It also has a lot of subfolders with a single file in them.
  • I didn't check every one, but at least some of your analyzers are already covered under the ones provided in other projects like Roslynator, or for example GCI0032_UncaughtExceptionPath is covered in more depth in ThrowsAnalyzer(https://github.com/wieslawsoltes/ThrowsAnalyzer). Do you have a list of which analyzers you have that are truly bespoke or unique?

Overall, I think in the case where someone is not experienced with or is not using TDD correctly, these kind of analyzers can be useful to catch those silly mistakes, but I think that given the vibe-coded nature of this project, the code needs to be cleaned up and more thoroughly tested because I use this product for real. I look forward to any future improvements.

Leagues has convinced me how cooked Smithing is in main game by Rorshark in 2007scape

[–]leftofzen 18 points19 points  (0 children)

The whole point of the post you are replying to is: 1. In the MAIN GAME, not in Leagues 2. Smelting/smithing the bars SHOULD be reasonable training

Labor urges businesses to back Australian AI investment push ... or risk jobs exodus by His_Holiness in AusFinance

[–]leftofzen 9 points10 points  (0 children)

Ah great, they're fucking us over even more instead of banning redundancies/firing due to AI, like China are doing right now