I am not a Hawaiian. But I am partly Native American, and I respect this message…
I am not a robot. I promise.
- 209 Posts
- 6.46K Comments
over_clox@lemmy.worldto
Programming@programming.dev•After a routine code rejection, an AI agent published a hit piece on someone by name (EDIT: See description and comments regarding 404)
3·14 hours agoThat’s actually the even more proper way to handle it, thanks for the update 👍
over_clox@lemmy.worldto
Technology@lemmy.world•ASCII characters are not pixels: a deep dive into ASCII renderingEnglish
4·14 hours agoMeh, DOSBox is plenty suitable enough, and QBasic is easy enough to find…
https://winworldpc.com/product/qbasic/1x
I can’t promise that DOSBox emulated results will give the exact color results as original old-school hardware on an old CRT, but results should still be mighty close.
The raw input data files are pretty simple to generate with most graphics software, just downsample down to potato 80x25, then export to raw 888 RGB format.
over_clox@lemmy.worldto
Technology@lemmy.world•ASCII characters are not pixels: a deep dive into ASCII renderingEnglish
5·14 hours agoSure, have at it!
Sorry it’s not a full complete dump with examples, but it’s programmed in QBasic 1.1 and converts raw RGB pixel data into equivalent closest matching color halftone onscreen characters. I designed it in mind with DOS text modes of either 80x25, 80x43, or 80x50 text modes, but I’m sure the technique can work with any text mode that can properly render the old DOS block characters. But, I’m betting that whatever device you’re using right now is almost certainly not configured to display the old DOS block characters as they were back in the day.
Good luck!
REM TEXTPSET.BAS REM over_clox - February 26, 2008 DECLARE SUB DisplayRAW (FileName$, W%, H%) DECLARE SUB TextPSet (X%, Y%, R%, G%, B%) DECLARE SUB TextPixel (Red%, Green%, Blue%, Char$, FGround%, BGround%) DECLARE SUB HTMtoRGB (HTMColor$, Red%, Green%, Blue%) TYPE PaletteType R AS INTEGER G AS INTEGER B AS INTEGER END TYPE REDIM SHARED DOSPalette(15) AS PaletteType REDIM SHARED FakePalette(15, 7, 1 TO 3) AS PaletteType RESTORE FOR I% = 0 TO 15 READ HTMColor$ HTMtoRGB HTMColor$, R%, G%, B% DOSPalette(I%).R = R% DOSPalette(I%).G = G% DOSPalette(I%).B = B% NEXT FOR C% = 1 TO 3 C2% = 4 - C% FOR B% = 0 TO 7 FOR F% = 0 TO 15 R1% = DOSPalette(F%).R: R2% = DOSPalette(B%).R G1% = DOSPalette(F%).G: G2% = DOSPalette(B%).G B1% = DOSPalette(F%).B: B2% = DOSPalette(B%).B FakePalette(F%, B%, C%).R = (R1% * C% + R2% * C2%) \ 4 FakePalette(F%, B%, C%).G = (G1% * C% + G2% * C2%) \ 4 FakePalette(F%, B%, C%).B = (B1% * C% + B2% * C2%) \ 4 NEXT NEXT NEXT 'MS-DOS Text Mode 16 Color Palette DATA 000000,0000AA,00AA00,00AAAA,AA0000,AA00AA,AA5500,AAAAAA DATA 555555,5555FF,55FF55,55FFFF,FF5555,FF55FF,FFFF55,FFFFFF CMD$ = COMMAND$ IF CMD$ <> "" THEN DisplayRAW CMD$, 80, 25 ELSE DisplayRAW "LOGO.RAW", 80, 25 END IF 'DEF SEG = &HB800: BSAVE "LOGO.BSV", 0, 4000 COLOR 7, 0 DO: Hit$ = UCASE$(INKEY$): LOOP WHILE Hit$ = "" SUB DisplayRAW (FileName$, W%, H%) FileNum% = FREEFILE OPEN FileName$ FOR BINARY AS FileNum% CLS : WIDTH W%, H% ScanLine$ = SPACE$(W% * 3) FOR Y% = 0 TO H% - 1 GET #1, , ScanLine$ FOR X% = 0 TO W% - 1 R% = ASC(MID$(ScanLine$, X% * 3 + 1, 1)) G% = ASC(MID$(ScanLine$, X% * 3 + 2, 1)) B% = ASC(MID$(ScanLine$, X% * 3 + 3, 1)) TextPSet X%, Y%, R%, G%, B% NEXT NEXT CLOSE FileNum% END SUB SUB HTMtoRGB (HTMColor$, Red%, Green%, Blue%) Red% = VAL("&H" + MID$(HTMColor$, 1, 2)) Green% = VAL("&H" + MID$(HTMColor$, 3, 2)) Blue% = VAL("&H" + MID$(HTMColor$, 5, 2)) END SUB SUB TextPixel (Red%, Green%, Blue%, Char$, FGround%, BGround%) ' °±²Û (32,176,177,178,219) Diff% = 768: BGround% = 0 FOR F% = 0 TO 15 RDiff% = ABS(DOSPalette(F%).R - Red%) GDiff% = ABS(DOSPalette(F%).G - Green%) BDiff% = ABS(DOSPalette(F%).B - Blue%) NewDiff% = RDiff% + GDiff% + BDiff% IF NewDiff% < Diff% THEN Diff% = NewDiff%: Char$ = "Û": FGround% = F% END IF NEXT FOR C% = 1 TO 3 C2% = 4 - C% FOR B% = 0 TO 7 FOR F% = 0 TO 15 RDiff% = ABS(FakePalette(F%, B%, C%).R - Red%) GDiff% = ABS(FakePalette(F%, B%, C%).G - Green%) BDiff% = ABS(FakePalette(F%, B%, C%).B - Blue%) NewDiff% = RDiff% + GDiff% + BDiff% IF NewDiff% < Diff% THEN Diff% = NewDiff%: Char$ = CHR$(175 + C%) FGround% = F%: BGround% = B% END IF NEXT NEXT NEXT END SUB SUB TextPSet (X%, Y%, Red%, Green%, Blue%) TextPixel Red%, Green%, Blue%, Char$, FGround%, BGround% LOCATE Y% + 1, X% + 1: COLOR FGround%, BGround%: PRINT Char$; END SUB
over_clox@lemmy.worldto
Programming@programming.dev•After a routine code rejection, an AI agent published a hit piece on someone by name (EDIT: See description and comments regarding 404)
4·14 hours agoI didn’t write the article, neither did OP.
If the article is false, well so be it, but at least the supposedly false article was archived.
Sometimes, even if an article proves to be false, readers in the future might still be curious what all the article said or claimed.
🤷
over_clox@lemmy.worldto
Technology@lemmy.world•ASCII characters are not pixels: a deep dive into ASCII renderingEnglish
2·15 hours agoYeah, I don’t think that’s particularly feasible with my prime directives in coding things meant to render on a potato. If I’m ever gonna revisit that old code again, I want it to continue to be able to run on old-school 286 CPUs, real raw hardware.
Like sure I don’t mind writing old QBasic/QuickBasic code under an emulator, but if I’m writing on such an antiquated language for legacy hardware, I wanna be able to transfer it to a floppy disk and run it on actual hardware from the era.
Other than that, going back to the good old days, I don’t see much reason to do such coding on modern systems. Though I will say this much, neofetch and the newer fastfetch are pretty awesome character based sysinfo utilities!
I just don’t see myself trying to jump through conversion hoops such as ASCII to ANSI for such a project to even keep me awake…
over_clox@lemmy.worldto
Pulse of Truth@infosec.pub•After a routine code rejection, an AI agent published a hit piece on someone by nameEnglish
2·15 hours ago404 Error, well done!
Oddly enough, I got an archive link in my clipboard right now. You can thank me later…
over_clox@lemmy.worldto
Technology@lemmy.world•ASCII characters are not pixels: a deep dive into ASCII renderingEnglish
1·15 hours agoI’m not exactly sure how I’d incorporate both techniques into the same rendering system though.
My method doesn’t use letters, numbers or punctuation characters, mine uses the DOS mode block characters, blank space, 25%, 50%, 75% halftone characters, and the 100% solid block character.
I could probably get a little closer to sharper shape edges with my method if I add in the upper half block and lower half block characters, but when using those characters I’m no longer able to use the halftone dithering and would be limited to 8 background and 16 foreground colors…
I dunno where I’d really even start (over) again to use alphanumeric characters with my text rendering method…
over_clox@lemmy.worldto
Programming@programming.dev•After a routine code rejection, an AI agent published a hit piece on someone by name (EDIT: See description and comments regarding 404)
2·15 hours agoOP posted a working archive link in the comments…
over_clox@lemmy.worldto
Programming@programming.dev•After a routine code rejection, an AI agent published a hit piece on someone by name (EDIT: See description and comments regarding 404)
3·15 hours agoYou should edit your original post to use the archive link, as the main link now leads to a 404 error…
over_clox@lemmy.worldto
Technology@lemmy.world•ASCII characters are not pixels: a deep dive into ASCII renderingEnglish
11·15 hours agoI made one myself many years ago for DOS, but mine renders in 512 pseudo halftone colors from a base palette of 16 colors. Results look pretty nice for whatever it’s worth, but yeah mine doesn’t focus on their efforts to get more crisp edges.
Still neat though, food for my thoughts even, should I ever revisit my old project.
I’m just gonna drop this link here, because I actually have experience refurbishing Mason jar seals and mechanics…
Proper Mason jars work like this…
https://youtube.com/watch?v=YFn_ed6vRwM
Edit: Sorry the video clip apparently originally came from TikTok, but its true, this is how proper Mason jars work.
Yes I’m aware of all that, we used to collect glassware all the way back to the late 1800s, so I’ve seen my share of original Coca Cola bottles, Listerine bottles, and a plenty of Mason jars used for pickles and jelly…
None of them were ever round bottom.
Ight homie, what the fuck is that molten Star Wars looking character reflected from the jar?
That’s damn sure not you or a camera…
I’m not AI stupid.
The bottom of the original image you posted looks like a hemisphere with no flat bottom, which can never stay standing level.
Mason jars have flat bottoms and metal lids, not round bullet bottoms with cork or whatever the fuck that’s supposed to be for a lid.
Meanwhile, ‘Greebles’ are the imaginary things your cat freaks out and chases…
















Follow your gut instinct…
Modern phones are fragile eggs anymore, you might as well be putting all your eggs in one eggshell…