I mentioned some of this in another comment in this thread[^1], but CSS has gotten tremendously better since Sass was first introduced in the 00s. Many features we used are now native to CSS, and can be used in your browser, today. Some of them are even better than their sass variants, or at least have special abilities sass doesn't. calc() comes to mind, as it can mix and match units in a way a preprocessor just cant. You can do calc(100% - 10px), which is good for all sorts of stupid corner cases.
And native CSS nesting is basically 1:1 with how Sass does it:
I still use Sass or Stylus[^2] on virtually all of my projects, but its nice to not have to when you just need to get something out or write a userstyle or something.
[1]: Not sure how to provide an instance agnostic link, the few things I've seen people attempt didn't work, but [here's the lemdro.id link](https://lemdro.id/comment/849514)
[2]: I'm largely giving up on Stylus, its sadly unmaintained. My favorite preprocessor though; takes .sass (indented) style to a whole new level on what you can omit
I'd encourage you to take a look at modern CSS with a fresh eye. It's gotten really good. Good enough I've got another blog post in the works talking about how much goddamned fun its gotten. In the last few years alone, we've got sass-style nesting, parent selectors (!), combinator selectors (roughly like list comprehensions in their ability to fill out a matrix of potential selectables), color functions, and far more.
You might consider dropping tailwind entirely then, and using something like open-props, which gives you basically all the features of apply, but in a native CSS package
Well, you get all the real advantages of real CSS. The browser tools work. Various other preprocessors work. You can use timesavers like Sass or Less or whatever else.
The biggest advantage, imo, of using a component based design, where components handle not only the styling but the entire appearance of a "thing", is that you make the contracts for what that thing has to support explicit. If your button needs to be able to change colors, you can add a prop that exposes that ability. If it needs to change sizes, again, that can be exposed by a prop. But they aren't by default.
You can sort of accomplish this in "real" css using attributes carefully, but its not as elegant.
Amusingly, reddit is full of smartest-guys-in-the-room, who are all tripping over themselves to defend tailwind. Very much "LEAVE Brittney Tailwind alone!"
I'd argue that styled components, like Vue SFCs or Surface-ui, are even better in this regard. You can see the whole component there, and all the classes along for the ride. And they're usually written in something fairly close to "real" CSS
When I used to work in an office, I'd always use wireguard to tunnel my traffic on my phone back through my home IP. Got to use their wifi and still maintain my privacy
Google can already do that. It's called "safe browsing" and if your site ever gets on the wrong side of it good luck. It's easier to get off a spamhaus registry than it
Nim is one of my favorite little languages. It's got a lot going for it, and it's a joy to write. Output binaries are tiny, even compared to zig and pure c, and especially small compared to rust and go.
Only real problems with Nim are that cross compiling is difficult (or should I say isn't solved like with cross on rust), documentation is hit and miss, and the library and community support is very small. But everything I've built in it still works extremely well, and is very easy to update
When writing my filtergraphs, I've found the following three "tricks" to be immensely helpful
Use an actual editor. Fish shell has a keybind that opens the current prompt in your $EDITOR, and saving+quitting returns to the editor. Makes multi line ffmpeg filters trivial. Doubly so if your editor has something like TabNine completions
If that's not enough, write the filter in a dedicated file, and use either editor automation or something like entr to run ffmpeg's graph2dot command and then graphviz to get a visualization of said graph. Helps ferret out bugs
Build up more complex graphs using either ffplay or mpv. You can add filters at runtime to mpv via the repl (press ~) and the vf add command
It's a lot more performant, because it makes use of apple's built in virtualization tools. You can adjust how much memory, CPU, and storage are given to the vm
Depends on the device. But generally you put the flipper into capture mode, then run an action on whatever you want to capture (i.e. press a button on the remote). If its IR you have to aim it at the flipper, if its sub-ghz you just hold the two near enough.
I mentioned some of this in another comment in this thread[^1], but CSS has gotten tremendously better since Sass was first introduced in the 00s. Many features we used are now native to CSS, and can be used in your browser, today. Some of them are even better than their sass variants, or at least have special abilities sass doesn't.
calc()
comes to mind, as it can mix and match units in a way a preprocessor just cant. You can docalc(100% - 10px)
, which is good for all sorts of stupid corner cases.And native CSS nesting is basically 1:1 with how Sass does it:
I still use Sass or Stylus[^2] on virtually all of my projects, but its nice to not have to when you just need to get something out or write a userstyle or something.
[1]: Not sure how to provide an instance agnostic link, the few things I've seen people attempt didn't work, but [here's the lemdro.id link](https://lemdro.id/comment/849514) [2]: I'm largely giving up on Stylus, its sadly unmaintained. My favorite preprocessor though; takes
.sass
(indented) style to a whole new level on what you can omit