Hacker Newsnew | past | comments | ask | show | jobs | submit | cornishpixels's commentslogin

And so long as people use that logic, we'll never live in that society.


A "petty battle against CloudFlare DNS users"? No. They require a standardized DNS extension in order for their services to operate properly, and CloudFlare is waging a petty battle against the standard.


A "extension" is by definition something they do not require, since otherwise DNS clients written before that extension would not be able to interoperate with them. That's what makes it a "extension" rather than a unconsionable violation of backwards compatiblity.

And that particular extension exists solely as means for DNS proxies to violate the privacy of their users by leaking client identity data to upstream DNS servers. There are several reasons why Cloudflare is evil and needs to die (especially ReCaptcha and associated attacks on TOR), but archive.is is firmly in the wrong on this particular point.


It doesn't even matter whether the copyright owner likes it or knows about it or not. Selling a used book is legal.


You will likely find that the license agreement you paid for, allowing you to use a digital ebook, disagrees.


Meanwhile, all the copies of those same books which were purchased by libraries are now sitting on library shelves, unable to be loaned out.

The copyright holders have already gotten paid.


That's pretty clearly exactly what they're arguing.


For every application of FSD that applies to a lending library, it seems like there are 99 or more that apply to everyday lending, modification, repair, or resale concerns. Even if libraries didn't exist, I think we'd have something like first sale doctrine.


IMO this is a symptom of a larger problem with the entire web 'ecosystem' (HTML, CSS, JS primarily). It all tries (or tried, anyway) to be simple and easy and forgiving - which means that simple things are easy, and moderately complex things are insanely difficult.

I honestly think the only real solution is re-doing all of it 'from scratch', to make everything (a) stricter and (b) more normal/consistent.

(I think the extant transpilers/preprocessors tend to try to be too 'thin' of a wrapper around CSS/JS: they do give some nice quality of life features but still don't really clean up the mess that is JS and the DOM.)


It actually it is (mostly) as easy as it can be if you think about how the web lets one run third part code safely, not only as a sandboxed in the host environment but also from different domains. I've seen this space evolve since the days of DHTML and the best way to create dynamic content is with document.createElement. Actually I use the crelt[1] util, and the code is shorter and faster then any React/Vue virtual-dom templating system. It like finally riding a bicycle a without training wheels after 15 years of practice.

[1] https://github.com/marijnh/crelt


If you push down the front of the learning curve, the back gets steeper.


That depends on how much of the front of the current learning curve is composed of things people will need to know later.

A person can be a successful programmer for decades and do millions of HTTP operations without knowing the distinction between TCP and IP.


You can always take a multi-tenant system and convert it into a single-tenant system a lot more easily. First and foremost, you can simply run the full multi-tenant system with only a single tenant, which if nothing else enables progressive development (you can slowly remove those now-unnecessary WHERE clauses, etc).


> You can always take a multi-tenant system and convert it into a single-tenant system a lot more easily.

This is not true if your primary keys are int or bigint.

It's also not true if you have any sort of unique indexes that are scoped to a table.


How is it not? Uniqueness would cease to matter between different tenants. They're unique by virtue of using a different database.


See my sibling comment with the Hubspot example. Even though the system might work internally, other things will break if you start having duplicate account IDs because other systems don't think of the account ID as a cluster-local identifier, but as a global one.


Just thinking through this, but if it's an entirely separate environment, just host it on a separate subdomain and the account id becomes irrelevant. If you have a functioning staging environment, you already have the ability to run an isolated environment without issue, this is just a different application of the same idea.


You can probably run the environment itself, but other systems (release management, monitoring, billing, etc) probably rely on the account_id being unique.


I think you are talking about problems going from multiple single-tenant systems to a single multi-tenant system. You parent is talking about the opposite.


No.

For example, HubSpot runs a multitenant system. URLs look like:

https://app.hubspot.com/section/$ACCOUNT_ID/etc/etc

In the simple, YAGNI implementation of this, when you create a new HubSpot account, most likely that will insert a new row into the accounts table, and the auto generated ID of that row will be your account ID. Therefore you need uniqueness to be enforced at that level.

If you want to start running a separate copy of the system, you need to refactor the system to move that sequence out of the database so that two different customers running on different clusters don't end up with the same account ID. This is just an example, but there are many problems like this that are caused by the assumption that the production system is a single unique system.


There are many ways to solve this that don't require uniqueness across all systems.

https://${customer}.hubspot.com/... https://app.hubspot.com/${customer}/...

You'd do this at the proxy/forwarder level.


Everything has a solution, but want to bet that at least 20 different internal systems at HubSpot assume that the account ID in that URL is globally unique?


True, but:

In my experience by the time you reach this point you have a lot of operational complexity because you and your team are used to your production cluster being a single behemoth, so chances are it's not easy to stand up a new one or the overhead for doing so is massive (i.e. your production system grew very complex because there is rarely if ever a need to stand up a new one).

Additionally, a multi tenant behemoth might be full of assumptions that it's the only system in town therefore making it hard to run a separate instance (i.e. uniqueness constraints on names, IDs, etc).


Some of the issues I see in one of my projects is high interactivity between accounts. E.g. if account 1 'sends' something to account 2 both of the shared/separate db instances need to be up or there'll need to be some kind of queueing mechanism.

That's hard enough and then add to it that most clients want to BYOK to those instances


High interactivity between accounts is a good reason to not adopt the proposed multi-single-tenant architecture. The scenarios discussed are B2B enterprisey apps in which the environments are essentially independent from each other.


Open ports which are accessible to the Internet at large are not "machine internals". If you do not want someone to access your systems, then you should configure your systems to not allow that access.


They are scanning 127.0.0.1 locally from the browser, so the ports do not need to be internet-accessible.


They are open ports which are accessible to the Internet at large. Or at least, any site you go to. If you don't like that there are various means to close off those ports to your browsers (Windows firewall, network namespaces, etc).


"It's not my fault I can break into your house and steal everything"


> This makes sense as the programs being scanned for are all Windows remote access tools.

Wait. VNC is a Windows remote access tool? LOL.


You're assuming that the 'bad guys' pay attention and look closely enough to even see that this detection exists and figure out how to bypass it.


The ones who made the software probably are.

The rest just need to notice they're no longer making money and being 1337, will get updated h4xx0r t00lz once the first group releases them.


Yeah... that's very rare.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: