HN user

andrewg

103 karma

https://www.flightscience.ai

Posts3
Comments23
View on HN

Early in my career I wrote Smalltalk in a GUI-based environment (VisualWorks/GemStone), with the browser, debugger, transcript, etc. It was an incredible experience.

Later, I used Common Lisp with SLIME and had a very similar experience, at least as productive, except that I was using my preferred IDE (Emacs) and saved the code to normal files so I could use more common tools like grep, SVN/Git, etc. I still built code into an image, which I could update live via the REPL.

I haven't used GNU Smalltalk personally, but I do like the idea of a Smalltalk that's less of an island, particularly if that makes it more palatable to a new generation of programmers.

Yes indeed - it's actually pretty nice. You just define a message for your configuration schema:

  message Config {
    repeated Server server = 1;
  }

  message Server {
    string address = 1;
    int32 port = 2;
    bool standby = 3;
  }
And then you use the text representation in a config file:
  # main instance
  server { address: "127.0.0.1" port: 4567 }
  # backup instance
  server { address: "127.0.0.1" port: 9876 standby: true }
And load it into a message instance:
  Config config;
  google::protobuf::TextFormat::ParseFromString(input, &config);

C++17 does - it's called std::variant.

  std::variant<int, bool, double> options;
  options = true;
  
  bool value = std::get<bool>(options);
  bool has_bool = std::holds_alternative<bool>(options);
  
  // or test which alternative is held
  if (auto i = std::get_if<int>(&options)) {
    // do something with int
  } else if (auto b = std::get_if<bool>(&options)) {
    // do something with bool
  } else {
    // do something with double
  }

Oh brother. People aren't work-producing robots, developers included. Different types of people bring different types of experiences, opinions, and viewpoints. So you'll make better products if you have a more diverse group of people making them. On a personal level, wouldn't you like to work with a more diverse group of people as well?

This would be impractical for really large monorepos like the ones Google and Microsoft have. They have virtual file system layers on top (MS open sourced theirs) to prevent checking out the whole repo.

In fact, it’s not just useful for the CI/CD pipeline - any developers making significant changes to base libraries or core infrastructure should be able to use the VFS in combination with a system like Bazel to run all (or a significant sample of) affected tests across the company.

There are certainly incredible situations with happy endings where ATC has made suggestions or gotten someone with experience in a type on the radio.

But I could imagine a company contemplating building the remote-pilot-for-emergencies service might be scared off by potential liability. Families of pilots killed in GA accidents routinely sue aircraft and engine manufacturers even when the FAA determines the cause to be pilot error.

Autoland, as used in a capable airliner, is much more limited than this. For an airliner, it's a procedure with lots of configuration and monitoring done by a pilot, in cooperation with air traffic control, which usually concludes with descent on a 3-degree or so path through touchdown and braking. Not to mention things like flaps and landing gear are still usually manually selected.

This is much more impressive, not the least of which because the system itself figures out the best place to land (taking into account operational constraints), how to get there (taking into account weather avoidance), and how to be at the right speed, altitude, configuration, etc. to perform the final approach to landing.

So to use your analogy, getting a bit closer to a self-driving car than just self parking!