• 1 Post
  • 99 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle


  • Because if you disable browser autocomplete, what’s obviously going to happen is that everyone will have a text file open with every single one of their passwords in so that they can copy-paste them in. So prevent that. But what happens if you prevent that is that everyone will choose terrible, weak passwords instead. Something like September2025! probably meets the ‘complexity’ requirement…


  • addie@feddit.uktoProgrammer Humor@programming.devPsychopath Dev
    link
    fedilink
    arrow-up
    49
    arrow-down
    4
    ·
    edit-2
    10 days ago

    A bit like when we renamed all the master/slave terminology using different phrasing that’s frankly more useful a lot of the time, I think it’s about time we got rid of this “child” task nonsense. I suggest “subtask”. Then we can reword these books into something that no-one can make stupid jokes about any more, like “how to keep your subs in line” and “how to punish your subs when they’ve misbehaved”.


  • Well now. When we’ve been enforcing password requirements at work, we’ve had to enforce a bizarre combination of “you must have a certain level of complexity”, but also, “you must be slightly vague about what the requirements actually are, because otherwise it lets an attacker tune a dictionary attack against you”. Which just strikes me as a way to piss off our users, but security team say it’s a requirement, therefore, it’s a requirement, no arguing.

    “One” special character is crazy; I’d have guessed that was a catch-all for the other strange password requirements:

    • can’t have the same character more than twice in a row
    • can’t be one of the ten-thousand most popular passwords (which is mostly a big list of swears in russian)
    • all whitespace must be condensed into a single character before checking against the other rules

    We’ve had customers’ own security teams asking us if we can enforce “no right click” / “no autocomplete” to stop their users in-house doing such things; I’ve been trying to push back on that as a security misfeature, but you can’t question the cult thinking.


  • We’ve found it to be the “least bad option” for DnD. Have a Discord window open for everyone to video chat in, have a browser window open with Owlbear Rodeo or Foundry / Forge for your tokens and character sheets, all works smoothly enough. The text chat is sufficient for sending the DM a private message; for group chat to share art of the things you’ve just run into or organise the next session.

    Completely agree that for anything “less transient”, then the UX is beyond awful and trying to find anything historical is a massive PITA.




  • addie@feddit.uktoxkcd@lemmy.world2982: Water Filtration
    link
    fedilink
    English
    arrow-up
    44
    arrow-down
    1
    ·
    12 days ago

    The joke about adding well water back in again at the end is “correct”. Reverse osmosis removes 100% of the solids from the water, but drinking water usually contains small quantities of solids - you can see a breakdown on the label of some bottled water. Completely pure water would leach all of the solids that have built up on the insides of water pipes over the decades, and leaches away the protective oxide layer from metal pipework, causing it to corrode surprisingly rapidly. It also tastes pretty shitty - kind of “dead”. So a small amount of high-solids water is mixed back in after RO to bring the water back to normal levels.

    All that other shit in the diagram? No. Purification and treatment takes place after the mixing step, it would be crazy not to.




  • Yeah, it’s always had really strong art direction - still holds up, and you don’t notice missing shadows so much in the middle of a frenetic sequence anyway.

    Good to see ray tracing coming along. You could get the same shadows and lighting in a modern rasterising engine now as demonstrated in the RTX version, but at the cost of much more development time. Graphics like that being available to smaller studios and larger games being feasible for bigger studios would be great. HL2 is massive compared to modern shooters, and not having to spend forever tweaking each scene helps with that.


  • When I was still dual-booting Windows and Linux, I found that “raw disk” mode virtual machines worked wonders. I used VirtualBox, so you’d want a guide somewhat like this: https://superuser.com/questions/495025/use-physical-harddisk-in-virtual-box - other VM solutions are available, which don’t require you to accept an agreement with Oracle.

    Essentially, rather than setting aside a file on disk as your VM’s disk, you can set aside a whole existing disk. That can be a disk that already has Windows installed on it, it doesn’t erase what you have. Then you can start Windows in a VM and let it do its updates - since it can’t see the bootloader from within the VM, it can’t fuck it up. You can run any software that doesn’t have particularly high graphics requirement, too.

    I was also able to just “restart in Windows” if I wanted full performance for a game or something like that, but since Linux has gotten very good indeed at running games, that became less and less necessary until one day I just erased my Windows partition to recover the space.


  • It’s a simple alphabet for computing because most of the early developers of computing developed using it and therefore it’s supported everywhere. If the Vikings had developed early computers then we could use the 24 futhark runes, wouldn’t have upper and lower case to worry about, and you wouldn’t need to render curves in fonts because it’s all straight lines.

    But yeah, agreed. Very widely spoken. But don’t translate programming languages automatically; VBA does that for keywords and it’s an utter nightmare.


  • If you move past the ‘brute force’ method of solving into the ‘constraints’ level, it’s fairly easy to check whether there are multiple possible valid solutions. Using a programming language with a good sets implementation (Python!) makes this easy - for each cell, generate a set of all the values that could possibly go there. If there’s only one, fill it in and remove that value from all the sets in the same row/column/block. If there’s no cells left that only take a unique value, choose the cell with the fewest possibilities and evaluate all of them, recursively. Even a fairly dumb implementation will do the whole problem space in milliseconds. This is a very easy problem to parallelize, too, but it’s hardly worth it for 9x9 sodokus - maybe if you’re generating 16x16 or 25x25 ‘alphabet’ puzzles, but you’ll quickly generate problems beyond the ability of humans to solve.

    The method in the article for generating ‘difficult’ puzzles seems mighty inefficient to me - generate a valid solution, and then randomly remove numbers until the puzzle is no longer ‘unique’. That’s a very calculation-heavy way of doing it, need to evaluate the whole puzzle at every step. It must be the case that a ‘unique’ sodoku has at least 8 unique numbers in the starting puzzle, because otherwise there will be at least two solutions, with the missing numbers swapped over. Preferring to remove numbers equal to values that you’ve already removed ought to get you to a hard puzzle faster?


  • In which case, the job becomes transferring the bottled samples into sample tubes in trays so that the machine can process them, and usually adding a barcode to each sample tube. The sample tubes need to be kept immaculate as well - some of the things that we test water for, like pesticides, are only present in miniscule concentrations. Might not actually save a great deal of time, and you need to buy and maintain a very expensive automated sampler.

    When I used to work in the water industry, we were usually able to get PhD-qualified research chemists to do all this mind-numbing laboratory work. There’s a bit of a surplus of qualified chemists compared to the number of chemist jobs available, so you got absurdly over-qualified people applying for these roles.



  • Now, for the best battery health, just need to only charge everything that’s used portably but plugged in every night to 80%, and everything that’s occasionally moved from place to place but only ever used when it’s plugged in to 50%.

    100% charges are for those occasions when you’ll be working away from power for a few days.



  • You can write an unmaintainable fucking mess in any language. Rust won’t save you from cryptic variable naming, copy-paste code, a complete absence of design patterns, dreadful algorithms, large classes of security issues, unfathomable UX, or a hundred other things. “Clean code” is (mostly) a separate issue from choice of language.

    Don’t get me wrong - I don’t like this book. It manages to be both long-winded and facile at the same time. A lot of people seem to read it and take the exact wrong lessons about maintainability from it. I think that it would mostly benefit from being written in pseudocode - concentrating on any particular language might distract from the message. But having a few examples of what a shitfest looks like in a few specific languages might help