A Domain-Specific Compression Algorithm â as I later found out this is called â is a compression algorithm that uses the specific nature of the target data as a way to efficiently compress it.
The more you know about the structure of the data youâre compressing and what tools you have to reconstruct data, the more efficient the system can be.
I wrote a script for the Fansim Engine that does this with character sprites.
It takes character poses, identifies the parts that have changed and the parts that stay the same, and creates identical Renâpy displayables that take up dramatically less room.
âHow can I show someone how my blog articles actually render?â
It sounds like it should be super easy, but it turns out it really isnât.
I write in Markdown (and attach the source to all my posts if youâre interested) that then gets rendered as HTML on-demand by Pelican. (More on this on the thanks page.)
But that means thereâs no quick way to demo what any given input will render as: it has to run through the markdown processor every time. Markdown is a fairly standard language, but I have a number of extensions I use â some of which I wrote myself â which means to get an authoritative rendering, it has to actually render.
But I want to be able to demo the full rendered output after all the various markdown extensions process. I want a nice simple way to render snippets and show people how that works, like a live editor does. The CSS is already portable by default, but the markdown rendering is done with python-markdown, which has to run server-side somewhere, so thatâs much less portable.
As is common in Python, the mechanical process of displaying something on screen in Renâpy is at once easy to execute and deceptively complicated to execute correctly.
The Renâpy documentation does a fine job of defining the specifications of position properties, but intuitively understanding how to use those properties can still be hard because it doesnât include much in the way of examples or elaboration, so here are some of those.
Your basic properties
These names come directly from atl transform on the documentation. Note that these are generally parallel with the style properties of the same names.
Befriendus; everybodyâs favorite visual novel about making alien friends. Itâs got trolls, yes, but it also has a slew of accessibility options. You can adjust everything: color, font, motion, even spelling. Itâs clean, itâs easy, and it works. Hereâs how we did it.
When I was designing the basic accessibility framework I had these principles in mind:
Accessible scripts must be easy to write; work should never be duplicated
Demanding people write multiple versions of work is bad design and encourages accessibility to eventually be dropped in favour of efficient production
Humans should never do postprocessing tasks
Weâre writing software; a computer should do any and all mechanical work, not writers
Accessibility options should have as granular control as possible
Whenever possible, players should be able to select exactly what they need, not be forced to use something that doesnât match their needs.
Options should be compatible with each other whenever possible
Just pushing out transcripts is not accessible design.
The best way to explain these is probably to explain what we ended up doing, and how each design choice was made carefully in accordance with those principles.
This is a writeup of a project I did in April but never released. Well, Iâve definitely released it now, if you want to give it a try!
Instead of a real introduction, hereâs a video demo, with camcorder LP technology from 2005:
I am not going to buy a capture card
Ever since Wild World, Animal Crossing has had a pattern system, where players can design their own textures and use them as clothes or decoration. New Horizons has one, but since it doesnât have a stylus you have to either use the directional pad to mark individual pixels or draw with your fingertip.
I thought it would be fun to find a way to automate that. Now, granted, it takes a while, but itâs still much faster than trying to copy pixels over by hand.
âTabs or spacesâ is one of these age-old computer science preference issues (like whether you use Vim or Emacs1) that gives people a binary preference they get to pick and then get very attached to, due more to sunk costs and personal identity than anything else.
(Good thing that only happens with unimportant stuff.)
I was thinking about this the other day, and I realized that I have an opinion about this, but itâs actually the opposite of what I do. And itâs not because of filesize, or encoding, or anything like that.