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

You can take this approach in personal projects - with teams you need to decide on this and then on-board people into your use of the language. This does not work.

Yes exactly, it’s easy to blame a language when really it’s a team problem.

Some kind of acknowledgement would be nice, but nost of our feedback reports fall on deaf ears.

We don't need a nanny state to help with either of the two things. We can just have parents do their jobs if they wish to restrict social media usage.

But they don't - either through lack of knowledge or just can't be bothered to enforce it because they don't want to upset their kid. If parents were doing this already, the government wouldn't have to step in.

The only reason government are doing this is because they want to force everyone to identify themselves online.

OpenVPN looks like a regular tls stream - difficult to distinguish between that and a HTTPS connection. WireGuard looks like WireGuard. But you can wrap WireGuard in whatever headers you might want to obfuscate it and the perf will still be better.

It's trivial to make WireGuard look like a regular TLS stream. It's probably not worth a 15 year regression in security characteristics just to get that attribute; just write the proxy for it and be done with it. It was a 1 day project for us (we learned the hard way that a double digit percentage of our users simply couldn't speak UDP and had to fix that).

It is, we did the same. It is a shame that only Linux supports proper fake TCP though.

Doesn't the Chinese firewall perform sophisticated filtering? Fake TCP should not be difficult to catch. I recall reading how the firewall uses proxies to initiate connections just to see whats up.

You can host a decoy on the server side.

I don't suppose you'd release it, please?

It's part of `flyctl`, which is open source.

>OpenVPN looks like a regular tls stream - difficult to distinguish between that and a HTTPS connection.

I thought openvpn had some weird wrapper on top of TLS that makes it easily detectable? Also to bypass state of the art firewalls (eg. China's gfw), it's not sufficient to be just "tls". Doing TLS-in-TLS produces telltale statistical signatures that are easily detectable, so even simpler protocols like http CONNECT proxy over TLS can be detected.


Raw OpenVPN is very easy to distinguish, its handshake signature is very different from the regular TLS.

OpenVPN is fine if you want to tunnel through a hotel network that blocks UDP, but it's useless if you want to defeat the Great China Firewall or similar blocks.


Do we need all that if we can apply AI to solve practical problems today?

What is possible today is one thing. Sure people debate the details, but at this point it's pretty uncontroversial that AI tooling is beneficial in certain use cases.

Whether or not selling access to massive frontier models is a viable business model, or trillion-dollar valuations for AI companies can be justified... These questions are of a completely different scale, with near-term implications for the global economy.


Depends on the cost.

The Just in that sentence is wholly unjustified. There are plenty of cli/tui/console/shell shortcuts that are incredibly useful, yet they are wholly undiscoverable and do not work cross-platform, e.g. shell motions between macOS and reasonable OSes.

> shell motions between macOS and reasonable OSes

All the movement commands I know work the same in the terminal on a default install of macOS as it does in the terminal on various Linux distros I use.

Ctrl+A to go to beginning of line

Ctrl+E to go to end of line

Esc, B to jump cursor one word backwards

Esc, F to jump cursor one word forward

Ctrl+W to delete backwards until beginning of word

And so on

Both in current versions of macOS where zsh is the default shell, and in older versions of macOS where bash was the default shell.

Am I misunderstanding what you are referring to by shell motions?


Yea, but ctrl + arrows to move cursor between ‘words’ don’t work, especially sad when SSH’ing in from linux. It works fine when using terminal on macOS - you just use command + arrows.

Works fine for me. Configure your shell.

These are emacs bindings of yore. On macOS and some Linux DEs they also work in UI text fields :)

What happens when you press home or end?

In iTerm at least it goes to the beginning or end of current line.

The number of times I’ve attempted to use Ctrl-U in a Python shell only to discover it doesn’t work…

Haven't seen this - shouldn't this always work on unixy platforms? If using readline/editline it works, and if built without it also works.

It’s an internal, custom, vaguely UNIX-like shell in Windows. Typically I’m running Python from bash; Ctrl-U works under bash, but not Python.

> e.g. shell motions between macOS and reasonable OSes.

I forgot about this since I started NixOS/home-manager everywhere.


It will be more energy efficient. And the CPU is free to jit half a gig of javascript in the mean time.

It's hugely more efficient, if you're on a battery powered device it could mean hours more of play time. It's pretty insane just how much better it is (I go through a bit of extra effort to make sure it's working for me, hw decoding isn't includes in some distros).

A charitable explanation for what CxOs do is that they figure out their strategic goals and then focus really hard on ways to herd cats en masse to achieve the goals in an efficient manner. Some people end up doing a great job, some do so accidentally, other just end up doing a job. Sometimes parroting some linkadink drivel is enough to keep the ship on course - usually because the winds are blowing in the right direction or the people at the oars are working well enough on their own.

Yea, but it'd be real nice if we could trust the software we run on our own devices, no?

Secure boot with software attestation could also be used for good.


Only if I get to set the keys or no keys - under all circumstances.

There should be a physical button inside the case labeled "set up secure boot"


under the doctrine that software "trust" is needed YOU are the attacker. It's entirely about stripping your control (thus ownership) from the hardware you paid for (see the safetynet shitshow).


There's a second use whereby I somehow bind my own OS hash to my own data encryption key, so nobody who changes the OS can read the data. The technical distinction between this and the previous: if it's designed for the device owner's protection, the device owner can reset the system.

Just like with HTTPS, you can enrol your own keys in the TPM module, or sign your binaries with a key thats already trusted by your system.

This is just establishing chain of trust, and does not prevent you from doing anything on your system.

True, this could be hypothetically extended to disallow booting third party binaries, but I would say that's just extrapolation for now and not reality.


Why not use plain IPv6 instead?


Even with IPv6 you still might have stateful firewalls allowing only for outbound connection at both ends (e.g. a CPE a.k.a. “WiFi router”) and to establish communication you’d need to punch a hole in those firewalls.


That’s true we won’t get rid of hole-punching with IPv6. But at least it will get rid of TURN.


The hole punching is so much simpler because you don't need to guess your own address and port - you just know it


IPv6 still allows proper NAT (prefix translation), but even then finding your global address wouldn’t need TURN, just STUN, actually not even that, just a service like “What’s My IP.”

It does allow it in the sense that it's possible, and even useful in some scenarios, but then you're on a weird experimental network and not a normal one.

Yes, you are right, quite literally, as RFC 6296 is marked ‘experimental.’

Doesn't that assume that your machine is given its own world-routable (and unfiltered) v6 address?

That's how it works in ipv6. If your network doesn't give you an address, it's broken. We do not assume unfiltered since we are talking about hole punching.

How will it get rid of TURN? Can't IPv6 addresses still be firewalled by your carrier like they do already for IPv4?

I thought TURN was for symmetrical PAT, not for proper NAT (which just needs STUN for address determination) or full/restricted cone PATs (which need STUN for address and port determination, and then, in case of restricted cone, performs a hole punch).

Standard-conforming IPv6 at most allows prefix translation (i.e., proper NAT, not PAT), which wouldn’t need it.


V6 adoption has reached 46.82%[1]. So it is increasingly viable for this.

[1] https://www.google.com/intl/en/ipv6/statistics.html


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

Search: