diff --git a/2001/kev/README.md b/2001/kev/README.md
index 96b917b35..3e95bab9c 100644
--- a/2001/kev/README.md
+++ b/2001/kev/README.md
@@ -1,12 +1,12 @@
# Best Curses Game
- Kevin Pulo
- School of Information Technologies
- Madsen Building F09
- University of Sydney, NSW, 2006
- Australia
-
- http://www.kev.pulo.com.au/
+Kevin Pulo
+School of Information Technologies
+Madsen Building F09
+University of Sydney, NSW, 2006
+Australia
+
+Mastodon:
## To build:
@@ -38,12 +38,8 @@ box.
## Author's remarks:
- NETWORK P*NG!
- [=================]
-
- Kevin Pulo
- kev@pulo.com.au
+**NETWORK PONG!**
### REQUIREMENTS
@@ -53,35 +49,34 @@ box.
### DESCRIPTION
-This program is a two-player networked version of the eighties
-arcade classic, "pong". It uses standard TCP sockets to
-communicate over the net, and ncurses for display. It supports
-variable terminal sizes (though both players must have the same
-terminal size) and game speeds. Each player has a paddle to hit
-the ball, and you get points for getting the ball past your
-opponent's paddle. It's pretty fun! :)
+This program is a two-player networked version of the eighties arcade classic,
+[Pong](https://en.wikipedia.org/wiki/Pong). It uses standard TCP sockets to
+communicate over the net, and `ncurses` for display. It supports variable
+terminal sizes (though both players must have the same terminal size) and game
+speeds. Each player has a paddle to hit the ball, and you get points for
+getting the ball past your opponent's paddle. It's pretty fun! :)
### RUNNING
-Run the server first without any command line arguments, ie.
+Run the server first without any command line arguments, i.e.
```sh
./kev
```
Then run the client with a single command line argument which is
-the name of the machine running the server, eg.
+the name of the machine running the server, e.g.
```sh
./kev localhost
```
-Make sure that the terminals on both ends are the same size.
-Also, the TCP port number specified in the build file mustn't be
-blocked by a firewall.
+Make sure that the terminals on both ends are the same size. Also, the TCP port
+number (5455) specified in the [Makefile](Makefile) mustn't be blocked by a
+firewall.
Here's a good quick example to see it in action on your own
-machine, assuming you have Xwindows:
+machine, assuming you have `Xwindows`:
```sh
xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev &
@@ -91,9 +86,9 @@ xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev localhost&
### PLAYING
Your paddle is the one at the bottom of the screen, your opponent
-is at the top. To move your paddle left, hold down ',' (ie. '<'
-but don't press shift). To move your paddle right, hold down '.'.
-To quit, either player may press 'q'.
+is at the top. To move your paddle left, hold down `,` (i.e. `<`
+but don't press shift). To move your paddle right, hold down `.`.
+To quit, either player may press `q`.
The current score is shown on the left side of the halfway line.
Your score is the lower number, your opponents score is the upper
@@ -110,10 +105,10 @@ will decrease (or if the ball is going slowly enough, it'll turn
around).
You might want to increase your keyboard repeat rate before
-playing. On the Linux console try "kbdrate -r 24.0 -d 250"
-(kbdrate might be "hidden" from normal users in /sbin, and you
-might need to be root anyway), in Xwindows try "xset r rate 250
-24" (find out your current rate first with "xset q", so that you
+playing. On the Linux console try `kbdrate -r 24.0 -d 250`
+(`kbdrate` might be "hidden" from normal users in `/sbin`, and you
+might need to be root anyway), in `Xwindows` try `xset r rate 250
+24` (find out your current rate first with `xset q`, so that you
can reset it later).
Look below in the Building section for info on how to speed up or
@@ -122,23 +117,23 @@ terminal size).
### BUILDING
-Just run the Makefile as above. The "SPEED" variable in the Makefile
-controls the speed of the game (defaults to 50). This speed is
+Just run `make`to use the Makefile as above. The `SPEED` variable in the Makefile
+controls the speed of the game (defaults to `50`). This speed is
the delay between frames in milliseconds. Thus a value of 0 will
make the game go as fast as your network can handle, and values
less than 50 are useful for larger terminals or more exciting
games. The program needs bandwidth equal to 1/s bytes per second
-(where "s" is the speed value). Any latency on the network will
-be added to s - so you should probably subtract any latency from
-the value of s you want to have. Given that loopback and fast
+(where `s` is the speed value). Any latency on the network will
+be added to `s` - so you should probably subtract any latency from
+the value of `s` you want to have. Given that `loopback` and fast
Ethernet LANs are both much less than 1ms of latency, you should
only need to worry about this if you plan on playing over a slower
-link like a cable modem, DSL, or (God-forbid) dialup.
+link like a cable modem, DSL, or (God-forbid) dial-up.
The TCP port to use for network communications is specified by the
-"PORT" variable in the Makefile. If the default of 5455 is
+`PORT` variable in the Makefile. If the default of `5455` is
blocked for whatever reason, you can change it to something else.
-Of course if you use a port < 1024, you'll need to be root.
+Of course if you use a `port < 1024`, you'll need to be root.
### OBFUSCATION
@@ -159,22 +154,22 @@ unexpectedly cool. :)
### BUGS
-There are 3 warnings when I compile with gcc 2.95.3 (-Wall -ansi
--pedantic) on my Linux system, but all are completely harmless.
+There are 3 warnings when I compile with gcc 2.95.3 (`-Wall -ansi
+-pedantic`) on my Linux system, but all are completely harmless.
I don't like the curses and/or termcaps/terminfos on IRIX and
Solaris (the only two non-Linux systems I have access to).
-Despite calling timeout(0), notimeout(win, TRUE), nodelay(win,
-TRUE) and/or keypad(win, FALSE), it still seems to force a delay
-into calls to getch() - I'm guessing at a termcap/terminfo level.
+Despite calling `timeout(0);`, `notimeout(win, TRUE);`, `nodelay(win,
+TRUE);` and/or `keypad(win, FALSE);`, it still seems to force a delay
+into calls to `getch()` - I'm guessing at a termcap/terminfo level.
At any rate, I can't seem to force no delay. This is a shame,
because it basically plays havoc with the input code, particularly
the read-ahead canceller. It still works, but not nearly as well
-(keypresses are dodgey and holding down keys doesn't always work),
-and so I _much_ prefer and recommend Linux libncurses.
+(key presses are dodgy and holding down keys doesn't always work),
+and so I _much_ prefer and recommend Linux `libncurses`.
-Sometimes when 'q' is pressed in one, the other will crash out
-with "Broken pipe".
+Sometimes when `q` is pressed in one, the other will crash out
+with `Broken pipe`.
If the specified port can't be bound or connected to, the program
segfaults.
@@ -185,7 +180,7 @@ possible to crash the program a player scores over a billion
points (1e9). Maybe you can consider that the goal... ;)
If you run the client and server on different architectures, both
-architectures need to have the same character systems (ie. don't
+architectures need to have the same character systems (i.e. don't
try mixing ASCII and EBCDIC). It is independent of endianness
though.
diff --git a/bugs.md b/bugs.md
index ce5494d8b..08d5b66ad 100644
--- a/bugs.md
+++ b/bugs.md
@@ -1276,6 +1276,27 @@ Yes that's a zero. Now removing the 0 changes it to:
I did break that line up too but I don't remember the results and unfortunately
right now I need to not continue with it. Still some ideas.
+## [2001/kev](2001/kev/kev.c) ([README.md](2001/kev/README.md)
+## STATUS: INABIAF - please **DO NOT** fix
+
+Sometimes when one player presses `q` it will result in broken pipe on the other
+end.
+
+The author also noted that some versions of `curses` have problems with
+`getch()` having a delay.
+
+The program is very likely to segfault if the specified port can't be bound or
+connected to.
+
+If the terminal is too wide (the author suggests over 500 characters) the
+program can segfault.
+
+It's also possible to crash the program if a player scores over a billion
+points.
+
+Although it is independent of endianness both systems need the same character
+set. In other words both have to be ASCII or EBCDIC - not one of each.
+
# 2002
There was no IOCCC in 2002.
diff --git a/tmp/winners.csv b/tmp/winners.csv
index 7944694b4..a45765c8a 100644
--- a/tmp/winners.csv
+++ b/tmp/winners.csv
@@ -107,7 +107,7 @@ Joshua Karns,Joshua_Karns,null,null,jkarns275@gmail.com,null,@jkarnss);
Jyrki Holopainen,Jyrki_Holopainen,https://web.archive.org/web/20061205082106/http://personal.eunet.fi/pp/halo/,null,jyrki.holopainen@paetronics.fi,null,null);
Karl F. Fox,Karl_F._Fox,null,null,karl@ascend.com,null,null);
Ken Huffman,Ken_Huffman,http://www.huffmancoding.com,null,huffmancoding@gmail.com,null,null);
-Kevin Pulo,Kevin_Pulo,//www.kev.pulo.com.au/,null,kev@pulo.com.au,null,null);
+Kevin Pulo,Kevin_Pulo,//www.kev.pulo.com.au/,null,kev@pulo.com.au,null,@devkev@fosstodon.org);
Kimmo Fredriksson,Kimmo_Fredriksson,null,kimmo.k.k.fredriksson@gmail.com,null,null);
Larry Jones,Larry_Jones,null,null,lawrence.jones@siemens.com,null,null);
Larry Wall,Larry_Wall,http://www.wall.org/~larry/,null,larry@wall.org,US,null);