Log from 2008-01-28:
--- Day changed Mon Jan 28 2008
00:15 <spidey> probably
00:15 <spidey> i was
00:18 <flex> stupid question, you still banned from the "perm" ban?
00:18 -!- ghableska [n=ghablesk@12-214-219-145.client.mchsi.com] has joined #armagetron
00:19 -!- ghableska [n=ghablesk@12-214-219-145.client.mchsi.com] has left #armagetron []
00:23 <flex> I think their like 30days or something..
00:32 -!- Stewie-arma [n=Stewie-a@cpe-72-130-168-207.san.res.rr.com] has quit ["Leaving"]
00:46 <spidey> flex, yes i am
00:46 <spidey> using a ssl proxy
00:48 <epsy> z-man, i don't know if you're gonna use it as i use it on my serv, but as long as you keep the what when where i'm fine with it :)
00:51 <spidey> epsy, english?
00:51 -!- epsy [n=epsy@mar75-4-82-227-65-72.fbx.proxad.net] has quit ["09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 gfduxitgerhyuiovfg<hqiùHMhAU_IGHIUDRLGHUGYgyhugbysgfæÊ€æÊ»þýýûÎÃ]
01:10 -!- flex [i=flex@host81-154-184-243.range81-154.btcentralplus.com] has quit ["bye"]
01:13 <duudii> #sd Tripper
01:13 <armabot> duudii: Day Tripper Fortress: Players (1/16): Matt
01:46 -!- ct|kyle [n=kyle@pool-71-97-143-220.aubnin.dsl-w.verizon.net] has joined #armagetron
01:49 -!- spidey [n=spidey@195.229.242.154] has quit [K-lined]
01:55 <madmax> lol
02:00 -!- Lucifer [n=satan@adsl-69-149-116-113.dsl.austtx.swbell.net] has joined #armagetron
02:00 -!- Lucifer [n=satan@adsl-69-149-116-113.dsl.austtx.swbell.net] has left #armagetron ["Won't my momma be so proud of me!"]
02:10 <madmax> i guess spidey's sense didn't tingle
02:25 -!- madmax [n=madmax@unaffiliated/madmax] has quit ["leaving"]
02:54 <armabot> armagetronad: z-man * r7672 /armagetronad/branches/0.2.8-auth/armagetronad/ (7 files in 4 dirs): /lock, /unlock, /invite and /uninvite team management chat for players of access level ACCESS_LEVEL_TEAM or better.
03:42 -!- Stewie-arma [n=Stewie-a@cpe-72-130-168-207.san.res.rr.com] has joined #armagetron
04:07 -!- Stewie-arma [n=Stewie-a@cpe-72-130-168-207.san.res.rr.com] has quit [Read error: 104 (Connection reset by peer)]
04:11 -!- z-man [n=manuel@p50871415.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)]
05:19 -!- Stewie-arma [n=Stewie-a@cpe-72-130-168-207.san.res.rr.com] has joined #armagetron
05:19 -!- TeH_OnE [n=TeH_OnE@c-24-2-45-132.hsd1.mn.comcast.net] has joined #armagetron
05:19 <Stewie-arma> wtf?
05:20 <Stewie-arma> who is TeH_OnE?
05:20 <TeH_OnE> some random
05:21 <Stewie-arma> cause you joined most of the channels I'm in the instant right after I did...
05:22 <Stewie-arma> TeH_OnE infact you joined all of mine except one...
05:23 <TeH_OnE> happy?
05:23 <Stewie-arma> eh?
05:23 <Stewie-arma> you stalker...
05:29 -!- TeH_OnE is now known as fluffy
05:31 -!- fluffy is now known as yedips
05:37 <Stewie-arma> #weather 92037
05:37 <Stewie-arma> ...
05:37 <armabot> Stewie-arma: The current temperature in La Jolla Shores, La Jolla, California is 56.8°F (8:40 PM PST on January 27, 2008). Conditions: Overcast. Humidity: 82%. Dew Point: 51.8°F. Pressure: 29.94 in 1013.8 hPa (Rising). Flash Flood Watch in effect through Monday morning...
05:38 <Stewie-arma> liars it isn't Overcast, it is freaking pouring...
05:44 <yedips> #weather 38256
05:44 <armabot> yedips: The current temperature in Paris, Tennessee is 27.7°F (10:49 PM CST on January 27, 2008). Conditions: Clear. Humidity: 88%. Dew Point: 24.8°F. Pressure: 30.17 in 1021.6 hPa (Falling).
05:46 <yedips> brr
05:54 -!- ct|kyle [n=kyle@pool-71-97-143-220.aubnin.dsl-w.verizon.net] has quit ["Leaving."]
05:54 <Stewie-arma> hey spidey get back to bed!
06:00 <Stewie-arma> anyone know how to read mac panic reports?
06:05 -!- libervisco [n=libervis@tuxhacker/libervisco] has quit [Remote closed the connection]
06:35 <yedips> mac fails
06:38 <Stewie-arma> well I've gotten 10 kernel panics today, haven't had ANY before friday
06:38 <Stewie-arma> so I'm thinking my computer is just freaking old
06:38 <yedips> ...
06:39 <yedips> refer to above
06:39 <Stewie-arma> no
06:39 <Stewie-arma> I will not refert to above
06:39 <yedips> yes
06:39 <Stewie-arma> I've gone 4 years, no Kernel Panics, only about 3 errors total. I'm sticking with them
06:40 <yedips> so?
06:40 <Stewie-arma> and this is probably something minor, like my airport card is loose...
07:02 -!- fania [n=chatzill@222.124.94.179] has joined #armagetron
07:03 -!- Stewie-arma [n=Stewie-a@cpe-72-130-168-207.san.res.rr.com] has quit ["Leaving"]
07:05 -!- fania is now known as cHa
07:06 -!- cHa [n=chatzill@222.124.94.179] has quit ["ChatZilla 0.9.80 [Firefox 2.0.0.9/2007102514]"]
07:14 -!- MrBougo [n=MrBougo@254.206-241-81.adsl-dyn.isp.belgacom.be] has joined #armagetron
07:33 -!- MrBougo [n=MrBougo@254.206-241-81.adsl-dyn.isp.belgacom.be] has quit []
09:11 -!- epsy [n=epsy@82.227.65.72] has joined #armagetron
09:50 -!- epsy [n=epsy@82.227.65.72] has quit [Remote closed the connection]
10:03 -!- z-man [n=manuel@p50871415.dip0.t-ipconnect.de] has joined #armagetron
11:06 <armabot> armagetronad: z-man * r7673 /armagetronad/branches/0.2.8-auth/armagetronad/ (2 files in 2 dirs): MD5_PASSWORD_REMOVE -> USER_REMOVE
11:08 <armabot> armagetronad: z-man * r7674 /armagetronad/branches/0.2.8-auth/armagetronad/src/ (render/rFont.cpp ui/uMenu.cpp):
11:08 <armabot> armagetronad: Fixed yet another cursor position bug.
11:08 <armabot> armagetronad: Text menu items with COLOR_SHOW rendering mode switch to COLOR_USE when not selected.
11:20 <armabot> armagetronad: z-man * r7675 /armagetronad/branches/0.2.8-auth/armagetronad/ (config/settings_authentication.cfg language/english_base.txt): Documented chat commands.
11:24 <armabot> armagetronad: z-man * r7676 /armagetronad/branches/0.2.8-auth/armagetronad/ (3 files in 2 dirs): Actually made the code work like the docs say :)
11:45 -!- zmanuel [n=manuel@p508717E4.dip0.t-ipconnect.de] has joined #armagetron
12:02 -!- z-man [n=manuel@p50871415.dip0.t-ipconnect.de] has quit [Read error: 110 (Connection timed out)]
12:16 -!- zmanuel is now known as z-man
12:30 <Sticky_> arma has passwords?
13:01 <armabot> armagetronad: z-man * r7677 /armagetronad/branches/0.2.8-auth/armagetronad/ (2 files in 2 dirs): Stopped abusing http error codes, rely on the message text instead.
13:01 <z-man> Sticky_: yes, it has ADMIN_PASS for ages.
13:02 <Sticky_> ahh not user pass
13:04 <z-man> no, that's new in the 0.2.8-auth branch.,
13:26 -!- z-man [n=manuel@p508717E4.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)]
14:15 -!- ct|kyle [n=kyle@pool-71-97-143-220.aubnin.dsl-w.verizon.net] has joined #armagetron
14:18 -!- flex [n=savas@host81-129-220-11.range81-129.btcentralplus.com] has joined #armagetron
14:36 * luke-jr gets a SPARCstation 20
15:39 <Sticky_> how many cpus?
16:05 <luke-jr> …
16:05 <Sticky_> luke-jr: where do you live?
16:06 <luke-jr> ROL
16:07 <Sticky_> im going to print out 3 dots in size 100 font fly over there and cram them out your arse
16:07 <Sticky_> s/out/up
16:07 <Sticky_> bizzare typo
16:08 <luke-jr> …
16:10 -!- deja_vu_ [n=deja_vu@HSI-KBW-085-216-060-101.hsi.kabelbw.de] has joined #armagetron
16:14 -!- z-man [n=manuel@p508717E4.dip0.t-ipconnect.de] has joined #armagetron
16:18 <flex> you're going to print out dots in font size 100 out of lukes arse?
16:22 <Sticky_> s/out/up
16:29 -!- tramshed [i=tramshed@im.catapultingfeces.com] has quit [Read error: 113 (No route to host)]
16:38 <deja_vu_> O_o
16:39 -!- tramshed [i=tramshed@im.catapultingfeces.com] has joined #armagetron
16:39 <deja_vu_> someone tell me why deja_vu_ isn't registered anymore Oo
16:40 <Sticky_> apparently nickserv is a bit screwed atm
16:42 -!- deja_vu_ is now known as deja_vu
16:42 <deja_vu> well, at least ghosting works
16:43 <deja_vu> maybe they removed the aliases Oo
16:52 -!- flex0 [n=savas@host86-151-83-132.range86-151.btcentralplus.com] has joined #armagetron
17:06 -!- libervisco [n=libervis@tuxhacker/libervisco] has joined #armagetron
17:09 -!- flex [n=savas@host81-129-220-11.range81-129.btcentralplus.com] has quit [Read error: 110 (Connection timed out)]
17:40 <guru3> z-man: can you explain the params a bit?
17:40 <z-man> Sure.
17:40 <guru3> probably just nearly failed an exam
17:41 <guru3> need something i'm good at to do ;)
17:41 <z-man> You know the md5 method does a good md5 sum.
17:41 <z-man> heh, sorry to hear that
17:41 <guru3> minor details
17:41 <z-man> hope it's on the good side of nearly :)
17:41 <guru3> i do too :3
17:41 <z-man> ok, the md5 method really does md5( prefix . password . suffix ).
17:41 <z-man> and prefix and suffix are the params.
17:42 <z-man> So when the game server asks for ?query=params&method=md5
17:42 <guru3> the suffix in bmd5 being \0 ?
17:42 <z-man> Yeah, you can see it that way.
17:43 <z-man> The form you need to return the params is one per line, form of each line is "id value"
17:43 <z-man> so to get empty suffix and prefix explicitly, you'd just return
17:43 <z-man> prefix
17:43 <z-man> suffix
17:44 <z-man> to be digest compatible, which builds md5( username:domain:password ), you'd return
17:44 <z-man> prefix %u:domain:
17:44 <z-man> suffix
17:44 <z-man> (%u gets replaced by the username on the client).
17:44 <guru3> so when the server is creating the 'correctHash'
17:44 <z-man> But anyway, since the forum stores plain md5(password), it's fine if you just return nothing at all at ?query=params.
17:45 <guru3> it should do md5($prefix.$password.$suffix)
17:45 <z-man> right.
17:45 <z-man> after doing the %u -> $user replacement in prefix and suffix, of course.
17:46 <z-man> You have seen the crappy "reference implementation" in 0.2.8-auth?
17:46 <guru3> no
17:47 <z-man> Well, do so if things are unclear and I'm not around :)
17:47 * z-man is just teaching arma to shout "ZOMG HOLERZ!"
17:47 <guru3> i'm just trying to wrap my head around it
17:47 <guru3> the prefix:password:suffix would be the format the database is storing in
17:48 <z-man> Yep.
17:48 <guru3> do the : count as part of the prefix and suffix?
17:48 <z-man> Oh, sorry, no :
17:48 <z-man> it's just a plain concatenation
17:48 <z-man> md5 ( $prefix . $password . $suffix )
17:49 <guru3> well really
17:49 <z-man> the : are just in the prefix for the htdigest hash method.
17:49 <guru3> as long as the client knows that the database is doing that
17:49 <guru3> and so sends the right thing to the server which chekcs it against the authority
17:49 <z-man> you have to do nothing, right.
17:49 <guru3> just another config item
17:50 <z-man> exactly.
17:50 <guru3> and i need to get it using wildcards properly
17:50 <guru3> so that forums.authentication.armagetronad.net does something
17:51 * z-man knows nothing about that, sorry.
17:51 <guru3> yeah that would be all my problem -_-
17:53 -!- epsy [n=epsy@mar75-4-82-227-65-72.fbx.proxad.net] has joined #armagetron
17:53 <guru3> oh wow
17:54 <guru3> this is a bad time to find out i can't really get a wildcard -_-
17:56 <z-man> Heh, better today than later :)
17:56 <guru3> i get to manually add
17:57 <guru3> forums.armathentication.armagetronad.net
17:57 <guru3> this... is going to be interesting
17:59 * tramshed waits for server meltdown
18:01 <z-man> Oh, I just found out why people generally don't use auto-expanding arrays :)
18:01 <z-man> array[x]=array[x-1]....
18:01 <guru3> oh yeah
18:01 <guru3> is comma seperated ok?
18:01 <z-man> if array[x-1] only returns a reference, and the call to array[x] resizes the array, you're screwed.
18:01 <z-man> for the method list? yeah.
18:01 <guru3> implode(',', $validMethods)
18:01 <z-man> ah, nice function
18:05 <guru3> now\
18:05 <guru3> how to get mod_rewrite to fetch the new page without rewriting the whole url
18:09 <z-man> Oh god, this is a nightmare.
18:09 <z-man> It's a small miracle we don't have millions of unracable bugs.
18:09 -!- MrBougo [n=MrBougo@128.192-241-81.adsl-dyn.isp.belgacom.be] has joined #armagetron
18:12 <guru3> oy vey
18:12 <guru3> :S
18:12 <guru3> i guess we'll be doing symbolic linking
18:13 <z-man> what's that?
18:13 <guru3> no wild card
18:13 <guru3> and no mod rewrite rules that i can think of that work
18:13 <guru3> so we'll symbolic link every file from authentication.armagetronad.net to forums.authentication.armagetronad.net
18:13 <guru3> for the effect we want
18:13 <guru3> that is, to use forums. to determine what database to read from
18:15 <z-man> We can still use a different rule for the shortcuts, you know?
18:15 <z-man> like shortcut -> authentication.armagetronad.net/shortcut
18:15 <z-man> Of course, we won't be able to simply relay the service to thers by bending the dns entry.
18:15 <guru3> good point
18:16 <guru3> really though
18:16 <guru3> this will work
18:17 <guru3> now just to refactor some
18:22 <guru3> i hate writing theoretical code like this -_-
18:24 <guru3> z-man: the params
18:25 <guru3> param space value new line
18:25 <guru3> correct?
18:25 <z-man> correct.
18:25 <guru3> cause when human reading
18:25 <guru3> that's gonna be hard -_-
18:25 <z-man> You don't have to produce code that works for every possible authority.
18:26 <z-man> yeah, feel free to do something else and also change the server code :)
18:26 * z-man used "view page source" in the browser.
18:26 <guru3> header content-type should be ok as text/plain for us right?
18:28 <z-man> yep.
18:28 * z-man ignores the headers completely.
18:28 <guru3> can you explain the thing with /armaauth/0.1
18:28 -!- ct|kyle [n=kyle@pool-71-97-143-220.aubnin.dsl-w.verizon.net] has quit ["Leaving."]
18:29 <z-man> It's just arbitrary.
18:29 <z-man> the 0.1 is to be flexible with what we do in the future.
18:29 <z-man> maybe lucifer will change the interface to this SOAP thing.
18:29 <z-man> 0.1 is supposed to be the version of the server/authority protocol.
18:30 <guru3> ok
18:31 <guru3> i'm going to create another php file
18:31 <guru3> to map versions to methods
18:41 <armabot> armagetronad: guru3 * r7678 /tools/http-auth-server/trunk/ (.htaccess armaauth.php config.php version.php): updates to auth server for latest specs from z-man
18:41 <z-man> whatever passes for specs around here :)
18:42 <guru3> glasses ;)
18:45 <guru3> already found a bug
18:45 <guru3> you can't have new lines in headers
18:47 <z-man> did you forget the space between "methods" and the method list?
18:48 <guru3> yes
18:48 <guru3> i did
18:48 <z-man> Umm, doesn't the property list count as the body?
18:48 <guru3> but stupid condlue($msg
18:48 <guru3> puts $msg in body and header
18:48 <guru3> i'm worked around that
18:48 <guru3> dealing with how
18:48 <guru3> your switch
18:48 <guru3> doesn't allow for a blank query
18:48 <guru3> which is what you have with just method set -_-
18:49 <z-man> when does that happen?
18:49 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?method=md5
18:49 <z-man> the server never sends that.
18:49 <z-man> the server always has a query field.
18:49 <guru3> well
18:50 <guru3> i missed that
18:50 <guru3> oops -_-
18:50 <guru3> i also added method versions
18:50 <guru3> query versions
18:50 <guru3> argh
18:50 <guru3> i'm getting back to front with those two
18:51 <z-man> good idea, probably.
18:51 <z-man> So the server should send query=...&versions=0.1 ?
18:51 <z-man> err, version=0.1
18:51 <guru3> that's your /armaauth/0.1?name=
18:52 <guru3> but version= would work too
18:52 <z-man> nah, let's keep it outside of the query, if the script can parse it from there.
18:52 <guru3> just citing the design documentation
18:53 <guru3> "move http://authentication.armagetronad.net/hashauth/md5 to http://forums.authentication.armagetronad.net/armaauth/0.1 "
18:53 <guru3> ;)
18:53 <guru3> version 0.1 implies method md5
18:54 -!- mkzelda [i=mkzelda@cpe-075-177-148-122.nc.res.rr.com] has joined #armagetron
18:55 <z-man> Well, or bmd5.
18:55 <armabot> armagetronad: z-man * r7679 /armagetronad/branches/0.2.8/armagetronad/ (11 files in 3 dirs): ZOMG HOLERZ! Added detection and scoring for tactical holes.
18:56 <guru3> it's one or the other
18:56 <guru3> you can't take both -_-
18:56 <guru3> (not at the moment)
18:57 <z-man> Ah, because your script has to be hardcoded to the database column to use, and you can't change that on a per-method basis?
18:57 <armabot> armagetronad: guru3 * r7680 /tools/http-auth-server/trunk/armaauth.php:
18:57 <armabot> armagetronad: I forgot a space. Oops.
18:57 <armabot> armagetronad: Also, new lines in headers = no no. Who'da thunk it.
18:57 <guru3> ok it works right now
18:58 <armabot> armagetronad: z-man * r7681 /armagetronad/branches/0.2.8-auth/armagetronad/batch/authentication_reference.php: also removing newlines from headers.
19:01 <z-man> Hmm, Ladle Fortress pretends my password is wrong.
19:01 <z-man> Wait, have you hardcoded the script to bmd5?
19:01 <guru3> no
19:01 <guru3> if no version is specificed
19:01 <guru3> it defaults to method
19:01 <guru3> with version 0.1 it locks into md5
19:02 <guru3> should it not do that?
19:06 <z-man> I don't care, as long as it gives you the list of supported methods with query=methods.
19:06 <z-man> Hmm, is there no test whether a user exists?
19:06 <guru3> well with the new structure
19:06 <guru3> that can be done
19:07 <guru3> 404: USER NOT FOUND
19:07 <z-man> That would be nice.
19:10 <luke-jr> nice for bruteforcers
19:10 <guru3> 501
19:10 <guru3> 409
19:11 <z-man> They can already get a user list from the forum page, luke :)
19:11 <luke-jr> z-man: for the forums, yes
19:12 <z-man> Besides, brute forcing our protocol really takes O(2^127) tries to get it right.
19:13 <z-man> O meaning on average here, obviously :)
19:16 <armabot> armagetronad: guru3 * r7682 /tools/http-auth-server/trunk/ (armaauth.php config.php version.php):
19:16 <armabot> armagetronad: More HTTP response headers.
19:16 <luke-jr> harder if they can't determine a valid username
19:16 <armabot> armagetronad: Better way of getting methods back.
19:16 <armabot> armagetronad: Root domain doesn't die improperly now.
19:17 <z-man> Those sites that have a secret user list can use the password not found response, sheesh.
19:17 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?query=methods&version=0.1
19:17 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?query=methods
19:17 <guru3> is that what you were looking for z-man ?
19:18 <guru3> it cross references version available methods with db available methods
19:19 <z-man> if the script really supports all three methods, then yes.
19:19 <guru3> well of course it supports all three
19:19 <guru3> but that's dependent on the database
19:19 <guru3> the forums database does support all 3
19:20 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?query=check&method=poo
19:20 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?query=check&method=sha1&version=0.1
19:20 <guru3> http://forums.authentication.armagetronad.net/armaauth.php?query=check&method=sha1
19:20 <z-man> Well, then, yes, it's fine.
19:22 <z-man> Now we just need to find out why the password check fails.
19:22 <z-man> Hmm, is the user name comparison case insensitive on purpose?
19:22 <guru3> that's mysql
19:22 <guru3> i think
19:23 <z-man> It's important because so far, usernames are taken as they come from the client.
19:23 <z-man> and if the password query is case insenstive, I could be Z-Man@forums or Z-MAN@forums whenver I like.
19:23 <flex0> TST 6 Sign up guys!
19:23 <flex0> come on it's fun
19:23 <flex0> http://xclan.armagetron.co.uk/viewforum.php?f=24
19:24 <guru3> select username from phpbb_users where username = 'tank program';
19:24 <guru3> returns Tank Program
19:24 <guru3> so it's insensitive
19:24 <guru3> do you want it to be sensitive?
19:24 <z-man> I don't care, we just have to define a standard.
19:24 <guru3> can we define case insensitive
19:25 <guru3> because otherwise
19:25 <guru3> it'll all fall apart
19:25 <guru3> mysql only does case sensnitive in binary tables
19:25 <z-man> Well, you could compare the username returned from the database :)
19:25 <guru3> which isn't what the forums used
19:25 <guru3> -_-
19:25 <guru3> w could
19:25 <guru3> *we could
19:25 <guru3> it feels massively like cheating
19:25 <guru3> but we could
19:26 <z-man> It's a question of how we want the names displayed, and what we expect of the systems parsing usernames.
19:26 <z-man> Two cases would make it simple:
19:26 <guru3> might want to ask that on the forums
19:26 <z-man> a) we declare that case in usernames is important, and leave usernames as they come in
19:27 <z-man> b) we declare case in usernames does not matter, and make them lowercase
19:27 <guru3> well iirc the ladder log
19:27 <guru3> uses TANK_PROGRAM
19:27 <z-man> or c) add a parameter to the method that tells us whether we should lowercase the name.
19:27 <guru3> for Tank Program
19:27 <guru3> thereby throwing sensitivity out the window
19:27 <z-man> not tank_program?
19:27 <guru3> either way it looses sensitivity
19:27 <z-man> yeah :)
19:28 <z-man> That's because so far, it uses the "username" name of the player, which has always been just the filtered screen name.
19:28 <z-man> now it is the full authentication name, if the player has one.
19:29 <z-man> I think we should go for c).
19:29 <guru3> i just thought of something
19:29 <guru3> isn't there some guy on the forums
19:29 <guru3> whose name is like 0xff something?
19:30 <guru3> wouldn't that... be bad?
19:30 <luke-jr> z-man: or the server can, upon successful auth, return a unique name
19:30 <luke-jr> and if the '@server' doesn't match up, either double-auth with the new server, or error
19:30 <z-man> 0x is escaped :)
19:31 <z-man> it gets transformed to 0\x.
19:31 <guru3> ok
19:31 <z-man> luke-jr: server names are already converted to lowercase.
19:31 <luke-jr> I'm not referring to server names ☺
19:32 <luke-jr> game: does hash X authenticate LUKE@DASHJR.ORG?
19:32 <z-man> ah, ok, well, that would be a possibilty.
19:32 <luke-jr> auth: yes, I call him luke@dashjr.org
19:32 <z-man> Oh, bad.
19:32 <z-man> only "I call him luke"
19:32 <z-man> otherwise
19:32 -!- z-man is now known as badmintron
19:33 <luke-jr> game: does hash X authenticate TANK program@forums.armagetronad.net ?
19:33 <badmintron> game: do you know about bla@blubb.com?
19:33 <luke-jr> auth: yes, I know him as Tank Program@armagetronad.net
19:33 * badmintron : yeah, I call him Z-Man@forums. Lolz.
19:33 -!- badmintron is now known as z-man
19:33 <luke-jr> game: ok, armagetronad.net… does hash X authenticate Tank Program@armagetronad.net ?
19:33 <luke-jr> auth2: yes, I know him as Tank Program@armagetronad.net
19:34 <luke-jr> or we can just complain if the domain is a mismatch ☺
19:34 <luke-jr> and have another message:
19:34 <luke-jr> game: does hash X authenticate TANK program@forums.armagetronad.net ?
19:34 <luke-jr> auth: Well, that's Tank Program@armagetronad.net-- ask him
19:35 <z-man> Hmm, that would work, but what's the benefit over just returning the true username?
19:36 <luke-jr> to force a comparison with domain
19:36 <luke-jr> so a wildcard subdomain can't be abused as easily
19:36 <luke-jr> and the other use case for redirections ☺
19:36 <z-man> Doesn't the domain name get passed into the script?
19:36 <luke-jr> so I can configure my forum account to redirect to luke@dashjr.org
19:36 <z-man> use case for redirections? :)
19:36 <luke-jr> z-man: $_SERVER['HTTP_HOST'], yes
19:37 <luke-jr> but if someone makes a dumb PHP script, they could forget to check it
19:37 <luke-jr> if the server is required to return its own domain, that wouldn't be as easy to mess up
19:39 <z-man> But they'd notice immediately and fix it (provided we give meaningful errors, which we will do for all those who seriously want to implement an authority).
19:40 <luke-jr> ?
19:40 <luke-jr> I'm assuming a good auth server ☺
19:42 <luke-jr> eg, ed forgets to check on @Crazy-Tronners.Net
19:42 <luke-jr> and P4 notices mysql.crazy-tronners.net is the same vhost
19:42 <luke-jr> if C-T.N returns P4@C-T.N, he can't use P4@mysql.C-T.N
19:43 <z-man> Ah, ok :)
19:43 <z-man> Then let's do it that way.
19:44 <z-man> Let's just append the full username to the PASSWORD_OK answer.
19:44 <luke-jr> ok
19:44 <luke-jr> and a redirector would be nice too :þ
19:49 * epsy imagines a teleporter room server
19:49 <luke-jr> O.o?
19:50 <z-man> With a redirection, would the user then appear as the redirected user or the original?
19:50 <epsy> there, the gold zone leads you to café, plop you enter in, you get move'd_TO fort café :P
19:50 <z-man> because if it's supposed to be the original, you'd need to pass that in correct spelling, too :)
19:51 <luke-jr> as the redirected
19:51 <luke-jr> well
19:51 <luke-jr> if Luke-Jr@forums redirects to luke@dashjr.org, the actual username is luke@dashjr.org
19:52 <luke-jr> epsy: do it
19:52 <luke-jr> that could be a master server replacement XD
19:52 <epsy> idk, we might want to have hostmask masking, like in irc
19:52 <epsy> hrhr
19:53 <z-man> then what's the point of the redirection? why don't you just log in as luke@dashjr.org?
19:54 <luke-jr> z-man: lazy
19:54 <luke-jr> XD
19:54 <luke-jr> z-man: also, maybe to get around whitelists
19:55 <luke-jr> eg, if they don't trust dashjr.org because they want unique users
19:55 <luke-jr> @forums will only redirect to one @dashjr.org acct, so it's safe as any @forums
19:55 <luke-jr> so I could login anywhere that only allows forum users
19:55 <luke-jr> while keeping my identity
20:04 <armabot> armagetronad: z-man * r7683 /armagetronad/branches/0.2.8/armagetronad/ (Makefile.manual batch/make/beautify config/astylerc): Disabling astyle for now. More trouble than it is worth with its changed default behavior.
20:15 <z-man> Tank: your password hash comparison should be case insensitive :)
20:24 <guru3> ah
20:26 <guru3> try it now
20:31 * luke-jr notes it would probably be more efficient to transform the hex hash into binary before comparing
20:31 <luke-jr> instead of vice-versa
20:43 <wrtlprnft> wtg z-man
20:43 <wrtlprnft> SCORE_HOLE… great!
20:44 <luke-jr> O.o
20:44 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has joined #armagetron
20:44 <wrtlprnft> what about PUNISHMENT_HOLER_CRIERS?
20:45 <z-man> I think SCORE_HOLE 10000 would be enough :)
20:45 <z-man> I was also thinking about a mode where you can only score by holing :)
20:46 <wrtlprnft> o_O
20:46 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has quit [Client Quit]
20:46 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has joined #armagetron
20:46 * wrtlprnft goes and tries to figure out how exactly that setting works
20:46 <wrtlprnft> the NEWS looks great, though
20:47 <epsy> wrtlprnft, ah there you are, hi
20:47 <z-man> guru3: works, thanks!
20:47 * z-man tests bmd5, too
20:47 <epsy> wrtlprnft, i'm going to ask, can you promote the new TST in café ? :)
20:48 <wrtlprnft> tell me the exact message, maybe?
20:48 <wrtlprnft> i'm terrible at designing such things
20:48 <epsy> http://forums.armagetronad.net/viewtopic.php?t=18204
20:48 <epsy> transform it as you like
20:49 -!- yedips [n=TeH_OnE@c-24-2-45-132.hsd1.mn.comcast.net] has quit ["Leaving"]
20:50 <z-man> guru3: bmd5 works, too.
20:51 -!- TeH_OnE [n=TeH_OnE@adsl-065-006-218-226.sip.mem.bellsouth.net] has joined #armagetron
20:51 <TeH_OnE> yay
20:51 -!- TeH_OnE is now known as spidey
20:51 <spidey> freenode removed my kiline :D
20:52 <epsy> xfroggy, you there?
20:52 <luke-jr> spidey: why
20:53 <spidey> luke-jr, dunno
20:53 <spidey> i sent a email
20:53 <luke-jr> …
20:53 <spidey> someone replied with "i can't see any klines under that ip"
20:53 <spidey> i tried to connect and it worked
20:53 <luke-jr> lol
20:53 <luke-jr> which means 1 of 2 things
20:53 <luke-jr> 1. it was a temp kline
20:53 <luke-jr> 2. he wasn't supposed to unkline you
20:53 <spidey> heh
20:54 <wrtlprnft> epsy: that's gotta be the worst designed ad, ever
20:54 <wrtlprnft> (the one i came up with, that is)
20:54 <epsy> lol
20:55 <wrtlprnft> by the way, have you guys decided on whether to allow shuffling up or not yet?
20:55 * epsy votes yes?
20:56 * wrtlprnft doesn't even know if the shuffling toggling thing still works
20:56 <spidey> oh
20:56 <epsy> i think it never did
20:56 <spidey> i went and took a test to see how stupid i was, at the GED place
20:56 <wrtlprnft> so, is it enabled or disabled?
20:57 <spidey> my scores where so high i'm starting at level 5, they said noone's ever started at level 5 :D
20:57 <epsy> enabled
20:57 <wrtlprnft> hmm
20:58 <epsy> (ty from fofo btw :P)
20:58 <wrtlprnft> should work now
20:58 <wrtlprnft> stupid me
20:58 -!- MrBougo [n=MrBougo@128.192-241-81.adsl-dyn.isp.belgacom.be] has quit []
20:58 * epsy is 75% sure that the bug was something related to global vars
21:00 <wrtlprnft> z-man: traitor!
21:00 <wrtlprnft> $player_lose_hole
21:00 <wrtlprnft> negative SCORE_HOLE should be unsupported
21:00 <z-man> heh, just in case :)
21:01 <epsy> why?
21:01 <epsy> i mean, loosing one point for holing then getting the win is just acceptable
21:01 <wrtlprnft> epsy: in fact it was my editor's setup's stupidity
21:01 <epsy> now if you come in a hole and get out thru the same one...
21:01 -!- madmax [n=madmax@unaffiliated/madmax] has joined #armagetron
21:01 <epsy> damned 25% :P
21:02 <z-man> still only gets scored once.
21:02 <epsy> once per hole per player ? or once per hole?
21:02 <z-man> per cycle.
21:02 <wrtlprnft> there used to be a time where i was really too lazy to type c++ keywords
21:02 <z-man> since the cycle dies, that also mostly means once per player.
21:03 <epsy> so you you go trough 14 holes you only get one time score_hole?
21:03 <wrtlprnft> so i had macros that replaced vd by void, de by double, sh by switch, etc…
21:03 <wrtlprnft> i didn't know anything but c++ back then
21:03 <z-man> ah, no, the player who made the hole gets the points.
21:03 <z-man> and only once.
21:03 <epsy> oh, lol
21:03 <wrtlprnft> that's why i didn't care about /bin/sh being replaced by /bin/switch and foo.de by foo.double
21:03 <wrtlprnft> some vimrcs still have that “feature” x_X
21:04 <epsy> hrhr
21:04 <flex0> hwhw
21:04 <wrtlprnft> z-man: so if two people move through the same hole you only get it once, too?
21:04 <wrtlprnft> that's what i read from the code
21:04 * epsy assumes post_text is the post's text in phpbb
21:04 <z-man> wrtlprnft: yes.
21:04 <luke-jr> z-man: how is a hole different from a death?
21:04 <wrtlprnft> i guess i'll update café
21:05 <wrtlprnft> luke-jr: someone from your team goes through it
21:05 <z-man> and it needs to be a hole in an enemy wall.
21:05 <luke-jr> so you only get ₧ if someone goes thru?
21:05 <z-man> yes, otherwise you'd be right :)
21:05 <luke-jr> ah
21:06 * wrtlprnft still doesn't get the point behind FORTRESS_HELD_SCORE
21:06 <wrtlprnft> seems to do pretty much the same thing as FORTRESS_CONQUERED_SCORE and SCORE_WIN put together
21:06 <epsy> i guess it's about giving a different score to teams that win by conquer and those who win by defending
21:07 <wrtlprnft> at least with two teams and two fortresses
21:07 <wrtlprnft> epsy: that's already happening on café ;)
21:07 <epsy> wrtlprnft, you dont want to have negative conquer scores do you?
21:07 <wrtlprnft> no.
21:08 <epsy> so there's the only point i see in it :P
21:08 <wrtlprnft> isn't f_h_s added to one team's score after they conquered the enemy zone AND held their own?
21:09 <armabot> armagetronad: z-man * r7684 /armagetronad/branches/0.2.8-auth/armagetronad/src/network/nKrawall.cpp: Sendig hashes with lowercase hexcodes; php generates them that way by default.
21:10 <luke-jr> z-man: lame
21:10 <luke-jr> send them with half upper and half lower
21:10 <z-man> you mean, whe should mix cases randomly
21:10 <luke-jr> force people to write good code
21:10 <z-man> :)
21:10 <wrtlprnft> err, http://de2.php.net/manual/en/function.strtoupper.php ?
21:11 <z-man> wrtlprnft: two points on f_h_s:
21:12 <z-man> 1. maybe each team starts with many zones, then you can reward holding many of them.
21:12 <wrtlprnft> oh, so it multiplies? sweet
21:12 <wrtlprnft> i can see ed using that
21:12 <wrtlprnft> for chico type maps, as long as it doesn't print one message per zone
21:12 <z-man> 2. timing :) f_h_s is applied two seconds after round end, so you can give different scores for the case when two zones are konquered almost at the same time.
21:13 <z-man> Err, of course it does print one message per zone :/
21:13 <wrtlprnft> hmm, that's sort of bad
21:13 <wrtlprnft> imagine one of those 50-zones-per-team maps
21:13 * epsy remembers a game which prevented displaying the same message on hud twice
21:14 <z-man> bah, that's for wusses.
21:14 <luke-jr> 0.1 score
21:14 <wrtlprnft> epsy: you can do that on the client side
21:14 <epsy> yes i guess
21:14 <wrtlprnft> sort of a server spam protection ;)
21:14 <epsy> but deleting hud messages from server is ... trivky :P
21:14 <epsy> *c
21:14 <wrtlprnft> why?
21:15 <wrtlprnft> keep a buffer of the last couple of messages
21:15 <epsy> imagine
21:15 <wrtlprnft> if you get a duplicate, just delete the original one and maybe indicate that it appeared twice
21:15 <luke-jr> if the player thinks the server is spamming, they can leave
21:15 <epsy> Team A conquer's team B's base and gets 2 points
21:16 <epsy> then Team A conquer's team B's base and gets 2 points
21:16 <wrtlprnft> so?
21:16 <epsy> if it was poissible to litterally merge them, after sending them to clients, so it shows
21:16 <epsy> Team A conquerred 2 of Team B's bases and got 4 points
21:17 <epsy> but that's sort of, complicated i guess
21:17 <wrtlprnft> yeah, that has to be done on the server side for that one particular message
21:17 <epsy> yes, and then you need to tell client message X changed etc
21:17 <wrtlprnft> no.
21:18 <wrtlprnft> they're all given out at the same time anyays
21:18 <epsy> imagine a one second time elapsement between these 2 messages :)
21:18 <wrtlprnft> there isn't.
21:19 -!- flex0 [n=savas@host86-151-83-132.range86-151.btcentralplus.com] has quit [Read error: 104 (Connection reset by peer)]
21:19 <wrtlprnft> either you held the fortress or you didn't
21:19 <epsy> ?
21:19 <epsy> or
21:19 <epsy> *oh
21:19 * epsy was thinking on a more general purpose
21:19 <wrtlprnft> you can't generalize that, of course
21:19 <wrtlprnft> currently looking for a way to do that
21:20 <epsy> do messages have an universal ID between client and server?
21:20 <wrtlprnft> they have the ID of the nMessage that was used to send them
21:20 <epsy> or if the hud messages were created on the client side
21:21 <epsy> we would
21:21 <wrtlprnft> i don't think it's saved anywhere, though
21:21 <epsy> 1/ reduce some little amount of latency
21:21 <epsy> 2/ the client might have more of a clue about these
21:22 <epsy> but, doing that, we sacrifice server-custom messages
21:22 <epsy> or more latency at connection
21:22 <wrtlprnft> i'm still wondering about the potential use
21:22 <wrtlprnft> how often do you get the same message multiple times?
21:23 <epsy> just enter a sumo server
21:23 <epsy> A conqered B's base
21:23 <epsy> C conqered B's base
21:23 <epsy> D conqered B's base
21:23 <wrtlprnft> that's 3 times with different names
21:23 <epsy> yes, what about making it looks like
21:23 <wrtlprnft> A, C, D each got 20 points for conquering B's base
21:24 <epsy> A,C and D conquered B's base and got n points each
21:24 <epsy> or like what you suggested, right
21:24 <luke-jr> i18n
21:24 <wrtlprnft> those messages get created at the same time, too
21:25 <epsy> ok, one other example :D
21:25 <wrtlprnft> in fact those should be pretty easy to put into one if you figure out how to internationalize it
21:25 <wrtlprnft> because they're all generated in the same loop
21:25 <epsy> A core dumped B for 2 points
21:25 <epsy> A core dumped E for 2 points
21:25 <epsy> A core dumped F for 2 points
21:25 <epsy> A: woo i got many points, let's call it a triple frag
21:25 -!- z-man [n=manuel@p508717E4.dip0.t-ipconnect.de] has quit [Read error: 104 (Connection reset by peer)]
21:26 -!- z-man [n=manuel@p508717E4.dip0.t-ipconnect.de] has joined #armagetron
21:26 <luke-jr> epsy: then you need to go back and rewrite an older msg :þ
21:26 <wrtlprnft> that sounds complicated all right
21:26 <luke-jr> and reset its newness
21:26 <epsy> yes that's why i call it complicated :P
21:26 <wrtlprnft> have fun implementing that
21:26 <epsy> hrhr
21:26 <wrtlprnft> z-man: merging those f_h_s messages looks quite dirty :-(
21:27 <wrtlprnft> gotta move the entire logic somewhere else
21:27 <z-man> Nah, we have full control over the calling code.
21:28 <wrtlprnft> i know, it's in gGame
21:29 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)]
21:30 <z-man> We could make things general and let the AddScore functions merge identical messages.
21:30 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has joined #armagetron
21:30 <wrtlprnft> that's an idea
21:31 <wrtlprnft> but how does AddScore know if there's more messages to come?
21:31 <z-man> It doesn't, but once per frame or second there could be a FlushMessages() call.
21:31 <epsy> most of the languages uses for enumerations such a following sheme, right ? « AserparatorBseparatorClastseparatorD » ?
21:33 <wrtlprnft> sounds sane.
21:35 <wrtlprnft> is it safe to change a tOutput's identifier later on?
21:36 <z-man> Hmm, if you pass it as a safe type.
21:36 <wrtlprnft> safe type?
21:36 <z-man> Unfortunately, tOutputs themselves are not so well copyable.
21:36 <z-man> yeah, tString or something.
21:39 <wrtlprnft> so you could append _multiple or something if there's more than one message
21:39 <z-man> yep.
21:40 <wrtlprnft> why does that function actually get a full tOutput as parameter?
21:40 <wrtlprnft> shouldn't a string containing the identifier be enough?
21:42 -!- madmax [n=madmax@unaffiliated/madmax] has quit ["Lost terminal"]
21:42 <wrtlprnft> nvm, i see it now
21:42 <wrtlprnft> player_win_frag et al.
21:46 <wrtlprnft> is that another vc6 bug?
21:46 <wrtlprnft> tOutput& operator << (tOutput &o, char *locale)
21:46 <wrtlprnft> { return operator<<(o, static_cast<const char *>(locale));
21:46 <wrtlprnft> }
21:46 <wrtlprnft> tOutput& operator << (tOutput &o, const char *locale){
21:46 <wrtlprnft> the first one shouldn't be necessary, or did i miss something?
21:50 -!- ct|kyl1 [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has joined #armagetron
21:54 <z-man> you missed nothing, and yes, I bet it's because of vc6
21:54 <z-man> or because of some braindead other object that has a char * operator conversion :)
21:55 -!- ct|kyle [n=kyle@pool-71-97-157-191.aubnin.dsl-w.verizon.net] has quit [Nick collision from services.]
21:55 <z-man> I guess you'd need to find the correct tOutputItemLocale and bend around its tLocaleItem pointer.
21:55 -!- ct|kyl1 is now known as ct|kyle
21:59 <z-man> Or, hah:
21:59 <z-man> pass in an empty tOutput item :)
22:00 <z-man> and the identifier strings
22:00 <z-man> and set the extra template parameter on the output item.
22:02 <z-man> tOutputs are safe to be copied and kept around, it seems.
22:05 <z-man> You just have to be careful with the template parameters: they need to be set before they're used.
22:05 <wrtlprnft> maybe the safest way is to just add a second version that gets 4 tOutputs?
22:06 <wrtlprnft> if i need to modify the parameters anyways
22:06 <z-man> Yeah, that would work, too.
22:06 <wrtlprnft> although it would make the calling code sort of bulky, it could decide whether it wants it messages to concatenated
22:07 <z-man> There are not too many messages where concatenation makes sense, anyway.
22:10 <wrtlprnft> at least not immediate concagenation
22:11 <wrtlprnft> FORTRESS_CONQUERED_SCORE would be a candidate for late concatenation
22:15 <wrtlprnft> ePlayerNetID::AddScore and eTeam::AddScore do almost the same thing…
22:19 <z-man> Yeah, feel free to factor it out into a common base class :)
22:19 <z-man> eThingWithScore or something.
22:20 <z-man> Or have it delegate to a template function, whatever works.
22:20 <guru3> eThingWithScore
22:20 <guru3> i like that name
22:22 <wrtlprnft> sounds like something i won't do today
22:22 <wrtlprnft> good night
22:22 <guru3> good night
22:23 <z-man> night.
22:24 <guru3> z-man: right now the hash comparison is now using a binary safe method called strcasecmp
22:25 <z-man> good
22:25 <guru3> should i keep with that or convert the case of both?
22:25 <z-man> Would there be a difference?
22:25 <z-man> performance or design wise?
22:25 <guru3> don't think so really
22:25 * z-man sees none.
22:26 * z-man declares "Whatever works." the official Armagetron Advanced motto.
22:26 <guru3> goes well with "we'll see how it goes"
22:26 <armabot> armagetronad: guru3 * r7685 /tools/http-auth-server/trunk/armaauth.php: Case insensitive comparision of hashes. Mmmmm. Hash.
22:38 -!- deja_vu [n=deja_vu@HSI-KBW-085-216-060-101.hsi.kabelbw.de] has quit ["leaving"]
22:54 -!- epsy [n=epsy@mar75-4-82-227-65-72.fbx.proxad.net] has quit ["09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 gfduxitgerhyuiovfg<hqiùHMhAU_IGHIUDRLGHUGYgyhugbysgfæÊ€æÊ»þýýûÎÃ]
22:57 <armabot> armagetronad: z-man * r7686 /armagetronad/branches/0.2.8/armagetronad/src/tron/ (6 files):
22:57 <armabot> armagetronad: Hole score management is now done with an extra redirection: hole->explosion->cycle.
22:57 <armabot> armagetronad: hat way, in case a cycle can produce multiple explosions (not the case
22:57 <armabot> armagetronad: with respawning, there it is a new cycle every spawn), the player can
22:57 <armabot> armagetronad: get multiple scores for holes.
23:14 <armabot> armagetronad: z-man * r7687 /armagetronad/branches/0.2.8/armagetronad/src/tron/gExplosion.cpp: Fixed small wall stumps that would sometimes get left behind.
23:19 * z-man loves chasing those weird little bugs
23:19 <guru3> the poor stumps :<
23:19 <guru3> left all alone
23:19 <z-man> yeah, somebody had to care for them.
23:20 <z-man> I dimly remember making the change that caused the bug had a reason.
23:20 <z-man> Should probably look it up in the logs.
23:23 <z-man> In retrospect, I probably can't say how grateful I am that luke merged the complete histry of the project into our current SVN repository.
23:24 <z-man> False alarm. The code line was unchanged since it was introduced.
23:26 <luke-jr> ..
23:26 <xfroggy> ...
23:26 <guru3> ......
23:37 <z-man> Oh, I've got a reason to make user name comparisons case sensitive :/
23:38 <z-man> In the prefix/suffix %u username replacement, the username is of course taken as the client has it.
23:38 <z-man> In the server database, it will have been taken like the user gave it there.
23:39 <guru3> oh hrmm
23:39 <guru3> damn
23:39 <guru3> indeed
23:39 <z-man> Then again, of course, we still can keep that an implementation detail the authority has to worry about.
23:39 <guru3> -_-
23:40 <z-man> As long as we follow Luke's suggestion to return the true username back when password_ok is returned.
23:40 <z-man> An authority where the comparison has to be made case sensitive one way or the other can then return UNKNOWN_USER on failure, while...
23:41 <z-man> an authority where the comparison does not need to be case sensitive can accept different spellings and return the variant that was in the database.
View entire month
DISCLAIMER: These logs of public chat may contain some content which may not be appropriate for all audiences. Use at your own risk.
Logs from 2006-2009 pulled from wrtlprnft
Format changes at: 2015-08-25, 2017-02-20, and 2020-03-23. Times (2015 and later) should be Eastern.
• Website was created by nelg
• Design:
» Layout is loosely based on an old design by Durf.
» Icons on the tools page were originally by Royce, new icons added will try to follow some of the design language.
» Various other icon selections include icons from Crystal, crystalsvg, oxygen, and breeze icon themes.
» Other icons: fontawesome

is a site that has tools, maps, and other various items. It orignally only existed as a server control panel, but I slowly began adding stuff such as a homepage and tools.
----
This is an LLM-free zone. In general, I am unwilling to use (fight with) any form of "GenAI" to write code for me. So, for the forseeable future, everything on this site will continue to be written by a very silly goose (wait that's me honk honk) with some parts written by other humans as well (silly hu-mon) rather than any plausible-series-of-words token-eating machine. Even my libraries are out of date, and suddenly that's a good thing!
(Although the style has changed several times and content has been added and changed, the base of this site has barely been updated since 2015. But it Ain't Broke!)
This site is also occasionally tested with older browsers, but compatibility is not guarenteed. Although, if you have an old obscure browser and something isn't working that previously did, I guess you can tell me (nelg) about it...