HN user

xenadu02

10,842 karma

all comments are my own personal opinions

Posts3
Comments1,995
View on HN

Also note this is a side-effect of the fact that mammals lost true 3-color vision then primates re-evolved it by mutating the yellow cone into green/red cones. If you look at the sensitivity of red/green cones they almost overlap, as opposed to blue cones which have a more reasonable placement on the spectrum line. If you look at say birds with 3-color vision their distribution of cones is more like our blue/green spacing in the spectrum.

I believe the leading theory is that red light is given off by a variety of fruits when ripe so arboreal ancestors with that mutation could much more easily locate food. To most mammals red ripe apples and green unripe ones are all just shades of yellow so the mutation would have been like a superpower: the equivalent of eagle-eyed vision.

One thing you learn if you study the Amish or interact with them personally: there is no "Amish generally" or "the Amish usually".

Every Amish congregation makes their own rules. The local deacons vote on changes. Each "Fellowship" of congregations has tenets and rules they require to be "in fellowship" but otherwise don't have control over the individual groups. Splits are often driven by disagreement over the fellowship rules.

There are Amish that own cars but the group might specify that each family may only own one car and it must be model X and of color Y with a specific set of features. Most people are aware of the groups that prohibit cars - requiring use of horse and buggy.

Some Amish allow electricity, but only connected to the barn or only when provided by solar power. Or they might only allow it to the extent required to comply with regulation - for example refrigeration for milk on a dairy farm. Some allow cell phones, but not in the home (you leave it in the barn or a lockbox). Some prohibit them entirely. Some Amish groups allow machinery but apply restrictions that don't allow use of the machinery to end up with one farmer greatly out-producing others. So when a farmer gets old they may allow them to buy a tractor for fieldwork but require it be pulled by horses.

You might also be surprised to learn many Amish experiment with new technology. Often the deacons will appoint a "nerdy" (for lack of a better term) person in the community to use some new thing. They'll evaluate its effects and costs. Then hold a vote on whether to allow it and what the rules will be. Sometime their answer to changes is not "no" but "not yet".

The decisions are nominally driven by a desire to be independent and to avoid negatively affecting family life rather than rejecting technology directly. Most don't allow electricity, cell phones, or internet inside the home because it would lead to people not interacting or connecting with each other. When power tools are allowed they're often pneumatic so they don't need to be tied to the grid and thus dependent upon "the English" - though with Solar and batteries that has rapidly changed.

Most don't allow extensive use of farming machinery because it could lead to your neighbor out-producing you, leading to them getting much richer and having more than you leading to discord in the community. If cars are allowed they may require everyone to buy the same car so there is no jealousy or "keeping up with the Joneses".

Amish are just people so they certainly have assholes and jerks but many are friendly people and if you treat them genuinely they'll repay the favor. They will not be offended that you use a cell phone or drive a car.

Surprising how often things boil down to "they're just people and most people, if treated with respect, will repay in kind".

Well studies show that early school start times are bad for kids anyway so schools should fix their schedules. Kids also naturally like to stay up later these days so more daylight would better match that rather than keeping awake with artificial light.

I also dispute that site's claim that everyone starts before 8am. Here on the west coast I'd say most jobs start at 9am unless they are retail. A lot of schools have also switched to later start times.

Not to mention: DST is already in effect for 65% of the year.

Permanent DST has been introduced in congress every year since 2018. A few years ago it passed the Senate but the house didn't take it up. This time the house has passed it but who knows if the Senate will take it up. I'd prefer to be on permanent DST but I'm not going to hold my breath waiting for it to happen.

I liken it to the story of Noah. Whether that was the mediterranean re-joining the Atlantic and thus oral re-tellings from a much much earlier event or merely a localized flood you can certainly imagine someone preparing for a flood and surviving localized or wide-spread destruction. But two of every animal? That's not a stable genetic population. Hell there are 40,000 or more species of spiders! There is simply no possibility that you could even fit enough animals on a boat of any kind to make that story work. If it did happen the immediate result would be complete genetic collapse and extinction. The idea is abject nonsense but the core story probably happened.

It is easy to imagine a large group of slaves escaping or being freed from Egypt. Maybe they or their ancestors were war captives. But wandering the desert for 40 years? Yeah right. Even if you want to grant miracles the idea that all of Egypt would even know about such events at that time is bananas. Information didn't travel that fast. Probably one group of people in one city. And the antagonist could easily have been a local lord. Over time it became the Pharaoh and the 18 months of wandering turned into 40 years. Only then it was written down.

Most piston aircraft engines are still air-cooled which really means air and oil cooled. The oil is a big part of getting heat out of various parts of the engine.

That also makes them harder on oil as the piston/rings have larger tolerances so they don't expand and bind up during operation. That means greater blow-by at startup and when operating at lower temps which puts a lot more combustion byproducts into the oil. Ultimately you want to run an aircraft engine in the upper part of its range (65% power) continuously and don't let it get too cold.

This is also true because 100LL still contains lead and at lower temps the lead combustion byproducts precipitate out of solution, coating everything in metallic lead, lead oxides, and various other lead compounds all of which are really bad for engines. Converting to unleaded nearly doubled engine life in autos.

Many modern engines have valve rotators and hydraulic lifters. Oil pressure is fed to a lifter that sits between the valves and the cam and automatically takes up for any variation in the system, ensuring valves operate correctly. If you ever wondered why car engines don't need to have their valves adjusted every 20k miles anymore - that's why. In some engines if these leak down after shutdown it can cause trouble starting because the valve timing will be off until oil pressure re-fills the lifter.

Rotators are little spring mechanisms that compress and when uncompressing try to rotate the valve in one direction. This causes the valves to rotate a tiny bit with each cycle. Often there are hot spots and exhaust valves especially often have no good way to shed heat yet are exposed to extremely high temps - so they shed heat when they close and are in contact with the head. If they don't rotate the slightly hotter spots will continuously build up heat eventually destroying the valve. The rotator keeps that from happening. (Some engines use sodium filled valves to help transport heat away from the valve face).

I always found it surprising how tiny variations in wear or even a few degrees of excess heat can end up destroying an engine.

That's a dangerous game to play.

It requires them to bet that:

1. This AI-driven demand cycle is a temporary blip

2. None of their competitors will make massive investments in capacity.

3. No state actors will do so despite evidence to the contrary.

Many in silicon have gone out of business due to the boom-bust cycles so being a bit conservative is appropriate but at some point not expanding production becomes an existential crisis.

Or ya know enough governments with the power get really angry and start forcing price controls, nationalizing, using their state spy agencies to steal your secrets, or use unofficial back channels to make your life extremely difficult.

That said, (before things like SPF) it was easy enough to deliver email to anyone you wanted even if you didn't have your own real email account and SMTP server

Yup, this was also a fun exercise. Use nslookup, find the MX records, then telnet to them and deliver some mail destined for domains that email server handled. At that point you're just a slower version of a mail daemon.

In 2006 when FIOS first rolled out they assigned ARIN IP blocks to anyone who requested a static IP and I hosted my own webserver and email server on the web. So for a long time I had my own netblock and my email server had been around for so very long it was in everyone's legacy trusted list. Even gmail never bounced emails from me, despite not having SPF or DKIM and whatever else. Though I did eventually set those up. Only authed users could send email and that was a limited list so my netblock never actually delivered a spam message.

Funny enough I also setup default routing so all non-registered addresses went into a separate mailbox for me and I used the "companyname@mydomain.net" for everything. For many years I knew about every single data breech before anyone else. Often months or years ahead as spam would arrive out of nowhere to that address.

When I finally moved to the bay area to work in tech for real the entire world had changed. You couldn't just get a netblock assignment anymore. And lord knows even if your ISP wasn't deliberately sabotaging your ability to run a server every other system on the internet would assume you're a scamming spammer. I had to give up self-hosting on-prem.

Ah this one was so long ago I forgot about it.

The realization that (on DOS) "copy con file.txt" as the world's worst text editor or "copy file lpt1:" was treating physical devices as files. Everything on the computer was arbitrary so you could make anything behave like anything else (for some definition of behave like)!

Not a great insight I'll grant but a key one that everyone has to go through to be any good.

This is false. They slow down disease progression by about 30%, as measured by cognitive outcomes. This is discussed in the article.

Perhaps I am just not well-informed but 30% slowdown in progression translates to sufferers have some mild improvement in cognitive tests and live a few months longer.

Maybe it is simply too early to tell but I would naively expect something much more significant. Perhaps this is the sort of thing that requires much earlier treatment to demonstrate better results.

I'm not saying amyloid beta research should be terminated. Merely that everyone in the field should be willing to entertain other ideas.

I don't think that's quite true. Unifi 10GbE switches are cheap enough I have a 24 port PoE+++ one in my house and my 3 main WiFi APs are 10GbE connected. My MBP uses a 5Gbps Thunderbolt adapter that runs relatively cool as well. All of this is over the existing Cat5e wiring.

I'd say 10GbE has arrived. It is relatively cheap, most of the time works over existing 1GbE cabling, and gracefully degrades to 5/2.5/1Gb based on conditions when it can't reach 10Gb.

Yes to be 100% guaranteed of getting 10Gb even in bundles of 100 cables running over noisy fluorescent ballasts to a full 100m you need Cat6A but in many environments Cat5e or Cat6 is more than sufficient. It works so well if you fail to get the full 10Gb I humbly suggest you re-do the terminations on both ends before considering replacing the cable.

As a kid in the late 90s my mind was blown when I realized I could telnet to port 80, 25, or 110 and interact with the servers manually.

Simple get: GET / HTTP/1.1 Content-Type: text/html User-Agent: l33t hax0rs lol X-Funny-Monkey: farts

For sending a mail message on port 25: HELO mail-from: whoever@whatever.com mail-to: sysadmin@yaya.com <other headers> <blank line> Body of the message yay. <two blank lines to end>

POP3 was so long ago I forgot but you could list the mailboxes then get individual messages and so on.

This revelation was the beginning of "there is no magic" for me. The realization that every part of the computer was built by human beings and was at some level understandable if one undertook the effort.

Perhaps most people in the future won't bother. They'll just let agents do it all. I'm sure that will leave some interesting holes in various systems for people willing to actually learn how they work without the filter of a model (or its safety rails).

Let's put all of that aside for a moment.

When the first drugs targeting HIV arrived the results were undeniable. Yes the drugs sucked for various reasons and yes HIV would evolve resistance. But the data demonstrated a very clear link that these drugs suppressed HIV and suppressing HIV made people live longer. Or consider mRNA and COVID, a great success story where the technology was put to good use and the results are obvious.

On the flip side we have certain cancers like certain breast cancers, melanoma, etc that never had a "wow" moment where some miracle turned them from highly fatal into treatable but we have seen decade after decade treatments improve and survival rates march ever upward such that what were once almost guaranteed death sentences are now often very treatable.

These are two disease treatment models worth keeping in mind. Sometimes major leaps are made. Sometimes progress is slow.

Now if we consider amyloid beta therapies: we have treatments that target amyloid beta with varying degrees of success but at least some show definite reductions in amyloid beta plaques. To the best of my knowledge that has not shown to improve outcomes in Alzheimer's patients to any meaningful degree.

That concerns me and I think justifies some skepticism of the amyloid hypothesis. The data is messy but if amyloid beta were a symptom not a cause that could certainly fit the results we are seeing. That doesn't mean the amyloid beta hypothesis is wrong but I think skepticism of the "state of the art" in the field is warranted given the pathetically ineffective progress made to date.

That's by design.

If currency doesn't devalue then stuffing it under a mattress looks like a reasonable alternative to investing. If we hit deflation you can receive gains for "free" and borrowed money becomes more expensive over time. Neither of which our economic system is setup to handle.

We punish people who hoard cash by devaluing it thus encouraging them to put the money to work.

with the US actively sabotaging their access to information and hardware

More like they didn't see the need and didn't invest in early computing and so lagged behind. Something the US very nearly almost did as post-war a lot of people didn't see the point. Software engineers (though they weren't called that) were seen as unimportant secretaries who just typed letters into the computer. Grace Hopper's Navy computing unit famously had to raid other offices at night for resources.

I suspect this was partly to facilitate cloned hardware, but i do also suspect they wanted their systems to be approachable by engineers from around the world, too, so diverging too much would have been detrimental.

Computing advanced so quickly it showed the Soviet-style communist system for the lumbering boondoggle it was. By the time the central committee deigned to allocate resources for computing they were a generation behind and that only got worse. They stole western design and software because they didn't have the economic leeway to do it themselves.

You need to remember: by the 60s/70s the western economies were taking off in says Warsaw countries were never able to match. They simply did less and did it less efficiently across almost all sectors of the economy. No one had to cheat them or restrict them. They shot themselves in the foot repeatedly.

There were no startups. You had to petition the central government for permission to build more computers. They would assign you a quota. You built that many computers. In the mean time 12 new startups were founded in the US and two of them came up with new chip designs and shipped them to customers. Doesn't take a genius to understand why the soviet sphere was a compete non-entity in computing.

Actually pre-ANSI C technically didn't have function prototypes,

Thanks, I completely forgot they weren't called prototypes originally.

The percentage of times I prompt claude "what about checking if there are any child processes running?" or "Would using a lock here greatly simplify the design?" only to have myself be correct is approaching 100%. That is it isn't just claude sycophantically agreeing with me. The code itself becomes smaller, simpler, and more reliable with fewer bugs.

The agents tend to produce working code but the larger the scope the bigger the mess they tend to make. They will happily evolve toward a local maxima but leave world-destroying bugs lurking in the implementation.

The other issue is that claude regularly ignores explicit instructions in CLAUDE.md or in prompts. It will "helpfully" decide to just start doing whatever it wants or reinterpret instructions completely differently than it did the last 100 times.

It has nothing to do with losing control or trust. LLMs are not conscious. They have no executive function. They aren't even thinking. They're just models predicting the next word in the script. They are very useful tools but that's all they are: tools.

Not just this it is important to remember that there was no "aha!" moment where C was created whole-cloth by writing the first compiler in B then cross-compiling.

The language B was evolved in-place by adding new features, then editing the compiler source to make use of those new features, then repeating. They simply started calling it "New B". At some point the language had evolved sufficiently that they decided to call it C.

The semantics of arrays were inherited from B and simply never changed. Part of me suspects this was also because it was seen as "clever" at the time. Look ma, we let arrays turn into pointers! Isn't that clever?

When you look at pre-ANSI C function prototypes you wonder "where are the parameter types?" because there are none. The compiler didn't bother to check. Part of that was perhaps for implementation reasons but a big part of that was the feeling or culture inherited from B: in that language you just had words of memory. You were free to interpret any word of memory as any data type you liked. So duh of course it is up to you to decide how many parameters your function received and of what type. If the caller supplied a different number or different types? Don't do that.

If you are coming from that sort of world clever tricks like arrays decaying to pointers or automatically converting between data types and sizes seems perfectly natural. Anything C offers above and beyond that is an improvement from B after all.

That's fair. I had hoped GF was not entirely giving up but was going to wait until the tech for new nodes was proven and cheaper to obtain. It seems that is not really possible at the moment because anyone who is involved in that supply chain doesn't maintain the ability to stand up new processes on older nodes. Way too busy standing up new nodes.

So much for efficient free markets.

I remember in elementary school being amused by the idea of handedness so I decided to practice writing with my left hand as well. I'm not great at it but even to this day I can write legibly with my left hand from that little bit of practice as a child.

Anyone can get much better at using their non-dominant hand (if they have one) with just a bit of practice. The effect is much much stronger when you do so as a child.

Cryptographically secure random number generators are equivalent to encryption itself. If you could predict anything about the plain text by analysis of the cipher text the algorithm is compromised/broken and useless. That's the whole point! Saying that /dev/random has "exhausted entropy" is as useful as saying "the fleep didn't florp the gorpobittin!". Completely useless words strung together without any meaning.

A CSPRNG is just an algorithm that uses some entropy as a key and feeds back on itself to generate a stream of random bytes. It is a way of expanding a small bit of entropy into a much larger sequence of random values.

From that you can derive the underlying objection here: estimating entropy, blocking /dev/random, and all the other noise is equivalent to saying "cryptography doesn't work". It is both wrong and pointless.

The only place it matters is at boot when there is no hardware source of randomness _which excludes pretty much all PCs which have hardware generators_. You need a true random key to start the CSPRNG but that's it. If you don't have a hardware unit you use time of arrival of the next network packet. Or the frequency of keystrokes on the keyboard.

Now you might ask: why bother seeing the entropy pool at all? The answer is Perfect Forward Secrecy. By mixing in new randomness you are effectively slowly swapping out the key used for the encrypted stream. Thus even if someone is able to compromise something based on guessing the random number sequence your CSPRNG generated their guesses will get more and more wrong as new entropy enters the pool eventually becoming useless. This is a defense-in-depth policy though, not a practical attack mechanism.

On linux it is unfortunate that /dev/urandom has the property of silently vending non-random bytes on hardware without an RNG just after boot and that /dev/random was designed to block when the magical fairies say so but of the two failure modes /dev/urandom is the least bad because practically most hardware (even embedded hardware these days) simply can't encounter its failure mode.

I've made this same argument so let me make a counter-argument:

There are some ways to get this off the ground much quicker. One or more companies could buy an existing non-leading-edge fab like GlobalFoundaries. That buys a lot of expertise so you're not starting from zero.

DRAM also benefits from being very regular and relatively simple. It used to be what you bring up on a new process node to help prove things out.

It also isn't impossible to reduce reliance on ASML if you're willing to throw money at it. That's definitely a super-long-game move but it could be done.

I'm not going to argue that someone is going to do any of this but if demand is sustained it is possible.

For some time I've been curious why none of the major UPS manufacturers offer LiFePO4 UPS units. They'd be smaller, lighter, and have a longer run time all else equal (dramatically lower shipping charges). Batteries wouldn't need replacing nearly as often.

Yet as far as I can tell none of them offer anything in this area except at the extremely high end. Even Ubiquiti's UPS offerings are garbage simulated sine wave with lead acid batteries.

Are UPSes such a niche product there's no money in it? Are they really content to just give up the whole "power station" market to upstart competitors?

Even aviation jump packs (that connect to aircraft ground power ports) offer lithium versions and that's an industry that moves like sloths toward new technology!

You have however many people who you seem to believe have no useful work to do in their current roles. You aren't bleeding money. Is that not the time to invest in new products? To take moonshots?

Is this not admitting that they simply can't come up with any new ideas to invest in? That their intellectual capacity has topped out?

Profitable companies laying people off like this tells me they're done innovating and now it is time to milk the cash cows for all they're worth.

Are you sure about that number being ex-fuel?

FWIW I'm not interested in flying commercial with non-union pilots so that airlines can become cheap labor body shops.

I'm also not interested in saving money by having Boeing outsource to kick as many people out of their machinist union as they can (and screw those people out of retirement and healthcare benefits).

I got my pilot certificate last year (zero plans to go ATP/commercial). Its a lot of work. Then you've got years of getting paid pennies to earn your 1500 hour ATP. Then you've got more years of taking the crap routes and not making super dollars. Much like a doctor its after you've put in 10-15 years that it starts really paying off.

The union also protects pilots from blame culture and trying to game metrics. If it isn't based on seniority then what metrics do you use? And do you want pilots to start making flying decisions based on on-time percentage instead of safety?

If your business needs to screw over labor to survive you don't have a worthwhile business.

You can always route writes to a writer node with streaming WAL replication to all the reader nodes. Works for some workloads and systems, not for others.

For that matter if you write your system with the correct abstraction you can switch to Postgres _later_ if it becomes necessary. For every system that really did need to scale 10,000 are pointlessly overbuilt - worrying about scale when it just didn't matter.

Yeah that's true, it doesn't require a physical implementation per-se.

It does specify cross-talk specs and frequency response. IIRC Cat-5E was 125, Cat-6 250, Cat-6A 500Mhz. But copper is copper and all else equal well-made copper of a given size is going to carry those frequencies regardless. Cat-5E can carry 500Mhz just fine. They don't mix some magic sauce into the molten copper before casting & drawing into wire that changes its frequency response. The real limiting factor (IMHO) and where the actual manufacturing really matters is cross-talk.

In more general terms "runtime" means the userspace facilities above and beyond the standard system APIs (which often translate directly into syscalls into the kernel). It is a set of agreed-upon data structures and functions for operating on them and often includes facilities and patterns for extending the system with your own data structures.

For example the C runtime has a notion of what a "string" is: it's binary layout in memory and the conventions around it (e.g. an array of utf-8 bytes terminated by a null).

A runtime can be very thin or very complex. The dotnet or Java runtimes are massive by comparison. To the point they generally JIT the intermediate language to produce executable code (whether ahead of time or on-the-fly). Go's runtime has its own notion of threading built on top of the system notion of threads.

A self-contained static binary embeds any runtime implementations it needs into its own binary so it is still using runtime facilities but needs no external libraries.

A standalone or "bare" program can mean one that is built using only syscall primitives. Of course that can be taken further: you can build a true baremetal program that is designed to be copied into memory by the bootloader so it runs without a kernel or OS underneath it. This is, after all, what an OS kernel is: just code built such that the bootloader can jump to a fixed (or designated in metadata) address, handing off a pointer to info about the hardware (such as a DeviceTree) in memory and that's it.

In the early PC days BIOS was basically a set of functions built-in to the hardware (or more often flashed onto EEPROM). More or less a minimal sort of runtime + device drivers that knew how to read keyboard input, print characters to the screen, etc.

Almost everything is built on abstractions. In modern systems EFI or equivalents is a form of runtime + device drivers for early boot and the kernel. The kernel forms that for userspace. And a userspace language runtime can be something like a mini-OS for the code it runs. Going the other direction CPUs themselves are much more like a collection of networked PCs than you might expect.