code logs -> 2010 -> Tue, 13 Apr 2010< code.20100412.log - code.20100414.log >
--- Log opened Tue Apr 13 00:00:55 2010
00:05 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
00:14 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving]
01:13 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
01:19 Derakon[AFK] is now known as Derakon
01:24 * Reiver sets dynamic programming on fire.
01:24
<@McMartin>
Ah, the using block.
01:24
<@Derakon>
What seems to be the trouble, citizen?
01:25
<@McMartin>
Reasons #1-#453 why C# is better than Java.
01:25<~Reiver> Derakon: OK, I comprehend how to do dynamic programming on an integer knapsack problem
01:25<~Reiver> The floating point variety, and the document we have explaining it, is making my head explode.
01:26<~Reiver> I admit this is partly because the pretty symbols it has mean close-enough-to-nothing to me, as they're being used in nontrivial contexts.
01:26
<@Derakon>
McM: is using just meant to limit variable scope?
01:26
<@Derakon>
Reiv: mm, I don't know that I can trivially give assistance on knapsack problems. I'd need to read up on the things.
01:28
<@ToxicFrog>
Reiver: which pretty symbols?
01:28 * ToxicFrog can probably help with dynamic programming, not sure about the floating-point knapsack problem but isn't it just a more general form of the integer one?
01:29 * Derakon eyes Wikipedia. "If all weights (w_1,\ldots,w_n,W) are nonnegative integers, the knapsack problem can be solved in pseudo-polynomial time using dynamic programming."
01:29
<@Derakon>
So I'm guessing something special is meant by "floating-point knapsack problem" here.
01:30<~Reiver> http://www.cs.waikato.ac.nz/~tcs/COMP317/Assignments/assign2-2010.html - is the task at hand. As noted, it's a fairly general "Do what the instruction sheets tell you".
01:30<~Reiver> The instruction sheets, however, are where my brain asplode.
01:30
<@McMartin>
Derakon: It also gives you RAII without the fiction; it lets you pair nearly-arbitrary methods as long as you implement IDisposable
01:30
<@Derakon>
In integer knapsack, you can find the max values for every knapsack with max weight less than your target weight.
01:30
<@McMartin>
Thus killing the snot out of the endless mess of try-finally blocks.
01:31
<@Derakon>
Heh.
01:31<~Reiver> In floating point, you need to juggle... somethings.
01:32
<@Derakon>
The stupid approach is to take advantage of the fact that the input file must be finite, find the finest precision specified in the file, and multiply by a factor of 10 such that all the values in the file are integral.
01:33
<@Derakon>
That can easily run you into problems if your precision is too great though.
01:33
<@Derakon>
(Referencing my statement of ~3 minutes ago, the problem with floating point knapsack is that there are an infinite, or at least large, number of weights less than the target weight)
01:33<~Reiver> And I daresay, gets you in trouble for missing the point of the excersize.
01:35
<@Derakon>
"the problem is NP-complete to solve exactly, thus it is expected that no algorithm can be both correct and fast (polynomial-time) on all cases; many cases that arise in practice, and "random instances" from some distributions, can nonetheless be solved exactly."
01:36
<@Derakon>
In other words, your assignment cannot be to solve the generalized knapsack problem, unless your teacher is either a) sadistic, or b) hoping for an idiot-savant to hand over computational theory's greatest breakthrough.
01:39<~Reiver> snrk
01:40<~Reiver> no, it's the specific case in the two (and I wish they were one) pdf files.
01:40
<@Derakon>
Ah.
01:40<~Reiver> Which I can't actually describe better than linking to because it's an imagecap. >_<
01:40
<@Derakon>
(Use PNGs, silly!)
01:40
<@Derakon>
(And I know it's not your fault)
01:40<~Reiver> http://www.cs.waikato.ac.nz/~tcs/COMP317/Assignments/sheet1.pdf http://www.cs.waikato.ac.nz/~tcs/COMP317/Assignments/sheet2.pdf
01:41
<@Derakon>
Okay, capital Pi (the thing that looks like an upside-down U) is like Sigma, except it's for multiplication instead of summation.
01:41
<@Derakon>
So PIr_i means r_1 * r_2 * r_3 * ... * r_n
01:41<~Reiver> OK
01:42<~Reiver> So it's for r1 .. rN
01:43
<@Derakon>
phi_i(m_i) means "the function that gives the reliability of a set of the devices at the ith step, acting in parallel to provide redundancy".
01:44
<@Derakon>
The sample function they give is 1 - (1 - r_i)^m_i.
01:44
<@Derakon>
They then go off on a tangent about how this isn't strictly speaking accurate.
01:44
<@Derakon>
The goal at the bottom of page 1 is to maximize the reliability (given by multiplying the results of all of those functions together), given that you don't exceed your cost limit.
01:45
<@Derakon>
c_i is the cost of one unit at the ith step; m_i is the quantity of units at the ith step; r_i is the reliability of an individual unit at the ith step.
01:46
<@Derakon>
At the top of page two: you can assume that all units have a positive cost, and that you must buy at least 1 of each unit and not so many of a given unit that you can't afford to buy at least 1 of every other unit.
01:46
<@Derakon>
(For example, if you have $10 to spend and 5 units of $1 each, then you can't spend $7 on 1 unit, because that would leave you with $3 to buy 4 more units with)
01:47
<@Derakon>
Still with me?
01:48<~Reiver> In general terms, yes
01:48
<@Derakon>
Mostly what I'm doing is just translating mathematical notation.
01:49<~Reiver> I gathered. I am following along best I can, and hoping for a eurika moment further down.
01:52
<@Derakon>
Another way of writing your maximum number of units at the ith step is "floor of ((total amount of money + cost of 1 unit of ith type - sum of total cost of buying 1 of each type of unit) divided by cost of 1 unit of ith type)"
01:52
<@Derakon>
Okay, f_i(x).
01:53
<@Derakon>
That is the optimal value for solving this problem with only i steps (and i sets of devices).
01:53
<@Derakon>
Where x is your maximum expenditure.
01:53
<@Derakon>
So for example, f_1(5) would be "what is the most reliable system with one type of device that I can make for $5".
01:54
<@Derakon>
That wouldn't be very hard to solve, would it? You just buy as many units as you can for $5 and you're done.
01:54
<@Derakon>
f_n(c) basically means "solve the original problem" -- all n steps, your total allowed money is c.
01:55 * Reiver thinks.
01:56
<@Derakon>
Man, this language is ridiculously dense.
01:56<~Reiver> Yeah, it's been pretty impenetrable to me
01:56<~Reiver> Which has had rather adverse effects on my ability to solve it, oddly enough.
01:56
<@Derakon>
Funny, that.
01:57
<@Derakon>
My mom, who teaches biochemistry, has occasionally observed that students without the English language ability to understand the problem statement don't generally do very well.
01:59
<@McMartin>
Funny, that
01:59
<@Derakon>
I just said that~
02:00 * Derakon eyes the example. "''Undominated tuples?'' I've never heard that one before."
02:00<~Reiver> You see why I was brickwalling this~
02:03
<@Derakon>
Okay, a "dominated tuple" appears to mean "A solution that is strictly worse than another solution".
02:04
<@Derakon>
For example, if you have two solutions, one of which costs $100 and gives reliability .7, and another which costs $90 and gives reliability .8, you can discard the first solution, since it's clearly going to be worse in all ways.
02:04
<@Derakon>
S is a set of (reliability, cost) possibilities.
02:04<~Reiver> I see
02:05
<@Derakon>
You start out with an empty set -- perfectly reliable (there's nothing to break), and costs nothing.
02:05
<@Derakon>
That's S^0.
02:05
<@Derakon>
S^1 is the set of solutions with 1 type of device.
02:06
<@Derakon>
You subscript S with the number of devices you choose at this level.
02:06 Shayd [Shayd@Nightstar-fe831616.east.verizon.net] has joined #code
02:06
<@Derakon>
So your possible sets are 1 device, or 2 devices, giving tuples (.9, 30) and (.99, 60).
02:06
<@Derakon>
You can't have three of the first type of device because you wouldn't be able to buy the second two devices.
02:07
<@Derakon>
Now we look at the second device. It costs $15 and has reliability .8.
02:07
< Shayd>
Im on wrong channel, damn
02:07
<@Derakon>
So if we chose to use 1 unit of the second type, then we'd merge (.8, 15) into the two tuples we generated earlier.
02:08 Shayd [Shayd@Nightstar-fe831616.east.verizon.net] has left #code []
02:08
<@Derakon>
That would give you (.9 * .8, 30 + 15) and (.99 * .8, 60 + 15)
02:08
<@Derakon>
That is, (.72, 45) and (.8928, 75).
02:09
<@Derakon>
That's the set S^2_1 -- that is, the set of possible solutions when we have two types of devices and we chose only to use 1 instance of the second type.
02:10
<@Derakon>
What if we choose to use 2 of the second type of device? That costs $30, which means that we can only buy 1 of the first type of device (since we need enough money to buy at least 1 of device #3).
02:11
<@Derakon>
So our set becomes (.9 * .96, 30 + 30), or (.864, 60).
02:11
<@Derakon>
Combined, these give us all the possible reliabilities, and their costs, for a two-device system: (.72, 45), (.8928, 75), and (.864, 60).
02:11
<@Derakon>
Still with me?
02:13 * Reiver thinks.
02:14<~Reiver> Yeah, I think so.
02:15
<@Derakon>
Basically we said "What are the different ways we can buy the first device, and how reliable are they? Okay, and for those different ways, what are the ways we can buy the second device, and how reliable are those combinations?"
02:15<~Reiver> right. OK.
02:15
<@Derakon>
So now we have three different ways that the first two devices can be bought, each with a different overall reliability and cost.
02:15
<@Derakon>
We can buy 1 of each, we can buy 2 of the first and 1 of the second, or we can buy 1 of the first and 2 of the second.
02:16
<@Derakon>
Now we go to the third device.
02:16
<@Derakon>
The third device costs $20 and has a reliability of .5. Shoddy work, hey?
02:16<~Reiver> aye
02:17
<@Derakon>
The most we could ever buy of device #3 is 3, which would have a reliability of .875 and cost $60.
02:17
<@Derakon>
Any more than that and we couldn't afford one each of devices #1 and #2.
02:18
<@Derakon>
Let's try merging that into our previous set of solutions.
02:18<~Reiver> right
02:19
<@Derakon>
We only have one solution where we can buy 3 of device #3 without going over our spending limit.
02:19
<@Derakon>
That gives us a solution with reliability (.72 * .875, 45 + 60) or (.63, 105)
02:19
<@Derakon>
So that is one possible solution with all three devices.
02:19
<@Derakon>
What if we buy only 2 of device #3?
02:20
<@Derakon>
That costs $40, which means that, with our spending limit of $105, we can afford two of the combinations we set up earlier: (.72, 45) and (.864, 60).
02:21
<@Derakon>
That gives us solutions (.72 * .75, 45 + 40) and (.864 * .75, 60 + 40), or (.54, 85) and (.648, 100).
02:21<~Reiver> ... ah-hah.
02:21
<@Derakon>
Right.
02:21
<@Derakon>
The solution we got when we went with 3 of device #3 is worse and more expensive than that second solution we just got.
02:22
<@Derakon>
So we can discard it now.
02:22<~Reiver> right.
02:23
<@Derakon>
Now, if we buy only 1 of device #3, then we can afford all three of our previous combinations.
02:23<~Reiver> But we keep the other two, and then try to add just one each of device 2?
02:23
<@Derakon>
No, we don't backtrack.
02:23<~Reiver> er. Device #3.
02:23
<@Derakon>
Yeah.
02:23
<@Derakon>
So what happens if we add 1 of device #3 to our previous solutions (.72, 45) and (.864, 60)?
02:23
<@Derakon>
We get (.72 * .5, 45 + 20) and (.864 * .5, 60 + 20) or (.36, 65) and (.432, 80).
02:24
<@Vornicus-Latens>
oh, good, der is explaining it
02:24
<@Derakon>
So our total set of solutions, not counting the crappy one we discarded, are (.36, 65), (.432, 80), (.54, 85), and (.648, 100).
02:24
<@Derakon>
Now, at this point we are technically done.
02:25
<@Derakon>
But!
02:25
<@Derakon>
...no, wait, I can't change the problem parameters at this point.
02:25
<@Derakon>
So. At this point we are done.
02:25
<@Derakon>
All four of our solutions have at least 1 of each device, and all four solutions come in under our cost limit.
02:25
<@Derakon>
They are all valid solutions; we simply pick the one with the highest reliability.
02:26
<@Derakon>
That is (.648, 100).
02:26 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has left #code []
02:26
<@Derakon>
Now, what were the counts of each device type from that answer?
02:26<~Reiver> We kept track of it beside the tuple?
02:26
<@Derakon>
We got it by adding 2 of device #3 to the tuple (.864, 60).
02:26
<@Derakon>
Where did (.864, 60) come from?
02:27 * Derakon backscrolls up a ways.
02:27
<@Derakon>
We got it from picking 2 of device #2.
02:27
<@Derakon>
We got it from picking 2 of device #2, and combining it with the tuple (.9, 30).
02:27
<@Derakon>
And (.9, 30) came from picking 1 of device #1.
02:27
<@Derakon>
So yes, you keep track of it with the tuple.
02:29
<@Derakon>
So now, I want you to go through solving a similar problem. Your cost limit is $70, your devices have costs of $10, $15, and $20 each, and they have reliabilities of .6, .4, and .8.
02:29
<@Derakon>
No, wait.
02:29
<@Derakon>
$25, $15, and $10.
02:29
<@Derakon>
Let's keep this from blowing up too fast.
02:31
<@Derakon>
And since I haven't bothered to solve this yet myself, please post your work to the channel as you do it.
02:31<~Reiver> Remind me of the math for adding multiples
02:31<~Reiver> 1-(Reliability*Number)?
02:32
<@Derakon>
If you have 4 devices of reliability .8, then your overall reliability is 1 - (1 - .8)^4
02:32
<@Derakon>
That is, "the chance that any one device will fail, multiplied by the number of devices, subtract that from 1".
02:33<~Reiver> OK
02:33
<@Vornicus-Latens>
1-(1-reliability)^number
02:35<~Reiver> One item: A - $10, .6.
02:36
<@Derakon>
I changed the prices on you, sorry.
02:36
<@Derakon>
Didn't want to have 7 different possibilities going into round 2.
02:36<~Reiver> bah
02:37<~Reiver> 1A: (.6, 25). 2A: (.84, 50)
02:37
<@Derakon>
So far so good.
02:45
<@Derakon>
Any difficulties?
02:45<~Reiver> Trying to think, mostly
02:52<~Reiver> 1A1B: (.24, 40), 1A2B: (.384, 55), 1A3B: (.470, 70) 2A1B: (.504, 65), 2A2B: (.538, 70)
02:53<~Reiver> Cut down to
02:53
<@Derakon>
1A3B is invalid right off the bat.
02:53<~Reiver> 1A1B: (.24, 40), 1A2B: (.384, 55), 2A1B: (.504, 65), 2A2B: (.538, 70). 1A3B inferior to 2A2B.
02:54
<@Derakon>
1A3B is invalid because, having spent $70 on your first two devices, you can't afford any of the third device.
02:54
<@Derakon>
Ditto 2A1B and 2A2B.
02:55<~Reiver> Then we want to add C. Thus we need to cut out those that can't afford to add a new C.
02:55<~Reiver> 1A1B: (.24, 40), 1A2B: (.384, 55). 1A3B inferior to 2A2B. 2A1B, 2A2B overpriced.
02:57
<@Derakon>
Right.
02:57
<@Derakon>
At least, looks good to me.
02:59
<@Derakon>
Incidentally, you should be able to tell that 2A was invalid, since it left you with $20 for your remaining purchases -- and your minimum remaining cost was ($15 + $10).
03:00
<@Derakon>
That's just an optimization though.
03:02<~Reiver> 1A1B1C: (.192, 50), 1A1B2C: (.230, 60), 1A1B3C: (.238, 70). 1A2B1C: (.307, 65).
03:03<~Reiver> Invalidates 1A1B3C. Final line: 1A1B1C: (.192, 50), 1A1B2C: (.230, 60). 1A2B1C: (.307, 65).
03:03<~Reiver> Final answer: 1A2B1C.
03:03<~Reiver> Assuming the math is correct... concept correct?
03:04
<@Derakon>
I haven't double-checked your arithmetic yet, but you appear to have the hang of things.
03:04<~Reiver> Huh.
03:04
<@Derakon>
You think you can handle the assignment now? :)
03:04<~Reiver> That wasn't nearly as horrific as the description. ¬¬
03:05
<@Derakon>
Heh.
03:05
<@Derakon>
That's among the more poorly-written math I've ever read.
03:05<~Reiver> I think I handle the alograthm. The trick will now be telling a computer how to do it. Hmm.
03:05
<@Derakon>
The authors, I suspect, had a word limit.
03:15
<@Derakon>
(Hooray, I've justified my presence here for another month or so!)
03:15 cpux- [Moo@Nightstar-20a84089.dyn.optonline.net] has joined #code
03:16 * Reiver 's purpose here is to devour the brainmeats of the general populace.
03:17 cpux [Moo@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
03:17 cpux- is now known as cpux
03:20
<@Derakon>
And to op people as they enter~
03:20<~Reiver> Actually, that's a bug~
03:20
<@Derakon>
Yes. Have you figured out why it happens?
03:21<~Reiver> Nope.
03:21<~Reiver> It only ops people on the oplist.
03:21<~Reiver> I have no script that does it.
03:21
<@Derakon>
Yeah, it's like "ChanServ" got replaced by "Reiver" for this channel.
03:22<~Reiver> Especially because it only seems to happen in channels where I am admin...
03:22<~Reiver> ... and only in channels which involve me. Everyone elses channels just get Chanserv.
03:31
< Serah>
It's because he's a "smooth operator."
03:34<~Reiver> srk
03:34<~Reiver> +n
03:39 Vornicus-Latens [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: ]
04:30 Rhamphoryncus [rhamph@Nightstar-8931f88f.abhsia.telus.net] has joined #code
05:17 cpux is now known as shade_of_cpux
05:50 Attilla [Attilla@FBC920.482E2D.971EED.6317D6] has joined #code
05:50 mode/#code [+o Attilla] by Reiver
06:03 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
06:04 ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code
06:04 mode/#code [+o ToxicFrog] by Reiver
06:20 Derakon is now known as Derakon[AFK]
06:36 AnnoDomini [annodomini@Nightstar-3d074fc3.adsl.tpnet.pl] has joined #code
06:37 mode/#code [+o AnnoDomini] by Reiver
06:38 Attilla [Attilla@FBC920.482E2D.971EED.6317D6] has quit [[NS] Quit: ]
06:51 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection]
06:53 Shinoshi [IceChat7@Nightstar-f7ecf68f.res.rr.com] has joined #code
07:27 Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has quit [Ping timeout: 121 seconds]
07:29 Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds]
07:36 Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has joined #code
07:36 mode/#code [+o Kazriko] by Reiver
07:58 Zed [Zed@Nightstar-d7ade99d.or.comcast.net] has joined #code
08:23 Shinoshi [IceChat7@Nightstar-f7ecf68f.res.rr.com] has quit [[NS] Quit: Few women admit their age. Few men act theirs.]
08:35 Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has quit [Ping timeout: 121 seconds]
08:57 Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has joined #code
08:57 mode/#code [+o Kazriko] by Reiver
09:01 Zed [Zed@Nightstar-d7ade99d.or.comcast.net] has quit [Connection reset by peer]
09:03 Zed [Zed@Nightstar-d7ade99d.or.comcast.net] has joined #code
09:24 AnnoDomini [annodomini@Nightstar-3d074fc3.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
09:25
<@McMartin>
http://inform7.com/news/2010/04/12/april-development-update/
09:26 AnnoDomini [annodomini@Nightstar-97c41d62.adsl.tpnet.pl] has joined #code
09:26 mode/#code [+o AnnoDomini] by Reiver
09:48 You're now known as TheWatcher
10:10 * Reiver ponders.
10:11<~Reiver> Java lacks tuples.
10:11<~Reiver> Better to create an Object that has two values, then?
10:13
<@jerith>
Pair
10:14
<@jerith>
It's in the stlib, I believe.
10:16<~Reiver> hm
10:16<~Reiver> But if I call it a Pair, how then do I track just what I'm putting /in/ it? (That is, the counts of what items actually made up said pair)
10:24
<@jerith>
new Pair<Integer, String>(1, "foo");
10:37 AnnoDomini [annodomini@Nightstar-97c41d62.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
10:43<~Reiver> Hum
10:44<~Reiver> But I want Pair<Reliability, Cost> (Both floats, ofc)
10:44
< Rhamphoryncus>
What's the issue with Pair?
10:45<~Reiver> mostly that I want three things tracked.
10:45
<@jerith>
The type system deals with types, not meanings.
10:45<~Reiver> I know that.
10:45<~Reiver> I know that it would be Pair<Float,Float>
10:45<~Reiver> But I was trying to give you the idea of what I wanted in them :p
10:45
<@jerith>
So you pass around Pair<Double, Double> or whatever.
10:46<~Reiver> And I /still don't have the third bit of info/
10:46
< Rhamphoryncus>
by the third bit do you mean the labels?
10:46
<@jerith>
So you want a triple rather than a pair?
10:47
<@jerith>
Or do you want to keep "type" info in there as well?
10:48 * TheWatcher eyes
10:48
<@TheWatcher>
I suspect that Reiv is after something like a sparse 2D array
10:49
<@TheWatcher>
a count stored for a given reliabilty/cost pair
10:50<~Reiver> I need to store, hum. Reliability, Cost, and Foo. Foo being the last item added to get the current reliability and cost.
10:51
<@jerith>
A Map<Pair<Reliability, Cost>, Foo> perhaps?
10:51
< Rhamphoryncus>
So you have some sort of sequence where you're appending a new Foo, which results in a new Reliability and Cost?
10:51
<@jerith>
Oh, right, I misread that.
10:51<~Reiver> Rham: I'm solving the Knapsack Problem for reliability in a circuit of components.
10:52
< Rhamphoryncus>
okay, this really depends on how you want to use the data
10:52
< Rhamphoryncus>
Is Foo just one item or is it a set of items? I"m guessing a set
10:54
< Rhamphoryncus>
I'd guess you want to memoize the mapping of a set of items to their reliability and cost
10:54<~Reiver> okay what the heck does map do.
10:55
<@jerith>
It's like a dict() in Python.
10:55
<@jerith>
General key/value store.
10:56
< Rhamphoryncus>
Side note, tuple sucks for this sort of thing. You end up doing mypair[0] and mypair[1] when what you want is mypair.reliability and mypair.cost
10:56<~Reiver> So I should probably go with an Object afterall?
10:56
<@jerith>
The most commonly used implementation is HashMap, which uses a hash table.
10:56
< Rhamphoryncus>
Python has a namedtuple factory, but for java I'm guessing it's easiest to implement your own pair class
10:57
<@jerith>
In this case, you want a KnapsackContent class or something.
11:05<~Reiver> yeah.
11:12<~Reiver> hum.
11:12<~Reiver> Ho hum.
12:08 Orthia [orthianz@Nightstar-aac4b4ef.xnet.co.nz] has quit [Client closed the connection]
13:02 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
13:36 * gnolam stabs OpenOffice.
13:37
< gnolam>
No, I did not give you permission to vomit temp files all over the root directory.
13:38
< gnolam>
Blargh. And I thought I was going to manage to avoid installing that POS until summer.
13:38
< gnolam>
But apparently, it's time to earn that co-author credit...
13:45 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
14:25 AnnoDomini [annodomini@Nightstar-3e31b747.adsl.tpnet.pl] has joined #code
14:25 mode/#code [+o AnnoDomini] by Reiver
14:36 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
15:51
<@ToxicFrog>
gnolam: threaten your co-author's kneecaps until they switch to LaTeX
15:51 * jerith wouldn't really want to coauthor a paper with people who used such inferior tools.
15:51
<@jerith>
Although it's about an order of magnitude better than Word.
15:52
< Namegduf>
Haha.
15:52
<@jerith>
I actually ended up using LaTeX via OpenOffice's equation editor.
16:20 * Rhamphoryncus kicks linux
16:22
< Namegduf>
* Linux bites Rhamphoryncus
16:23
< Rhamphoryncus>
Not with your usb port you don't. It's not working :P
16:23
< Rhamphoryncus>
Can't mount usb flash drives or my camera
16:24
< Namegduf>
Very strange.
16:58
< gnolam>
ToxicFrog: Eh, non-computer scientists.
17:00
<@ToxicFrog>
...so?
17:09
< gnolam>
So they're not from a culture of LaTeX use.
17:20
<@ToxicFrog>
It really is not that hard to learn, there's even WYSIWYG-ish editors for it if they're afraid of curlybraces.
17:26
< gnolam>
The deadline is on Thursday, so I doubt I'll be able to make a case for it. :)
17:59
<@ToxicFrog>
Aah.
17:59
<@ToxicFrog>
Next time, then~
18:03
< gnolam>
And besides, I'm just a simple et al. ;)
18:17 Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
19:40 Alek [omegaboot@Nightstar-7ff8f4eb.il.comcast.net] has joined #code
20:47 Rhamphoryncus [rhamph@Nightstar-8931f88f.abhsia.telus.net] has quit [Client exited]
22:52 McMartin [mcmartin@Nightstar-3c130f1a.pltn13.sbcglobal.net] has quit [[NS] Quit: kernel upgrade]
22:58 McMartin [mcmartin@Nightstar-3c130f1a.pltn13.sbcglobal.net] has joined #code
22:58 mode/#code [+o McMartin] by Reiver
23:06 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has joined #code
23:06 mode/#code [+o Derakon] by Reiver
23:07
<@Derakon>
Bug report: "The access points for Cirith Ungol appear to have been replaced with two extra copies of the Jedi Enclave."
23:08
< Namegduf>
Sounds like a reasonable mistake.
23:10
< gnolam>
Heh
23:10
< gnolam>
Context? :)
23:10
<@Derakon>
Furyband, an Angband variant.
23:10
<@Derakon>
More specifically, a variant of ToME.
23:10 AnnoDomini [annodomini@Nightstar-3e31b747.adsl.tpnet.pl] has quit [[NS] Quit: If you have a problem, throw frost giants at it until it stops being a problem.]
23:10
<@Derakon>
Which is itself a variant of ZAngband...
23:10
<@Derakon>
And Angband is of course a variant of Moria, which is a variant of Rogue...
23:30 shade_of_cpux is now known as cpux
23:31
<@McMartin>
zOMGband remains on my list of Things I Don't Have Time To Write.
23:55 * McMartin prods libpng while his real code compiles.
--- Log closed Wed Apr 14 00:00:25 2010
code logs -> 2010 -> Tue, 13 Apr 2010< code.20100412.log - code.20100414.log >