u/MEaster

2,635 post karma · 39.1k comment karma · joined Jul 2010

MEaster

Really? That's interesting because there's a button here that says "Generative upscale", and when I click it it starts talking about generative AI models. Oh, here's two more: "AI Denoise" and "AI Sharpen". And there's this "Generative Fill" button when I make a selection in the image.

Funny how many AI features it has for generating images for software you claim has no AI features.

MEaster

Memory safety violations result in UB, which makes it impossible to reason about your program's behaviour. Name one safety that doesn't depend on being able to reason about a program's behaviour.

MEaster

On a real string, it does.

MEaster

It's pretty common for things on small scales (both in terms of space and time) to look very fake when viewed slower or bigger.

MEaster
MEaster

For me is was my £260 printer allowing me to design a replacement part for my window. The little (pinion?) quarter-gear that moved the locking bar broke. It's a 35 year old window, and replacement parts that actually fit aren't made any more.

The printer allowed me to design the replacement part, which I then got printed in stainless steel from JLC3DP. Way cheaper than a new window!

MEaster

To be fair, I get why they might do that when it's hot. I walk through a mall on the way home, and this last summer there was a couple times when I was tempted to stay in the mall a little longer because it was cooler in there.

MEaster

That's what's really frustrating, too! I've done it before, why can't I do it now?

MEaster

I'm a little late to the party but I decided to do the Roguelike tutorial, but in a way that makes life harder: on a Compaq ProLinea 4/50 from 1994 with period tools1. Text mode would, of course, be too easy, so I'm doing 800x600 8-bit colour with 16x16 tiles. I can only fit 50x37 tiles on screen, but still want to have an 80x50 map, so I needed to have a moving viewport.

On and off for the last month I've been learning how to control the graphics co-processor so I can draw the graphics. It's definitely been a learning experience, especially mixing Turbo Pascal and Turbo Assembler. I think I'm almost done with the basic rendering. I have a floor layer, a map layer (walls and such), then entities drawn on top. That lets me have some transparency and multiple colours on one tile (e.g. having both a floor tile and a door and the player all drawn on the same "tile").

The one thing I think I have left to do is double-buffering. At the moment everything is drawn into visible VRAM, which causes a noticeable flicker because the floor is drawn without transparency, then the brighter tiles on top. I have just enough VRAM for a second, off-screen buffer, so I can draw to that buffer, then after drawing change the linear scan address so the off-screen buffer becomes the on-screen buffer.

Here's a video of the current state. Ignore the diagonal line, that's just a recording artifact. And here's my source code.

1 The one exception is I wrote a tool on my modern computer to extract the tiles from the PNG tilesheet and convert them into a format the co-processor likes.

MEaster

My current project is to follow the Roguelike tutorial on a 1994 Compaq ProLinea 4/50, using Turbo Pascal 7 and Turbo Assembler 5. Except instead of doing text like the tutorial (which would be too easy), I decided to use 16x16 tiles in 800x600, and having the graphics coprocessor do the drawing instead of the CPU.

I'm using ChatGPT as a rubber duck.

MEaster

The problem is that it's still subjective. I was able to fairly easily ignore the pain of a testicular torsion, and under that system it would be a 4 at best, yet it's something needs emergency medical attention.

MEaster

That's not a great scale for me, given that testicular torsion I had would rate a 4.

MEaster

I remember I had one on Truth an Reconciliation which didn't kill me, but killed my ability to progress the level. I'd got to the bit where you unlock the cell that Keyes is in, and just before the cutscene started I chucked a plasma at Keyes, which went off in the cutscene. When the cutscene ended Keyes was dead, so it reset back to the last checkpoint... after I'd thrown the grenade.

MEaster

15-30: All kinds of safeties. Memory safety is just one of them. What is unsafe vs safe? No UB guarantee by tooling automatically is safe.

Let me guess, the speaker did the usual and completely failed to mention that these other safeties depend on being able to reason about your program, which requires no UB, which itself requires memory safety?

MEaster

I do! The Sci-Fi channel used to show it back in the late 90s early 00s. Along with Star Trek TOS, the Six Million Dollar Man, Lost in Space, and something with a time portal I think?

MEaster

The Witcher 3, that bloody goat.

MEaster

That doesn't follow. All that would do is cause the IDE to instruct Explorer to open a specific path. If the path the IDE hands Explorer is already mangled then Explorer isn't going to fix it, nor is it at fault.

MEaster

Similarly, I believe the Dinosaurs predate most grasses.

MEaster

Yeah I also have that issue, though from autism in my case. It's super frustrating having perfectly working hearing but still not being able to understand what people say because of background noise. Not to mention the extra concentration it requires to understand people in less noisy environments.

This might be more autism-specific, but what I've found has helped in noisy environments is noise cancelling earphones. They make everything quieter, which I find makes it easier to concentrate on the person talking.

MEaster

Yes, doing call centre work is challenging if you hate talking on the phone, but the more of it you do, the easier you'll find it.

Bear in mind that this isn't always the case. In the past I've tried doing some public-facing work that I find hard (running a stall in this case), but found that it got harder and more stressful the more I did it.

MEaster

No you used "less" correctly. Despite what some morons think, "less" is correct for both countable and uncountable nouns.

MEaster

Let's say a user is compiling a file, and that file includes a header with the following function declaration:

T* u(V* v, W* w);

How does the compiler check that the user is calling this correctly so that memory safety won't be violated when this is the only information the compiler has?

Where does the return pointer come from? Does the function mutate either input in a way that invalidates existing pointers that came from that pointer?

MEaster

I'm currently doing Ukrainian on Duolingo. Also using Google Translate and asking LLMs questions.

MEaster

So I'd just bought a new pocket knife and was practising folding it with one hand. I didn't put my finger on the blade securely so when it hit the halfway detent, the blade stopped moving and my finger slipped off and went down in front of the cutting edge.

The blade wasn't moving so no immediate danger, but I don't want my finger there so I'll just straighten it.... right into the edge...

Cut a nice little slice of the side of my finger. Fortunately my nail stopped it going too deep.

MEaster

I do enjoy pulling out the picture of my two Casio scientific calculators disagreeing with eachother on the result of one of the variants of that expression.