code logs -> 2009 -> Wed, 15 Jul 2009< code.20090714.log - code.20090716.log >
--- Log opened Wed Jul 15 00:00:35 2009
00:09 parthenogejeg [~b1bo3k@201.73.205.ns-20910] has joined #code
00:09 parthenogejeg [~b1bo3k@201.73.205.ns-20910] has left #code []
00:12 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #Code
00:19 You're now known as TheWatcher[T-2]
00:19 Janus [~10339707C@Nightstar-15463.sip.pns.bellsouth.net] has joined #code
00:24 You're now known as TheWatcher[zZzZ]
00:25
< Reiv>
Hey, TF
00:25
< Reiv>
http://privateer.sourceforge.net/ - it's not Wing Commander, but it's potentially cute anyway?
00:35 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
00:36
<@ToxicFrog>
Tried it. Nice idea and I've always wanted to play Privateer but it was v. unstable.
00:36
<@McMartin>
Is that the Vega Strike total conversion?
00:36
<@ToxicFrog>
Yeah
00:36
<@ToxicFrog>
The Privateer to Vegastrike port
00:37
<@ToxicFrog>
(also, the FS2O engine takes VS to the cleaners~)
00:37
< Reiv>
(Any developments in FS20, idly?)
00:39
<@Vornicus>
I keep reading that as Veggie Strike.
00:41
< Reiv>
So hey
00:41
< Reiv>
Data Mining! Any thoughts on it?
00:41
<@Vornicus>
You're going to need a data pickax and a data minecart and possibly some data dwarfs.
00:43 Consul [~Consul__@68.21.37.ns-4507] has joined #code
00:43 mode/#code [+o Consul] by ChanServ
00:43
<@GeekSoldier>
the dwarves are required.
00:47
<@SmithKurosaki>
As is levers and lava
00:58
<@GeekSoldier>
hmm.. I wonder what kind of industry tree would need to be in place to run an efficient data mining operation in DF.
00:59
<@Vornicus>
heh
01:02
<@SmithKurosaki>
Is it just me, or is AuntyBot sending out a lot of stuff lately?
01:03 * GeekSoldier pets AuntyBot. It's ok. I'm human.
01:04 * Namegduf isn't.
01:04
<@GeekSoldier>
well, me neither, but I wear human clothes.
01:06 * McMartin gets out the Siege Drivers
01:06
<@SmithKurosaki>
o.0
01:06
<@SmithKurosaki>
What are you planning mcm?
01:07
< Reiv>
Speaking of, McM
01:07
< Reiv>
Heavy Lasers - are they any good at taking out those pesky asteroid defense thingies?
01:27
<@McMartin>
Asteroid Monitors?
01:27
<@McMartin>
You don't want to destroy those, you want to zomghax them.
01:28
<@McMartin>
Alien Derelicts, they're OK but Sniper Cannons are way better because they outrange basically everything.
01:28
<@McMartin>
And you can target individual turrets, and blowing off all its guns gives you better loot than blowing the whole thing the leeg up
01:28
<@McMartin>
Missiles always target center of mass and are thus kind of hopeless
01:30
<@McMartin>
SmithKurosaki: Mostly I've been playing Sword of the Stars on my time off.
01:30
<@McMartin>
The implication was that the proper way of dealing with nonhumans was to shoot neutronium asteroids at them.
01:30
<@SmithKurosaki>
Ahh. Ok
01:31
<@McMartin>
Though actually in my current game it's more "cloaked ships carrying mind control bioweapons"
01:31
<@McMartin>
Reiv: At any rate, for engaging at great ranges, Torps are kind of better over all.
01:32
<@McMartin>
I've been using Anti-Matter Torps against my bioweapon-immune foes to considerable effect
01:34 Thaqui [~Thaqui@121.98.166.ns-22683] has quit [Client exited]
01:35
< Reiv>
...zomghax the asteroid monitors?
01:36
<@McMartin>
When you discover an asteroid monitor that wasn't built by a PC, you get a special research project opened up.
01:36
<@McMartin>
Upon finishing that process, the monitor becomes yours.
01:36
<@McMartin>
Free stationary dreadnaught.
01:36
< Reiv>
Oh. Huh. Okay.
01:36 * Reiv hadn't noticed that. Is that for each individual one?
01:36
<@McMartin>
Once it's under a player's control you can't hax it back.
01:36
<@McMartin>
Yes.
01:36
< Reiv>
(And I'd hardly call research 'free'. It's directly linked to money, afterall~)
01:37
<@McMartin>
Special projects are a tiny shard of your budget.
01:37
<@McMartin>
And take forever
01:37
<@McMartin>
And are parallel to other spending
01:37
< Reiv>
(Also rather annoying how it's so lottery-based.)
01:37
< Reiv>
Oh. So they're distinct from simple research?
01:37
<@McMartin>
Yeah
01:37
<@McMartin>
Salvage works similarly
01:38
<@McMartin>
Basically, they're low-grade crackpot research that eventually pays off with a tech you otherwise would never get
01:38
< Reiv>
Didn't realise that. Okay.
01:39
< Reiv>
Is there some Better Way to deal with the endless running-out-of-fuel thing?
01:39
<@McMartin>
They show up on your ticker as "special projects available"
01:39
<@McMartin>
Build tankers?
01:39
<@McMartin>
Research better power?
01:39
<@McMartin>
... should we maybe move this to a better channel?
01:40
< Reiv>
Probably~
01:41 * Vornicus really should look into SotS.
01:44 Janus [~10339707C@Nightstar-15463.sip.pns.bellsouth.net] has quit [Quit: 8U]
01:57 AnnoDomini [AnnoDomini@Nightstar-29280.neoplus.adsl.tpnet.pl] has quit [Quit: I like my random encounters like I like my tea and my women - deadly.]
02:08 Consul [~Consul__@68.21.37.ns-4507] has quit [Quit: Leaving]
02:10 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has joined #code
02:10 mode/#code [+o Consul] by ChanServ
02:26 Vornicus [~vorn@ServicesOp.Nightstar.Net] has quit [Quit: Leaving]
02:28 Vornicus [Vornicus@Admin.Nightstar.Net] has joined #code
02:28 mode/#code [+o Vornicus] by ChanServ
02:32 namespace [~fooling@Nightstar-22120.tor1.digineo.de] has joined #code
02:32 namespace [~fooling@Nightstar-22120.tor1.digineo.de] has left #code [/!\ http://www.Xroxy.com/Xorum /!\]
04:47 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Ping Timeout]
04:48 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has joined #code
04:48 mode/#code [+o GeekSoldier] by ChanServ
05:19 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
05:20 Vornicus [~vorn@ServicesOp.Nightstar.Net] has joined #code
05:20 mode/#code [+o Vornicus] by ChanServ
05:37 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: CGI:IRC (EOF)]
06:03 Syloqs-AFH [~Syloq@ServicesAdmin.Nightstar.Net] has quit [Connection reset by peer]
06:41 Vornicus [~vorn@ServicesOp.Nightstar.Net] has quit [Quit: Leaving]
06:42 Vornicus [Vornicus@Admin.Nightstar.Net] has joined #code
06:42 mode/#code [+o Vornicus] by ChanServ
07:54 Orthia is now known as Reivthia
08:05 Thaqui [~Thaqui@121.98.166.ns-22683] has joined #code
08:05 mode/#code [+o Thaqui] by ChanServ
08:11 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
08:12 Vornicus [~vorn@ServicesOp.Nightstar.Net] has joined #code
08:12 mode/#code [+o Vornicus] by ChanServ
08:36 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
08:43 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has joined #code
08:43 mode/#code [+o Consul] by ChanServ
09:29 You're now known as TheWatcher
09:42 AnnoDomini [AnnoDomini@Nightstar-29280.neoplus.adsl.tpnet.pl] has joined #Code
09:42 mode/#code [+o AnnoDomini] by ChanServ
10:06 TheWatcher changed the topic of #code to: You're going to need a data pickax and a data minecart and possibly some data dwarfs || Pastebins! http://paste.ubuntu.com http://pastebin.starforge.co.uk || Channel mode +U, ask for voice to post links. || See #projecteuler for http://projecteuler.net
10:06 * TheWatcher eyes troika
10:07 mode/#code [+o TheWatcher] by ChanServ
10:07 TheWatcher changed the topic of #code to: You're going to need a data pickax and a data minecart and possibly some data dwarfs || Pastebins! http://paste.ubuntu.com http://pastebin.starforge.co.uk || Channel mode +U, ask for voice to post links. || See #projecteuler for http://projecteuler.net
10:57 Rhamphoryncus [~rhamph@Nightstar-7168.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
11:07 Vornicus is now known as Vornicus-Latens
11:10 Thaqui [~Thaqui@121.98.166.ns-22683] has quit [Client exited]
11:38 Attilla [~The.Attil@92.11.7.ns-26496] has quit [Quit: <Insert Humorous and/or serious exit message here>]
11:50 Attilla [~The.Attil@92.11.7.ns-26496] has joined #code
11:50 mode/#code [+o Attilla] by ChanServ
13:16 AnnoDomini [AnnoDomini@Nightstar-29280.neoplus.adsl.tpnet.pl] has quit [Quit: Patience is a virtue.]
13:20 AnnoDomini [AnnoDomini@Nightstar-29280.neoplus.adsl.tpnet.pl] has joined #Code
13:20 mode/#code [+o AnnoDomini] by ChanServ
13:41 Attilla [~The.Attil@92.11.7.ns-26496] has quit [Connection reset by peer]
13:42 Attilla [~The.Attil@92.11.7.ns-26496] has joined #code
13:42 mode/#code [+o Attilla] by ChanServ
14:50
<@SmithKurosaki>
What
14:50
<@SmithKurosaki>
's up with Troika TW?
14:51
<@jerith>
Is something wrong with Troika?
14:51
<@SmithKurosaki>
Around 5am there might have been>
14:51
<@SmithKurosaki>
(4 hours ago)
14:53
<@jerith>
I didn't notice anything, but there may have been network issues.
14:54
<@TheWatcher>
It was desynched.
14:54
<@SmithKurosaki>
Annoyance
14:54 * TheWatcher shrug
14:54
<@TheWatcher>
It happens
14:54
<@jerith>
Ah, right.
14:55
<@jerith>
Yeah.
14:55 * jerith glares at Syloq.
14:55
<@SmithKurosaki>
o.0
14:55
<@TheWatcher>
Such are the problems of a distributed network with a somewhat old ircd I guess
14:55
<@jerith>
Yeah.
14:55
<@SmithKurosaki>
Well, I don't see as many splits on here as syn, that's for damn sure
14:56
<@SmithKurosaki>
ircd?
14:56
<@TheWatcher>
the irc server software
14:56
<@jerith>
We're actively investigating switching ircds, but we're blocked on services stuff at the moment.
14:56
<@SmithKurosaki>
:(
14:56 * jerith glares at Syloq again.
14:56
<@SmithKurosaki>
He's not even on by the looks
14:56 * TheWatcher uses inspircd + ircservices in work, should really see how it works with multiple connected servers
14:57
<@jerith>
He just isn't in this channel.
14:57
<@jerith>
TheWatcher: I think the issue is database migration or something.
14:57
<@SmithKurosaki>
Well, same idea at the channel lever
14:57
<@SmithKurosaki>
*level
14:59
<@SmithKurosaki>
I need to find more channels to get into on Nightstar. I am only in #code, and I am sure there is a much livelier channel somewhere, I just haven't found one yet
15:00
<@jerith>
#nightstar_bar has bursts of traffic.
15:00
<@SmithKurosaki>
Cool]
15:00
<@jerith>
#projecteuler is pretty quiet most of the time and somewhat special purpose.
15:00
<@SmithKurosaki>
Yea, I occasionally pop in there, but not very often
15:01
<@jerith>
#schlock_mercenary isn't really related to the webcomic anymore, but occasionally has activity.
15:01
<@SmithKurosaki>
I really only work on PE when TF is around and can help me with lua
15:01
<@SmithKurosaki>
Never heard of it
15:01 * jerith has started again in Haskell.
15:01
<@jerith>
Schlock Mercenary is the most consistently good daily webcomic there is.
15:01
<@SmithKurosaki>
I am learning / trying to learn lua by doing PE and xchat plugins
15:02
<@SmithKurosaki>
Hmm
15:02
<@jerith>
And "daily" means every day, without fail.
15:02
<@SmithKurosaki>
I don't really read too mainly webcomics consistently
15:05
<@SmithKurosaki>
I read xkcd, but I will read it after not reading it for a week or two
15:12 * TheWatcher has a dozen or so, of varying levels of update reliability and story quality
15:13
<@SmithKurosaki>
I have a list, but I kind of suck at remembering what's going on if I read too many story line comics
15:20
<@TheWatcher>
"As a slow-witted human being I have a very small head and I had better learn to live with it and to respect my limitations and give them full credit, rather than try to ignore them, for the latter vain effort will be punished by failure." heh, I'd forgotten that one.
15:25
<@jerith>
I use an RSS reader. :-)
15:29
<@SmithKurosaki>
Thank you for reminding me to check tf2
15:49 AgentIchiro [~Smith@Nightstar-7213.cpe.net.cable.rogers.com] has joined #code
16:08 Syloqs_AFH [~Syloq@Admin.Nightstar.Net] has joined #code
16:08
<@jerith>
TheWatcher: I suppose you're using inspircd 1.1?
16:09 AgentIchiro [~Smith@Nightstar-7213.cpe.net.cable.rogers.com] has quit [Quit: I'm out, there's something else to do]
16:09 Syloqs_AFH is now known as Syloqs-AFH
16:09
<@TheWatcher>
Yeah
16:09
<@TheWatcher>
I tend to avoid rc versions ¬¬
16:14
<@jerith>
Ah.
16:14
< Namegduf>
1.1 has a fair few known issues. 1.2, despite RC, is probably more stable.
16:14
<@jerith>
In this case 1.2 is vastly superior, as stable as any ircd gets and incompatible with most flavours of services. :-/
16:15
< Namegduf>
Psh, it's compatible with Anope and Atheme. :P
16:15
<@jerith>
It uses a much saner user reg thing than just setting mode +r.
16:16
< Namegduf>
It sorta does, but services which don't think that way can normally just put their nick in there.
16:16 * jerith nods.
16:16 * SmithKurosaki is confused
16:16
< Namegduf>
Unfortunately, IRC Services being bugfix-only at best, probably isn't ever getting support...
16:16
<@jerith>
The thing is, ircservices doesn't work with it.
16:16
<@SmithKurosaki>
I understand part of what you guys are saying, but not all of it :(
16:16
<@jerith>
So we'd need a db migration or start again from scratch.
16:17
<@jerith>
SmithKurosaki: We're assuming a lot of background knowledge here. :-)
16:17
<@SmithKurosaki>
Ahh
16:17
<@jerith>
Services (nickserv, chanserv, etc.) are separate from the ircd.
16:17
< Namegduf>
Hmm, there's nothing out there already for DB migrations from ircservers to whatever's being looked at?
16:17
< Namegduf>
*services
16:18
<@jerith>
Namegduf: I haven't looked, but I suspect Syloq has.
16:18
< Namegduf>
Would make sense, yeah.
16:19
<@jerith>
SmithKurosaki: In this case, the new version of inspircd breaks the IRC protocol RFC in ways that make most services packages incompatible.
16:19
<@SmithKurosaki>
:(
16:19
<@jerith>
The breakage is entirely justified, though.
16:19
<@SmithKurosaki>
How so?
16:19
< Namegduf>
It uses UIDs/SIDs, which it didn't use to do.
16:19
< Namegduf>
Which dramatically breaks protocol modules designed for 1.1.
16:20
<@jerith>
The inter-server comms spec has traditionally been very similar to the client-server spec.
16:20
<@SmithKurosaki>
Ahh, so since they changed the underlying design, it's expected that stuff is going to snap in half then?
16:20
<@jerith>
Which is very limiting, but allows different servers to talk to each other.
16:20
< Namegduf>
Ah, you mean TS6, right?
16:21
<@SmithKurosaki>
Which is the point. If the servers can
16:21
<@jerith>
Since modern ircds all have different features, you don't want a heterogeneous network anyway.
16:21
<@SmithKurosaki>
't talk to each other, than the network goes boom
16:21
< Namegduf>
Yeah.
16:21
< Namegduf>
By different, he means, different server software.
16:21
<@jerith>
SmithKurosaki: unrealircd, inspircd and nsircd can't talk to each other.
16:21
<@SmithKurosaki>
:(
16:21
< Namegduf>
Or TS6 IRCDs.
16:22
<@jerith>
(Those are the only three I know.)
16:22
<@jerith>
The thing is, they have different featuresets.
16:22
< Namegduf>
I think only supporting TS6 would interfere with services properly supporting some TS6 servers, though.
16:23
< Namegduf>
I think some extensions need to be understood to work right.
16:23
<@jerith>
So if you want features like our +U channel mode, you have to stick to a single implementation.
16:23
< Namegduf>
Yeah.
16:23
< Namegduf>
That's another downside, that'd have to be ported, I imagine.
16:23
<@jerith>
What inspircd did was change how some fairly basic things worked.
16:24
< Namegduf>
The justification for not changing them in a revision of TS6 or similar, I think, was "We'd have to restart the whole network, even a rolling restart, and that's not okay."
16:24
<@jerith>
Specifically, decoupling the user id and the nick.
16:24
< Namegduf>
Ah, that was a different one, but that's 1.2's big change.
16:25
<@jerith>
That's the one that breaks nickserv.
16:25
<@SmithKurosaki>
A rolling restart if you change software is liable to take down the whole network for longer than just restarting though isn't it?
16:26
<@jerith>
It's the right direction, but it's a breaking change.
16:26
< Namegduf>
Changing software that won't interlink, yet.
16:26
< Namegduf>
*yes
16:26
<@jerith>
It can be done, but it's a lot of effort.
16:26
< Namegduf>
Changing software that will interlink, still yes, but hopefully you don't reset modes/ban lists on many channels.
16:27
<@jerith>
You need to upgrade acorss the board to a version that understands both protocols.
16:27
<@SmithKurosaki>
There's no way to save all the nickserv/chanserv stuff somewhere and port it in either. Tricky
16:27
<@jerith>
Then you can switch to the new one and upgrade to a version that drops support for the old.
16:27
< Namegduf>
There isn't an existing one, so one would need creating, basically.
16:28 Syloqs-AFH [~Syloq@ServicesAdmin.Nightstar.Net] has quit [Connection reset by peer]
16:28
<@jerith>
Switching to a different ircd can't be done without shutting everything down and bringing it up with the new software.
16:28
<@SmithKurosaki>
And if you did a rolling restart, would 2 of the servers be able to handle 3 servers worth of users?
16:28
< Namegduf>
Should be.
16:28
<@jerith>
But that's only a minute or two of downtime in an ideal world.
16:28
< Namegduf>
"ideal world"
16:29
< Namegduf>
Never been there.
16:29
<@SmithKurosaki>
In other words, doing that will kill NS for probably a day at least?
16:29
<@SmithKurosaki>
Am I right?
16:29
<@jerith>
Namegduf: I have, but it takes a lot of testing and preparation.
16:29
< Namegduf>
Nah, it'd probably go smoothly.
16:29
<@SmithKurosaki>
Hmm
16:29
<@jerith>
SmithKurosaki: Probably only a few minutes. But it isn't going to happen for a while.
16:29
<@SmithKurosaki>
Yea
16:29
< Namegduf>
I've had luck like that, but I've also had more bizarre cases in which something the users did caused it to, er, start dying. Horribly.
16:30 Consul_ [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has joined #code
16:30 McMartin [~mcmartin@Nightstar-7615.dsl.pltn13.sbcglobal.net] has quit [Operation timed out]
16:30
<@jerith>
The hard part at the moment is migraing the services data to a services package that will talk to inspircd.
16:30
<@SmithKurosaki>
I am very pessimistic when it comes to things like installing x, unless I have done it before on the machine in questiom
16:30
<@jerith>
I don't like this keyboard. :-(
16:31
<@jerith>
SmithKurosaki: Oh, we're not going to do it without testing.
16:31
<@SmithKurosaki>
OK, you
16:31
< Namegduf>
Haha... yeah.
16:31
<@SmithKurosaki>
guys aren't insane :)
16:31
<@jerith>
We have a testnet up at the moment to get configs and services and stuff going.
16:31 McMartin [~mcmartin@Nightstar-7615.dsl.pltn13.sbcglobal.net] has joined #code
16:31 mode/#code [+o McMartin] by ChanServ
16:31
< Namegduf>
Neat.
16:31
<@SmithKurosaki>
Cool
16:31
<@jerith>
SmithKurosaki: Not in that direction, at least. ;-)
16:31
< Namegduf>
Any idea what services you're looking at using?
16:31
<@SmithKurosaki>
:)
16:32 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
16:32
<@jerith>
Either Anope or Atheme. I haven't had anything to do with that.
16:32
< Namegduf>
Ah.
16:33
<@jerith>
On the other network I'm involved with, we have enough supplemental services things that we decided to write our own that did everything we want instead of running several.
16:33
<@SmithKurosaki>
Nice
16:33
<@jerith>
But that project has succumbed to not-enough-time.
16:33
< Namegduf>
Downside of "write your own".
16:33
<@SmithKurosaki>
Oops...
16:33
<@jerith>
http://launchpad.net/kali
16:34
< Namegduf>
I avoid it where possible, prefer to run modules/properly-managed-patchset off existing stuff to avoid the whole "maintain everything by myself" part.
16:34
<@jerith>
Yeah.
16:34
<@jerith>
But we're already maintaining a bunch of stuff ourselves.
16:35
< Namegduf>
Where "properly maintained" means "has a proper system for rebasing on upstream, and uses it about as regularly as normal upgrades", of course.
16:35
< Namegduf>
(Right now, I'm favouring git)
16:35
<@jerith>
And integration across different services isn't fantastic.
16:35 * SmithKurosaki dances
16:35
< Namegduf>
Yeah, that'll be a pain.
16:35
<@jerith>
So once we have the thing actually /built/, our maintenance load shouldn't really increase.
16:35
<@SmithKurosaki>
I wish I could help more, server stuff sounds relatively interesting for what it is
16:35
<@jerith>
It just shifts.
16:36
<@jerith>
IRC is a very simple protocol.
16:36
< Namegduf>
Like chess is a very simple game.
16:36
<@jerith>
Which means that a lot of intelligence needs to live in the servers.
16:36
< Namegduf>
Yeah.
16:36
< Namegduf>
Synchronisation parts are a pain, particularly.
16:36
<@jerith>
Very.
16:37
<@jerith>
So you want the servers to be as stateless as possible.
16:37
< Namegduf>
They largely involve the two servers throwing their entire state at each other during netjoin, so that's another reason for that.
16:37 Syloqs_AFH [~Syloq@Admin.Nightstar.Net] has joined #code
16:37 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
16:37 mode/#code [+o gnolam] by ChanServ
16:37
<@jerith>
But that adds single points of failure and ups communications costs.
16:37
< Namegduf>
Yeah.
16:38
<@jerith>
On the other hand, IRC scales out better than pretty much all the other realtime comms protocols I've looked at.
16:38 Syloqs_AFH is now known as Syloqs-AFH
16:38
<@jerith>
XMPP scales nicely too, but has other issues.
16:38
< Namegduf>
It has its limits, but they're beyond any reasonable use case.
16:39
<@jerith>
On the other hand, that comes at the expense of features.
16:40
<@jerith>
Like delivering messages sent to offline users.
16:40
< Namegduf>
I'm not entirely sure most missing features are at odds with that, they're just hard to implement mostly because they need client, server, and possibly services support all at once.
16:40
<@jerith>
So you end up with bots like memoserv and such.
16:40
<@jerith>
Namegduf: offline message storage is hard to scale because you need to keep state around.
16:41
< Namegduf>
jerith: Close integration with services.
16:41
< Namegduf>
A major pain to implement, which is why no one has done it, I think.
16:41
<@jerith>
I've often considered ways to build services into the ircd.
16:41
<@jerith>
But where does one put the data?
16:41
< Namegduf>
I've considered it, tried to work out the method.
16:41
<@jerith>
One node has to be special.
16:42
<@jerith>
But then that node works hard and does different things.
16:42
< Namegduf>
It does, because they can't be stored on every server. Netjoins would be horrible.
16:42
<@jerith>
So you're back where you started.
16:42
<@jerith>
Now, there are ways around that.
16:42
<@jerith>
But they're hard.
16:42
< Namegduf>
Basically, yeah. What you can do is use non-IRC methods to synchronise services on multiple nodes.
16:43
< Namegduf>
And bring up a backup/second copy.
16:43
<@jerith>
You could use something like Dynamo to do distributed state storage.
16:43
< Namegduf>
Doing that read-write is hard.
16:43
< Namegduf>
Right now, I have something cheap and ugly.
16:43
<@jerith>
And embrace eventual consistency.
16:43
<@jerith>
But then you have user-visible edge cases.
16:43
<@jerith>
And dealing with conflicts is nontrivial.
16:43
< Namegduf>
I'm not familiar, but I believe I understand.
16:44
< Namegduf>
I have a working system for backup services, but it relies on read-only copies of services with copies of the database sent halfhourly.
16:44
<@jerith>
Dynamo is basically a distributed, versioned hash table.
16:45
<@jerith>
In the happy case, data gets written to a bunch of nodes and any of them can drop out for a bit and come back without impact.
16:45
<@jerith>
The problem is that you can end up with partitioning.
16:45
<@jerith>
That's what a netsplit is.
16:46
<@jerith>
Two servers are both up and running, but not talking to each other.
16:46
< Namegduf>
Methods for resolving conflicts on sync exist in IRCDs, but they're largely timestamp-based.
16:47
<@jerith>
If two people end up with the same nick on the different servers, there's a problem when they can talk to each other again.
16:47
< Namegduf>
Yeah.
16:47
<@jerith>
Dynamo kicks the problem up to the application layer, which is the only sane thing to do.
16:48
< Namegduf>
It kills (or with 1.2, forcibly changes their nick to their ID) the newer user.
16:48
<@jerith>
Instead of saying "here's the data", it says "I have two sets of conflicting data, here they are".
16:48
< Namegduf>
Interesting.
16:48
< Namegduf>
And the application chooses which, effectively?
16:48
<@jerith>
So the application can decide what to do and write a consistent version back.
16:49
<@SmithKurosaki>
If two people end up with the same nick on the different servers, there's a problem when they can talk to each other again. <- I've seen this before. It is annoying
16:49
<@jerith>
Depending on what makes more sense, you can throw away one or the other or do some kind of merge.
16:49
<@jerith>
Or even throw the problem up to a human.
16:50
<@jerith>
Consider an Amazon shopping cart ( which is what Dynamo was designed for, I believe).
16:50
<@SmithKurosaki>
Is it easier to resolve if someone is identified?
16:51
<@jerith>
If I add stuff to my cart and then a storage node goes down and then I add something else to my cart, I now have two different versions of the cart.
16:51
< Namegduf>
It clearly wants to add all the items, so you hopefully buy the most.
16:51
<@jerith>
The app can then fix it in the simple case without user interaction.
16:52
<@jerith>
If I added the same thing twice, I probably only want one of them.
16:52
<@jerith>
If I added two different things, I probably want both.
16:52
<@jerith>
If I added multiple items both times and there's overlap, it can ask me which ones I want.
16:53
<@jerith>
But that kind of thing requires semantic information about the data which the storage layer doesn't have.
16:54
<@jerith>
To return to the ircd/services thing, you now have a complex and heavyweight distributed storage engine and you also need an intelligent conflict resolution system.
16:54
<@jerith>
Those are both really hard problems, and the wins almost certainly aren't worth the effort.
16:54
<@jerith>
(Unless it's a PhD thesis or something.)
16:55
<@jerith>
What I think would be far more interesting is better routing algorithms.
16:55
<@jerith>
There are a lot of pretty good ad-hoc network protocols that specifically solve this problem.
16:55
<@SmithKurosaki>
Mmm. Waffles and Ice cream for breakfast :)
16:56
<@jerith>
Ooh, yummy.
16:57
<@jerith>
The problem there is that they add a lot of network overhead.
16:57
<@jerith>
And unless the net is huge and complex, don't really add very much beyond automated reconnects.
16:58
<@jerith>
Of course, inspircd makes that kind of thing *theoretically* possible by making routing a module.
16:59
< Namegduf>
Yeah.
16:59
<@jerith>
This kind of thing usually ends up requiring more information (or a different subset) than is available in that layer, though.
17:00
<@jerith>
And it's also a hard problem.
17:00
< Namegduf>
It works.
17:00
<@jerith>
Namegduf: Are you an inspircd dev, perchance?
17:00
< Namegduf>
Nah, but I contribute.
17:00
<@jerith>
Ah, cool.
17:03
<@jerith>
I started writing a module for the +U channel mode once, but didn't remember enough C++.
17:06
< Namegduf>
I maintain a module or two, working on another, although it'll probably be a while before I get that done.
17:06
< Namegduf>
I want to make one to duplicate UnrealIRCd's +f sometime, if someone else doesn't first, but I don't have time yet.
17:08
<@ToxicFrog>
What does +f do?
17:10
< Namegduf>
Channel level flood protection, takes a parameter containing limits for joins, ctcps, knocks, total messages, messages per user, and nick changes and actions to do when exceeded.
17:10
< Namegduf>
http://www.unrealircd.com/files/docs/unreal32docs.html#feature_antiflood <-- Probably irritatingly complex, but it's one of the nicer features of UnrealIRCd that InspIRCd lacks right now.
17:11
< Namegduf>
s/complex/complex to implement/
17:11
<@SmithKurosaki>
Thats a lot of stuff that it controls
17:14
< Namegduf>
Yeah.
17:23
<@jerith>
It needs to hang onto a bunch of state. :-/
17:32 Consul_ [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has quit [Quit: Leaving]
17:33 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has joined #code
17:33 mode/#code [+o Consul] by ChanServ
17:45 AnnoDomini [AnnoDomini@Nightstar-29280.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
17:52 AnnoDomini [AnnoDomini@Nightstar-29312.neoplus.adsl.tpnet.pl] has joined #Code
17:52 mode/#code [+o AnnoDomini] by ChanServ
18:06 Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has quit [Ping Timeout]
18:07 Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has joined #code
18:38 Rhamphoryncus [~rhamph@Nightstar-7168.ed.shawcable.net] has joined #code
18:43 Consul_ [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has joined #code
18:44 Consul [~Consul__@Nightstar-3329.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
19:03 EvilDarkVord [~jjlehto3@Nightstar-9591.cs.hut.fi] has quit [Ping Timeout]
19:03 EvilDarkVord [~jjlehto3@Nightstar-9591.cs.hut.fi] has joined #code
19:31 Vornicus-Latens is now known as Vornicus
20:05 Consul_ is now known as Consul
22:19 Thaqui [~Thaqui@121.98.166.ns-22683] has joined #code
22:19 mode/#code [+o Thaqui] by ChanServ
23:03 AnnoDomini [AnnoDomini@Nightstar-29312.neoplus.adsl.tpnet.pl] has quit [Quit: There is no Dana, only Zuul.]
23:28 You're now known as TheWatcher[T-2]
23:34 You're now known as TheWatcher[zZzZ]
23:55 * McMartin enters the bang-tail command and snickers like a 12-year-old.
23:56
<@McMartin>
I think I need more sleep.
--- Log closed Thu Jul 16 00:00:49 2009
code logs -> 2009 -> Wed, 15 Jul 2009< code.20090714.log - code.20090716.log >