5 ms·
This reminds me of creator of „brew” who got declined by Google because he couldnt write a reverse binary tree search in 1h. Dont mind that half of Google is u
by pojzon 4y ago
This reminds me of creator of „brew” who got declined by Google because he couldnt write a reverse binary tree search in 1h.
Dont mind that half of Google is using his work for free.
- UncleMeat 4y agoThat wasn’t actually true. He later said that he wasn’t asked to invert a binary tree. Also, nobody at google is using homebrew for work.
- l-lousy 4y agoAnyone using a Mac for tech related jobs has a high probability of using brew. That includes a lot of googlers
- UncleMeat 4y agoGoogle doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.
- EdwardDiego 4y agoDo you work for Google? I'm just doubting you a little. Like the guy from project zero is finding bugs in Windows via ssh to a Linux machine? Definitely going with Doubt here.
- sumeno 4y agoThey are correct. Stuff like project zero is an extreme outlier. I've been using a MBP for 5 years and have never used homebrew on it.
- EdwardDiego 4y agoCheers for clarifying :) I'll admit that surprises me greatly, I can't see why it's considered more efficient, but hey, Google.
- eutropia 4y agoprobably efficient because their codebase size would outstretch local disk space requirements, and also would allow for comprehensive access controls
- compiler-guy 4y agoThe first program you build in Noogler training takes more compute and io to build than the Linux kernel. The distributed build systems laughs at such a trivial program and barely breaks a sweat at programs 10x that size. A poor little laptop would break down and cry.
- UncleMeat 4y agoGoogle has a giant monorepo. It is too big for git. (Virtually) everything is built from source. Building a binary that just runs InitGoogle() is going to crush a laptop. I believe that there are also a bunch of IP reasons for this policy, but from a practical perspective doing everything with citc and blaze is really the only option.
- exdsq 4y agoCan you share the order of magnitude we're talking about here?
- UncleMeat 4y agoThere are a few outliers, but yeah. Per policy, no code is allowed on laptops. And because Google's build tooling is very centralized basically everybody works on the same kind of machine. The folks developing Chrome for Windows or iOS apps might have different workflows, but even then they aren't going to be using brew because of Google's third party code policies.
- onei 4y agoIs the code being in a VM mutually exclusive with having homebrew installed?
- UncleMeat 4y agoWhy would I install homebrew on a work laptop if I cannot build or run code on my work laptop? Why would I install a dependency management system if company policy is that all third party code is checked into the repo as source and built using blaze?
- dekhn 4y agoWhen I worked for google, several of my projects were developed locally on laptops. My intern (who was developing tensorflow robotics computer vision stuff) used homebrew to install tools. Not everybody at Google used blaze.
- jen20 4y agoBecause you can also install applications via homebrew. I use it for a few things, including installing bat, delta and other Rust coreutil replacements that I prefer. I absolutely do not use homebrew for project dependencies.
- thisiswrongggg 4y ago...worked in another place which didn't allow local code. It was the most horrible dev experience I had. Cannot fathom why google went that way too.
- compiler-guy 4y agoGoogle lives and does by its distributed build system. Most devs don’t even have exactly have code on their local workstation either—it comes via remotely mounting a file system. But 99.9% of the builds happen remotely. So local vs remote code just isn’t that relevant. It is also true that Google spends millions and millions on its dev environment every year, so this isn’t your average “no code on laptops” situation.
- sinop2 4y agoThat seems unlikely, given that they’ve implemented an Xcode project generator for iOS apps built with their build system: https://tulsi.bazel.build/ https://tulsi.bazel.build/ No one’s running Xcode on the web or on a Linux machine.
- compiler-guy 4y agoI’m sure there are a few open source developers who use brew or Xcode directly, but most Mac builds happen in a distributed build system wired up to use remote macs. Yes, via Xcode. Not on local machines.
- UncleMeat 4y agoThe mac build system is wild. It is still all done remotely with a farm of macs running xcode. You still don't build code for running on macs on your local machine.
- hnov 4y agoYou actually do, what Tulsi generates is an XCode project that has shell script build steps that call out to bazel. Bazel underneath the covers will end up calling the clang that comes with XCode.
- dekhn 4y agoYou are factually wrong. Not only that, you're conflating several different processes and team rules. Many googlers use brew to install applications on their laptops. This not against policy. Other googlers work with code stored directly on their laptop. There may even be developers who are obtaining deps (for their own builds) from brew. The problem with the brew author is that he had every opportunity to make himself look hirable at Google but instead chose to write an incorrect screed and publish it on the internet.
- hnov 4y agoYou need a full Santa exemption with business reason to use brew. The average person working on some server that deploys to borg does indeed use their Macbook as a thin client. Who's obtaining deps for their builds from brew? If you're building stuff on Mac, it's via bazel and all your deps are in source control.
- dekhn 4y agoI never said anybody is obtaining deps for builds- that's all UncleMeat. At the time I used brew (5 years ago) it didn't require a santa exception with business justfication (and my justification would have been "I need this for my work"). Fortunately this wasn't really a problem for me any way as I don't even look at Mac machines as anything other than a thin client.
- UncleMeat 4y agoIt is true that this was the problem with the brew author. Homebrew being part of the typical Google workflow is entirely independent of the situation. But, as usual for internet discussions, it is fun to rathole on side conversations.
- dekhn 4y agoThe best part is, I was defending the use of homebrew (which I absolutely hate) and local development (which is far inferior, IMHO, to blaze/forge/citc/piper). I had really hoped releasing abseil/bazel would help but sadly, it was done too little, too late.
- jmartin2683 4y agoNone of them own a Mac?
- UncleMeat 4y agoGoogle doesn't allow any code on laptops. Everything is done via web IDEs or ssh into a linux machine. So nobody is using brew to obtain dependencies.
- corrral 4y agoYou shouldn't use Brew to obtain dependencies. This is how you end up with people complaining about a brew upgrade replacing the version of Postgres their project depends on. You probably shouldn't be using dpkg or rpm for that, either, unless your CI and deployment targets are running the exact same version of Linux that you are, and even then—there are usually cleaner and more cross-platform/distro ways to do it, especially if you need to easily be able to build or run older versions of your own software (say, for debugging, for git-bisecting, whatever). I continue to wonder how TF people have been using typical Linux package managers, that they end up footgunning themselves with brew. "Incorrectly", I suspect is the answer, more often than not. Where it excels is installing the tools that you use, that aren't dependencies of projects, but things you use to do your work. Get your hammer from Brew. Get your lumber from... uh, the proverbial lumber yard, I suppose. Docker, environment-isolated language-specific package managers, vendored-in libs, that kind of thing. I don't install project deps with Brew (it's a bad idea, but, again, so is doing that with dpkg or rpm or whatever directly on your local OS, a lot of the time) but I do install: wget, emacs, vscode, any non-Safari browsers I want, various xvm-type programs (nvm, pyenv, that stuff), spectacle, macdown, Slack, irssi, and so on.
- UncleMeat 4y agoThat's fine, but almost nobody is running tools on their MBP. So for this sort of thing you'd be using the package manager distributed with glinux. And Google is also a really weird island where tons of tools are custom. You cant use some open source tool for git bisecting because Google doesn't use git. You cant use some open source tool for debugging because borg is a weird custom mess and attaching debuggers requires specialized support.
- aidaman 4y agowhat in the world does that have to do with whether he was qualified to work for google? the average developer at google is definitely a much much less proficient programmer than the creator of homebrew.
- troon-lover 4y ago