--- Log opened Wed Mar 05 00:00:24 2008 |
00:08 | | AnnoDomini [AnnoDomini@83.21.1.ns-20755] has quit [Quit: Tradition may be defined as an extension of the franchise. Tradition means giving votes to the most obscure of all classes, our ancestors. It is the democracy of the dead. Tradition refuses to submit to the small and arrogant oligarchy of those who merely happen to be walking about. All democrats object to men being disqualified by the accident of birth; tradition objects to their being disqualified by the accident of death.] |
00:15 | | Vornicus-Latens is now known as Vornicus |
00:28 | <@McMartin> | Hm. Is "." allowed in XML tag names? |
00:31 | <@Vornicus> | Name characters: digits, letters, . - _ : |
00:32 | <@Vornicus> | Names have to start with a letter, :, or _ |
00:32 | <@McMartin> | Hm. Isn't : special, though? One of the namespacing things? |
00:32 | <@Vornicus> | http://www.w3.org/TR/2006/REC-xml-20060816/#NT-Name |
00:32 | <@Vornicus> | I'm just reading the name token spec. |
00:32 | <@McMartin> | Aha |
00:38 | <@McMartin> | ':' is used for qualified names, it looks like. |
01:28 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
02:22 | <@McMartin> | OK, editing LaTeX tables in a sans-serif font is comically impossible. |
02:23 | <@McMartin> | \begin{tabular}{|l||l|l|l|l|l|} |
02:25 | <@Vornicus> | Hee |
02:27 | | Reltzik [Reltzik@Nightstar-15817.dsl.pltn13.sbcglobal.net] has joined #code |
02:27 | | * Reltzik just wrote 49 lines of comments for 10 lines of code. |
02:27 | <@McMartin> | That's how it's done |
02:27 | | * McMartin needs to do that for his iFiction library at some point. |
02:27 | <@McMartin> | I want it to be JavaDoccable. |
02:28 | < Reltzik> | See, that's reason # 3 that I generally avoid recursion. |
02:28 | <@McMartin> | If recursion isn't making it simpler, don't use it. |
02:28 | <@McMartin> | For something like Java, you're likely to only really need it for tree-recursion anyway. |
02:29 | < Reltzik> | It's an academic solution to a "problems job interviewers typically pose". My first solution was a counter; "with recursion" was the follow-up. |
02:29 | < Reltzik> | Er, solution to an academic (read: pointless) problem. |
02:30 | <@McMartin> | There are surprisingly few actually pointless problems out there, unless you count "already has widely deployed superior solutions". |
02:30 | <@McMartin> | Anyway, being able to do recursion is pretty important, because otherwise when it is necessary you're hosed. |
02:30 | < Reltzik> | Yeah, I can do it. I just don't LIKE doing it. It's brain-hurty. |
02:31 | <@McMartin> | (Also, for various reasons I won't get into, recursive functions are often easier to rigorously demonstrate to do what they say they do) |
02:31 | <@McMartin> | (But that implies not only recursive but stateless) |
02:31 | < Reltzik> | This had a state, consuming characters off an input stream. |
02:32 | <@McMartin> | Yeah, that's not a wise choice for recursion, generally. |
02:32 | < Reltzik> | Which is why I used a counter the first time. |
02:32 | <@McMartin> | On the other hand, say, "reversing a linked list" can go either way |
02:32 | < Reltzik> | ........ well, that, and performance issues. I've run out of stack with nested recursions, before. |
02:32 | <@McMartin> | But the recursive version is usually a lot easier to look at and say "yeah, this reverses a list" |
02:33 | <@McMartin> | Yeah, so, languages designed to let you recurse more readily fix that. |
02:33 | <@McMartin> | If your recursive call is of the form "return foo (bunch of arguments)", where foo is the recursive routine in question -- |
02:33 | | * Reltzik is language-deprived. Or maybe depraved. Something like that. |
02:33 | <@Vornicus> | mmm, tail recursion |
02:33 | <@McMartin> | -- for many languages you can actually wipe out the caller's stack frame before the call resolves. |
02:34 | < Reltzik> | Smart. |
02:34 | <@McMartin> | I note that C++ is not one of these langauges; the nature of precise destructors means that you can't actually tail-recurse in it for anything that deals with Objects. |
02:34 | <@McMartin> | Yeah, it's actually really awesome when you have one that goes to machine code. |
02:34 | <@McMartin> | Because it doesn't have any cleanup, it just starts reassigning the stack frame's variables. |
02:34 | <@Vornicus> | Some languages (scheme, for instance) explicitly mention in the spec that tail recursion is supposed to optimize like that. |
02:34 | <@McMartin> | Which means that when you look at the assembly code it's actually a while loop. |
02:35 | < Reltzik> | Which is what tail-recursion SHOULD be turned into. |
02:35 | <@McMartin> | Because the only "variables" are the arguments, so when you do a rebuild of the stack frame you're basically reassigning the variables associated with the formals. |
02:35 | <@McMartin> | Yeah. Basically, you can't tail-recurse in the face of what LISP calls an unwind-protect, or what Java calls a try-finally block. |
02:36 | <@McMartin> | And C++'s destructor semantics put every local variable inside one, if there's an associated constructor. |
02:43 | | Reltzik is now known as Reltafk |
02:44 | <@McMartin> | There are other minor wrinkles in OO with "tail recursion" not actually being so; you have to prove that "this" is never reassigned to an object of a different type, if the tail call is in fact virtual. |
02:44 | <@McMartin> | But it's pretty easy to prove that Register 0 is never assigned. |
03:01 | | Reltafk is now known as Reltzik |
03:06 | | Reltzik [Reltzik@Nightstar-15817.dsl.pltn13.sbcglobal.net] has quit [Quit: DEATH TO THE UNDEAD!] |
04:02 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout] |
04:03 | | Vornotron [~vorn@Admin.Nightstar.Net] has joined #code |
05:13 | | * Reiver fails his saving throw vs Phantasmal Killer, dies of fright. |
05:15 | <@Reiver> | My very first assignment is to write a balanced multiway sort-merge. |
05:16 | | * Reiver 's first question is what programming language to use, and he only has two choices - Java or C#. Java is the one that the lecturer is assuming, but on the other hand, he's being required to do C# for another course already... |
05:17 | <@Reiver> | (I've been told I can use C# if preferred, though.) |
05:17 | <@McMartin> | C# is a marginally better constructed language, but Java runs more places better. |
05:18 | <@Reiver> | Are you terribly familiar with it? |
05:18 | <@McMartin> | I've never written a program in C#. |
05:18 | <@Reiver> | Right. |
05:18 | <@Reiver> | Neither~ |
05:18 | <@McMartin> | And I Wrote The Book on Java, or close enough. |
05:20 | <@Reiver> | Do I want to be using Java simultaneously with learning C#, or is that just going to get my head messed up with close-but-not-quite syntaxes? |
05:20 | | * Reiver hasn't really worked with two similar languages simultaneously, before. |
05:21 | <@McMartin> | The major difference will be the libraries. |
05:21 | <@McMartin> | It can be done, though. Your acall. |
05:21 | <@McMartin> | The libraries aren't teh important part here. |
05:23 | <@Reiver> | And syntax differences are generally relatively irrelevant when dealing with conceptual stuff; ableit more importaint for bug-hunting. Hrmn. |
05:24 | <@Raif> | Between Java and C#, fuck Java. Fuck it long, fuck it hard. |
05:25 | <@Raif> | But that's just me. :) |
05:25 | <@Reiver> | My main issue is that the harder course is the one I have the choice in, rather than the easy one. I'm jumping into 3rd year alograthms with a cold start >.> |
05:25 | <@Raif> | Seriously though, I would call C# a better language, though it's not quite as multiplatform as I wish it was. |
05:25 | <@Raif> | Are you learning these for potential marketability, jobwise? |
05:26 | <@Reiver> | Primarily so I can finish the bloody assignments~ |
05:26 | <@Raif> | Do the C# thing. I don't think it'll make a huge difference either way, but from my end, Java's got more weird gotchas. |
05:27 | | * Reiver nods. |
05:27 | <@Raif> | Or if you're asking if you can do both at the same time, as above, sure... if it makes life easier. I doubt you'll have much trouble going back and forth. |
05:27 | <@Reiver> | That's good to know, at least. |
05:29 | <@Reiver> | And... hrm. My main concern with C# was that it means I can't call on the fairly vast store of Java-expertise folks in this channel have when trying to figure out tricky questions. |
05:29 | <@Raif> | These are student assignments, right? |
05:29 | <@Reiver> | Right. |
05:30 | <@Reiver> | Nothing too hard; I suspect my biggest issue is that my lecturer teaches in the exact worst way possible for me to learn from >.> |
05:30 | <@Raif> | You should be OK either way then. I can't imagine you hitting anything so complex nobody can answer it (well, I can, but I have faith you're not a walking WTF). |
05:30 | <@Reiver> | (Well... Chalain seems to think I'm a half-decent coder in the making, if that helps matters~) |
05:31 | <@Raif> | The thing I learned in college was that my professors were not there to teach me. They provided the motivation to teach myself. As educators, however, they were universal failures. :) |
05:31 | <@Reiver> | ...Actually when I think about it, the paper that is causing me trouble is Alograthms, where the biggest issues are likely to be 'getting my head around how to implement what the hell he's saying' more than language quirks directly. |
05:32 | <@Raif> | Exactly. |
05:32 | <@Reiver> | Though, of course, Language Quirks can nonetheless trip you up in the process~ |
05:35 | | * Reiver goes with C# then, if only so the practice for one course can help with the other. |
05:40 | <@Reiver> | ...But I might do my first assignment in Java if only because I have Eclipse installed and I don't yet have Microsoft Visual Studio on here yet, so I may as well leave that till I get hold of it. |
05:53 | < ToxicFrog> | Didn't we link you to a double handfull of free C# dev tools the other day |
05:53 | < ToxicFrog> | ? |
05:54 | <@Reiver> | ...Oh yeah, I have Mono don't I |
05:54 | | * Reiver doublechecks his Installers folder, feels mighty silly~ |
05:57 | <@Reiver> | Right then. |
05:58 | <@Reiver> | Now to figure out how to make Hello World with the thing. (Hey, gotta start somewhere.) |
06:16 | | Vornotron is now known as Vornicus-Latens |
06:56 | | Raif [~corvusign@Admin.Nightstar.Net] has quit [Ping Timeout] |
07:02 | | You're now known as TheWatcher |
07:07 | | AnnoDomini [AnnoDomini@83.21.1.ns-20755] has joined #Code |
07:07 | | mode/#code [+o AnnoDomini] by ChanServ |
07:20 | | Kazriko [~kazrikna@Nightstar-26352.gdj-co.client.bresnan.net] has joined #code |
08:16 | | You're now known as TheWatcher[afk] |
09:58 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
09:59 | | mode/#code [+o gnolam] by ChanServ |
10:03 | | * TheWatcher[afk] readsup. bahs, notes Reiv should just do it in perl ;D *ducks* |
10:03 | <@McMartin> | TheWatcher[afk]: That wasn't one of the choices. |
10:03 | | You're now known as TheWatcher |
10:04 | <@TheWatcher> | details, details ?? |
12:47 | <@McMartin> | Ahahaha |
12:47 | <@McMartin> | Rocking is an action applying to nothing. Understand "rock" as rocking. Report rocking: say "You are already totally rocking." |
12:48 | | Serah [~Z@87.72.35.ns-26506] has quit [Ping Timeout] |
13:04 | | AnnoDomini [AnnoDomini@83.21.1.ns-20755] has quit [Ping Timeout] |
13:11 | | AnnoDomini [AnnoDomini@83.21.33.ns-4089] has joined #Code |
13:11 | | mode/#code [+o AnnoDomini] by ChanServ |
13:12 | | Serah [~Z@87.72.35.ns-26506] has joined #Code |
13:55 | | McMartin [~mcmartin@Nightstar-9474.dsl.pltn13.sbcglobal.net] has quit [Quit: reboot] |
13:59 | | McMartin [~mcmartin@Nightstar-9474.dsl.pltn13.sbcglobal.net] has joined #code |
13:59 | | mode/#code [+o McMartin] by ChanServ |
14:12 | | * TheWatcher decides to inflict Doxygen on his C students, and tie marks to whether they comment correctly |
14:33 | | ToxicFrog is now known as ToxicFrog` |
14:35 | | ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code |
14:35 | | mode/#code [+o ToxicFrog] by ChanServ |
14:39 | | ToxicFrog` [~ben@Nightstar-20147.cpe.net.cable.rogers.com] has quit [Quit: Switching clients.] |
14:46 | | You're now known as TheWatcher[d00m] |
16:10 | | You're now known as TheWatcher[afk] |
16:21 | | * McMartin uploads the source code for his old IF game. |
16:22 | <@McMartin> | http://www.stanford.edu/~mcmartin/if/WS/source.html |
16:22 | <@McMartin> | Spoilers, etc. |
16:49 | | * ToxicFrog flails at struct |
16:56 | <@ToxicFrog> | The lexer is working fine. The parser is giving me trouble. |
16:59 | | mode/#code [+s] by ToxicFrog |
16:59 | <@ToxicFrog> | ...that wasn't meant to happen |
16:59 | | mode/#code [-s] by ToxicFrog |
17:00 | <@ToxicFrog> | set irc_whois* |
17:00 | <@McMartin> | ? |
17:00 | <@ToxicFrog> | Mistype. |
17:01 | <@ToxicFrog> | Curse this laptop keyboard, et. |
17:18 | <@McMartin> | "You restrain yourself to a minor curse word, ever mindful o the fact that there are children present at this wholesome bloodsport match." |
18:44 | | GeekSoldier [~Rob@91.18.88.ns-5048] has joined #code |
19:02 | <@AnnoDomini> | What. |
19:04 | <@ToxicFrog> | RESER. |
19:04 | | You're now known as TheWatcher |
19:04 | <@ToxicFrog> | Rock'em Sock'em Robots: the text adventure |
19:30 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
19:39 | | AnnoDomini [AnnoDomini@83.21.33.ns-4089] has quit [Ping Timeout] |
19:40 | | GeekSoldier is now known as GeekSoldier|bed |
19:45 | | AnnoDomini [AnnoDomini@83.21.33.ns-4089] has joined #Code |
19:45 | | mode/#code [+o AnnoDomini] by ChanServ |
19:56 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
21:18 | | Kazriko [~kazrikna@Nightstar-26352.gdj-co.client.bresnan.net] has quit [Ping Timeout] |
--- Log closed Thu Mar 06 00:00:33 2008 |