• 1 Post
  • 92 Comments
Joined 3 years ago
cake
Cake day: August 7th, 2023

help-circle
  • I don’t have a link or full context, but it turned out that the dev of tessaract (open source program for fediverse sites, involving at least spam and blocking tools) had a functionality in the program that fetched their own block list from their site. But this blocksite was blocking a huge amount of users, fediverse domains, and anything with any keywords which would be anything political, some porn/sexual terms like Yuri, and lots more. This block was completely invisible the ones running the program and would also give fediverse instances that were blocked a generic failed to connect error instead of saying blocked, preventing the fediverse instances from talking.

    Seeing the above, it seems like the dev didn’t handle this discovery in any good way either and retaliated but doing this ddos thing.


  • I support knowing SIMD, but I think it’s worth mentioning that with good design depending on language and compiler you can get SIMD for free by auto vectorization.

    At least Rust does this, and let’s you get away not touching explicit SIMD at all. It’s of course more fragile since you don’t always know if it’s done or not, and they can be skipped for minor changes in code and a, but with good loop hygiene you’ll get a lot of it for free.

    For truly fast implementations though, handmade SIMDis usually better and faster if done correctly. And can do much more than auto vectorization can.







  • Sorta first time Linux user, picked CachyOS because it came with friendly installer and startup install guide/automation. Unlike last time i tried Linux to run some python project on the GPU I never managed to install CUDA.

    CachyOS promised out of box support, wine/proton directly, and the selection of default tools got me far along the Windows migration. So far no issues even compiling programs that need CUDA drivers and more. Haven’t really gamed a lot, but this OS is supposed to be good for that.



  • In principle I agree>!!<, but in practice it’s not clear cut.

    The main one is some historic accuracy, I say some because the color of the skin doesn’t really matter for most things set in some time period or era where a race wasn’t particularly present.

    The second one is just how it looks, we’ll see how well casting Snape for the new Harry Potter goes as it seems to be Harry’s father is bullying the weird black kid. Another one is the Artemis Fowl movie which cases a woman as leader for the Fairy unit, which undermines the actual accomplishment of Holly being the first to get here place as a woman. It’s not the end of the world, but it changes the tone and plot.

    Probably not the end of the world, but these problems fall on the same line as other poor adaption/remake choices that actively hurt the story is try to tell. Not everyone can fit into a role in a story, and I don’t think that’s systematic discrimination. And I reiterate, it largely depends on the setting of the story. For most things, gener and race is not a big factor.



  • Adversarial reviews are also great ways to prune bad ideas and assumptions from plans. Have helped me out greatly and made the better LLMs often go “plan said do X, but doing that is a unknown huge risk that may take longer then the rest of the plan”.

    The superpowers plugin does the brainstorm, qa, design plan, implementation plan, implement, review quite well. It should aid the process of actually doing feature type work. I also add adversarial reviews into the process, saves a lot of time debugging what went wrong after implementation.




  • Peguots(car brand) app requires between 8 and 16 characters, no repeating characters, and that it contain 4 of the following: uppercase letter, lowercase letter, number, a special character in this list @$!%*?&_- ;

    You’d think that’d be fine, but no. It took me several tries to generate a password that complied, even after limiting to only valid characters and a length of 16. I got the feeling there’s an extra rule not shown,maybe lost in translation. In Norwegian it literally says “no repeat or successive characters” making it sound like I can only use a letter once, but thankfully not.

    Pure torture. And the app is so shit I get logged out often, and auto fill with my password manager does not work in that app. Pressing login also fails half the time.


  • They had different names like (1) if they were duplicates. But all my files were named something like “Artist - title.mp3”, and the Metadata tag for artist and title were generated based on the filename. I don’t know how they would look after being synced over to my phone from Spotify though, but it is probably how Spotify names the files that broke it on my phone.

    All the files were in the same folder on my pc too, for reference. So they have unique filenames, but two files could have the exact same artist and song title. I give that’s it’s an obscure edge case, but really frustrating.


  • Not sure if it fully fits, but one of my old HTC android phones has a bug where it would randomly fail any network request, by just never finishing it. No timeouts either.

    It never got fixed. Loading a page in the browser, got stuck, and would need a new refresh. Some apps like Baconreader would get stuck doing the same, any app could have it happen. But sometimes the stars align, Facebooks Messenger had (has? don’t see it anymore) the chat bubbles that showed over whatever else on the screen. And i clicked one of those, and they got stuck loading. And there was literally no way to close it. There was no timeouts, so i eventually had to hold the power button and reboot…

    Other notable mentions, Spotify on android did not handle duplicated files (since you could add your own music to it) with the same filename or at least artist - title metadata. It would always only play one of them. It was very interesting because Spotify on pc worked, so i could play the second track fine there, but if i told it to continue play through my phone then it would continue form the same timestamp on other track… Might be related to my phone being stupid, but there was a whole range of infuriating spotify issues. So i just moved to use poweramp and store and sync local music since i had a lot there to begin with .


  • I’m going to second the ffmpeg answers, they do the job but won’t be completely accurate to timestamps due to cutting at key frames. That’s how you persevere original quality though, and it’s fastest.

    If you need to reencode to fit a target size as well, there exists tools for that too. I made my own for cutting shadowplay recordings by selecting start and stop points in the video and encoding them to fit the discord 8MB limit back in the day. My version is not exactly user friendly to get going though, and not updated for the last 5 years or so. Should still work though.


  • The implicit return is perhaps the most dubious of them. I don’t mind it for simple functions, but they are not so good in anything large and with multiple return sites. Even more so when developers choose to implicitly return 4 chained method calls inside a closure with else cases.

    But the rest aren’t really sins, they are mostly new or different concepts or ways to do something. And if there is a sin, it’s largely because the language itself has a complexity larger than others.

    Taking my own examples here, lambdas are just fine, but the move semantics are cumbersome to deal with. But we need to do it some way, to indicate that a value is actually being moved into the closure. Maybe there are better ways and they make into the language in the future.

    Conditional values and let statements and such is a good consequence of Rusts design choice with returning Results or Option types. Just because it’s different doesn’t make it a sin. Just takes time to learn the right way. I think most come from an exception based language, and that has a differnet code flow than what Rust has.

    Lifetimes are hard though, and I feel a lot of the introduction is made excessively hard with the simple naming. It’s as of every programming tutorial used single letter variable names. Lifetimes isn’t something I’m that good with either, mostly because I haven’t had to use that complexity yet.


  • I can actually see where this is coming from, as I found Rust hard to read when I started out. I do really like Rust for reference, but I do agree Rust is hard to read for someone that has not learned it.

    For example:

    return statements that are implicit just because the semicolon isn’t there. Even better if they occur inside a if block or something like that. Very hard to understanding when you don’t know the syntax rules.

    Lambda functions, especially when using move semantics too. They are quite simple, but if you don’t know the meaning, it’s more arcane characters. Especially when this is used inside lots of chained methods, and maybe a multi-line function in the lambda.

    A lot for the if let x =… type of stataments are tough the first time around. Same for match statements.

    Defining types for use with function::<Type>() and such.

    Lifetimes, especially when they are all named a, b, c etc. It quickly gets messy, especially when combined with generics or explicitly defined types.

    Macros, though not entry level rust to begin with, they are really cumbersome to decode.

    None of these are sins of Rust, but for new people they are a hill to climb, and often hard to just “get” based on previous programming experience and reading the code. Rust can be really hard to approach because of these things. This happens in other languages too, but I do feel Rust has a particularly large amount of new concepts or ways to do something. And this is on top of learning lifetimes and borrow semantics.