--- Log opened Wed Mar 05 00:00:59 2008 [00:22:19] -!- DSPLord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [00:22:32] -!- mode/#calcgames [+v DSPLord] by zshell [00:24:43] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 306 seconds] [00:27:13] -!- DSPLord is now known as DSP_Lord [00:27:55] <@Andy_J> so yes, kind of a globops notice thing [00:28:05] <@Andy_J> in other words I can ignore it [00:31:19] -!- DSPLord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [00:31:27] -!- mode/#calcgames [+v DSPLord] by Milton [00:31:27] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 244 seconds] [00:37:23] -!- DSPLord is now known as DSP_Lord [00:40:14] -!- DSPLord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [00:40:24] -!- mode/#calcgames [+v DSPLord] by Milton [00:41:47] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 244 seconds] [00:51:33] <@Andy_J> meh, I am NOT going to use the stupid short tokens [00:51:48] <@Andy_J> so no PROTOCTL TOKEN :p [00:52:12] <@Andy_J> VHP looks handy [00:53:14] <@Andy_J> aquanight: how would you suggest handling time sync issues? or should that be a non-issue since they're both on the same box? [00:53:54] < aquanight> same box == as long as you're not using something weird other than just time() you're fine [00:54:09] <@Andy_J> I'm using Java's interpretation via java.util.Date [00:54:10] < aquanight> just remember if you mess about with channels you use the timestamp the server gives you [00:54:16] < aquanight> else server goes "I can't here you lalalala" [00:54:21] < aquanight> hear* [00:54:31] <@Andy_J> though I should probably tell it to use GMT, not localtime >.> [00:54:45] < aquanight> yes, GMT is a biggie. [00:55:02] < aquanight> but if you get the one that returns it as a long or whatever it should be GMT already I think. [00:55:50] <@Andy_J> I store everything internally as Date >.> [00:56:31] <@Andy_J> but yeah, .getTime is GMT seconds [00:56:36] <@Andy_J> *milli [00:56:37] <@Andy_J> Hmm. [00:56:52] <@Andy_J> I guess I need to make sure I /1000 then [00:57:08] <@Andy_J> What should I do for protocol version? [00:57:39] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [00:57:54] -!- mode/#calcgames [+v DSP_Lord] by ZiLOG80 [00:58:56] < aquanight> echo back whatever the server gives you usually [00:59:06] < aquanight> else you get complaints that the versions are mismatched. [00:59:24] <@Andy_J> ok, I have to wait until I parse the NETINFO line before I can send mine then [00:59:39] < aquanight> for the VL stuff in SERVER you can say 0 and it'll ignore that. [00:59:44] -!- DSPLord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 360 seconds] [00:59:49] < aquanight> but NETINFO you basically just echo it back verbatim [00:59:57] <@Andy_J> I'm not using VL [01:00:00] <@Andy_J> :) [01:00:01] < aquanight> k [01:00:15] < aquanight> but keep in mind unreal sends you its VL anyway [01:00:22] <@Andy_J> I think I'm just going to PROTOCTL NOQUIT VHP [01:00:27] < aquanight> so if you want stuff to look right if you dump serverstats at some point you have to parse that. [01:00:30] <@Andy_J> Yeah, I just stick that into the server description [01:00:41] <@Andy_J> which I don't care about [01:00:43] <@Andy_J> it's just log files [01:00:47] < aquanight> k [01:00:56] <@Andy_J> Though it shouldn't be hard to kill [01:01:06] <@Andy_J> a .substring(.indexOf(" ")) should do it [01:01:13] <@Andy_J> +1, I guess [01:01:27] < aquanight> yeah specific stuff like this you don't have to worry about every single detail about protocol, just worry about what you need to deal with. [01:01:54] <@Andy_J> yeah, I don't have to appease every ircd out there :) [01:02:17] < aquanight> if you actually care about saving on the amount of data flying through kernelspace though, you'd probably want to use TOKEN (+ being smaller == faster strcmps on them) and VL+NS [01:02:48] < aquanight> (NS lets the server use it's numeric instead of it's name in a handful of places - you just have to be ready with the psuedo-base64 decoder [01:02:59] < aquanight> ) [01:03:02] < aquanight> hmmm [01:03:14] < aquanight> I wonder if radix==64 on Integer.parseInt would actually work? [01:03:14] <@Andy_J> baby steps [01:03:19] <@Andy_J> priority is getting it working [01:03:57] < aquanight> I don't think it would, as typical number radixes are noncase-sensitive, so max 36, but radix 64 is case sensitive, and includes two nonalphanumeric characters as well [01:03:59] <@Andy_J> I'll fork it and use the shortcuts later [01:05:01] <@Andy_J> public static final intMAX_RADIX36 [01:05:05] <@Andy_J> http://java.sun.com/j2se/1.5.0/docs/api/constant-values.html#java.lang.Character.MAX_RADIX [01:05:08] < aquanight> BAH. [01:05:12] <@Andy_J> (Why it's in Character I don't know.) [01:08:05] <@Andy_J> I can do PASS / SERVER / PROTOCTL right off without having to wait for anything right? [01:08:52] < aquanight> yes [01:09:03] < aquanight> (PROTOCTL between PASS/SERVER though) [01:09:13] <@Andy_J> ok [01:09:32] < aquanight> hell [01:09:44] < aquanight> you could do those and start sending stuff like your psuedoclients right off [01:09:50] <@Andy_J> well, yeah [01:09:52] <@Andy_J> but I'm not going to [01:10:09] <@Andy_J> actually I probably should [01:10:12] < aquanight> though you could send a PING and wait for a PONG first so you're not stepping on the incoming burst [01:10:16] <@Andy_J> or at least as soon as I get NETINFO [01:10:20] < aquanight> or that [01:10:47] <@Andy_J> I need to make sure that the server knows about the services before the services take action against incoming users and channels :) [01:11:03] <@Andy_J> gah, NETINFO is after all that =\ [01:11:13] < aquanight> yup [01:11:14] < aquanight> it's at the end [01:11:22] < aquanight> bright side: you can act on anything suspect in the burst [01:11:30] < aquanight> like someone stealing a nick used by your psuedoclient. [01:11:54] <@Andy_J> but then I have to queue all the messages before they get to the psuedoclient until after the psuedoclients are known [01:12:06] <@Andy_J> THEN AGAIN, since unreal sends ITS NETINFO after all that, i should be able to [01:12:15] < aquanight> you won't get any messages for the psuedoclient until it's known [01:12:33] <@Andy_J> Well, I mean like chanserv setting mlock stuff [01:12:42] < aquanight> ah [01:12:45] < aquanight> well [01:12:56] <@Andy_J> I'm just forwarding every incoming message to all my services objects [01:12:58] < aquanight> you could start your burst with the psuedoclients, then any reactions (like mlock) [01:13:14] < aquanight> you'd want to hold off mlock until you've seen the channel though, unless you're joining the ChanServ into it too [01:13:27] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 306 seconds] [01:14:15] < aquanight> (as otherwise putting modes on an empty channel == bupkis) [01:14:41] <@Andy_J> probably PASS PROTOCTL SERVER NICK/NICK/NICK/etc. [01:14:48] <@Andy_J> or maybe set a global flag [01:14:53] <@Andy_J> oh, I know! [01:15:05] <@Andy_J> Hmm. [01:15:23] <@Andy_J> Probably should wait until I get the entire burst to send anything more than enough to make it burst to me [01:15:27] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [01:15:37] -!- mode/#calcgames [+v DSP_Lord] by CalcBot [01:15:37] <@Andy_J> I do have a status thing somewhere [01:15:47] <@Andy_J> that's effectively CONNECTING/CONNECTED/etc. [01:16:29] <@Andy_J> oh, idea. Don't pass stuff to the services while CONNECTING, but once it's CONNECTED the services iterate over every nick/channel [01:16:34] <@Andy_J> and do their connecting thing [01:16:59] <@Andy_J> and don't set CONNECTED until I get NETINFO [01:17:13] <@Andy_J> well, EOS more accurately [01:29:34] <@Andy_J> what the hell =\ [01:29:38] <@Andy_J> arraylist is being stupid [01:32:25] <@Andy_J> There's no reason for this to not work [01:32:38] <@Andy_J> OH! [01:32:40] <@Andy_J> God dammit. [01:32:47] <@Andy_J> They do it backwards from what I need it to me. [01:32:49] <@Andy_J> *be [01:33:08] <@Andy_J> They use what you pass's .equals, not the array elements' .equals [01:33:09] <@Andy_J> Fuck. [01:33:23] <@Andy_J> And I can't really override String.equals :( [01:35:32] <@Andy_J> oh well, I have ways around it [01:44:37] <@Andy_J> wtf is "servicestamp" in NICK [01:44:41] <@Andy_J> it seems to be 0 [01:45:52] < aquanight> it's a numeric value services can change [01:46:03] < aquanight> using SVSMODE nick +d [01:46:15] < aquanight> it's basically a 32-bit int tag [01:46:38] < aquanight> you can use it for whatever you want [01:47:17] <@Andy_J> o rly [01:47:25] < aquanight> ya rly [01:47:39] <@Andy_J> Hmm. [01:48:01] <@Andy_J> I wonder if I can use that and a weird understanding of +r for user accounts and not pure nickname registration [01:48:55] <@Andy_J> all the ircd cares about +r for is whois, and determing if they can talk in +M/join +R channels right [01:49:04] <@Andy_J> *determining [01:49:05] < aquanight> aye [01:49:18] <@Andy_J> does changing nick imply -r? [01:49:21] < aquanight> which means if you had accountids you could set servicestamp to that. [01:49:22] < aquanight> aye [01:49:38] <@Andy_J> ok, so just force the user +r if their old nick was logged in [01:49:46] < aquanight> would work. [01:49:51] <@Andy_J> genious [01:50:09] <@Andy_J> I technically don't even need to tell the server the accountid [01:50:13] <@Andy_J> well [01:50:20] <@Andy_J> after a server/services split that would help [01:50:40] <@Andy_J> in other words a live services update [01:50:48] <@Andy_J> I love it. [01:51:04] < aquanight> yes [01:51:14] < aquanight> or if the kernel randomly decides to reset a connection over loopback [01:51:19] <@Andy_J> :p [01:51:20] < aquanight> which shouldn't happen but you can never tell really. [01:51:28] <@Andy_J> it really shouldn't since it's freebsd [01:51:41] < aquanight> if you had odd ulimits you probably could cause it [01:51:49] < aquanight> or force it through misplaced ipfw stuff [01:51:58] <@Andy_J> FreeBSD testbed.dh0.us 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #0: Sat Dec 8 13:17:30 EST 2007 root@testbed.dh0.us:/usr/obj/usr/src/sys/SMP i386 [01:52:15] < aquanight> then again [01:52:21] < aquanight> any lo connection is a glorified anonymous pipe [01:52:36] < aquanight> that goes through slightly different methods. [01:53:48] <@Andy_J> User u = new User(words[1], new java.util.Date(Long.parseLong(words[3])), [01:53:52] <@Andy_J> words[4], words[5], new Server(words[6], "", 0), [01:53:54] <@Andy_J> line.substring(line.indexOf(":") + 1), 0, Integer.parseInt(words[7])); [01:53:58] <@Andy_J> :S [01:54:14] <@Andy_J> I guess the time won't be a long [01:56:04] <@Andy_J> oh wait [01:56:07] <@Andy_J> that needs to be *1000 [01:56:11] <@Andy_J> since date wants milis [02:00:36] -!- CalcMaze was kicked from #calcgames by Andy_J [*poke*] [02:00:36] -!- CalcMaze [aardrop@nightshade.epfarms.org] has joined #calcgames [02:00:47] -!- mode/#calcgames [+o CalcMaze] by ZiLOG80 [02:03:38] < Nikky> ? [02:04:01] <@Andy_J> It wasn't opped, I was tired of waiting for the bots to get around ot it after adding its host [02:17:10] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 306 seconds] [02:30:01] < Nikky> oh, okay [02:36:25] <@Andy_J> If the source is a server and the last parameter is numeric, it is interpreted as timestamp (although it can also be consumed as a parameter for modes. For example: :server.name MODE #channel +l 4 <-- 4 will be a timestamp and the +l parameter). [02:36:30] <@Andy_J> :| [02:36:34] <@Andy_J> When the hell could that EVER possibly happen? [02:36:43] <@Andy_J> Nobody would set a user limit that high. [02:37:06] < aquanight> that's just the details on how the timestamp is found [02:37:43] <@Andy_J> oh right [02:38:30] < aquanight> bascially saying if you do MODE #chan +l 4 [02:38:34] < aquanight> and forget to put a timestamp on [02:38:38] < aquanight> it'll take 4 as the timestamp [02:38:43] < aquanight> and hilarity will ensue [02:38:52] < aquanight> (and set +l 4 normally) [02:39:21] <@Andy_J> well hilarity shouldn't ensue if I'm reading this right [02:39:41] <@Andy_J> 4 will be less than the channel's timestamp [02:39:45] <@Andy_J> so it'll happen [02:39:47] <@Andy_J> and that's that [02:40:05] < aquanight> and will wipe the previous modes [02:40:27] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has joined #calcgames [02:40:38] -!- mode/#calcgames [+v DSP_Lord] by CalcMaze [02:40:38] < aquanight> as that is how timestamp works generally (not specific to unrealircd) [02:40:49] <@Andy_J> hmm [02:43:20] <@Andy_J> so what exactly should I do about that? [02:43:29] <+DSP_Lord> Andy_J [02:43:35] <+DSP_Lord> question for you [02:43:50] <@Andy_J> no, no, yes, maybe, in that order. [02:44:13] <+DSP_Lord> lies [02:44:19] <+DSP_Lord> ok, your OD thing [02:44:38] <+DSP_Lord> will it be possible to do paffs for bands of any combination when you are done? [02:45:06] <@Andy_J> eh [02:45:10] <@Andy_J> "no" [02:45:15] <+DSP_Lord> "no"? [02:45:15] <@Andy_J> because that's a LOT of work [02:45:19] <@Andy_J> MAYBE guitar/bass [02:45:27] <+DSP_Lord> ok [02:45:29] <@Andy_J> but it's a lot more involved [02:45:40] <+DSP_Lord> some dude in the SHRB forum was asking about that stuff [02:48:09] < aquanight> Andy_J: server sends a timestamp in everything it does with a channel (SJOIN, MODE) [02:48:12] < aquanight> grab it [02:48:17] < aquanight> append it to your own MODE/SJOIN [02:48:24] < aquanight> or however [02:48:28] <@Andy_J> so I don't increment it any? [02:48:56] <@Andy_J> it's just the creation time, right? [02:53:38] <@Andy_J> hmm [02:54:12] <@Andy_J> SERVER, NICK, SWHOIS, PING, and PONG appear to be the only source-less commands I care about (and I really don't need swhois) [02:54:42] <@Andy_J> by source-less I mean starting with :source [02:54:51] <@Andy_J> or rather not [02:55:49] < mokomull> :source? [02:55:58] <@Andy_J> IRC protocol :p [02:56:01] < mokomull> yeah [02:56:07] < mokomull> gathered that [02:56:15] <@Andy_J> like :mokomull or :irc.easynews.com [02:56:32] < mokomull> ah. [02:57:05] < mokomull> I take it you guys are talking about the commands coming from the server, not from the client [02:57:20] <@Andy_J> oh RIGHT netinfo [02:57:21] <@Andy_J> yes [02:57:32] <@Andy_J> I'm writing specialized IRC services in java [02:57:44] <@Andy_J> long story short they have very specific requirements [02:58:07] < mokomull> interesting. [02:59:36] < Nikky> lol java [02:59:38] < Nikky> andy fails [02:59:48] <@Andy_J> U, NO, etc. [03:00:03] < Nikky> fail [03:00:12] <+Grue> NO WAI [03:09:15] <@Andy_J> really all I care about in NETINFO is the protocol version, right? and I guess the network name [03:10:30] < Nikky> nerd [03:11:41] <+Grue> dork [03:26:07] < aquanight> Andy_J: cloakkey [03:26:22] <@Andy_J> yeah, send that back verbatim [03:26:25] <@Andy_J> I realized that [03:26:27] <@Andy_J> also [03:26:33] <@Andy_J> 22:26:45 [dhostream] !dhostream.tv *** Notice -- Network name mismatch from link services.dhostream.tv (a5f76a90a43837fe80ab0cc2e95a4c58 0 0 0 :dhostream != dhostream) [03:26:36] <@Andy_J> oops >_> [03:26:41] < aquanight> you can pretty much get away with sending the whole NETINFO back verbatim [03:26:43] * Andy_J changes indexOf to lastIndexOf [03:26:59] < aquanight> other than stripping off the prefix. [03:26:59] <@Andy_J> I'm sending my own concept of time even though it should be the same [03:27:10] <@Andy_J> NETINFO has no prefix [03:27:23] < aquanight> not any that matters anyway [03:27:33] <@Andy_J> < NETINFO 5 1204687602 2309 MD5:a5f76a90a43837fe80ab0cc2e95a4c58 0 0 0 :dhostream [03:27:41] < aquanight> generally when a command has no prefix, you should just assume the "sender" is your direct link [03:27:45] <@Andy_J> where < is my logging incoming character [03:28:15] < aquanight> in that document I omitted prefixes on examples that only ever come from your direct link (SWHOIS, however, very much should have a prefix I believe) [03:29:03] <@Andy_J> << SWHOIS dho :banninating the countryside [03:29:18] <@Andy_J> It might later on, but not in the burst [03:29:25] < aquanight> actually I don't have SWHOIS anywhere in there [03:29:28] < aquanight> and interesting [03:29:40] < aquanight> so if < is "logging incoming" [03:29:41] < aquanight> what is << [03:29:44] <@Andy_J> whoohoo [03:29:44] <@Andy_J> 22:29:45 [dhostream] !dhostream.tv *** Notice -- Link services.dhostream.tv -> dhostream.tv is now synced [secs: 0 recv: 0.181 sent: 1.535] [03:29:59] <@Andy_J> it's actually <<, the first < got cut off the first one [03:30:19] <@Andy_J> I actually need to send EOS still but yeah [03:30:22] <@Andy_J> then burst in my stuff [03:30:25] < aquanight> are you using a generic argument parser btw? or just parsing rawstrings on a per-command basis? [03:30:39] <@Andy_J> I'm using an if block for now [03:30:47] <@Andy_J> efficiency will be dealt with later [03:31:00] <@Andy_J> if and String.split [03:31:10] < aquanight> I could probably give you the generic argument parser I used in quotebot [03:31:27] <@Andy_J> might be handy [03:31:30] < aquanight> it'll work for a server [03:31:45] < aquanight> especially one not using the all of the bandwidth saving stuff unreal has [03:31:59] < aquanight> (doesn't matter MUCH for lo if you don't mind shoving more data through kernelspace) [03:33:04] < aquanight> oh hmmm [03:33:09] < aquanight> I used StringBuilder [03:33:12] < aquanight> rather than .split() [03:33:44] < aquanight> partly due to the fact that I think split() is a regex, and if you use a string literal, it'll get recompiled all the time (unless it caches) [03:34:27] <@Andy_J> there's an easy way to find out [03:34:53] <@Andy_J> public String[] split(String regex, int limit) { [03:34:53] <@Andy_J> return Pattern.compile(regex).split(this, limit); [03:34:53] <@Andy_J> } [03:34:58] <@Andy_J> That doesn't tell me anything. [03:36:29] <@Andy_J> public static Pattern compile(String regex) { [03:36:30] <@Andy_J> return new Pattern(regex, 0); [03:36:30] <@Andy_J> } [03:37:55] <@Andy_J> it doesn't seem to =\ [03:40:43] < aquanight> wth [03:40:51] < aquanight> something happened to my dyndns account!? [03:41:38] <@Andy_J> have you not updated in a month? [03:43:19] < aquanight> I probably missed the email [03:43:21] < aquanight> dammit [03:43:35] < aquanight> thunderbird needs a systray icon [03:44:03] < Nikky> It does [03:44:08] < aquanight> but now I have to wait 4h for the TTL [03:44:13] < Nikky> At least when I was using it on windows it does with a plugin [03:44:21] <@Andy_J> that's why you wet your client to force an update every 15 days [03:44:28] <@Andy_J> *set [03:44:34] < Nikky> lol fail [03:44:48] < aquanight> Andy_J: quotebot's parser: http://24.117.146.219:2080/~aquanight/command-parser.txt [03:44:51] < aquanight> Andy_J: I don't have a client [03:44:58] < aquanight> and this has made me want to set it up [03:45:00] <@Andy_J> well there's your problem [03:45:06] <@Andy_J> ddclient ftw [03:45:41] <@Andy_J> you can use final on method parameters?! [03:45:42] < Nikky> ddclient ftl [03:45:43] <@Andy_J> interesting [03:47:01] < aquanight> yes you can [03:47:06] < aquanight> it forces you to not modify them [03:47:12] < aquanight> even though the modifications wouldn't be propogated anyway [03:47:31] < aquanight> Calcbot conv 15 days to seconds [03:47:32] <@CalcBot> 15 days = 1296000.0 seconds [03:49:09] < aquanight> hm [03:49:14] < aquanight> 15 days is a bit excessive [03:49:30] < aquanight> and means slow update if cableone ever goes into it's random change-IP-every-day spiel again [03:49:37] <@Andy_J> eh [03:49:42] < aquanight> CalcBot conv 1 day to seconds [03:49:43] <@CalcBot> 1 day = 86400.0 seconds [03:49:46] <@Andy_J> that's not really a big deal [03:49:48] < aquanight> should be often enough [03:49:54] <@Andy_J> it WILL change as soon as you get a new IP [03:50:05] <@Andy_J> it's just it will only FORCE an update if it HASN'T for so long [03:50:06] < aquanight> I'll put daemon=86400 as commented out [03:50:08] < aquanight> just in case [03:50:17] <@Andy_J> daemon should be relatively low [03:50:19] <@Andy_J> I use 300 [03:50:26] < aquanight> oh? [03:50:28] < aquanight> ok [03:50:32] <@Andy_J> that's just how often it checks the IP, not forces an update [03:50:54] < aquanight> I'm guessing I want the use=web deal [03:50:59] < aquanight> that runs to checkip.dyndns.org [03:51:09] < aquanight> as interface won't help and I don't see my router on the list [03:51:15] <@Andy_J> yeah, proably [03:52:03] <@Andy_J> actually it seems the "force update every x time" is not an option [03:52:11] <@Andy_J> also epic fail in my logs .. [03:52:14] < aquanight> oh? [03:52:15] <@Andy_J> it's only putting the date not the time [03:52:22] < Nikky> lollerskates [03:52:26] < aquanight> how often does it do it then? [03:52:34] <@Andy_J> I'm pretty sure it's 15 days [03:53:58] <@Andy_J> ok, with any luck my services will just sit there and maintain a link now [03:54:08] <@Andy_J> granted there are no "clients" on it yet [03:54:42] <+DSP_Lord> Andy_J [03:54:45] <+DSP_Lord> guess what [03:55:08] <@Andy_J> No. [03:55:20] <+DSP_Lord> i can has 300k on GG&HT kthx [03:58:08] <@Andy_J> hmm yeah swhois is weird [03:58:09] <@Andy_J> LOGGING: VERBOSE << :dhostream.tv SWHOIS ajanata_ :<3s UNIX [03:58:16] <@Andy_J> ^ after burst is over [03:58:30] <@Andy_J> That almost seems like it should be a bug for SWHOIS during burst [04:00:10] <@Andy_J> heh I should fix this [04:00:10] <@Andy_J> LOGGING: VERBOSE << ERROR :Closing Link: services.dhostream.tv[127.0.0.1] ajanata () [04:00:14] <@Andy_J> LOGGING: ERROR Unknown command received: ERROR :Closing Link: services.dhostream.tv[127.0.0.1] ajanata () [04:00:43] < aquanight> hrm, is =300 a bit overkill for a connect with a usually-stable IP address? [04:00:46] < aquanight> (for daemon) [04:01:40] < aquanight> hmmm [04:01:54] < aquanight> I just realized that I was using .trimSpaces in there, but didn't include that function [04:02:31] < aquanight> all that does is strip off all leading spaces [04:02:40] < aquanight> but I think you're actually not supposed to [04:03:02] <@Andy_J> .trim ? [04:03:15] < aquanight> you could just substitue: if (work.charAt(0) == ' ') work.delete(0); [04:03:18] < aquanight> well [04:03:33] < aquanight> .trim is all whitespace, but by strict IRC, only the actual space is considered a seperator [04:03:41] < aquanight> ie, tab doesn't count [04:04:01] <@Andy_J> I'll stick that somewhere and might use it later [04:04:03] < aquanight> so I needed something that would only trim space, and not all whitespace [04:04:46] < aquanight> quotebot uses that trimSpaces for its other parsings [04:04:55] < aquanight> like of the actual messages [04:04:58] < aquanight> eg no difference between: [04:04:59] < aquanight> !q -1 [04:05:00] <+efneTI84> Index out of range [0, 303]. [04:05:02] < aquanight> !q -1 [04:05:02] <+efneTI84> Illegal index: not a number. [04:05:05] < aquanight> ... [04:05:08] < aquanight> I stand corrected. [04:05:24] < aquanight> I guess I must've used straight split() for privmsg [04:05:40] <@Andy_J> heh [04:06:05] < aquanight> yup straight split for PRIVMSG, CTCP, and so forth [04:06:49] <@Andy_J> O_o [04:06:49] <@Andy_J> 23:07:25 [dhostream] !dhostream.tv *** Notice -- Possible negative TS split at link services.dhostream.tv (1204690041 - 1204690042 = -1) [04:06:50] < aquanight> raw IRC parsing is actually more lenient than stuff from humans :o [04:06:52] <@Andy_J> 23:07:25 [dhostream] !dhostream.tv *** Notice -- Link services.dhostream.tv -> dhostream.tv is now synced [secs: -1 recv: 0.181 sent: 1.686] [04:07:00] < aquanight> -1 split is ok [04:07:11] < aquanight> it's too small to be significant [04:07:13] <@Andy_J> ok, but what caused that [04:07:25] <@Andy_J> am I supposed to give the server's time back to it and not my concept of time? [04:07:36] < aquanight> hmmm [04:08:07] < aquanight> looks like [04:08:18] <@Andy_J> That's silly [04:08:23] < aquanight> probably second ticked right between you sending and it getting it [04:08:35] <@Andy_J> I send it after. [04:08:39] < aquanight> hmm [04:08:48] < aquanight> strange then [04:08:52] <@Andy_J> else if NETINFO [04:08:53] <@Andy_J> netname = line.substring(line.lastIndexOf(":") + 1); [04:08:53] <@Andy_J> server.sendLine("NETINFO 5 " + (System.currentTimeMillis() / 1000) + " " + words[3] + [04:08:56] <@Andy_J> " * 0 0 0 :" + netname); [04:09:11] <@Andy_J> maybe I should floor that [04:09:20] <@Andy_J> but I would expect it to truncate anyway [04:09:23] < aquanight> it will already be floored? [04:09:28] < aquanight> long / long == long [04:09:36] < aquanight> or rather [04:09:38] <@Andy_J> long/int actually [04:09:39] < aquanight> long / int == long [04:10:03] < aquanight> oh really weird [04:10:23] < aquanight> the ircd is what was 1 second behind [04:10:30] < aquanight> hmmm [04:10:50] < aquanight> I assume this is the first time you've seen it + you're not doing strange things with /tsctl offset ? :) [04:10:56] <@Andy_J> Yes, first time I've seen it [04:11:01] <@Andy_J> No, not messing with anything. [04:11:01] < aquanight> (shouldn't need to - only link is same host) [04:11:03] < aquanight> k [04:11:35] <@Andy_J> LOGGING: VERBOSE << NETINFO 5 1204690040 2309 MD5:a5f76a90a43837fe80ab0cc2e95a4c58 0 0 0 :dhostream [04:11:38] <@Andy_J> LOGGING: INFORMATION Connetion state changed: CONNECTING_SEND_BURST [04:11:38] <@Andy_J> actual lines in question [04:11:41] <@Andy_J> LOGGING: VERBOSE >> NETINFO 5 1204690042 2309 MD5:a5f76a90a43837fe80ab0cc2e95a4c58 0 0 0 :dhostream [04:11:47] <@Andy_J> I have since changed my cloakkey to * [04:11:52] <@Andy_J> as it says I can for doing services [04:12:07] <@Andy_J> the ircd's clock drifted backward somehow O_o [04:13:52] < aquanight> ah, the ircd keeps track of time in it's own variable, but this is can potentially be updated on a delay [04:14:04] <@Andy_J> but how can it go backwards?! [04:14:28] <@Andy_J> at any rate it seems my ping reply code works >_> [04:15:22] < aquanight> it didn't, it just didn't update in time for NETINFO to get processed, by the looks of it [04:16:28] < aquanight> it sets its timeofday and goes into a select() to get any messages [04:17:29] < aquanight> it can potentially be in select() for a while [04:17:41] < aquanight> during which it will not update it's idea of what time it is [04:17:51] <@Andy_J> actually I'm going to convert the parser now... [04:18:34] < aquanight> as such, you can ignore it for -1 [04:18:43] < aquanight> it's when it's as big as -10 or -300 that you have a problem. [04:20:20] <@Andy_J> I can just get rid of the trimspaces stuff right [04:21:05] < aquanight> right [04:21:11] < aquanight> I gave a recommended substitution [04:21:31] < aquanight> but really, you can just stick a + 1 on the work.delete(nextspace) usually [04:21:53] -!- Merthsoft [~Shaun@140.141.22.125] has quit [Ping timeout: 246 seconds] [04:21:56] < aquanight> or if you're not too considered with being correct, .trim() [04:22:11] <@Andy_J> delete(int start, int end) [04:22:41] <@Andy_J> 0,1? [04:23:02] < aquanight> well, [04:23:17] < aquanight> like work.delete(0, nextspace) -> work.delete(0, nextspace + 1) I mean [04:23:20] < aquanight> (should work) [04:23:39] -!- Merthsoft [~Shaun@140.141.22.125] has joined #calcgames [04:23:44] <@Andy_J> while (work.charAt(0) = ' ') work.delete(0, 1) [04:23:51] < aquanight> == [04:23:54] <@Andy_J> right [04:23:55] < aquanight> and that'd work too [04:24:01] <@Andy_J> eclipse would have bitched >.> [04:24:59] < aquanight> it's relatively inefficient though [04:26:07] <@Andy_J> now how exactly would that work for the two kinds of NICK? [04:26:25] <@Andy_J> :new NICK newnick and NICK blahblah during burst [04:27:17] < aquanight> http://rafb.net/p/s678Vo44.html [04:27:22] < aquanight> ^ trimSpaces [04:27:52] < aquanight> if you want the slightly-more-efficient (not making StringBuilder do a lot of shit in pieces but all at once instead) [04:28:26] < aquanight> alternatively [04:28:29] < aquanight> if your java is sane: [04:28:37] < aquanight> er [04:28:43] < aquanight> oh darn only String has .replaceFirst [04:28:58] < aquanight> StringBuilder doesn't have it [04:28:59] <@Andy_J> more pressing question above >_> [04:29:04] < aquanight> ok [04:29:07] < aquanight> for NICK [04:29:13] < aquanight> no prefix means your sender is the server [04:29:21] < aquanight> plus you get a shitload more params [04:29:33] <@Andy_J> it'll still get NICK as the cmd in either case? [04:29:34] < aquanight> user nickchange your sender is the user, and you have only 2 [04:29:37] < aquanight> yes [04:29:53] <@Andy_J> wait why would there be 2 parms for a nick change [04:29:59] < aquanight> nick and timestamp [04:30:17] <@Andy_J> aha [04:30:20] < aquanight> (nick timestamp changes on nickchange because the nick timestamp is how long you had that nick) [04:30:35] < aquanight> (not the same as the services stamp - ircd never touches this) [04:30:43] <@Andy_J> so if args.size()>2 new user else nick change [04:30:45] < aquanight> (other than to initialize it for a new user) [04:30:49] < aquanight> yes [04:31:07] < aquanight> but for sanity you can also check sender.indexOf(".") == -1 for nickchange [04:31:42] < aquanight> (or sender == null || sender.equals("") if you use that logic instead) [04:31:50] < aquanight> you know [04:31:55] <@Andy_J> I'm going with args size [04:32:03] < aquanight> "".equals(null) is the one thing that might make sense to be true even though .equals() says that's bad [04:32:04] <@Andy_J> that's not ambiguous ;) [04:32:07] < aquanight> true [04:32:14] < aquanight> but neither is .indexOf(".") == -1 [04:32:19] < aquanight> users can never have a dot in their nick [04:32:23] < aquanight> and servers must have one [04:32:26] <@Andy_J> If the server thinks it's just localhost [04:32:41] < aquanight> the server name is the one that's in the SERVER message [04:32:49] < aquanight> the same as what you put in your me block [04:32:52] < aquanight> not the server's hostname [04:32:53] <@Andy_J> right, what if you tell the server to call itself localhost ;) [04:33:03] < aquanight> you can't - it has to have a dot in it's name [04:33:07] <@Andy_J> Boo. [04:33:15] < aquanight> for precisely that reason [04:33:52] < aquanight> RFC basically requires that nicknames and servernames be distinguished (it doesn't say how, but requiring a dot in server names is the most common) [04:34:07] < aquanight> it's the same reason why channels start with a # :) [04:34:10] <@Andy_J> wait would it be args(0) or args(1) for the new nick [04:34:16] < aquanight> [0] [04:34:20] < aquanight> everything starts at [0] :) [04:34:26] <@Andy_J> so args.size>1 then [04:34:42] < aquanight> .size is total params, not upper bound >_> [04:34:45] <@Andy_J> right 2 [04:34:47] <@Andy_J> gah [04:34:49] < aquanight> :P [04:34:54] <@Andy_J> I forgot about the timestamp for a second [04:35:01] < aquanight> in any case [04:35:07] < aquanight> I need to be zZzZ-ing here soon. [04:35:20] < Merthsoft> Andy_J: What are you workoing on? [04:35:51] <@Andy_J> I should be zzzing soon too [04:35:54] <@Andy_J> it's almost midnight -_- [04:36:01] <@Andy_J> which means I'vebeen working on this for almost 4 hours [04:40:05] <@Andy_J> ahh! bug [04:40:06] <@Andy_J> LOGGING: VERBOSE << :dhostream.tv EOS [04:40:06] <@Andy_J> Exception in thread "Processing Thread" java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:886) at Run.loopIteration(Run.java:177) at Run.run(Run.java:67) at java.lang.Thread.run(Thread.java:595) [04:40:49] <@Andy_J> 3 lines above // Now it's time to read the arguments. [04:41:23] <@Andy_J> I should probably put that whole method in a huge try block [04:41:34] <@Andy_J> and ERROR if there's a problem [04:46:46] <@Andy_J> 23:47:42 [dhostream] !dhostream.tv *** ChatOps -- from services.dhostream.tv: Exception while parsing incoming line: :dhostream.tv EOS [04:46:49] <@Andy_J> that works [04:56:07] <@Andy_J> 23:54:52 <@ajanata> epic kludge: nextspace = (work + " ").indexOf(" "); [04:56:10] <@Andy_J> 23:55:06 <@ajanata> though that might have reprecussions later.. [04:56:13] <@Andy_J> 23:56:52 <@ajanata> this seems better [04:56:13] <@Andy_J> put that in the wrong channel >.> [04:56:16] <@Andy_J> 23:56:53 <@ajanata> if (nextspace == -1) nextspace = work.length() - 1; [06:16:09] -!- DSP_Lord [~darksidep@cpe-065-184-224-204.ec.res.rr.com] has quit [Ping timeout: 376 seconds] [06:25:11] -!- Barrett [~chavez@76.8.217.50] has quit [] [06:49:23] -!- Tyler2 [~nexon@residence-204-75.henday.ualberta.ca] has joined #calcgames [08:33:04] -!- Tyler2 [~nexon@residence-204-75.henday.ualberta.ca] has quit [KVIrc 3.2.0 'Realia'] [11:32:28] < DarkAuron> !weather 75052 [13:03:48] < DarkAuron> !weather 75052 [13:06:01] -!- efneTI84 [efneti84@24-117-146-219.cpe.cableone.net] has quit [Remote host closed the connection] [13:06:34] -!- efneTI84 [efneti84@24-117-146-219.cpe.cableone.net] has joined #calcgames [13:06:47] -!- mode/#calcgames [+v efneTI84] by CalcIon [13:49:46] -!- Merthsoft [~Shaun@140.141.22.125] has quit [Quit: Leaving] [13:50:00] -!- Merthsoft [~Shaun@140.141.22.125] has joined #calcgames [15:43:09] -!- Barrett [~chavez@76.8.217.50] has joined #calcgames [15:44:38] <@Andy_J> !bash 845468 [15:44:38] <@CalcBot> |bash| A programmer started to cuss [15:44:39] <@CalcBot> |bash| Because getting to sleep was a fuss [15:44:40] <@CalcBot> |bash| As he lay there in bed [15:44:41] <@CalcBot> |bash| Looping 'round in his head [15:44:43] <@CalcBot> |bash| was: while(!asleep()) sheep++; [15:44:44] <@Andy_J> wow that still works [15:47:14] <@Andy_J> !up [15:47:14] <@CalcMaze> 08:48:32 up 21 days, 16:38, 1 user, load average: 0.19, 0.19, 0.18 [15:47:14] <@CalcBot> 10:48 up 6 days, 1:18, 3 users, load averages: 1.06 1.06 1.02 [15:47:15] <@ZiLOG80> 10:48:32 up 201 days, 18:00, 1 user, load average: 0.00, 0.00, 0.00 [15:47:15] <@zshell> 09:48:32 up 288 days, 22:53, 1 user, load average: 0.00, 0.01, 0.00 [15:47:15] <@CalcGames> 08:48:32 up 58 days, 4:56, 0 users, load average: 0.01, 0.01, 0.00 [15:47:15] <@Ginsburg> 07:48:32 up 39 days, 8:11, 42 users, load average: 0.00, 0.03, 0.03 [15:47:16] <@CalcIon> 08:48:32 up 13 days, 11:37, 6 users, load average: 1.00, 1.01, 1.02 [16:03:39] -!- tifreak43 [JavaUser@dialup-4.224.243.205.Dial1.Cincinnati1.Level3.net] has joined #calcgames [16:03:45] -!- tifreak43 is now known as tifreak [16:36:04] -!- bsparks [~NinjaDrag@cpe-75-185-102-73.insight.res.rr.com] has quit [Read error: Operation timed out] [16:52:02] -!- DSP_Lord [~darksidep@cpe-066-056-250-157.ec.res.rr.com] has joined #calcgames [16:52:12] -!- mode/#calcgames [+v DSP_Lord] by CalcMaze, zshell [17:11:44] <@Andy_J> LOGGING: ERROR sender: dhostream.tv cmd: EO args: [S] [17:11:46] <@Andy_J> O_o [17:13:07] < tifreak> o.O [18:54:45] -!- tifreak45 [JavaUser@dialup-4.224.96.209.Dial1.Cincinnati1.Level3.net] has joined #calcgames [18:58:38] -!- tifreak [JavaUser@dialup-4.224.243.205.Dial1.Cincinnati1.Level3.net] has quit [Ping timeout: 304 seconds] [19:01:57] -!- tifreak45 is now known as tifreak [19:19:15] -!- bsparks [~NinjaDrag@cpe-75-185-102-73.insight.res.rr.com] has joined #calcgames [19:19:15] -!- Zeromus [~NinjaDrag@cpe-75-185-102-73.insight.res.rr.com] has quit [Read error: Connection reset by peer] [19:19:29] -!- mode/#calcgames [+v bsparks] by CalcBot [19:27:26] -!- Zeromus [~NinjaDrag@cpe-75-185-102-73.insight.res.rr.com] has joined #calcgames [19:27:44] -!- mode/#calcgames [+v Zeromus] by CalcBot [19:37:53] <+bsparks> ffs [19:38:01] <+bsparks> my strat is broken, AGAIN [19:38:29] < Merthsoft> haha [19:38:51] <+bsparks> I can fix it in a matter of mins, tighten it up and whatnot [19:38:58] <+bsparks> but this is goddamn silly [19:39:07] <+bsparks> well, the fretkeys are going as well >.> [19:39:19] < Merthsoft> get a real guitar [19:41:59] <+bsparks> I'm good [19:42:19] <+bsparks> to be honest I haven't played rockband with it in a decent amount of time, aside from a few days back [19:42:33] < Merthsoft> oh wIT [19:42:45] <+bsparks> I use it with some pc software to make very fun noise ;) [19:43:02] < Merthsoft> i need a new guitar [19:43:13] < Merthsoft> imma gat a black martin electric acoustic, and get green and pink strings [19:50:01] <@Andy_J> lrn2lp -- owait, lrn2360 [19:50:08] <@Andy_J> >.> <.< [19:50:21] < Merthsoft> what? [19:50:36] < tifreak> lulz [19:52:14] -!- tifreak [JavaUser@dialup-4.224.96.209.Dial1.Cincinnati1.Level3.net] has quit [Quit: later] [19:52:27] <+bsparks> Andy_J, the lp is a pos [19:52:36] <@Andy_J> lp is godlike [19:52:39] <+bsparks> I wish I could sg ;) [19:52:40] <@Andy_J> you're a pos [19:52:41] <@Andy_J> >_> [19:53:53] < Merthsoft> wtf are you talking about [19:54:18] <+bsparks> Merthsoft, wer'e losers :P [19:54:21] <+bsparks> err [19:54:23] <+bsparks> we're [19:54:31] < Merthsoft> lp = les paul? [19:54:35] <+bsparks> mhmm [19:54:56] < Merthsoft> are you seriously saying an sg is better than a les paul? [19:54:57] <+bsparks> Andy_J, you know as well as I do that the SG is just about perfect, if only that wire wasn't there ;) [19:55:08] <@Andy_J> LP is far better than SG [19:55:20] <@Andy_J> I wish I could use it with my ps2 [19:55:26] <+bsparks> the lp's neck connection is fail [19:55:35] <@Andy_J> it's enough to make me get gh2/360 next time I'm at the store [19:55:38] <@Andy_J> duh, soldering iron [19:55:41] < Merthsoft> chirst. you guys mean fucking little plastic shit things for guitar hero, don't you? [19:55:56] <+bsparks> Merthsoft, lrn2fail [19:56:04] <@Andy_J> lr2NOTfail you mean [19:56:16] < Merthsoft> wait [19:56:25] < Merthsoft> i'm a failure because i was thinking we were talking about REAL guitars? [19:56:30] < Merthsoft> -_- [19:56:34] < Merthsoft> i hate this world [19:56:41] <@Andy_J> ecks dee [19:57:15] <+bsparks> Merthsoft, you should realize that I wouldn't chat real guitars with Andy_J. btw, on your new guitar, 2 pickups or 3? [19:57:33] < Merthsoft> " electric acoustic" [19:57:41] <+bsparks> oops, missed the acoustic :P [19:57:43] <+bsparks> my bad [19:57:45] < Merthsoft> lol [19:57:46] < Merthsoft> it's cool [19:58:08] <+bsparks> Andy_J, in reality, I love the strat, if it didn't keep breaking [19:58:17] < Merthsoft> my electric has 2 humbuckers [19:58:35] <+bsparks> my roomie has an odd guitar, I ought to get a pic of it for you [19:58:53] < Merthsoft> you sould [19:58:55] < Merthsoft> shoulk [19:58:58] < Merthsoft> should [19:59:14] <+bsparks> it has, what looks to be, magnets, at each fret [19:59:25] < Merthsoft> O_o [19:59:38] <+bsparks> which explains the wires coming from the neck to the body [20:00:45] < mokomull> sounds like additional pickups to me [20:01:33] < mokomull> granted, at each fret... that's odd [20:12:10] <@Andy_J> I would like the strat if the strum bar would have more tactile feedback [20:25:54] <+bsparks> it's fine for me, when it works [20:26:12] <+bsparks> like I can downstrum just about every passage of everything [20:26:21] <+bsparks> but then it starts to not register [20:35:08] <+DSP_Lord> soon i can has strat [20:36:54] <@Andy_J> why? [20:37:00] <@Andy_J> if you LP works just use that [20:37:50] <+DSP_Lord> i ordered the whole RB set [20:37:56] <+DSP_Lord> so i can have drums, vox, etc. [20:38:04] <+DSP_Lord> plus, i'd at leastlike to have it [20:38:11] <+DSP_Lord> *least like [20:38:30] <+DSP_Lord> mebbe the solo buttons == better soloness for me [20:38:36] <+DSP_Lord> ¯\(°_o)/¯ [20:48:09] <+bsparks> solo buttons == fail [20:48:20] <+DSP_Lord> we'll see [20:51:33] <@Andy_J> they are [20:51:36] <@Andy_J> it's not worth it [20:53:11] <+bsparks> I can 100% every solo in Foreplay/Long Time, with the regular keys, I can't top 80% witht he solo keys :P [20:53:20] <+bsparks> I 'overstrum' with them [20:53:35] * bsparks presses keys early :< [20:56:27] <+DSP_Lord> heh [20:57:02] <+bsparks> and I have fat manchub fingers :P [20:58:00] <+DSP_Lord> tubby :P [20:58:37] <+bsparks> nah, I have had large fingers my entire lift [20:58:51] <+bsparks> well, idk about large [20:58:58] <+bsparks> as large as the solo keys, if not a bit larger [20:59:13] <@Andy_J> solo keys ARE rather small [20:59:18] < Nikky> nerd [20:59:23] < Nikky> GH sucks [20:59:48] <+bsparks> Nikky, so do vaccums [20:59:55] < Nikky> do does your face [21:00:03] <+bsparks> or is it vacuum? [21:00:09] <+DSP_Lord> bsparks: vacuum [21:00:18] <+DSP_Lord> Nikky: typo'd, therefore you suck [21:00:19] <+bsparks> I can't spell without my mac :< [21:03:18] <+bsparks> do you suppose someone who collects all kinds of stuff for their iPod is an iTard? And a mac lover is a mactard? right? Would you call a linux lover a Pingtard? cause he loves the pinguin? :P [21:05:49] <+DSP_Lord> lintard? [21:05:59] <+DSP_Lord> and it'd be pengtard [21:05:59] < mokomull> and it's penguin :) [21:06:01] <+DSP_Lord> penguin [21:06:07] <+DSP_Lord> FUCK NINJA'D [21:06:21] < mokomull> I loled. [21:10:32] <@Andy_J> DSP_Lord is the resident pingtad >_> <_< [21:10:35] <@Andy_J> *pingtard [21:10:38] * Andy_J stabs ssh lag [21:12:20] <+DSP_Lord> haha [21:12:56] < mokomull> heh [21:13:10] < mokomull> I am the resident lintard, however :) [21:14:23] -!- Barrett [~chavez@76.8.217.50] has quit [Ping timeout: 260 seconds] --- Log closed Thu Mar 06 00:00:59 2008