Just a basic programmer living in California
I think it depends. Lua is great for scripting - like when X happens do Y. I agree that makes sense for a case like Home Assistant. Sometimes you really want the result to be a data structure, not an interactive program, in which case I think more sophisticated configuration (as opposed to scripting) languages might be better.
Yes, there’s a good example. Ansible would make more sense if its configuration language was Nix…
Oh, thanks for calling that out. I think I may have mixed up some of the frustrations I experienced at an old job.
I agree - YAML is not suitable for complex cases that people use it in, like Terraform and Home Assistant. My pet peeve is a YAML config in a situation that really calls for more abstraction, like functions and variables. I’d like to see more use of the class of configuration languages that support that stuff, like Dhall, Cue, and Nickel.
There is another gotcha which is that YAML has more room for ambiguity than, say, JSON. YAML has a lot of ways to say true
and false
, and it’s implicit quoting is a bit complex. So some values that you expect to be strings might be interpreted as something els.
NixOS and Home Manager config both ways to get rid of the same thing
It seems that “fully” 3D printed is an overstatement. The article says, “there’s 3D printing whenever possible”. That includes printing the frame as a single piece, and the hubs. Some pieces are specified to not be 3D printed like the crank and saddle. The article doesn’t mention bearings.
Zed invented tree-sitter which is a great feature. But since tree-sitter is open source it’s also available in neovim and helix.
It seems like only one side of the ancient rivalry is represented in the comments here. No worries, I’m right there with you.
Yeah the performance differences don’t matter in most cases. Rust makes it tempting to optimize everything because the language is explicit about runtime representations. But that doesn’t mean that optimizing is the best use of your time.
To expand on why generics are preferred, just in case you haven’t seen these points yet: the performance downsides of Box<dyn MyTrait>
are,
There is also a possible type theory objection which is that normally there is a distinction between types and traits. Traits are not types themselves, but instead define sets of types with shared behavior. (That’s why the same feature in Haskell is called a “type class”, because it defines a class of types that have something in common.) But dyn
turns a trait into a type which undermines the type/trait distinction. It’s useful enough to justify being in the language, but a little unsettling from a certain perspective.
I’m not an expert, but I’ve heard that Rad bikes are good for their price, and they have been touting the safety of their batteries. (Rad is not the cheapest, but is not as expensive as the high-end bikes.)
I wanted a cargo bike to transport my kid, and I wanted a mid-drive since I’m told the motor assist on that type of drive feels more natural. So I went with a Tern.
This is how I sometimes take my dog on my bike for short trips:
But the best way to transport dogs is using a trailer. That tub takes the place of the rear seat; so to transport kids and the dog at the same time I’d need a trailer.
By using one rail they can get two-way traffic on one set of tracks. These early units have an anti-tipping safety device that extends to the second rail, but they plan to get rid of that later.
I’ve often thought that the people working on herpes treatments probably don’t get the credit they deserve
Thanks for the reply! Yes I have been trying WineGE. I didn’t realize it had special media support, that’s good to know.
Probably not very similar, but Git Butler is very interesting. It adds its own layer of management so that you can have multiple branches “applied” to your working tree simultaneously. It’s helpful when you have multiple changes that should go into different branches, and some that shouldn’t be committed - it has a system of lanes that help keep track of all that. Or you can test how changes from two branches interact.
Last time I used it, maybe 6 months ago, it was rough around the edges so I didn’t stick with it. But they’ve done lots of work since then so I’m thinking of giving it another go. It is (last I checked) an all-in tool. When you’re using Butler on a project you probably won’t be able to use other git tools.