Hacker Newsnew | past | comments | ask | show | jobs | submit | jesseschalken's commentslogin

It's worth noting that this is the blog of Earthly which is in many ways a Bazel competitor.


I migrated a monorepo including C++, Kotlin, Java, TypeScript and Python to Bazel. It's no small feat, and the DX varies widely across languages and platforms, but it's absolutely worth it. `bazel test //...` from a fresh clone builds & tests everything including gRPC/protobuf code generation, custom code generation, downloading packages, toolchains and linters, dependencies between langs, test suites with coverage across multiple languages.

Integration testing is a breeze through data dependencies. The reproducibility guarantees means we can reference container image SHAs in our Terraform and if the image didn't change the deploy is a no-op.

Bazel is an outstanding build system that handily solves a lot of practical problems in software engineering. Not just "at scale". Practical problems at any scale.


This is the ideal situation. Google already lacks control over all the Chromium forks, like Brave, Opera, Edge and ungoogled-chromium. They accept upstream patches voluntarily, and they can and do reject anything they disagree with. The shadier Google gets the more forks will reject upstream and instead share patches among themselves.

As long as Chromium is open source I don't see what there is to worry about. We literally have the code.

There's a lot to be gained by standardizing on Chromium as well. New features, improvements and optimizations only have to be implemented once instead of thrice, and developers only have to deal with bugs in one implementation instead of the union of bugs in all three.


This is fine; but still it hurts me to think that an open protocol of HTTP[S] and friends is effectively accessed by a single client at core. Yeah it's wrapped with different toppings by different vendors, but deep inside it's one client.

We're going from a world where we had IE, Google, Firefox and Safari as independent projects, we're going towards one with just one.


The industry already has solutions for this in the form of schema and interface definitions that generate glue code for you:

- gRPC, protocol bufffers

- OpenAPI, Swagger, JSON Schema

- Apache Thrift

- Apache Avro

- Cap'n Proto

- IDL, Microsoft IDL, Web IDL

- etc


How is Windows any better? Last I checked installing things in Windows was still a matter of downloading random .exes from the Internet and running them as administrator, so all bets are off.

And there's no sandboxing at runtime either, everything has permission to do whatever the user can do.


The subtext of most of the points in the paragraphs of this post is stuff Windows does that Linux doesn't.


I find it hard to believe that any contemporary operating system can robustly prevent a locally executing program from tricking the average desktop user into entering the administrator password equivalent to TFA's /tmp/sudo example, not on today's average computer.

Once programs are running on the machine with the ability to put things on-screen and read keyboard input, this is a very hard problem without hardware-level SAK-like mechanisms which AFAIK no consumer devices include today.

The updated mnt reform [0] has some potential for this kind of facility with a keyboard-embedded display connected to a standalone EC and a dedicated button on the keyboard for notifying the EC without the host's involvement. This should enable an actual SAK-like mechanism, where the EC takes over the keyboard for security-sensitive actions like password entry:

  > The keyboard not only works as a USB HID device, but it also has a direct UART
  > cable connection to the system controller on the motherboard. By pressing the
  > circle key, you can interact directly with the system controller, bypassing
  > the main SoC. To give you visual feedback for this interaction, we added a
  > tiny 128 x 32 pixel OLED on top of the keyboard. From here, you can check
  > charger and battery cell status/health without any operating system support on
  > the main SoC (even while you’re still installing an OS). The keyboard OLED and
  > direct interaction mechanism has more potential future uses, like a password
  > manager/wallet or notification display.

It's a non-trivial problem even with hardware assistance, without any it seems impossible.

[0] https://www.crowdsupply.com/mnt/reform


> I find it hard to believe that any contemporary operating system can robustly prevent a locally executing program from tricking the average desktop user into entering the administrator password equivalent to TFA's /tmp/sudo example, not on today's average computer.

Qubes OS can. Though it's not for the average users.


It's more that it makes said sudo much less effective. You still can get tricked inside the VM or a canny enough attacker will find a bypass for VM security.

It is a somewhat higher bar though.

The point is moot, as the most destructive attacks are ransomware, which this limits but does not prevent, website ID (login, address, credit card) and data theft, phishing and scams. None of which is prevented by Qubes.

Evil maid attacks are frustrated though if you install its extra security features.

However, it is wise to remember that security is as strong as the weakest link, so do use it if you're an admin or dev.


> The point is moot, as the most destructive attacks are ransomware, which this limits but does not prevent

Qubes OS assumes (promotes and helps with) that you do not open random links inside your banking or important VM. You can even open links automatically in a disposable VM upon a mouse click. It should help here I guess.

> bypass for VM security

VT-d virtualization was broken only once by a software attack. An it was done by the Qubes founder.


Unfortunately in reality Windows doesn’t do much better. For instance the author likes to harp on about the insecurity of X11 while on Windows GUI programs have rather similar levels of access to each other, including to APIs that have impossible to fix buffer overflows that stem from their 80s style design.

Yes there is a (semi) Secure Attention Key but it isn’t required in many cases such as while requesting consent for elevation and you can set it to required but it comes with a warning that that breaks important things (and it does).


Windows provides facilities to avoid that up to the UWP sandbox.


Most likely lack of data. NYC has data with deaths vs comorbidity but I haven't seen it for anywhere else: https://www1.nyc.gov/assets/doh/downloads/pdf/imm/covid-19-d...


What did you have to whitelist? I've had third party cookies disabled for a few weeks and it seems to work.


Although isset() still returns false for null ;)


Which is a little weird, but cases where you'd want `isset` to treat variables intentionally set to null the same as variables that are entirely undeclared are considerably more frequent (just ran into one yesterday!) than cases where you'd need to carefully distinguish them.


It's also great at hiding bugs where you mistyped the variable name passed to isset(). ;)


An "Any type" is optional typing if you don't need to downcast it in order to use it, like the "any" type in TypeScript and Flow.

If the "Any" type is just a top type but you have to downcast it to use it, like in Kotlin, then it's not considered optional typing, since you still have to talk about types ;).


That's very clear and interesting. Thanks :)


> All in all in 20 years we'll all be writing ml ?

If everything goes well, yes. Everything is moving towards static typing with local inference.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: