Re: your question on my user talk page: blocked users can edit their own user talk page, it's the only page they can edit. That's to allow them to explain their case if the block was made under a misconception or the like.
We can revoke the talkpage editing privileges if necessary, but tend to avoid that unless they're being abused because it's normally best to allow both points of view to be visible. --ais523 16:42, 16 July 2019 (UTC)
I can't help but notice that you are trying to understand string compression... perhaps I could be of some help (I mean, I have been working on this subject for a few months now). There seems to be two ways to compress strings: using a predetermined dictionary of words (used in languages such as 05AB1E and Jelly [I think]) or some sort of algorithm, such as base-255 encoding (featured in languages such as 05AB1E and MathGolf). Dictionary compression is only as good as the word list included with the language (e.g. 05AB1E has 10k words, Keg+ will [hopefully] have roughly 1.2 million words). Base 255 encoding seems to be, in a sense, the industry standard for string compression... However, I haven't quite understood it yet (although I suspect User:A would know) . That's why I've been working on my own method of compression!
Essentially, the target string is converted into a series of numbers based on a 0-indexed character map (e.g. 0 would become 00 and z would become 36). Then, this new 'numerical string' is then split into chunks of 5 numbers, and converted to their Unicode equivalent (calling Python's
chr() on the number). Decompression would just be the reverse of this algorithm.
- Your compression algorithm does no good of compressing the file; the internal representation ranges from the same length to even worse. I had once tried to implement the algorithm; it turns out that the original 2-byte string is 3 bytes after the compression.