I am not a robot. I promise.

  • 0 Posts
  • 120 Comments
Joined 3 years ago
cake
Cake day: July 9th, 2023

help-circle


  • Oh, I have a choice alright, I chose to withdraw all my money and cancel my bank account like 11 years ago, because my bank refused to accept my tax return as a direct deposit. TurboTax had to reprocess it and send my return as a paper check after the bank refused a fucking direct deposit!

    Besides, when the electricity goes out for two weeks after a hurricane or other natural or manmade disaster, how you gonna get groceries or gasoline with electronic money anyways? Give me a paper check to exchange for paper money, paper money still spends even when the electricity goes out.

    If it’s a service that only deals with electronic transfers, well I ain’t signing up, and you can just keep that gift card if it requires an app to even use.

    Every single day I assume that tomorrow there might not be electricity, it’s amazing to me that people have come to rely on it so much and assume it’ll always be there.

    Ask anyone in Cuba how that’s going right now…


  • Riddle me this, why do people use banking apps on mobile devices in the first place? Why put all your financial data in an eggshell just waiting to get dropped or stolen?

    Bank cards have had the whole tap to pay thing for quite a while now. I drop my phone, busted. I drop my bank card, it’s fine, I just pick it right back up, and it stays in my wallet unless in use, not in my hand where it’s infinitely more likely to get lost or stolen.

    You want a banking app, do so from your home computer, not a fragile mobile device literally designed to fail if it so much as falls out of your hands.

    Anyways, riddle me that…




  • I can actually see where it can improve security against scammers trying to scam elderly and non-tech savvy people.

    • Scammer tries to get someone to install malware from their site
    • Victim isn’t familiar with sideloading, but scammer instructs them
    • Victim hits the first time 24 hour block and has to restart and wait
    • The restart alone breaks contact with the scammer, scam thwarted

    For the rest of us that know our way around Android, it’s just a one time annoyance, after completing all the steps to enable sideloading, you won’t have to wait 24 hours anymore.












  • Sure, 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
    

  • Yeah, 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…


  • I’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…