Hacker News new | ask | show | jobs
by maxamillion 987 days ago
Google put in a ton of work to make all the Linux and Android sandboxing while still being able to do file sharing into the sandboxes, Wayland GUI app bridging, usb pass-through, and a bunch of other stuff.

https://chromium.googlesource.com/chromiumos/docs/+/HEAD/con...

ChromeOS got good and is wildly underrated for software development. ¯\_(ツ)_/¯

11 comments

ChromeOS is wildly underrated in general, not only for software development.

App sandboxing on standard (non-ChromeOS) Linux distributions is painful and finicky, while it "just works" on ChromeOS.

I wish there was a non-hacky way to use Chromebooks without a Google account.

The hacky options are:

- "Switch to dev mode". But I don't want to be prompted to factory reset each boot.

- "Create a dummy Google account and use that". But I don't want file syncing and tracking to reach Google at all, not even on a dummy account.

- "Create a dummy Google account and use guest mode". But I want persistent storage.

> - "Switch to dev mode". But I don't want to be prompted to factory reset each boot.

Developer mode simply puts up a splash at boot warning you that the OS is custom, you just press enter to boot. The requirement to do a drive wipe is a one-time thing when you enable it the first time (for obvious reasons, to prevent exfiltration of data stored by a secured OS).

Thanks - has this changed in the past few years?

A few years back (when I last looked in depth), it was very easy at every boot (not only first boot) to accidentally wipe everything - e.g., https://www.reddit.com/r/Crouton/comments/3be2su/reducing_ri...

I also remember that it made a loud beep on every boot!

I used a Chromebook as my main laptop for a year in college, and I always had to apologize to nearby strangers for the beep.

(CS major, coding happened mostly over SSH to the school servers, but I did run RStudio locally)

How often does one reboot their laptop around nearby strangers? I gotta be honest that some of these criticisms seem a little strained. I mean, it's true, they beep at boot when dev mode is enabled!
I shut all of my computers all the way off when I’m finished using them, which means I have to turn them on when I start using them.
It’s been awhile and I don’t remember why I had to reboot, but it did happen. I guess past me did a lot of work in cafes, office hours, and common areas.

I do remember that running a certain R program consistently caused the Chromebook to turn off, which was quite an issue for one particular office hours session!

The key combo you use to get into dev mode, ctrl+D, will exit the warning screen before it beeps.
Chromium OS might be a good choice for you. I ran it on my Pinebook Pro for a bit and really liked it, and it's much more open.
Thanks - I had a very brief look at Chromium OS, but couldn't spot answers to:

(1) Is there a de-googled version of Chromium OS?

(2) Is there a non-hacky way to install it to a Chromebook?

I haven't used it yet, but maybe openfyde.io is one of the de-googled versions of Chromium OS
Nobody has the time to build, test, and maintain Chromium OS. Distros barely manage to build and maintain chromium.
Couldn't agree more. I recently bought a cheap $200 Chromebook and I have to say that it outperforms my high end Windows + WSL2 machine from work for programming related tasks.

Linux just works without all the WSL issues, I can run Visual Studio Code, Docker and anything that I tried so far.

It's actually a delight to work on. I can only imagine how much better yet it will be with a top tier Chromebook

It’s fine if what you like about Linux is running Linux apps. But for me, it’s the privacy, the control, the choice of desktop environments etc. I can run VS Code on anything. And Firefox runs like garbage on a Chromebook, so, what’s really the benefit of using the only OS that won’t even run my preferred browser?
I find this very hard to believe. There is no "$200 Chromebook" that will ever out-perform a "high-end" machine no matter if it's running Windows + WSL2 or not. So what are the specs of this "high-end" machine?
I meant to say that it "outperforms" less in terms of speed (although it's not bad relative to the price of the laptop) but more in terms of developer experience. Everything just works in Linux and it's fast compared to WSL which I get constant issues.
The issue I see with WSL all the time is long waits as things start up. I have no idea what it's doing, but it is painfully slow starting nearly anything up. It's like drive reads are one character at a time or something! Once it gets going, things are fine.
WSL still has a lot of problems. You can find lots of issues on github that are common problems but yet open for years without a solution. Examples:

* Slower IO -- not sure if this can ever be fixed, but quite a bummer * cpu utilization at 100% due to an issue with WSLg #6982 * no access to Internet when host is connected to VPN #5068 * very slow network in some situations #4901

These are not some edge cases -- they affect things that I use every day. Some of them have workarounds but overall this is still not very usable. I decided that it was easier to just get a separate machine and install Linux on it.

This sounds like it is more about GUI latency due to a more agile desktop environment.

Sort of like how a Pentium 3 feels snappy on Windows XP and yet, this 13th Gen Intel Core i5 on Windows 11 feels sluggish. There is WAY more processing power on my newer machine but it doesn't translate to a snappy interface.

Nope, WSL(2) is just slow in weird ways. Launching a GUI-less Python interpreter takes several seconds for me on a powerful workstation.
I have a small amd 7840 (win 4) coming. I originally think as my win max 2 work quite well … then max 2 all goes down hill. The Ubuntu lts no longer work. As I use it just for wsl2 development and use got to sync I erase it. But then never be able to install again. Only Ubuntu non lts installed.

For Gui. Too hard. Done it once when win 11 coming up.

It is now a dreadful wait for win4 to come. Wsl2 …

For those suggest dual boot I have a whole thinkpad X now only in windows and only if it’s do a bit action in the boot loader.

May be I should try Chromebook.

This is generally true if you include time spent rebooting and applying updates, and dismissing "knock, knock, it's Valentine's Day" notifications from windows, etc.

Depends on programming language. Not every compiler benefits linearly from 16 cores.

they did say "for programming related tasks" which could just be running vim.

I agree though, this claim seems unlikely to me.

a $200 chromebook blows away a $1000 ipad for develompent. It's got nothing to do with raw horsepower but rather software support. for example chromeOS has developer tools. the ipad doesn't.
Do you have VSCode and Docker installed on the Chromebook?

I have been interested in buying a Chromebook for dev purposes.

Yep, just launch the built-in Linux VM (i.e. search "linux" in settings and click one or two buttons).

Then install VSCode and Docker as you would on any Linux system.

You can then launch them from the ChromeOS desktop environment as if they were native ChromeOS apps. It's really quite seamless, much more so than WSL (and better performance IME).

Don't. Install code-server on a remote server. Your chromeOS device is a just a front-end, you don't need to actually run anything on it besides a chrome browser pointed at your code-server instance and an ssh connection.
Yeah we’re going to need specs of both machines to begin to believe that lol
I loved Chromebooks. However I've been pretty turned off by them when my Chromebook which was working perfectly fine recently told me it's not getting security updates anymore. Now because the OS and browser are the same machine, the whole system is insecure.

Next laptop will be a framework, so I guess I'll see how that goes.

They've extended updates recently https://support.google.com/chrome/a/answer/6220366

For old models as well

Not for the ones that ended support this August.

I have a kevin (Samsung Plus v1) and flashed it with libreboot for Linux at that point.

Similar to you, I'm a happy Chromebook customer with a good Chromebook that no longer receives updates since earlier this year. But Google also offers ChromeOS Flex [1] which I now run on my Chromebook.

You can even install ChromeOS Flex on a non-ChromeOS PC.

[1] https://chromeenterprise.google/intl/en_ca/os/chromeosflex/

I think they're decoupling the os and browser releases, although I'm not sure if it works for old ones or not. https://www.androidpolice.com/chromebook-decouple-chrome-fro...
Paying top dollars/euros for a laptop with 8GB/128GB isn't my idea of an ideal developer laptop.
8GB/128GB goes a lot further on a Chromebook than it does on creaky, old, slow, bloated Windows. And Chromebook prices are very good.

I recently got a Chromebook and I'm amazed at how snappy and fast it is. And its built in Linux is amazing.

If you say so. I'm on windows and most of my memory is going to chrome and firefox.

I've had some pretty severe issues with a chromebook running out of memory because the devs decided swap wasn't allowed (and I could never get the kernel to build and install properly). The builtin chrome definitely doesn't stop single websites from using most of a gigabyte of RAM.

Nope, not good at all, and my Asus 1215B proves otherwise.

300 euro from 2009, upgraded with 8GB and 1TB SSD, and with native graphics that beat WebGL 2.0, running latest Xubuntu.

if one is already a geek it is not needed. The only reason myself being a geek moved to chromeos

- no need to worry if upgrading some Xorg will kill Xserver. Yes, it does happen if one has autoupdates

- Will my zoom/camera/mic work after I make pulseaudio->pipewire-><whatever latest>? No idea but chromeos - just works

- There are software engineers that have no installation/hardware/sysadmin experience (or they dont want to learn).

- Just close and open device. Chromeos is instant. (yes, one can fiddle with pm-utils to get modules (un)loaded - no life is too short to fix these.

- Many programs like netflix need some form of terrible DRM and dont work with linux. Some people still need to live with DRM.

I thought we were discussing about ChromeOS for developers after all.

> ChromeOS got good and is wildly underrated for software development.

There are laptops sold with Linux support in mind, those Asus netbooks were such laptops.

As for DRM, just install Chrome, the Web nowadays is ChromeOS anyway.

There is a new version you can get directly from Google that works on quite a few devices, especially high end ones.
You don't pay top price for Chromebooks; you can get a good one for in between 200 and 300 USD
Not in Europe, so top euro if you prefer, and still with a junk hardware configuration.
Oh interesting; given USD and Euro relative parity nowadays, I assumed they would be 200-300 Euro as well
Completely agree. Now if they would just add a meta key to the bottom row of the keyboard I'd be a happy user. Ctrl and Alt are not enough. And seriously, they are comically large on every chromebook I've owned. Give me a meta key in all that wasted space.
There's the button that replaced caps lock. I mean, yes, I'd still rather have another button, but it does work in my personal experience.
Oh true, I'd forgotten that. Of course the issue with it being in a different place is that many people use multiple OSs and muscle memory is a thing. I'd rather have a reprogrammable key where meta should be.
Do google developers develop on Chromebooks ?
As I understand it, yes, albeit it's much easier at Google than some places. Google is pretty much a supercomputer with a company built around it; the Chromebook can serve as your terminal into that supercomputer, accessing your files, codebase, and other resources all remotely.
All new devs are given Chromebooks unless they need a specific device (like a MacBook for iOS devs)
You can request the computer you want. They will push you towards Chromebook but you can pick a normal Linux machine or a MacBook or even a Windows computer (don't do this).
Someone at Google needs to support the top 80% desktop market.
I used a Windows laptop for some time. It made browser testing in IE significantly simpler and otherwise worked fine for running Chrome + remote access to workstation. It was also the only model offered with a garaged stylus, which I used and tested quite a lot.

I used that laptop to skip over the lousy overheating butterfly MacBook generation. Now I have an M1 Pro MacBook like everyone else.

They also offer Windows on the cloud VMs.

Are they still given a Debian workstation besides that? Didn't know they are dogfooding ChromeOS that seriously.
Nopes, everyone uses cloud VMs by default. These VMs were very powerful too.
Yes; that’s what’s used on the VMs, workstations, and Linux laptops.
But aren't devs also provided with: SSH, CI build minutes, and GCP budgets for containers and VMs?

To actually dogfood Chromebooks internally like Chromebooks for Education and for Families, Google would need to deny its devs containers behind a greyed out "Turn on Linux" button and deny them access to Colab notebooks and AI platform etc (while only allowing Play Store apps); nothing to SSH to, no notebooks, no devpod, no local git repos (!), no local terminal to run e.g. pytest tests with, no devtools JS console, etc.

Not exactly but the equivalent yes. Workstation and VMs. All tests and builds are basically run in borg by default.

For most Google developer developing on a Chromebook basically means running ssh and chrome remote desktop.

For students, unless there are allocated server resources with network access, it SHOULD/MUST scale down to one local offline ARM64 node (because school districts haven't afforded containers on a managed k8s cloud for students at scale fwiu, though universities do with e.g. JupyterHub and BinderHub [4] and Colab).

For Chromebook sysadmins, Instructors, and Students learning about how {Linux*, ChromiumOS, Android, Git, Bash, ZSH, Python, and e.g. PyData Tools supported by NumFOCUS} are developed, for example;

When you git commit to a git branch, and then `git push` that branch to GitHub, and create a Pull Request, GitHub Actions runs the (container,command) tasks defined in the YAML files in the .github/workflows/ directory of the repo; so `git push` to a PR branch runs the CI job and the results are written back as cards in the Pull Request thread on the GitHub Project; saving to the server runs the (container,command) Actions with that revision of the git repo.

Somewhat-equivalent GitOps CI Continuous Integration workflows (without Bazel or Blaze or gtest or gn, or GitHub Enterprise or GitHub Free due to the kids' intererests) that might be supported at least in analogue by Education and Chromebooks: k8s with podman-desktop in a VM, Gitea Actions (nektos/act; like Github Actions), devpod

devpod: https://github.com/loft-sh/devpod :

> Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker. (with devcontainer.json, like Github Codespaces)

devcontainer.json is supported by a number of tools; e.g. VScode, IntelliJ,: https://containers.dev/supporting

repo2docker has buildpacks (like Heroku and Google AppEngine).

repo2docker buildpacks should probably work with devcontainer.json too?

repo2docker docs > Usage > "REES: Reproducible Execution Environment" describes what all repo2docker will build a container from: https://repo2docker.readthedocs.io/en/latest/specification.h...

jupyterhub/repo2docker builds a Dockerfile (Containerfile) from git repo (or a Figshare/Zenodo DOI) that minimally has at least an /environment.yml and /example.py (and probably also at least a /README.md to start with), and installs a current, updated version of jupyter notebook along with whatever's in e.g. /environment.yml per the REES spec. [1][2][3]

[1] repo2docker/buildpacks/base.py: https://github.com/jupyterhub/repo2docker/blob/main/repo2doc...

[2] "Make base_image configurable" https://github.com/jupyterhub/repo2docker/commit/20b08152578...

[3] repo2docker/buildpacks/conda/environment.py-3.11.yml: https://github.com/jupyterhub/repo2docker/blob/main/repo2doc...

[4] "When to use [TLJH or Z2JH]" https://tljh.jupyter.org/en/latest/topic/whentouse.html

SLSA; Supply-chain Levels for Software Artifacts:

https://security.googleblog.com/2022/04/how-to-slsa-part-2-d...

https://slsa.dev/blog/2023/06/slsa-github-worfklows-containe...

How do ContainerSec, DevOpsSec, and UI/UX apply to getting a perhaps necessarily at least sometimes restricted set of containers provisions to support STEM lab module workflows for learning?

1. Instructor: Specify e.g. docker.io/busybox:latest, and docker.io/buildpack-deps:container_tag as the necessary containers for the course/module/day

2. Student: Login to that context (as allowed by domain policy if necessary), have the container images pulled according to idk like a syllabus.yml before the schema.org/CourseInstance :eventSchedule :Event begins or at the start of class per a distributed URL/QRcode.

3. Student: Review and manage which containers are running with something like the podman-desktop indication bar applet.

4. Student: git push a repo of notebooks to be graded with ottergrader, okpy, nbgrader (and get feedback on a Pull Request)

Gaps/Challenges/Opportunities:

Instructors don't have CI workflows implemented in curricula, but easily could create a git repo that works with repo2docker and/or devcontainers.json.

Education Organizations don't have control over which containers are running on students' managed workstations, do have such monitoring for which apps are so errantly provisioned; and so students don't have containers but do have apps.

Android Apps are installed as APKs, which are a ZIP file with a manifest. Binaries on Android devices will not run without SELinux labels. SELinux labels for executables on Android can only be granted by (root or) a the process that installs the APKs.

This means that other installers like pip and apt (in Termux or any app off the Android Google Play Store with the new SDK) cannot work in an Android App in a VM on a Chromebook. This means that e.g. Termux could work from the Play Store only if they repack every installable package as an APK on the Play Store. Python is installable with Termux on Android with Fdroid; but the Fdroid Android App repository ("Allow third party sources" (with a different cert trust root)) doesn't work on Chromebook Android, so FWICS you can't install Python with Termux apt on a managed Chromebook, and you can't keep sideloaded APKs from Fdroid updated with an unmanaged Chromebook: a [Google] dev would just use containers in a VM (or CI) instead.

JupyterLite and VScode.dev work in a browser tab because everything is compiled to WASM (WebAssembly), but the browser traps shortcuts like Ctrl-P.

So then you might say, "wrap JupyterLite in Electron or similar so it works offline as an app with all the keyboard shortcuts that you need". (Electron apps run a web app locally in a browser without the chrome (the address bar and back buttons); but if 5 apps each depend upon unique copies of Electron that they must repack and that users must keep updated, app sizes are suboptimal due to lack of a proper package dependency model for Android APKs.) Flatpack is neat, supports package dependency edges, and supports having multiple versions of a package installed, but most flatpaks have similar boundary violations where the guest container is insufficiently isolated from the host machine. VScode flatpak, for example, can call commands on the host with `flatpak-spawn` or `host-spawn` or the additional package for the vscode flatpak copy of the `podman-remote` go binary. distrobox and fedora/toolbox make it easy to mount your entire $HOME into the container with the correct UID and file permissions: `distrobox create arithmetic; distrobox enter arithmetic` provisions a container and opens an interactive shell within the container. ChromiumOS's zygote messages also cross container/vm boundaries IIRC.

gvisor is considered good enough to contain containerized workflows for shared multitenant workloads at Google; and so it should also probably be useful for getting devcontainers.json and at least vscode working on Chromebooks for the kids.

> ChromiumOS's [sommelier also crosses] container/vm boundaries IIRC.

chromiumos/docs/+/HEAD/containers_and_vms.md > Can I run Wayland programs? with Sommelier: https://chromium.googlesource.com/chromiumos/docs/+/HEAD/con...

But that doesn't solve because containers and vms aren't on and aren't supported for their accounts.

A school chromebook's access to containers could be controlled by setting the containers.conf repo URL to a Container Image Repository controlled by the school. GitHub, Gitea, and GitLab all support storing (OCI) container images.

An instructor would import a container image with an associated Pull Request that causes an Action to run to (1) scan the container and its SBOM Software Bill of Materials; before (2) hosting the container image for the students and (3) regularly (along with e.g. Dependabot, which for security regularly checks for references to outdated versions of software in GitHub repos) .

It looks like GitHub supports 3rd party code scanning tools, too; so Instructors and Students could auto-scan for security vulnerabilities and get reports back in the Pull Request https://docs.github.com/en/code-security/code-scanning/intro...

GitHub Project Templates are designed to be forked; e.g. like an assignment handout to be filled out (that already has an /.github/workflows/actions.yml and README.md headings). Cookiecutter is another way to create a project/assignment/handout/directory/git_repo skeleton; with jinja2 templates to generate file names like `/{{name}}/README.md` and file contents like {% if name %}<h1>Hello World, {{name}}{% endif %} . jinja2 is a useful skill also for ansible [collections of roles of] playbooks of tasks.

chromebook-ansible installs a number of apps by default (including docker and vscode (instead of podman and vscodium or similar)), but because there are variables in the playbook, you can change which parts of the playbook runs by specifying different parameters with ansible inventory: https://github.com/seangreathouse/chromebook-ansible#include... https://github.com/seangreathouse/chromebook-ansible/blob/c8...

It would be helpful to be able to provision [Android and Chromebook] devices with [Ansible] like it is possible with Mac, Windows, and Linux devices (without a domain controller; decentralizedly and for bootstrapping). It appears that there happens to be no way to `adb install play-store://url` with Ansible, but there is news about Ansible support for Enterprise Chromebooks.

There are [vscode] IDE mentions in the chromebook git repos IIRC. The [vscode] [docker/podman extension] could work with aforementioned functionality to limit which containers can be pulled or are running at a given time.

USE CASE (for a "STEM workstations for learning" spec): Create a minimal git repo project from a project template with cookiecutter-pypackage or similar.

A minimal project [template] would have at least:

  /README.md            # h1, badges, {{schema:description}}, #install, #usage, #license, #citation
  /LICENSE || /COPYING  # software/content license terms
  /devcontainers.json   # for vscode and other IDEs
  /environment.yml      # which packages to install (conda, pip, repo2podman)
          
  [/src]/example/__init__.py
  [/src]/example/main.py
  
  /tests/
  /tests/__init__.py
  /tests/test_main.py

  /example/tests/  # this dir would ship with the package, so that that tests Could run in production

  /example/data/  # will be installed in site-packages
  /data/          # will not be installed in site-packages without a special setup.py

  /docs/
  /docs/conf.py                                                    # sphinx
  /docs/index.rst      # .. include('../README.md') .. toctree::   # sphinx
  /docs/_toc.yml       # jupyter-book
  /docs/_quarto.yml    # quarto
  /docs/_metadata.yml  # quarto

  # When we need to vendor _other projects in
  # we then need src/ (and/or lib/) for _those (and maybe ours_ 2)

  [/src][/example]/tests/
  [/src][/example]/tests/__init__.py
  [/src][/example]/tests/test_main.py
  [/src][/libexample2]/COPYING
This is a very common workflow for STEM (PyData) software; how is it done with Win/Mac/Lin (and bash and git) and how do we do this with our Chromebook with no Terminal or Containers?
I don't follow? Software developers... aren't students or children.

It's a different market with different product segmentation and feature sets, it just happens to run on the same hardware and OS. And it's true that schools and parents often demand that their kids not hack stuff that the "admins" don't understand. And maybe that's bad or misguided or whatever. But it's not a statement about using a Chromebook as a developer client, which IMHO works very well.

The kids can't code locally on a git repo on Chromebooks and run make; they don't even have a terminal.

Googlers only code remotely on Chromebooks.

The kids MUST be able to run `pytest arithmetic.ipynb` on whichever platform.

(It was not appropriate for Google 2016-2020 (?) to decide that we should all accept WASM runtime vulnerabilities in sandboxed browser processes running as the same user instead of per-app SELinux contexts like Android requires since 4.4+, or instead of containers and VMs like almost all of Google's hosted apps and internal systems)

Cannot believe there's not even a JS console on these for the kids (because "Inspect Element" and "Turn on Linux" are blocked for them all)

I'm still not understanding the criticism. You're saying it's bad that kids can't hack on their school-supplied/parent-managed computers. And... I think I agree, as far as it goes.

But you're responding to a thread saying "Chromebooks are good for Developers", where's it's just not responsive. There's absolutely no reason schools or parents can't hand kids unmanaged/unrestricted Chromebooks; they just choose not to (for some good and some bad reasons). Take that up with schools and parents, I guess?

I'm pretty sure the grayed out "Turn on Linux" button due to policy setting by the organization managing the Chromebook.
Which brand, though? I have a feeling it's one of those first-party Google Chromebooks...
My daily driver right now is a mid-tier Tiger Lake board. You can get the equivalent for sub-$300 on Amazon. The client doesn't need to do much in the modern developer flow, running a browser, an X server and an ssh client is 90% of anything that needs to happen, with the occasional Linux Wayland client from the VM thrown in (Thunderbird for personal mail, occasional use of Audacity, stuff like that).
I have a couple of Samsungs and a Pixelbook. You can BYOD with Chromebooks, too, so you can pick smaller, lighter ones or ones with bigger screens than the standard offerings if you’re willing to pay for it.
In most cases HP
They do, but for the googlers I know it's just as a thin client for their remote desktop software (https://remotedesktop.google.com/).
So wait to be specific here -- is the setup that people develop on:

1. chrome-os device

2. install a debian VM

3. do all their development in a VM where they can easily install packages they need etc?

4. so they are doing dev in a VM on a core-i3 intel machine I guess?

Not exactly. There are some ways to install GNU/Linux distros on Chromebooks, the Eupnea project's Depthboot script[1], for example, lets users build/run a distro by extracting the rootfs from an ISO file, and apply Chromebook-specific patches, like using ChromeOS' kernel, using keyd to make patches to support the Chromebook keyboard's action keys, and much others.

(Disclaimer: I'm the current maintainer of the Eupnea project.)

[1]: https://github.com/eupnea-linux-backup/depthboot-builder

If the question is about Google, they use the Chromebooks to connect to cloud hosted dev environments. Often these days that's the internal cloud based IDE whose UI is VSCode based.

For many legacy command line tasks, you SSH to a cloud workstation. More than ever though, you can get away with a lot of programming tasks without ever touching a terminal.

For those who really want a traditional Linux Desktop environment, you use Chrome Remote Desktop to connect to the same cloud VM that you SSH to.

Yup!
How does it go with things like tracking or serving personalised ads?

Genuine concern with anything google. Current and future risks.

I used a Chromebook for a few months including for software development, but find there are a number of major issues (as of 2021):

* window management was a hit and miss. I was not able to do split screen for a Chrome window and a Linux window (vscode). You can do that for two Chrome windows. A big disappointment * many GUI applications are only available through... Android Play Store, e.g. Cisco Anyconnect. Fortunately this works, but it's not an enjoyable experience. * Chromebook built-in keyboards usually don't have F11 or F12 keys, but you need them as a software developer.

And there are a number of other smaller issues that made me feel it would be easier to stick with a "standard" laptop, although I do think there is a lot of potential. I sold that Chromebook later.

So many people over the years tried to turn their ipad into a remote development machine and failed spectacularly, because of the aggressive app suspend (your ssh/web sessions get disconnceted) and the weird keyboard support in iOS (keyboard shortcuts for text navigation are not the same as PC). In the mean time, ChromeOS is the perfect OS for that. I have my own bare metal server with code-server installed. My chromeos 2-in-1 detachable is absolutely perfect for that usecase, and I can connect my split mech keyboard. Best of all ? I bought that ChromeOS tablet for $180 USD on amazon. It works BETTER for remote development than a $1000 USD ipad.
How much of that has been upstreamed? I dug around a little but could only find things on upstreaming kernel patches.
What in particular needs to be upstreamed and to what projects?
ChromeOS might be great, but I wish I could just buy it from an OS company, not a company that wants my data.