It’s possible to do all of this with a pure shell script, but then you’re probably reimplementing some or all of the list above.
2,695 karma · joined February 5, 2016
It’s possible to do all of this with a pure shell script, but then you’re probably reimplementing some or all of the list above.
I think that people mostly get a bad taste in their mouths because they try to use submodules for building multi-repo workspaces where a developer might need to commit in some/all of the repos. They're a bad fit for that problem, but it's mostly because that's not what they were designed to do.
I'd love to see the jj team tackle case #2, personally. I bet they'd do a pretty good job of it.
The problem-space I was exploring was libusb and Python, and I used ChatGPT and also Claude.ai to help debug some issues and flesh out some skeleton code. Claude's output was almost universally wrong. ChatGPT got a few things wrong, but was in general a lot closer to the truth.
AI might be coming for our jobs eventually, but it won't be Claude.ai.
Jewish people are fine. The Israeli genocide of Gaza is not.
Having read a lot of Qualcomm code myself, I don't envy their job.
I'd take poor grammar and interesting ideas over clear grammar devoid of real content any day of the week.
On forms where I have to put a range, I put $1.00.
- Cargo-culted use of -o pipefail. Pipefail has its uses, but it breaks one of the most common things people do in a pipeline: filter the output with grep. Add it on a per-recipe basis instead.
- Marking non-file targets as .PHONY. This is strictly correct, but it's usually not necessary. I think it adds unneeded verbosity to the Makefile, especially if you have a lot of targets. Better to add it on an as-needed basis IMO.
- Recipes with multiple output files. Use of dummyfiles/flagfiles used to be the standard if a pattern-rule wasn't the right fit. But as of GNU Make 4.3 (shipping in Ubuntu 22.04 LTS), there is native support for grouped targets. Check it out here: https://www.gnu.org/software/make/manual/html_node/Multiple-...
They're impossible to implement in Make, which is without exaggeration the world's most widely-used build tool. Even CMake has had a very difficult time implementing them. They break most methods for incremental builds, and mean that a compiler is needed just to determine staleness. They also make fully parallelized compilation impossible, because dependencies can't be fully resolved by the build system.
But there's another huge category: people who are automating something that's not open-source. Maybe it stays within the walls of their company, where it's totally fine to say "build machines will always be Ubuntu" or whatever other environment their company prefers.
GNU Make has a ton of powerful features, and it makes sense to take advantage of them if you know that GNU Make will always be the one you use.
I'd want to run all of the machine interfaces directly on Linux, but am interested in using Android for everything user-facing. Could I get away with running Cuttlefish in KVM (on an aarch64 SOC) and get OK performance? I'm thinking that it could be a good way to keep the important stuff isolated.
it's been very reliable, lightweight, and works in cold weather. Fuel is cheap and a lot more environmentally friendly than disposable cannisters.
Plus, it's easy to make and works great as a project for ~10-year old kids. You need a windscreen and a pot stand with it (those are both easy to build), just like you would with any other small burner stove.
The one change I made to that stove's design was that I used a little bit of JB Weld to help keep the inside can in-place. Then I put the lid back on the outside can and JB Welded it on. The result was a very durable, lightweight stove that works great.
If I were to do it with a Windows VM, I'd need to:
1. Create the VM image and figure out how to build/deploy it.
2. Sort out the Windows licensing concerns.
3. Figure out how to launch my tool (maybe put an SSH server into the VM).
4. Figure out how to share the filesystem (maybe rsync-on-SSH? Or an SMB fileshare?).
If I do it with Wine instead, all I need to do is: 1. Install some pinned version of Wine.
2. Install my tool into Wine.
3. Run it directly.If you want a stable, repeatable way to wrangle a Windows tool: Wine is it. It's easy to deploy and repeat, requires no licenses, and has consistent behavior every time (unless you upgrade your Wine version or something). Great integration with Linux. No Windows Updates are going to come in and wreck your systems. No licensing, no IT issues, no active directory requirements, no forced reboots.
Free trade combined with cheap labor led to a massive loss of national capability. We outsourced 75% of the supply chain for electronics, and provided decades of free training to foreign companies. Then we pulled a surprised mug when those same companies decided that they don't need us any more.
As a parent of young kids, I'm also keenly aware of how much random plastic garbage we import - just to throw it away after maybe one use. Party favors are a big one. Families are drowning in low-cost, low-quality products that wind up in a landfill. Free trade created this situation, and I don't think it's good for anybody except importers and factory owners.
I don't know what the solution is, and the current tariffs clearly aren't it. But free trade with China hasn't exactly been great for the US in a longterm sense, and we shouldn't pretend otherwise just because we're getting cheap consumer goods.
Floods are certainly a thing that happens in nature - especially to the flood plains that surrounded large rivers like the Euphrates before dams were a thing.
Are you referring to a specific event? Or just floods in general?