17,548 karma · joined March 21, 2008
Nothing I say here is in any way representative of the views of my employer nor anyone else with whom I am affiliated.
My email is sera.brocious@gmail.com; feel free to contact me about anything, just include 'HN' in the subject, please.
I'm on HN Office Hours: http://hnofficehours.com/profile/daeken/
[ my public key: https://keybase.io/daeken; my proof: https://keybase.io/daeken/sigs/ci5oPW51-MaGySslf5iDROl1JIBimpAG596tsLH0Qi4 ]
But the counterweight issues, extreme G forces during spin-up, etc make it kind of a non-starter in my mind for other bodies; I'd love to hear arguments for it vs simple mass drivers off Earth.
Can't say I have insurance adjusters on my FYP, but I think that speaks to the power of the algorithm's targeting far more than it does the lack of content.
The code is simple and hacky as hell -- very much an experiment -- but I still think that it is a plausible route forward. https://github.com/daeken/AjaPrint
It was a tiny percentage of the overall staff; I traveled to the Toronto office to work with some of the graphics devs (the area I primarily worked in) and the floor we were on easily had 200 people in that one -- relatively small -- location.
B2G/FFOS gets a lot of well-deserved hate -- I quit after a year -- but its impact has been wildly blown out of proportion.
The higher an orbit is, the slower you're going at apogee. If you're doing a large plane change, going even slower will save you a *ton* of delta-V, so you can transfer up to a much higher orbit, plane change at apogee, and then transfer down to your desired final orbit.
That's by far the most useful place for bielliptic transfers, not just going from one orbit to another on the same plane.
Happy to explain the math in more detail, but the code is -- I think -- pretty self-explanatory.
Edit to add: this function doesn't calculate the initial lift to the higher orbit; that'd be the difference between the speed of your circular orbit and the perigee speed at the higher orbit.
The idea that this costs them nothing is, well, garbage. It costs time and energy, of which many have a very limited supply. What might take you 5 minutes might take another an hour and leave them utterly drained.
We're orders of magnitudes out (qubit-wise, on real quantum computers) from breaking RSA or ECC in practice, and the difficulty level is on the same order for both.
(I don't consider myself a compiler expert by any means, but I've been doing it for nearly 20 years, so I feel relatively safe weighing in here.)
In short, if you were compiling a function like that for bare metal (or anything relatively like it), there would be no one function that takes in all of those types and acts on them. Instead, you would compile that function once for each combination of incoming types. The version that only takes the number 4 would not have any inputs at all and may end up entirely constant (depending on what it does, of course). It's then up to the caller to make sure the right variant is called. If you have strong types up the chain, this is easy and completely overhead-free -- they'll be compiled in their different versions, too. If you have a weaker type constraint (e.g. just any Number, rather than THE Number 4), then you'd do conditional dispatching at the call site.
For what it's worth, this is essentially how templates work in C++. It's also why compilation can take so damn long and can produce gigantic binaries, because when you have a function with 2 inputs of 4 different potential types each, you're up to 16 variants. Change that to 5 inputs of 4 different types and you're at 625 variants.
All that said, static compilation of TypeScript in its current form would be very difficult to make efficient, simply because JavaScript types in the abstract don't map nicely to hardware; Arrays can be extremely simple and linear or ungodly complex with holes and property overrides, and the 'right' thing to do with a Number is often different from the fast thing to do. That's why JITs are so valuable; they allow you to get around the ambiguity.
Edit to add: I should mention, it's possible you won't actually generate all combinations. You might know that certain combinations are impossible to hit due to other type constraints, or you might just know that they're unused (which leads to problems when you don't have the original function definitions to turn to; that's why C++ templates have to be in headers (I think that's true, at least? I might be wrong on that; I just use the magic, I don't understand it)).
It would be different if he came out now and said "here are the things I said then, here's why I said them, and here are the reasons those were problematic and wrong; I no longer align myself with those views." But instead, he dug in his heels saying that this comes down to suppressing scientific inquiry for ... not buying into eugenics.
Edit: To be clear, this isn't a good reason to go out and buy a gun. We already know that the help isn't coming, which is why the police should focus on real crimes.
ETA:
> I'm simply not going to go firebomb it because I don't like it. There are plenty of things I really don't like. Do I firebomb them because I don't like them? Nope, I choose not to firebomb them. Because that's not something responsible citizens do, at least in my worldview.
I'm very, very glad that you and I have a voice in our communities/countries and don't need to resort to violence to get our message across. I'm not glad that the reason you and I have a voice and the people rioting in MN right now do not, is because we benefit from state violence and they are on the receiving end of it.
People are rioting because they see this as the only way forward, not because they want a new TV. They may get that TV in the process, but it's not the motivation.
Target is complicit in this systemic disease; I have zero sympathy for them.
https://en.wikipedia.org/wiki/Civil_Disobedience_(Thoreau)
"[i]t is not desirable to cultivate a respect for the law, so much as for the right. The only obligation which I have a right to assume is to do at any time what I think right.... Law never made men a whit more just; and, by means of their respect for it, even the well-disposed are daily made the agents of injustice."
ETA:
> Edit2: there is a world of difference between reasonable civil disobedience and firebombing your local Target.
What is "reasonable civil disobedience"? If that Target is only in the neighborhood because it's an experimental LP store put in an incredibly impoverished area so that they can develop better techniques for putting people of color in prison, is it suddenly reasonable? https://twitter.com/IanColdwater/status/1265867904844693505
Who are we to make that call, in either direction?
A police station was burned today.
https://www.nbcnews.com/news/us-news/protests-looting-erupt-...
https://www.cnn.com/us/live-news/george-floyd-protest-update...
https://news.ycombinator.com/newsguidelines.html "Please don't comment about the voting on comments. It never does any good, and it makes boring reading."
I understand what you're going for, but this is a bad approach. People aren't rioting because they want to destroy things, they're rioting because they don't feel like they're being heard. What you're saying here reads as "don't listen to them, they don't represent us" which is ... exactly the point.
We need to collectively shut the hell up for 5 minutes and just listen. Maybe if we actually did that, these riots wouldn't be happening.