[-] stgiga 3 points 1 year ago

I apologize in advance if this post is potentially able to ruffle some feathers.

[-] stgiga 3 points 1 year ago

It's using HTML5 Canvas (actually 3), and it's minified extremely.

The bottom layer is a linen texture generated on-the-fly by Canvas using white noise plus Gaussian blur, then again but rotated 90 degrees. The second layer is waves that are controlled by JS's random number generator (or clicks, but that code got covered up by the third canvas element) and is layered over the linen layer using z-index CSS. The top layer is a spirograph, and doing a third element with z-index wasn't as easy to do. Here's what I did: I put the bottom two layers in a URL-encoded HTML document in an iframe. The spirograph was then layered on top of the iframe using the same trick as the two canvases in the HTML document inside the iframe. Now here's where the optimization gets interesting: The wave and linen HTML, CSS, and JS was all individually minified, and then that was thrown into a URL encoder that is designed for making SVGs into data URLs as efficiently as possible, namely by ONLY URL-encoding characters that aren't URL safe, though I did have to tweak it for certain reasons. The iframe and top canvas are inside something rather special. Because I wanted to cash in on the space savings of gzipped SVG (SVGZ), I used foreignObject to embed XHTML (including HTML5) into SVG. The foreignObject is, rather than doing just body, is instead just using the html tag so it contains both, which is needed. So, it also means I had to be safe for XML, so I had to make the data URL loaded by the iframe escape one character type it originally didn't. I of course minifed the SVG, XHTML, XML, HTML, JS, and CSS stuff in the SVG+XHTML thing. Now here's the funny thing: this SVG is also a valid HTML document if given an HTML or HTM extension. It's a polyglot. Now for the real space savings: I used Zopfli-Krzymod (Zopfli is by Google, and its goal is to get the most possible space savings from Deflate, including the GZip SVGZs use. Zopfli-Krzymod gets even more savings, partially by using an LZ77 optimization from Google's own Brotli, which is their special compressor), which got it down to 3099 bytes. Running it through ECT got it to 3098. Then, running it through Leanify got it down some more, and then running it through ECT again (as done by people on encode.su) got it down to its current size of 3081 bytes. For context, the original version of this demo prior to my attempts to minify it was 30,000 bytes. So, I effectively did an almost 10x minification of this. Note that the linen code is from antimatter15 from 2011, the wave code is from SomethingHitMe in 2012, and the spirograph code is a modded version of Mudcu.be/Galactic.ink/Michael Deal's Breathing Galaxies 2010 Chrome Experiment (which was JS1K, 1020 bytes, and my further minification got that portion down to only 999). I started work on this in 2015, and over the years I shrunk it down. Also, the idea of using foreignObject to put HTML in SVG came from gerhobbelt on Github in 2015. Basically, this is three classic JavaScript effects rolled into one demo, similar to the TIM1T demo for the Atari 2600, which throws 3 classic effects together into one demo. Also, this demo runs fine at 120fps as well as 4K. It also works fine on mobile. Oh and for context, 3081 bytes takes under half a second to load on 56K dial-up.

Basically: this demo uses every trick in the book, including the obscure ones, to get down from 30KB to 3KB. Oh, and it's technically an SVG. I wish that XScreenSaver would include a port of this.

Also, I was able to fit this into a Han Xin Code (China's answer to the QR Code) as well as iQR Codes (QR Code's official elusive successor). Also, in Base85 or higher, 3081 bytes can fit into the original 4096 ASCII character browser cookie format used by Netscape. So yes, you can fit a browser game into a browser cookie if you wanted to. Also, there are some RSA keys out there which are larger than this, and there are plenty of Atari 2600 games out there bigger than this. This is an example of extreme programming. I started this when I was 13 (I'm 21 now).

[-] stgiga 2 points 1 year ago
[-] stgiga 2 points 1 year ago* (last edited 1 year ago)

Actually, technically speaking, that PNG is a preview image. It's ALL the characters of the font laid out in their Unicode positions in 16x16 cells from U+0000 to U+10FFFF

Also I was asleep when Luna replied, and I was really tired when I said I didn't make a preview image. I actually DID, but it's the TTF2PNG build of the font that was generated in a special way that makes it so that the image can be read sequentially from U+0000 to U+10FFFF in 16x16 cells to get the character you want, with no need for a definition file that shows where a codepoint is in the image. Also, it means that it also serves as a 1:1 preview that is properly mapped too.

As for why the image is "black", it has to do with the fact that to store U+0000 to U+10FFFF in 16x16 cells in a way compatible with sequential reading it requires that the sheet be 4096x65536. Blink engine browsers as well as Samsung's Gallery app have no problems viewing it (as well as some others), but there are also quite a few viewers that really hate this size. Oh, and the PNG is in 1bpp Indexed Color mode to get it small enough to fit in the 1MiB figure used by the 3DO console's font chip size (Apparently the 3DO had the largest font chip.) Basically, the TTF2PNG build is its own preview image, but it may be difficult to display on some viewers. Sorry for any confusion.

Please don't hate me.

[-] stgiga 3 points 1 year ago* (last edited 1 year ago)

Yes. I forgot that Lemmy didn’t let you upload images AND URLs. I made it now link to the Github page. http://stgiga.github.io/UnifontEX

Also this reply originally wasn't a reply, I think Lemmy is buggy right now.

[-] stgiga 3 points 1 year ago

I didn't make a preview image.

[-] stgiga 2 points 1 year ago

I'm intersex, but separate and apart from that, I am nonbinary and a salmacian/aphrodisian. (Though my other posts will give you that idea.)

[-] stgiga 3 points 1 year ago* (last edited 1 year ago)

And don't even get me started on what some sectors of the furry community believe intersex is. As someone who has been a furry for many years, I've definitely found a LOT of inaccurate stuff in the community regarding intersex matters. Also, DeviantArt and etc. al. are no better. Now, the furry community in particular is where these inaccuracies get fleshed out to significant extremes, including even custom symbols largely belonging to a term I cannot utter here. The community ESPECIALLY has inaccuracy issues when it comes to the topic of reproduction, as does DeviantArt. OH, and that isn't the only relevant thing they get wrong. They get a LOT more wrong. Not to mention that they also get stuff wrong about trans and nonbinary people too. God, certain parts of the internet REALLY don't know how things work. Like, they completely miss the mark, and it goes awry fast in a way that completely misrepresents what being intersex is, and same for their treatment of trans and nonbinary people. People just buy into stereotypes, and of course, that doesn't end well, and it only clouds things up as to how things actually work. Better and more accurate representation is needed in creative works, and desperately so. intersexpride, flag

[-] stgiga 2 points 1 year ago

My response: yes

[-] stgiga 2 points 1 year ago

I joined late-June to early July 2022. Also, I should mention that the "we don't want to alienate people here" was DEFINITELY what was spoken there. But not just in regards to these terms. The server admins got mad at me once when I was a bit "what" at seeing something of a golden nature in the NSFW channels. On day 1 I got DM'd by one of the admins because I was hyperverbal, even though they knew I have ADHD. So I felt like every day in that server I had to walk on eggshells. They even hated when I made an additional salmacian flag version besides their own.

Also, up until later in my time there, the NSFW channels had been named in a way that ace people had problems with.

It was quite a wild server, and not in the best way. I'll just say that (if I remember correctly) there MAY have been people who called me the bad terms, but my reaction did not consist of summoning the mods, given their stance. Because that would get ME banned. Basically, some higher-ups in the server tried to reclaim terms that were derogatorily used to refer to intersex people rather than altersex people, and, to the best of my knowledge, those responsible for the effort were either not intersex at all, or a majority were not. To use a financial analogy: they basically tried to cash a check for money they didn't have, and pulled it off by being a teller. Given how badly my call-outs of people talking to me with the word dude and then claiming "dude is a gender-neutral term" went, voicing anything that could be said about the topic of terms just didn't feel like a good idea. So I learned to just not react negatively if people called me the terms. That was a lesson there that some learned the hard way. Ultimately and in general, people there who used the terms for themselves early on in their journeys, and then stopped when joining mainstream LGBTQ+ servers ended up loving that they could use those terms for themselves again in that server, rather than on a place like SoFurry for example (shudder given its forced use of the bad term for anyone setting their gender as nonbinary). And these people didn't tend to be a small amount of the server.

Anyways, despite all that, I still call myself a salmacian/aphrodisian. Ultimately, I'm intersex AND altersex, AND nonbinary, all their own things, not conflated or anything like that, so don't worry. Understand that this SubLemmy is not something like the Century Club on Reddit. Your post actually helped out this SubLemmy a lot. Oh, and I should mention that the whole "Male/Female-to-Intersex" thing is a perfect example of Not How Intersex Works. This wasn't the wrong community to post in.

Best Wishes, stgiga

[-] stgiga 3 points 1 year ago

I get rid of my body hair.

[-] stgiga 2 points 2 years ago

The first LGBTQ+ person I ever ran into online was a transmasc furry artist. I had already been in the furry fandom for a short while before seeing his content. It wouldn't be for another relatively-short while that I would realize my actual gender. However, had his art not been seen by me, it is possible my story would have been completely different. His art was my first introduction to characters with body types outside the gender binary. Oh, and his art style is amazing. I wish I could remember his handle.

Now, I've found on Discord that MANY LGBTQ+ people I have ran into over the last 6 years of my Discord use have been furries.

As for what gender my original 2018 sona was: In a sense, it reflected that I was completely not hyperbinary but also a trans girl, at least in comparison to who I am now as a nonbinary person not beholden to the gender binary. This sona even used neopronouns, something I myself did not really use for myself at the time. It's a topic that is quite a feffadoo (a neologism I coined from the magic number of my program BWTC32Key) given that even looking at my notes app from back then on my oldest Android device (it was used as an interim device during SD card upgrading of my main phone and my main backup) provided me with more questions than answers. Looking at some writing files around a year prior on my Dropbox also prompted more questions than answers on the same topic. I can't say for certain as to what my degree of binary trans status was back then, but I can say what it wasn't. I wasn't at all hyper-binary. I would say that the furry community was where I ran into a large amount of the binary being escaped from.

In fact: the ey/em in my neopronouns exists because of ey/em being used by one particular fursona out there that totally related to me and is also an ambonec (both and neither binary gender, which is essentially what I am, even now.)

Oh and the entirety of my fursonas are nonbinary.

Now when it comes to gaming on Valve games... That community often wasn't the nicest to non-cishetmono people. I have plenty of stories on that topic, which I will spare you from. Meanwhile, the furry sites and community, even back in those times (2018), had a large amount of LGBTQ+ content and creators, which is a good thing.

As for other things: I did use my sona as a test bed for neopronouns (as detailed earlier). Oh, and the concept of a shy and sensitive inner male sona did apply in very late 2017 or so. In a sense, this sona harked back to one of the more intriguing characters by the furry artist I mentioned earlier who I can't remember the name of.

Also, I grew up in a sheltered upbringing, and the furry fandom let me be myself. To this day, I use technology and the internet as an escape from my real life.

I will ALSO say that I'm an otherkin. Oh, and as for my fursona species: it's a Pokemorph of Mew's Shiny form (Mew is a shy genderless shapeshifter Pokemon).

TL; DR: The furry community was VERY formative to my journey.

view more: ‹ prev next ›

stgiga

joined 2 years ago
MODERATOR OF