HN user

Laremere

3,264 karma
Posts9
Comments394
View on HN

SpaceX has gotten reduced cost engineering since its inception, due to telling their employees that the entire purpose of SpaceX is to put humans on Mars. Everything was about making money while developing the technology to do, and then using that money to achieve that goal. Going public in this way fundamentally creates a conflict there. Given that Musk has already used SpaceX to bail out his Twitter acquisition, it feels like both investors and hopeful engineers are going to lose.

Zig Zen Update 2 months ago

Several things:

* There are many useful ways to handle it properly, and your choice depends on your program's constraints. The very small amount of friction (once you're used to it) encourages you to consider what ways to handle it are viable, such as allocating all memory at startup.

* If your strategy is to crash immediately, there is very little additional friction but you get the benefit of it being obvious in your code that this is the case.

* There are environments where memory allocation fails immediately, including if you turn off over-commit on Linux. If your hardware is dedicated to running a high reliability system, configuring it in this way is reasonable.

* Memory is not the only resource. Indeed, removing the special call out is what changed here. That different resources are handled with the same mechanism (errors, instead of eg returning null from malloc) is good.

To add to this excellent explanation: Rockets have a fundamental problem. They need to go absurdly fast. If you have a rocket that can reach speed X, to go faster than X you need to reach X but also have fuel left over. However to get that fuel to speed X, you need even more fuel. This is the tyranny of the rocket equation.

Roughly put, the rocket equation is: change in speed = (engine efficiency) * log(mass of the rocket with fuel / mass of the rocket without fuel). So there's limited parameters to play with:

- The speed you need to reach is fixed.

- You can change the weight of the payload. Payload (eg, satellite) designers try to make things as light as possible, rocket designers try to give as much capacity as possible, and everyone prays they can meet in the middle.

- You want as little propellant as possible for cost and practicality, but mostly the other parameters fix how much you need. If the other parameters aren't good enough, you can easily get results like needing a rocket the size of Central Park. [1]

- You can make the engine more efficient. This means running it hotter with higher pressure, pushing the limits of material science. [2]

- You can make the non-payload static parts of the rocket lighter. This means removing structural integrity. It also means making the lightest parts to complete hard tasks like being a valve for cryogenically cooled, literally the smallest element, hydrogen.

Both the engine and non-payload static mass are essentially asking the question "How far can I push this without it breaking". Get your answer to that question even slightly wrong on any of the thousands parts in a rocket, and suddenly all of the fuel that you're using to go in one direction fast decide that you should instead go in every direction fast.

[1] https://what-if.xkcd.com/24/

[2] Or not using chemical propulsion. However things like ion engines don't have enough thrust to get through the atmosphere and into orbit, and things like nuclear propulsion spew fallout everywhere.

It is supposed to tilt away from the launch tower immediately, you can see this on previous flights. This keeps the engine plume away from the chopsticks and top of the launch tower.

Summary from my watch:

- Launch roughly on time, after a scrub yesterday. (Sounds like the scrub was due to ground equipment, most notably the water system.)

- Initial ascent was good, but then one engine on the booster went out.

- Relight of the booster's engines after stage separation for the boost back burn failed. Engines did light again for a landing burn, but seems to have hit the water harder than expected and was very off target.

- Starship lost one engine shortly after stage sep. Turned into an unintentional test of engine out capability. It made it to space.

- Some weird motion and lots of off-gassing after engine cut-off, with uncertainty about if it actually got a good orbital(ish) insertion. Seems to have been benign, with the motion being a weird slow flip to the orientation for payload deployment.

- Test deployment of dummy payloads was successful, including a couple with cameras to look back at Starship.

- An in space engine relight test was skipped, presumably due to the issues during launch.

- Re-entry to over the Indian Ocean seemed to go really well. Nothing obviously burning or falling off. The amazing views of the plasma during re-entry, something never seen live before starship, are now routine.

- Starship did a maneuver to simulate how they'll have to go out over the gulf and back to the landing site.

- Nailed the target, evidenced by views from drones and buoys. Soft landing before falling over and giving us a big (expected) boom.

As far as overall progress from previous test flights goes, they're at least treading water while making many large changes. I think they were hoping to try for a tower catch and actually going orbital for next flight, but I highly doubt that now. The boostback burn failing was the largest failure, with the engine failure on Starship being a close second. Good performance despite engine out seems to be an unintentional success.

The Witness is, in my opinion, simply one of the best games ever made. There are many layers to the game, and moments of insight that the game leads you to, but also trusts for you to make the final connections.

However, I do understand why some consider it a slog. There are many puzzles in the game that people will dislike, indeed many puzzles that I disliked. It seems Jon prioritized finding all of the interesting things that they could say about the puzzles in the game over making sure that all of the puzzles were actually enjoyable to a majority of people. My advice is if you don't like an area, just go somewhere else. You don't need to complete every area to roll credits.

It also may be a matter of expectations. Puzzle games tend to be on the shorter side, but The Witness is lengthy. So jumping in expecting to finish in an afternoon is a way to set yourself up for frustration.

New Glenn Update 8 months ago

I agree, though I think the real winner here is the customers. The New Glenn 9x4 has a higher targeted payload capacity that an expended Falcon Heavy. Mission design takes years, and payload mass is the most important constraining factor. So it'd now be fairly reasonable approach to start building now for 9x4's constraints, and then fly on it or Starship depending on readiness and price. If customers start doing this now, that also means a quicker pickup on using the increased launch capability.

On a funnier note, the 9 in Falcon 9 is the number of engines. So blue origin is somewhat picking up on their naming scheme. Or, by BO's scheme, it'd be the Falcon 9x1, or the Starship 33x6.

No law in relation to pennies has changed. The executive branch has simply took the law stating the mint should create as many pennies as necessary, and decided that the necessary amount is 0.

The practicalities of their illegality then comes down to enforcement. Given the current executive branch's behavior related to enforcement of laws, that can mean anything from "melt them all down", to "don't do it", to "if our friends start doing it, it'll be legal, if our enemies start doing it, we'll enforce".

I've managed to visualize a Klein bottle in 4d. I easily visualize 3d objects. However I can't really do color - I startled myself recently when I briefly saw red. On that aphantasia test with an apple, I can hold it's 3d shape, but no surface texture or color.

People seem to have surprisingly different internal experiences. I don't know how common 4d visualization is, and I suspect even those capable require exposure to the concepts and practice. However I do think it possible.

1. It still took nearly 7 years to after JFK's speech in the 60s.

2. The institutional knowledge of working directly on the Apollo program has largely been lost in the US, and certainly isn't present in China.

Those are the unimportant pieces. The real reason is:

3. The US was actively at war with Russia. While it was a cold war (except for the proxy wars), the Apollo program had a wartime budget (spent nearly half a trillion in today's dollars), and a wartime risk tolerance (Neil Armstrong thought they had a 10% chance of not making it back).

Payload capacities to trans-lunar injection (source wikipedia):

SLS Block 1: >27,000 kg (59,500 lb)

SLS Block 1B: 42,000 kg (92,500 lb)

SlS Block 2: >46,000 kg (101,400 lb)

Vulcan Centaur: 12,100 kg (26,700 lb)

New Glenn: 7,000 kg (15,000 lb)

Orion crew module by itself weighs 10,400 kg (22,900 lb), the service module is 15,461 kg (34,085 lb).

Orion is a heavy spacecraft. SLS, like or not (I don't), it has a lot of lift. Unless you're sticking an Orion inside of a Starship (lol), Orion basically dies with SLS.

SpaceX's lander bid was in large part so competitive because they were already planning on developing 90% of the technology anyways. Low earth orbit service was developed for NASA, but has found other paying customers. The moon has to have more people who would be interested in paying. Also the moon remains a good stepping stone for technological development for getting people to Mars, the stated main goal of the company. Also it's almost certainly not happening in the next few years anyways so they may only need to wait for the next administration.

Because most open source projects don't attract anywhere near those levels of donations.

It's not unheard of. Eg, Blender earns $261,360/month. (https://fund.blender.org/) Companies should more eagerly support open source projects they rely on with funding. It keeps their dependencies competitive with much more expensive commercial products, and a broad base of donations prevents a project from being dominated by specific large corporate interests which might run counter to their average user.

It's not an optimization. What gets evaluated via the lazy evaluation is well defined. Control flow which has a value defined at comptime will only evaluate the path taken. In the op example, the block is evaluated twice, once for each enum value, and the inner switch is followed at comptime so only one prong is evaluated.

The computer is a machine, and modern ones are complicated. When I am programming, I want to precisely control that machine. For me, simplicity is measured in how complicated it is to get the machine to do what I want it to do. So, eg, having several different operators for adding two integers sounds complicated. However there is simplicity in not having to reach far to actually get the correct behavior, and there is some simplicity in the process of being forced to make that choice as it irons about what behavior you actually want.

The lack of including the before photo in the article says something. There was clearly real, albeit minor, damage done.

The fees seem high for such a small blemish. Automated rule enforcing systems are very frustrating to hit. They usually enforce good rules, but overly strictly and often trend into gotchas that are intentionally exploitive. (Eg, red light cameras that have reduced yellow light times.) I doubt the savings of those fees being put into renters who do leave damage marks will be passed on to those who don't.

It isn't. Consoles at this stage are general purpose computers with hardware and software explicitly designed to prevent consumers using it as such. If consumer rights had any real teeth, any hardware device would be required to allow their owners to install any piece of software of their choosing, including replacing the operating system.

I'd say it's better to call it a unit of counting.

If I have a bin of apples, and I say it's 5 apples wide, and 4 apples tall, then you'd say I have 20 apples, not 20 apples squared.

It's common to specify a length by a count of items passed along that length. Eg, a city block is a ~square on the ground bounded by roads. Yet if you're traveling in a city, you might say "I walked 5 blocks." This is a linguistic shortcut, skipping implied information. If you're trying to talk about both in a unclear context, additional words to clarify are required to sufficiently convey the information, that's just how language words.

I've been playing and enjoying this game since it was first posted on hn. Doing this is absolutely key to getting a good score. Eg, for the final answer in today's puzzle, I had the outer answer, and had to work backward 3-4 layers. The other good thing to do is, if you have an answer to work forward a couple layers. Once you know that an answer makes the next couple questions make sense, you're much less likely to give an incorrect guess.

The Apollo program had a wartime budget and a wartime risk tolerance.

The US and Russia were at war, though they did not directly engage with each other due to the threat of mutual nuclear destruction. Along with various proxy wars, technological dominance in space was a key factor in this war. If one side gained enough advantage, they could potentially leverage it into using it to win a direct war. Another factor is that Kennedy's assassination protected the program from political pressure within the US.

Since then, other factors have turned the attention of the space program: The USSR fell apart and didn't pose much of a threat, reducing the budget to a fraction of the size. The Space Shuttle was designed to be the next big thing in space, as a reusable launch vehicle; it could only do low earth orbit and fell short of its goals. Focus shifted to science, and a lot of good science could be performed in low earth orbit; This has lead to, for example, the significant achievement of a continuous human presence in space since the year 2000. Finally, the accepted risk for Apollo was several times what is acceptable today. Even if we had all of the old hardware on the launchpad ready to go for another mission, NASA would never put an astronaut on it.

Methane flare. Liquid methane will turn to gas as it warms up, so they need to get rid of it somehow. Nitrogen and oxygen they can just vent. Generally methane is flared to prevent explosive gas buildup and (the worst of) greenhouse gas effects. Sometimes it's cooled back into a liquid, but that is apparently more effort than it's worth because flaring seems common practice.

Edit: just remembered the second stage is hydrogen. So it might be flaring that, or maybe the smaller flare off to the side is hydrogen.

Well, Starship is specifically designed to make it to Mars if refueled in LEO. So it could deliver monstrously large Mars rovers. If they're going for the outer planets, they could do as you suggest after the first burn using a refueled Starship. Either way you're sacrificing a Starship second stage (old, or better yet reduced mass version) to the gods of delta V.

In addition to what others are saying, US law requires new cars to have back up cameras and the related screen. So everything else immediately becomes "so we add it to the screen we already have to have, or add a new physical control?"

On another note, I do like my (getting older) Mazda's screen. It has touch, but I honestly forget it does because the control knob is so much better for use while driving. Nice and tactile. Additionally all of the important controls have physical buttons. Only major problem I have with it is that if it can't connect to Bluetooth (which is stupidly often), it decides to switch back to radio, blasting that at me. Then I have to sit there going through multiple menus to get Bluetooth reconnected.

Zig is even better:

1. u8 and i8 are 8 bits.

2. u16 and i16 are 16 bits.

3. u32 and i32 are 32 bits.

4. u64 and i64 are 64 bits.

5. Arithmetic is an explicit choice. '+' overflowing is illegal behavior (will crash in debug and releasesafe), '+%' is 2's compliment wrapping, and '+|' is saturating arithmetic. Edit: forgot to mention @addWithOverflow(), which provides a tuple of the original type and a u1; there's also std.math.add(), which returns an error on overflow.

6. f16, f32, f64, f80, and f128 are the respective but length IEEE floating point types.

The question of the length of a byte doesn't even matter. If someone wants to compile to machine whose bytes are 12 bits, just use u12 and i12.

Wasm makes no distinction between signed and unsigned integers as variables, only calling them integers. The relevant operations are split between signed and unsigned.

https://webassembly.github.io/spec/core/appendix/index-instr...

See how there's only i32.load and i32.eq, but there's i32.lt_u and i32.lt_s. Loading bits from memory or comparing them is the same operation bit for bit for each of signed and unsigned. However, less than requires knowing the desired signess, and is split between signed and unsigned.

Wasm has a great benefits over those technologies:

- Wasm has verification specification that wasm bytecode must comply to. This verified subset makes security exploits seen in those older technologies outright impossible. Attacks based around misbehaving hardware like heartbleed or rowhammer might still be possible, but you, eg, can't reference memory outside of your wasm's memory by tricking the VM to interpret a number you have as a pointer to memory that doesn't belong to you.

- Wasm bytecode is trivial (as it gets) to turn into machine code. So implementations can be smaller and faster than using a VM.

- Wasm isn't owned by a specific company, and has an open and well written specification anyone can use.

- It has been adopted as a web standard, so no browser extensions are required.

As for computation on clients versus serves, that's already true for Javascript. More true in fact, since wasm code can be efficient in ways that are impossible for Javascript.