HNHacker News
TopNewBestAskShowJobs

pingyong

631 karma · joined July 11, 2019

submissionscomments
pingyong··on People kept working, became healthier while on basic income: report
I really, really like the idea of UBI. However, some napkin math:

In the US, with ~250 million people being eligible, a $1000 UBI would cost ~$3 trillion. That's almost the entire budget of the US. How is this even remotely realistic right now? Even if you can cut other spending in half due to it, you'd need an additional $1.5 trillion in "income" essentially. Is that something that would even be possible? How many rich people are there to tax?

pingyong··on People kept working, became healthier while on basic income: report
Absolutely true, but they also tend to work in jobs where they have essentially full control over how much they work, when they work, etc.

And in some cases, that might still end up being much more lucrative than a "normal job". But I'm sure that in many cases, it doesn't - we just don't hear about it, because they're still rich, and nobody really knows what they're really doing anyway.

pingyong··on People kept working, became healthier while on basic income: report
Coming from Germany (not Canada, but maybe closer to Canada than the US in terms of spending): Housing absolutely, health care probably not for most people.

But yeah, if you live on full time minimum wage here that's ~1200€ per month, of which probably 500-800 depending on where you live will go to rent. And if it's 800, it would probably be 1800 if everyone got 1000€ per month. So in that sense, he might be right.

On the other hand some people just might actually quit their job with 1000€ per month and live somewhere further away from cities, since they don't have to live there to work. And maybe that would incentivize employers to try to create more work outside cities. Seems almost impossible to really predict the large scale effects here.

pingyong··on Consistency: How to defeat the purpose of IEEE floating point (2008)
https://gcc.gnu.org/wiki/FloatingPointMath
pingyong··on Low-cost Deterministic C++ Exceptions for Embedded Systems (2019) [pdf]
>How do people deal with constructor errors in the C++ world? I have never seen C++ code where the constructor call is wrapped in with an exception handler.

There are about 200 different ways to be honest, stemming from the unfortunate situation that the most common advice, "use exceptions in exceptional situations", is actively harmful.

Let's take a "Connection" class for example. You'd initialize it with an IpEndpoint, or something to that effect. Some people think "well I'm writing a download script so if I can't connect the script can't continue, so that is exceptional" - so they throw an exception in the constructor and catch it somewhere in main. Other people are writing something more complicated and they think "being unable to establish a connection is normal, I'll just make a factory function for this and wrap the Connection constructor". Which leads to completely different paradigms in the same situation but with different environments - and those two decisions are both good, there are tons of decisions that aren't!

This is compounded by the fact that the C++ standard library only uses 2 kinds of resources: Memory and Files. And they use different kinds of error handling. Well, memory allocation always throws (at least it's consistent here), but the iostream error handling is, uh, interesting? Streams don't throw by default, however you can enable them to throw at runtime, but they also store their error state inside. It's a mess really.

Oh and also the std::logic_error exists and gets thrown by standard library functions, but a lot of advice around exceptions says that you're not supposed to use exceptions for programming errors, that should be handled by assertions.

And then there are of course people who just disable exceptions. Some disable exceptions but still use the standard library and just kind of hope that everything will still work?

So yeah, it's a mess. That's partly why proposals like this would help - if you can make the actual throwing of exceptions cheap, the advice of "use exceptions for exceptional situations" goes away instead becomes "use exceptions for every kind of error handling". Which would be much more consistent. And people wouldn't have an excuse to disable exceptions anymore, at least in the long run.

pingyong··on Low-cost Deterministic C++ Exceptions for Embedded Systems (2019) [pdf]
Well, in the case of C++, since the standard library uses exceptions everywhere not using them is a pretty big "cut". Basically either you don't use the standard library or you write all your code in a completely different paradigm.

For example, since constructors can't return error values reasonably, you would have to make them all private and use static factory functions, or similar workarounds. It's certainly possible, but much less pleasant to work with.

pingyong··on Jitsi Meet: open-source video conferencing
This is coming more out of a theoretical interest, but what are the advantages of Mumble over TeamSpeak 3?
pingyong··on Scientists Are Starting to Take Warp Drives Seriously
Honestly the amount doesn't even matter. If we could make a baseball amount of negative energy but needed a Jupiter amount, sure, that looks solvable.

But we don't even know if it's theoretically possible to create a baseball amount of negative energy. As long as that question hasn't been answered, any discussion about practical applications seems rather pointless.

pingyong··on Scientists Are Starting to Take Warp Drives Seriously
tldr: Nothing changed, we still don't know if negative energy is even something we can generate.
pingyong··on Google's ambitious push into gaming is floundering
>Now that I think about it, why did they even rush Stadia out?

The reason for that is as you say, they're playing the long game here. They know it won't make money, not today, not next year, not in 3 years. But in 10 years it could make billions. And getting actual user data and feedback early while you're building the architecture is probably worth a lot.

pingyong··on Google's ambitious push into gaming is floundering
Most people do have 10-25 ms latency to their servers. Ping isn't the problem here though, the problem is that you have to download the frame. That just takes a while. Input lag is like 150 ms.

The reason some people think that is absolutely insane and ridiculous is simply perception. I switched from 100 Hz CRTs to 120, then 165 Hz LCDs. Console games to me are unplayable already. Obviously, Stadia in it's current form is entire useless to me, no matter what game I'm playing because it just feels bad.

However, people who mostly played 30 FPS console games their entire lives, can usually play on stadia perfectly fine. The input lag isn't that much worse.

pingyong··on Official Java account tweets cryptographically insecure AES encryption demo code
It's kind of funny how often people end up using ECB. (Or not using a nonce with stream ciphers.) It's like so obvious that that can't work when you think about it, but I guess most people just don't think about it in the first place.

In this case however, the low quality was easy to identify for everyone. Just go to the website:

>Happy learning and keep coding !!!.

A space in front of three exclamation marks followed by a period. Only psychopaths would be able to write something like that.

pingyong··on Privacy critique of WhatsApp
Not only is it beyond obvious that WhatsApp stores that data, it's actually better than for example Telegram, which also stores all that data, but in addition to that can MITM all your "non-secret" (read: probably all, nobody uses that feature) messages if they choose to.

It's honestly the best we can ever hope for in a free but commercial product. Everything with better privacy would either have to run almost server free or cost money. Both of which would probably kill mainstream adoption for different reasons.

Not to mention that even if everyone was willing to pay $1 per month for a messaging service, now people are instantly identified with a bank account. And even if you allowed bitcoin, since 99.9% of people would just use your bank account, not using one would instantly put a spotlight on you. And who sends messages to whom is still going through their servers. To actually get significantly better privacy, you'd have to essentially use the Tor network or something.

pingyong··on Programmers generate every possible melody in MIDI to prevent lawsuits
By that logic, a program that simply counts up from 0 (with bignums, as long as the machine has enough memory), is actually a compressed form of every single piece of data or information that has ever, will ever or can ever be created.
pingyong··on Japan's PM to ask all schools to temporarily close
Over ~60 really, but schools are still amazing in terms of spread (to everyone), even if most of the kids would be fine after 2 weeks at home.
pingyong··on Google Chrome's fear of Microsoft Edge is revealing its bad side
If you're ever wondering how much data Chrome sucks out of you, the amount of effort Google goes through to try to keep people from using even Chrome-Edge, let alone Firefox, should give you a rough idea.

Microsoft probably won't be much better though in the long run...

pingyong··on To get good, go after the metagame
The thing is in common esport titles this will only ever really happen at relatively high levels (top ~0.1%) of play. Or at least, that's where it would actually matter. Below that, games are usually just decided by who is better at fundamentals. It doesn't matter how great your smoke setup is in CS:GO if I can just wait or flash my way through and insta headshot everyone because I'm just better at movement/aim. And the same is even more true when you compare pre-set strategies with rigid holding positions to people who instinctively know when they have to get counter-frags when a teammate dies and how push in a way that doesn't allow these set strategies. (The same is true to almost the same degree in LoL/DotA/SCII).
pingyong··on Mozilla’s DNS over HTTPs
In addition to 1) ideally the user can just choose here. Which the user currently sort of can, so I don't see a problem with it.
pingyong··on Cloudflare silently deleted my DNS records
>Ok but I still don’t get why the op complains about it so publicly the same day (likely immediately) after submitting the ticket without even giving the company a chance to triage and resolve the issue.

Well the blog post isn't really primarily about his specific issue, it's about the systems being severely lacking. A ticket won't resolve that issue.

pingyong··on The Dever Ransomware Experience
>The difference is how malleable the internet infrastructure is compared to the real world.

Just put up cameras with facial recognition everywhere, require every citizen to have biometric IDs (face from multiple angles, fingerprints, DNA), make covering your face illegal and bam you catch like 99% of bike thieves.

>Would ransomware have taken off like it has without bitcoin?

Probably, yeah. Gift cards work well too for example (they're just not as convenient), and I'm sure there are plenty of other ways to transfer money too if you're willing to incur like 50% transaction losses.

>Is there some technical change to bitcoin that could make it less attractive to bad guys?

Bitcoin already tracks every transaction ever. You'd have to somehow prevent mixers from existing, but I'm not sure how that'd be possible.

pingyong··on The new business of AI and how it’s different from traditional software
>but you can train one agent/hero so the training scales in a somewhat linear fashion once they get beyond ~15-20 heros.

No, you can't. The problem isn't training the AI to actually play all the heroes, that's the easy part (and also it's not even required to play the full game, no human can play every single hero), the problem is training the AI to play against all the heroes. That's the challenge - and that's the part that doesn't scale linearly at all. The more heroes the opponent can pick, the more complex your "behavior tree" has to become to think about every possible combination of what they could do.

>you are relying on a computer having human limitations to show that it is superior.

No, I rely on a computer playing the same actual game and not cheat. Because that's pretty much exactly what they're doing right now. It's like modding the game so that every animation is color coded by if it would currently hit you, every minion perfectly marked if it is in execution range, every champion running around with circles that show their ability ranges, with your champion being color coded depending on which ranges, etc. (Except actually even worse than that.)

Again, in the actual real world an AI might have a 360 degree view of the environment, but it still has cameras and it still needs to do naturally imperfect object recognition algorithms on everything - it doesn't just get floating point values for every object's position and trajectory from God.

>When TeamDotaBot2000 is winning every game on the DotA ladder

If TeamDotaBot2000 wasn't directly affiliated with Valve, they would literally get banned for cheating. Because they're not interacting with the game like a normal player would, and they are doing things even a perfect, god-given AI playing the game through the same interface couldn't.

>it is expected that computers beat humans in any field with formally defined rules and objectives.

I expect this to be eventually true in any field. By so much that humans will be fundamentally useless in terms of advancing knowledge, culture, or anything in between. But if that's going to happen in 20, 50, 100 or 10,000 years really isn't clear to me, and neither is that all they'd have to do is put a realistic amount of hardware into their current approach to learn the entire game. The complexity of this task is definitely scaling exponentially, and just like you can't just throw twice the compute at a 128-bit cryptographic key because it worked so well for 64-bits, you can't just throw more compute at a game to learn to play against more champions.

pingyong··on The new business of AI and how it’s different from traditional software
>it is obvious that it would do just as well at the full game excepting that OpenAI didn't have the stomach to try and tackle the engineering challenge for no reward.

That's an interesting interpretation. My interpretation is that they simply weren't able to do it yet (not for a lack of trying though), and so they gave up. It's not obvious at all to me that there is a way to simply scale their approach to the real game. I mean, certainly there is a way with infinite computing power, but it's not clear to me that even with all the computing power on earth currently this approach would work. 18 out of 117 heroes does reduce complexity quite a lot, especially when you pick ones with less complex mechanics.

>They weren't even trying to abuse the reaction time of the computer

They introduced a constant reaction time, but they still "abused" the interface they are provided. If this was a task in the real world, the AI would have the same interface as humans: The screen. They would have to move the screen and run object recognition algorithms on the rendered values, and they would have to "click" on units (not physically) instead of being able to internally select them. This would introduce completely different (and more realistic) reaction time parameters, because if a hero starts an animation it might not be immediately clear which animation it is in the first 5 frames, but the API will provide the value immediately.

AlphaStar's strength dropped considerably for example when they realized that the AI being able to perceive the entire map at once was an unfair advantage and restricted it so that it had to move the camera around. But still even AlphaStar is using an API instead of just the rendered output, which enables things like selecting units that are hidden behind other units, which for a human player is literally impossible without moving it out of the way first.

I think for AI to be able to claim that it is better at a game than humans, the AI ought to be playing the actual game, and use the same interface. (Not necessarily physically, you don't need a camera and a robot, but the AI's input should be the rendered output of the game, and the AI's output should be mouse movement / key strokes.)

You might think that would be a trivial and useless exercise (like it would be in Chess/Go), but I'm really not convinced of that for video games. There are a lot of examples where even playing a frame-by-frame recording of a fight you just can't tell what exactly is going on in a fight until a couple frames later, but the API will always provide floating-point accurate data of everything. This is a huge advantage that just doesn't translate into real world tasks when the AI has to use cameras and sensors to make sense of the world (in automated driving for example) just like we have to.

pingyong··on Move, simply
I mean requiring an explicitly defaulted move constructor or something to that effect I wouldn't mind, but personally I also think it's beyond obvious that if you move from a smart pointer that it's going to hold a nullptr after that. I wouldn't consider that hard to understand (or surprising) at all compared to something like even relatively simple thread synchronization, something that comes up for pretty much any native developer eventually these days.
pingyong··on The new business of AI and how it’s different from traditional software
>ability to search for objects in your pictures on your phone

This is pretty cool, can save a lot of time in some cases, and doesn't disappoint because object recognition (even by humans) is unreliable by nature.

>use an online translator to translate almost anything in any language (including idioms) using something like google translate

That's debatable at best. Google Translate at least is still horrible, to the point where it is actually pretty much completely useless, at translating Asian languages to English. For longer texts, even German to English or Spanish to English produces a lot of nonsense, although it is usually at least somewhat intelligible if you're familiar with the sort of mistakes that Google Translate tends to make.

Anecdotally, I don't use Google Translate any differently than I did 7 years ago. It's good for single words or expressions, it's okay for single sentences if you are aware of it's pitfalls, it's pretty useless for large articles unless all you want is getting a general idea of what the article is talking about.

>AI Dungeon

I mean everything we've seen from AI Dungeon was hilarious because of it's nonsensical flaws. If those flaws can somehow be removed in the future we'll be stuck with a version where every individual sentence kind of makes sense but there is no coherent connection or story line, i.e. a product that nobody would use.

pingyong··on The new business of AI and how it’s different from traditional software
>there are no longer any well-defined tasks that a human can outperform a computer in.

If by "well-defined" you mean "complete information", then yes. If by well-defined you mean... well-defined, then no. Humans are better at a lot of things still, including video games for example. OpenAI has been working for years on a DotA AI, and while very technologically interesting, it still can only play (well) with and against a fraction of heroes and mechanics, and even within those limitations humans have quickly been able to find weaknesses and outmaneuver it.

AI really hasn't over the last 5 years (and probably won't during the next 5) changed the world that much. There are some problem domains that saw big interesting leaps (mainly image recognition, image reconstruction and game AI), but that's about it.

Self-driving cars, if they ever come to market properly, will be the biggest change. And that's certainly a big change, but it's not really the "software industry revolutionizing" change that some people seem to expect.

pingyong··on An SSH server that knows who you are
This misunderstanding could have been avoided by formulating your initial statement like this:

>openssh makes the situation worse because +even+ if the key is already in your host file and it's just the ip/domain that changed it will not tell you that it recognises the key.

pingyong··on Google to Samsung: Stop messing with Linux kernel code. It's hurting Android
Hm, I wonder what kind of questions that entailed. Because unsigned arithmetic in C seems very intuitive to me. I have a hard time coming up with a question that would be hard to answer. Certainly, if we're talking about the C standard, unsigned integers are much more intuitive than signed integers.

Although even if there somehow are hard questions, I'm not sure understanding unsigned arithmetic would have helped whoever wrote that code. Because I think if you asked that person "what does this unsigned type do with -5 C?" the answer would have been pretty obvious.

pingyong··on What does happiness at work mean?
The problem is then you still have to go there and pretend to work - sitting in front of a screen for 8 hours while doing nothing probably sucks the life right out of you.
pingyong··on 95th percentile isn't that hard to reach
Oh, I might have misread that - in that case, I completely agree. But I guess "practice makes (almost) perfect!" isn't that controversial of an idea either, lol.
pingyong··on No engineer has ever sued because of constructive post-interview feedback
I don't know. The problem is that there is almost no way to evaluate software engineers. Have a degree from a decent university? Cool, but how do we know how many actual larger programming assignments that included, and if those were group assignments, how much was your work? Have 10 years of experience? Cool, but how do we know what you actually worked on, and what the quality of your work was?

It's just difficult - and while interviews are decent, whiteboard tasks are usually useless. If you have your own or contributed to open source projects, that's pretty good too for assessing code quality, but not everyone has that.

Ultimately paying for assignments would probably be the best solution, but not everyone can do that either.

← PreviousPage 2 of 9Next →