HN user

slowking2

56 karma
Posts0
Comments33
View on HN
No posts found.

It’s not the same thing. He is allowed to give them away and is doing so. If Mora is in breach of contract, maybe a better remedy for the distributor would be monetary damages but that is not obvious.

There’s an interesting question of if the distributor misrepresented the deal to Mora as he claims, but from the summary it appears nothing related to that is recorded that the court finds legally relevant.

Why would you use a PPO? The average SWE can be on an HMO. HMO's are fine. I have never once regretted choosing an HMO.

Additionally, you're using the average software engineer salary in the US but then picking California for rent. The article you linked says country wide you'd expect $1950 for renting a 1-bedroom not the $2500 number you are picking for a studio in the bay area.

So you're off by something like $1000 per month (edit: I admit I am simply looking at what I pay for HMO, it's possible that is somehow unrepresentative but I doubt it) by picking the most expensive health plan and mixing up national salaries vs very expensive areas.

The gun violence risk is vastly overblown. The page you are linking to cites a study where gun deaths are being accumulated for ages 1 to 24 years old. Gun deaths are highly non-random and concentrated in older ages and in very specific areas (largely related to gang activity). The average software engineer with family is not going to run into any of that unless they are in the habit of leaving loaded weapons around the house.

This doesn't have that much to do with the genetic heritability of intelligence, which is a measurement in proportion to environmental variability. Civilizations with farming, metallurgy, etc. showed up independently in many places although at highly varying times due to human dispersal. You can also see that intelligence isn't all its cracked up to be from an evolutionary point of view since it sometimes goes down. Has it gone up in most places over the last few thousand or ten thousand years overall. I think so, read the recent Reich paper (EDIT: this Reich https://reich.hms.harvard.edu/publications). But it doesn't only go up all the time.

Disease factors were probably the biggest factor in selection until very recently (and maybe now is just a temporary blip before a return to the historical pattern). Disease almost wiped out the Native Americans and strongly held sub-Saharan Africa back.

Although it's possible for someone with type 1 to have an A1C below 6%, it's very difficult. I've known a few people like that, and they are all super users. It's also going to depend somewhat on the lab running the A1C test, personal biology (A1c is not only affected by blood glucose levels) etc. 6-6.5% is superb control! Parent should be very proud. 6.5-7% is still very good, I haven't looked at the distribution of A1c's for T1D recently, but that would be much better than median which I think is above 8%.

Especially with kids, it's difficult since you don't control how much they decide to eat making pre-bolusing meals challenging (part of why reducing carbs tends to be helpful for people is it reduces the need to pre-bolus and makes it less risky since you need less up front meal insulin).

You can die on the order of hours to days not of high blood sugar per se, but of the low insulin causing diabetic ketoacidosis parent comment mentions.

It would be odd for a faulty sensor to cause an otherwise bad day into dka and death though. The sensor would need to be wildly off for hours and the user to not notice. Insulin delivery would need to be paused or greatly reduced for many hours. There are additional therapies like SGLT-2 that could make this more likely but they usually aren’t used with T1D precisely because they break the normally very strong correlation between inadequate insulin levels (leading to dka) and high blood glucose.

Even though I can’t think of an easy way for a false low(s) to turn into lethal DKA, that doesn’t mean it didn’t happen. Abbott sells a lot of CGMs. It could have been a contributing factor to several deaths even if the fault would almost always not be a significant issue.

My experience has been there is no correlation between skill at teaching and skill at research; maybe the two are even anti-correlated. To some extent, this is an artifact of the selection process for professors, but I think it's partly because there's a real tradeoff between spending effort on research vs teaching.

In some cases, an excellent researcher even has cogent papers but is absolutely abysmal at lecturing and in person teaching skills.

Peers are very important, but from talking to others, it's harder to know where you will get good peers than you would think. Even 1st tier universities will have majors dominated by students whose primary interest is in maximum grades with minimum work and where cheating is rampant. You've got to either get lucky (I did) or put in some leg work to find smart students who are actually interested in learning and doing things right.

I think how much rote memorization is encouraged or required is strongly dependent on the field. Pre-med students will sometimes memorize their way through calculus; a professor I knew once described it as "grimly impressive".

Making invalid states unrepresentable may be a great idea or terrible idea depending on what you are doing. My experience is all in scientific simulation, data analysis, and embedded software in medical devices.

For scientific simulations, I almost always want invalid state to immediately result in a program crash. Invalid state is usually due to a bug. And invalid state is often the type of bug which may invalidate any conclusions you'd want to draw from the simulation.

For data analysis, things are looser. I'll split data up into data which is successfully cleaned to where invalid state is unrepresentable and dirty data which I then inspect manually to see if I am wrong about what is "invalid" or if I'm missing a cleaning step.

I don't write embedded software (although I've written control algorithms to be deployed on it and have been involved in testing that the design and implementation are equivalent), but while you can't exactly make every invalid state unrepresentable you definitely don't punch giant holes in your state machine. A good design has clean state machines, never has an uncovered case, and should pretty much only reach a failure state due to outside physical events or hardware failure. Even then, if possible the software should be able to provide information to intervene to fix certain physical issues. I've seen devices RMA's where the root cause was the FPU failed; when your software detects the sort of error that might be hardware failure, sometimes the best you can do is bail out very carefully. But you want to make these unknown failures be a once per thousands or millions of device years event.

Sean is writing mostly about distributed systems where it sounds like it's not a big deal if certain things are wrong or there's not a single well defined problem being solved. That's very different than the domains I'm used to, so the correct engineering in that situation may more often be to allow invalid state. (EDIT: and it also seems very relevant that there may be multiple live systems updated independently so you can't just force upgrade everything at once. You have to handle more software incompatibilities gracefully.)

I knew some who were bad at math. Asian immigrant test scores on math are ~1/2-1 standard deviation higher than white Americans. That’s noticeable comparing groups of people but still leaves a lot of Asian immigrants who are not good at math.

There is no royal road. If all your kids are biologically yours and you and all your family are good at math and you marry someone from a similar family, you can stack the deck maybe 95/5 in favor or your kid being good at math? But that option is already off the table if you lack that talent. And there are other things you should probably prioritize first!

Fair point! That's a great technical success; I didn't realize Arm was British.

If the main failure of British companies is that they don't have U.S. company market caps, it seems more off base to blame this on government science funding policy instead of something else. In almost every part of the economy, U.S. companies are going to be larger.

Also, being far enough from Europe that a huge amount of talent decided the U.S. was a better bet for getting away from the Nazis. And then taking a large number of former Nazi scientist's post-war as well.

The article mentions but underrates the fact that post-war the British shot themselves in the foot economically.

As far as I'm aware, the article is kind of wrong that there wasn't a successful British computing industry post war, or at least it's not obvious that it's eventual failure has much to do with differences in basic research structure. There was a successful British computing industry at first, and it failed a few decades later.

That's a hard one because it depends on what sort of details you let into types and maybe even on the specific type T. Not saying what I'm asking for is easy! Units and shape would be preserved in all cases I can think of. But with subranges (x - x) may have a super-type of x... or if the type system is very clever the type of (x - x) maybe be narrowed to a value :p

And then there's a subtlety where units might be preserved, but x may be "absolute" where as (x - x) is relative and you can do operations with relative units you can't with absolute units and vice versa. Like the difference between x being a position on a map and delta_x being movement from a position. You can subtract two positions on a map in a standard mathematical sense but not add them.

I'd be happy for just ranges on floats being quick and easy to specify even if the checking is at runtime (which it seems like it almost will have to be). I can imagine how to attach precision error/metadata when I need it with custom types as long as operator overloading is supported. I think similarly for specialized matrices, normal user defined types and operator overloading gets tolerably far. Although I can understand how different languages may be better or worse at it. Multiple dispatch might be more convenient than single dispatch, operator overloading is way more convenient than not having operator overloading, etc.

A lot of my frustration it is that the ergonomics of these things tend to be not great even when they are available. Or the different pieces (units, shape checking, ranges) don't necessarily compose together easily because they end up as 3 separate libraries or something.

At work, I find type hints useful as basically enforced documentation and as a weak sort of test, but few type systems offer decent basic support for the sort of things you would need to do type driven programming in scientific/numerical work. Things like making sure matrices have compatible dimensions, handling units, and constraining the range of a numerical variable would be a solid minimum.

I've read that F# has units, Ada and Pascal have ranges as types (my understanding is these are runtime enforced mostly), Rust will land const generics that might be useful for matrix type stuff some time soon. Does any language support all 3 of these things well together? Do you basically need fully dependent types for this?

Obviously, with discipline you can work to enforce all these things at runtime, but I'd like it if there was a language that made all 3 of these things straightforward.

I use both DuckDB and SQLite at work. SQLite is better when the database gets lots of little writes, when the database is going to be stored long term as the primary source of truth, when you don't need to do lots of complicated analytical queries etc. Very useful for storing both real and simulated data long term.

DuckDB is much nicer in terms of types, built in functions, and syntax extensions for analytical queries and also happens to be faster for big analytical queries although most of our data is small enough that it doesn't make a big difference over SQLite (although it still is a big improvement over using Pandas even for small data). DuckDB only just released versions with backwards compatible data storage though, so we don't yet use it as a source of truth. DuckDB has really improved in general over the last couple years as well and finally hit 1.0 3 months ago. So depending what version you tried it out on tiny data, it may be better now. It's also possible to use DuckDB to read and write from SQLite if you're concerned about interop and long term storage although I haven't done that myself so don't know what the rough edges are.

Agreed. I work in medical device engineering, and >50% of our time relates to simulation in some way. A big part of our responsibilities is designing, implementing, or reimplementing models of various subsystems relevant to our devices so we can do preliminary estimates of safety or efficacy. Analyzing real world outcomes is also important, although I haven't been at the company long enough yet for that to catch up with simulation in terms of how much time we spend on it.

I'd say the closest description to us in the article is the practical research team. We have fairly clear business goals we are fulfilling with our work.

Jupyter notebooks can be executed roughly like scripts by papermill. You can also save a .py version of the notebook without outputs using jupytext. We use these packages together where I work to basically auto-generate the start of notebooks for exploratory work after certain batch jobs. For dashboards only used by a small number of users, we’ve found voila occasionally useful. Voila turns notebooks into dashboards or web apps basically.

You generally shouldn’t put code you want to reuse in notebooks, but we haven’t found this to be much of a problem. And >3/4 of the people who’ve worked on our team don’t have software engineering backgrounds. If you set clear expectations, you can avoid the really bad tar pits even if most of your co-workers are (non-software) engineers or scientists 0-3 years out of college.

Barring it being a joke, the first question is unhelpful and likely a jerk move. Everyone makes mistakes sometimes.

The second question seems like the type of feedback that would usually be fine. People's skills and knowledge don't always overlap. What is crazy complex for A may not be for B and what is crazy complex for B may not be for A! And that doesn't have to have anything do with A or B being smarter. A might not know SQL and B might not know pandas. But sometimes it really does make sense to move some code from SQL to pandas or vice-versa (assume for the moment that both SQL and pandas are already in the tech stack). Some people find it simple to write in object oriented style and others in a functional style. What makes more sense to do is not always obvious. So the question could be a good one. If the suggestion is bad, explain why it's bad. If the suggestion is good, maybe consider if it's worth doing at current point. If it's somewhere in the middle or there's no time, acknowledge and move on.

Same here, interacting with people makes my performance on all sorts of mental tasks drop much faster. 5-6 hours of meetings, and worst case I don't want to do anything else, best case I still need to go for a walk and another 30 minutes on top of that before I'm back to average coding skill.

On the flip side, even for coding I don't love, I can usually grind out 9-10 hours at fairly high productivity; I usually won't because I have other priorities to balance but I can. If I find what I'm working on really interesting, I can do 12 hours at high productivity.

For work, I try to have 2 days a week where I put most of my meetings so that hopefully at least 1 or 2 days of the rest are high productivity.

The link you posted says that the original rat park researcher's own graduate student was unable to replicate the original experiment when he tried reducing the confounds. That seems like the most favorable possible situation for a replication to me. It also says that one confound was that morphine consumption wasn't measured in the same way between conditions in the original experiment. That seems pretty bad to me. Linked article also mentions that other researchers have had trouble replicating the results fully.

Rat park doesn't consistently apply to rats, so why should its results be considered particularly informative about humans?

Has someone done a much better study on rats since then? Significantly larger N, always taking measurements the same way across conditions, genetics carefully controlled or at least measured? I'm not an animal behavior researcher, so I'm sure there could be other things important to handle.

Rats are certainly more similar to humans that flies are, but that doesn't mean any particular study is informative about humans.

Dose dependence is still a thing for long term exposure. There’s a lot of crap in urine. Knowing someone is pissing something doesn’t mean it’s toxic. We already know they’re exposed because they eat it. There is very little new information gained just by knowing people urinate it. You’d need to know how much of it they urinate compared to the amount they are exposed to and for how long to start figuring out if there is a long term build up. And even if there was no long term build up it may or may not be long term toxic. Like drinking alcohol. There is no long term build up of ethanol in the body but long term consumption of enough alcohol is still dangerous.

Alcohol has cumulative effects too. The long term effects are still dose dependent. My point is you can’t just eyeball it by being like “well that guy bullshitted then refused to drink it”. You need to do a bunch of hard work taking measurements. You know it’s not super toxic as typically used or huge swathes of people would be keeling over dead. But it could be long term toxic at the doses a farmer or landscaper is exposed too. It could have small absolute effects on everyone that could be detected in mass population statistics although that’s much much harder to untangle.

Safer depends how much cow manure is eaten vs how much glyphosate.

Although cow manure also has various microorganisms in it so if you got really unlucky with the wrong type of even one of those in the manure a little bit of shit could make you very sick (edit: as you point out, but my point is eating more shit exposes you to more of these on average).

Don’t eat shit or drink 1000x or 1000000x doses of something that’s safe at 1x people.

no idea where glyphosate exposure sits but even if it’s safe at normal exposure, don’t just drink it ok?

The dose makes the poison. It’s possible for a chemical to be perfectly safe if ingested in low quantities but dangerous in extremely high quantities. The duration of exposure for the same dose matters a lot too. Drinking glyphosate could be a much larger acute exposure so it’s perfectly reasonable to say it’s safe as normally used but not want to drink it. For example, you need trace amounts of copper to live, but very large doses can damage the liver. You’d need to take actual measurements to determine at what dose glyphosate becomes dangerous, and compare that to actual use. The whole “I could drink it” thing is just bullshitting, but so is the reverse.

There are parts of Chicago that are really nice, but also parts that are notably worse than the “bad” part of most cities. A lot of the area around UChicago itself was very sketchy compared to any other university area I’ve been to. This was about 5-10 years ago. Maybe it’s improved since although I’d be surprised. It’s not random happenstance that people who have never been are more likely to be afraid of Chicago than New York nowadays.

How safe is Zig? 4 years ago

Python is usually a lot more than a 50% reduction in performance. Sometimes you need better performance but not the best performance.