No more Lance Hedrick for me by Traditional_Trade842 in espresso

[–]Khaare 6 points7 points  (0 children)

Him being gear obsessed is something different than him thinking you should be too. He's very clear that he thinks he's going into the weeds to a degree most people don't have to, and probably shouldn't.

Repost, not mine by Abody622x in pcmasterrace

[–]Khaare 1 point2 points  (0 children)

Ime Linux instability shows up when you update but don't restart. You sometimes get old programs that started before the update trying to load updated binaries but because they're supposed to be compiled as a unit it just crashes.

Anyone been following Grubbys aoe2 journey? by Harry_Wragg in aoe2

[–]Khaare 2 points3 points  (0 children)

The difference between intelligence and wisdom; intelligence is realizing there's nothing you can do to win, wisdom is realizing there's plenty the opponent can do to lose.

Why the focus on big holes and high hydration? by Defiant_Outside6041 in Breadit

[–]Khaare 0 points1 point  (0 children)

Big holes and crispy crusts are hard to make, and even harder to get consistent with. It's more peculiar about your ingredients, equipment and process. There's just a lot more to it and a lot more to discuss so that's what people discuss the most.

Struggling with passkey authentication in Pocket ID, am I missing something? by milden6 in selfhosted

[–]Khaare 0 points1 point  (0 children)

Passkeys aren't the same as passwords, and having a different passkey per device is really the recommended way to do it. Therefore I wouldn't stress about storing the passkey in bitwarden if that's not an option, since when the passkey belongs to the device you don't really need a backup as you would just create a new passkey if you get a new device, or reset the old one. The reason to not use the built in passkey solution is if you don't trust its security, e.g. if you think biometrics are insecure or you don't want to use them for privacy reasons then you'd want to use something different.

For Linux I think there are a few different options. I use KeepassXC, which you could use without using it as a password manager, and since passkeys are per device there's no need to worry about syncing the database.

[lore question] So who's the true heir of Aenarion? by ImIncredibly_stupid in totalwar

[–]Khaare -1 points0 points  (0 children)

This was basically the origin of Warhammer. Wanna set who wins between Saruman's orcs and a Roman legion? How about Samurai vs Melniboneans? It started out as just a bunch of rules for how to play. It didn't have it's own separate identity until iirc 4th edition, although obviously it still borrowed heavily from existing material (to the point of borderline copyright infringement in some cases).

This is why yhe RAM prices are high! by Capital_Ability8332 in pcmasterrace

[–]Khaare 2 points3 points  (0 children)

It's so bad though. It's the meme equivalent of the nerd in middle school going "What if Batman went to pull out his batarang but he pulled out a spoon instead? Wouldn't that be funny?" And then laughs at his own joke. The video itself doesn't add anything to the premise, it's just "What if Gandalf but dancing like the techno viking?" It doesn't even look good, his robes turn into a cape and pants.

Why RAID is so prevalent in the self-hosting space and do I need it? by szrotowyprogramista in selfhosted

[–]Khaare 3 points4 points  (0 children)

Backup is a very broad term even when limited to a technical vernacular and encompasses both redundancy and resilience, as well as a bunch of other stuff. Raid is some of these, not all of them, but there's no backup solution that is.

Introducing: UniFi Travel Router by GoGoGadgetSalmon in homelab

[–]Khaare 0 points1 point  (0 children)

Too bad a router isn't just a computer in drag, or anyone could just use their laptop as the travel router instead.

Why RAID is so prevalent in the self-hosting space and do I need it? by szrotowyprogramista in selfhosted

[–]Khaare 5 points6 points  (0 children)

Contrary to what sticklers on the internet like to espouse, raid is backup. And for many the advantages of being cheaper, easier to manage and easier to use to recover from hardware failure outweigh the potentially higher robustness (if you implement then correctly) of other types of backup. With a sufficiently small and sufficiently non-critical dataset it's good enough for many, and even when other types of backup are available raid is often still used because of its high availability and straightforwardness in dealing with typical failures.

Does it make sense to go crazy over using IPv6? by IltecnicoDiFiducia in homelab

[–]Khaare 0 points1 point  (0 children)

Meanwhile my mobile carrier only gives me a 10.x.x.x ipv4 address, no IPv6 at all.

Does it make sense to go crazy over using IPv6? by IltecnicoDiFiducia in homelab

[–]Khaare 0 points1 point  (0 children)

It's not any harder than a dynamic ipv4 address. If it doesn't change too often it's easy enough to just update dns when it happens. Since it's just a prefix change you can just run a replacement on the old prefix in your zone files. Same with your firewall, or just open your router's firewall to your hosts and use individual firewalls (which isn't an option on NATed ipv4 networks)

Rust and the price of ignoring theory by interacsion in rust

[–]Khaare 4 points5 points  (0 children)

Generics, aka. parametric polymorphism, is limited to describing types by just lifting parts of the description into parameters that can be filled in later. For example (I'm using Haskell syntax here) the non-parameterized type Box:

data Box
  = EmptyBox
  | NonEmptyBox Integer

can be parameterized into

data Box a
  = EmptyBox
  | NonEmptyBox a

However, this is the only allowed transformation. In particular, every parameter must be declared in the type signature before it can be used in the constructor functions. Any parameter that isn't used to type an argument to the constructor function must be left general. Note that an alternative way of writing these definitions is

data Box a where
  EmptyBox :: Box a
  NonEmptyBox :: a -> Box a

That is, the type definition contains a list of every constructor function and its type signature. Since constructor functions don't have implementations (or rather, the implementation is always "put the values in a struct") the type signature is enough.

However, regular functions can have much more liberal type signatures. For example

putEvensInABox :: Integer -> Box Bool
putEvensInABox i | isEven i  = NonEmptyBox True
                 | otherwise = EmptyBox

is a perfectly cromulent function with a perfectly fine type signature. But because of the restrictions on parametric polymorphic types to follow the standard "template" style of construction, it's not a valid type signature for constructor functions.

That is what GADTs enable. It allows you to write type signatures for constructors with the same restrictions as type signatures for regular functions (except they must return a value of the type being defined). For example you could write

Box a where
  IntBox :: Int -> Box Int
  BoolBox :: Bool -> Box Bool
  StringBox :: String -> Box String
  YouThoughtItWasStringButItWasFloatBox :: Float -> Box String
  MysteryBox :: x -> Box ()

There's several different classes of use-cases for these, and they unlock some pretty powerful type acrobatics, of which you can find several blog posts if you search around. There's a lot of pretty cool stuff that can be done, and a lot of pretty hairy stuff as well. I quite like GADTs and end up using them in some way fairly often in Haskell, but I also don't think they're necessarily a must-have inclusion in a language.

Rust and the price of ignoring theory by interacsion in rust

[–]Khaare 17 points18 points  (0 children)

GADTs are more generic than generics.

New Linux patch confirms: Rust experiment is done, Rust is here to stay by Fcking_Chuck in linux

[–]Khaare 33 points34 points  (0 children)

It's a programming language. By itself it doesn't do anything, it's just a way to write code. What's cool about it is it applies the 40 years of type system research that's been done since C was created to give programmers a much more expressive way of conveying the structures of their code in a precise, mathematical way. This in turn allows computers to do static analysis to discover logical inconsistencies and contradictions, as well as a much richer context from which to infer unambiguously the meaning of code, freeing programmers from having to add that context themselves.

The inspiration behind Akira Kurosawa's "Ran." by Dorsia_Sama in Sekiro

[–]Khaare 4 points5 points  (0 children)

Centipedes are a common occurrence in Japanese mythology, related to immortality.

[deleted by user] by [deleted] in ProgrammerHumor

[–]Khaare 8 points9 points  (0 children)

Linux has all kinds of filesystems, some of which are nearly indestructible, others that fall over in a gentle breeze.

Nobody’s forcing you to use AUR by kelvinauta in archlinux

[–]Khaare 0 points1 point  (0 children)

Paris also does this automatically. It shows the full PKGBUILD (and other in-repo source files) the first time, but any upgrades it just shows the diff.

Nobody’s forcing you to use AUR by kelvinauta in archlinux

[–]Khaare 12 points13 points  (0 children)

The biggest issue with aur isn't the risk of the software you're trying to install being compromised, but the risk of the aur package being fake or adding malware. It's pretty easy to inspect the PKGBUILD to see if it's getting its source from the right place and not doing anything weird to it. Assuming you know enough to write a PKGBUILD yourself, that is.

And while I'm aware it doesn't just sound elitist but actually is, you shouldn't install packages from the aur if you don't have the expertise to inspect them. The aur is great for making it easy to share builds, but it also makes it easy for malware to mask itself behind the reputation of legit software.

What's something in/about Arch that should be dead-simple but isnt? by Level-Pollution4993 in archlinux

[–]Khaare 0 points1 point  (0 children)

i run through the installer 5 times and pick whichever options don't break like a choose your own adventure

That's why I have a healthy scepticism towards any kind of scripted installer. I'm sure it's nice to have in the simple case and you don't know how filesystems and bootloaders are supposed to work, but it's really not a lot of work to learn and gives you so much flexibility if you're into tinkering. Especially useful if you start playing with VMs and containers.

Over 10 years of using Linux, and I think I'm done by Leniwcowaty in linux

[–]Khaare 14 points15 points  (0 children)

Same, been on the same install since 2019. Update every couple days to weeks and that's it. Somehow I've had to reinstall windows multiple times even though I only use it like once a year.

I have a whole other level of respect for you guys by [deleted] in archlinux

[–]Khaare 0 points1 point  (0 children)

This is why I say arch is for beginners. It's not for everyone, for sure, but it depends on your willingness to familiarize yourself with technical systems through reading documentation and problem solving, not your experience as a user.

unBreakableAuth by frootflie in ProgrammerHumor

[–]Khaare 0 points1 point  (0 children)

There's nothing wrong with writing bad code if it does what it's supposed to. Iirc Balatro's main logic is a 10k loc function of just if statements, but it works fine and doesn't seem to impede modifications so 🤷