00:38:51 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:18:09 -!- Asztal has quit (Nick collision from services.).
01:18:15 -!- Azstal has joined.
01:18:20 -!- Azstal has changed nick to Asztal.
01:19:27 -!- Asztal has quit (Nick collision from services.).
01:19:32 -!- Azstal has joined.
01:19:36 -!- Azstal has changed nick to Asztal.
01:44:00 <xor> zomg zombies!
01:47:37 -!- tgwizard has quit (Remote closed the connection).
03:15:58 -!- GregorR has joined.
03:16:32 -!- EgoBot has joined.
03:44:46 -!- GregorR-L has joined.
04:36:25 -!- Sgeo has quit (Remote closed the connection).
04:40:10 -!- Sgeo has joined.
04:41:09 -!- Sgeo has quit (Client Quit).
04:44:27 -!- SevenInchBread has changed nick to GrandmotherChaos.
04:52:09 -!- GrandmotherChaos has changed nick to CakeProphet.
05:58:08 -!- CakeProphet has quit ("haaaaaaaaaa").
05:58:55 -!- CakeProphet has joined.
06:25:25 <GregorR-L> Look what I happened to come across on QDB:
06:37:31 -!- anonfunc has joined.
06:41:43 <Asztal> I saw you on QDB recently :P
07:46:38 <ivan`> http://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback&userid=iaintpayinyou
07:52:20 -!- Asztal has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:13 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
08:15:24 -!- Razor-X has left (?).
08:15:34 -!- Razor-X has joined.
09:14:40 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- Leading Edge IRC").
10:13:27 -!- GregorR-L has quit ("Leaving").
10:14:04 -!- jix has joined.
10:17:22 -!- jix has quit (Client Quit).
10:22:43 -!- jix has joined.
10:44:59 <Razor-X> Well, actually, the bulk of the code goes to parsing ``2x + 2'' as ``(2 * x) + 2'', heh.
11:03:56 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
11:07:07 -!- tgwizard has joined.
11:11:18 -!- puzzlet_ has joined.
13:56:15 -!- Arrogant has joined.
14:09:53 -!- jix_ has joined.
14:14:16 -!- Arrogant has quit ("Leaving").
14:28:31 -!- jix has quit (Read error: 110 (Connection timed out)).
16:35:26 -!- CakeProphet has joined.
16:52:08 <SimonRC> I think Scott Adams has been outdone: http://angryflower.com/functi.html
17:29:01 -!- Azstal has joined.
17:29:05 -!- Azstal has changed nick to Asztal.
17:48:32 -!- Sgeo has joined.
17:57:31 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)").
18:11:12 <SimonRC> Sign: "Lube connection. Please use rear entrance."
18:11:15 <SimonRC> http://www.maximonline.com/slideshows/index.aspx?slideId=764&imgCollectId=59
19:42:57 -!- Asztal has joined.
19:51:51 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
20:14:43 -!- ihope has joined.
20:49:07 <CakeProphet> DO is only sent in response to a WILL, right?
21:03:05 <ihope> I think it can also happen the other way around.
21:03:38 <lindi-> telnet sounds horrible :)
21:03:57 <ihope> "Please DO RANDOMLY-LOSE." "Okay, I WILL RANDOMLY-LOSE".
21:04:44 -!- GregorR-L has joined.
21:19:37 <SimonRC> I think I've been using this password too long...
21:19:58 <SimonRC> I am typing it and not realising I've done so.
21:20:07 <ihope> I forgot the password for my Linux box.
21:20:19 <ihope> Oh, I just remembered.
21:20:44 <ihope> It's that one word from the best joke in the world, except different.
21:22:54 <ihope> Except I can't remember if I used an at sign or an ampersand...
21:26:55 <SimonRC> hmm... "paracetamoxyfrusebendroneomycin"
21:26:57 <Asztal> I took a phrase from red dwarf, inverted it, and mangled it.
21:27:36 <Asztal> it breaks many things though because it has spaces
21:28:21 * SimonRC has used programming languages, numbers with significance, Goon show phrases, and function names.
21:28:42 <SimonRC> The latter are particularly good because they already look like garbage.
21:30:15 <SimonRC> Searching for one of the function names I have adapted resolves something I had always wondered; it turns up one of the pages in this manual: http://www.pcigeomatics.com/cgi-bin/pcihlp/EASI
21:31:05 <SimonRC> About 1000 sheets of fanfold with that stuff on is one of the persistant memories of my childhood.
21:31:05 <CakeProphet> yeah... it seems that telnet could easily go into random infinite loops if you don't know what sort of thing you're dealing with.
21:31:35 <SimonRC> (My dad once ran a script on some old computer system and forgot to turn off tracing, so every line executed was also traced.)
21:35:26 <CakeProphet> What would freenodes wildcards look like in Perl regex?
21:36:14 <CakeProphet> * is zero-or-more characters when used on freenodes ban thingy... and ? is exactly-one-character
21:37:33 <SimonRC> they would be .* and ., IIRC
21:38:57 <CakeProphet> hmmm... then I'll probably use a simplified form of Perl regex with ? being substituted for .
21:39:57 <ihope> You don't want . for a single character match there, do you? :-)
21:40:46 <CakeProphet> so I'll replace all "."'s with "\," in the ban string... and then convert all "?"'s to "."
21:40:48 <SimonRC> CakeProphet: so what would take the place of ?
21:41:06 <SimonRC> CakeProphet: Have you heard of a subnet mask? You should try it.
21:41:35 <SimonRC> nonono, I mean, what would take the old meaning of ?
21:42:13 <CakeProphet> Hmmm... not sure why I would need that. :D
21:42:45 <CakeProphet> I can't think of any situation where someones address would or would not have a specific string.
21:44:04 <SimonRC> Does this mean you are blocking by hostname?
21:44:56 <SimonRC> If I were a cracker, I would make sure that I hosted my own DNS, set the reverse lookup lifetimes to 0, then made reverse lookups *really* slow.
21:45:18 <SimonRC> So that doing reverse lookup wouldn;t be practical.
21:45:38 <CakeProphet> I'm blocking by whatever there address contains.
21:48:41 <SimonRC> It's a bizzare way to do it.
21:49:30 <SimonRC> You would either block to much or too little, most likely.
21:49:57 * CakeProphet really doesn't have much of a clue about IPs
21:50:30 <CakeProphet> I know my IP is usually either 250.* or 251.* ...which is a very big range if you plan on blocking me off permanently.
21:51:46 <SimonRC> You should leanr CIDR notation, at least.
21:52:09 <SimonRC> or rather, your program should accept it.
21:53:01 <ihope> CakeProphet: I assume by those you mean 33.250.* and 33.251.*...
21:53:34 <CakeProphet> Well... usually when I see my IP the 33 isn't there.
21:53:40 <SimonRC> well, that would be 33.250.0.0/15
21:54:39 <ihope> CakeProphet: 33.250.213.151?
21:55:02 <ihope> That's not what you usually see as your IP address, then?
21:55:29 <SimonRC> CakeProphet: anyway, your IP is 151.213.250.33, not 33.250.213.151
21:55:43 <SimonRC> Damned domain names are backwards
21:56:14 <CakeProphet> yeah.... 33 is something to with freenode...
21:56:35 <SimonRC> Who the heck though that would be a good idea?
21:56:49 <SimonRC> CakeProphet: no, it's just part of your IP address
21:59:49 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:01:05 <SimonRC> UNIX paths, Windows paths, newsgroup names, OIDs, IP addresses, C-like stuct addressing, etc, etc are all big-endian. Why are domain names backwards?
22:03:24 <ihope> Who invented domain names?
22:03:49 <ihope> And IP addresses, and email addresses?
22:04:13 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)").
22:07:50 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
22:07:52 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
22:14:50 <ihope> !daemon cat bf +[>,.<]
22:15:12 <ihope> EgoBot, did you invent domain names, IP addresses, and email addresses?
22:15:42 * CakeProphet is having to learn him some networking stuff so he knows what he's doing when he blocks stuff...
22:15:43 <ihope> CakeProphet: a network within a network?
22:16:40 <ihope> Used for "if it matches the subnet mask, direct it in, otherwise direct it out", if I remember correctly.
22:17:12 <CakeProphet> someone recommended I ban by isp subnet rather than by IP address..
22:17:20 <CakeProphet> but I'm not sure why... or how... I would do that.
22:18:52 <ihope> I think that'd be something like "hsd1.mi.comcast.net" for me or "ip.alltel.net" for you, maybe.
22:19:05 <ihope> Yes, let's ban all the Comcast users in Michigan.
22:19:27 <ihope> But maybe it isn't.
22:22:23 <SimonRC> CakeProphet: well, I appearance, the IP address space is flat..
22:22:40 <SimonRC> To help routing, it is divided up heirarchically.
22:23:21 <SimonRC> You can cut an IP address into blocks of bits, with the earlier bits being considered before the later ones for routing.
22:23:57 <CakeProphet> What is being "considered" and what does that involve...
22:24:31 <SimonRC> originally, this was only done on byte boundaries, producing class A networks (/8, meaning defined by an 8-bit sequence at the start), class B networks (/16), and class C networks (/24).
22:24:45 <SimonRC> CakeProphet: you know roughly how internet routing works, right?
22:25:40 <SimonRC> Well, it is (theoretically) close to heirarchical. A router looks at the first so many bits of an address, and chooses where to send it based on those.
22:26:24 <CakeProphet> where are these addresses come from... and where is the router sending them?
22:26:34 <SimonRC> A high-level router might only consider the first 8 bits, and dispatch based on those...
22:26:58 <SimonRC> CakeProphet: the address to which the packet is sent: an IP address
22:27:38 <SimonRC> consider a border router owned by Apple...
22:28:52 <SimonRC> The internet is roughly heirarchical in its routing, and things outside a network can ofter treat the layout inside that network as a "black box".
22:29:15 <SimonRC> a border router routes between the inside and outside of a network
22:29:56 <SimonRC> Apple owns all the addresses starting with 17.
22:30:17 <ihope> Really, or just for the purposes of explanation?
22:30:58 <ihope> What do they do with all of those?
22:32:57 <SimonRC> If a border router for Apple receives a packet, it will look at the first byte of the address. If that byte is not 17, it will look it up in a list that tells it which (external) line the packet should leave on, and send it out. If the first address byte *is* 17, it will look at the next byte or so, and look that up in a different list, to see which (internal) line it should send it out on.
22:33:57 <SimonRC> So a router only needs to know in detain about a bit of the Internet, and its knowlege of the internet can be compressed into short tables, rather than multi-Gb tables.
22:34:44 <CakeProphet> so packets are "funneled" to their locations by progressively going more internal.
22:35:09 <SimonRC> CakeProphet: or external...
22:35:20 <SimonRC> You go up the tree, then down.
22:35:43 <CakeProphet> so what does that have to do with banning IPs? :D
22:35:50 <CakeProphet> It's always nice to learn crap like that though
22:36:03 <SimonRC> Of course, it's nothing like a tree really, but the addresses *are* assigned so that you can abbreviate the routing table and still get very good results
22:36:19 <SimonRC> CakeProphet: I got an old copy of a networking book for £0.50
22:36:44 <CakeProphet> hmmm... so the packets go through various routers on the network right?
22:37:00 <SimonRC> CakeProphet: well, since the IP addresses are assigned in blocks, and that helps fast routing of packets, people's IP addresses will not tend to change much
22:37:30 <ihope> If I wanted to get to microsoft.com, I would send stuff to 192.168.0.4 (our router), which would send it to 73.43.4.1, which would send it to 12.244.250.193, which would send it to 12.118.112.9...
22:37:55 <SimonRC> Usually, there will be a point in their IP address after which they could get *any* set of bits and before which they always get the same bits.
22:38:01 <SimonRC> (IP addresses are 32 bits, BTW)
22:38:20 <CakeProphet> what would happen if... a router disconnected somewhere in the chain? Do they detect that this happens and send it down an alternate path?
22:38:25 <SimonRC> ihope: Ah, things get more complicated when you consider that routers have addresses too...
22:38:58 <ihope> CakeProphet: either that, or the network goes down, it would seem.
22:39:25 <ihope> My data would hang around in that general area (which seems to be owned by ATT), then go on to a different area at msn.com...
22:39:29 <SimonRC> Well, high-level routing is done via BGP usually, I am not sure what that does with failures...
22:40:06 <ihope> Then the sneaky msn.com people would send it off to who-knows-where, telling me only that it'll eventually get to microsoft.com, which is at 207.46.250.119.
22:40:19 <SimonRC> BGP is designed to take account of politics.
22:40:39 <SimonRC> e.g. you can't route packets from Canada to Canada through the USA.
22:40:56 <CakeProphet> hmmm.... okay, so now I just need to use that to determine how much change might occur in the IP address between router restarts... for banning the closest-fitting range possible.
22:41:02 <SimonRC> so BGP allows complicated policies about where packets are sent
22:41:17 <SimonRC> CakeProphet: this is very simple...
22:41:29 <ihope> Can't you say something like "have yahoo.com send this stuff to microsoft.com"?
22:43:18 <ihope> Is there something that would theoretically do that, if yahoo.com wants to participate?
22:43:27 <CakeProphet> I'm guessing the actual path of packets from destination A to destination B can change for each packet sent... so it won't be so absolute as "from yahoo.com to microsoft.com"
22:43:31 <SimonRC> CakeProphet: you consider all their recent IP addresses, and choose the longest sequence of bits that they have in common at the start, and you block that: If you have identified a sequence of n bits in common, then you append (32-n) zeroes to get 4 octets: a.b.c.d, then block a.b.c.d/n
22:45:13 <ihope> If you want to block "microwave", "microscope", and "microphone", generalize it to "micro*"?
22:46:27 <ihope> Well, 67.3.6.15 and 67.194.15.69 are both 67.0.0.0/8, if I'm not mistaken.
22:47:31 <SimonRC> CakeProphet: That is what CIDR notation uses
22:47:49 <SimonRC> http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
22:47:50 <ihope> The zeroes are ignored, I think. It's just the first eight bits that are used.
22:48:29 <CakeProphet> Well I don't have anything that supports CIDR notation...
22:49:17 <SimonRC> It's trivial to progam yourself...
22:50:35 <CakeProphet> wouldn't it be just easier to use... Perl regex?
22:51:17 <SimonRC> To see if A.B.C.D is in a.b.c.d/n, you just do: mask = ~(0XFFFFFFFF >> n); if (A.B.C.D & mask == a.b.c.d & mask) { ... }
22:51:32 <CakeProphet> not to mention I would need to show everyone how CIDR works... and these are people that -aren't- as tech saavy as me.
22:51:40 <SimonRC> assuming 32-bit unsigned ints throughout
22:51:51 <SimonRC> CakeProphet: what's this for, anyway?
22:53:07 <CakeProphet> oh... anyone I give the command to (adminstrator-type folks)
22:53:36 <CakeProphet> and in my current projects I'm pretty much the most technically inclined person in the group.
22:54:25 <SimonRC> You could teach the computer how to deduce minimal ban blocks, then admins just feed it addresses or domain names, it keeps track of how recently each was used, and works out minimal bans.
22:54:33 <SimonRC> and makes sure old ones are discarded
22:55:09 <CakeProphet> Keep a list of recent IP addresses to connect to the account... and then deduce the most minimal ban possible.
22:55:09 <SimonRC> It should howver consider a component of a domain name as atomic.
22:55:27 <CakeProphet> but then... the data could get skewed if someone from a different ip logged into that account recently.
22:56:22 <CakeProphet> regex seems to be the easiest way to go... it's fairly easy to understand and most people are familiar with it.
22:56:53 <SimonRC> Well, splitting a ban into two sub-bans is quite trivial, you just add one more bit of significance and consider the two possibilities. Then, you trim those two bans to the minimum possible size, and see how much gets trimmed off.
22:57:40 <SimonRC> CakeProphet: but you must consider domain name components to be atomic, remember.
22:57:42 <CakeProphet> and this might not always be a user-based ban.
22:58:09 <SimonRC> Otherwise you will end up doing odd stuff with domain names that are derived from IP addresses
22:58:10 <CakeProphet> if, for example, someone hacks into someone elses account... then you would need to use an IP-specific block.
23:00:05 <CakeProphet> well... it's not Perl regex... it's Python's re module.
23:00:15 <CakeProphet> which was designed to be like Perl's tegex.
23:00:51 <SimonRC> This might be helpful, maybe: http://www.pc-tools.net/unix/grepcidr/
23:03:21 <CakeProphet> I was also thinking about using a "range" regex thing.
23:03:42 <CakeProphet> so the regex [1:4] would match 1, 2, 3, and 4
23:04:33 <CakeProphet> Which would be useful for IP addresses like mine...
23:05:25 <CakeProphet> the first part of my address is usually either 151 or 150... so you could use 15[0:1] to specify those two, without having to use a wildcard, which would be too broad.
23:06:59 <CakeProphet> In my modified regex, [1:10] == (1|2|3|4|5|6|7|8|9|10)
23:07:21 <CakeProphet> or is there an easier way to convert that?
23:09:26 <CakeProphet> don't think this module has a [1-9] like syntax.
23:27:57 <CakeProphet> SimonRC, So [x-y] matches the range between x and y?
23:33:12 -!- tgwizard has quit (Remote closed the connection).
23:34:09 <SimonRC> CakeProphet: [x-y] is a range of characters
23:35:15 <ihope> If I'm not mistaken, [1-10] would be all characters from 1 to 1, or 0.
23:38:40 -!- CakeProphet has quit ("haaaaaaaaaa").
23:39:24 -!- CakeProphet has joined.
23:45:36 <Eidolos> I like the idea of [1:10] if you find better syntax for it.
23:46:37 <ihope> What's wrong with [1:10]?
23:47:45 <Eidolos> Should that match a 1, 0, :, 2, 3, or a number from 10 to 23?
23:50:23 * ihope giggles slightly at the 500,000,000,000,000 mega-amps of current going through a wire
23:53:59 <ihope> According to Google, that's over 274,000,000,000,000 kilograms of electrons moving through there every second.
23:55:26 <ihope> It's quite the wire, isn't it?
23:55:56 <ihope> Note to self: never put an ideal wire across a near-ideal battery.