« first day (135 days earlier)      last day (594 days later) » 

00:06
On a bench near a lake
of course
in other news, here's an idea I've been entertaining for a while: try to make my own 2d barcode
like a qr code
anyone wanna help? I can't do computer vision to save my life lol
have you tried existing libraries
like opencv
opencv is bullshit witchcraft disguised as a python library
and my raspberry pi would probably remove my fingers and shove them up my nose if I tried to run opencv on it
you can also use the c++ bindings
I'm sorry my brain just went into emergency mode at the thought of a python library with c++ bindings
00:13
it's a c++ library with python bindings
I know, that's why it's "funny"
but regardless: if we all made a 2d barcode we could call it a Bytecode and that is a very good name
00:29
hey what dimension is firefox sending my tabs to
 
2 hours later…
02:17
@Ginger Oh boy you will not want to do that once you read about QR's error correction
I guess you could use something simpler though, QR's error correction is excessive with modern day technology
As evidenced by the fact that half of them waste a non-trivial portion of their bits drawing a cute little picture
Maybe you could do a 2d hamming code
Not sure if there's a name for this, but
it's super elegant
you can make a 2d grid of data, and do hamming codes on both the rows and columns, and the rows and columns formed by that will also be able to form hamming codes
You waste a pretty significant amount of bits, e.g., with a 16×16 grid you only get 121 bits, but it'd be able to handle whole missing rows in either direction
I like how YT music will occasionaly decide I like a song and give me no say in it
E.g., it's played Don't Try like three times in the last two days even though I haven't really expressed any interest in it
Although it's actually pretty good
Despite constantly trying to tell me to be social
Also idk who picks the pfps for artists for YouTube music...
The first one's like, a low-mid-tier picture of MCR, presumably TBP-era, but in a Desolation-Row-cover sorta background. The second and third ones look like they came out of someone's mom's family photo album lol
Meanwhile C418's over here lookin' like he just got arrested for arson
5
Definite "I really didn't think that through, the trial's tomorrow, I'm really in trouble this time aren't I" vibes
02:59
The night air was warm, with a cool breeze. Fall leaves crunched under Daniel's feet as he walked. It was slow, not a stroll, a more deliberate walk, with a purpose, but a vague one. He stopped in front of her house, as he'd done so many times before, but this time it was marked with a feeling of loneliness and betrayal.

He stood, holding back feelings he couldn't name. The moon, the slightest of crescents, drifted behind a cloud. C418 took a step toward the house, along the garden path, feeling the familiar clacking of the cobblestones, for what he knew, what he hoped, would be the last t
And with that, good night TNB o/
@RadvylfPrograms You're a good writer :)
03:12
@RadvylfPrograms thought that was Walt Jr for a moment
03:26
@emanresuA Thanks! :D
And I'm making great use of any talent I may have as you can see lmao
my talent is... err:
in flax, yesterday, by PyGamer0
yayeyeauayaueyeyayeyeyyYYUYayayeuauayayay
 
7 hours later…
11:00
@RadvylfPrograms oh I know all about QR code error correction
and I wish I didn't
๐Ÿคจ
oh dear god
italic emojis
@RadvylfPrograms also for a hot second I read this as "hammering code"
@Ginger AAAAAAAAAAAAAAAAAAAAA
3
๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ
@RadvylfPrograms so you're telling me that if I make a 16x16 grid of data and then run the hamming algorithm on it the resulting 2d grid of data will be able to work correctly even if you lose a whole row or column?
or do you mean that if I run the hamming algorithm on every row and every column and then somehow combine them together the result will be able to work correctly even if you lose a whole row or column?
Confused, I am
11:29
๐Ÿ’€
oh no
๐Ÿ’€
12:14
Bytecode (artist's rendition):
(may require upscaling :p)
here's a version with the important parts color-coded:
Green is the targeting things (like the big squares in QR codes), yellow is space that must be empty, black and white are data, purple is space for metadata, blue is tracking, and red is blank space for fun logos
the first bit of the metadata area is set in the uncolored one to indicate the presence of a fun logo area, but if you unset it then that area will be interpreted as data too
also the data is just me randomly placing pixels (did this in a pixel art editor lol)
 
2 hours later…
14:34
okay so
the hamming encoder I found on pypi didn't work with the very large numbers I needed it to work with, so I'm pulling a Radvylf and making my own
but in one specific situation it gives answers that disagree with Wikipedia
so I'm trying to figure out if I'm wrong or Wikipedia is
15:30
@Ginger Well, for a 16-bit code, you get 11 bits of actual data. So if you make an 11×11 grid of bits, and generate 16-bit hamming codes for each row, you get an 11×16 grid. Now, if you make a hamming code for each of the 16 rows, you get hamming codes for those.
But here's the cool thing.
The hamming codes for those rows, for the five bits that get added, the rows they form will also be hamming codes
Which means, in that 16×16 grid, every row or column is its own hamming code
You can lose entire rows or columns, or just a whole bunch of random bits
The colors are hard to see, but in that image, green is actual data, gray is error correction data, blue is parity bits, and the purple one is a parity bit of parity bits
> large numbers I needed it to work with
This sounds like a bad idea
Each hamming code can only handle a single bit flip
You probably don't want very big ones in something like this
15:46
how about I show you what my code does to encode a sequence of bytes:
def encode(data):
    data = [int(i) for i in bin(int.from_bytes(data, "little"))[2:]]
    out = data
    c = 1
    while c < len(out):
        if not c&(c-1): # if c is a power of 2
            p = 0
            print(out)
            for a, b in enumerate(out, 1):
                if a & c:
                    print(a)
                    p += b
            out.insert(c-1, not bool(p % 2))
        c += 1
    print(out)
I am a Pro Fessional Coder
but the part where it does the int.from_bytes caused the problems with the other lib bc it was written in C and only accepted ints as inputs and not longs or whatever
@RadvylfPrograms oh, hmm
guess I have to redo some stuff :p
or not really because I haven't done it yet, so I guess just do some stuff
@RadvylfPrograms it will actually be less because the whole code, including tracking and timing data, has to fit in that 16x16 grid
so for now I will just implement normal 1d hamming correction and add the 2d version once that works
decided to use a different pure-python hamming lib :p
> TypeError: descriptor 'frombytes' for 'bitarray.bitarray' objects doesn't apply to a 'bytes' object
well then what does it apply to
17:18
presenting the first output from my encoding software:
dunno about you but something here seems wrong to me
ayyy there we go!
the first ever bytecode!
I feel so proud :p
 
2 hours later…
19:04
trying to figure out how to get opencv to notice the little notches in the corner boxes
so it can infer rotation
alternately I could add a 3rd box, but I don't want to do that
...I'm going to have to add a 3rd box ;-;
don wanna
19:50
wait no, figured out how to not do that
and here's how:
that's right, I made one of the boxes sus
basically the code, after detecting the boxes, runs the box-detection AGAIN on just the cropped-out boxes and checks the aspect ratio of the resulting mini-box
beeg brain
what tf is my cat doing
she is inside a basket she knocked over and rolling around in it like a kitty version of mad max
just tipped it upright and she stayed in! I feel so happy
21:02
@Ginger That's clever, I like it
I'm guessing you get more space for actual data than with QR codes?

« first day (135 days earlier)      last day (594 days later) »