HN user

Ao7bei3s

1,530 karma
Posts1
Comments356
View on HN

It has a fixed maximum number of concurrent sockets, and each socket has queues backed by per-socket fixed-size transmit and receive buffers (see `rxmem` and `txmem` in `struct tsocket`[1]). This is fine, because in TCP, each side advertises remaining buffer space via the window size header field [2] (possibly with its meaning modified by the window scale option during the initial handshake - see [3] & `struct PACKED tcp_opt_ws`), and possibly also how much it can maximally receive in one packet (via the MSS option on the initial handshake [4]; possibly modified by intermediary systems via MSS clamping). wolfip has unusually small buffer sizes, and hardcodes them via #define, and everything else (e.g. congestion control) is pretty rudimentary too, but otherwise it's pretty much the same as in a "normal" implementation.

[1] https://github.com/wolfSSL/wolfip/blob/60444d869e8f451aa2dca... [2] https://github.com/wolfSSL/wolfip/blob/60444d869e8f451aa2dca... [3] https://github.com/wolfSSL/wolfip/blob/60444d869e8f451aa2dca... [4] https://github.com/wolfSSL/wolfip/blob/60444d869e8f451aa2dca...

It's similar to FedRAMP systems like AWS GovCloud (US), which can only be accessed by someone who is a US person (US citizen or lawful permanent resident) and on US soil (physically in the US at the time of access).

Go to https://ui.perfetto.dev/. On the left sidebar, under "Example traces", click "Open Android example".

For a simple example using your own data, save this as a file and open it via "Open trace file":

  [
    {"name": "Example 1", "ph": "X", "ts": 1, "dur": 1, "pid": 0, "tid": 0},
    {"name": "Example 2", "ph": "X", "ts": 3, "dur": 2, "pid": 0, "tid": 0},
    {"name": "Example 3", "ph": "X", "ts": 2, "dur": 1, "pid": 0, "tid": 1},
    {"name": "Example 4", "ph": "X", "ts": 4, "dur": 2, "pid": 0, "tid": 1}
  ]

I have had a question for a long time, and this may be my one chance to ask someone who actually knows how these things work.

When you were working on this, have you considered playing music that (and please don't take this the wrong way; this may be exaggerated but maybe you will understand what I mean) pre-retirement non-musicians would listen to, where the composer is still alive, and that hasn't been played in the same venue a hundred times? Looking at the Gewandhauses schedule right now, there's absolutely nothing for me.

The San Francisco Symphony plays a top-tier movie (Top Gun, Titanic, Lord of the Rings, etc.) with the film music performed live by the orchestra every few months, and I go to many of these. I got tickets for the Game of Thrones series finale concert (different venue). I absolutely loved Video Games Live, which actually has been in Leipzig too, but in the Arena, and well over a decade ago. I went to a Lindsey Stirling concert, who I knew from YouTube.

So my question is: Why can't the Gewandhaus do something like that regularly? Why can these events only be available in large cities like San Francisco? It's actually frustratingly difficult to find such events in smaller cities. Is it licensing/artist fees? Not interesting for the local musicians? Events like this reliably book out large venues several times in a row, so can it really be lack of demand? Maybe only from the wrong customers?

Windows 11 recently pushed an update to discontinue Windows Mixed Reality (WMR), bricking my <5 years old, $500 Reverb G2 VR headset, which I bought after Meta bought out Oculus and started requiring a Meta account, essentially bricking my Rift S. No thanks.

Delphi and Visual Basic 6 were definitely not the pinnacle of UI development.

For example, all layout was pixel based. Making windows resizable required much complex ad-hoc code, and internationalization was hard as well. Very early in my career, I have spent person months clicking through every single screen in a large desktop application to find words cut off due to words having different lengths (measured in pixel) in different languages. I knew what "Ok" and "Cancel" meant in half a dozen languages. At the time, Java was really breaking ground with container based layouts in Swing. Delphi and Visual Basic caught up only in the .NET era.

Olympic weight plates for barbells. They're widely used, so competition has brought the cost down, and they're easily available in useful increments. I currently see 4x 10lbs for <$50 on Amazon. That works out to 2,53 Euro per kg. So cheaper than euro cents. They may not have the exact shape you need.

The scrap steel probably didn't cost cents per kg when it was sold for its original purpose. You are paying for a useful shape.

A professional equivalent of weighted vests are ballistic plate carriers. Real ballistic plates can be fragile and expensive, so options for exercising in (or milsim games in airsoft etc.) include expired (and failed to re-certify) real ballistic plates, made for purpose training plates... or plate shaped sandbags!

The main technical limitation is that /24 is the smallest prefix that is widely accepted. So you can't just announce a /32 (single IPv4) at different locations.

Generally speaking, if you own the IP space, it just needs to be announced in BGP and traffic will come. You can either peer with someone yourself and get transit from them, or have them advertise it for you.

It's possible even for a private person to do it, if they have one of several workable mixes of knowledge, time, cash, contacts and technical requirements. I've done it for a while.

The main practical question really is who will peer with you and with what conditions. For example, your ISP will absolutely not do this on a consumer plan, but might on a business plan. AWS will do it for busineses as well: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoi...

If you want to learn more about BGP, anyone can sign up for DN42, which is a free, large, shared environment that is a small scale replica of the internet. Everyone gets to be their own AS, get some IP space allocated, establish links to other participants (usually VPN tunnels over the real internet), and do BGP peerings over them. https://dn42.eu/Home

Those are all arguments for buying Tesla stock, not a Tesla. Of course Tesla will keep selling new cars.

What if Tesla pulls the rug on existing models and stops supporting them after a few years? It's not an outlandish fear. Musk has been wildly unpredictable, anything could happen. And given e.g. the recent story about how a Tesla car wouldn't even start again without calling support for some kind of remote maintenance, Tesla owners seem to be more dependent on the company's support than average. It wouldn't surprise me at all if Teslas were generally one expired TLS certificate inside the car away from being bricked.

Exactly. A more modern secure approach is to let the init system open the socket and pass it as an FD. This has some side benefits too (not even temporary root for daemon, less custom code, standard&declarative config, socket activation).

(Of course Unraid, being based on Slackware, has a legacy init system that doesn't support this scheme. But there are enough other options.)

Unraid is not confidence inspiring either. It's just more commercial closed source software, developed behind closed doors and with a slow update cadence (~3 months). They have made questionable security choices anywhere you can see, and I have strong doubts that their code quality is any better.

The PHP scripts certainly are a horrible mess, in all ways. For example, shell injection prevention is based on using escapeshellarg at each call site... that pattern is _exactly_ the structural root cause for vulnerabilities like the one D-Link had.

In no particular order, and obviously not exhaustive: Everything runs directly as root - nginx, php-fpm, smb, ... No AppArmor/SELinux. There is no Secure Boot support (especially unfortunate since boot is from USB stick). No HTTPS access to web frontend by default. SMB protocol defaults are insecure. SMB shares default to public. SSH allows password-based root login. Pools are unencrypted at rest by default. They have a checkbox to enable telnet for management! Very permissive iptables rules. Almost any features that real competitors like Synology would officially provide come from third parties via a moderately shady app store.

Note it's not about any of these individual points. I see above as signal that they are not security experts and see security as an afterthought, rather than as something that deserves a team of experts that specifically cares about it.

(There's certainly other fields they also aren't experts in, like UX - their predominant UI pattern is "list of dropdown fields". Even in storage, one could have a longer discussion how their Array feature - the true core of their product -, compares to modern solutions. There's a reason they've evolved cache pools to just pools as a separate thing, and some users do pool-only Unraid...)

That's all quite understandable since it's a small team with only 2-3 coders (https://unraid.net/about). But nevertheless.

To be clear, I don't want to imply they're useless though. Velocidrone, DRL and Liftoff (I haven't tried Uncrashed yet) all have good enough physics for real use cases, and are widely used.

- As a beginner, they help you crash less. You can learn enough basics to save some real money in avoided crashes. The sims pay for themselves right away, you can just buy them all. The sim-isms don't matter so much.

- As a skilled pilot, they help you crash more. You can safely iterate on your maneuvers really really well (no repairs, immediate retry from same conditions, always good weather, fly from home). You'll have an idea where the differences are and how you need to compensate with the actual craft. You can tune the virtual counterpart to be a bit closer.

They complement real model flying, they just cant replace it. (And even that is questionable. I bet many just can't afford real model flying. Sims might help them scratch the itch.)

A _really accurate_ flight sim is actually hard to do though, for a few reasons. Aerodynamic modelling is hard (there are lots of interesting effects), and that almost every model aircraft is unique (due to home building) and constantly changes (crashes, repairs, upgrades) probably doesn't help. And neither does that the core idea behind multirotors is unstable flight, which entirely depends on the firmware. There are different firmware projects (Betaflight is the most popular for racing, but not the only), and they are quite tunable. Can't simulate that accurately; it would have to be firmware in the loop.

The obvious difference is that the throttle axis on RC transmitters is not self-centering. 0% is at the bottom, not in the center.

But beyond that, the stick throws are much larger than e.g. on an Xbox controller, there's much finer feeling, the end stops are harder, the sticks can be held differently (search "thumbing vs pinching", both are used irl but the latter gives finer control). It's just so different. And you can't compare at all to using two full sized joysticks, which would mean full wrist movement.

Also, cheap gaming joysticks are terrible. Two high quality ones (VKB NXT or better) cost more than a high quality RC transmitter. It does not save money.

Physics aren't really realistic. They're all enough to get the absolute basics down (e.g. that camera uptilt means that pitch left/right needs a corresponding yaw input to keep the view straight). But then different simulators vary. The most common, fairly ubiquitous complaint, is that it's too floaty (real quads drop much faster without throttle). It's not just due to bad physics, it's also because to be commercially successful they have to appeal to gamers too, maybe even primarily. Then there's the finer points, like wind, descending into your own chaotic vortex, or how easy you crash when you touch anything (sims are sooo forgiving).

And of course every quad is different, 1" 1S, 3.5" 2S Li-Ion and a 10" 4S handle substantially differently, but if you haven't flown any for real then you won't know what is right.

(If you're looking for a radio, unless you know what you want, just buy a TX16S please.)

(There are exceptions to everything I said above. But this is the common case.)

I've recently been experimenting with nix generators. It's nice.

What's the most pleasant way to develop and build nix images if your dev env is a regular Linux distro without nix installed?

So far the least bad seems to be running Nixos in a VM with VS Code remote via SSH and scp'ing images around. At least quickemu makes getting the VM pleasant. But VMs are cumbersome.

Docker would be great, but nix from the official Docker container doesn't seem to like running as non-root, which means you can't use volume mounts for the code and change the user ID so that the file permissions are right from inside the container.

Does anyone know of a low power, mini PC that supports 2 or even 4 SATA SSDs (both connector and physical space wise)?

Most, incl. the Lenovo above, seem to support at best 1x M.2 + 1x SATA.

The best choice I have found is using a N100DC-ITX mainboard with a generic ITX case, and those are huge.

I am looking to replace my Raspi / USB SSDs combination.

Can't speak for Japan, but in the US, the immigrant does have the burden of proof that all requirements are satisfied and not submitting enough evidence can lead to a request for evidence (RFE) or notice of intent to deny (NOID). And so the law firm we used had the opposite strategy: submit as much evidence as possible and really help the adjudicator check all the boxes. Our petitions tended to be 250-500 page documents.

I disagree on so many points.

* Buffer overflows tend to lead to remote code execution which is the most serious outcome and should always be treated as serious by default.

* libcurl is absolutely everywhere, not only in corporate networks.

* There is no such things as a trustworthy network; corporations are moving away from that model as it just doesn't work (zero trust). I can think of plenty of ways a motivated attacker might get L2 access to a corporate network if they aren't too picky about what they get access to, when and how long.

* Users can connect work devices to non-corporate networks. The generic example used to be coffee shops, now there's WFH.

* Non-corporate users matter too.

* Horizontal privilege escalation. Chaining multiple exploits into a successful attack is table stakes for modern attackers.

* It was only an example. There is a long history of people (especially those employed by companies with vulnerable products, though that's not the case here) being dismissive about exploitability and wrong about it.

If you want to critique my comment, point out that libcurl didn't actually merge libproxy which would've brought WPAD support... but my real point is that one should not dismiss a buffer overflow in libcurl.

It is not, in fact, on their property. The airspace belongs to the public. It is ironic that they would deprive others of their property rights in the name of perceived property rights. I would certainly hope for a felony conviction in such a case. I have no sympathy for people who would use weapons to illegally enrich themselves at the expense of others.

And by the way, as has been decided this year (though it might yet be appealed) in the Wyoming border crossing case, even using a ladder to cross through the airspace above private lands is not trespassing.