Someday someone needs to create a build tool called BIMF: Build It Mother Fucker.
Programming
On occasion, I read (and see) things and am amused. The graphic at the end of this nVidia post on Vulkan Memory Management is a key example.
While my day began with Vulkan things, I came across a rather nice read on gamma:
Halo’s developers explain what can go wrong with unlocked framerates in old game ports
It’s also worth remembering that these kind of weird ass behaviors and bugs can occur on games natively developed for PCs. Older games often have to cope with hardware that is faster than anyone imagined, and totally different from what the game was developed on.
A prime problem that comes to mind is the flying APC bug in MW3. On my older Pentium D machine, APCs would often fly up into the air and usually come back down. On my Core i5 machine: they never would come back down, or even be within targeting range most of the time. Which makes it hard to complete some of the early missions, lol. Today you require limiting the CPU speed and emulating a graphics card in software just to render it playable on modern hardware.
In fact, the game was old enough that when my eyes lit up at finding a copy of Mech Warrior 3: the next problem to solve was convincing the clerk to sell it to me because there was no returns welcomed, lol. I seem to recall Pentium 3s and Pentium IIs being high end processors around the time the game was released.
Microsoft shows off how containerized apps will work in Windows 10X
My interest in dual screen productivity to go, aside, I’m kind of interested to see where this goes. Most of the experiences I’ve had with containers in Linux, be out Docker, or building on top of chroot, have been a largely positive experience. Combine that container concept with the stability of the Win32 ABI, and there’s some viable good sides to this.
As software becomes increasingly long lived, the need to support software no one is ever going to recompile: keeps going up. Not to mention software that no one is ever going to port forward to more modern APIs and tool chains.
Things that remind me 16 GB of RAM isn’t enough for anything: when opening a nearly 1 gigabyte perf.data file in perf report, both takes forever and consumes ~92.5% of memory according to htop.
And somewhere along the way it exits with a message about being killed, and a toast pops up about my WiFi disconnecting. I’m sure the kernel OOM killer had a lot of fun.
Things I can blame on ninja: finally seeing what graphviz / dot files look like, in their textual form. Which is really neat! If you wanna generate a graph from a program, definitely look at graphviz and its various tools like dot.
Things I can blame on programmers: when “ninja -t graph | dot -Tpng -ograph.png” gives me a 50meg file that is over 18,000 x 32,000 pixels. Which is due to the size and complexity of the code base.
On a positive side, my part of the job was mainly getting it to build in a non broken way. Not writing software several times the size of Jurassic Park.
https://www.humblebundle.com/books/oreilly-classics-oreilly-books
While I can’t speak for the reference books, O’Reilly technical books are usually worth the money. Two on this list that I can vouch for are Programming Perl, as I own a hard copy of a previous edition, and Java in a Nutshell which is a rather good book for getting up to speed on the language.
I remember buying the Camel book for about $56 nearly a decade ago. Came for a means of thinking through the documentation that didn’t require alt+tab, stayed for the wonderful wit, anecdotes, and stories. If you’re serious about Perl, you probably should own a copy or three.
Java in a Nutshell, I had checked out from the public library over a decade ago wanting to brush up on how the language has evolved since my study, and really found its explanations wonderful. Especially if you’ve ever wondered why the answer to Generics in Java is so often no. The only Java book on my shelf, by contrast was written while JDK had yet to reach a 1.0 release. Needless to say, I had needed updating, lol.
Captain’s log, stardate 2019.334
Misc thoughts from the holiday.
Despite how depressing my life might appear to some outsiders, I’m actually pretty happy. Thankful for the good things in my life, and hopeful that they stay that way. As the old prayer goes, “Grant me dexterity for things I cannot kill, Crit for things I can, And enough points in wisdom to know the difference”
Making reuben sandwiches reminded me just how damned delicious a good sandwich is. Didn’t find any cuban or rye bread when I went shopping, so I grabbed a loaf of Texas Toast in the hopes that it would at least hold up to the frying. Experiments in eating leftovers make me think, getting this again might be a good plan. It’s thick enough that I can actually pack a sandwich well, the kind my momma would make; without being as cost and space ineffective as a hoggy roll.
I might be a terrible human being if I’m inclined to share my sandwich with the doggos, and then threaten them with hugs as the price of giving me a “Hey, where’s the follow up treats?”. Or just a weirdo. Yeah, I’m going with that last one.
Willow and Misty are definitely smarter than me when it comes to being comfortable.
Revising one of my old projects, I’ve come to two conclusions, well three but that’s another paragraph. First is when I do stuff at home: the working conditions are kind of brutal. A positive side of working on work stuff at work, is there is more encouragement to take micro breaks. You know, like drinking a cup of coffee or taking a piss. It’s very draining to code at home, and I’m not a seventeen year old kid no more.
The suffering of CMake while reviving one of my own projects, finally crossed the “Just live with it” point, and I spent my day making a really good start on a simple json -> build.ninja generator. It probably helps that C++ and I are long time companions, and that I’ve a high tendency of hand writing build.ninja files rather than using a tool to generate them.
And whoever the hell decided to wake the neighborhood up at 0400, better knock that shit off. My first thought was neighbor taking the family on a their own Vacation ’83, my second thought was wondering if they’re skipping town before rent’s due. In any case Corky and I didn’t enjoy the sleep disruption.
In spending the past week abusing myself with CMake, I think two things are fundamentally true and unlikely to ever change:
- CMake 3.16 beats the crap(!) out of 2.x.
- I will never, ever love CMake. Period.