

make obsidian great again


make obsidian great again


as European militaries pass it over in favour of Lockheed Martin’s F-35 as their next-generation jet.
haha, they’re being forced (i assume, maybe they’re stupid) to buy that useless broken piece of buggy junk, what a clown show.
the article also constantly talks about the amount of money spent on war production as if that was the main thing, only giving cursory mentions to the actual war materiel output. 


THIS IS WORSE THAN THE PREVIOUS PASTRY-TYPE THEFT! OH THE HUMANITY!



also, 2.5 hr movies became normal. fuck that noise. if it’s that long, i’m gonna need a piss break, especially if i’m drinking something.
i’m just gonna watch it at home


i write little things like the above in it for myself, but i’ve never used it much at work. but yeah, it’s long past its peak and unlikely to ever recover, although it does still have a community using it and writing new libraries for it, maintaining and developing the core language.
it’s a great language, i love it.


it’s a lexical alias to a package variable. super simple stuff.


extremely similar tool if you dont want to open a browser:
#!/usr/bin/perl
use strict;
use warnings;
our $VERSION = '0.4';
use Encode qw/decode_utf8 encode_utf8/;
use Unicode::UCD qw/charinfo prop_invmap/;
use List::Util qw/max sum/;
use Getopt::Long qw/:config no_ignore_case/;
binmode STDOUT, ':encoding(UTF-8)';
GetOptions
'char|c' => \my $opt_char,
'decimal|d!' => \my $opt_decimal,
'hex|x!' => \my $opt_hex,
'hex-escape|X!' => \my $opt_hex_escaped,
'name|n!' => \my $opt_name,
'ascii|a!' => \my $opt_ascii,
'help|h!' => \my $opt_help,
'version|v!' => \my $opt_version
or die usage();
die __FILE__ =~ s{.*/}{}r . " v$VERSION\n" if $opt_version;
my $set_opt_count = sum map { $_ // 0 } $opt_char, $opt_decimal, $opt_hex, $opt_hex_escaped, $opt_name, $opt_help;
die usage("Given options exclude each other") if $set_opt_count > 1;
die usage() if $opt_help || !@ARGV;
$opt_char = 1 if $set_opt_count == 0;
my @args;
if ($opt_decimal) {
@args = [ map { chr } @ARGV ];
}
elsif ($opt_hex) {
@args = [ map { chr hex $_ } @ARGV ];
}
elsif ($opt_hex_escaped) {
@args = map { [ split //, decode_utf8_or_not($opt_ascii, pack 'H*', join '', /(?:\\x)?([0-9a-f]+)/gi) ] } @ARGV;
}
elsif ($opt_name) {
@args = lookup_by_name(@ARGV);
}
elsif ($opt_char) {
@args = map { [ split //, decode_utf8_or_not($opt_ascii, $_) ] } @ARGV;
}
else {
die usage("No option passed, do not know what to do");
}
my @data;
my $codepoint_maxlen = 4;
my $utf8_maxlen = 2;
my $name_maxlen = 1;
my $nrun = 0;
for my $run (@args) {
push @data, undef if $nrun++ > 0;
for my $char (@$run) {
my $codepoint = ord $char;
my $charinfo = charinfo $codepoint;
my $name = $charinfo->{name} || "NONEXISTENT CHAR";
my $utf8 = join ' ', map { sprintf "%x", ord $_ } split //, encode_utf8 $char;
$codepoint_maxlen = max $codepoint_maxlen, length sprintf '%X', $codepoint;
$utf8_maxlen = max $utf8_maxlen, length $utf8;
$name_maxlen = max $name_maxlen, length $name;
push @data, {
char => $name eq '<control>'
? join '', map "\\x$_", split ' ', $utf8
: $char,
codepoint => $codepoint,
utf8 => $utf8,
name => $name,
};
}
}
for my $line (@data) {
if ($line) {
printf
"U+%0${codepoint_maxlen}X (%-${utf8_maxlen}s): %-${name_maxlen}s [%s]\n",
$line->{codepoint},
$line->{utf8},
$line->{name},
$line->{char};
}
else {
print "\n";
}
}
sub usage {
my $name = __FILE__ =~ s{.*/}{}r;
print "@_\n" if @_;
<<~"EOS";
$name [options] [mode] ...
modes:
-c <literal string> ... (this is the default)
-d <decimal code point> ...
-x <hexadecimal code point> ...
-X <string containing only hexadecimal escapes \\xHH> ...
-n <character name fragment> ...
options:
-a - treat input as bytes instead of utf8
-h - this help
-v - version
v$VERSION
EOS
}
sub lookup_by_name {
my @search_terms = @_;
my %cp;
# All codepoints
for my $cat (qw(Name Name_Alias)) {
my ($codepoints, $names, $format, $default) = prop_invmap($cat);
# $format => "n", $default => ""
for my $i (0 .. @$codepoints - 2) {
my ($cp, $n) = ($codepoints->[$i], $names->[$i]);
# If $n is a ref, the same codepoint has multiple names
for my $name (ref $n ? @$n : $n) {
$cp{$name} //= $cp;
}
}
}
my @names = keys %cp;
for my $term (@search_terms) {
@names = grep { /$term/i } @names;
}
return [ map chr, sort { $a <=> $b } @cp{@names} ];
}
sub decode_utf8_or_not {
my ($no_dont_do_it, $string) = @_;
return $no_dont_do_it ? $string : decode_utf8($string);
}
no, there’s also documentation that is 10 years old, entirely out of date and very incomplete.
“It’s a dangerous business, Frodo, playing games. You sit on the couch, and if you don’t stretch regularly, there’s no knowing what shape you might be when you stand up.”
look at those tiny pupils! these headfoots are high as fuck
this isnt even plausible lol, vacuum doesnt have an X in it


go home, old man, you’re finished
i think he’s referring to the butthole sunners


because there’s no reason for this sort of thing. some languages have noun classes. in some of those, the noun classes happen to somewhat line up with male/female.
this is some woo shit, attributing the lack of grammatical gender to some unique perspective. bullshit.
hungarian has no grammatical gender either, and hungary is exactly as sexist as every other european culture.
does anything flush the buffers after the print, but before the break? otherwise, if the stream you’re printing to is buffered, you’re not necessarily gonna see any output


everything randomly distributed between ~/dl and ~/tmp (i dont even remember why i have both), and then i use lr to find stuff (alias lr='ls -lrth'). or find.
as seen in terry pratchett’s last continent (i think that’s the one with the god of evolution)


i’m afraid it’s M$ or MiKKKroSSoft. your choice.

National Guard was only there to maintain peace. They weren’t ordered to break up a protest. But it went to shit
imagine being this naive. you must work at it.
dems would immediately join the republican party in droves to prop it up, so no