2.25.98 11:10 amI've been spending a lot of time on projects these past few days. The most important one is project "Get a Job", which has been coming along okay. I've spoken to more complete strangers in the past week or so than I have in the whole rest of the year so far. The other projects, well, they aren't as important, but they are a lot easier to make progress in, so I like them better. One of them is project "Big non-personal website with lots of programming overhead" and the other one is project "3D Math makes my head spin" (on 3 axes).
The last project is the most interesting one. It's involving lots of different techniques and technologies which I've never dealt with before. Most recently, I'm learning about reading and writing different file formats. This is pretty scary to do in assembly, because if you write a single byte to the wrong place on the HD, you can lose pretty hard. In C you have to explicitly shoot yourself in the foot. Most of what I know about advanced programming, I learned while going over democoder examples, so I tend to include a lot of asm functions. (For graphics anyway.) (As if there were any other way.)
Some of this stuff is pretty daunting. Lempel-Ziv compression is my headache right now. I've heard it described a couple of different ways, but I'm not crystal clear on the concept yet. I've been trying to get 'enough sleep' in order to have maximum cognitive potential during the day, so I can understand things like LZ. As a result, I don't stay up until 5 am writing webpages. The best way to understand something is to write a children's story about it, especially if it's something like sliding window compression schemes. Okay, that's not really true. But I'm going to write and draw a little story about LZ compression. In a bit.
To decrypt, do this (more pseudocode):
for x = 0 to CompressedSize-1
data[x] = (data[x] - x) XOR x
next x
This gives us:
00002870 20 5B 4D 45 4E 55 30 00 [MENU0.
00002880 54 52 80 59 31 5D 0D 0A 09 7B D1 00 10 55 4E 49 TR.Y1]...{...UNI
00002890 54 22 00 3D 41 52 60 4D 41 43 4B 3B 11 01 83 01 T".=AR`MACK;....
000028A0 33 81 32 02 42 55 54 54 4F 4E B4 02 19 42 01 4E 3.2.BUTTON...B.N
000028B0 41 70 02 C2 01 46 4C 41 DD 23 02 7D E0 04 20 05 Ap...FLA.#.}.. .
000028C0 18 00 32 CF 00 D3 01 DE 56 3F 02 4F 03 5F 04 68 ..2.....V?.O._.h
000028D0 05 33 1F 06 D3 01 3E 41 8F 07 9F 08 AF 09 80 0D .3....>A........
000028E0 00 00 4C ..L
Woohoo! Look! Readable word fragments! But remember, the chunk is still
compressed.
[2-18-98]
Feb
[2-26-98]