code logs -> 2007 -> Thu, 11 Jan 2007< code.20070110.log - code.20070112.log >
--- Log opened Thu Jan 11 00:00:25 2007
00:01
<@ToxicFrog>
A drop-down shell.
00:01
<@ToxicFrog>
That is to say, it's a Quake console for your desktop, containing the bash shell.
00:01
< Vornicus>
it acts like the Quake console.
00:01
<@ToxicFrog>
(or whatever your login shell is)
00:01
< MyCatVerbs>
Niiiice.
00:02
<@ToxicFrog>
It's tabbed, too, so you can spawn as many shells as you need.
00:02
<@ToxicFrog>
And it's goddamn addictive.
00:03 * MyCatVerbs nods.
00:03
<@ToxicFrog>
As in I am seriously considering porting it to windows so that I can have it on all of my machines.
00:03 * MyCatVerbs installs it.
00:03
<@ToxicFrog>
(it expects KDE, but will also work in Gnome and probably in other desktop environments as well)
00:04
< MyCatVerbs>
Errr, hrmn. Seems to have b0rken in Fluxbox.
00:04
<@ToxicFrog>
aaaaaaaaaaaaaargh
00:04 * ToxicFrog kills Thunderbird IN THE FACE
00:05
< MyCatVerbs>
Heehee.
00:05
< MyCatVerbs>
It's beautiful, isn't it?
00:05
<@ToxicFrog>
No, it's goddamn annoying.
00:05
<@ToxicFrog>
I may switch back to Opera mail and see if it's improved since 8.x.
00:06
<@ToxicFrog>
Or back to Sylpheed, for that matter.
00:06 * Vornicus ponders a video game that gets content from Google Earth.
00:06
< MyCatVerbs>
ToxicFrog: or Seamonkey or Iceweasel!
00:07
<@ToxicFrog>
It has now - at random, as far as I can tell - gone insane WRT: certificates.
00:07
<@ToxicFrog>
That is to say, I can send mail *once*.
00:07
<@ToxicFrog>
The second time, it sees that the certificate offered by the SMTP server has the same serial number as the one it has saved, since they're the SAME CERTIFICATE, freaks out, and refuses to connect.
00:08
< Vornicus>
...insanity.
00:11
<@ToxicFrog>
And I can't even delete the certificate from TB's certificate list and reacquire it, because it DOESN'T SHOW UP IN THE LIST.
00:20 Derakon[AFK] is now known as Derakon
00:25 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout]
00:28
<@ToxicFrog>
And done.
00:28
<@ToxicFrog>
My request to the TA to let me use OOLua instead of C++ or Java in our AI class has been submitted.
00:29
<@McMartin>
Hee
00:30
<@ToxicFrog>
(I talked to the prof, and he said "as long as it's not missing any important features, you're reasonably experienced in it, and the TA agrees, I have no problem. So go talk to the TA already.")
00:37 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
00:41
< MyCatVerbs>
ToxicFrog: eh? What's the TA got to do with it?
00:41
< MyCatVerbs>
(Java/C++ in an AI class, what? Isn't that what LISP and company were invented for, fer chrissake!?)
00:43
<@ToxicFrog>
The TA does the marking, and thus needs to be able to read the language your code is written in.
00:43
<@ToxicFrog>
And this is "intro to intelligent systems"; they don't drop Lispoids and the more I parts of AI on you until the sequel.
00:48
< MyCatVerbs>
I see.
00:49
< MyCatVerbs>
I thought the point was for the TAs to mark your programs on whether they give the right results under variable input, not on the source itself. :/
00:51
<@McMartin>
I always spot checked code as a TA.
00:51
<@McMartin>
To ensure people didn't try to do things like precompute based on expected input and the like, and also to see if they actually understood what they were doing.
00:52
< MyCatVerbs>
Well, hardcoded results, yeah...
00:52
<@McMartin>
Also to ensure that they actually understood what they were doing.
00:53
<@McMartin>
Though my second time TAing the class I just had them submit a brief essay on the subject along with the code.
00:53
<@McMartin>
Parsing being one of the things that you can do without actually understanding the principles.
00:53 * McMartin also casually totally rewrites half the graphics engine in UQM
00:53
< MyCatVerbs>
...how?
00:54
<@McMartin>
Well, not parsing
00:54
<@McMartin>
But dataflow you can kind of half-ass.
00:54
<@McMartin>
So you require a, er, complete ass by making them show the fact lattice or whatnot
00:54
< MyCatVerbs>
If one didn't understand all the theory behind lex and yacc, I couldn't see how one could possibly come up with a solution that didn't suck ass.
00:55
<@McMartin>
It's possible to suck ass and still produce a result that gives right answers.
00:55
<@McMartin>
Especially for something like regexps or tree building.
00:55
< MyCatVerbs>
They'd be lucky to make something that worked outside of special edge cases, rather than something that only gets brittle on edge cases.
00:55
<@McMartin>
This isn't "write yacc" as a project.
00:55
<@McMartin>
It would be more "Use yacc to accept this language"
00:56
<@McMartin>
"and represent it in an IR, and then do other stuff to it"
00:56
<@McMartin>
So I have to, for instance, check their class structures to ensure their IR is not worthless, etc.
00:57
< Vornicus>
IR?
00:57
<@McMartin>
Also, for things like "list the points where each variable dies in these routines" I'm not going to use routines so big that them using an O(n^3) algorithm will work.
00:57
<@McMartin>
Intermediate Representation
00:57
< Vornicus>
aha
00:57
< MyCatVerbs>
Hmmm? Oh, I'm not suggesting that they need to understand the theory behind yacc for the purpose of writing it, I'm referring to understanding the theory behind yacc for the purpose of making a sane parser - with or without using yacc in the process.
00:58
<@McMartin>
Well, you don't need any of yacc's power or theory to write recursive descent parsers, though knowing different theory can help
00:58
<@McMartin>
That's more written-assignment than project, though
00:59
<@McMartin>
The class I TAed was on program analysis, though, so it was for things like expression precomputation and constant propagation and dead-variable detection and stuff
00:59
<@McMartin>
And so if the assignment is "solve dead-variable problems in one pass" I have to check the code to make sure they aren't doing it in, say, one pass per instruction
01:00
< MyCatVerbs>
Arrr, yesh.
01:00
< Vornicus>
a dead variable is, what, something that never gets read from again?
01:00
<@McMartin>
Right.
01:00
< Vornicus>
ok
01:00
<@McMartin>
So you can put another variable in that guy's register safely or whatnot
01:15
<@ToxicFrog>
So, yes, as McM has demonstrated, the TA does actually need to be able to read your code.
01:16
<@ToxicFrog>
(this is especially true if you are given part marks for programs that don't work but have the right general idea)
01:16
< MyCatVerbs>
Well, damn.
01:16
<@McMartin>
(I wrote a bitchbot to handle customized reports on that)
01:16
<@ToxicFrog>
I don't actually anticipate a problem; if you grok C++ and Java, Lua should be quite readable.
01:16
< MyCatVerbs>
There goes the evil master plan to implement all programs twice - once in C and once in WhiteSpace - inside the same file, too. =D
01:16
< Vornicus>
woo bitchbots
01:16
<@ToxicFrog>
Bitchbots?
01:16
<@McMartin>
aka "I've prepared a list of ways you suck"
01:17
<@McMartin>
Basically, each person had a series of codes I'd write down while grading, one for each problem they had.
01:17
<@McMartin>
Usually failed edge cases, which could be recycled.
01:17
<@ToxicFrog>
MyCatVerbs: this is also why, when told "do this in C++", writing a VM in C++ and then writing your actual program in the language understood by the VM does not actually get you marks, even if it's semantically correct.
01:17
<@ToxicFrog>
Although that might vary by TA, so if my request is denied I might deploy blcgen on a low-value assignment just to see what happens~
01:18
< MyCatVerbs>
Teehee. What's blcgen?
01:18
< Vornicus>
Lua-C translator, I think
01:18
<@ToxicFrog>
Yes.
01:18
<@McMartin>
Being totally broken but having various levels of a clue tended to get you a mark that meant "You are this person"
01:18
<@ToxicFrog>
Well, kind of. It doesn't generate native C code from Lua, it generates a buffer full of Lua code, and C code that invokes the Lua terp on it.
01:19
<@McMartin>
But then everyone got three or four paragraphs emailed to them explaining exactly what they failed to handle, and what this did to their score
01:19
<@McMartin>
Hence, bitchbot
01:19
< MyCatVerbs>
Nice. Kinda like the VB4, "compiler."
01:19
<@ToxicFrog>
So you do things like:
01:19
<@ToxicFrog>
blcgen -o foo.c foo.lua
01:19
<@ToxicFrog>
gcc -c -o foo.o foo.c
01:19
<@ToxicFrog>
gcc -o foo foo.o -llua -lm
01:20
<@ToxicFrog>
And you get a binary that has exactly the same behaviour as "lua foo.lua"
01:20
<@ToxicFrog>
Which is handy when making releases.
01:23
<@ToxicFrog>
(blcgen is, itself, written in Lua, and can be run on itself)
01:24
<@ToxicFrog>
(Enceladus, which McM kind of katamari'd it into, is more powerful but is not written solely in Lua and thus can't run on itself.)
01:24
<@McMartin>
Enceladus never really went anywhere.
01:24 * McMartin will probably return to it once UQM and WSIF are under control.
01:24
<@McMartin>
aha, aha, aha
01:24
<@ToxicFrog>
?
01:25
<@McMartin>
As in, "not anytime remotely soon"~
01:25
<@ToxicFrog>
Aah.
01:25
<@ToxicFrog>
Hat. Hat. Hat.
01:25
<@ToxicFrog>
(blcgen didn't really go much of anywhere either, but it's fine right where it is; indeed, the module.exe referred to by the Modular XChat NSIS script is a blcgen'd lua script.)
01:28
< MyCatVerbs>
ToxicFrog: As in, it's pretty much finished on account of there's nothing else that needs adding to it and there aren't any particularly nasty bugs in it?
01:28
<@McMartin>
Enceladus's goal was to integrate with Make so that you could have lua files and C files interact cleanly, maybe with a dash of SWIG as well.
01:30
<@ToxicFrog>
MCV: aren't any bugs at all, as far as I can tell.
01:31
<@ToxicFrog>
Although it could have a few more features.
01:31
<@McMartin>
Any bugs it has are bugs in the programs it calls.
01:33
< MyCatVerbs>
Okay, fair point. So it's finished in that it's not missing any important features and it's almost certainly correct.
02:07
<@McMartin>
Ugh
02:07 * McMartin nails a bug in his python code that took two days to find.
02:07 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Ping Timeout]
02:08
<@McMartin>
The part where it's disassembling a binary to get instructions to analyze had one of the opcode widths wrong. ;_;
02:12 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
02:13
< Vornicus>
ow
02:14
<@ToxicFrog>
Variable-width instructions 4tl.
02:25
< MyCatVerbs>
ToxicFrog: you kidding? They're a wonderful way of keeping code compact in order to preserve instruction cache space, potentially drastically speeding up program execution.
02:25 * MyCatVerbs hides behind a convenient forcefield.
02:26
< MyCatVerbs>
In other news, Lenovo notebooks. Are they Linux-friendly, or Linux-hostile?
02:26 * ToxicFrog injects x86 machine code directly into MCO's brain
02:26
<@ToxicFrog>
No idea, never heard of them.
02:26
< Vornicus>
Lenovo is the company that bought IBM's Thinkpad division.
02:27
< Vornicus>
From what I've heard, they've kept the quality.
02:27
<@ToxicFrog>
However, a quick google for "Lenovo linux" returns a bunch of results saying that they officially support linux and some of their models even come with SuSE presinstalled...and an equal number of results saying that they don't.
02:37 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.]
03:32
< MyCatVerbs>
Cool, thanks.
03:33
< MyCatVerbs>
(Sorry for the slow response, I was interrupted by something shiny and completely forgot that I'd asked the question.)
03:41 Serah [~-@87.72.36.ns-26407] has quit [Ping Timeout]
03:47 Serah [~-@87.72.36.ns-26407] has joined #Code
03:56 McMartin [~mcmartin@Nightstar-10827.dsl.pltn13.pacbell.net] has quit [Quit: brb]
03:59 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout]
04:11 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
04:21 * ToxicFrog eyes the FC6 installer.
04:21
<@ToxicFrog>
Even if "graphical internet" is unselected, it still installs Firefox.
04:35 Derakon is now known as Derakon[AFK]
04:42 ReivWork is now known as Reiver
04:47 Derakon[AFK] is now known as Derakon
05:20 Derakon is now known as Derakon[AFK]
05:53 Derakon[AFK] is now known as Derakon
06:12 AnnoDomini [~farkoff@Nightstar-29846.neoplus.adsl.tpnet.pl] has joined #Code
06:16 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
06:16 mode/#code [+o Chalcy] by ChanServ
06:16 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))]
06:16 Chalcy is now known as Chalcedon
06:35 * ToxicFrog goes to install yakuake on his shiny new FC6 install, watches in horror as the dependecy list spirals out of control.
06:35
<@ToxicFrog>
yakuake actually doesn't have many dependencies, but it depends on konsole.
06:35
<@ToxicFrog>
Which has 102MB and 27 packages of them.
06:36
< Vornicus>
Which does.
06:36
<@ToxicFrog>
As I said.
06:42
<@ToxicFrog>
Also, for some things it seems to be installing the i386 and the x86_64 versions in parallel.
06:42
<@ToxicFrog>
Which confuses me.
06:49 Derakon is now known as Derakon[AFK]
06:55
< MyCatVerbs>
...
06:55
< MyCatVerbs>
So that's why yakuake crashed so horribly on my system.
06:56
< MyCatVerbs>
No konsole installed.
06:56
< MyCatVerbs>
Whoever built the yakuake package evidently forgot to list konsole as a dependancy. Heh.
07:00
<@ToxicFrog>
Yeah, that happens.
07:01
<@ToxicFrog>
(on mine, it doesn't crash, but it doesn't give you an shell either; just blank whiteness)
07:02
< MyCatVerbs>
Well, didn't crash. Gave blank whiteness and wierd visual artifacts until I SIGTERM'd it.
07:02
<@ToxicFrog>
Ok. Wireless drivers, yakuake, FUSE and fuse-sshfs installed. DSA and RSA keys restored. NX installed.
07:02
<@ToxicFrog>
I think that just leaves ntfs-3g and then it's ready for the field.
07:02
<@ToxicFrog>
It needs other stuff for general use (notably NEdit and VLC) but those can wait.
07:03
< MyCatVerbs>
Dude, what?
07:03
< MyCatVerbs>
You forgot nethack!
07:03
<@ToxicFrog>
Because now, it is SLWWP TIME YES
07:03
<@ToxicFrog>
No I didn't.
07:03 * Mahal hug Frog.
07:03
<@ToxicFrog>
Nethack and SLASH'EM are installed on Orias.
07:03
<@ToxicFrog>
Orias runs sshd.
07:03
<@Mahal>
Slwwp well!
07:03 * ToxicFrog hugs Mahal
07:03
<@ToxicFrog>
MyCatVerbs: see, this allows me to keep all of my save, score and configuration files in one place, and access them from anywhere.
07:03
< MyCatVerbs>
ToxicFrog: yes, but a copy of nethack should always be kept available on each and every network node, just in case all of the others spontaneously combust and you get bored.
07:04
< MyCatVerbs>
(Not that I don't think a room full of exploding computers wouldn't be particularly exciting in and of itself, of course.)
07:04
<@ToxicFrog>
The only situation when I'll be without nethack is when I'm without a network connection, and if I'm without a network connection I'm more converned with getting it back than with playing nethack.
07:04 * ToxicFrog curls up on Mahal's lap, slwwps.
07:05
< MyCatVerbs>
Goodnight.
07:05
< MyCatVerbs>
>_>
07:05
< MyCatVerbs>
<_<
07:05
< MyCatVerbs>
Nos dda.
07:26
< MyCatVerbs>
Heheh.
07:26
< MyCatVerbs>
Returning 0 on error in a function which is supposed to spit out a const char* probably isn't a very nice way to let the user know that something went wrong.
07:27 * MyCatVerbs wonders which would be quicker to get noticed: the program segfaulting, or use constants coming up as "~~GODDAMMIT~~" instead of their assigned values?
08:11 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Connection reset by peer]
08:11 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: ]
08:12 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
08:28 Netsplit Troika.TX.US.Nightstar.Net <-> Blargh.CA.US.Nightstar.Net quits: EvilDarkLord, @Reiver
08:35
< MyCatVerbs>
...Rrrrrr.
08:36
< MyCatVerbs>
Anyone have any clue what is going on here? I have a function which appears to be correct and reasonably bugfree, but I can't stop hating it for feeling damn ugly.
08:37
< Vornicus>
Yey smell.
08:37
< Vornicus>
Paste it.
08:37
< Vornicus>
pastebin it, anyway
08:38 Reiver [~reaverta@IRCop.Nightstar.Net] has joined #Code
08:38 mode/#code [+o Reiver] by ChanServ
08:40 Althalas [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
08:43 Althalas is now known as EvilDarkLord
08:43 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Quit: Reconnecting]
08:43 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
08:47 Netsplit DeepThought.NY.US.Nightstar.Net <-> Blargh.CA.US.Nightstar.Net quits: EvilDarkLord, @Reiver
08:52
< MyCatVerbs>
Vornicus: http://pastebin.com/856574
08:52
< MyCatVerbs>
Vornicus: the function feels like it's too long and has too many variables.
08:53 * Vornicus has a look-see.
08:53 * Vornicus waits for pastebin to respond first.
08:55
< MyCatVerbs>
There's loads of context I omitted there, I'm afraid. "gimme" is a wrapper around calloc that dies screaming if calloc fails, for example. htable is an array of pointers to heads of linked lists. "hashandsmash" is a somewhat braindead string hashing function which returns sixteen bits and didn't take much brainpower to write.
09:00
< Vornicus>
Where does htable come from?
09:01
< MyCatVerbs>
It's global, with file linkage. "static idlist** htable = 0;" earlier in the file.
09:01
< Vornicus>
okay.
09:01
< Vornicus>
We're definitely working in C then
09:02
< MyCatVerbs>
Quite definately. C++ is fancy schmancy shit that I won't touch unless the project happens to sit precisely within the frankly freaky and horrible boundaries of complexity and required performance which actually warrant it.
09:02
< MyCatVerbs>
Java is just... fuck no.
09:03
< MyCatVerbs>
The code as-is does, I think, work. Haven't tested it yet.
09:04
< MyCatVerbs>
But it stinks right now and I'd like to correct that so I could have a little more confidence in it without needing to exhaustively run through every possible edge case. :/
09:06
< Vornicus>
okay, first thing I'd do is factor out your check for the existence of a symbol in the htable.
09:06
< MyCatVerbs>
There's also about three to five lines dispersed about there that I can't remember what the fuck they do. :/
09:06
< Vornicus>
And while you're at it, factor out the check and creation of the htable.
09:07
< MyCatVerbs>
Vornicus: heh. That's kinda the primary focus of this function. The rest is all there to handle the case that the particular symbol isn't already in the table. :)
09:07
< Vornicus>
factor it out anyway.
09:07
< Vornicus>
You should have symbol_is_in_hashtable?
09:07
< MyCatVerbs>
Good idea.
09:08
< Vornicus>
which handles that part.
09:08
< Vornicus>
Then if(!symbol_is_in_hashtable) you can add it.
09:08
< MyCatVerbs>
Ahhh, I see what I've done wrong here.
09:09
< MyCatVerbs>
I wrote the whole thing in terms of the low-level details of bit twiddling, rather than using writing it in terms of the conceptual symantics.
09:09
< Vornicus>
Yep.
09:10
< MyCatVerbs>
So it smells like a huge pile of bit twiddling, even though it's not doing anything particularly egrerious (well, aside from the huge stinking hack right there in the middle of the algorithm, but, eh, whatev. ^^)
09:10
< MyCatVerbs>
Thank you.
09:13
< Vornicus>
ensure_existence_of_htable()?
09:13
< Vornicus>
Idunno. That name is smelly but it's the only thing I can think of.
09:13
< MyCatVerbs>
symbolnumber_c_init();
09:14
< Vornicus>
only if you can guarantee it gets called.
09:14
< Vornicus>
Otherwise your best bet is initializing reactively.
09:14
< MyCatVerbs>
I'm just going to pick <filename>_c_init() convention, and make a note to call it before attempting to use anything provided by <filename>.c
09:15
< MyCatVerbs>
*as a convention, I mean.
09:15
< Vornicus>
okay.
09:15
< Vornicus>
So long as it's a convention that's fine.
09:16
< MyCatVerbs>
Does is still count as a convention even if you only find an excuse to do it just one time? =)
09:16
< MyCatVerbs>
*it
09:17
<@Mahal>
BEDD
09:17 * Mahal goes to bed.
09:17 Reiver [~reaverta@IRCop.Nightstar.Net] has joined #Code
09:17 mode/#code [+o Reiver] by ChanServ
09:17 Mahal is now known as MahalBEDD
09:17
< MyCatVerbs>
Sleep well.
09:20
< MyCatVerbs>
Oh and there's a memory leak bug, of course. >_>
09:49
< MyCatVerbs>
Fix'd. For great justice!
10:05 Serah [~-@87.72.36.ns-26407] has quit [Ping Timeout]
10:06 You're now known as TheWatcher[wr0k]
10:07
< Vornicus>
No.
10:07
< Vornicus>
It does not.
10:07 * Vornicus returns from the store.
10:15 Serah [~-@87.72.36.ns-26407] has joined #Code
10:19
< Raif>
That's a really gross convention.
10:23
< Vornicus>
It is.
10:25
< Vornicus>
Really, lazy init or automatic init (done when the class is created?) is your best bet.
10:26 Reiver is now known as ReivZzz
11:39
< MyCatVerbs>
Vornicus: C, not C++.
11:39
< MyCatVerbs>
Vornicus: if I had a way to ensure initialisation built into the language, don't you think I'd be using it?
11:40
< Vornicus>
yeah
11:40
< Vornicus>
But, still. lazy init.
11:40
< MyCatVerbs>
lazy init?
11:41
< Vornicus>
Initialize the moment you need it, no earlier.
11:41
< MyCatVerbs>
Vornicus: ...
11:42
< MyCatVerbs>
Earlier you were telling me to refactor the htable initialisation *out* of getsymbolnumber(). =)
11:43
< MyCatVerbs>
Oh well, changed that bit back to how it was before.
11:45
< Vornicus>
Yes, factor it out.
11:45
< Vornicus>
But make it so it gets done when you need it.
11:45
< MyCatVerbs>
...?
11:45
< MyCatVerbs>
Those two sentences contradict.
11:46
< Vornicus>
No they don't.
11:46
< MyCatVerbs>
It is literally one line of code.
11:46
< Vornicus>
So? Later it will probably be more. Make it a function.
11:47
< MyCatVerbs>
The fuck am I supposed to do, "void htable_alloc(void) { htable = gimme (65536*sizeof(idlist*)); }" and then "if (!htable) htable_alloc();"?
11:47
< Vornicus>
no.
11:47
< MyCatVerbs>
Ohkay. How would you arrange it?
11:47
< Vornicus>
void htable_alloc(void) { if (!htable) htable = gimme (65535*sizeof(idlist*)); }
11:48
< Vornicus>
Safer that way, too, you can't get it to alloc twice.
11:49
< MyCatVerbs>
Okay, makes sense.
11:55 * MyCatVerbs stabs glibc developers in the face.
11:56
< MyCatVerbs>
What, pray tell, is wrong with the concept of writing meaningful error messages? Possibly even providing verbose documentation for them somewhere online?
11:57
< MyCatVerbs>
And why the fuck can't this damn thing be convinced to produce core dumps when it crashes, dammit!?
12:16 * MyCatVerbs grumbles and tries the same code on an OpenBSD machine instead.
12:16
< MyCatVerbs>
Incidentally, is it just me or is awk really, really inefficient?
12:17
< MyCatVerbs>
awk '{print $1}' on a two column text file was eating up as must as half the amount of CPU time as my godawfully poorly written hashing function was. :/
12:18
< MyCatVerbs>
*as much as
12:20
< Vornicus>
awk is pretty bad.
12:20 EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code
12:30 Vornicus is now known as Vornicus-Latens
13:59 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has quit [Ping Timeout]
14:02 MyCatVerbs [~mycatownz@Nightstar-379.dsl.in-addr.zen.co.uk] has joined #code
14:29
<@ToxicFrog>
But pretty useful.
15:09 You're now known as TheWatcher[afk]
15:27 You're now known as TheWatcher
15:29 AnnoDomini [~farkoff@Nightstar-29846.neoplus.adsl.tpnet.pl] has quit [Quit: BRB]
15:31 AnnoDomini [~farkoff@Nightstar-29846.neoplus.adsl.tpnet.pl] has joined #Code
16:07
<@ToxicFrog>
[ben@leela unpackfs-0.0.6]$ ./configure
16:07
<@ToxicFrog>
checking for gcc... no
16:07
<@ToxicFrog>
Oops.
16:14
< jerith>
So, I have decided to finally learn Erlang properly.
16:14
< jerith>
http://jerith.livejournal.com/29976.html
16:28
< jerith>
Anyone interested in the abovementioned project can get hold of me via LJ or at my jerith@nightstar email addy. Or any other way, it you already have contact details for me. :-)
16:49 GeekSoldier [IceChat7@Nightstar-3772.pools.arcor-ip.net] has joined #code
17:07 MahalBEDD is now known as Mahal
17:13 You're now known as TheWatcher[afk]
17:15 * ToxicFrog arghflsjsysljksdhfgsdfh at FUSE and unpackfs
17:15
<@ToxicFrog>
unpackfs: error in config file ``/tmp/unpackfs-config'' at line 1:
17:15
<@ToxicFrog>
too few parameters for packer testpacker
17:15
<@ToxicFrog>
unpackfs: fuse_opt.c:67: fuse_opt_insert_arg: Assertion `pos <= args->argc' failed.
17:15
<@ToxicFrog>
Program received signal SIGABRT, Aborted.
17:15
<@ToxicFrog>
The first two lines are normal, since it's unpackfs's handling of malformed config files that's being tested.
17:15
<@ToxicFrog>
The last two lines are most definitely not.
17:19 GeekSoldier is now known as GSoldier-dishes
17:24 * Serah PatPats ToxicFrog.
17:25 AnnoDomini [~farkoff@Nightstar-29846.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
17:25 * ToxicFrog fluffles Serah
17:25
< Serah>
^_^
17:25
< Serah>
Being sick sucks, it makes me totally want to blow stuff up.
17:26
< Serah>
And I don't have anything to blow up, and I don't have anything to blow my nothing up with.
17:30 AnnoDomini [~farkoff@Nightstar-29499.neoplus.adsl.tpnet.pl] has joined #Code
17:34 GSoldier-dishes is now known as GeekSoldier
17:34 Mahal is now known as MahalWork
17:37
<@ToxicFrog>
Aaw, you're sick?
17:37 * ToxicFrog applies pillows
17:38
< Serah>
And allergic to pillows.
17:40 * ReivZzz provides non-allergenic pillows.
17:41 * GeekSoldier gives Serah some explosives and targets.
17:41 * EvilDarkLord provides some Evil Minions.
17:41
< Serah>
You know, Reiver, I thought you went to bed seven hours ago?
17:42
<@ReivZzz>
Yeah, I did.
17:42
<@ReivZzz>
I'm now running 10mins late to work.
17:42
<@ReivZzz>
What of it? >.>
17:42
< EvilDarkLord>
Judging by your nick you're sleepwalking. Get back to bed, boyo!
17:42
< Serah>
:p
17:42
< EvilDarkLord>
Oh, wait. I have ops? How did that happen?
17:42
< Serah>
Call in on a "child's first sickday."
17:43
< Serah>
You totally have to stay here and nurse me.
17:44 * ReivZzz snuggles Serah
17:44
<@ReivZzz>
Pity I don't get sick days, then.
17:45 * ReivZzz flees to work.
17:45
< Serah>
Kick them in the nuts and tell them it's from me.
17:45
< Serah>
Bai!
17:46 ReivZzz is now known as ReivWork
17:46
<@ToxicFrog>
....ok, check this out.
17:46
<@ToxicFrog>
#3 0x00000030b160f39c in fuse_opt_insert_arg () from /usr/lib64/libfuse.so.2
17:46
<@ToxicFrog>
#4 0x00000030b160c797 in fuse_req_ctx () from /usr/lib64/libfuse.so.2
17:46
<@ToxicFrog>
So, fuse_req_ctx calls fuse_opt_insert_arg. Simple enough, yes?
17:46
<@ToxicFrog>
This is the code of fuse_req_ctx:
17:46
<@ToxicFrog>
const struct fuse_ctx * fuse_req_ctx(fuse_req_t req)
17:46
<@ToxicFrog>
{
17:47
<@ToxicFrog>
return &req->ctx;
17:47
<@ToxicFrog>
}
18:08 * jerith boggles.
18:08
<@ToxicFrog>
This is kind of irritating, because I'm trying to figure out why unpackfs isn't working.
18:08
<@ToxicFrog>
[ben@leela ~]$ unpackfs Desktop.unpackfs/ -u Desktop/
18:08
<@ToxicFrog>
unpackfs: fuse_opt.c:67: fuse_opt_insert_arg: Assertion `pos <= args->argc' failed.
18:08
<@ToxicFrog>
Aborted
18:09
< jerith>
Is there not some macro magic happening somewhere?
18:09
<@ToxicFrog>
Nyet, at least as far as I can tell.
18:10
< jerith>
Perhaps some optimisation?
18:10
<@ToxicFrog>
Perhaps.
18:10
< jerith>
Try compiling without -O?
18:10
<@ToxicFrog>
I didn't build FUSE, only unpackfs.
18:10
< jerith>
Ah.
18:11
< jerith>
Are you looking at the code your fuse is compiled from, then?
18:11 * ToxicFrog is planning to attack this from the unpackfs end again, on the grounds that his other FUSE filesystems work, so fuse_open() can't be inherently broken, it's something about the way unpackfs is using it.
18:11
<@ToxicFrog>
I think so.
18:11
<@ToxicFrog>
But I admit it is possible there's a version mismatch.
18:12 * jerith nods sagely.
18:13 * Serah nods like someone who doesn't know anything.
18:20 * ToxicFrog flails
18:22
< jerith>
A mismatch between what you're linking against and what you're actually using might be causing the problem...
18:23
<@ToxicFrog>
Aha.
18:23
<@ToxicFrog>
unpackfs dies if you specify no arguments, because it assumes that there will always be a non-empty list of filesystem arguments.
18:24
<@ToxicFrog>
So $ unpackfs foo bar fails, but $ unpackfs foo bar -ononempty works.
18:26
<@ToxicFrog>
...and now that it's working, I find out that it totally doesn't work in overlay mode.
18:26
<@ToxicFrog>
Ass.
18:32 You're now known as TheWatcher
18:50
<@ToxicFrog>
Aha. I have kind of faked overlay mode.
18:51
<@ToxicFrog>
I unpackfs-mirror / on /.unpackfs, then set up my gnome bindings so that opening an archive file is now [[nautilus /.unpackfs/"$*"]] instead of [[file-roller "$*"]]
18:51
<@ToxicFrog>
Kind of a squinky hack, though.
18:51
<@ToxicFrog>
There's got to be a better way.
20:18
<@ToxicFrog>
Hmm.
20:18
<@ToxicFrog>
# fusexmp /
20:18
<@ToxicFrog>
Works.
20:19
<@ToxicFrog>
I honestly half expected either a kernel panic, or the contents of / vanishing.
20:19
<@ToxicFrog>
But, no, it appears to work fine.
20:19
<@ToxicFrog>
Which means that writing my own implementation of unpackfs as an overlay filesystem should be entirely feasible.
20:38 GeekSoldier [IceChat7@Nightstar-3772.pools.arcor-ip.net] has left #code []
22:13 You're now known as TheWatcher[T-2]
22:17 You're now known as TheWatchr[zZzZ
22:17 You're now known as TheWatchr[zZzZ]
22:35 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
22:35 mode/#code [+o Chalcedon] by ChanServ
22:39 Netsplit DeepThought.NY.US.Nightstar.Net <-> Blargh.CA.US.Nightstar.Net quits: MyCatVerbs, EvilDarkLord, @Chalcedon
22:39 Netsplit over, joins: EvilDarkLord, MyCatVerbs
22:39 Netsplit over, joins: Chalcedon
22:39 mode/#code [+o Chalcedon] by ChanServ
22:46 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
22:46 mode/#code [+o Chalcy] by ChanServ
22:47 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
22:47 Chalcy is now known as Chalcedon
23:14 Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code
23:14 mode/#code [+o Chalcy] by ChanServ
23:15 Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout]
--- Log closed Fri Jan 12 00:00:25 2007
code logs -> 2007 -> Thu, 11 Jan 2007< code.20070110.log - code.20070112.log >