Live data from Hacker News

Ask HN: What are some “10x” software product innovations you have experienced?

news.ycombinator.com

791–800 of 818 posts

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#791
post #749

Earlier quoted context omitted.

You prove you own the NFT the same way you prove to your bank that you have money: by letting the bank hold it for you. You deposit or lock the NFT into the service (essentially making it a staking contract ). This associates the NFT with an account within the service's smart-contract (of the depositor's choice), which can then be mirrored by an oracle-process observing on the service's backend to become "a record in…

Thanks, pretty good explanation of a way for it to work. I don't see what advantage this implementation offers though (happy to be wrong). The game is checking with Valve to see if I am allowed to play it. I will need Valve to agree to honor my token and talk to the game appropriately in perpetuity. A third party that I sell the token to would also be relying on Valve to honor the validity of the token after I transf…

The idea would be that you could transfer your license NFT away from Steam to, say, Origin; and then the Origin release of the game would be checking with Origin’s servers instead of Valve’s. You’d delete your Steam copy of the game (which would no longer work) and install the Origin copy (which would now work.)

Yes, each individual release of the game checks with some particular private corporate server, rather than checking the NFT’s status directly (because, as you said, a PKI keypair is non-unique, and so cannot[1] be used to enforce max-concurrent usage.) And at any given time, you only have a right to play one individual release of the game (or zero, if your NFT isn’t staked anywhere.) But, by moving the NFT around, you can always exchange [a license to play] release X of the game, for [a license to play] release Y of the game. That’s the “freedom of movement” that NFTs get you.

Steam→Origin isn’t a very interesting example of this, since both releases of the game are likely nearly byte-for-byte identical. Consider instead moving a license NFT you possess for an abstract widely-released game title between Steam and, say, the PS4, or the Switch. These aren’t just different “releases”, they’re different ports, perhaps of differing quality—but they may be legally considered to be the same abstract “game title.” (The license NFT would probably correspond to the same abstract copyrightable work for which the ports are all derivative works.)

Even better, this would allow you to detach a license NFT from a “dead” platform (the Wii U, say), and move it to a living platform (e.g. the Switch) where the game has been re-released. Then I wouldn’t have to ever buy NSMBU again[2]. These platform companies’ business models would never allow implementing that on their own... unless a court of law forced them to do it. And there are no real obstacles stopping interested parties from lobbying for exactly such a law!

[1] Although PKI keypairs can be made unique, by generating the privkey on a TPM it can’t be read out from, such as a smart card. Games in e.g. South Korea already rely on smart-card based license activation (although IMHO this only works because of the culture — people in SK mostly play games in net cafes rather than at home, so people don’t generally need to own smart-card readers.) It would very much be possible to make the same smart-card your custodial wallet for your NFTs, and your proof-of-possession for the game to challenge-response against. Then you wouldn’t need a corporate license server — at least in the case of that release of the game. Probably you’d still want to enable interoperation with ecosystems they did use license servers, e.g. the game console ecosystems.

[2] Speaking of Wii U → Switch re-releases: I think Nintendo specifically has foreseen something like this coming, and is trying to get out ahead of it, which is why all their re-releases lately have been enhanced in arguably nontrivial ways — usually by bundling them together with something entirely different — such that they have supporting evidence to claim the re-released game is materially different from the previous version, over-and-above just being a technological upgrade. Even if you have a license NFT for Mario 3D World, that doesn’t necessarily attach to a game-download for Mario 3D World + Bowser’s Fury, y’know? It’s sort of like the stores that get their own model of a product made to trivialize “we’ll beat competitors’ prices” guarantees.

=====

> maybe "locking" currently deposited tokens to your account by making the database record permanent and not caring about tokens any more.

Like I said above, this can be made impossible. Smart contracts are, by default, immutable: their logic can’t be changed once deployed, even by their original author. (The contract author needs to introduce explicit support for upgrading the contract in the contract’s logic before deploying it to the chain.) And this game-theoretic situation is pretty much exactly why smart contracts are immutable: it prevents selfish companies from later reneging on their contractual obligations.

Presuming Valve implements their staking contract as immutable—and probably nobody would trust them with their NFTs if they did any different, just like nobody would trust a non-CDIC-insured bank—then Valve would never be able to later “opt out” of people transferring their tokens away. The contract is what it is. (This is why I was highlighting the importance of an “A→B lock, A→B unlock” flow. Valve can always make their server refuse a withdrawal; but they can’t make an immutable contract refuse a withdrawal, if it didn’t have logic for that in place from the beginning. As long as the contract was programmed to be “in charge” of the withdrawal flow, with the server being a mirror of its state, Valve has no mechanism by which to stop your withdrawal from being processed.)

So if they ever wanted to quit supporting NFTs, they’d be able to either make permanent or purge their own database-record equivalent representation of the NFTs; but even if they made their own records permanent, they wouldn’t be able to erase the tokenized representation, nor stop users from transferring the tokenized representation away. And those tokens would still represent a right to a license for the game, to the other game-download-service-providers in the market. So all they’d be doing by “opting out” would be, at most, giving everyone a free second permanent non-transferable license to their games, separate from the transferable license.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#792
post #68

Gmail. Using web-based email clients was a nightmare before Gmail. They had limited storage space, and the UX was pretty bad, they were hard to search, etc. You spent all your time figuring out what you wanted to delete, or seeing your emails bounce when people had full inboxes. If you didn't log in for a while, your account would disappear. And then suddenly, you got a GB of storage. For free. No questions asked. An…

Gmail was amazing when it launched...I was so excited to get an invite from a friend during the beta period. It made the crappy POP sync for my ISP email account look like a joke. Funny thing is–closing in on 20 years later–I dislike the latest generation of Gmail's web interface so much that I'm back to using a desktop email client.

I dislike it so much out of the box, or with a new account. When I help older people they look at Google like it is in hieroglyphics that they can’t understand because everything is an icon instead of a word. Then there’s the by default sorting your mail box for you and also having threaded emails. Features that have good intentions but just make it impossible to find the emails you are searching for.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#793

Modern Linux distros. Yeah, I have so many complaints about them, but for a wide range of use-cases and hardwares, they "just work" now. In the olden days, Linux desktops and servers, and especially laptops were much more "pets" than "livestock", needing constant attention and care to keep them working, correctly configured, and up to date. Half the time when you added a new software package or piece of hardware you'…

Linux Mint literally just works 99.99999% of the time. It's better than windows, tbh, in terms of stability on my machines. Compare that to Ubuntu, Mint, or Fedora from even 10 years ago, and it's startling. Go back to 2004-5 when I was really into this kind of thing in college (and had time to dicker with it), and it's like they're not even the same product. You're 100% right. Linux desktops used to be pets, very fr…

For me it's the microsoft office suite. I used to make documents in LaTeX and continue in some cases for text heavy or math heavy final documents. Since using powerpoint however, I cannot image going back to either LaTeX or libre office for either presentation or quick intermediate reports. LaTeX is too cumbersome and libre office is just a pain to use (one part of me still hope that I am just using it wrong). Apart from that, gaming is also a reason for my personnal computer.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#794
post #735

Earlier quoted context omitted.

Java was designed when C and C++ were still going strong and there was a feeling (or fear, depending on who you asked) that C++ would be as omnipresent as C was. Java tried very hard to fix the perceived errors of C++ and operator overloading was high on that list. Nowadays, we are no longer afraid of operator overloading so I kind of wonder why it hasn't found its way into modern Java.

But they fixed the wrong "errors" C++ is actually a good language. But everything that comes from C is bad.

There's a very good language in C++ trying to get out.

The problem is that different people consider different subsets of C++ as good.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#795
post #794

Earlier quoted context omitted.

But they fixed the wrong "errors" C++ is actually a good language. But everything that comes from C is bad.

There's a very good language in C++ trying to get out. The problem is that different people consider different subsets of C++ as good.

C++: has generics, inheritance, pointers, macros, const, function overloading, and exceptions

Sun: C++ is too complicated. We need to simplify it by removing generics, pointers, macros, and const

Google: C++ is too complicated. We need to simplify it by removing generics, inheritance, pointers, macros, const, function overloading, and exceptions

Mozilla: C++ is too complicated. We need to simplify it by removing inheritance, function overloading and exceptions

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#796

Earlier quoted context omitted.

> visual-space-inefficient If you’re referring to the oft discussed “information density” issue, my goodness, scroll a little. That spacing is good for usability and, yes, accessibility. Those larger action targets and the space between them are not only good for us with vision impairment but for people whose only computing device is a phone.

I’ve noticed a pattern of what I get downvoted for and it doesn’t reflect well on this community. 1. Asking people to show a little empathy to others (eg use your scroll wheel so people can benefit from reading a thing or clicking it at all) 2. Asking people to show a little empathy to others (eg recognizing that people who have violent ideologies are dangerous and don’t deserve free mandatory amplification from othe…

> I’ve noticed a pattern of what I get downvoted for and it doesn’t reflect well on this community.

Please don't use moral grandstanding to try to emotionally manipulate others into changing their voting practices.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#797
post #576

Earlier quoted context omitted.

Most web sites aren't accessible. A capability is irrelevant if it's never used. Meanwhile, beauty is in the eye of the beholder. The modern webtech trends are offensive to my eyes - in addition to being ridiculously compute- and visual-space-inefficient.

> visual-space-inefficient If you’re referring to the oft discussed “information density” issue, my goodness, scroll a little. That spacing is good for usability and, yes, accessibility. Those larger action targets and the space between them are not only good for us with vision impairment but for people whose only computing device is a phone.

> my goodness, scroll a little

That's an anti-solution. Scrolling is bad for your brain and reduces comprehension - it makes it harder for your brain to figure out what's going on.

There's a continuum between "everything on the screen is 6pt text with no spacing" and gigantic mobile-UI buttons on a desktop environment - and modern webdev errs far too close to the latter.

> That spacing is good [...] accessibility.

Big buttons with small text and no borders - which are part of the design trend - are significantly worse for accessibility.

> That spacing is good for usability

Spacing in general? Yes. The ridiculous amounts of spacing that modern webdev encourages? Absolutely not. There are diminishing returns, and modern webdev goes from "reasonable" into "unreasonable" territory.

> Those larger action targets and the space between them are not only good for us with vision impairment but for people whose only computing device is a phone.

My argument had to do with desktop platforms. You can build websites that are usable on phones while being efficient on desktops, either by building two separate sites, or through responsive design - but modern webdev doesn't, instead choosing to build desktop sites that have all of the aforementioned problems for no good technical reason.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#798
post #794

Earlier quoted context omitted.

There's a very good language in C++ trying to get out. The problem is that different people consider different subsets of C++ as good.

C++: has generics, inheritance, pointers, macros, const, function overloading, and exceptions Sun: C++ is too complicated. We need to simplify it by removing generics, pointers, macros, and const Google: C++ is too complicated. We need to simplify it by removing generics, inheritance, pointers, macros, const, function overloading, and exceptions Mozilla: C++ is too complicated. We need to simplify it by removing inhe…

You are ignoring that every one of that languages you're describing here have not only removed stuff but also implemented stuff differently.

Also, Sun said "manual memory management is dangerous" and history proved them right (granted, they were not the first to say so). Java also proved that a VM based language can be competitive performancewise with a compiled language. It influenced the design of PL down the lines.

Go, well I'm not the biggest fan of its design philosophy but I'm still would have chosen Go over C++ in the 90s if both were available back then.

Rust goes well beyond anything C++ has done. C++ failed in replacing C but Rust might be able to pull that off. Considering that we still have lots of the buffer overflows in 2021 I'd say it's about time.

> C++: has generics, inheritance, pointers, macros, const, function overloading, and exceptions

Pointers. Plural. That's a good point. C++ likes pointers, so much it has raw pointers, references, std::auto_ptr, std::unique_ptr and std::shared_ptr.

C++ also has a shitton of other functionality without a coherent design. In that regard, even C is better. They also almost never remove anything. That std::auto_ptr is up for removal just shows how bad it was and that it shouldn't have been added in the first place.

Re: Ask HN: What are some “10x” software product innovations you have experienced?

#800
ggplot2.

The 10X was not just that it made it easier and faster to make exceptionally beautiful plots. Rather it was that it made me realize for the first time that software was, fundamentally, about an implementation of ideas. That the underlying idea, together with how well it's communicated through the API design and documentation, really matters. Reading Wilkinson's description of the grammar of graphics, and then seeing that translated to a code library... That was amazing. It defined what I think software is, as someone who was new to the world coming from an engineering background where coding was just an easy way to do linear algebra.

Post reply on HN