When Random Isn't
orlp.net
orlp.net
There was a popular add-on (Titan Bar I think?) that had a bug in one of its versions where it would always call the API which showed the "write a ticket to a GM UI", if you tried to cancel it, then it would just pop up again, the only way to stop this dialog from being in the way (aside from uninstalling the problematic add-on) was to put something in the text box and press submit.
It was a very bad day or two for the GMs, many players didn't even know about GMs or that that you could submit tickets to them, and trying to explain to a customer that you're a customer service representative who's contacting them because they submitted a ticket likely due their one add-on was more often than not a tricky one.
Because it essentially destroyed the ability to perform reasonable customer service response times the developers put out a hotfix which also put that API call behind protection, making it impossible to be called except from Blizzard's own LUA code.
import java.util.Random;
public class Hayley {
public static void main(String... args) {
byte[] b1 = new byte[4], b2 = new byte[2];
(new Random(0x2effe2140e00L)).nextBytes(b1);
(new Random(0xc2f0097)).nextBytes(b2);
System.out.println(new String(b1) + new String(b2));
}
}I still have a lot of posts on the forum for that stuff (MMOwned), and one of the people that helped me learn then still posts semi-actively.
Compiling my own private server core was how I learned about compiling things, SVN, and how to apply patches (there was a bug related to mage’s fireball, can’t remember what it was.)
Man, whenever I am reminded of the old forums I can't help but get nostalgic. Nowadays, it's like a good piece of the internet is replaced with dopamine-inducing social media apps and gated forums (e.g., Reddit).
I don't know why I still hang out here on HN, maybe mainly because it reminds me of the old forums...
Does anyone know of a thread on HN that survived multiple months?
Also, flat view, mimics a real discussion between people.
There is 4chan.
We have had fast reliable cryptographic random number generators for decades. They really do work with just a tiny seed and a bunch of arithmetic. The numbers produced are indistinguishable from any other proper random source, and they work for any purpose.
Too many people don't understand this, and entire companies are founded on selling snake oil true random.
It's no secret that random numbers' cannot pop out of nowhere.
I see these "When Random Isn't" type articles every year or so. It's just poor implementations where the procedures to produce random numbers have been suboptimal for their intended outcomes.
Not only it is completely exploitable for better loot, it also gave rise to "charm table". Some items have randomly generated statistics, and depending on your initial seed (stored in the game save!), there is a limited number of items you can get, and if you are unlucky, you may have a "cursed table", which is effectively a RNG with a really short period, meaning you will never get the best rolls. Not game breaking, but bad for high level play.
This would vary by item, but was most commonly some combination of recent minimum buyouts (usually over the last two weeks) historically value (several months), and much more. Common items would usually be mostly recent value driven, whereas lower-supply items might have a larger component of historical weighed in, as there might be quite a bit of fluctuation day to day and you care much more just about the general trend.
All sorts of nuance to it. You can do more complex stuff like only doing your price estimations off items that actually sold, set values based on a percentage of any other value, and much, much more. It gets really complex but is really cool at scale.
I think a lot of sales came down to people trading time for money. I just hit a critical level and I want some cheap blues to power level faster and got shitty drops. Or Buddy wants to play and he’s laughing at my gear, oh there’s a reasonable purple.
I found a lot less stress looking for cheap blues and greens to disenchant for ingredients. That could suck up an hour a day easy. Which is why people just dumped them. Not worth their time.
Probably more like a third, or the plurality instead of a simple majority. The price most players saw was slightly above what the market would bear. During peak times everything else would disappear.
I don't quite recall where from, but I had some price data, where I filtered the top X products that made the most volume (price * amount sold).
I then simply did something like "if the price is lower than Y% of the average, buy it. Don't sell the product for less than you bought it for."
Surprisingly this simple formula works very well and I made more gold than I've ever had. It was more than enough to pay for the monthly subscription and I even bought Overwatch using the I credits I got from it.
One script would iterate over every item in my inventory. If it matched a hard-coded list, it would auto-list it at the hard-coded price. Another script would scan every item on the AH, and if matched another hard coded list, it would buy them.
Another story, pre-script. WOW had the inscription update incoming, which used flowers to make glyphs. I correctly assumed the demand for Peacebloom (tier 1 ingredient) would skyrocket once the patch hit. I spent three weeks buying everything on the AH, using multiple characters to store it all. The night before the update, I listed it all for 20x the normal price. The next morning, everything sold out completely. I remember it being 200 stacks @ 5g each, sold for 100g each.
Getting 70% of the way to a goal has 0 value. You can often sell your patience to other people in that game.
Well, apart from the fun of playing the game?
I.e. it became indistinguishable from normal adult life.
(But with the distinction that you can withdraw and spend that money.)
Would you buy you a Lexus or help someone else buy their second yacht?
This is what breaks most games for me. Once I see the gameplay loop, I know I'm just playing spreadsheet optimizer behind the scenes.
Gamification has gone too far, circled back onto games themselves and made them into chores. Everything is gacha or tamagotchi or both now.
I have a few genres I will play now because you can avoid that loop. Big fan of idle / incremental games like universal paperclips, kittens game, etc. I find bringing the numbers to the forefront and more obvious helps. Plus most those games can be played passively or semi-passively with only a few check-ins a day if at all to buy the next update, etc.
Otherwise I do still enjoy the short-duration multiplayer match modes that now exist with battle royals or other battle pass games like Fortnite, Apex, Warzone, etc. I don't give two shits about the cosmetics or any battlepass, barely even open those screens, I ignore daily challenges or other lures too. I like that most rounds can be played in 5-15 minutes depending on your skill, low commitment, no tutorial or nonsense quests to complete. Get some good moments with other people either via in-game actions or voice comms.
I recently got into the online casino's in my state. Its pretty crazy how similar they are to mobile games or even console games. Login daily, daily rewards, gotta check 15 places for all the bonuses and free stuff, half the "fun" and "addition" is just doing the daily or hourly ritual of getting all these "gifts" or rewards. The gacha or tamagotchi comaparison is spot on.
I always made the most money when I half heartedly farmed on one or two characters and traded about five times as much material as I brought in.
It’s a commodities market. Figure out what the weekly and daily average is, try to anticipate drop off in demand (eg, post launch), if anyone undercuts you by too big a margin, buy them out and relist. If a little, either drop your price or wait.
“You mean to tell me that the IRS is a gold sink?!”
“Well, actually that’s a pretty good analogy, the difference is… well… that’s a pretty good analogy!”
I hope we don't start dropping bombs on our own cities....
I thought that was the only explanation for their prices.
A modern economy works by running a printing press a little faster than a furnace, with the coefficient being (under honest and competent management) a good estimate of next year being better than this year by such and such, a self-fulfilling prophecy in a good way until you like, burn the planet via carbon emissions or some hard constraint like that.
And it’s a perfectly good system… under honest and competent management. It’s just easier to corrupt than systems with much lower potential (which is the distance between gold bug and ignorant, those folks have a point, they just rarely make it).
This is where all the 1971 stuff comes in: no rich person does anything but advantage their less-capable kid or lover or whatever unless someone is pointing a gun at them. (e.g. Altman has a job let alone unfettered power). The gold standard has a lower maximum potential risk to the extent you can stop there being a de Beers of gold. You likewise accept 50 years from the transistor to a computer in your house even if you’re fucking loaded.
The unanswered question is: can we get competent and honest leadership (after a fashion) back without the bloodshed it has required 100% of the time before?
A lot of us hope so but don’t have an answer just yet, and the clock is ticking.
If you have particular questions about the monetary system, I know enough to either answer or know that I don’t know and refer you to someone who does.
There were four fairly direct questions in the post you replied to, to which you might like to give a response:
>> [what do you] mean [by] the "printing press to furnace" analogy of the economy
>> what you mean by 1971
>> or the gold bug
>> or the 50 year transistor
The first of those I'm pretty sure I understand what you are meaning, though if I'm right about that I don't think it is a good analogy, but the others I have no context for.
By “printing press” I mean the set of mechanisms in which fractional reserve deficit spending creates the money supply to notionally value future growth, and by “furnace” I mean the set of mechanisms by which we prevent arbitrary inflation as a result. You can measure the money supply in plenty of ways, but for someone who needs a glossary on my original comment, TLDR you want a number called “M2”.
A “gold bug” is someone who either does or advocates the strategy of holding “precious” metals as a uniquely good asset class (no one turns down a free pile of gold, many of us think the market is pricing gold as well as we are), in particular an asset class uniquely resistant to inflation and/or the “government”. I can assure you from painful experience that “the government” gives no fucks if you have gold in your back yard when they make a clerical error.
50 years is roughly the period of time it took for at least two separate inventions of “the transistor” by a bunch of Bell Labs people, but overwhelmingly associated to a guy called Shockley, to culminate in a useful computer that a middle class person could afford to have in their living room. I learned to code on an IBM PC my distinctly middle-class grandfather owned, and it is a substantially better computer than no computer, a harder claim to make about the Apple I for example.
Very roughly modern economies work by printing money in the form of government treasuries (government borrows $ to run the country) and destroys money by charging taxes (taxes go to IRS and are used to pay off the outstanding treasuries)
I think you are confusing Modern Monetary Theory with modern economics. What you are describing is MMT, not what actually happens (the government collects taxes then spends that money + prints more money)
You sir, like many, imply an academic knowledge of markets that would be tradable. If you know what’s wrong with my comment there’s serious money in it, and no one can buy the education you’re implying because the price would be the arb value of all the misprinted securities, trillions easily.
I’m asserting that actual guys called names like Cavendish, who get the actual spread by virtue of being in jobs where you need a name like that laugh in their beer, I’ve been there and I’ve seen it.
“You’ve never dealt with Harkonnens, I have, they’re not human they’re BRUTAL”.
You’re free to disagree, and free to do so under a pseudonym. But if you know anything I don’t about markets generally and US sovereign debt markets in particular I don’t: fuck this HN shit and go trade it. You’ll own HN by the close of business tomorrow, and I will be the least of your worries.
The gold in online games is fabbed the same way.
The only two reasons that makes it hold value is that is the only sanctioned way to exchange goods and services and the players trust it. Once one of the two reasons does not exist, gold will not have any value, just like money in real life.
Sloppy, leaky Venn diagrams are a fact of real life.
Let’s try to avoid “Jews vote for Likud” or “nine eleven was an inside job” type oversimplification?
It’s complicated but for a good set of reasons.
To address the particular point that he was replying to: the government (especially the US government) has only one money problem: does anyone lend them money (buy their bonds) when they’re picky about terms (floor on auction optionally) at an acceptable overall outcome (you still believe I can invade your country if you fuck around on USD).
So it’s simpler and faster and the math is easier to just burn all the checks the IRS gets and make new ones at the Fed.
Which is the same solution as all the games landed on.
To me at least, this sounds like a hard job in Athens with the Bundesbank pardon the ECB breathing down your neck, and a trivially easy job in Washington DC where you can physically destroy anyone who disagrees with your assertions about the value of anything.
Unfortunately the actual job has become: “maximize class solidarity at any cost up to and including arbitrary bloodshed”.
Inflation wipes out the notional value of debts and therefore favors the 80-90% of people whose finances are dominated by a debt term. At the low end of being lucky that debt term is unsecured dollar-valued debt like a credit card. At the high end misguided boomers acting against their own interest owe that debt as a 30 fixed secured by a home.
The subset of boomers (or wannabe YC insiders) who suffer at the hands of inflation are fucking vocal but statistically irrelevant. The ratio of actual financialization of actual asset classes to people who whinge about “inflation” is maybe the stupidest thing said stupidly constantly.
That said, video game economics are pretty fascinating. I love reading writeups on Eve Online economics. I play FFXIV myself which isn't as good as Eve when it comes to economy, but interesting in its own rights. I wish it had buy orders and the ability to buy individual items instead of whole stacks, lol.
How a group of people can be wrong every time about everything in stated ambition while acting in ways completely consistent with Randian Objectivist Naziism in practical terms, and not be hounded out of public life bewilders me. There is probably no moment as simultaneously classist and misogynistic and stupid as when Brinksley Born got knee-capped for being right about everything by Summers, Greenspan, and Ruben with the Ghost of Future Reich (Ayn Rand) looming ominously in the background.
The people running the show around here, the “effective altruism” crowd like SBF and Altman and shit? They still put Atlas Shrugged icons in their Mastodon chats long after everyone without an agenda realized they’re the new version of old fascism.
[1] https://www.investopedia.com/modern-monetary-theory-mmt-4588...
https://www.theregister.com/2006/07/26/constants_are_not/
> I first read the lament to the capricity of programming [in the title of this piece, "Variables Won't Constants Aren't"] in Creative Computing, years before C was devised.
If there's a particular document you feel is canonical to this meme, I'd be interested to read it.
Feel free to submit it if you want, otherwise I'd like to.
[1a] https://news.ycombinator.com/from?site=www.cse.unr.edu
[1b] https://news.ycombinator.com/from?site=unr.edu
[1c] https://hn.algolia.com/?query=Murphy%27s%20laws%20and%20coro...
The site has white background with black text in normal and darkmode. Could probably use a better stylesheet for darkmode but disabling whatever you have on would probably also fix it.
If the link colors stay the color they were designed to be, but you automatically convert the foreground and background colors, you're gonna have a bad time.
If the site is black on white, with dark links, and you change it to white on dark with dark links, the links are gonna be hard to see.
That has nothing to do with the links, the issue is you changed the primary colors without changing the link color!
compare with Wikipedia:
To me "very dark blue against a black" sounds like you are talking about foreground and background colors.
How I Hacked Hacker News (with arc security advisory):
The "fight" between Blizzard's boss design and addon creators trivializing said encounters is long and not worth going deeply into. But, for example, if the strategy of a boss is "if you get a glowing glyph over your head, run over there and stand in a square formation with the other guys with glowing glyphs", an addon could use hard-to-ignore sounds and visuals to tell you that a) you have to run now, and b) exactly which corner of the square formation to run to.
I believe that in the latest raid, the developers tried restricted certain information from the API (e.g. "there is a glyph over the player's head") in an attempt to reduce that kind of strategy automation. The players then proceeded to manually feed this information (e.g. "i have a glyph over my head") into their addons using buttons mapped to API calls like this, allowing for partial automation (e.g. "your corner in the formation is top-left"). This stirred quite the drama, but the that's besides the point.
[1] https://wowpedia.fandom.com/wiki/API_C_ChatInfo.SendAddonMes...
x = x * 69069 + 1;I will be forever appalled that Blizzard rolled out two factor authentication before stock trading services like E*Trade managed it.
Bravo for Blizzard, shame on the rest of ‘em. A game company.
According to my coworker, adding 2FA was primarily about reducing this customer service workload. Eventually they encouraged it by adding in-game benefits, like additional bag space for your character. Not sure they ever went as far as mandating it.
As for mandating it, I could see not requiring people who'd already set up accounts to jump through this extra hoop to play the game. I'm sure even a small percentage might not be able to jump through that hoop. I doubt it's a significant percentage, but I could see it becoming a PR hassle, and those are the worst kinds of hassle from the POV of a technical employee lol...
But for a new game? If the CS metrics reflected a big drop relative to the number of people using 2FA, then I'd be sold on requiring it.
The problem had become that most players wouldn't add 2FA to their accounts until AFTER they got hacked, so any in-game incentive to add it was in our eyes a good one.
Based on many players saying to me "I don't know why they chose me", it seems that a lot of people don't realize that account compromising is a drag-net operation, it's like a fish thinking that there's no reason for them to be targeted specifically by a fisher, without realizing that fishing is such a large scale and impersonal activity.
I found an article from March 2005 stating that ETrade will soon launch 2fa [1]. And a similar article about Blizzard launching 2fa from July 2008 [2]. Maaaybe ETrade took 3 years from anouncement to launch, but I'm pretty sure I saw ETrade branded RSA tokens around 2005, and Blizzard tokens later.
[1] https://www.computerworld.com/article/2569503/etrade-touts-t...
[2] https://www.zdnet.com/article/blizzard-introducing-two-facto...
At some point Blizzard was trying to make it sound like 2FA was mandatory, and ETrade definitely had made a bit more noise about them at that point, but Blizzard campaigned to get everyone on smart phone 2FA and E*trade did not.
Someone else said it might be demographics and I’m not inclined to argue with them. But I think too, a lot of early movers had those key fobs, and because they weren’t on atomic clock time they tended to drift and cause support nightmares. I had 2FA at work a little before I had it in WoW and one of us was having a problem practically every other week. That was only dozens of people.
The smart phone answer was so, so much better. But it you invested in fobs, it’s like public infrastructure. Boston has a shitty sewer system because it got firefighters before Chicago and Seattle, which burned down after modern plumbing more or less settled. See also Internet service in late adopter towns versus early. Ripping out cost more than green field.
They only recently replaced their dedicated smartphone app for 2FA by rolling it into the existing Battle.net app. The 2FA codes they use are longer than 6 digits, which I assume is why they don't support something that can be used by more "mainstream" 2FA apps; by the time those become established enough to support third parties, I suspect their infrastructure had been around long enough that it just wouldn't be worth rewriting it. I do sometimes wonder if someday apps like Google Authenticator will support a wider variety of TOTP configurations; I think Steam also uses something non-standard, which means the only mobile option is a dedicated app, and I'd much rather not have to install extra apps just for 2FA support.
So it's just because the actions in game where functions which were assigned an id and callable by id.
Then because OP was able to reverse engineer that id generator, OP was able to call whatever he wanted once he tested what id was doing what.
Didn't read the math in the middle, I could get it but takes too much time at my age nowadays.
Outside the secure context they had the information to select which (arbitrary) ID they wanted to pass into the secure context. So they call `random()` until they know the next call to it will produce the desired ID. Then they pass control to the secure context which calls `random()` and uses the result as a the ID to lookup what action to take in the same arbitary ID<->action mapping table.
But he doesn't assign ids manually when writing the scripts.
As far as I understand.
As long as you have a method for knowing the next outcome of the random call, that’s all you need.
The way I understand it, he managed to find a way to retrieve ids assigned to functions that have an action in game.
By trial and error and because the ids are generated by a PRNG which he knows. He just needs to retrieve the starting state and then boom.
It matters to know whether an in-game action/function is mapped to a given id, contrary to what you're claiming. Otherwise, what's the point? These ones can't not just arbitrary. That's what he is looking for.
(Why these unnecessarily complex explanations is my question though.)
It’s right there in the URL, even.
The whole point was predicting the next result of random call so that it could be used to smuggle in data. He just called random until the next value was one he wanted.
The secure context did not have access to the information necessary to make a good decision. However you could call random and get a number back, so if you could predict the next value then you can call it from the insecure context until the next value matches the data you want to send, then you pass control to the secure context where it calls random and assumes the the return value is the id to cast or lookup in a table for the actual id.
If the return value range of random() includes 133, then no mapping is necessary. If it doesn’t, then you just hard code a mapping in the secure context function that is keyed with values it can return. It makes no difference either way.
Anyway, that doesn't matter too much. :o) My understanding is still a bit fuzzy.