code logs -> 2007 -> Fri, 30 Mar 2007< code.20070329.log - code.20070331.log >
--- Log opened Fri Mar 30 00:00:59 2007
00:09 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
00:46 Reiver [~reiver@Nightstar-28072.ubs-dsl.xnet.co.nz] has quit [Ping Timeout]
00:47 ReivZzz [~reaverta@IRCop.Nightstar.Net] has quit [Ping Timeout]
00:53 ReivZzz [~reaverta@IRCop.Nightstar.Net] has joined #Code
00:54 Reiver [~reiver@Nightstar-1733.ubs-dsl.xnet.co.nz] has joined #Code
00:55 mode/#code [+o Reiver] by ChanServ
01:04 ReivZzz is now known as ReivClass
01:30 Vornicus [~vorn@ServicesOp.Nightstar.Net] has quit [Quit: Leaving]
01:30 Vornicus [~vorn@67.50.40.ns-3674] has joined #code
01:30 mode/#code [+o Vornicus] by ChanServ
02:01
<@McMartin>
"I guess I actually need to, you know, *read* the spec."
02:11
<@Vornicus>
Arg, what is wrong with my code
02:11
<@Vornicus>
http://vorn.dyndns.org:3000/board/show/1 <--- does the map appear flush with the top of the page, or does it start below the description?
02:12
<@McMartin>
Flush with top
02:12
<@Vornicus>
gnarg.
02:12 * Vornicus tries to figure out why.
02:16
<@Vornicus>
it's acting like <body> is the containing block, instead of <div>
02:22 * ToxicFrog eyes the fuck out of BRIEFING.VGA
02:23
<@ToxicFrog>
You have got to be kidding me
02:23
<@Vornicus>
What is this game, what is this file?
02:23
<@McMartin>
Wing Commander 1.
02:23
<@Vornicus>
aha
02:24
<@ToxicFrog>
The briefings aren't movies, they're sprite sheets woven together in, like, 4-6 layers at runtime.
02:24
<@McMartin>
... how is this a surprise?
02:24
<@Vornicus>
...wacktacular
02:24
<@McMartin>
That's also UQM and Very Nearly Every GBA Game Evre.
02:24
<@McMartin>
Ever
02:25
<@ToxicFrog>
Well, yes, but UQM is talking heads and GBA and SNES games are, usually, in-engine cutscenes.
02:25
<@McMartin>
SNES, yes, GBA, less so, at least with my games.
02:25
<@McMartin>
(Wario Ware probably being the most blatant)
02:25
<@ToxicFrog>
Whereas this is like the briefing room, with the admiral on top, then you, then your wingmate, then the audience
02:26
<@McMartin>
Yeah, that's pretty much the way the WW ones look.
02:26
<@ToxicFrog>
The medal awards ceremony is creepy, it's a bunch of faceless figures and the faces and hands are seperate sprites
02:26 * McMartin suspects that Phoenix Wright does the same trick, at least as Background + Sprite Layer + Dramatic Motion Lines + Text Layer
02:27
<@McMartin>
... + "OBJECTION!" layer
02:27
<@Vornicus>
OBJECTION!
02:27
<@ToxicFrog>
Hmm. Ok, they seem to be controlled with BRIEFING.000
02:27
<@ToxicFrog>
(which also covers funerals etc)
02:27
<@ToxicFrog>
..and the contents are odd
02:27
<@McMartin>
(Hey, go them; UQM hardcodes it all in statically initialized structs ;_;)
02:27
<@ToxicFrog>
;.;
02:28
<@ToxicFrog>
Farewell, $C. You'll be missed.
02:28
<@ToxicFrog>
\0
02:28
<@McMartin>
Perl injection!
02:28
<@ToxicFrog>
farwaldipstikp5yulbemisd
02:28
<@ToxicFrog>
\0
02:28
<@McMartin>
o_O
02:28
<@Vornicus>
O_o
02:28
< MyCatVerbs>
ToxicFrog: that's *ed*. Or maybe TECO.
02:28
<@ToxicFrog>
RA15,81,01,A15,81,01,A10,81,02,
02:28
< Doctor_Nick>
ToxicFrog we totally blew up a titan
02:28
< MyCatVerbs>
Even Perl is not that bad.
02:28
<@McMartin>
Logout smitings for the win!
02:29
<@ToxicFrog>
And thena bunch of binary data.
02:29
<@ToxicFrog>
Doctor_Nick: wha? Context?
02:29
<@McMartin>
EVE.
02:29
< MyCatVerbs>
So anyway. I need to ask a stupid, but moderately serious question.
02:29 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Quit: Jouets de Dieu, jouets de jouets, les jouets de me, na?tre Clair enfant voire.]
02:29
< Doctor_Nick>
titan, the 60+ billion ship
02:29
<@ToxicFrog>
McMartin, Vornicus: yeah. This is what I mean by "odd"
02:29
< Doctor_Nick>
we popped one that BOB was building
02:29
<@ToxicFrog>
Each briefing string is always followed by one of these phoentically similar but unpunctuated strings.
02:30
<@McMartin>
Oh
02:30
< MyCatVerbs>
Y'know how GC is just about the only absolutely uncontested productivity gain the in the world?
02:30
<@ToxicFrog>
And the player is always 'dipstik'
02:30
<@McMartin>
I bet those are for mouthshapes.
02:30
<@McMartin>
MCV: Pretty sure typing is too.
02:30
<@ToxicFrog>
Hmm.
02:30
<@ToxicFrog>
That might explain it, yes.
02:30
< MyCatVerbs>
As in, almost every sensible language with GC is easier to program in than almost every single sensible language without it...
02:31
<@McMartin>
"p5" as "Pause"
02:31
<@ToxicFrog>
Not every *line* has corresponding mouthshapes, but the ones that don't are the ones where the camera is on someone else.
02:31
< MyCatVerbs>
So, um, question. Could you, I wonder, could you apply the same to regular expressions? Every language with them is better at textproc than every language without?
02:31
<@McMartin>
Mmm. Tricky, as regexps are a library feature, not a language feature.
02:31
<@McMartin>
Well
02:32
<@McMartin>
are often a lib feature.
02:32
<@Vornicus>
Except that many languages build them into the language as a type - Ruby, Perl
02:32
<@McMartin>
I'm not sure it's as clearcut that textprocessing is easier in Perl than Python or Java, suitably libraried up.
02:32
<@ToxicFrog>
Oh, GC is contested.
02:32
<@ToxicFrog>
Although most of those are "I'm writing a high-performance foo, can't have the garbage collector grabbing cycles when I don't want it to"
02:33
< MyCatVerbs>
I mean. Perl, Ruby, both productive as HELL. The latter is admittedly not nice to look at, but BLOODY HELL can experts churn out working code like there's no tomorrow.
02:33
<@Vornicus>
If there is one thing that ticks me off about Python, it is the lack of regex-in-syntax
02:33
<@McMartin>
TF: The line here was "is easier to program in."
02:33
<@ToxicFrog>
Aah yes.
02:33
<@McMartin>
The set of errors you can make in a GCed language is, in fact, a strict subset of the ones you can make in one with manual memory management.
02:33
< MyCatVerbs>
ToxicFrog: I mean outside of the retard community. Nobody contests it except for embedded programmers and fuckwites.
02:33
< MyCatVerbs>
*fuckwits (also my typing sucks)
02:33
<@McMartin>
Well, and system programmers.
02:34
<@Vornicus>
Embedded or Systems or Game programmers.
02:34
<@McMartin>
Remember when Vista was supposed to be C# all the way down?
02:34
<@McMartin>
Vorn: Tell that to Popcap~
02:34
<@ToxicFrog>
McMartin: what about, say, attempting to serialize a function closure?
02:34
<@ToxicFrog>
You can't make that mistake in C because C /doesn't have them/
02:34
<@Vornicus>
McM: granted, but
02:34
< MyCatVerbs>
That too. I'ma just lump 'em in with the embedded space, since they've pretty similar constraints.
02:34
<@McMartin>
TF: That's a specific case of attempting to write out a raw pointer.
02:34
<@McMartin>
Which is one of the nastier bugs in C/C++ based systems
02:35
<@ToxicFrog>
Hmm. Ok, granted.
02:35
<@McMartin>
Because with many libcs, you can write out raw pointers, read them back in, and it will actually work.
02:35
<@Vornicus>
FOAM
02:35
<@McMartin>
Despite the fact that this is wild coincidence.
02:35
<@Vornicus>
FOAM IN MY BRAIN
02:35
<@ToxicFrog>
Heee
02:35 * ToxicFrog pokes at it.
02:35 * MyCatVerbs starts giggling.
02:36
<@McMartin>
(See also: the crawling horror that was my predecessor's program analysis framework for C/C++, written in C++, and which only worked with gcc 2.96, for exactly this reason)
02:36
<@ToxicFrog>
Ok, it looks like we have total file size at the start, as usual (why?) followed by a table of contents of some kind, and then the actual briefing data. With each data consisting of a dialogue string, a mouthparts string, a comma-seperated set of values and some binary, the latter two of which are hopefully sprite/animation control.
02:36
<@McMartin>
(So you can malloc the necessary space before reading the file in, because this was written before ftell() was standardized)
02:37
<@ToxicFrog>
Aah. And DOS doesn't have stat(), right.
02:38 * MyCatVerbs murders MS-DOS. All hail MS-Xenix!
02:38
<@McMartin>
lolSCO, etc.
02:38 Chalcedon [Chalceon@Nightstar-6365.dialup.ihug.co.nz] has joined #code
02:38 mode/#code [+o Chalcedon] by ChanServ
02:49
<@ToxicFrog>
Argh. I wish these guys had been as sensical as LGS about formats.
02:56
< Doctor_Nick>
ME TOO
02:56 * Doctor_Nick dies
02:58
< MyCatVerbs>
'lo Chalcy.
03:03 Chalcedon [Chalceon@Nightstar-6365.dialup.ihug.co.nz] has quit [Connection reset by peer]
03:12 * ToxicFrog still needs to try EVE Online someday.
03:14
< Doctor_Nick>
so download it and install it and start your trial period :P
03:15
<@ToxicFrog>
Not during exam week.
03:16
< Doctor_Nick>
then why are you on MIRC? :P
03:17
< MyCatVerbs>
Because there are time sinks and then there are the unholy MMO-styled sinkers of time.
03:18
<@ToxicFrog>
I'm not, I'm on IRC.
03:18
<@ToxicFrog>
And the answer is, because I'm always on, and I can always ignore it with no ill effects.
03:18
< MyCatVerbs>
And TF uses, I believe, XChat.
03:18
<@McMartin>
Dr. Nick: Well, if it weren't the trial period, he could be training up Caldari Battleships V or something.
03:18
< MyCatVerbs>
Or was it irssi?
03:18
<@McMartin>
Kind of a waste of your trial period.
03:18
<@McMartin>
I'm the one that uses irssi.
03:18
<@ToxicFrog>
Whereas ignoring EVE results in not playing enough to get the money needed to buy the next playing period.
03:18
< MyCatVerbs>
XChat! Thought so.
03:18
<@McMartin>
TF, who lives in Software Mirror Universe, finds irssi more unstable than XChat.
03:18
< MyCatVerbs>
(apologies for the pokin')
03:19
< MyCatVerbs>
Well, irssi *does* depend on Perl.
03:19
< MyCatVerbs>
Whereas Xchat depends on, uh, GTK. Huh.
03:19
<@McMartin>
Speaking of which
03:19
<@McMartin>
PyGTK is made of kittens
03:19
<@ToxicFrog>
How horrible~
03:19
< MyCatVerbs>
You mean kittens are murdered and packed up every time someone downloads it?
03:20
<@McMartin>
Probably, since it has to deal with GTK+ directly.
03:20
<@McMartin>
However, this also means that it emanates kitten nature into your own programs.
03:20
< MyCatVerbs>
Or, do you mean, every time someone builds a copy of PyGTK with all the dependencies, God creates another fluffy kitten?
03:20
<@McMartin>
I think it's more like kittens are sacrificed during development, and God then makes twice as many in recompense.
03:20
< MyCatVerbs>
'Cuz that'd be, like, wow. Man. Kittens.
03:21
< MyCatVerbs>
Ahhhh. On balence, whoot.
03:21 * McMartin got this working in about two hours, from ground zero, without Glade: http://www.stanford.edu/~mcmartin/if/blorple.png
03:21
<@Vornicus>
Wiggy.
03:22
< MyCatVerbs>
Wigiii!
03:22
<@McMartin>
Note the casual acceptance of exotic unicode in text fields.
03:22 * Vornicus goes to bed.
03:22
<@Vornicus>
...that's even wiggier.
03:22
< MyCatVerbs>
McMartin: UTF-8 is also made of kittens.
03:22 * McMartin likes how UTF-8 was literally designed on a cocktail napkin.
03:22
<@McMartin>
Oh, right.
03:22
<@McMartin>
I was to ask Vorn about that.
03:22
<@McMartin>
Hey Vorn.
03:23
<@ToxicFrog>
...it was? o.O
03:23
<@McMartin>
Is there a handy way to turn an object of type "unicode" into its byte representation?
03:23
< MyCatVerbs>
ToxicFrog: yep.
03:23
<@McMartin>
TF: Yes. At the last minute, because the Consortium's only alternative was so terrible.
03:24
<@McMartin>
(re: unicode conversion) preferably also vice versa.
03:24
< MyCatVerbs>
ToxicFrog: design goals: must be compatible with 7-bit ASCII. Must not ever have a '\000' appear anywhere. Must not ever have a '/' appear anywhere except in teh glyph for '/' itself.
03:25
< MyCatVerbs>
These three design goals make it *completely* transparent to basically the whole of the Unix and Plan 9 kernels. It breaks no syscalls nor filesystems.
03:25 * McMartin would, in particular, like to read() in a UTF-8 based file and get unicode strings out of it. However, he gets encoder errors when he tries.
03:25
<@McMartin>
http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
03:25 * McMartin has, however, basically only tried str() in unicde strings, and unicode() ing octet strings. Neither works.
03:26
< MyCatVerbs>
Anyway. Iono. The only guaranteed-fixed-size representations of Unicode glyphs are provided by UTF-32(LE|BE).
03:26
<@McMartin>
MCV: "unicode" is a core python type.
03:27
<@McMartin>
You Don't Worry About what it is internally, but I believe it is secretly UTF-8.
03:27
< MyCatVerbs>
Oh, wow. How does it represent them internally? o_O
03:27
< MyCatVerbs>
Ahh, ookies.
03:27
<@McMartin>
If you call "ord" on a unicode character you get an int.
03:28
< MyCatVerbs>
Now that is spiffy.
03:28
<@McMartin>
Of course, this is also what you get if you call it on an octet character.
03:28
<@McMartin>
"characters" in Python are strings of length 1, you see~
03:28
<@McMartin>
If you call chr on an value above 255, you get ValueError
03:28
<@McMartin>
If you call unichr, you get a unicode character.
03:28
<@McMartin>
So I can write my own UTF-8 translators, but it seems like that kind of thing should really already be there.
03:29 * ToxicFrog ponders, decides not to build "UTF-8" into (de|con)struct() as a data type just yet. Must finish the other types first.
03:32
<@McMartin>
It would seem I was wrong.
03:32
<@McMartin>
UTF-8 was not designed on a cocktail napkin.
03:32
<@McMartin>
It was designed on a placemat.
03:36 * McMartin reads the Python library ref.
03:36
<@McMartin>
Python uses either UCS2 or UCS4 internally, depending on how it is used.
03:37
<@McMartin>
And there is a UTF8 codec in there, the question is just how to make it use it.
03:37
<@McMartin>
Its encoding libraries look heavyweight.
03:37
<@McMartin>
It would probably be far easier to just hack up a quick encoder of my own.
03:39
<@ToxicFrog>
(as for pyGTK: anything that makes it particularly noteworthy compared to stock GTK, apart from lack of memory management wackiness?)
03:39
<@McMartin>
(dynamically checked argument typing so when you hose a callback you get sensible errors in console)
03:40
<@McMartin>
(You're using Python, so you have actual string libraries)
03:40
<@ToxicFrog>
(not bad. Don't recally if LuaGTK does the same.)s
03:40
<@McMartin>
(Kind of automatic, isn't it? Or does Lua not complain if the wrong number of arguments pops in?)
03:40
<@McMartin>
(Oh yeah, additional data annotations show up in PyGTK as transparent varargs, but I haven't had to deal with any of that for Blorple)
03:41
<@McMartin>
(also, dude, GUI hacking, from zero to basically functional callback and rendering in three hours and < 150 lines of code)
03:41
<@McMartin>
(I can't do that in C)
03:42
<@ToxicFrog>
(Lua doesn't complain if the wrong number shows up, at least in Lua, but from the C side you generally use luaL_checktype or luaL_opttype, which do more strict checking)
03:42
<@ToxicFrog>
Yeah, neither can I.
03:42
<@McMartin>
Well
03:42
<@McMartin>
I guess it isn't quite zero.
03:43
<@McMartin>
I have, after all, used Glade and fiddled with its autogenerated code.
03:43
<@McMartin>
But I never touched any of the complex widgets.
03:43
<@ToxicFrog>
*nods*
03:43
<@McMartin>
That's a rich text box and an auto-sortable-by-column list view in that app.
03:43
<@McMartin>
And, uh, a label, but that will be an Image widget soon enough.
03:43
<@McMartin>
I'm going to have to go one level below GTK to get that working the way I want, though, I think.
03:44
<@ToxicFrog>
Thing is, based on my fiddling with luaGTK, it has better debugging, garbage collection, etc, but fundamentally it's the same as normal GTK; all this stuff is stuff you get for free with the language, not dramatic reworkings of the API;
03:44
<@McMartin>
PyGTK also wraps GTK in an object structure.
03:44
<@McMartin>
Whether that counts as "for free with the language" is open to interpretation.
03:44
<@McMartin>
Also, you get to use python types for a lot of the GTK-specific constants.
03:44
<@ToxicFrog>
LuaGTK does not, but should.
03:45
<@Vornicus>
Lua also has like 3,000 different object models.
03:45
<@McMartin>
My next task for Blorple is to redirect HAX to properly read and write iFiction entries.
03:45
<@Vornicus>
zomg
03:45 ReivClass [~reaverta@IRCop.Nightstar.Net] has quit [Quit: I ATENT'T DEAD]
03:46
<@McMartin>
HAX being my Half-Assed XML lib, which turns simple XML documents into nested dictionaries.
03:47
<@ToxicFrog>
Vornicus: no, it has like 4.
03:47
<@McMartin>
Three of which are yours?~
03:47
<@ToxicFrog>
And all of them agree on the basic "you can call methods on objects" thing.
03:47
<@ToxicFrog>
Two. ??
03:48
<@ToxicFrog>
And one's by GPG and one's a worked example in the tutorials.
03:48
<@McMartin>
Hee
03:48
<@ToxicFrog>
Well, ok, three are mine if you take userdata-based OO as seperate from table-based OO.
03:48
<@ToxicFrog>
But all it really is is an upgrade so that metamethods Just Work.
03:49
<@McMartin>
>>> unicodedata.name(u'/')
03:49
<@McMartin>
'SOLIDUS'
03:50
<@ToxicFrog>
Nice.
03:50 * ToxicFrog ponders actually making a proper todo list rather than keeping it in his head
03:53
<@McMartin>
Though really, I should spend tonight doing WSIF bugfixes instead.
03:54
<@ToxicFrog>
The problem is that stuff keeps dropping off the todo list when I look away from it.
03:55 * Reiver pokes ToxicFrog
03:55
<@Reiver>
You got time to humor my Stupid Questions at all?
03:56
<@ToxicFrog>
I mean, right now it's: write, document and release libstruct; document and release libsurtr; write libss1edit, ss1map, ss1edit; write spellcast3; clean up and release a definitive version of OOlua.
03:56
<@ToxicFrog>
But I know there's at least two things I've forgotten on that list.
03:56
<@ToxicFrog>
Reiver: go ahead.
03:56
<@Reiver>
OK, I gave GParted up.
03:57
<@ToxicFrog>
...
03:57
<@ToxicFrog>
why?
03:57 Thaqui [~Thaqui@Nightstar-12000.jetstream.xtra.co.nz] has quit [Connection reset by peer]
03:57
<@Reiver>
Because I'm partitioning my hard drive on my main computer, now that my week of Homework(tm) is done?
03:57
<@ToxicFrog>
Yeah, the thing is that to me that sounds like exactly the right place to use gparted.
03:58
<@Reiver>
Oh.
03:58
<@Reiver>
s/gave/have/ ~
03:58 * Reiver coughs.
03:58
<@Reiver>
(Laptop keyboards suck, even moreso when you touchtype Dvorak~)
03:59
<@Reiver>
So um. Right.
03:59
<@ToxicFrog>
Oh.
03:59
<@ToxicFrog>
Ok.
03:59
<@Reiver>
I have a 10GB NTFS partition I wish to leave alone. This is well and good!
03:59
<@ToxicFrog>
So you are in gparted and looking at your drive.
03:59
<@Reiver>
Right.
03:59
<@Reiver>
My mistake, sorry. That was a hell of a typo~
03:59
<@Reiver>
I want to create a /boot partition, correct?
04:00
<@Reiver>
Does it actually need to be as the first partition on the drive, or is second slot still ok?
04:00
<@ToxicFrog>
Doesn't need to be the first unless you're worried about compatibility with (very) old BIOSes.
04:00
<@ToxicFrog>
I generally put it there out of habit, though.;
04:01
<@Reiver>
Well, the NTFS partition is already there, so I was wondering if it was worth the effort of trying to rearrange things~
04:02
<@ToxicFrog>
It's not terribly hard, but no, it's not necessary.
04:03
<@Reiver>
OK.
04:04
<@ToxicFrog>
Given that, I'd say: leave NTFS intact, 128 or 256MB /boot, extended partition in the rest of the drive, logical partition /, logical partition /home, logical partition swap
04:04
<@Reiver>
Make the whole rest of the drive a logical partition, you mean?
04:05
<@Reiver>
So my files partition, and linux partition, are both part of an extended partition?
04:06
<@ToxicFrog>
Yes.
04:07
<@Reiver>
Any particular reason for that, or 'don't use more partitions than you really have to'?
04:10
<@ToxicFrog>
Well, your limit is four primary partitions.
04:10
<@ToxicFrog>
So you could go /win, /boot, /, extended { /home, swap }
04:11
<@ToxicFrog>
The former gives you a free primary slot in case you need it, though.
04:11 * Reiver nods.
04:12
<@Reiver>
It doesn't actually make much difference, correct?
04:12
<@Reiver>
They're not any less stable or prone to corruption or nothin'?
04:13
<@ToxicFrog>
Nope.
04:13
< MyCatVerbs>
Logical partitions. You can keep adding those all day.
04:13
<@Reiver>
OK!
04:14
< MyCatVerbs>
And Linux is a *slut* about 'em, too. Will boot off /dev/hdc5 just as happily as /dev/hda1.
04:14 * Reiver ponders. Pokes at it.
04:14
<@Reiver>
How does one set a partition to be 'boot'?
04:14
< MyCatVerbs>
Oh, um, GRUB is sometimes a pain in the butt. But jah, Linux actually works fine with filesystems on arbitrary block devices.
04:15
< MyCatVerbs>
Well, it needs to have your root filesystem on it. Like, /sbin, /sin, /, /etc and, um /dev
04:16
< MyCatVerbs>
Aaaand GRUB or LILO (or whatever alternative bootloader you use) needs to be told where the kernel is and told to tell it which block device it should use as the filesystem.
04:16
<@ToxicFrog>
MyCatVerbs: no, this isn't at all the question he's asking.
04:16
<@ToxicFrog>
I think.
04:17
<@ToxicFrog>
Reiver: you're asking "how do I make it /boot"?
04:17
< MyCatVerbs>
I had a feeling it wasn't.
04:17
< MyCatVerbs>
Ohhh.
04:17
<@Reiver>
TF: Correct.
04:17
<@ToxicFrog>
When installing linux, select /boot as the mountpoint for that partition.
04:17
<@Reiver>
Aha.
04:17
<@Reiver>
But until then I just leave it appropriately formatted, and ignore it?
04:17
< MyCatVerbs>
Reiver: make it /boot in /etc/fstab. That is, mount it as /boot and it'll all work.
04:17
<@ToxicFrog>
It's not something intrinsic to the partition, although you can always label it as /boot when formatting it.
04:17
<@Reiver>
(I don't actually have Linux on the machine yet. It was being Difficult.)
04:17
<@ToxicFrog>
MyCatVerbs: generally, the installer writes /etc/fstab for you.
04:18
< MyCatVerbs>
Well, it needs to have a filesystem on it and it needs to be mounted in the appropriate place.
04:18 * Reiver nods.
04:18
<@ToxicFrog>
MyCatVerbs: and does the formatting.
04:18
< MyCatVerbs>
ToxicFrog: not in any of the fun distros. ;)
04:18
< MyCatVerbs>
ToxicFrog: not in any of the fun distros. ;)
04:18
<@ToxicFrog>
The only distro I've seen so far that didn't was Debian.
04:18
<@ToxicFrog>
Which can die in a fire.
04:18
<@ToxicFrog>
Err.
04:18
<@ToxicFrog>
Gentoo.
04:19
<@ToxicFrog>
Debian can also die in a fire, but for different reasons; the Debian installer kicked ass (with one exception).
04:19
< MyCatVerbs>
ToxicFrog: and jah, okay, I know, but if he's using a graphical installer like Ubuntu's then I'm afraid it'll all be limited to "push here and it'll work" so this conversation comes out irrelevant anyway.
04:19
< MyCatVerbs>
So we may as well just tell him what's going on behind the scenes instead anyway.
04:19
<@Reiver>
Whoops.
04:19 * Reiver fiddles.
04:20
<@Reiver>
I have: NTFS 10GB, FAT32 256MB, and created a new partition ext2.
04:20
<@ToxicFrog>
"press here and it'll work" is a bad idea when there's stuff you want to preserve.
04:20
<@ToxicFrog>
ext2, not ext3?
04:20
<@Reiver>
I'm assuming I shoulda made the last one - 456GB - a logical partition? It won't let me click 'new' now.
04:20
< MyCatVerbs>
ToxicFrog: ack, heretic. Gentoo is awesome.
04:21
< Doctor_Nick>
gentoo is fo ricerz
04:21
< MyCatVerbs>
...or at least, you'd think so if you had a SPARC machine to run and you'd seen the paucity of alternative options.
04:21
< MyCatVerbs>
Doctor_Nick: please stick a needle up your bum and die painfully.
04:21
< Doctor_Nick>
ubuntu is for cool cats 8)
04:22
< MyCatVerbs>
I reiterate my demand with respect to needles and your painful death.
04:22
<@ToxicFrog>
MyCatVerbs: if you consider having to memorize every single piece of hardware in your system, including the stuff built into the motherboard that isn't properly documented in the specs, "awesome".
04:22
< MyCatVerbs>
ToxicFrog: ...
04:23
<@ToxicFrog>
Because your options are "hand-configure the kernel and drivers", or "use autodetection program"
04:23
<@ToxicFrog>
And the autodetection program doesn't work.
04:23
< MyCatVerbs>
ToxicFrog: lspci? Durrr? And it's gotten better since then, anyway. You don't actually have to build your own kernel anyway, just use the generic one. Which does.
04:24
<@ToxicFrog>
This is even more heinous because the installer liveCD clearly and obviously autodetects everything when it boots.
04:24
< MyCatVerbs>
I can see why you might think that if you'd ever tried hotplug. Or, Hell, udev. That changes from week to week in every damn distro though.
04:24
< MyCatVerbs>
Hehehe, that's the cute part, yep! ^^
04:24
<@ToxicFrog>
So, while I like the core idea of Gentoo, I'll hold off until the installer team acquires a fucking clue.
04:24 * Reiver apologises, he's mostly just Pretty Much Horrible at partition-side of computering.
04:24
< MyCatVerbs>
Installer team? What installer team?
04:25
< MyCatVerbs>
They don't *have* an installer. They have a liveCD and an instruction manual.
04:25
<@ToxicFrog>
Reiver: err. So you now have three partitions?
04:25
<@ToxicFrog>
How much space do you have free?
04:25
<@ToxicFrog>
MyCatVerbs: well, they have a liveCD, so clearly they have someone who puts it together.
04:25
< MyCatVerbs>
Which work. Perfectly.
04:25
<@ToxicFrog>
Except for the bit where the manual tells you to use stuff that doesn't fucking work, yes.
04:26
< MyCatVerbs>
ToxicFrog: I'm pretty certain the liveCD is generated automatically from someone's disk install.
04:26
<@Reiver>
TF: I have three partitions, 0 space free.
04:26
<@ToxicFrog>
Reiver: you need space to create partitions in.
04:26
<@Reiver>
Oh.
04:26
<@ToxicFrog>
Partitions cannot be of length 0.
04:26
<@Reiver>
So I make the primary partition
04:26
< MyCatVerbs>
And, um, no, it doesn't. I've tried Gentoo installs on three different machines at points spaced apart by a varying number of years and no, I haven't seen *any* of the crap you're complaining about.
04:26
<@ToxicFrog>
Just drag one side of the partition to resize it.
04:27
<@Reiver>
And then make logical partitions that extend off it?
04:27
<@ToxicFrog>
If by primary you mean extended, yes.
04:27
<@ToxicFrog>
A primary partition == one of the four top-level partitions
04:27
<@ToxicFrog>
Extended partition == a container for logical partitions, uses up a primary slot
04:28
<@Reiver>
Ahhh.
04:28 Derakon [~Derakon@Nightstar-12737.sea2.cablespeed.com] has joined #code
04:28 mode/#code [+o Derakon] by ChanServ
04:28
<@Reiver>
So I want my 3rd partition to be an extended partition?
04:28 * Reiver changes, then. >.>
04:29
<@Reiver>
(Idly, why would you leave free space /preceding/ a partition?)
04:29 * Derakon ponders his function signature.
04:29
<@Derakon>
function addHookOnDeath(victim, mourner, toCall)
04:29
< Doctor_Nick>
hy are you doing these partitions, reiver?
04:29
< Doctor_Nick>
theres supposed to be a w infront of there
04:30
<@ToxicFrog>
Doctor_Nick: because he's making it a dual-boot winXP/Ubuntu system.
04:30
<@ToxicFrog>
And the Ubuntu install-time partitioner is both harder to use, and weaker, than gparted.
04:30
<@Reiver>
It was also insisting my SATA drive didn't exist.
04:30
<@ToxicFrog>
Derakon: there's a function like that in SupComm
04:31
<@Derakon>
I'm not surprised.
04:31
<@Derakon>
I was more questioning my tastes in argument names.
04:34
< MyCatVerbs>
Derakon: wouldn't it be easier to have a hook on death function that specifies *only* the victim or the mourner, so you don't have to register twenty million hooks to cope with a requrement like "trigger this function when *anybody* dies"
04:34
<@Reiver>
How big a /swap file will Linux want?
04:34
< MyCatVerbs>
Derakon: and then pass the mourder as an argument to that function so that it knows whether to take action?
04:34
<@ToxicFrog>
Reiver: well, for one thing, it's not /swap, it's just swap - it has no mount point, it jacks directly into the memory management subsystem.
04:35
<@Derakon>
That would be a separate hook, MCV.
04:35
<@Reiver>
Well, OK.
04:35
< MyCatVerbs>
Reiver: Depends on the speed of your hard disk. 256 megs is usually good for pedestrian consumer-grade 7400 rpm bumf.
04:35
<@Derakon>
I don't want my objects to have to have in their callback "Which object died?"
04:35
< MyCatVerbs>
Faster disks -> allocate more
04:35
<@Reiver>
Merely 256? That's rather small.
04:35 * Derakon notes that dead objects can include, e.g., bullets.
04:35 * MyCatVerbs nods.
04:35 * Reiver does note he has 2GB memory, if that helps at all~
04:35
<@ToxicFrog>
MyCatVerbs: err. How does disk speed relate to swap size?
04:36
< MyCatVerbs>
ToxicFrog: the faster the disks, the less you'll mind if it *does* start to touch the swapfile.
04:36
<@ToxicFrog>
Personally, I allocate 1GB, but my Linux systems come in only two flavours: <1GB of memory, and 4GB
04:36
<@ToxicFrog>
MyCatVerbs: yes, and?
04:36
<@Reiver>
TF: Heh. Sooo... a gig of swap, then?
04:36 * Reiver ponders.
04:36
< MyCatVerbs>
Yesm that's precisely it.
04:36
<@Reiver>
I have 455.72 GB free.
04:37
< MyCatVerbs>
You never want the machine to touch the swapfile anyway.
04:37
<@ToxicFrog>
Reiver: can't hurt, but at 2GB memory already, that's more than my laptop has *with* swap.
04:37
<@ToxicFrog>
MyCatVerbs: yes, but swap size has no effect whatsoever on that.
04:37
< MyCatVerbs>
256megs just stops the kernel from having to pull an OOM killer.
04:37
<@ToxicFrog>
More swap means that once it starts hitting swap, it has more to use.
04:37
<@Reiver>
I wonder if I can rig it so my Files partition shows up as 450GB, and have Linux shoved on the other bit?
04:37
<@ToxicFrog>
It doesn't mean it hits swap sooner.
04:37
<@ToxicFrog>
Reiver: "shoved on the other bit"?
04:37
< Doctor_Nick>
FUCK
04:37
< MyCatVerbs>
ToxicFrog: durr? But less swap means it'll just nuke the process instead of sitting there wasting wallclock time.
04:37
< Doctor_Nick>
WE HIT THE WRONG POS
04:38
< Doctor_Nick>
AAAAAAAAAAAAAAAAAAAAA
04:38
<@Reiver>
455.72 GB total remaining, TF.
04:38
<@ToxicFrog>
MyCatVerbs: well, it means that malloc() will return NULL.
04:38
<@ToxicFrog>
Personally, I would rather take a performance hit than have one of my programs, with no way to clearly predict which one, blow up.
04:38
<@Reiver>
I was wondering if I could cram Linux into the correct sized space so I had an 'exactly' 450GB Files partition~
04:39
<@ToxicFrog>
Reiver: aah. You want to know if Linux will fit in 5.72GB.
04:39
< MyCatVerbs>
ToxicFrog: which is precisely what you want. You're hardly going to sit there all day and wait for it. 'Specially since with 2G already in the box it's probably a runaway process anyway.
04:39
<@ToxicFrog>
To which the answer is yes.
04:39
<@ToxicFrog>
Although I like to have at least 10GB available, myself.
04:39
<@Reiver>
TF: Am I likely to use the 10GB?
04:40
< MyCatVerbs>
Reiver: Slackware, for example, which comes with KDE and a full LaTeX environment, costs no more than 3GB.
04:40
<@Reiver>
Also that is including swapfile.
04:40
< MyCatVerbs>
No. You will use ~3GB. And maybe about 7GB if you attempt to compile something huge.
04:40
<@ToxicFrog>
MyCatVerbs: yes, but I'm not going to be "waiting all day". I'm going to be waiting a minute, tops, while I find out what's using lots of memory and then kill it.
04:40
<@ToxicFrog>
And I kill it in a way that gives it a chance to actually clean up after itself.
04:40
< MyCatVerbs>
-BUS works pretty well
04:41
<@Reiver>
So... 5GB Linux, 512MB swap a safe enough proposition?
04:41
< MyCatVerbs>
You can always just steal the data directly from the core dump that way. =D
04:41
<@ToxicFrog>
I do not want my eighteen-page final project to vanish into the ether because I forgot to save and the MMS decided to kill OO instead of Opera.
04:41
<@Reiver>
(Given I have, as TF points out, already more RAM than his machines RAM+Swap...)
04:41
<@ToxicFrog>
Reiver: tortured though his logic is, MCV does have a point in that 2GB is probably plenty without swap.
04:41
< MyCatVerbs>
a) OO autosaves. b) the MMS won't do that.
04:41 * Reiver nods to TF.
04:42
<@ToxicFrog>
MyCatVerbs: what it comes down to is that I prefer a short-lived performance hit to programs crashing.
04:42
<@Reiver>
So I give it one 'just so it has one', or throw the need for a swap out completely?
04:42
<@ToxicFrog>
If you prefer your programs to just go "pop" when you run low on memory, fine, but not everything autosaves.
04:43
<@ToxicFrog>
Reiver: honestly, I'd throw it out completely. If it transpires later that you need it, you can use a swapfile until it's convenient to add a partition.
04:43
< MyCatVerbs>
ToxicFrog: what does it even matter? How often do you run out of memory anyway?
04:43 * Reiver nods.
04:43 * Reiver sets up a 5.72-or-thereabouts Linux partition, then.
04:44
< MyCatVerbs>
ToxicFrog: I'm bumming OpenBSD on a machine with a grand total of a quarter gig and the only time this box *ever* touched it's swap with this OS on it is while I was compiling the goddamn jdk. Two *gigs*? He might as well allocate *no* swap partition.
04:44
< MyCatVerbs>
*its
04:44
<@Reiver>
Oh, and idly.
04:44
<@ToxicFrog>
MyCatVerbs: well, since this is a 512MB box and I typically run Opera, OO, NX, 2-3 PDFs, a djvu, and xmms on it...
04:44
<@ToxicFrog>
constantly.
04:44
<@ToxicFrog>
I like having lots of swap.
04:44
<@Reiver>
Is there any reason or logic to leaving a space preceeding, or following, a partition?
04:44
<@ToxicFrog>
Reiver: nyet.
04:44
<@Reiver>
OK!
04:44
<@ToxicFrog>
Unless you want to hide something there.
04:45
<@ToxicFrog>
MyCatVerbs: as for "he might as well allocate no swap partition", I seem to recall that being the conclusion we just arrived at.
04:45
< MyCatVerbs>
ToxicFrog: yeuuuuch a fi. Abiword!? Or LaTeX or something, man. PDF comes to sweet bumfuck nuthin' unless you're crazy enough to use the Abode viewer and xmms is inconsequential.
04:45
<@ToxicFrog>
MyCatVerbs: three 400+ page PDFs add up even in xpdf.
04:46
< MyCatVerbs>
Holy Hell.
04:46
<@ToxicFrog>
And Opera with 250 tabs grabs a nontrivial amount of memory.
04:46 * MyCatVerbs blinks.
04:46
< MyCatVerbs>
Why would you bother with so many tabs?
04:47
<@ToxicFrog>
And then there's yakuake, which contains within itself rarely fewer than four xterms with thousands or, some days, tens of thousands of lines of backscroll.
04:47
<@Vornicus>
Because he is TF.
04:47
<@Derakon>
Because that's how he browses, MCV.
04:47
<@ToxicFrog>
Bookmarks are for the weak.
04:47
<@Vornicus>
And he is a psychopath.
04:47
<@Derakon>
TF, how many channels are you in right now?
04:47
< MyCatVerbs>
Shhhheit. I get bored just opening that many.
04:47
<@ToxicFrog>
27 spanning two networks.
04:47
<@Derakon>
Well, it's not like he said "Hm, I think I'll open 250 tabs!"
04:47
<@Derakon>
Very nice.
04:47
<@ToxicFrog>
I've been trying to cut back recently.
04:47
<@Vornicus>
I have 18 today, on two networks.
04:48
<@Derakon>
I have 2.
04:48
<@ToxicFrog>
(for a while I was at 40+ spanning four networks)
04:48 * MyCatVerbs has four, spanning three networks.
04:49
< MyCatVerbs>
Channels open, I mean.
04:50
<@Reiver>
OK!
04:50
<@ToxicFrog>
But, yeah, WRT tabs, it's because if I find something interesting I just leave it open until it isn't interesting anymore.
04:50
<@Reiver>
Partition 1: NTFS, 9.77GB.
04:50
<@ToxicFrog>
A single forum often accounts for 10-15 tabs, one for the forum itself and the rest for threadwatching. And then there's news and webcomic sites, reference manuals, random stuff...
04:50
<@Reiver>
Partition 2: FAT32, 258.86MB.
04:51
<@Reiver>
Partition #3: Extended(#1:450GB, ext3. #2:5.74GB, ext3.)
04:51
< Doctor_Nick>
guys
04:52
<@Reiver>
This pass muster?
04:52
< Doctor_Nick>
peanut butter proves that evolution didnt happen
04:52
<@Vornicus>
...peanut butter.
04:52
<@Reiver>
(It seemed vaugely odd I type in '256' and it gave me '258', but I'm assuming the partitioner knew what it was doing.)
04:53
< Doctor_Nick>
its probably because of block size
04:53
< MyCatVerbs>
Reiver: it has to align to some wierd boundaries, so it hops to the nearest legal number.
04:53
<@ToxicFrog>
(there are restrictions on where partitions can start/end; it picks the closest size that satisfies these constraints and gives you at least as much space as you asked for)
04:53
< Doctor_Nick>
256+whatever was left in the last block
04:53
<@Reiver>
Aha.
04:53
<@Reiver>
No harm done then!
04:53
< Doctor_Nick>
Vornicus: yah
04:53
< Doctor_Nick>
http://youtube.com/watch?v=FZFG5PKw504
04:54
<@Reiver>
Nick: I am awaiting your explanation with boundless anticipation.
04:54
< Doctor_Nick>
this video is hilarious
04:54
<@Reiver>
And I'd rather it in text rather than video, if you don't mind.
04:54
<@Reiver>
Given this laptop chokes on youtube~
04:54
< Doctor_Nick>
basically, creationists are retards
04:54
< Doctor_Nick>
and take the misunderstanding of "energy + matter = life" to truly stupendous proportions
04:55
<@Reiver>
Uh...huh.
04:55
< Doctor_Nick>
basically, they take a jar of peanut butter, and say "this has been subjected to lots of energy"
04:55
< MyCatVerbs>
Doctor_Nick: basically? In case you hadn't noticed, it's actually the pivotal point of the whole antievolution moment.
04:55
< Doctor_Nick>
"Sometimes, when i open a jar of peanut butter, i will get new life"
04:55
< Doctor_Nick>
"OH SHIT, THERE ISNT A ZEBRA IN HERE, DARWIN WAS FULL OF SHIT"
04:56
< MyCatVerbs>
Doctor_Nick: except that the people on talkorigins have to pretend to be polite to them, so they call it the "argument from incredulity" instead which sounds much nicer but actually means exactly the same thing.
04:56
<@Reiver>
-.^
04:56
<@Reiver>
Impressive.
04:56
< Doctor_Nick>
i cant make that face
04:57
<@Reiver>
TF: Have I set up my drive right, above? Forgive me, I was always taught it's better to sound like an idiot than it is to act like one~
04:59
<@ToxicFrog>
I would have put / before /home, but that's habit, it won't affect anything.
04:59
<@ToxicFrog>
So, yeah, drive is fine.
05:07
<@Reiver>
Danke. :)
05:07 * Reiver hits 'go'.
05:08
<@ToxicFrog>
SYNTAX ERROR
05:08
<@ToxicFrog>
SELF-DESTRUCT SEQUENCE INITIATED
05:08
<@ToxicFrog>
KILL ALL HUMANS
05:08
<@Reiver>
05:09 MyCatVerbs [~mycatownz@Nightstar-13709.lurkingfox.co.uk] has quit [Quit: BRB, poking my config]
05:10
<@Reiver>
...It's done?
05:10
<@Reiver>
Partitioning a 450GB EXT3 drive took 45 seconds?
05:10 * Reiver is almost nervous.
05:11
<@ToxicFrog>
Partitioning is a very fast operation.
05:11
<@ToxicFrog>
Basically, all it has to do is update the partition table.
05:11 MyCatVerbs [~mycatownz@Nightstar-13709.lurkingfox.co.uk] has joined #code
05:11
<@ToxicFrog>
The time is proportionate to the number of partitions you're adjusting, not their sizes; it's moving, resizing, or creating filesystems that's the slow part.
05:11
<@Reiver>
Oh, right.
05:11
<@Reiver>
Not the same as formatting?
05:11
<@ToxicFrog>
Quite.
05:11
<@Reiver>
Hm.
05:12
<@Reiver>
So it's partitioned the spaces. Do I have to format them now?
05:12
<@ToxicFrog>
You can if you like, or leave it up to the installer.
05:12
<@Reiver>
Hm
05:12
<@Reiver>
Will the ext2 windows drivers handle formatting an ext3 partition correctly, though?
05:13
<@ToxicFrog>
...the ext2 windows drivers have no formatting capability at all.
05:13
<@ToxicFrog>
They can read and write, but not create new filesystems.
05:13
<@Reiver>
OK.
05:14
<@Reiver>
Then I need to format the partitions before I push on, then.
05:14
<@ToxicFrog>
For that matter, formatting partitions is generally not the driver's job anyways.
05:14
<@Reiver>
True.
05:14 Chalcedon [Chalceon@Nightstar-7532.dialup.ihug.co.nz] has joined #code
05:14 mode/#code [+o Chalcedon] by ChanServ
05:14
<@ToxicFrog>
You can either format from gparted, or let the ubuntu installer do it.
05:14
<@ToxicFrog>
Chalcy!
05:14 * ToxicFrog stoatburgers
05:15
<@Reiver>
GParted, then
05:15
<@Chalcedon>
TF!
05:15 * Chalcedon waves
05:15
<@Reiver>
Because I can't be bothered installing Ubuntu just at the moment - I want to get my Windows install up and fully functional.
05:15
<@Reiver>
/Then/ I'll arse about with my secondary OS. >.>
05:15
<@Chalcedon>
:s
05:16
<@Chalcedon>
that reminds me. I need to finish backing up my files so that I can do my reformat
05:16 * Chalcedon sigh
05:16 * Reiver hug Chalcy
05:16
<@Derakon>
Okay, TF, I've dug through PIL a bit and can't quite figure this out. I want to pass to my addHook function a function to call when the hook gets triggered, and that function is only defined within the scope of a player object.
05:17
<@Derakon>
This is what I'm trying; of course it doesn't work: http://pastie.caboo.se/50479
05:17 * Chalcedon hug Reiver
05:17 * Reiver also ponders idly if he still has that Norton Ghost floppy sitting around; ghosting the completed install of Windows+Opera+Patches could be vaugely useful in the event of a nuke'n'pave.
05:17
<@Derakon>
I've also tried objects[mourner].func(), which doesn't work either.
05:18
<@Derakon>
Because "func" isn't a field in the mourner table.
05:19
<@ToxicFrog>
...yeah. Aren't you passing in the function, not the name of the function?
05:19
<@Derakon>
Yes.
05:19
<@ToxicFrog>
Yeah. So call it.
05:19
<@ToxicFrog>
Don't use it as a key, call it directly.
05:19
<@Derakon>
objects[mourner]:func(): attempt to call method 'func' (a nil value)
05:19
<@ToxicFrog>
Nononono.
05:19 MyCatVerbs is now known as MyCatSleeps
05:20
<@ToxicFrog>
'func', at that point in the code, is the function itself.
05:20
<@ToxicFrog>
Not the name of the function.
05:20
<@ToxicFrog>
The function.
05:20
<@ToxicFrog>
func(objects[mourner])
05:20
<@Derakon>
...oh, duh.
05:20
<@Derakon>
Yay, it works!
05:20
<@Derakon>
Thanks, TF.
05:21
<@ToxicFrog>
(this also seems like kind of an odd way to handle death-hooks, but whatever works)
05:21
<@Derakon>
I was so focused on putting the object that owns the function in front of the function name that I forgot about the other way that kind of thing works.
05:21
<@Reiver>
Formatting GO
05:21
<@Derakon>
What in particular is odd about it?
05:22
<@ToxicFrog>
Well, there's the whole attaching onDeath callbacks to victim/mourner pairs, which will make generic callbacks kind of tricky. Although I suppose you can always add something to the ctor that hooks with self as both victim and mourner.
05:22
<@ToxicFrog>
Mainly I'm wondering why you're indexing by names rather than objects.
05:23
<@Derakon>
...I'll get back to you on that one, okay? ¬.¬
05:23
<@Derakon>
I'm not certain what you mean by "generic callbacks" - why would an object need a callback when it itself dies?
05:24
<@Derakon>
I'll note that object death is always self-initiated.
05:24
<@ToxicFrog>
Kill off subunits, fire death-weapons, transform into a stage II boss, fire extraction boosters, increment enemy score...
05:26
<@ToxicFrog>
(there's a thought. SFC as an RTT game, a la Syndicate Wars. Or even as TBT a la Silent Storm.)
05:26
<@ToxicFrog>
(Mmm, Silent Storm.)
05:26
<@ToxicFrog>
(fuck, how many remakes do I have in my head now?)
05:26
<@Derakon>
The way death currently works is the object says "Hey, I'm dead. Yo, main systems! I'm dead!" And then the main systems say "Okay, got it. I'll nil you at the beginning of the next frame."
05:26
<@Derakon>
Since the object is initiating the death sequence, it can handle any side effects that it needs.
05:26
<@Reiver>
I want to have Syndicate rewritten.
05:26 * ToxicFrog nods
05:27
<@Reiver>
Not SWars, the origional.
05:27
<@Reiver>
...Possibly with a few upgrades, but the 'energy' thing of SWars annoyed me a little, so.
05:27
<@ToxicFrog>
But, yeah, the way I would handle this is to key death-hooks by the actual object, not the name.
05:28 * Derakon nods.
05:28
<@Derakon>
I'm keying a lot of things by name right now, so I keyed death hooks by name without really questioning the overall system.
05:29
<@Derakon>
I dunno; for some reason I have a mental hangup over using entire objects as keys. It seems like it should be inefficient, even if I can't come up with any reasons why that would be the case.
05:29
<@ToxicFrog>
And then you go: (hooks[deadite] or {})[mourner](mourner, deadite)
05:29
<@ToxicFrog>
Wait, no, that won't work.
05:29
<@Vornicus>
When did it go from "victim" to "deadite"?
05:29
<@Derakon>
Yie.
05:29
<@Derakon>
Given that other people will be reading this code, I'm going to try to avoid being excessively clever. ¬.¬
05:29
<@ToxicFrog>
((hooks[deadite] or {})[mourner] or function() end)(mourner, deadite)
05:29
<@Derakon>
A deadle is an object that is dead, but not yet nil.
05:30
<@ToxicFrog>
There, that works.
05:30
<@Derakon>
A victim is someone being watched by a mourner, for a death hook.
05:30
<@Derakon>
Mourners get notified of their victims' deaths just before the deadle gets nil'd.
05:30
<@Reiver>
-.^
05:31 * ToxicFrog loves the or-operator in unhealthy and confusing ways~
05:31
<@Derakon>
I noticed.
05:32 Thaqui [~Thaqui@Nightstar-12000.jetstream.xtra.co.nz] has joined #code
05:32 mode/#code [+o Thaqui] by ChanServ
05:33
<@ToxicFrog>
This may be because I can use it the same way as in bash.
05:33
<@ToxicFrog>
Which I can't do in C-oids.
05:33
<@ToxicFrog>
Well, similar. Not quite the same.
05:34 * ToxicFrog ponders
05:34
<@ToxicFrog>
{}[key] isn't legal, but ({})[key] is.
05:38
<@ToxicFrog>
Upon further consideration, the way I'd do it is simply have each object have a addHookOnDeath() method.
05:39
<@ToxicFrog>
When it dies, it goes through all its hooks and calls them.
05:39
<@ToxicFrog>
No need to track mourner because function closures.
05:41
<@Derakon>
I suppose I could add that to the SpaceObject class definition.
05:41
<@Derakon>
(Other object types are unlikely to need to know about each others' lives)
05:42
<@ToxicFrog>
woo, AI assignment marks back
05:42
<@ToxicFrog>
70/70, -5 for lateness.
05:43
<@Vornicus>
woot
06:06
< Doctor_Nick>
woop woop
06:09
<@Reiver>
...So I just set the ext2 Filesystem setting to give me access to my 450GB partition.
06:09
<@Reiver>
Why is it registering as having 27GB used?
06:15 * Reiver is suddenly made wary of shifting his Desktop and Documents folders over just yet, lest he's done something wrong.
06:15
<@Reiver>
(Also, congrats TF!)
06:16 Vornicus is now known as Vornicus-Latens
06:17 Chalcedon [Chalceon@Nightstar-7532.dialup.ihug.co.nz] has quit [Quit: time to cook dinner]
06:26 * Reiver reboots the machine to see if that fixes it.
06:33
<@ToxicFrog>
...even if it's ext3, I don't think the journal takes up that much space.
06:33 * ToxicFrog checks something
06:33
<@ToxicFrog>
Aha.
06:33
<@ToxicFrog>
I bet that's reserved blocks.
06:33
<@ToxicFrog>
By default, 5% of the drive is reserved for use by root.
06:33
<@ToxicFrog>
This ensures some working room even if the drive fills up and stuff goes horribly wrong.
06:34
<@ToxicFrog>
For large drives, 5% can be a bit much.
06:34 * Reiver eyes.
06:34
<@Reiver>
Is there a way to fix it?
06:36
<@ToxicFrog>
tune2fs -m <new percentage> /dev/<devicename>
06:36
<@Reiver>
Is this able to be done in Windows?
06:39
<@ToxicFrog>
Not bloody likely.
06:39
<@ToxicFrog>
But I'll check.
06:39
<@Reiver>
Great.
06:39
<@ToxicFrog>
Doesn't look like it.
06:39
<@Reiver>
So before I can set up my XP machine properly, I need to install and learn how to use Linux. Ah, irony~
06:39
<@ToxicFrog>
You can adjust this at any time, I note.
06:39
<@ToxicFrog>
So unless you need that extra space *now*....
06:40
<@Reiver>
If I don't do it now I will forget about it, and generally people get annoyed when I whine about something they already explained a month previous~
07:00 * Reiver concludes that the CD-check in the fedora installation was perhaps not the brightest thing to perform.
07:01 Derakon is now known as Derakon[AFK]
08:00 MahalWork is now known as Mahal
08:37 ReivClass [~reaverta@IRCop.Nightstar.Net] has joined #Code
09:54 Reiver [~reiver@Nightstar-1733.ubs-dsl.xnet.co.nz] has quit [Quit: Obelix is now up and running. Dogmatix is thus no longer needed. Woo!]
09:56 ReivClass is now known as Reiver
10:06 Serah [~Z@87.72.36.ns-26407] has quit [Ping Timeout]
10:08 Reiver [~reaverta@IRCop.Nightstar.Net] has quit [Ping Timeout]
10:14 Reiver [~reaverta@IRCop.Nightstar.Net] has joined #Code
10:14 mode/#code [+o Reiver] by ChanServ
11:36 Reiver [~reaverta@IRCop.Nightstar.Net] has quit [Quit: I ATENT'T DEAD]
11:38 Reiver [~reaverta@IRCop.Nightstar.Net] has joined #Code
11:38 mode/#code [+o Reiver] by ChanServ
14:10 Thaqui [~Thaqui@Nightstar-12000.jetstream.xtra.co.nz] has left #code [Leaving]
14:16 Mahal is now known as MahalBEDD
15:06 MyCatSleeps [~mycatownz@Nightstar-13709.lurkingfox.co.uk] has quit [Quit: Shutting down for the weekend.]
15:18 Vornicus-Latens is now known as Vornicus
16:15 Reiver is now known as ReivZzz
19:34 KarmaBot [~karma.bot@Nightstar-7049.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
19:34 AnnoDomini [~farkoff@Nightstar-7049.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
19:35 KarmaBot [~karma.bot@Nightstar-28930.neoplus.adsl.tpnet.pl] has joined #Code
19:36
< KarmaBot>
KarmaBot v1.19. online and ready. Type "!help commands" for command list.
19:37
< Doctor_Nick>
!roll 1d6
19:37
< KarmaBot>
[Doctor_Nick] rolled 1d6: (6) = 6.
19:37
< Doctor_Nick>
oh no
19:37 * Doctor_Nick dies
19:38 AnnoDomini [~farkoff@Nightstar-28930.neoplus.adsl.tpnet.pl] has joined #Code
19:38 mode/#code [+o AnnoDomini] by ChanServ
19:38
<@jerith>
!roll 20
19:38
< KarmaBot>
[jerith] 20 = 20.
19:38
<@jerith>
!roll 20d1
19:38
< KarmaBot>
[jerith] rolled 20d1: ((1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1)) = 20.
19:39
<@jerith>
That makes sense...
19:39
<@AnnoDomini>
:P
19:40
< Doctor_Nick>
!roll 20d0
19:40
< KarmaBot>
No comprende, por favor. (Individual Expression Error)
19:40
< Doctor_Nick>
!roll 1/0
19:40
< KarmaBot>
[Doctor_Nick] 1/0 = 0.
19:40
< Doctor_Nick>
hey >:(
19:40
<@jerith>
Integer division?
19:43
<@AnnoDomini>
Hey, I didn't write the $calc() function.
19:43
<@AnnoDomini>
I just use it.
19:44
< Doctor_Nick>
how do you roll a mobius strip anyway
19:44
< Doctor_Nick>
!roll 1d58
19:44
< KarmaBot>
[Doctor_Nick] rolled 1d58: (11) = 11.
19:44
<@AnnoDomini>
You are not authorized to know that.
19:45
<@EvilDarkLord>
!8ball But am I?
19:45
< KarmaBot>
* It is certain.
20:08 Derakon[AFK] [~Derakon@Nightstar-12737.sea2.cablespeed.com] has quit [Connection reset by peer]
20:09 Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code
20:14 AnnoDomini [~farkoff@Nightstar-28930.neoplus.adsl.tpnet.pl] has quit [Quit: Hm. Methinks I need to swap OS's.]
20:17 AnnoDomini [~farkoff@Nightstar-28930.neoplus.adsl.tpnet.pl] has joined #Code
20:17 mode/#code [+o AnnoDomini] by ChanServ
20:26 AnnoDomini [~farkoff@Nightstar-28930.neoplus.adsl.tpnet.pl] has quit [Quit: Hm. I should probably get back to a sane OS now.]
20:29 AnnoDomini [~farkoff@Nightstar-28930.neoplus.adsl.tpnet.pl] has joined #Code
20:29 mode/#code [+o AnnoDomini] by ChanServ
22:48 MahalBEDD is now known as Mahal
23:57 Thaqui [~Thaqui@Nightstar-12000.jetstream.xtra.co.nz] has joined #code
23:57 mode/#code [+o Thaqui] by ChanServ
--- Log closed Sat Mar 31 00:00:59 2007
code logs -> 2007 -> Fri, 30 Mar 2007< code.20070329.log - code.20070331.log >