[-] [email protected] 21 points 3 weeks ago* (last edited 3 weeks ago)

BitTorrent breaks your data in blocks, each block is hashed, their sizes are known. Assuming you got your .torrent file from a legitimate source, it's practically impossible to receive something else, as long as your client does all the checks properly.

In theory, it is possible to write malware that will collide hashes with some other content, but considering you are restricted to the size of the actual content, it's extremely unlikely that out of all the millions of .torrents we created so far we can find even one for which it is possible.

And even if you win this absolutely bizzare lottery, you'll be competing with legitimate peers for serving the blocks. If at least one block that you care about is not served by you, the recepient will just get corrupted content that won't be dangerous in any way. In other words, you need to have so much bandwidth, that you serve everything before anyone else can serve even one significant block. At which point you will probably have to spend a lot more money on that than you'll ever get from whatever malware you are trying to serve.

[-] [email protected] 20 points 4 weeks ago* (last edited 4 weeks ago)

I gladly present you this jank.

You might need these to compile:

cargo add image
cargo add clap --features derive

And the jank itself:

Some Rust code

use std::path::PathBuf;

use clap::Parser;
use image::{ imageops::{self, FilterType}, ImageReader };

#[derive(Parser)]
struct Cli {
    path: PathBuf,
    #[arg(short = 'H', long, default_value_t = 30)]
    height: u32,
    #[arg(short, long, default_value_t = 0.4)]
    ratio: f32,
    #[arg(short, long, default_value_t, value_enum)]
    filter: Filter,
}

#[derive(clap::ValueEnum, Clone, Default)]
enum Filter {
    Nearest,
    Triangle,
    Gaussian,
    CatmullRom,
    #[default]
    Lanczos3,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args = Cli::parse();
    let filter = match args.filter {
        Filter::Nearest    => { FilterType::Nearest },
        Filter::Triangle   => { FilterType::Triangle },
        Filter::CatmullRom => { FilterType::CatmullRom },
        Filter::Gaussian   => { FilterType::Gaussian },
        Filter::Lanczos3   => { FilterType::Lanczos3 },
    };
    let img = ImageReader::open(args.path)?.decode()?;
    let original_ratio = img.width() as f32 / img.height() as f32;
    let width = ( args.height as f32 / args.ratio ) * original_ratio;
    let out = imageops::resize(&img, width as u32, args.height * 2, filter);
    let mut iter = out.enumerate_rows();
    while let Some((_, top)) = iter.next() {
        let (_, bottom) = iter.next().unwrap();
        top.zip(bottom)
            .for_each(|((_, _, t), (_, _, b))| {
                print!("\x1B[38;2;{};{};{};48;2;{};{};{}m\u{2584}", b[0], b[1], b[2], t[0], t[1], t[2])
            });
        println!("\x1B[0m");
    }
    Ok(())
}

[-] [email protected] 23 points 1 month ago

Some of this is totally on Google Translate.

In the second picture, the text is 飯テロ見ながら、寝るよ

飯テロ is not "terrorist attacks". 飯 is food, テロ is terrorism, together they form a slang word that is used when someone posts pictures of delicious food while you are hungry.

So, this person was just going to watch food porn while lying in bed, but... Yea, translation error.

[-] [email protected] 15 points 3 months ago

Yea, when I switched to Linux, at first I installed PowerShell to get something familiar, but quickly realized that contrary to Windows, terminal on Linux is actually usable on it's own out of the box.

[-] [email protected] 19 points 3 months ago

Looks like a perfectly normal "Enter" key on an ANSI keyboard. Why the confusion?

[-] [email protected] 21 points 10 months ago* (last edited 10 months ago)

Some people have to use their stuff for a variety of reasons, don't be a dick about it.

[-] [email protected] 17 points 11 months ago

Usually the methods are not shared because streaming services would go out of their way to break them. Just like Youtube breaks yt-dlp every now and then. But Youtube is too big to implement any serious protection, so, downloaders usually win. I heard Crunchyroll is ripped via their mobile app, albeit modified. But specifics are better left in the dark.

[-] [email protected] 18 points 1 year ago

Nah, Georgian is arcs and circles everywhere, like this: ეს ქართული დამწერლობაა.

[-] [email protected] 16 points 2 years ago* (last edited 2 years ago)

Ducks are learning to gaslight people. Fascinating.

[-] [email protected] 16 points 2 years ago

Except it's a proprietary piece of junk stuck on USB 3.1 (and I love my thunderbolt connectors too much to let it slide), that can't offer proper power delivery because of power pin literally burning out.

The only thing they did good is fixing the need to check cable orientation before inserting it (yes, you don't have to try three times, you can just actually use your eyes, USB-A connector's orientations can easily be told apart just by two square thingies on each of it's sides).

But as USB-C came out two years later, it wiped the floor with lightning. Anyone saying otherwise is either insane, didn't read the specs or purposefully misleading you. And only now Apple is switching over. Freaking 7 years later. Though, not because they realize how inferior their connector is, but because they were made to.

[-] [email protected] 15 points 2 years ago

Because math works with Y up. Physics steal from math, engeneering steals from physics, so, here you are.

What I can't get is imperial measurement system. Apparently, nobody but americans can. And that stuff is far worse than Y and Z switching places.

[-] [email protected] 17 points 2 years ago

And then there will be another fork that does something about their something. Just like what happened to Vanced, for example.

view more: ‹ prev next ›

TwilightKiddy

0 post score
0 comment score
joined 2 years ago