4 ms·
I was surprised to read that Chromebook use at Google was common for engineers. Even if developing remotely I had assumed they'd opt for the most powerful machi
by kylecazar 5mo ago
I was surprised to read that Chromebook use at Google was common for engineers. Even if developing remotely I had assumed they'd opt for the most powerful machine possible.
- joshuamorton 5mo agoI do most of my development on a MacBook air and a Chromebook. The ~only thing I do from my local machine is ssh into a beefy workstation and use chrome.
- compiler-guy 5mo agoVery little development in Google3 happens locally. You aren't even allowed to keep the source code on your local disk, and this is true no matter what OS it runs. (Android and Chromium are different though.) You have access to an extremely powerful remote workstation that from a UI perspective functions almost identically to a local workstation, via Chrome Remote Desktop. Plus, no one builds things locally, even on that machine. There is a huge, absolutely amazing distributed build system that everyone uses for everything. (Again, Android and Chromium are different.) So you don't really need a powerful local machine. I held out for a long time--there were a lot of growing pains in the early days. But eventually it got really, really good.
- AJRF 5mo agoWhat is Google3?
- ncruces 5mo agoThe mono repo that holds most source code (pronounced google-tree?) It's referenced in the OP.
- StilesCrisis 5mo agoI've never heard that pronunciation.
- bsimpson 5mo agoIt's a monorepo, which is a bunch of libraries (in this case, the code for most Google products) in a single repository. Those libraries can have dependencies on each other. One is a framework called Wiz, which renders the frontend for a bunch of Google web apps. You can imagine that the Wiz team might want to refactor an API, but not have to worry about different apps using different versions. In a monorepo, they can just find all the callsites and update them in the same commit that makes the API change. There's no package.json in google3 - everything builds from HEAD. Therefore, the commit that makes a breaking change is also the commit that fixes the would-be breakage. This architecture evolved. Google used to use Perforce, which was a common commercial version control system before Git. Google had to figure out how to express the dependencies between packages in the monorepo (which can be in different languages with different build tools). They eventually created Bazel, which expresses those dependencies and orchestrates their build tools. Build orchestration took a few attempts. Google3 is the third version of the monorepo, that is, the one that uses Bazel for dependency management.
- AJRF 5mo agoCool - thank you for answering
- malkia 5mo agoyup - when I started in 2014, coming from long gamedev experience it was nice that "g4" was just "p4" rewritten for piper. (alzo "blaze menu" was cool, but did not show (AFAIR) places in LAX)....
- neerajsi 5mo agoHow does release management work? Are there stable branches for deployed properties with a cheery pick approach for bug fixes? Are all products in google3 on a coordinated set of release trains?
- StilesCrisis 5mo agoCould you even put all of google3 on local disk if it were allowed?!? You'd need quite a RAID array. I suspect it'd be almost impossible in practice.
- lupire 5mo agoThere's no reason to pull the entire repo just to build one project. Do you pull all of GitHub to your disk?
- wmedrano 5mo agoFrom the user interface perspective though, it does essentially look like you've pulled all of google3 into your disk.
- mcculley 5mo agoBut is it a local disk? The post above says that one uses Chrome Remote Desktop.
- compiler-guy 5mo agoIt’s not local storage, but a file system that makes it look like local storage. Even on machines with chrome Remote Desktop it is still stored remotely. So remote to the remote.
- summerlight 5mo agoBecause of high coupling dependencies between google3 projects, compiling just a single project usually pulls hundreds of thousands of different build targets.
- lozenge 5mo agoI can understand Android (including the Linux kernel) being "too big" and "too separate" to go into Google3, but why Chromium? When it was forked from KHTML/WebKit it was probably not that big compared to the rest of Google's codebase.
- Arainach 5mo agoChromium is open source. As such it needs to be hosted via a publicly accessible stack (Git/Gerrit) so that external contributors can use it. Size has nothing to do with it.
- eddd-ddde 5mo agoThis is not a complete answer. There are many open source projects that are developed in google3.
- randomCloud 5mo agoGood old capybara
- kayson 5mo ago> You aren't even allowed to keep the source code on your local disk How is this enforced?
- compiler-guy 5mo agoI have no knowledge of actual enforcement mechanisms, but it is way, way, way easier to do all development on the distributed file system that feels like a local disk than it is to copy things over locally. If you need to do development locally, you are either doing something very wrong or extremely specialized. So there is effectively no motivation to copy the sources over. And because everything is on this distributed file system and built from it in a very bespoke environment, I would imagine (with no inside knowledge at all), that it is easy for auditors to detect when someone starts copying things out.
- summerlight 5mo agoAll the developments are done in a virtual remote file system. From editing to compiling, everything is done remotely. Of course this does not fully stop people from doing manual c&p, but it still makes it hard enough to discourage it.
- setheron 5mo agoI miss my Dragonfly I am a big Linux proponent but that Chromebook had me convinced about the platform. Amazing integration.
- tonfa 5mo agoSince it's mostly browser tabs, as long as you have ample memory (eg 16gb) it's good enough.
- kotaKat 5mo agoFrom what I'd heard contractors get issued as little as a Pixel tab and dock? Everything else is in the cloud (either gLinux desktops or cloud shells) AFAIK.
- dietr1ch 5mo agoHow common? I'd wager most people still use a mac, followed second, but far by regular goobuntu laptops. Chromebooks goes 3rd because Windows is practically banned.
- tonfa 5mo ago> Windows is practically banned. FWIW I don't think this is accurate (was kinda true in the 2010s?). I wouldn't be surprised if it's almost easier to get windows laptop than linux one now.
- jim33442 5mo agoUbuntu/gLinux laptops have been getting phased out for a while. It's 1. Mac 2. Chromebook 3. gLinux probably
- StilesCrisis 5mo agoWhen I joined, I started with a MacBook and lost it within three months :( Afterwards I was issued a 12" Pixelbook and it was surprisingly much more usable than I had expected! I could ssh into a Linux box for running builds and tests. Cider worked perfectly. It was snappy enough to serve as a thin client even on a 4K screen.
- mghackerlady 5mo agoChromebooks are pretty much only good as thin clients, so much so that when I have the money I plan on building a powerful rackmount workstation and connecting to it via chromebook/box
- jsolson 5mo agoFor most of my time here I used exclusively Chrome OS, and switched to it for personal use as well. My daily driver for years was a bright red Samsung Chromebook Galaxy (the first gen with the actual metal case). Literally none of my work is local, and it could run Secure Shell, Cider-V, and Docs as installed PWAs with their own taskbar items, etc. It was glorious. When it finally failed in the most annoying way possible (the touch screen, which I do not use, started creating phantom clicks in the upper right corner of the display) I went looking for another Chromebook that was light, powerful, and well-built. Finding none, I now use MacBook Air and weep for the time I lose every time it needs an OS update.
- pests 5mo agoIve had that issue with touchscreens before and was able to disable the driver for it. Linux so not sure if possible or how on a chromebook but an option.
- deleted 5mo ago[deleted]
- deleted 5mo ago[deleted]