mina86

joined 1 week ago
[–] mina86@lemmy.wtf 8 points 9 hours ago* (last edited 9 hours ago)

If you have an SVG image you can either embed it directly on the website, or link it using img tag. Whatever the case, there’s no need to export it to PNG.

And yes, that will likely result in a smaller website and furthermore images which can scale smoothly.

[–] mina86@lemmy.wtf 24 points 9 hours ago* (last edited 9 hours ago) (5 children)

Another interesting part is that HTML5 supports embedding SVG. That is, you can put SVG code directly in your HTML5 document and it’s going to render correctly. You can also style it through your website’s CSS file and manipulate the elements via JavaScript.

Though as others pointed out, it’s technically not HTML but XML. For example, you have to close all the elements and quote all the attribute values. But when you embed it inside a HTML document, those rules get relaxed to adhere with HTML. (I.e., you cannot write <circle r=5> in SVG (it must be <circle r="5" />) but you can when you embed it in HTML).

[–] mina86@lemmy.wtf 2 points 11 hours ago

Which is why I haven’t wrote ‘EOF character’, ‘EOT’ or ‘EOT character’. Neither have I claimed that \x4 character is interpreted by the shell as end of file.

[–] mina86@lemmy.wtf 2 points 23 hours ago* (last edited 11 hours ago) (1 children)

Having to type sudo already acts as a molly-guard. Whatever OP wants to do I won’t stop them, but they are doing something strange.

[–] mina86@lemmy.wtf 10 points 23 hours ago* (last edited 11 hours ago)

Sure, though I advise against it. The following C program can do that:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv) {
	if (argc < 2) {
		fprintf(stderr, "usage: %s <command> <args>...", argv[0]);
		return EXIT_FAILURE;
	}

	printf("Executing");
	for (int i = 1; i < argc; ++i) {
		printf(" %s", argv[i]);
	}
	puts("\nPress ^C to abort.");
	sleep(5);

	if (setuid(0)) {
		perror("setuid");
		return EXIT_FAILURE;
	}

	execvp(argv[1], argv + 1);
	perror(argv[1]);
	return EXIT_FAILURE;
}

As seen in:

$ gcc -O2 -o delay-su delay-su.c
$ sudo chown root:sudo delay-su
$ sudo chmod 4750 delay-su
$ ./delay-su id
$ id -u
1000
$ ./delay-su id -u
Executing id -u
^C to abort
0

This will allow anyone in group sudo to execute any command as root. You may change the group to something else to control who exactly can run the program (you cannot change the user of the program).

If there’s some specific command you want to run, it’s better to hard-code it or configure sudo to allow execution of that command without password.

[–] mina86@lemmy.wtf 22 points 2 days ago* (last edited 2 days ago) (3 children)

It’s not. You keep insisting that ^D doesn’t send EOF and yet:

$ stty -a | grep eof
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
$ man stty |grep -A1 eof |head -n2
       eof CHAR
              CHAR will send an end of file (terminate the input)

^D is the EOF character. The thing is that in C every line of a text file must be terminated by a new-line. And so, when you end a file with ^D without a return, you get funky results.

[–] mina86@lemmy.wtf 2 points 3 days ago

If you go with adding a passphrase to the drive keep in mind that if it’s a unique one you may end up forgetting it since you won’t normally be using it. Even if you set it to the same passphrase as root partition, if you ever change passphrase for root you might forget to change home passphrase.

I would probably just make a physical copy of the key file. It’s just 32 bytes (no, larger key file doesn’t make things any more secure) so you can hexdump -C it and copy the key on a piece of paper.

[–] mina86@lemmy.wtf 39 points 5 days ago (12 children)

Mint is fine. Rather than changing distros, rather keep using it and configuring it the way you want it. For the most part, GNU/Linux is GNU/Linux is GNU/Linux and many popular distributions are largely the same.

[–] mina86@lemmy.wtf 1 points 1 week ago

This is too simplistic example to give any meaningful answer. What’s Type? What’s value? If it’s i32 and 42 than they both compile to the exact same thing. But if Type is Drop than the second will call the destructor on each iteration. (I’ve also written previously about similar example with BorrowedBuf^1^).