HNHacker News
TopNewBestAskShowJobs

rossnordby

313 karma · joined June 20, 2018

i make bepu things

here's a twitter thing???? https://twitter.com/RossNordby

submissionscomments
rossnordby··on Landauer's Principle
For irreversible computation, yup. If reversible computation turns out to be practical, things are a little weirder, and the bounds are... further away.

Stuff like: https://en.wikipedia.org/wiki/Margolus%E2%80%93Levitin_theor... https://en.wikipedia.org/wiki/Bremermann%27s_limit

The Landauer limit is dependent on temperature, though. If you fast forward the universe a little bit to let the CMB cool down, even irreversible computing can get pretty efficient in theory.

rossnordby··on The Waluigi Effect
I think a lot of people might be missing some cultural context, or something. At the risk of killing the joke, a bunch of this post is worded as it is specifically for the opportunities for absurdity. It's an excuse to write sentences like:

Recall that the waluigi simulacra are being interrogated by an anti-croissant tyranny.

The post is also trying to make an actual point, but while having fun with it.

When you read "... and as literary critic Eliezer Yudkowsky has noted..." just place your tongue firmly in your cheek.

rossnordby··on The Fable of the Dragon-Tyrant (2005)
>Most people would not be able to procreate - the world would overcrowd.

This isn't quite true. Suppose no one dies. Starting from a population of 10 billion, suppose every person can have one child.

The population after one iteration is 15 billion. If those 5 billion then each have one child, the next iteration's population is 17.5 billion. This converges to 2x the original population. In fact, so long as not everyone has 2 kids, it will converge to a finite value.

(Edit: also, this problem takes places on the timescale of HUNDREDS or THOUSANDS of years. The year 2500 is not going to look like today.)

>The really bad people of history could find themselves in permanent long-lasting power (think Putin for a modern example).

In many cases, dictatorships do not end with the dictator's old age. This is true both in the sense that they sometimes die early, and in the sense that they're prone to dynasties. The system of a dictatorship already has agelessness, just not indestructibility.

>I think you can come up with 100 reasons why curing death would be bad.

You can indeed do that, but it's worth keeping the screaming torture of the default in perspective. It's really hard to do worse than aging. I wouldn't want to see my parents wither, suffer, and die. I don't want to die knowing my children would wither, suffer, and die. I don't want you to wither, suffer, and die. I don't want people to have to grieve the loss of their loved ones.

We can just... get rid of the ultrabadness, and have more of the good things. There are new problems that would have to be addressed, but they are addressable! Sometimes, things just aren't that complicated.

rossnordby··on Ask HN: Generalist contractors, what is your hourly rate?
Having done a little work across the spectrum, this is definitely correct. Years ago, I targeted the cheaper end, and the amount of work expected was absurd. The nonmonetary terms of the deals were often even worse; think business destroying levels of exploitation. (I declined those!)

In contrast, I've quoted hundreds of dollars an hour while explaining that I didn't think I would offer enough value to actually justify that price in context and encouraged alternatives- and got the job immediately. And the project went very smoothly. In another recent case, I requested tens of thousands of dollars for some project-relevant expenditures, and received a deposit without a single question.

Organizations that are willing to spend money tend to be the ones that understand what they're buying and how to value it.

rossnordby··on The brain has a ‘low-power mode’ that blunts our senses
"Do less with less" is a good way to put it. It can be helpful to look at the extremes- for example, people who are starving can end up with suppressed thyroid function (among other things). This appears to be adaptive; a hypothyroid state will tend to avoid building or sometimes even maintaining metabolically expensive muscle, overwhelming exhaustion will tend to suppress nonvital calorie expenditure, and even fidgeting behaviors can be suppressed. In other words, by reducing burn rate, you starve slower.

This is not something you want happening in a well-nourished individual. Beyond making you more likely to die to predation or accidents from severe muscle wasting, it also just feels horrible. There's a reason why people with untreated hypothyroidism (unrelated to starvation) struggle with exercise and weight loss.

I've also personally observed some people on... inadvisable extreme crash diets getting some weird bloodwork numbers. Like TSH spiking by a factor of 10- which, unlike the above starvation case which typically suppresses TSH, may imply malnutrition and inability to produce sufficient thyroid hormone. Their empirically derived caloric burn rate dropped by more than 30% over the duration of the diet, and a substantial amount of that was from dramatic muscle wasting. Not exactly ideal!

rossnordby··on Thoughts on C# and .NET
Pretty much all the standard performance advice from other languages like C/C++/Rust applies. The concepts driving "data oriented design" will get you a long way. The biggest difference is learning how to play nice with the GC- avoiding allocations where necessary, keeping the heap simple so that collections are cheap, or just setting things up so the GC never has to run.

I wrote a bit of stuff a few years ago: https://www.bepuentertainment.com/blog/2018/8/30/modern-spee...

Some of the implementation details (like the operator codegen) are surprisingly outdated now given the speed at which the runtime has moved (and the library is now ~4x faster or something silly like that), but the fundamentals are still there.

Since I wrote that, codegen has improved a lot, the hardware intrinsic vector APIs have offered a way to optimize critical codepaths further, additional cross platform vectorization helpers have made it even easier, NativeAOT is getting close, and all sorts of other stuff. The C# discord #allow-unsafe-blocks channel contains a variety of denizens who might be able to offer more resources.

rossnordby··on Thoughts on C# and .NET
I can't comment on the ASP/web side of things, but C# matches up with my atypical use cases extremely well. The high points:

1. Fast compile times for most of development. I'm fine with waiting a while to do a special highly optimized deployment, but getting 95-100% of optimal performance with 0-3 second build times is really nice.

2. Controllable memory access through value types. Nothing getting in the way of C-like contiguous buffers and managing cache line or load alignment.

3. GC that gets out of the way. C# has a GC, but in most of my applications the GC never has to run because I rarely allocate GC-managed instances. It's definitely a nonidiomatic use of C#, but the fact that it's pretty still pretty easy to do is nice. And when I don't have to care about the GC's overhead, the presence of the GC just makes everything easier developmentally.

4. Ability to actually make use of the hardware. The compiler's improved massively in the last several years, and the way vectorization is exposed actually feels a lot nicer than my experiences in C++-land.

And less relevant to my own needs, but still interesting, nowadays you can directly link a C# library into a C/C++/Rust application just like any C library. Among other things.

Almost a decade ago, I was considering exiting the ecosystem in favor of C++/D/not-yet-even-1.0 Rust/etc, but the open source push and a sudden focus on performance basically made the jump unnecessary. C# occupies a really nice sweet spot.

rossnordby··on How do video games stay in sync?
Another related option that sidesteps a big chunk of perceptible latency is to send clients a trivially reprojectable scene. In other words, geometry or geometry proxies that even a mobile device could draw locally with up to date camera state at extremely low cost. The client would have very little responsibility and effectively no options for cheating.

View independent shading response and light simulations can be shared between clients. Even much of view dependent response could be approximated in shared representations like spherical gaussians. The scene can also be aggressively prefiltered; prefiltering would also be shared across all clients.

This would be a massive change in rendering architecture, there's no practical way to retrofit it onto any existing games, and it would still be incredibly expensive for servers compared to 'just let the client do it', and it can't address game logic latency without giving the client more awareness of game logic, but... seems potentially neat!

rossnordby··on What Does It Mean to Have a ‘Weird’ Brain in the Age of Neurodiversity?
You may not complain, but you do observe that your experiences are different in a way that can sometimes be unpleasant.

It appears that when another person recounted how their experiences are different in a way that can sometimes be unpleasant, you assumed that they were placing a burden on others to change for their benefit (or that they were entitled to it). I don't think that is a correct interpretation.

rossnordby··on What Does It Mean to Have a ‘Weird’ Brain in the Age of Neurodiversity?
Not OP, but consider being 6 feet and 8 inches tall. In many buildings (especially older ones), you will have to dodge light fixtures regularly. Many doorways will actually be too short and you'll need to duck. Cooking in most kitchens will end up being quite uncomfortable since you'll be hunched over the entire time. You won't fit in a large number of cars. Flying in planes becomes physically painful unless you get an exit row or pay more. And so on.

You can still interact with the world, but being an outlier adds a whole lot of little bits of friction and discomfort that a more statistically average person doesn't experience.

rossnordby··on Seeking the Tootbird
(alas the path of the tootbird is a lonely one)
rossnordby··on Seeking the Tootbird
To any fellow seekers of the Tootbird, I can answer questions if you have them.
rossnordby··on GJK: Collision detection algorithm in 2D/3D
The usual approach is some form of sweep to get a time of impact. Once you've got a time of impact, you can either generate contacts, or avoid integrating the involved bodies beyond the time of impact, or do something fancier like adaptively stepping the simulation to ensure no lost time.

If the details don't matter much, it's common to use a simple ray cast from the center at t0 to the center at t1. Works reasonably well for fast moving objects that are at least kinda-sorta rotationally invariant. For two dynamic bodies flying at each other, you can test this "movement ray" of body A against the geometry of body B, and the movement ray of body B against the geometry of body A.

One step up would be to use sphere sweeps. Sphere sweeps tend to be pretty fast; they're often only slightly more complicated than a ray test. Pick a sphere radius such that it mostly fills up the shape and then do the same thing as in the previous ray case.

If you need more detail, you can use a linear sweep. A linear sweep ignores angular velocity but uses the full shape for testing. Notably, you can use a variant of GJK (or MPR, for that matter) for this: http://dtecta.com/papers/jgt04raycast.pdf

If you want to include angular motion, things get trickier. One pretty brute forceish approach is to use conservative advancement based on distance queries. Based on the velocity and shape properties, you can estimate the maximum approaching velocity between two bodies, query the distance between the bodies (using algorithms like GJK or whatever else), and then step forward in time by distance / maximumApproachingVelocity. With appropriately conservative velocity estimates, this guarantees the body will never miss a collision, but it can also cause very high iteration counts in corner cases.

You can move a lot faster if you allow the search to look forward a bit beyond potential impact times, turning it into more of a root finding operation. Something like this: https://box2d.org/files/ErinCatto_ContinuousCollision_GDC201...

I use a combination of speculative contacts and then linear+angular sweeps where needed to avoid ghost collisions. Speculative contacts can handle many forms of high velocity use cases without sweeps- contact generation just has to be able to output reasonable negative depth (separated) contacts. The solver handles the rest. The sweeps use a sorta-kinda rootfinder like the Erin Catto presentation above, backed up by vectorized sampling of distance. A bit more here, though it's mainly written for users of the library: https://github.com/bepu/bepuphysics2/blob/master/Documentati...

rossnordby··on Twenty years of C# with Anders Hejlsberg [audio]
Notably, there's some movement regarding the runtime in Unity; it may eventually hop over to CoreCLR (for supported platforms): https://forum.unity.com/threads/unity-future-net-development...
rossnordby··on What the Omicron wave is revealing about human immunity
I believe that is correct. I don't have a great source handy, but here's a preprint which agrees:

Conclusions: Myocarditis (or pericarditis or myopericarditis) from primary COVID19 infection occurred at a rate as high as 450 per million in young males. Young males infected with the virus are up 6 times more likely to develop myocarditis as those who have received the vaccine.

https://pubmed.ncbi.nlm.nih.gov/34341797/

Not sure about ratio age dependency. My prior would be that it is similar, since I don't have any reason to suspect otherwise. Still not a doctor or biologist though :P

rossnordby··on What the Omicron wave is revealing about human immunity
I'm not aware of any great data on myopericarditis for very young people, and not as many have been vaccinated, so I extrapolate from older age groups:

Of 3 482 295 individuals vaccinated with BNT162b2 (Pfizer-BioNTech), 48 developed myocarditis or myopericarditis within 28 days from the vaccination date compared with unvaccinated individuals (adjusted hazard ratio 1.34 (95% confidence interval 0.90 to 2.00); absolute rate 1.4 per 100 000 vaccinated individuals within 28 days of vaccination (95% confidence interval 1.0 to 1.8)). -https://www.bmj.com/content/375/bmj-2021-068665

Among more than 2.5 million vaccinated HCO members who were 16 years of age or older, 54 cases met the criteria for myocarditis. The estimated incidence per 100,000 persons who had received at least one dose of vaccine was 2.13 cases (95% confidence interval [CI], 1.56 to 2.70). The highest incidence of myocarditis (10.69 cases per 100,000 persons; 95% CI, 6.93 to 14.46) was reported in male patients between the ages of 16 and 29 years. A total of 76% of cases of myocarditis were described as mild and 22% as intermediate; 1 case was associated with cardiogenic shock. After a median follow-up of 83 days after the onset of myocarditis, 1 patient had been readmitted to the hospital, and 1 had died of an unknown cause after discharge. -https://www.nejm.org/doi/full/10.1056/NEJMoa2110737

So vaccine-related myopericarditis looks rare and mild. Effectively, and possibly literally, no one dies as a result. I actually ended up with a probable case after my second dose, but it was extremely mild (no functional impairment, just periodic discomfort for some months). I suspect most cases are something similar- not fun, but not spooky. I'm not a doctor nor do I have any relevant specialty, but I'm reasonably sure that reducing incidence of MIS-C or other rare severe outcomes of covid is a net win in younger people.

rossnordby··on Geometry from Another Universe
If it makes you feel better, they can still happen anyway! yay!
rossnordby··on Six dead after tornadoes destroy Amazon warehouse near St Louis
One day, fully alert and sober at something like 5 PM with no excuses, during a thunderstorm, I heard tornado sirens go off. I thought to myself, "sheesh they are only supposed to run tests at noon once a month, and not during sto- oh"
rossnordby··on People who have unusual, or non-existent, inner voices
Not OP, but: if you're thirsty and there's a cup of water nearby, presumably you don't need to verbalize the full set of motor commands necessary to move your arm, grasp the cup, and so on. It's a pretty complicated motion involving quite a few decisions, but they're decisions that don't involve verbal ability. (Or at least I assume that's the case.)

For me, at least, most thinking feels like a version of that, but generalized. That doesn't mean it's necessarily easy- I can't come up with a fancy new algorithm by just desiring it momentarily- but most things just don't need words to be thought.

If I want to figure out if, say, some geometric modification obeys some property, the content of the thoughts is the spatial reasoning directly. I can go back and explain the thoughts verbally, but the words are just labels for the more 'native' reasoning.

In my case, I can still think things verbally, though it does seem closer to subvocalization than full inner voice as described. No aphantasia for me either.

rossnordby··on Smart kids should skip high school (2015)
Putting academics aside, high school is not optimized for socialization.

For many students, it's 5-7 hours a day of explicitly not socializing at all, with brief periods of maybe talking to your friends scattered around, mostly at lunch. Plus homework to stop you from socializing as much as you might like after school.

What socialization students do get from school tends to be extremely filtered by age and other factors like academic track. The median student isn't interacting with a diverse range of people- they're almost all within 1 year of age and often share the majority of their background. When you stack compulsory attendance and restrictions on top, it becomes an extremely warped microcosm that can easily breed horrible behavior. Unfortunately, when it gets bad, schools rarely have the ability to deal with it, and students have exceedingly little autonomy. For most students going through that, the 'lessons' learned will rarely carry over because adults simply aren't operating under the same rules or context, and one does not need practice in suffering.

This isn't the system you'd build if your goal was to spit out a well-socialized human.

It'd be far better to set aside a good chunk of hours a week for intentional socialization, preferably across a wide range of activities. Playing with your friends, helping tutor younger kids, apprenticing with adults in meaningful work, trying to work on self-driven projects with peers... all of these are hugely better socialization opportunities than what high school is for US students.

rossnordby··on Smart kids should skip high school (2015)
I'd charitably interpret this as something like, "I did not learn anything useful or interesting in school that I did not learn elsewhere first or more effectively".

I'd endorse that claim, for the most part. I definitely learned all kinds of things that are not useful nor interesting, and then promptly discarded them. Maybe 2 or 3 isolated things in university passed the above criteria for me, and those were only possible because of the greater freedom offered in universities over K-12.

The times where I actually learned things, including abstract metalearning, were always when I was trying to do difficult things independently from school. School was just taking time away from that. It's important to keep in mind that the alternative to the current education system isn't 'child sits in a box devoid of all sensory input'- there are tons of possibilities.

rossnordby··on Smart kids should skip high school (2015)
Removing high school doesn't necessarily deprive a child of formative experiences, it just changes them.

It's possible for the change to be bad (e.g. parents in a cult pulling their kids out of school to move to The Compound), but I'd wager that if you took a kid who felt like high school was a terrible experience and gave them other constructive options and the resources to pursue them, it'd almost always be a net win.

The value of the 'high school experience' is contextual, not everyone will experience the same balance of good and bad. For some people, the bad is so overwhelming that it goes beyond the point of constructive and well into destructive. Those situations aren't hard to detect.

rossnordby··on The Dangerous Ideas of “Longtermism” and “Existential Risk”
Hence, they point out that focusing on superintelligence gets you a way bigger bang for your buck than, say, preventing people who exist right now from contracting malaria by distributing mosquito nets.

The article seems to push for a narrative that effective altruism encourages ignoring current problems in favor of Super Science Future Hooey, but this quote brings up something important.

Mosquito nets are one of the most often suggested effective interventions in EA circles. Highly rated organizations like the Against Malaria Foundation focus on them. It's been one of GiveWell's top charities for a long time: https://www.givewell.org/charities/top-charities

There are people who consider themselves effective altruists concerned with existential risks, however the article focuses on one logical extreme of analysis:

Well, just crunch the numbers: 0.00000000001 percent of 1023 people is 10 billion people, which is ten times greater than 1 billion people.

While you do sometimes see analyses like these, they're more often used as intuition pumps and in stress testing ethical frameworks than anything else. If someone were to try to use something like the above in an argument, it would likely just become an unpersuasive Pascal's Mugging.

In reality, you can make an overwhelming case for paying attention to existential risk while valuing 'potential' lives at precisely zero. It turns out that 'everyone who exists now, dies' is pretty bad, and many of the potential existential threats have nonnegligible probability. Civilizational threats are even more likely, and still extremely bad.

Articles like this would make sense to me if the government was preparing to throw trillions of dollars at speculative 'longtermist' problems based on low probability/high impact arguments, but they're not. Instead, we see massive underinvestment even given a valuation of potential humans at zero.

I want to avoid a path where effective altruism- which, at its core, is just people trying to do a better job of doing good, through many different paths- becomes some political football or ammunition in a culture war. This kind of article seems to be really trying to do that.

rossnordby··on Morning diurnal preference is associated with reduced risk of depression: study
Out of curiosity, did you have any luck at all with the glasses-style light therapy devices like the Luminette? I was having limited success with other forms of light therapy (and the rest of the laundry list of interventions), and some recommendations from an experimental non24 protocol (https://circadiaware.github.io/VLiDACMel-entrainment-therapy...) lead me to finally try the glasses type and it's oddly effective, so far. I'm waking up around 10:30 AM without alarms and without sliding, which has... literally never happened before. I'm just hoping it won't regress to the mean after another month.
rossnordby··on Abolish High School (2015)
Yup- I'm sensitive to the unforeseen consequences of rug-pulling a massive existing social structure. If I actually had skin in the game and was forced to make policy decisions, I'd probably focus on pushing the start time as late as is practical, and then later smaller scale incremental experimentation.

On the other hand, maybe distance from it has mellowed me too much (even though I still think the current design is responsible for a not-small number of dead kids). 17 year old me was pretty upset about the whole thing.

rossnordby··on Abolish High School (2015)
In my proposal, the number of hours a student actually spends directly listening to/interacting with an on-premise educator is much, much lower. The hope is that those would be more efficient hours, to the point of getting better results with >5x less time.

Part of the issue here may be that I found the education system to have net negative impact on my... education. The main value I see in the current system is providing child care, safety, and food security. If there is solid research showing that ~40 hours of the current approach outperforms ~5 hours of a tutoring-style approach in the general population, that would be evidence against my proposal. And that might exist, I just haven't seen it, since this is not exactly a formally vetted idea.

rossnordby··on Abolish High School (2015)
I'll admit I haven't put this through an extremely thorough vetting process, and I haven't proposed this in congress or anything yet :P

That said, I roughly assumed a private tutor cost of $50/hour, 5 hours a week, for 36 weeks per year. That alone would come out to $9000, hence the 'small group' suggestion- if each tutor is working with on average 3 students at once, it's a bit more tractable.

I'm not sure what assumption you think I'm making about current educator hours- the proposal is for a radically different usage.

rossnordby··on Abolish High School (2015)
I've wondered about how well something like this would work:

1. Schools open early and accept students as early as they do now, but classes start around noon and extend to 4-6 PM. Students are not required to arrive early; the school opens early to provide a safe place and schedule flexibility for parents and buses.

2. Breakfast and lunch are offered to ensure food security.

3. Every student has 5+ hours of 1:1 or small group tutoring weekly. This is where the bulk of educator funding would likely end up.

4. Open format "study hall" periods with staff available to assist.

5. No homework; personal exercises are handled in study hall.

6. For any lecture format material, provide high quality centrally produced media. On premise educators focus most of their time on interaction and adapting to where the students are.

7. Much less age stratification; progress through class content would be heavily individualized by the 1:1 and small group interaction.

8. Unprison the experience- you can go to the bathroom or eat a snack, or even leave.

This reuses of all existing infrastructure, reorganizes educator hours into what is (as far as I know) a more effective structure, reduces required student time, and seems like this should fit in the current budgets (which are around the $12000/year/pupil averaged over the US).

And, critically, this doesn't force teenagers with delayed circadian rhythms to wake up at 5:45 AM to catch the bus. I'm pretty sure if you changed nothing else and just had high school run from noon to 4PM, you'd have a transformative improvement in outcomes even though the total number of hours would be significantly reduced.

rossnordby··on Effective altruism is not effective
Without touching on the specifics of AI risk, it's worth noting that any approach which takes into account the marginal value of additional dollars towards a cause and 'room for funding' will tend to lean towards things outside of the charitable Overton window.

The 'obvious' cause areas are often already attended to, by virtue of being obvious. Picking the low hanging fruit means more money towards the same causes will tend to become less effective per dollar.

People aren't that great about planning for, or responding to, black swans. By nature, they're something people don't tend to think about. Existential risks are black swans dialed up to 11 in both magnitude of effect and in weirdness, so it's not surprising when they end up underfunded.

rossnordby··on Nuclear should be considered part of clean energy standard, White House says
The most prominent example I'm aware of is the one I linked earlier in the thread: https://news.ycombinator.com/item?id=26674988

It's still not going to be ready tomorrow, but it doesn't require building the eighth wonder of the world.

Page 1 of 3Next →