add Jump to top links to other entry HTML files

Add short line and Jump to top links to other entry HTML files.

Ran `make gen_other_html` to perform the above.
This commit is contained in:
Landon Curt Noll committed 2024-04-21 21:07:41 -07:00
1 parent 5ed453970d
commit 0eb5e37c12
36 files changed
+235 -55

No files matched your search

+5
View File
@@ -93,6 +93,11 @@ eventually could?
Whichever you wish it to be, it now works with both clang and gcc! Choo choo!
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -202,6 +202,11 @@ and watch the powers of 3 (mod your computer's word size) flow by.
This final example is a simple pipeline, `who | sort`.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -51,6 +51,11 @@ To include the primitive on-line help, use:
```
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -906,6 +906,11 @@ exit.
```
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -11,6 +11,11 @@ ring. The number of steps necessary to solve this puzzle is
exponential in the number rings.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -143,6 +143,11 @@ leads to a recursive solution to the puzzle. Like the
exponential in the number of rings.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -94,6 +94,11 @@ The `<X size>` should take into account the newline at the end of each line
of map, and hence should also be one larger than expected.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -117,6 +117,11 @@ The slave number is `v+'0'`. The number (if used) is `atoi(e+b[v])` and the
units are just the string in the slave number position.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -1,6 +1,11 @@
(The colon *is* the secret switch - the space before it is not a mistake)
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -210,6 +210,11 @@ Selected notes:
-.-. .... .- -. --. . - .... . .--. .-. --- --. .-. .- -- ... --- .. - -.. --- . ... -. --- - ... .... --- ..- -
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -70,6 +70,11 @@ the different command line and the different numbers. The change of the numbers
can be found in the alternate code and the explanation is the same.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -49,6 +49,11 @@ to tell them apart.
5. To shut down - just hit the power button. :-)
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -100,6 +100,11 @@ Notice how only the first staff (or any staff) needs to have the full length.
Some files with well-known melodies are included as examples.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -132,6 +132,11 @@ As an extra tweak, the text message actually does something useful. Remove the
[2] [Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)](http://swtch.com/~rsc/regexp/regexp1.html)
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -65,6 +65,11 @@ Here's what each of the 6 auxiliary functions do:
```
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -498,6 +498,11 @@ and don't put a newline after it.
```
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -164,6 +164,11 @@ You can use [tool.rb](tool.rb) to convert the output to a png file.
* The mask is not applied to the remained bits.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -253,6 +253,11 @@ functionality. Now I think I have a good entry.
But wouldn't it be nice to import pre-set definitions from a file?
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -38,6 +38,11 @@ sharing state via global variables is an ancient and honored form of
obfuscation, and remarkably effective.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -101,6 +101,11 @@ rendering this not a keyword, even in disguise
```
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -42,6 +42,11 @@ further. Nevertheless more information on my entry can be found at
[https://ioccc.xexyl.net/2018/weasel]: https://ioccc.xexyl.net/2018/weasel
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -19,6 +19,11 @@ coded so that it does not require any `math.h` functions; you don't have to pass
the all items and generates [prog.c](prog.c).
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -113,6 +113,11 @@ the proper function (and/or cast to the right type).
[MacPorts]: https://www.macports.org
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -523,6 +523,11 @@ evasions (I just don't have many more bytes left!) - unless maybe that there is
no default limit on max moves.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -280,6 +280,11 @@ a bug and I prefer putting in restrictions to try and make it very unlikely.
[screenshot of halfwidth vs fullwidth]: halfwidth_vs_fullwidth.png
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -222,6 +222,11 @@ It looked like:
...and no **_Preciouss_**: the _itsself_ was not a typo but intentional sibilance!
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -201,6 +201,11 @@ bowl can sit in.
[chocolates FAQ]: https://www.davidlebovitz.com/chocolate-faqs/
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -119,6 +119,11 @@ the snake split off at some point: the snake no longer occupies that place and i
could safely go through that part of the screen.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -867,6 +867,11 @@ years ago but I know it's true now. **Believe in yourself. Always.**
[play.sh]: play.sh
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -948,6 +948,11 @@ matter having a 'o' at 0,0 isn't either).
[HACKING.html]: HACKING.html
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -388,6 +388,11 @@ but I do not know for certain.
[snake-colours.sh]: snake-colours.sh
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -449,6 +449,11 @@ is 0 and I limit the size to be no bigger than the max size.
[Snakey]: https://www.hp-lexicon.org/character/gaunt-family/morfin-gaunt/
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+60 -55
View File
@@ -33,11 +33,11 @@ ints:
e<:j:> = j+3;
```
Which I think is more confusing: when one is iterating an array you don't
expect to start out with index < 0 but to then compare that that index < 0
and increment until 0 along with setting the value of the array to j + 3 is
more confusing still. There are at least two other ways that are much easier
to read that could accomplish the same thing. It continues on:
Which I think is more confusing: when one is iterating an array you don't
expect to start out with index < 0 but to then compare that that index < 0
and increment until 0 along with setting the value of the array to j + 3 is
more confusing still. There are at least two other ways that are much easier
to read that could accomplish the same thing. It continues on:
``` <!---c-->
/* ... */
@@ -67,27 +67,27 @@ ints:
}
```
First of all: why do I set `e[2]` to 0 and increment it for each pass in the
loop, but then the condition for the loop is `s[*P]`?
First of all: why do I set `e[2]` to 0 and increment it for each pass in the
loop, but then the condition for the loop is `s[*P]`?
Second notice the many references to e[1] (as e[1] and *g). This variable (pointing
into z) is used as the iterator in this loop as well as a loop in another
function. Now why do I pass *g to the function w()? To mislead. Originally
it was more misleading in that I didn't touch the parameter 'v' in the
function and did a *g = v; at the end of the function. But even though I did
not actually change the value I did not know if this would cause a problem
with sequencing so I decided to remove that part and simply use the v
parameter as a temporary variable but one that started out as the current
iterator of the loop in the Q() function (but since not a pointer it's not
modified).
Second notice the many references to e[1] (as e[1] and *g). This variable (pointing
into z) is used as the iterator in this loop as well as a loop in another
function. Now why do I pass *g to the function w()? To mislead. Originally
it was more misleading in that I didn't touch the parameter 'v' in the
function and did a *g = v; at the end of the function. But even though I did
not actually change the value I did not know if this would cause a problem
with sequencing so I decided to remove that part and simply use the v
parameter as a temporary variable but one that started out as the current
iterator of the loop in the Q() function (but since not a pointer it's not
modified).
Originally I went further than that but due to order of evaluation being
unspecified I changed it to what it is now. Anyway:
Originally I went further than that but due to order of evaluation being
unspecified I changed it to what it is now. Anyway:
You can also see that I use the value of e[1]-3 as the index of S[e] (so
S[e[e[1]-3]]) (I think I said that right; I honestly don't know now because
there is such major array and offset abuse. The entire prog.c is riddled
with offset abuses.).
You can also see that I use the value of e[1]-3 as the index of S[e] (so
S[e[e[1]-3]]) (I think I said that right; I honestly don't know now because
there is such major array and offset abuse. The entire prog.c is riddled
with offset abuses.).
* If you observe that above the compound literal `z` is of size 13 but I point
@@ -107,12 +107,12 @@ address `e[1]`. Thus I also have:
}
```
This `e[1]` of course is the same as `*g` as above and as you can see has
multiple dimensions (that is the reference to Y does) too (and this is also
strewn about the code). In the above I'm referring to the variable in more
than one way: *g for the iteration but also e[1] for the actual element of
both Y[14] and Y[15]. I also happen to use S (via r which points to S + 10)
which I use as the two chars to compare (this is the plugboard function).
This `e[1]` of course is the same as `*g` as above and as you can see has
multiple dimensions (that is the reference to Y does) too (and this is also
strewn about the code). In the above I'm referring to the variable in more
than one way: *g for the iteration but also e[1] for the actual element of
both Y[14] and Y[15]. I also happen to use S (via r which points to S + 10)
which I use as the two chars to compare (this is the plugboard function).
* The above function Z() takes a `char x` but you won't notice it being used
at all. Why? In fact I call it like so:
@@ -121,12 +121,12 @@ at all. Why? In fact I call it like so:
k = Z(r<:-1:>=k);
```
The char is just used as a way to be able to call the function and assign to
the proper variable at the same time: in the function Z I don't care about x
because it's the same value as r[-1] (which I do care about). Why is it
attached to S? Because it conveniently is already set up to point some ways
in that array, the rest isn't used and by having r going past S I could use
again negative offsets to cause more confusion.
The char is just used as a way to be able to call the function and assign to
the proper variable at the same time: in the function Z I don't care about x
because it's the same value as r[-1] (which I do care about). Why is it
attached to S? Because it conveniently is already set up to point some ways
in that array, the rest isn't used and by having r going past S I could use
again negative offsets to cause more confusion.
* Although this is clearly already shown in the above there are other ways I
refer to the same variable in more than one way (or in some cases maybe more
@@ -198,31 +198,31 @@ obfuscation but rather to save bytes. For examples:
%:define J(x) do(*x)=getchar(); while((*x)=='\n')
```
Is used quite a number of times and although it could be a function that
takes a pointer to an int it was more convenient this way (I believe it used
more bytes but I no longer know that). There are many others and they all
save bytes (or at least most of them do if not all). There is one in
particular I want to bring up though because I think it's a curious one and
it ties in to another point above:
Is used quite a number of times and although it could be a function that
takes a pointer to an int it was more convenient this way (I believe it used
more bytes but I no longer know that). There are many others and they all
save bytes (or at least most of them do if not all). There is one in
particular I want to bring up though because I think it's a curious one and
it ties in to another point above:
``` <!---c-->
%:define A(y) *(&Y<:7:><:1:>+(y))
```
What is special about this one: Above I noted how I sort of refer directly
to the notch settings (I think it was the notch settings anyway). Now I
could have done say
What is special about this one: Above I noted how I sort of refer directly
to the notch settings (I think it was the notch settings anyway). Now I
could have done say
``` <!---c-->
char a = Y[7][1], b = Y[7][3], c = Y[7][5];
```
But I felt that doing instead the pointer arithmetic was worth doing.
However it used significantly more bytes even as a macro: 17 if I recall
right. That's with the macro. If I were to include it three times by itself
it'd be many more. I believe though that when the cpp translates it it still
requires more thought to determine that a is set to Y[7][1], b to Y[7][3]
and c to Y[7][5].
But I felt that doing instead the pointer arithmetic was worth doing.
However it used significantly more bytes even as a macro: 17 if I recall
right. That's with the macro. If I were to include it three times by itself
it'd be many more. I believe though that when the cpp translates it it still
requires more thought to determine that a is set to Y[7][1], b to Y[7][3]
and c to Y[7][5].
# Obfuscation wrt recode.c
@@ -255,11 +255,16 @@ variables in recode.c, move them to prog.c, compile and expect it to work right.
```
Is that valid and if so how does it function? Yes it's valid but I'll leave
the other part of the question up to the reader to answer. Hint: you already
know how it works (yes, really you do)! Another hint: This is and is not a
misleading comment (conversely this makes this hint both misleading - and
also not).
Is that valid and if so how does it function? Yes it's valid but I'll leave
the other part of the question up to the reader to answer. Hint: you already
know how it works (yes, really you do)! Another hint: This is and is not a
misleading comment (conversely this makes this hint both misleading - and
also not).
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
+5
View File
@@ -619,6 +619,11 @@ you can do:
Then open `decrypted.html` in your browser.
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
<!--
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
+5
View File
@@ -1158,3 +1158,8 @@ to be sure they are seeing the most recent tweets.
Leonid A. Broukhis<br>
chongo (Landon Curt Noll) /\\cc/\\
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)
+5
View File
@@ -424,3 +424,8 @@ to be sure they are seeing the most recent tweets.
Leonid A. Broukhis<br>
Simon Cooper<br>
chongo (Landon Curt Noll) `/\cc/\`
<hr style="width:10%;text-align:left;margin-left:0">
Jump to: [top](#)