L + ratio + riichi + red 5 + pinfu
Misplaced Lens Cap

Kaledo Art
dirt enthusiast
Monterey Bay Aquarium

roma★
let's talk about Bridgerton tea, my ask is open
he wasn't even looking at me and he found me
2025 on Tumblr: Trends That Defined the Year
noise dept.
almost home
tumblr dot com
i don't do bad sauce passes

Product Placement

JVL
Keni

❣ Chile in a Photography ❣

Cosimo Galluzzi
h
$LAYYYTER
seen from United States
seen from United Kingdom

seen from Indonesia

seen from United States
seen from Türkiye

seen from United States

seen from Canada

seen from Malaysia
seen from Brazil

seen from Malaysia

seen from Malaysia

seen from Mexico
seen from Saudi Arabia

seen from Canada
seen from United Kingdom

seen from United States
seen from United States

seen from United States

seen from Malaysia

seen from Germany
@piratesexmachine420
L + ratio + riichi + red 5 + pinfu

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Already we've got a good representative example of why C is so frustrating. The first step in the freeWAIS build process is to compile the file "config.c", run "./config", and write the output to "config.h" -- analogous to Autoconf. In only 117 lines, it manages to run into the following UB/unportability/misc problems:
Fails to include stdlib despite referencing exit(), which creates an implicit definition of exit as "extern int exit()" that contradicts the actual prototype "extern void exit(int)".
Defines main with the signature "int main()". This is not one of the two allowed ways to define main, as it is not equivalent to int main(void), and empty-paren declarators are an obsolescent feature anyways. (This is correct in C23, however.)
Declares a bunch of unused variables. C89's "declarations up front" rule makes it difficult to tell which variables are actually used at a glance without asking the compiler. In this case, 7/14 are unused. (One of which is written to but never read from -- the others are completely unused).
Tests that sizeof(char) is equal to 1. It is guaranteed to be 1 by the standard. (Obviously at the time it mattered that you tried to cater to noncompliant compilers too, but this configure program isn't sophisticated enough to actually handle such a compiler.)
Calls printf() with a potentially-too-small %d conversion specifier for a size_t argument.
Calls exit(1) to mean a failure. C89 makes exit's behavior with any argument other than EXIT_SUCCESS, 0, or EXIT_FAILURE implementation-defined.
Forgets to call exit() in the case where they couldn't define four_byte, which will result in accessing an uninitialized variable on line 92.
Tests alignment for a few types by casting pointers to int and subtracting them. This is maybe defined, if your pointers can fit in an int. If they can't that's UB. If they can, the result is still entirely implementation-defined. Implementations are allowed to "stuff" extra information in the bottom of pointers with > 1 stride, for example. Raw pointer subtraction is also implementation-defined, and in this case subtracting two pointers that don't point to the same array object is undefined.
Tests endianness by casting a unsigned long to (essentially) a char array. char is not guaranteed to be 8-bit -- this endianness check fails to take advantage of our earlier work to get absolutely-sized types -- the values of these de-references are unspecified (or possibly UB? The C89 standard is fuzzy and doesn't make the explicit aliasing carve-out for char* that C99 does), and by failing to check the ordering of the middle bytes we potentially misunderstand the reality of our operating environment.
And that's not even mentioning the style issues!
What do we even do with this? Rewrite it? How? This program can't even be written in C89. There is no combination of operations with the necessary semantics. It's like trying to build a real perpetual motion machine by just obeying the laws of thermodynamics harder. How the fuck am I supposed to get struct member alignment without alignof or well-defined pointer comparison? You want me to use offsetof? Are you kidding me?
Is this really a "high-level assembler" if I cant do basic address calculations like alignof? I don't care if that makes my program unportable to some other systems which can't do address calculations, the point of my program is to do address calculations! I want that to be a compilation error!
But oh nooooooooooo, we can't fracture the ecosystem by adding standardized optional features. Don't you remember C99? Poor MSVC will feel so left out! The solution is to make everything useful a nonstandard optional feature. "You want to write software that isn't portable to the three worst Harvard architectures of 1954, but will run on everything else? Oh so you want to do something we didn't define? Oh so you HATE portability actually? Oh so you want to write low-level code? Oh so you're evil? Oh so you're actually a terrible person? Well then start passing everything behind tagged void pointers and get to memorizing the builtins of the top twenty most popular compilers, stupid!"
As of C23, we can write an equivalent program in about 37 lines; and it's entirely redundant because we're just defining macros that wrap new standard macros (or operators).
Which begs a lot of questions. Why were we writing C again? Oh right, to fix up a decaying C89 codebase. Is it really a good idea to do that by maintaining two different standards versions in the same source tree at the same time? They aren't compatible forwards or backwards, and we can't declare the language version within a file, either. And what happens when we need to write a program that C23 can't express? Use only compilers with up-to-date experimental C2y support? Weren't we trying to be more portable? What even is "portable"? Or an assembler? Or a Dennis Ritchie? Is this actually more of a "real programmer" language than just string templating yaml helm charts all day, if we have to inject all the real meaning into our program at configure-time? Does God really love us?
Prolly not.
As a counterpoint to my appreciation for libjpeg's use of Autotools, let me say that I'm very glad freeWAIS didn't use Autotools. freeWAIS-sf did, and poorly, and I could not get that shit to build for the life of me.
Not that this is building either. But at least I can debug it!
As a counterpoint to my appreciation for libjpeg's use of Autotools, let me say that I'm very glad freeWAIS didn't use Autotools. freeWAIS-sf did, and poorly, and I could not get that shit to build for the life of me.
AT LAST I HAVE CNIDR FREEWAIS-0.3 IN MY POSSESSION! It took so much goddamned fumbling around, but I eventually found this slightly-dodgy-looking Russian website:
And what do you fucking know, their indexes are incredible. Literally two seconds of searching and I've found that Debian's Finnish FTP mirror has an archive of ftp.sunet.se, which used to mirror CNIDR's old FTP prior to 2016, which included freeWAIS-0.3.tar.gz. (SCO has a copy too, but just 0.3. Comes with crusty binaries at least.)
Another two seconds in FileZilla and now I've got the source tarballs I've been wasting months looking for. Why is none of this indexed by any web search engines?????
If you're also interested, for whatever reason, the tarballs are here: https://ftp.fi.debian.org/mirror/archive/ftp.sunet.se/pub/doc/nir/z39.50/NIDR/software/freewais/

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Back to working on Arena 0.96s. I fucking hate hand-written Makefiles from the 90s. Say what you want about Autotools, but of two dependencies included in the 0.96s source distribution, libjpeg still builds beautifully from source with a simple ./configure && make && make install.
Meanwhile, Arena wants me to just go "figure out" what all the preprocessor flags I need to set are, then write a Makefile.include all by my goddamned self; and libwww has the most deranged BUILD script I've ever seen (not even included in the source distribution, of course, so I have to go hunt that down from 3.0pre3). What is even the point of build-time configuration if you're just gonna hardcode 90% of your assumptions?! AAAAAAAAAAAAAAAAAAAA!
"fairly lean/clean C/xlib".
"-fwritable-strings recommended".
Come on.
No, wait, there's a typo I didn't notice. It's actually written "faily lean/clean C/xlib". Unintentionally apt.
Back to working on Arena 0.96s. I fucking hate hand-written Makefiles from the 90s. Say what you want about Autotools, but of two dependencies included in the 0.96s source distribution, libjpeg still builds beautifully from source with a simple ./configure && make && make install.
Meanwhile, Arena wants me to just go "figure out" what all the preprocessor flags I need to set are, then write a Makefile.include all by my goddamned self; and libwww has the most deranged BUILD script I've ever seen (not even included in the source distribution, of course, so I have to go hunt that down from 3.0pre3). What is even the point of build-time configuration if you're just gonna hardcode 90% of your assumptions?! AAAAAAAAAAAAAAAAAAAA!
"fairly lean/clean C/xlib".
"-fwritable-strings recommended".
Come on.
Back to working on Arena 0.96s. I fucking hate hand-written Makefiles from the 90s. Say what you want about Autotools, but of two dependencies included in the 0.96s source distribution, libjpeg still builds beautifully from source with a simple ./configure && make && make install.
Meanwhile, Arena wants me to just go "figure out" what all the preprocessor flags I need to set are, then write a Makefile.include all by my goddamned self; and libwww has the most deranged BUILD script I've ever seen (not even included in the source distribution, of course, so I have to go hunt that down from 3.0pre3). What is even the point of build-time configuration if you're just gonna hardcode 90% of your assumptions?! AAAAAAAAAAAAAAAAAAAA!
Several of you may hate me for this but I'm actually surprised to see Project Hail Mary is still above 4 stars on Letterboxd. You're telling me this is 144th best film of all time? It's better than Heat? Better than No Country for Old Men? Better than Psycho or Children of Men or Fantastic Mr. Fox or Terminator 2 or Akira or Casablanca or Alien or 2001 or Metropolis or WALL·E or Pulp Fiction or Vertigo or Citizen Kane or The Matrix or Star Wars or Pan's Labyrinth or
Project Hail Mary is better than all of them? Did we watch the same movie?
New Abandoned Pools single sounds like if Owl City had made a track for Sublime Currency or Button Pusher. Hmm. I don't really know how to feel about this. It's certainly more interesting than most of his post-Armed to the Teeth work (though I personally have a soft spot for Somnambulist) but it's so out of left field...
I guess I like it? It's a little generic, but I'm glad Tommy is still at it. Here's hoping this bodes well for the next album?
I guess what I'm saying is:
It's listenable.
It's not what I'd call "great", and I would probably even hedge saying "it's good". It's... well, I already said it: it's listenable. I'm willing to put it in the liked music playlist but not the all-time favorites.
It isn't as boring as some of The Haunted House was.
I like the trumpet. In fact, with a few listens, the trumpet might be enough to push this up into "good" and not just "listenable". It has a fun energy that excuses the embarrassing lyrics.
Humanistic and Armed to the Teeth are both so good, and so underrated, that I'm willing to cut Tommy Walter some slack I wouldn't extend other artists.
Please for the love of god Tommy I know you're trying to be more than just "the Start Over or The Remedy or Sunny Day or Master (Clone High Theme) guy" but I'm desperate for one guitar. On one song. Just one guitar please. Remember when this was a rock project? I'm begging you.
Thanks for still making music Tommy <3

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
New Abandoned Pools single sounds like if Owl City had made a track for Sublime Currency or Button Pusher. Hmm. I don't really know how to feel about this. It's certainly more interesting than most of his post-Armed to the Teeth work (though I personally have a soft spot for Somnambulist) but it's so out of left field...
I guess I like it? It's a little generic, but I'm glad Tommy is still at it. Here's hoping this bodes well for the next album?
Okay, besides the deranged title, this seems to just be a somewhat sloppy pop-sci video about microorganisms living inside fog; and not the weirdest conspiracy theory I've heard all year.
Basically he's summarizing this paper:
Okay, besides the deranged title, this seems to just be a somewhat sloppy pop-sci video about microorganisms living inside fog; and not the weirdest conspiracy theory I've heard all year.
Wut
C programming pop quiz
Given the following declaration and initialization:
auto x = 'a';
what is the type of x?
x is a char
x is a short
x is an int
x is a long
x is something else
this won't compile because auto isn't a C keyword
this won't compile for some other reason
(see results)

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Of all the ISS modules to have worsening leaks, I don't think there's any more worrying than Zvezda.
06/06/2026