Hacker News new | ask | show | jobs
by josho 5012 days ago
> Normal users shouldn't be running their own Tent servers

I used to agree with you that the general public shouldn't run their own server, but that argument may no longer apply.

For example, my home PC (a mac) wakes up from sleep whenever I remotely need something off of it (took no setup on my part). The machine is always backed up, and already has all of my photos and address book. It's been just as reliable as my paid shared web host. So, why not start deploying services from our home PCs.

Think of the obvious benefit—I no longer have to upload photos. Given some additional thought I bet we could come up with other benefits to hosting from home.

I'm not quite ready to advocate for this, but maybe it's time to reconsider this assumption.

1 comments

Your home PC isn't really on the Internet. It's on a crappy pseudo-network that happens to be connected to the Internet.

This doesn't mean you shouldn't be able to use it as a server - you should. However, to use it as a server, you'll need a proxy/gateway server on the real Internet (ie, in the cloud) and a pseudo-protocol by which the gateway talks to your home PC. The pseudo-protocol could even look a lot like the protocol that real servers speak to each other on the real Internet - but there's no requirement that they be the same. (I'm not sure how well inbound port 80 works if you're on Comcast, anyway.) So, when designing the real-server protocol, it's a layering violation to also be thinking about this pseudopod.

There is no such thing as a layering violation. You should be immediately suspicious of anyone who claims that there are such things.
I've got it - we'll encode Ethernet frames in JSON and tunnel them over HTTPS to an IP stack in Javascript. With a JS DHCP client, your browser will grab an IP address on the same subnet as the cloud server. And it's business up front, party in the back...

"Layering violation" is not the best term for what I meant, which is just "design mistake." Also the OSI model doesn't have much to do with reality. But if you want layering violations...

Let me see if I understand the argument you've made: the idea that there are no layering violations is silly because people can make bad designs? Should we blame poor layering discipline for all the C code out there that calls gets(3)?

Modularity is a good thing. Composability often is too. For systems deployed in the large, the end-to-end argument also guides designs to simple cores and complex clients.

But none of that means that any given layer "owns" any piece of functionality. It would indeed make a whole lot of sense to start thinking of IP as the new Ethernet, for instance. But we can't really do that, because the greybeard priesthood uses concepts like "layering violation" to shut down discussion and maintain intellectual turf.

I don't think we're arguing about anything substantive. For the record, I shave my neck every day. I also have no problem with thinking of IP as the new Ethernet.

By "layering violation" I really meant "layering" in a systems rather than a protocol sense. For example, it'd be a "layering violation" in this sense if your OS had a system call print_powerpoint_document(2).

Modularity, compositions, and reusable/flexible kernels are strong design components. "Layers" are a straitjacket. I'm automatically suspicious of designers who invoke them, because they tend to have more to do with shutting down discussions than they do with designing. That's all.
Please read definition of "inter". The Internet is a collection of crappy networks.
The gateway between your crappy network and the Internet is on the Internet. A node on your crappy network, however, is on your crappy network.

(What's unfortunate is that IPv6 seems destined to become no more than one of these "crappy networks.")

Your home PC isn't really on the Internet. It's on a crappy pseudo-network that happens to be connected to the Internet.

The hell are you talking about? I know I have a public IP address and am running several wikis, a Minecraft server and a Mumble server from my home, accesible via Internet (behind a firewall).

Next up is a SIP/XMPP server. Or maybe tent?

s/Your home/Your average home/
Including my dorm room (it was port restricted), my college apartment, my father's house, and my current home, I've always had a publicly accessible IP address.