←2010-12-19 2010-12-20 2010-12-21→ ↑2010 ↑all
00:00:50 * Mathnerd314 will get some when the getting's good. (but not before)
00:05:09 <oerjan> Mathnerd314: ah but when ordinary people _think_ the getting's good is just when schemes are about to collapse >:)
00:06:01 <oerjan> (applies to stocks, pyramid schemes and bubbles in general)
00:06:03 <Mathnerd314> oerjan: what makes you think I'm an ordinary person?
00:07:45 <oerjan> Mathnerd314: believing you are smarter than the market is the first warning sign >:)
00:07:54 <oerjan> (also a lack of sense of humor)
00:08:31 <Mathnerd314> hmm, I'll agree I should take an economics course or two, but it's pretty hard to claim I'm dumber than average
00:09:07 <Mathnerd314> (and I do have a sense of humor; I just don't use it since it tends to distract from the point at hand)
00:13:47 -!- cheater99 has joined.
00:14:44 <elliott> what oerjan said
00:15:24 <coppro> everyone should take an economics course
00:15:30 <elliott> Sgeo_: well i object to any use of bitcounts to sell data.
00:15:33 <elliott> Sgeo_: other than that i have no opinion
00:15:34 <coppro> it should be a prequisite to having an opinion
00:16:39 <elliott> coppro: and to hell with anyone who self-educates amirite
00:17:00 <coppro> elliott: self-education is ok. but you have to pass the test.
00:17:28 <elliott> coppro: heh. guess that'll ensure economics doesn't get too much innovation then!
00:17:44 <coppro> elliott: no, you're still allowed to innovate
00:17:47 <coppro> just not to have an opinion
00:18:31 <elliott> coppro: obviously you're not being serious, but that doesn't stop you being stupid too.
00:19:30 <coppro> elliott: I was only half kidding
00:19:48 <coppro> people should actually not be allowed to argue about government spending until they know the definition of the word "externality"
00:19:50 <elliott> coppro: indeed. it's the best way to say wrong things without being called out on it.
00:19:52 <elliott> (note: cynical)
00:20:16 <elliott> coppro: there are plenty of autodidactic geniuses. and there are plenty of college-educated morons.
00:20:31 <elliott> who passed exams, even.
00:20:53 <coppro> elliott: I know this fact
00:21:34 -!- cheater99 has quit (Read error: Connection reset by peer).
00:27:03 <pikhq> Everyone should know economics. *Especially* anyone who thinks about touching anything to do with the government.
00:27:35 <pikhq> Also, stupidity should be more painful.
00:27:49 <elliott> I support this painful-stupidity proposal
00:28:14 * oerjan is strongly against
00:28:49 <elliott> oerjan: But think of the politicians screaming in pain on the TV.
00:28:57 <pikhq> And the voters!
00:28:59 <elliott> oerjan: (It would trigger for doing stupid things, not for being stupid, which is a different thing entirely.)
00:32:08 -!- majawana has joined.
00:36:59 <elliott> Lava pit at (-2241,1966).
00:37:06 <elliott> ((x,z))
00:38:15 -!- cheater99 has joined.
00:39:52 <elliott> Nice tree at (-2009,1653); however I want wood so it shall die.
00:41:32 -!- cheater99 has quit (Read error: Connection reset by peer).
00:43:12 <Sgeo_> I want to slap everyone who thinks of Bitcoins as a way to be free of transaction fees
00:44:48 -!- hagb4rd has joined.
00:50:30 -!- pikhq has quit (Ping timeout: 260 seconds).
00:50:46 <elliott> Supposedly "VORPAL WAS HERE".
00:52:52 <elliott> (-1777,1324) -- nice cave. Explore sometime.
00:57:26 <elliott> There used to be clay at (-1675,966), but it's all mine now.
00:57:51 <elliott> Pretty damn tall dual-bodied tree just after that, too.
00:58:13 -!- cheater99 has joined.
01:03:05 -!- cheater99 has quit (Read error: Connection reset by peer).
01:03:49 -!- hIchamAT has joined.
01:04:32 -!- hIchamAT has left (?).
01:19:05 <olsner> great, there's a convenient instruction for swapping the 'gs' segment when entering/leaving the kernel, but interrupt handlers can be called from both user and kernel mode - you need to figure out which context you came from and swapgs conditionally
01:20:58 -!- cheater99 has joined.
01:23:58 <elliott> I DID IT
01:25:52 -!- cheater99 has quit (Read error: Connection reset by peer).
01:32:53 <Vorpal> elliott, did what?
01:33:05 <elliott> Vorpal: walked from (-4000,4000) to spawn
01:33:09 <elliott> you had a sign on the way, i put one next to it
01:33:18 <Vorpal> elliott, what did that sign say
01:33:23 <Vorpal> I completely don't remember it
01:33:33 <elliott> Vorpal: VORPAL / WAS / HERE
01:33:40 <Vorpal> elliott, wasn't that on the very marker?
01:33:44 <elliott> ?
01:33:49 <elliott> -4000, not 4000
01:33:52 <elliott> it's north-ways
01:33:55 <Vorpal> elliott, oh
01:33:56 <elliott> Vorpal: I put "BUT THEN EHIRD WAS HERE AND IT WAS MUCH COOLER" next to it, anyway. :p
01:34:02 <Vorpal> elliott, :P
01:34:34 <Vorpal> elliott, the marker at 4k,4k has a sign on top saying "Vorpal was here, and he was great"
01:35:49 -!- Slereah has quit (Ping timeout: 276 seconds).
01:36:48 <elliott> Vorpal: Anyway, pull mcmap; it has been muchly modified today.
01:40:13 -!- Slereah has joined.
01:43:36 -!- cheater99 has joined.
01:43:46 <elliott> Vorpal: hm interesting http://www.minecraftwiki.net/wiki/Griefing doesn't list /anything/ about teleportation
01:43:56 <elliott> I think fizzie may be the first one to discover this rather crippling bug.
01:45:53 <Deewiant> The Hacks subsection lists flying and noclip, which are arguably worse
01:46:21 <elliott> Deewiant: Arguably?
01:46:25 <elliott> Deewiant: This thing can take down a server for minutes.
01:46:37 <elliott> Deewiant: Hell, arbitrary lengths of time (travel to 2^60 anyone?)
01:46:52 <Deewiant> Oh right, the DOS thing
01:46:55 <Deewiant> Forgot about that
01:47:23 -!- cheater99 has quit (Read error: Connection reset by peer).
01:48:06 <elliott> Deewiant: Maybe I should tell Notch about it on Twitter by pinging him -- you know, full disclosure and all that... :-P
01:50:16 <elliott> Deewiant: Oh, and you could fill up some poor bastard's disk too.
02:01:53 <elliott> Vorpal: Yes. At risk.
02:02:29 -!- zzo38 has joined.
02:03:25 <elliott> Vorpal: Are you so much at risk that you've given up playing?
02:03:52 -!- cheater99 has joined.
02:04:09 <Vorpal> elliott, details
02:05:39 -!- cheater99 has quit (Read error: Connection reset by peer).
02:22:24 -!- cheater99 has joined.
02:22:27 <majawana> who's up for some coffee?
02:25:18 <elliott> yes
02:25:53 -!- cheater99 has quit (Read error: Connection reset by peer).
02:26:47 -!- majawana has left (?).
02:37:18 -!- augur has quit (Remote host closed the connection).
02:38:08 <zzo38> I want no coffee, please
02:40:41 <elliott> Vorpal: how's it a mess?
02:42:24 -!- cheater99 has joined.
02:44:13 <Vorpal> elliott, well... it's messy
02:44:14 <Vorpal> !
02:44:38 -!- cheater99 has quit (Read error: Connection reset by peer).
02:45:48 -!- augur has joined.
03:01:21 -!- cheater99 has joined.
03:04:05 -!- cheater99 has quit (Read error: Connection reset by peer).
03:15:06 -!- zeotrope has quit (Ping timeout: 265 seconds).
03:15:26 -!- hagb4rd has quit (Ping timeout: 240 seconds).
03:20:24 <Vorpal> oerjan, there?
03:20:31 <Vorpal> oerjan, math question
03:20:36 -!- cheater99 has joined.
03:20:49 <oerjan> AAAAAAAAAAAAAAAAAAAaa
03:20:51 <Vorpal> oerjan, for every m in Z_+ there is an n in Z_+ such that m^n (mod 65) == 64
03:20:55 <Vorpal> oerjan, that is the theory
03:20:56 <oerjan> i mean, hi
03:20:57 <Vorpal> is it true?
03:21:22 <oerjan> oh hm
03:21:32 <oerjan> lessee 65 = 13*5
03:21:48 <Vorpal> oerjan, it was something with prime, right
03:22:10 <oerjan> ok so it's false e.g. for m = 5
03:22:13 <Vorpal> hm
03:22:31 <Vorpal> actually the equation is not correct for the problem
03:22:43 <Vorpal> since the problem in question gives 1 after 64
03:22:46 <Vorpal> there is no 0
03:22:54 <Vorpal> (stacking items in minecraft)
03:23:07 <elliott> so it's mod_63 really
03:23:07 <Vorpal> so wrong equation
03:23:07 -!- cheater99 has quit (Read error: Connection reset by peer).
03:23:22 <Vorpal> elliott, but then you couldn't get stacks of 64
03:23:30 <elliott> 0 = stack of 1
03:23:33 <elliott> 1 = stack of 2
03:23:34 <elliott> ...
03:23:40 <Vorpal> hm
03:23:41 <elliott> erm
03:23:42 <Vorpal> ah
03:23:42 <elliott> mod_64 really
03:23:43 <elliott> then
03:23:45 <elliott> 63 = stack of 64
03:24:15 <Vorpal> $ factor 64
03:24:15 <Vorpal> 64: 2 2 2 2 2 2
03:24:54 <Vorpal> elliott, yet 3 works
03:25:39 <oerjan> Vorpal: actually the primeness has nothing to do with it, it's false for m = 65 which obviously generalizes
03:25:48 <oerjan> (that equation)
03:25:49 -!- boily has joined.
03:26:44 <Vorpal> oerjan, hm
03:27:24 <Vorpal> oerjan, then same question but given that instead of 0 it goes to 1
03:27:42 <Vorpal> oerjan, so that f(64) = 64, f(65) = 1
03:27:54 <oerjan> Vorpal: you haven't yet defined anything clearly
03:28:00 <Vorpal> oerjan, true
03:28:05 <Vorpal> oerjan, I don't know how to define it
03:28:15 <Vorpal> oerjan, it is an iterative algorithm I want to study really
03:28:25 <oerjan> well then give the bloody algorithm
03:28:29 <Vorpal> oerjan, yeah
03:28:31 <Vorpal> lets see
03:28:58 <Vorpal> you have a number m. You can perform one operation on it. That operation is to double it
03:29:00 <Vorpal> however
03:29:21 <Vorpal> if it goes to 65 you get 1 back
03:29:33 <oerjan> what if it goes _above_ 65?
03:29:40 <Vorpal> anything above 64 gives you the value - 64
03:29:46 <oerjan> ok
03:29:47 <Vorpal> such that 66 - 64 = 2
03:29:49 <Vorpal> and so on
03:30:06 <elliott> oerjan: basically there's a bug. you can duplicate a stack of N into two stacks of N.
03:30:19 <oerjan> f(x) = let y = 2*x in if y > 64 then y-64 else y
03:30:21 <elliott> oerjan: vorpal wants to know: if you duplicate a stack until you have a 64 stack + leftovers, then do the same to the leftovers
03:30:23 <Vorpal> oerjan, now, will repeatedly duping it sooner or later give you exactly 64
03:30:25 <elliott> oerjan: do you ever end up with just 64s?
03:30:26 <elliott> and no leftovers
03:30:45 <Vorpal> so far most it took me is 3 "wraparounds"
03:31:31 <oerjan> oh hm well this is the same as doubling mod 64, really
03:31:40 <oerjan> and asking whether you ever reach 0
03:31:53 <Vorpal> oerjan, maybe.
03:31:54 <oerjan> which is indeed true
03:32:00 <Vorpal> oerjan, for all starting values?
03:32:08 <Vorpal> right
03:32:16 <oerjan> six doublings gives you 0 (mod 64)
03:32:22 <Vorpal> right
03:34:06 <oerjan> a stack of odd size should give you that in exactly six
03:34:16 <Vorpal> oerjan, probably
03:34:28 <Vorpal> hm
03:34:33 <Vorpal> oerjan, how do you calculate that
03:34:40 <Vorpal> just out of interest
03:34:42 -!- hagb4rd has joined.
03:34:48 <oerjan> oh and i think the most wraparounds are if you start with 63
03:35:18 <coppro> Vorpal: 2^6 = 64
03:35:24 <Vorpal> ah right
03:35:39 <oerjan> Vorpal: well it hits 0 (mod 64) when the number becomes divisible by 2 six times, each doubling adds one
03:36:46 <oerjan> 63 -> 62 -> 60 -> 56 -> 48 -> 32 -> 64 with all except the last step wrapping
03:36:57 -!- Quadrescence has quit (Quit: omghaahhahaohwow).
03:37:30 <Vorpal> ah right
03:38:11 <oerjan> and that's the most you can get, since the final step hitting 64 cannot wrap
03:38:27 <Vorpal> indeed
03:38:38 -!- augur has quit (Ping timeout: 240 seconds).
03:38:57 <oerjan> actually the number of wraps is the same as the number of set bits minus 1, i think
03:39:05 <Vorpal> hah
03:39:06 <oerjan> oh wait
03:39:32 <oerjan> yes, i think so
03:39:38 -!- cheater99 has joined.
03:39:56 <Vorpal> elliott, ls ~/.minecraft/resources/streaming
03:40:05 <Vorpal> elliott, those are records
03:40:15 <Vorpal> elliott, but we only have two records
03:40:18 <Vorpal> yet there are more .mus
03:40:20 <Vorpal> huh
03:40:20 <elliott> yes, c4183274982347whatever has mentioned it
03:40:30 <Vorpal> elliott, so how can we get the other .ogg
03:40:40 <Vorpal> elliott, that are missing
03:40:46 <Vorpal> $ ls
03:40:46 <Vorpal> 11.mus 13.mus 13.ogg blocks.mus cat.mus cat.ogg chirp.mus far.mus mall.mus mellohi.mus stal.mus strad.mus ward.mus where are we now.mus
03:40:47 <Vorpal> I mean
03:40:58 <elliott> shrug
03:41:01 <Vorpal> surely we can extract the missing ones somehow
03:41:15 <elliott> .mus looks like Finale music score
03:41:19 <elliott> or
03:41:23 <elliott> "SCORE Music Publishing System"
03:41:26 <Vorpal> elliott, they are "data" days file
03:41:43 <elliott> I would guess Finale.
03:41:43 <elliott> *Maybe.*
03:41:49 <Vorpal> elliott, don't think so
03:42:01 <Vorpal> why would he distribute that
03:42:02 -!- cheater99 has quit (Read error: Connection reset by peer).
03:42:12 <Ilari> oerjan: BTW: Grains are quite nasty for digestive system. And the bad effects are not limited to digestive system, those can show up as who knows what problems in who knows where (joints, heart, brain, you name it...).
03:42:14 <elliott> shrug
03:42:19 <Vorpal> elliott, probably just metadata
03:42:30 <elliott> -rw-r--r-- 1 elliott elliott 1.5M Nov 10 18:00 /home/elliott/.minecraft/resources/streaming/strad.mus
03:42:32 <elliott> Vorpal: DOUBTFUL
03:42:39 <elliott> probably some tracker thing
03:42:39 <Vorpal> elliott, hm
03:42:40 <elliott> maybe
03:42:45 <Vorpal> elliott, yeah
03:42:45 <elliott> -rw-r--r-- 1 elliott elliott 1.1M Nov 10 17:59 13.mus
03:42:45 <elliott> -rw-r--r-- 1 elliott elliott 1.1M Nov 10 17:59 13.ogg
03:42:48 <elliott> -rw-r--r-- 1 elliott elliott 1.3M Nov 10 17:59 cat.mus
03:42:48 <elliott> -rw-r--r-- 1 elliott elliott 1.3M Nov 10 17:59 cat.ogg
03:42:49 <elliott> insert obvious theory
03:43:01 <Vorpal> elliott, xor?
03:43:12 <elliott> Vorpal: maybe binary audio data but in another format. but sure, xor to see if you can get the ogg header
03:43:23 -!- hagb4rd has quit (Ping timeout: 240 seconds).
03:43:25 <Vorpal> elliott, didn't you write a program for it?
03:43:53 <Vorpal> elliott, exactly as many bytes long
03:44:07 <Vorpal> if different format I would expect it to differ a bit
03:45:10 <elliott> Vorpal: a program for what?
03:45:14 <elliott> but yeah, i expect they're the same data
03:45:29 <Vorpal> elliott, a program for xoring router firmware
03:46:05 <elliott> Vorpal: oh. no, i stole one off the interwebs
03:46:13 -!- boily has quit (Quit: leaving).
03:46:14 <elliott> but uh, it's just putchar(getchar()^3590835904) :P
03:46:18 <elliott> easy to do with even python
03:46:21 <elliott> since all you need to find is the ogg header
03:47:11 <Vorpal> yeah
03:47:15 <Vorpal> elliott, btw http://www.minecraft.net/resources/
03:48:00 <elliott> heh
03:48:08 <elliott> wonder if you can replace them easily? probably already done
03:49:34 <Vorpal> elliott, anyway "meh" at trying to figure out scheme for "encryption"
03:49:49 <Vorpal> elliott, presumably decompiling is easier
03:49:50 <elliott> "meh" at iterating through 256 values, xoring a few bytes, and comparing them? srsly?
03:50:01 <Vorpal> elliott, meh at writing any code this time of the day
03:50:34 -!- augur has joined.
03:50:58 -!- hagb4rd has joined.
03:52:01 <elliott> Vorpal: Well, it's not a simple xor cipher.
03:52:11 <Vorpal> elliott, oh?
03:52:29 <elliott> Tested all combos.
03:52:32 <elliott> 'O,\x8d\xbf'
03:52:37 <elliott> Should be OggS.
03:52:47 <Vorpal> huh
03:53:53 <oerjan> to xor, xor not to xor, that is the question
03:54:15 <elliott> might be iterative xor of some kind, whatever
03:57:18 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
03:58:38 -!- cheater99 has joined.
03:58:38 <zzo38> I sometimes make a stupid mistake. I made a stupid mistake I accidentally typed q=malloc(strlen(s)+strlen(stack_ptr->text)); instead of q=malloc(strlen(s)+strlen(stack_ptr->text)+1); but I fixed it now. Now it can do things like this:
03:58:44 <zzo38> <[:]ra+s2s1[Al1rl2xY]xD>
03:58:47 <zzo38> <[:]ra+s2[;]ra+s10[ddl1xrl2x1+d256-0 1diQY]xD>
03:59:52 <zzo38> Do you think I made some progress with this program now? (I added various other features too, including a few fixed and new data structures.)
04:00:38 -!- hagb4rd2 has joined.
04:00:51 <zzo38> It actually has some similarities to dc and Underload. Do you think it is?
04:02:14 -!- hagb4rd has quit (Ping timeout: 240 seconds).
04:03:57 -!- cheater99 has quit (Read error: Connection reset by peer).
04:04:04 <zzo38> Any Underload program without S can be directly written in TeXnicard by converting one character to one character, in fact.
04:07:03 <Vorpal> XD
04:07:16 <Vorpal> night →
04:12:56 -!- elliott has quit (Quit: Leaving).
04:13:21 <zzo38> Hay you! What time is it on the moon right now?
04:14:09 <oerjan> heh
04:15:37 <oerjan> i think that question doesn't have a definite answer
04:16:52 <oerjan> any more than "what time is it on earth now" does
04:18:53 <zzo38> oerjan: I believe you.
04:19:53 -!- cheater99 has joined.
04:20:27 <oerjan> although in addition, the day on the moon is a lot longer than on earth, about a month long
04:20:44 <zzo38> Do you like my general plan of TeXnicard? (The plan is it makes .tex and .mf and so on from the .cards file, and then .dvi and .*gf, and then from those it creates MIFF and send the results to ImageMagick to process.)
04:21:07 <zzo38> (Which means, that to use TeXnicard, you also need TeX, METAFONT, and ImageMagick.)
04:21:12 <oerjan> because the moon always has the same face towards the earth, and goes around in a (moon, not calendar) month
04:21:18 <oerjan> *around it
04:22:34 <oerjan> although it's still short compared to venus's day which is only a bit different from a venus _year_
04:22:36 <zzo38> oerjan: Yes, that is what a "month" is, isn't it?
04:22:48 -!- Wamanuz4 has joined.
04:23:32 <oerjan> yeah but the calendar months aren't exactly those months in our calendar, because they were stretched to get exactly 12 in a year
04:23:32 -!- cheater99 has quit (Read error: Connection reset by peer).
04:24:05 <oerjan> unlike the islamic and jewish ones, afair
04:24:10 <zzo38> oerjan: Yes. I know that.
04:24:38 <oerjan> and probably the chinese too iirc
04:26:20 -!- Wamanuz3 has quit (Ping timeout: 264 seconds).
04:30:11 <zzo38> Will you be part of the TeXnicard contest?
04:30:28 <oerjan> no.
04:30:44 <zzo38> Have you ever used Magic Set Editor?
04:30:56 <oerjan> no.
04:31:48 <zzo38> Do you have any high resolution templates for Magic: the Gathering cards? I should need templates with a better quality than the ones Wizards of the Coast uses.
04:32:56 * oerjan leaves that question for anyone else who might play magic
04:35:42 -!- pikhq has joined.
04:38:00 <pikhq> http://www.engadget.com/2010/12/19/wireless-carriers-openly-considering-charging-per-service/ FUCK YOU PHONE COMPANIES.
04:38:03 <pikhq> FUCK YOU.
04:39:32 <zzo38> Of course, Magic: the Gathering might not be the first templates we make for TeXnicard. But it should be done eventually. However, none of these templates will be included with TeXnicard, you will have to download them separately, because they are not part of TeXnicard.
04:40:23 -!- cheater99 has joined.
04:42:53 -!- cheater99 has quit (Read error: Connection reset by peer).
04:46:14 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
04:46:27 -!- evincar has joined.
04:49:33 -!- poiuy_qwert has joined.
04:59:23 -!- cheater99 has joined.
05:02:32 -!- cheater99 has quit (Read error: Connection reset by peer).
05:10:49 -!- Sgeo_ has joined.
05:19:23 -!- cheater99 has joined.
05:22:02 -!- cheater99 has quit (Read error: Connection reset by peer).
05:36:35 -!- evincar has left (?).
05:38:16 -!- pikhq has quit (Ping timeout: 265 seconds).
05:38:23 -!- cheater99 has joined.
05:39:51 -!- pikhq has joined.
05:40:28 -!- cheater99 has quit (Read error: Connection reset by peer).
05:52:38 -!- hagb4rd2 has quit (Ping timeout: 240 seconds).
05:57:23 -!- cheater99 has joined.
06:00:08 -!- cheater99 has quit (Read error: Connection reset by peer).
06:16:23 -!- cheater99 has joined.
06:19:16 -!- cheater99 has quit (Read error: Connection reset by peer).
06:20:04 <Sgeo_> I'm addicted to blockexplorer.com
06:20:31 <coppro> bitcoin is dumb
06:20:42 <coppro> it's too scarce
06:24:52 <coppro> ais523: hey, quick random questoin
06:25:04 <coppro> why does ESR associate you with Discordianism here: http://esr.ibiblio.org/?p=2491
06:28:39 <zzo38> Would you be interested in a program converting MSE set symbol files into TeXnicard format?
06:31:33 <coppro> not really
06:31:45 <coppro> I haven't touched MSE code at all in a while
06:31:59 <pikhq> zzo38: Oh, right, you're making something much less revolting than MSE!
06:32:00 <pikhq> :D
06:32:24 <zzo38> This would probably be done by writing METAFONT macros for the various symbol combines, symmetry, and so on, in .mse-symbol files.
06:32:40 <zzo38> pikhq: Are you interested in MSE and/or TeXnicard?
06:33:21 <pikhq> zzo38: I'm a bit interested in TeXnicard, because my experience using MSE in the past has been rather painful.
06:33:51 <pikhq> Especially the Linux port.
06:33:57 <pikhq> Sorry, coppro, but ow.
06:34:50 <zzo38> pikhq: OK. Do you have any suggestions/comments for TeXnicard? I might consider them. (I also found MSE a bit painful, which is one of the reasons I am writing TeXnicard. In addition, it should run the same on Linux as Windows, no need to make separate ports.)
06:35:23 -!- cheater99 has joined.
06:35:33 <pikhq> zzo38: Currently, no real comments, except "Ooooh, good typesetting".
06:35:49 <pikhq> zzo38: Oh, well. It would be nice if it were easier to create new templates for cards.
06:36:08 <pikhq> MSE's whole spriting approach is a bit obtuse.
06:36:26 <zzo38> pikhq: Well, yes, it will use TeX for typesetting the cards (and ImageMagick for rendering them).
06:37:04 <zzo38> pikhq: Yes, it would be nice for a better way to create new templates. What would be good is some GUI program that allows placing the fields.
06:37:16 <pikhq> Mmm.
06:37:54 <coppro> pikhq: no offense taken
06:38:03 <coppro> linux port is a rickety thing at bets
06:38:04 <zzo38> After writing the main TeXnicard program, I might write some additional utilities, which can be used for such things as these.
06:38:04 <coppro> *best
06:38:09 <coppro> which is kind of why I gave up
06:38:27 -!- cheater99 has quit (Read error: Connection reset by peer).
06:38:32 <pikhq> coppro: I know I spent a full freaking day patching it to *build*.
06:38:36 <pikhq> Not *work*, just *build*.
06:39:04 <pikhq> I'd probably have better luck going through winelib.
06:40:45 <zzo38> pikhq: Well, then good thing that TeXnicard probably will not require any such things as that. If it does require a few patches though, they should be very few, and can be made in a .ch file.
06:41:30 <coppro> pikhq: really? yuk
06:41:38 <coppro> I can at least get it to build
06:41:49 <coppro> but then again, autoconf is happy with my system
06:41:56 <coppro> (which is itself a miracle)
06:42:08 <zzo38> coppro: What things don't work with MSE in Linux?
06:42:15 <coppro> zzo38: oh, lots of things
06:42:28 <coppro> zzo38: there's one menu that crashes it about 50 % of the time
06:42:37 <coppro> it's like my arch-nemesis
06:42:44 <coppro> there's some bug deep in wx it's triggering I think
06:43:04 <pikhq> coppro: I was using Gentoo at the time.
06:43:12 <pikhq> coppro: And Gentoo tends to expose a *lot* of build system bugs.
06:43:19 <coppro> or some random arbitrary input restriction that the debug build doesn't check for and is inconsistent across platforms
06:43:28 <coppro> wxWidgets absolutely loves those
06:43:54 <coppro> wxWidgets is a piece of shit
06:45:00 <zzo38> Well, obviously I am not using wxWidgets for TeXnicard. (Any utility programs that go with it probably won't use wxWidgets either.)
06:45:09 <coppro> zzo38: I would hope
06:45:19 <coppro> I would not wish wxWidgets upon anyone
06:45:31 <pikhq> Cross-platform UI is basically agony.
06:46:00 <pikhq> Qt is probably the best. wxWidgets... Works sometimes.
06:46:23 <pikhq> GTK is, of course, not native anywhere but X.
06:49:13 <coppro> yeah
06:49:18 <coppro> but Qt has its own pains
06:49:30 <pikhq> Yeah, it does.
06:50:03 <zzo38> Well, I will figure out what GUI toolkit (if any) to use, when it is time to write the utility programs.
06:52:00 <zzo38> What pains does Qt have?
06:52:19 <pikhq> Windows and OS X.
06:52:38 <coppro> also build steps
06:53:01 <coppro> build systems suck enough already that you don't need MOC to screw things up more
06:54:13 <zzo38> Do you have any advice for me to make TeXnicard, in terms of: random number generators, sorting and grouping, pattern matching, word form adjustment (such as plurals and number to words), ?
06:54:53 -!- cheater99 has joined.
06:55:27 <coppro> RNG: don't write it yourself, pick a solid algorithm
06:55:44 <coppro> sorting: don't write it yourself, pick a solid algorithm
06:55:44 -!- cheater99 has quit (Read error: Connection reset by peer).
06:55:55 <coppro> pattern matching: don't write it yourself, use ML
06:56:15 <pikhq> coppro: TeX.
06:56:21 <pikhq> coppro: He's writing it himself.
06:56:22 <pikhq> :)
06:56:51 <zzo38> coppro: OK, then what solid algorithms should be used?
06:57:30 <zzo38> (For sorting, C does have a qsort command for sorting, which could be used for a part of it, maybe)
06:57:41 <zzo38> And what is ML?
07:00:22 <coppro> pikhq: I know :P
07:00:28 <coppro> rofl
07:00:47 <oerjan> zzo38: i think that ML part was a joke
07:00:53 -!- hagb4rd has joined.
07:01:32 <zzo38> oerjan: OK.
07:01:47 <zzo38> But what algorithm to use for random numbers, which is suitable for this program?
07:03:24 <zzo38> And again, what would be best for matching patterns and keywords?
07:04:02 <oerjan> although of course ML _is_ good for writing languages in
07:07:34 -!- pikhq has quit (Ping timeout: 255 seconds).
07:09:31 -!- pikhq has joined.
07:12:05 -!- cheater99 has joined.
07:14:43 -!- cheater99 has quit (Read error: Connection reset by peer).
07:31:23 -!- cheater99 has joined.
07:34:06 -!- cheater99 has quit (Read error: Connection reset by peer).
07:36:17 -!- zzo38 has quit (Remote host closed the connection).
07:37:25 -!- pikhq has quit (Ping timeout: 260 seconds).
07:39:04 -!- pikhq has joined.
07:50:53 -!- cheater99 has joined.
07:53:14 -!- cheater99 has quit (Read error: Connection reset by peer).
07:59:23 -!- hagb4rd has quit (Ping timeout: 240 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:10 -!- Sgeo_ has quit (Quit: Leaving).
08:02:13 -!- hagb4rd has joined.
08:09:38 -!- cheater99 has joined.
08:13:12 -!- cheater99 has quit (Read error: Connection reset by peer).
08:17:10 -!- ais523 has quit (Remote host closed the connection).
08:28:23 -!- cheater99 has joined.
08:30:28 -!- cheater99 has quit (Read error: Connection reset by peer).
08:47:23 -!- cheater99 has joined.
08:49:36 -!- cheater99 has quit (Read error: Connection reset by peer).
09:01:39 <fizzie> "Included in the release today is leaf decay, working server-side inventory, throwable eggs, and less system hungry servers."
09:01:48 <fizzie> I give that thing rather good odds of breaking mcmap.
09:04:25 <oerjan> BUT CAN YOU MAKE OMELETTES?
09:06:23 -!- cheater99 has joined.
09:08:58 <fizzie> Maybe if you craft a bucket of lava, an iron ingot and an egg together.
09:09:03 -!- cheater99 has quit (Read error: Connection reset by peer).
09:10:29 -!- sftp_ has joined.
09:10:49 -!- sftp has quit (Ping timeout: 240 seconds).
09:25:38 -!- cheater99 has joined.
09:28:02 -!- cheater99 has quit (Read error: Connection reset by peer).
09:44:23 -!- cheater99 has joined.
09:47:42 -!- cheater99 has quit (Read error: Connection reset by peer).
09:53:01 -!- sftp has joined.
09:53:05 -!- sftp_ has quit (Ping timeout: 250 seconds).
10:00:29 -!- sftp_ has joined.
10:00:35 <nooga>
10:00:53 -!- sftp has quit (Ping timeout: 250 seconds).
10:04:21 -!- cheater99 has joined.
10:07:35 -!- cheater99 has quit (Read error: Connection reset by peer).
10:19:43 -!- cheater99 has joined.
10:21:05 -!- atrapado has joined.
10:23:42 -!- cheater99 has quit (Read error: Connection reset by peer).
10:27:50 -!- hagb4rd has quit (Ping timeout: 240 seconds).
10:39:42 -!- cheater99 has joined.
10:40:31 -!- cheater99 has quit (Read error: Connection reset by peer).
10:42:07 -!- sftp has joined.
10:42:38 -!- sftp_ has quit (Ping timeout: 240 seconds).
10:46:36 -!- sftp_ has joined.
10:47:00 -!- sftp has quit (Ping timeout: 272 seconds).
10:56:57 -!- cheater99 has joined.
10:58:29 -!- cheater99 has quit (Read error: Connection reset by peer).
11:03:28 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:05:38 -!- poiuy_qwert has joined.
11:10:30 -!- sftp has joined.
11:12:09 -!- wareya has quit (Read error: Connection reset by peer).
11:12:13 -!- sftp_ has quit (Ping timeout: 276 seconds).
11:13:01 -!- wareya has joined.
11:15:17 -!- cheater99 has joined.
11:17:00 -!- sftp_ has joined.
11:17:24 -!- sftp has quit (Ping timeout: 272 seconds).
11:19:02 -!- cheater99 has quit (Read error: Connection reset by peer).
11:23:58 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:25:38 -!- poiuy_qwert has joined.
11:35:45 -!- cheater99 has joined.
11:39:07 -!- cheater99 has quit (Read error: Connection reset by peer).
11:43:58 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:45:38 -!- poiuy_qwert has joined.
11:55:49 -!- cheater99 has joined.
11:58:26 -!- sftp_ has quit (Remote host closed the connection).
12:00:14 -!- cheater99 has quit (Read error: Connection reset by peer).
12:03:58 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:05:25 -!- Quadrescence has joined.
12:05:38 -!- poiuy_qwert has joined.
12:16:47 -!- cheater99 has joined.
12:18:58 -!- atrapado has quit (Remote host closed the connection).
12:19:51 -!- cheater99 has quit (Read error: Connection reset by peer).
12:23:58 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:25:38 -!- poiuy_qwert has joined.
12:30:40 -!- pikhq has quit (Ping timeout: 255 seconds).
12:32:23 -!- pikhq has joined.
12:36:17 -!- cheater99 has joined.
12:40:49 -!- cheater99 has quit (Read error: Connection reset by peer).
12:43:37 <fizzie> Vorpal, elliott: "Just asking, have you forgot about the drop + pickup = intact item bug?" → "no, that's fixed as part of the server-side inventory". No more infinitely durable diamond pickaxes.
12:43:58 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:45:38 -!- poiuy_qwert has joined.
12:47:09 <fizzie> (And a rather weird comment about "'Collaborating' in chests will be way more fun when you can see each others mouse pointers".)
12:48:02 <Vorpal> fizzie, ouch, when will it be released
12:48:26 <fizzie> Today.
12:48:31 <fizzie> At some unspecified time.
12:48:57 <fizzie> It might also very easily fix the item-placement thing, but that's probably just a good thing.
12:52:45 <Vorpal> fizzie, what item-placement thing?
12:52:54 <fizzie> Oh, right, you weren't around.
12:53:17 <fizzie> I built Deewiant's tree by forcibly placing leaves, yet another instance of server not verifying client-sent values.
12:53:34 <fizzie> But the same thing could obviously be used to place an infinite amount of any block type at all.
12:53:53 <fizzie> (Except possibly bedrock, there is supposedly a special check against that.)
12:55:05 <Vorpal> fizzie, heh
12:57:17 -!- cheater99 has joined.
12:58:38 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
13:00:56 -!- cheater99 has quit (Read error: Connection reset by peer).
13:05:31 <Vorpal> fizzie, anything mentioned about torches btw?
13:06:13 <fizzie> Not in the twitter. "Included in the release today is leaf decay, working server-side inventory, throwable eggs, and less system hungry servers."
13:06:22 <fizzie> Or did I paste that already?
13:06:26 <fizzie> Yes, I did.
13:06:42 <fizzie> And the official server-mod support "early next year".
13:07:57 <Vorpal> hm
13:08:16 <Vorpal> fizzie, time to switch to alternative auth system then
13:08:34 <Vorpal> and log in early
13:13:04 -!- poiuy_qwert has joined.
13:16:45 -!- cheater99 has joined.
13:21:47 -!- cheater99 has quit (Read error: Connection reset by peer).
13:27:22 -!- Quadrescence has quit (Quit: omghaahhahaohwow).
13:27:37 -!- Quadrescence has joined.
13:35:22 -!- FireFly has joined.
13:37:30 -!- cheater99 has joined.
13:43:05 -!- cheater99 has quit (Read error: Connection reset by peer).
13:44:17 -!- tswett has quit (Read error: Operation timed out).
13:50:31 -!- Quadrescence has quit (Quit: omghaahhahaohwow).
13:55:50 -!- pikhq has quit (Ping timeout: 240 seconds).
13:58:03 -!- pikhq has joined.
13:58:15 -!- cheater99 has joined.
13:58:24 -!- oerjan has quit (Quit: leaving).
14:01:47 -!- cheater99 has quit (Read error: Connection reset by peer).
14:05:05 -!- Quadrescence has joined.
14:08:02 -!- tswett has joined.
14:18:15 -!- cheater99 has joined.
14:22:13 -!- cheater99 has quit (Read error: Connection reset by peer).
14:37:53 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
15:04:39 <Vorpal> fizzie, you know those mobile core 2 duo's that make a high pitched noise when they wake up from C4? I can't run mcmap on that laptop due to the noise, it wakes up a lot (even discounting network traffic).
15:05:19 <Ilari> Heh... Reminds me of my other computer that makes noise with high network traffic.
15:05:53 <Vorpal> Ilari, well, it doesn't so much here, anyway I tried with a local server and local client on the same computer... and traffic over lo never made noise before
15:06:18 <Vorpal> and just client + server does not cause the noise
15:06:30 <Vorpal> so something like... 1200 wakeups / second according to powertop
15:06:41 <Vorpal> some of that will be network, but it seems far from all
15:06:46 <fizzie> My other box makes a very annoying whine whenever the display card needs to draw anything 3D.
15:07:15 <Vorpal> heh
15:07:39 <Vorpal> fizzie, anyway, any idea about those extra wakeups?
15:08:49 <fizzie> Not immediately, no. It shouldn't be busy-polling anything when nothing happens, and there aren't any high-frequency timers. (But it's maybe not very performance-optimized in general.)
15:09:05 <Ilari> Heh... 10.3 pinging 10.1, ping times are ~23.4ms. 10.1 pinging 10.3, ping times are ~1.55ms...
15:09:05 <Vorpal> ḧm okay
15:09:30 <Vorpal> Ilari, asymmetric paths do exist
15:09:37 <Vorpal> (might not be the case here)
15:09:58 <Ilari> The paths are symmetric (only one exists).
15:10:14 <Vorpal> Ilari, could be slow firewall on one side maybe?
15:10:28 -!- MigoMipo has joined.
15:10:51 <Ilari> Well, one computer (10.1) is much slower than the other, but that doesn't explain why ping times just worsen and worsen...
15:11:20 <Ilari> The first ping time has increased by almost 50-fold from what it was inititally...
15:11:30 <Vorpal> Ilari, check load?
15:11:47 <Vorpal> if one is swap trashing...
15:12:17 <Vorpal> Ilari, also 10.1, is that a 16-bit IP? XD
15:12:38 <Ilari> Load average: 0.00
15:12:48 <Vorpal> huh
15:13:01 <Vorpal> Ilari, what does (h)top say?
15:13:53 <Ilari> About what? That load average was from top...
15:13:55 <Vorpal> fizzie, anyway the system in question seems to jump between C4 mwait (90.7%) and C0 (5.5%) with the rest accounted by in C2 mwait
15:14:01 <Vorpal> Ilari, well, memory usage
15:14:27 <Vorpal> fizzie, just standing still in MC
15:14:41 -!- elliott has joined.
15:14:45 <Vorpal> some bad scheduling from the linux kernel there I suspect
15:15:03 <Ilari> Over half of memory free or discarable.
15:15:11 <Ilari> *discarable
15:15:20 <Ilari> Swap use less than 1MB.
15:15:25 <Vorpal> Ilari, how very strange, has it worked well before?
15:16:25 <elliott> 20:30:11 <zzo38> Will you be part of the TeXnicard contest?
15:16:25 <elliott> 20:30:28 <oerjan> no.
15:16:25 <elliott> 20:30:44 <zzo38> Have you ever used Magic Set Editor?
15:16:25 <elliott> 20:30:56 <oerjan> no.
15:16:25 <elliott> 20:31:48 <zzo38> Do you have any high resolution templates for Magic: the Gathering cards? I should need templates with a better quality than the ones Wizards of the Coast uses.
15:16:31 <elliott> <oerjan> Funny you should mention it, why yes I do!
15:16:38 <Vorpal> XD
15:16:42 <Vorpal> Ilari, oh wait, is any of the firewalls rate limiting or such?
15:16:43 <elliott> Note: Last line never happened.
15:16:49 <Vorpal> elliott, aww
15:16:53 <Ilari> Pinging IPv6 link-local address of the same box is fast (~0.5ms).
15:16:59 <Ilari> Nope.
15:17:07 <elliott> 22:20:31 <coppro> bitcoin is dumb
15:17:07 <elliott> 22:20:42 <coppro> it's too scarce
15:17:09 <Vorpal> Ilari, .... what
15:17:10 <elliott> coppro: divisible to 8 decimal places
15:17:13 <Vorpal> Ilari, that's just absurd
15:17:14 <elliott> 22:24:52 <coppro> ais523: hey, quick random questoin
15:17:14 <elliott> 22:25:04 <coppro> why does ESR associate you with Discordianism here: http://esr.ibiblio.org/?p=2491
15:17:18 <elliott> coppro: because esr is a fuckfaced moron?
15:17:18 <Vorpal> Ilari, ARP issues?
15:17:29 <Vorpal> though arp *should* cache
15:17:56 <Ilari> Both have correct-looking ARP tables.
15:18:06 <Vorpal> and routing tables?
15:18:19 <Vorpal> Ilari, is it just a switch in between or is the setup more complex?
15:18:34 <Ilari> Seem sane. And yes, only one switch.
15:18:47 <Vorpal> also, there was that one network card that notified every n bytes, not every packet
15:18:57 <Vorpal> was it that rt8192 one?
15:19:58 <fizzie> elliott: "... I discovered that INTERCAL had nucleated an entire weird little subculture of esoteric-language designers around itself, among whom I had come to be regarded as sort of a patriarch in absentia ..." (esr); did you know that's how you regard him?
15:19:59 <elliott> coppro: you just told zzo not to write something himself, /thrice/
15:20:10 <elliott> fizzie: Yes, I did, thanks to ais523 quoting it.
15:20:26 <elliott> fizzie: Funny, 'cuz we all seem to be pretty quiet about our esr worship.
15:20:43 <elliott> fizzie: OH, does he mean how when we came in here every day we said "Praise be to esr, giver upon to us of C-INTERCAL's glory?"
15:20:46 <elliott> Yeah. Yeah, I remember taht.
15:20:48 <elliott> *that
15:21:02 <Vorpal> elliott, except you linking to a webcomic named after him all the time!
15:21:09 <Vorpal> (note, hyperbole)
15:21:11 <elliott> Vorpal: No, no, it's Eric Raymond, not Eric S. Raymond.
15:21:18 <elliott> Totally different guy that looks and behaves identically.
15:21:23 <Vorpal> hah
15:21:41 <elliott> fizzie: BTW -- proper readline erasing -- that escape sequence doesn't really work, because readline actually uses multiple physical-terminal-lines (they're physical, you can touch them and they're fuzzy!)
15:21:43 <elliott> And I just got up!
15:22:12 <elliott> fizzie: And telling readline "undisplay everything, dammit" is difficult because, well, it's not really designed for multithreaded use -- and how can you call rl_shoo_you_bastard() when readline() is blocking?
15:22:15 <Ilari> But that every n bytes wouldn't explain why it was initially fast... Also, the other direction also slows down, but much slower (factor of about 3 currently)
15:23:12 <elliott> fizzie: So there isn't really a function for that. There *are* some functions to save and restore internal state, but if I save state, replace the line with "" to get it to be one line, redraw, erase the line, print out whatever, restore the state, and tell it to redraw, it gives me a blank line I can't type into; enter works to send nothingness, ^A^K does nothing but lets me type, and I think ^A might actually work like that -- I suspect it is s
15:23:12 <elliott> omehow saving the mark and point and whatnot but not the text.
15:23:34 <elliott> fizzie: Perhaps the text-replacing function actually writes to the pointer; I looked at readline's source and it just did "sp->line = readline_line", except with more words there.
15:24:33 <fizzie> elliott: You could make all output go through the readline'ing thread; have it select() (or alike) on both a pipe (of output, from other threads) and stdin, and call that readline callback interface when stdin has data. Though that would only help for the blocking part, not how to properly interlace input and output.
15:24:41 <elliott> 01:01:39 <fizzie> "Included in the release today is leaf decay, working server-side inventory, throwable eggs, and less system hungry servers."
15:24:41 <elliott> 01:01:48 <fizzie> I give that thing rather good odds of breaking mcmap.
15:24:57 <elliott> fizzie: Oh, look at that, I can forget mcmap ever existed for a while!
15:25:10 <elliott> <fizzie> elliott: You could make all output go through the readline'ing thread; have it select() (or alike) on both a pipe (of output, from other threads) and stdin, and call that readline callback interface when stdin has data. Though that would only help for the blocking part, not how to properly interlace input and output.
15:25:22 <elliott> fizzie: The blocking part ain't no problem; log_print() is called from elsewhere. I was talking as
15:25:30 <elliott> fizzie: Mr. Readline Architect, circa 1995, not realising multithreading exists:
15:25:44 <elliott> "But why do you need rl_go_away()? You can't call it while readline() is blocking, so it would never do anything!"
15:25:52 <elliott> <elliott> fizzie: The blocking part ain't no problem; log_print() is called from elsewhere. I was talking as
15:25:52 <elliott> <elliott> fizzie: Mr. Readline Architect, circa 1995, not realising multithreading exists:
15:25:53 <elliott> Great.
15:25:58 <elliott> I've started splitting my IRC lines Minecraft-style.
15:26:09 <fizzie> Anyway, elsewhere, must get home.
15:26:51 <elliott> 05:07:57 <Vorpal> hm
15:26:51 <elliott> 05:08:16 <Vorpal> fizzie, time to switch to alternative auth system then
15:26:51 <elliott> 05:08:34 <Vorpal> and log in early
15:27:01 <elliott> Vorpal: Or just get an hMod plugin that makes all items durable.
15:27:53 <Vorpal> elliott, that works too
15:28:14 <elliott> Vorpal: So, uh, we should duplicate every block. Now.
15:28:40 <Ilari> What I guess that slowdown might be is that continuous pinging pollutes some connection tracking tables and the system then has to search for the active entry...
15:31:13 -!- j-invariant has joined.
15:32:19 <Vorpal> Ilari, hm but ICMP? connection tracking?
15:32:24 <Vorpal> well maybe
15:32:40 <Vorpal> Ilari, anyway, do you do something strange with contrack and icmp?
15:34:04 <Ilari> Actually there goes that theory... 10.1 has no firewall rules.
15:34:19 <Vorpal> Ilari, kernel bug or shoddy hardware?
15:34:39 <Ilari> Both 10.1 and 10.3 run the same kernel version (but diffrent archs).
15:34:40 <Vorpal> and does it reach a cap in ping time? Or does it keep getting worse still?
15:34:54 <Ilari> I think it goes worse and worse...
15:35:08 <Ilari> But it is fairly slow process...
15:35:18 <Vorpal> Ilari, what does rebooting do to it?
15:35:35 <Ilari> These systems are not to be rebooted.
15:35:41 <Vorpal> ah
15:35:48 <Vorpal> bbl food is ready
15:36:21 <elliott> olsner: you're as clever as someone else!
15:36:22 <elliott> http://www.reddit.com/r/haskell/comments/ejf1t/on_the_search_for_mathematical_truth_and/c18jhx0
15:36:26 <elliott> "The Dual numbers is actually the same idea as in the Dif numbers, but the Dif implementation has a lazy infinite tower of derivatives.
15:36:26 <elliott> Also, you can do symbolic derivation with Dif if you want to"
15:36:52 <j-invariant> hey elliott I want to program this in haskell http://en.wikipedia.org/wiki/Inverse_limit
15:37:25 <elliott> j-invariant: are you sure that's even possible? :)
15:37:43 <j-invariant> well I asked that question in #haskell and someone just said "try it"
15:37:50 <j-invariant> so I don't konw
15:37:57 <elliott> "The Dif type is the type of differentiable numbers. It's an instance of all the usual numeric classes. The computed derivative of a function is is correct except where the function is discontinuous, at these points the derivative should be a Dirac pulse, but it isn't."
15:38:04 <elliott> j-invariant: i think that's code for "oh man that looks hard" :)
15:38:14 <tswett> Gregor: stop making me disconnect from Sine. :P
15:38:42 <elliott> The best way to stop disconnecting from Sine is to stop connecting to Sine.
15:39:10 <tswett> I disagree.
15:40:07 <elliott> abs p@(D x x') = D (abs x) (signum p * x')
15:40:10 <elliott> why didn't i think of that
15:40:19 <elliott> my code is way longer
15:41:50 <Ilari> Heh... Floodpinging 10.1 does loads of packet loss (I got 85% packet loss) if done in longer bursts...
15:44:05 <elliott> hey this is great
15:44:12 <elliott> it has all the Floating algorithms! :)
15:45:04 -!- sftp has joined.
15:46:12 <Vorpal> Ilari, huh. check dmesg
15:46:19 <elliott> j-invariant:
15:46:20 <elliott> sin = lift (cycle [sin, cos, negate . sin, negate . cos])
15:46:20 <elliott> cos = lift (cycle [cos, negate . sin, negate . cos, sin])
15:46:24 <Vorpal> Ilari, for any strange non-iptables limiting that may happen
15:46:33 <elliott> lift :: (Num a) => [a -> a] -> Dif a -> Dif a
15:46:33 <elliott> lift (f : _) (C x) = C (f x)
15:46:33 <elliott> lift (f : f') p@(D x x') = D (f x) (x' * lift f' p)
15:46:33 <elliott> lift _ _ = error "lift"
15:46:46 <elliott> j-invariant: best way to implement sin/cos ever
15:48:09 <Vorpal> that last line looks weird
15:48:26 <Ilari> Nothing strange in dmesg...
15:48:36 <Vorpal> (that was to elliott, the last line I said)
15:48:41 <j-invariant> could you it like sin' = cos ; cos' = -sin ? and get the 4-cycle for free
15:48:42 <elliott> Vorpal: why?
15:48:50 <tswett> elliott: what does D denote?
15:48:52 <j-invariant> since it can differentiate compositions
15:48:58 <elliott> tswett: dual numbers
15:49:06 <Vorpal> elliott, hm... oh wait misread the type signature. Now it makes more sense.
15:49:06 <tswett> Ah. Neat.
15:49:06 <elliott> well, infinitely-stacked dual numbers
15:49:09 <elliott> j-invariant: hm possibly
15:49:13 <elliott> j-invariant: wouldn't you have to integrate though?
15:49:30 <elliott> to take advantage of that
15:52:30 <elliott> take 42 . show $ sin d
15:52:30 <elliott> "0.0 + 1.0 + -0.0 + -1.0 + 0.0 + 1.0 + -0.0"
15:52:41 <elliott> lol @ -0.0
15:54:30 <Ilari> Having -0 is handy in some numerical calculations.
15:54:58 <elliott> indeed
15:55:01 <Ilari> (in case 0 is some kind of branch split for some function).
15:56:30 <elliott> *Main> deriv 1 tan (1.1*pi)
15:56:30 <elliott> 1.1055728090000843
15:56:33 <elliott> j-invariant: yay
15:57:45 <Ilari> Database of fixed SSL _private_ keys... Why do people use non-PFS ciphers?
16:00:03 -!- Phantom_Hoover has joined.
16:00:37 <Ilari> Yes, if ciphersuite is not PFS, you can passively capture session and later decrypt it using server private key. That does not work with PFS ciphersuites...
16:01:25 <elliott> ha
16:02:26 <elliott> j-invariant: :( second derivative of tan is 0 here
16:02:31 <elliott> oh wait no
16:02:38 <elliott> just "deriv 2 tan" doesn't work
16:04:14 <elliott> nderiv 0 f = f
16:04:14 <elliott> nderiv n f = deriv (nderiv (n-1) f)
16:04:16 <elliott> does not work :(
16:06:09 <j-invariant> had a go at inverse limit but it didn't work
16:07:40 * elliott 's brain asks him what it would be like if there was a third type-of-types among Set and Prop called Coset which was defined as a codata, thus allowing infinite types... ow, that hurts
16:08:23 <j-invariant> X = X -> X?
16:08:46 <elliott> j-invariant: that isn't allowed by the codata rules is it?
16:08:48 <elliott> only X = blah -> X
16:08:58 <elliott> anyway you couldn't do that unless (->) was in Coset
16:09:05 <j-invariant> oh right I se
16:09:12 <elliott> i.e. if you have Setprop which is a supertype of Set and Prop and then Coset, and both of those are in Type
16:09:16 <elliott> then (->) could be on Setprop
16:09:19 <elliott> and you couldn't have a function like that
16:09:24 <j-invariant> so Set could be a subset of Coset, and (->) : Set -> Coset -> Coset
16:09:50 <elliott> or that, yep
16:10:03 <elliott> j-invariant: but there's curry's paradox there isn't there?
16:10:15 <elliott> oh, no
16:10:20 <elliott> curry's paradox is only for X->X
16:10:24 <elliott> which we couldn't construct
16:10:25 <elliott> hm interesting
16:10:50 <elliott> j-invariant: we can construct a proposition, then, that an infinite number of things imply that ...[hang]
16:10:53 <elliott> useful!
16:11:24 <elliott> hm i wonder how you'd define coset concretely
16:13:54 <j-invariant> plus if you have infinite types you would probably need infinite terms... and they can hold an infinite amount of information
16:15:19 <elliott> j-invariant: well no, i mean, you can already have infinite terms with codata
16:15:38 <elliott> so sets : cosets :: terms : codata terms
16:15:44 <elliott> no?
16:16:40 <elliott> olsner: I seem to have broken your code somewhere along the line.
16:20:14 <j-invariant> elliott: http://www.youtube.com/user/TheCatsters#p/c/E337D7DEA972E632/10/SpCyaNi257w
16:20:34 <j-invariant> these cone things are neat, no clue if they can be computed though
16:22:11 <elliott> j-invariant: so little is computable :(
16:23:33 <Vorpal> elliott, down?
16:24:07 <elliott> Vorpal: Seemingly.
16:24:11 <elliott> Vorpal: I like how snow is just some elevated floor.
16:24:14 <elliott> As in, the bit marked SNOW.
16:24:40 <Vorpal> elliott, yeah
16:24:45 <Vorpal> elliott, added for completeness
16:39:10 <elliott> Apparently Notch can't rename Minecraft accounts.
16:39:14 <elliott> Question: Why.
16:39:30 <Ilari> Bad database design?
16:39:37 <elliott> Also: http://minecraft.net/haspaid.jsp
16:39:40 <elliott> Ilari: Obviously.
16:39:43 <elliott> Notch is a terrible coder.
16:40:21 <elliott> Vorpal: [[@jeb_ @mattmagician points out that minecraft.net/minecraft-server.zip is missing! Could you check if it's in the SECRET_ROLLBACK folder?]]
16:40:29 <elliott> SECRET_ROLLBACK.
16:40:51 <elliott> Vorpal: Oh man, I've figured out why updates are always so buggy.
16:40:55 <elliott> Vorpal: [[The first stage of inventory prediction works fine now.. Now to test rollbacks and errors..]] -- six hours ago.
16:41:04 <elliott> Vorpal: This man implements, tests and releases things in the space of *hours*.
16:41:07 <elliott> "Tests".
16:41:29 <Deewiant> elliott: The floor is snow, so of course snow is just elevated floor. ;-P
16:41:39 <elliott> Deewiant: Indeed. Can I blow up the TNT?
16:41:42 <Deewiant> Nope.
16:41:47 <elliott> Deewiant: Can I blow up the TNT, please?
16:41:50 <Deewiant> Nope.
16:41:53 <elliott> Deewiant: Can I blow up the TNT, pretty please?
16:41:55 <Deewiant> Nope.
16:42:05 <elliott> Deewiant: I'm going to blow up the TNT and you have to strangle me in the next 24 hours to stop me.
16:42:13 <Deewiant> Nope.
16:42:48 <Ilari> What TNT?
16:43:05 <elliott> Ilari: In Minecraft. :p
16:43:22 <elliott> Deewiant: What if I lined the TNT's cage with obsidian?
16:43:26 <elliott> And then blew it up?
16:43:38 <Deewiant> If you just want to blow up any TNT, that can be arranged.
16:43:46 <elliott> Deewiant: Well, no, it has to be this TNT.
16:43:59 <fizzie> Deewiant: You should ask ineiros for a bedrock walls for the TNT room. :p
16:44:19 <Deewiant> Lining it with obsidian would break the layout of the place and can't be done trivially.
16:44:24 <Deewiant> So, nope.
16:44:25 <Ilari> What does TNT look like? I hope that game does not mix up dynamite and TNT. :-)
16:44:37 <elliott> Ilari: It does.
16:44:55 <fizzie> Well, in Painterly (at least with my options) TNT actually is "creeper bombs".
16:45:04 <elliott> You can make it dynamite too.
16:45:09 <elliott> Deewiant: If you don't let me blow up the TNT, I'll cry.
16:45:17 <Deewiant> Then do.
16:45:22 <elliott> Deewiant: Waah.
16:45:23 <elliott> Deewiant: Waah.
16:45:24 <elliott> Deewiant: Waah.
16:45:24 <elliott> Deewiant: Waah.
16:45:48 <Ilari> In dynamite, the actual explosive substance is nitroglycerine. TNT is trinitrotolunene, which is itself explosive...
16:46:16 <elliott> Ilari: Yes, but this way I get to blow up Deewiant's room of TNT, which is way more fun.
16:46:54 <Deewiant> I believe there's been a miscommunication: no, you don't get to.
16:47:12 <Ilari> How much TNT is there anyway?
16:48:58 -!- poiuy_qwert has joined.
16:50:12 <fizzie> Wasn't it 22 blocks in each room?
16:50:39 <fizzie> I mean, 22 blocks of the item type that's being presented in the particular room; not 22 blocks of TNT in each room.
16:50:45 <Deewiant> Yes, with a few exceptions (chest, sand, gravel)
16:52:13 <Ilari> How much 22 blocks of TNT would be?
16:53:11 <Deewiant> One block is supposedly 1 m^3
16:56:21 <Ilari> 1m^3 of TNT would be 1654kg, so about 36.4 metric tons... That would give quite an explosion...
17:00:52 <Vorpal> elliott, down?
17:01:04 -!- Phantom_Hoover_ has joined.
17:01:19 -!- Phantom_Hoover_ has quit (Client Quit).
17:04:38 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
17:30:51 <tswett> Since a block is a cubic meter, I guess the characters are pretty short.
17:31:12 <elliott> tswett: We're 1.7 blocks tall.
17:32:40 <tswett> We're short.
17:32:43 -!- Phantom_Hoover_ has joined.
17:36:46 <elliott> tswett: Not so short as I.
17:37:47 <Vorpal> uh yeah that's short
17:37:54 <Vorpal> 1.9 is more reasonable
17:38:04 <elliott> What was that.
17:38:14 <elliott> Oh god, upgrade.
17:38:17 <Vorpal> to tswett
17:39:21 <elliott> SO WHAT ABOUT THESE OPTIONAL UPDATES EH
17:39:56 <elliott> * Made SMP servers save chunks way less often in most cases. Chunks don’t resave if they got saved in the last 30 seconds
17:39:59 <elliott> What the hell did they do before.
17:40:12 <elliott> * Moving too far away from a container, or having it blow up, closes the inventory screen
17:40:12 <elliott> * Fixed /kill
17:40:12 <elliott> * Introduced leaf decay again. It acts differently from before
17:40:13 <elliott> (1) LAME
17:40:14 <elliott> (2) LAME
17:40:16 <elliott> (3) Yay
17:40:22 <elliott> * On a whim, added super exclusive clan cloaks for Mojang Employees
17:40:22 <elliott> ...
17:41:00 * pikhq has coffee
17:41:09 <pikhq> kannhąi!
17:41:18 <Phantom_Hoover_> pikhq, coffee is the drink of the DEVIL!
17:41:50 <pikhq> Phantom_Hoover_: Then PRAISE BE UNTO THAT DARK LORD!
17:42:34 <elliott> Phantom_Hoover_: Man, as an Englishman, I have to say that coffee is a pretty good idea.
17:43:27 <Vorpal> elliott, stupid you restarting the client
17:43:34 <Vorpal> elliott, if you just reconnected it worked
17:44:01 <pikhq> elliott: Just because you like tea doesn't forbid you from liking coffee.
17:44:11 <elliott> Vorpal: You realise I could always just use my backup?
17:44:16 <elliott> pikhq: MIX THEM TOGETHER
17:44:24 <Vorpal> elliott, except you couldn't log in then?
17:44:34 <elliott> Vorpal: *shrug*
17:44:40 <elliott> Vorpal: I'm not about to never upgrade again.
17:44:47 <elliott> Anyway --
17:44:58 <elliott> Hoover Heavy Industries' tactical and strategic test is complete.
17:45:02 <pikhq> elliott: Not actually that good, sadly.
17:45:15 <elliott> It was a resounding success, and our skill and quality on the defence and offence fronts is vastly improved.
17:45:31 <elliott> Our clients will begin to see the higher-quality service in our work immediately.
17:45:42 <elliott> That is all.
17:46:06 <elliott> wait.
17:46:08 <elliott> [[Those of you coming in late may not be aware that (1) INTERCAL is the longest-running and most convoluted joke in the history of programming language design, and (2) all modern implementations of this twisted, sanity-sucking horror are descended from one that I tossed off as a weekend hack in 1990 here in the town of Malvern Pennsylvania (the manual describing the language goes back to 1972 but before my C-INTERCAL there hadn’t been a running
17:46:08 <elliott> implementation available in about a decade).]]
17:46:10 <elliott> that's /not even false/
17:46:13 <elliott> CLC-INTERCAL
17:46:16 <elliott> hell, even J-INTERCAL
17:46:26 <elliott> well, not even true
17:46:29 <elliott> but not even false, it's way beyond false
17:46:38 <elliott> it's simply _wrong_
17:47:07 <pikhq> elliott: I would like to give him the benefit of the doubt and say that at the time he wrote that it may have been true.
17:47:19 <pikhq> I'm not sure why, though. That fucker says stupid shit sometimes.
17:47:34 <elliott> pikhq: That was written /this year/.
17:47:41 <pikhq> *facepalm*
17:47:47 <elliott> pikhq: Praising himself for, uh, getting ais to track down all the old C-INTERCAL revisions.
17:48:03 <pikhq> He is such an egotist asshat.
17:48:03 <elliott> pikhq: "whilst I was off doing the Mr. Famous Guy thing on behalf of open source) I discovered that INTERCAL had nucleated an entire weird little subculture of esoteric-language designers around itself, among whom I had come to be regarded as sort of a patriarch in absentia…."
17:48:23 <pikhq> ... Patriarch? We call him an egotist asshat!
17:48:42 -!- elliott has set topic: ~THE INTERCAL-BASED SUBCULTURE OF ESOTERIC-LANGUAGE DESIGNERS~ ~GREETINGS TO OUR PATRIARCH IN ABSENTIA, ERIC S. "GIGANTIC PENIS" RAYMOND~ ~PREVIOUS ESR WORSHIPS AVAILABLE AT http://tunes.org/~nef/logs/esoteric/?C=M;O=D~.
17:49:02 <pikhq> LMAO
17:49:49 <elliott> I think I'm going to start referring to ais as "ais523, hail Eris, all hail Discordia!, a doughty Englishman", like esr did in that post.
17:49:51 <elliott> (http://esr.ibiblio.org/?p=2491)
17:50:14 <pikhq> Does ais523 have anything to do with Discordianism?
17:50:16 -!- elliott has set topic: http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
17:50:20 <elliott> pikhq: Nope. Not that I know of at least.
17:50:28 <pikhq> Aside from having said "Hail Eris!" once or twice.
17:50:35 <Phantom_Hoover_> Is he a doughty fellow?
17:50:45 <pikhq> Phantom_Hoover_: That's quite subjective.
17:50:55 <pikhq> He is most certainly an Englishman, though.
17:52:11 <elliott> Ilari: Relevant: http://abstrusegoose.com/329
17:52:14 <elliott> Ilari: (To you, that is.)
17:52:19 <Phantom_Hoover_> Can we troll him?
17:52:57 <Phantom_Hoover_> Or at least point out that we hold him in an amused sort of contempt?
17:53:33 <pikhq> I doubt he'd listen.
17:53:37 <pikhq> He makes RMS seem humble.
17:56:54 <tswett> So, which of you guys invented the Internet? Was it you, elliott?
17:57:01 <elliott> Yes.
17:57:11 <j-invariant> I took the initiative of creating the internet
17:57:24 <tswett> Cool. Good work on that.
17:57:29 <pikhq> I willo-on-haven created the first IMP.
17:57:39 <tswett> Both of you, its creator and its taker-of-initiative-of-creating.
17:57:47 <pikhq> Though before that, I willo-on-haven changed my name and time traveled.
17:58:35 <tswett> Is that infix "on" pronounced the same way as the preposition "on", or is it pronounced /ʌn/ or something?
17:58:39 <j-invariant> http://upload.wikimedia.org/wikipedia/commons/3/35/Phoc96v1.jpg
17:59:23 <Ilari> You know you have gotten too much milk fat when: Your trousers no longer fit because they are too big... :-)
17:59:42 <pikhq> tswett: I dunno, it's a somewhat obscure H2G2 reference.
18:01:36 <elliott> pikhq: Not that obscure.
18:02:09 <pikhq> elliott: Really obscure would involve Lintilla, yeah.
18:02:18 <pikhq> (how many people have actually listened to the radio series, anyways?)
18:02:44 <elliott> 2. And a half.
18:08:00 -!- Mathnerd314 has quit (Disconnected by services).
18:08:16 -!- Mathnerd314_ has joined.
18:08:54 -!- Mathnerd314_ has changed nick to Mathnerd314.
18:21:58 <elliott> i think i'm going to capture conor mcbride
18:22:02 <elliott> and force him to complete epirgam
18:22:03 <elliott> *epigram
18:22:44 <elliott> http://hackage.haskell.org/package/ad ;; automatic differentiation like 10x as polished as mine
18:26:03 <elliott> ineiros: upgrade plz
18:26:32 <ineiros> Maybe I'll downgrade instead!
18:26:52 <ineiros> Is hMod updated as well?
18:29:04 <elliott> ineiros: Hey, it might "just work". MIGHT
18:29:16 <elliott> ineiros: hmm
18:30:15 <elliott> ineiros: well, if you installed some plugin to stop trying to authenticate with minecraft.net
18:30:34 <pikhq> Now, what to do with this router?
18:30:36 <elliott> ineiros: then we could just fail to login and keep an older version
18:30:56 -!- sebbu2 has changed nick to sebbu.
18:31:13 <elliott> ineiros: http://wiki.nexua.org/Plugin:AuthCraft
18:31:14 <ineiros> elliott: Nah, I'm not doing that.
18:31:18 <elliott> ineiros: AuthCraft is a replacement for MineSecurity since MineSecurity is no longer supported and has inventory bugs. AuthCraft serves one main purpose in two different ways, it allows server-side authentication by making the user create a password upon logging into the server. This is helpful when the MineCraft authentication servers are down, or if you are hosting your own MineCraft server that does not require Minecraft authentication - also
18:31:18 <elliott> known as offline mode.
18:31:20 <elliott> ineiros: Aww. Why not?
18:31:32 <elliott> It would last until hMod is updated
18:31:34 <elliott> *updated.
18:31:39 <pikhq> And yes, it does in fact support OpenWRT.
18:31:46 <fizzie> hMod's usually been pretty fast.
18:31:55 <pikhq> Ideas?
18:32:12 <fizzie> Anyway, why would you play before the all-important mcmap's fixed either? (Admittedly I've gotten two of the new packets handled already.)
18:34:03 <elliott> I think ineiros just secretly hates oklopol for not having bought the game yet and wants to make sure he never gets in.
18:34:06 <elliott> 'Tis the only explanation.
18:35:09 <elliott> ineiros's silence is like unto admitment.
18:39:03 <pikhq> Well, I could just use it as a really overblown switch...
18:46:36 <pikhq> Oh, dur. VLANs. Hooray, having some utility.
18:51:11 <elliott> ineiros: I am going to CONTINUALLY CONNECT TO THE SERVER.
18:53:45 <Gregor> MOP
18:54:51 <elliott> I wonder if my https://github.com/fis/mcmap/commit/3a1eae914d55b525004b08225c31e1d3623dd4eb commit message couldn't have been a little harsher on the GPL.
18:55:59 -!- j-invariant has quit (Quit: leaving).
19:06:09 <Deewiant> Minor patch 1.0_01 is up
19:07:58 <elliott> Deewiant: Ain't it grand?
19:08:21 <elliott> Deewiant: Notch's schedule: Two hours of coding, ten minutes of testing, five minutes of uploading; then ten hours of minor fix updates.
19:08:22 <Deewiant> Not really
19:08:26 <elliott> It's AGILE!
19:08:50 <elliott> "I’ve also heard about weird item duplication bugs with dropped items" OHOHOHOHOHOHOHO
19:08:54 <elliott> "and a severe performance reduction." >_<
19:09:35 <elliott> My GOD he's not joking.d
19:09:40 <elliott> Deewiant: Is it incredibly slow for you too?
19:09:45 <Deewiant> I haven't updated
19:10:25 <elliott> Deewiant: Not even to beta? Heh.
19:10:32 <Deewiant> No, I've just stayed connected
19:11:18 <elliott> Items have tooltips now
19:11:25 <elliott> Deewiant: You have not been in Mount Hoover, have you?
19:11:29 -!- zzo38 has joined.
19:11:44 <Deewiant> Not in it, no
19:11:53 <elliott> Vorpal: And you?
19:13:01 -!- zzo38 has set topic: This topic message does not have Theorem-nature. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:14:49 <Vorpal> elliott, no
19:17:33 <Vorpal> elliott, what was the rarer thing he mentioned in the blog post
19:17:36 <Vorpal> has anyone found out?
19:17:50 <elliott> Vorpal: Dunno.
19:20:27 -!- Sasha has quit (Read error: Connection reset by peer).
19:21:47 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
19:23:30 -!- j-invariant has joined.
19:27:13 <zzo38> If you want to make a ROM from NAND-gates, what is the minimum number of NAND gates you will need?
19:28:45 <j-invariant> zzo38: do you mean, given n bits of static information: How many NAND gates are needed to give a function 2^(log n) -> 2 that addresses the information?
19:29:37 <j-invariant> 2 = {0,1}
19:30:35 <zzo38> j-invariant: Actually I mean something a bit different. I mean that if you have a certain number of bits of address, a certain number of bits of data, and a certain file which must be encoded into ROM.
19:31:15 <j-invariant> so it is roughly what I said but with the same n bits but to construct the function 2^k -> 2^l instead?
19:31:45 <zzo38> (And there is the possibility that some parts of the data are unimportant, so it doesn't matter what will be read out when accessing that data.)
19:32:28 <elliott> zzo38: that possibility seems to cloud the issue to me ...
19:32:30 <zzo38> j-invariant: Yes, more like that.
19:32:33 <elliott> i declare all parts of the data unimportant
19:32:36 <elliott> tada! i can do it with 0 anythings
19:33:48 <j-invariant> You could find a lower bound with some work in terms of information complexity, and an upper bound by construcing the ROM function
19:33:58 <zzo38> elliott: But some of it is definitely going to be important. Like, maybe you have 1024 bytes of ROM, but only 1000 bytes used.
19:34:08 <zzo38> (That means there is 24 unimportant bytes)
19:34:12 <j-invariant> I think theyll be quite far apart though, because it's a difficult problem
19:36:01 <zzo38> In addition, there is one more thing, which is the total delay caused by the NAND gates.
19:43:46 <j-invariant> I wonder if there is a good way to optimize NAND circuits? good enough that a reasonable solution would be to generate the stupidest possible ROM function then just optimize it to get one with low number of gates/
19:45:48 <elliott> Vorpal: If one hears a sort of whooshing, ominous sound like "whrrrrrrrrrrrrrrrrrrrrrrrrrrkowww" in the background when underground in survival single player on peaceful mode WHAT DOES IT MEAN
19:46:04 <elliott> Vorpal: I thought it was the Nether sound but no, it was like something... I don't know, arriving from another dimension. :p
19:48:16 <Phantom_Hoover_> Mob spawning from mob spawner?
19:48:39 -!- poiuy_qwert has joined.
19:48:47 <elliott> Phantom_Hoover_: But it's on peaceful.
19:49:50 <elliott> Phantom_Hoover_: Got a video of the mob spawner noise?
19:50:42 <Vorpal> elliott, huh
19:50:55 -!- Sasha has joined.
19:51:02 <elliott> Vorpal: It was sort of like the noise a train going past really close would make ... except without any train noises, and quiet.
19:51:12 <elliott> Like the sound of wind going past, except no whistling, and made "gravelley".
19:51:16 <elliott> *"gravelly".
19:51:34 <Vorpal> elliott, oh, gravy!
19:51:41 <Vorpal> (no idea)
19:52:47 <Phantom_Hoover_> elliott, mobs still spawn from mob spawners on SSP/
19:52:54 <Phantom_Hoover_> Even on peaceful.
19:52:59 <elliott> Just checked; yes, that was the sound.
19:53:03 <elliott> Phantom_Hoover_: What, creepers etc.?
19:53:05 <elliott> Or just sheep?
19:53:15 <Phantom_Hoover_> elliott, whatever mob it makes.
19:53:29 <elliott> Phantom_Hoover_: OK, so by "peaceful", it means "PEACEFUL UNTIL YOU HEAR THAT FUCKING SOUND"?
19:53:42 <Phantom_Hoover_> elliott, yep!
19:53:59 <elliott> Phantom_Hoover_: The way you're talking implies to me that you found this out in the way known as "the hard way".
19:54:01 <zzo38> Does it mean you cannot hurt each other, and it blocks your movement?
19:54:05 <Phantom_Hoover_> OTOH, avoiding dungeons is a) trivial and b) creeper free IIRC.
19:54:05 <elliott> [[In Peaceful difficulty, Monster Spawner blocks will still appear, but any spawned mobs will disappear the instant they spawn. This makes it easy to make the aforementioned trap without any trouble.]]
19:54:10 <Phantom_Hoover_> elliott, no, Vorpal told me.
19:54:11 <elliott> Phantom_Hoover_: Me thinks you are wrong.
19:54:14 <elliott> [[In Peaceful difficulty, Monster Spawner blocks will still appear, but any spawned mobs will disappear the instant they spawn. This makes it easy to make the aforementioned trap without any trouble.]]
19:54:17 <elliott> Phantom_Hoover_: Vorpal is usually wrong.
19:54:33 <Phantom_Hoover_> Well, I assume you'd still get the noise from it.
19:54:38 <elliott> Indeed.
19:54:38 <Vorpal> what?
19:54:48 <Vorpal> Phantom_Hoover_, of course mob spawners do what elliott said
19:54:48 <elliott> In the mean time I shall play on mute.
19:55:25 <elliott> Vorpal: I'm scared though.
19:55:36 <elliott> Phantom_Hoover_: Avoiding dungeons is not easy when you're building a staircase mine.
19:55:57 <Phantom_Hoover_> elliott, "if you see cobble, act appropriately".
19:56:32 <elliott> Phantom_Hoover_: Except I /don't/ see cobble, but now every stair down I make I'm going to be scared shitless. :p
19:56:59 <Phantom_Hoover_> Well, if it comforts you, I can hear spiders next to me in my mine constantly.
19:57:25 <elliott> Phantom_Hoover_: On /Peaceful/?
19:57:47 <Phantom_Hoover_> No, on Normal.
19:58:00 <elliott> HAVE FUN WITH THAT
19:58:43 <elliott> Phantom_Hoover_: All I want is some damn iron.
20:01:32 -!- pingveno has quit (Read error: Connection reset by peer).
20:01:54 -!- pingveno has joined.
20:02:55 -!- pingveno has quit (Read error: Connection reset by peer).
20:03:35 <zzo38> elliott: We won't give you any iron!!
20:06:53 -!- pingveno has joined.
20:11:57 <fizzie> Okay, pushed mcmap update to the beta protocol.
20:12:29 <elliott> Is like a magic.
20:12:45 <fizzie> It's been tested in the Notchy fashion, i.e. not much. I managed to open the inventory, move an arrow from one slot to another, and it didn't yet crash; I could also take a step or two.
20:13:08 <elliott> fizzie: Can you make that DATA %s print [DATA] %s and the packet print [PACK] or something? Wait, wait, never mind, I *refuse* to argue about the formatting of debug prints.
20:13:34 <fizzie> I'll fix that the next time I have to enable those.
20:13:51 <elliott> + log_print("IMMINENT CRASH, reading tail for log");
20:13:52 <elliott> So kind.
20:13:58 <elliott> DIEF.
20:14:07 <elliott> error: Your local changes to 'main.c' would be overwritten by merge. Aborting.
20:14:11 <elliott> Methinks I'll abandon those changes.
20:14:32 <elliott> fizzie: Whoa -- please explain how "man git revert" manages to work.
20:16:15 <fizzie> It's easier to see what action actually caused the bug if it prints out that thing before collecting the next 256 bytes or so for the dump.
20:17:13 <fizzie> And I don't know; strace | grep git says it goes directly to git-revert.1.gz, presumably based on some index somewhere.
20:18:20 <fizzie> Incidentally, since the new packets I've seen have had IDs 65, 66, 67, 68 and 6a, I wouldn't be very surprised if there were a 0x69-id inventory-related packet that will still crash mcmap; for example something related to having multiple players do things on the same inventory.
20:18:27 <fizzie> Oh, and I haven't tried chests and such at all.
20:18:42 <elliott> fizzie: But "man foo bar" = man foo; man bar.
20:18:49 <fizzie> Yes, I know.
20:18:50 <elliott> So I don't see how an index can override that.
20:19:13 <fizzie> Well, if it tries the whole line with spaces first, and then splitted only after.
20:19:20 <fizzie> Look at the source, of course.
20:19:29 <elliott> :p
20:19:31 <fizzie> (I just wanted the rhyme-alike.)
20:22:38 <fizzie> Hopefully by the time ineiros has the server updated and my missing packets turn up, some other people have already bothered to figure the protocol out. (I'm a bit suspicious of the 0xae packet too; it might be just trailing edge when some packet-size-change has made the parser be confused as to where another packet ends. In particular, it looks suspiciously much like the player-position-and-look packet's rear end.)
20:23:43 <fizzie> Right, it doesn't actually seem to happen.
20:24:11 <fizzie> It was probably just my messed-up health-update handling that caused me to add that; I'll remove it. (I had a similar issue with a non-existing "0x7f" packet too.)
20:25:28 <fizzie> Dying and respawning seems to leave regions of the map flickering, which is really quite bizarre.
20:25:49 <fizzie> I mean, it shouldn't be able to flicker unless the server keeps sending chunk-updates or block-setting packets.
20:30:17 <elliott> fizzie: Mind if I make an OMG OPTIMISED build target?
20:30:27 <fizzie> Oh, sure, do that.
20:30:34 <fizzie> It can be OPTOMIZED by default, too.
20:30:36 <elliott> 'Cuz it's, you know, SO SLOW.
20:30:39 <elliott> fizzie: Very well.
20:30:40 <Deewiant> funroll-loops
20:30:47 <elliott> Deewiant: Ricer ricer ricer.
20:30:49 <fizzie> Deewiant: The funniest loops ever.
20:30:49 <elliott> 4EVA
20:30:54 <elliott> Do a funroll.
20:32:15 <fizzie> Not just -funroll-loops, but -funroll-all-loops.
20:32:27 <fizzie> The option description is: "This usually makes programs run more slowly."
20:33:38 <elliott> :D
20:33:52 <elliott> protocol.c:634: error: dereferencing type-punned pointer will break strict-aliasing rules
20:33:57 <elliott> fizzie: Your program doesn't compile with -O3 because of -Werror.
20:34:25 <zzo38> fizzie: Which one makes programs run more slowly, -funroll-loops or -funroll-all-loops ?
20:34:30 <elliott> The latter.
20:34:47 <elliott> fizzie: Can that type-punning be fixed or should I just disable -Werror for the optimised build?
20:35:13 <fizzie> Yes, it can be fixed with the union trick. I'll do that.
20:35:17 <elliott> -rwxr-xr-x 1 elliott elliott 68K Dec 20 20:34 mcmap
20:35:18 <fizzie> It's a bit ugly-looking now, anyway.
20:35:24 <elliott> Heh, the OPTOMIZED(tm) build is smaller.
20:35:29 <elliott> (It uses -combine -fwhole-program.)
20:38:32 <elliott> fizzie:
20:38:36 <elliott> protocol.c: In function ‘packet_double’:
20:38:36 <elliott> protocol.c:634: warning: dereferencing type-punned pointer will break strict-aliasing rules
20:38:36 <elliott> protocol.c:639: warning: dereferencing type-punned pointer will break strict-aliasing rules
20:38:36 <elliott> main.c: In function ‘proxy_thread’:
20:38:37 <elliott> protocol.c:359: warning: dereferencing pointer ‘state’ does break strict-aliasing rules
20:38:39 <elliott> Those are all the warnings.
20:39:17 <fizzie> Better protocol.c in place. Though IIRC it would've been okay also to use just a float variable and access that via char *, wasn't there a special exception to strict-aliasing rule that you could access any memory via (unsigned) char*?
20:39:23 <fizzie> Still, the union thing works too.
20:39:24 <elliott> Who knows.
20:40:15 <elliott> fizzie: You may want to consider turning on -O2 in the debug build; a lot of warnings are missed without it.
20:40:16 <fizzie> I think I missed that one warning.
20:40:20 <Vorpal> fizzie, working on porting to new protocol?
20:40:27 <fizzie> Vorpal: Already done, to some extent.
20:40:32 <Vorpal> fizzie, large changes?
20:40:49 <Vorpal> fizzie, and is the docs for the protocol public or did they reverse engineer that quickly?
20:40:59 <fizzie> I reverse-neggineered it myself.
20:41:13 <fizzie> Admittedly I don't understand all the inventory packets, but I don't need to, for map-making.
20:41:15 <elliott> fizzie: HOW OFFENSIVE
20:41:23 <Vorpal> fizzie, ah
20:41:31 <fizzie> Health packet went from one byte to two (took me a while to catch that, since it just desynced the packet reading; yay for not having a length field in there) and then a slew of inventory-related packets.
20:41:49 <Vorpal> fizzie, why did it go to two bytes I wonder
20:41:51 <fizzie> I have probably not catched them all, I suspect some need interaction from multiple players. So it might still go crashy-crashy.
20:42:03 <fizzie> Caught.
20:42:14 <Vorpal> fizzie, caught?
20:42:17 <Deewiant> You can access anything through a char* safely but doing something like (a*)(char*)(b*) is no more correct than (a*)(b*)
20:43:34 <fizzie> Deewiant: Well, yes, but "double d; unsigned char *db = (unsigned char *)&d; db[0] = ...; ...; db[7] = ...;" should be fine, assuming that I do put in the proper values?
20:43:41 <elliott> fizzie: Pushing the OPTOMIZED(tm) version now; to get the old type of build, do "make debug" (which just does @$(MAKE) --no-print-directory DEBUG=1, making it ever-so-slightly slower.)
20:43:56 <Deewiant> fizzie: Yes; like said, you can access anything through a char*
20:44:01 <elliott> (No, "debug: all DEBUG=1" doesn't work; the CFLAGS get set before that happens.)
20:44:15 <elliott> fizzie: Oh, I broke it. Lemme fix.
20:44:53 <elliott> Pushing the fix now.
20:44:58 <elliott> (The problem was that I tried to indent things.)
20:45:31 <fizzie> Deewiant: How was it with the union trick? "union { double d; unsigned char b[8]; } db; db.b[0] = ...; ...; db.b[7] = ...; return db.d;"?
20:45:47 <elliott> Yes.
20:45:54 <j-invariant> "The problem is languages which have such universal type inference don’t provide the same safety that languages with local or no type inference can provide"
20:46:03 <elliott> j-invariant: heh what
20:46:14 <elliott> j-invariant: is it trying to say "type inference generates too-general types"?
20:46:22 <j-invariant> I think someone got their head screwed on backwards http://www.codecommit.com/blog/scala/universal-type-inference-is-a-bad-thing
20:46:25 <Deewiant> fizzie: Yes, basically. Although strictly speaking that is invalid C, all implementations I know of support it.
20:46:50 <fizzie> I'll let it be like that for now then, since I already made it like that.
20:46:54 <fizzie> Hmm, interesting:
20:46:56 <fizzie> main.c: In function ‘log_print’:
20:46:56 <fizzie> /usr/include/bits/stdio2.h:115: sorry, unimplemented: inlining failed in call to ‘vprintf’: function body not available
20:46:56 <fizzie> main.c:496: sorry, unimplemented: called from here
20:47:00 <elliott> j-invariant: well they're a scala fan, of course their head isn't quite right
20:47:03 <j-invariant> "In some sense, type inference weakens the type system by no longer providing the same assurance about a block of code." let me translate that "I never wrote more than one page of ocaml. Certainly never used the module system."
20:47:04 <elliott> fizzie: What.
20:47:06 <Vorpal> fizzie, what
20:47:13 <fizzie> That's what it said when I went "make".
20:47:15 <elliott> fizzie: Just looks like it's trying to inline vprintf and can't.
20:47:16 <elliott> Heh.
20:47:17 <elliott> fizzie: Does it error out?
20:47:23 <fizzie> Well, yes.
20:47:28 <elliott> fizzie: You /really/ want to get rid of -Werror for the optimised build.
20:47:31 <elliott> That ... uh, might fix that.
20:47:32 <elliott> Maybe.
20:47:33 <elliott> What the fuck.
20:47:44 <elliott> CFLAGS += -O3 -combine -funroll-loops -fwhole-program
20:47:50 <elliott> That's not even -fricer level.
20:48:14 <Vorpal> elliott, does -funroll-loops actually help?
20:48:18 <Vorpal> elliott, have you profiled?
20:48:23 <elliott> Vorpal: Nope.
20:48:26 <elliott> And I'm not gonna, either.
20:48:32 <Vorpal> elliott, then why do you use it
20:48:36 <elliott> 'Cuz it's ricer.
20:48:45 <elliott> I doubt it's going to go any /slower/, at least.
20:48:47 <Vorpal> elliott, usually it is a pessimisation
20:48:50 <elliott> Since I can't think of a single unrollable loop in there.
20:48:56 <Vorpal> elliott, -Os is better often
20:49:03 <elliott> Vorpal: Of course it is.
20:49:05 <elliott> But this is the ricer build.
20:49:15 <elliott> And -Os is pointless with glibc.
20:49:15 <Vorpal> elliott, of what?
20:49:20 <elliott> mcmap.
20:49:28 <Vorpal> ...
20:49:30 <elliott> The most resource intensive program -- evar.
20:49:32 <Vorpal> elliott, why on earth
20:49:38 <elliott> 'S why it needs such optimisation.
20:49:57 <Vorpal> elliott, only time when -O3 helps tend to be when you are basically CPU bound in numerical computations
20:50:08 <elliott> Just like mcmap.
20:50:20 <elliott> Well, I have dietlibc here.
20:50:23 <Vorpal> it isn't really
20:50:30 <elliott> fizzie: I'll add a target to use gcc -fucking-small and link with dietlibc. :p
20:50:43 <elliott> (It enables the space-saving optimisations described in Ucking 98.)
20:50:51 <elliott> *Ucking et al. 98.)
20:53:14 <Vorpal> fizzie, does the porting still work btw?
20:53:30 <elliott> fizzie: Useless dietlibc support added! (Prizes to the first person who can compile glib and SDL with the dietlibc and get mcmap to link.)
20:53:35 <fizzie> For the record, not using -Werror wouldn't have helped; it's an error, not a warning. (Though I have zero clue why bits/stdio2.h defines vprintf with the always_inline option.)
20:53:41 <elliott> I'M ON A ROOOOOOOOOOOOOOOLL
20:53:47 <elliott> fizzie: Have you fixed it?
20:54:24 <Vorpal> fizzie, what system? And I still don't have pkg-config files for zlib on ubuntu 10.04 LTS btw.
20:54:29 <fizzie> Well, no, not yet. I don't really know what mcmap could be doing wrong there; it just calls vprintf, after including stdio.h and stdarg.h.
20:54:31 <Vorpal> (so I need to patch make file every time so far
20:54:32 <Vorpal> )
20:54:36 <elliott> j-invariant: lol "I am not quite sure I buy your argument." from the /creator/ of Scala
20:54:41 <elliott> in the comments
20:54:53 <elliott> Vorpal: You shouldn't need to patch it now.
20:55:11 <Vorpal> elliott, oh? You changed it?
20:55:12 <Vorpal> nice
20:55:13 <j-invariant> heh
20:55:15 <elliott> Something like "make libs='gio-2.0 sdl zlib' LDFLAGS+='-lzlib'" should work.
20:55:16 <elliott> Maybe.
20:55:24 <elliott> IIRC foo+=bar doesn't really work properly from the command line...
20:55:32 <elliott> properly as in it doesn't execute after the makefile's definitions
20:55:35 <elliott> so it gets overridden
20:55:36 <elliott> except, ah
20:55:38 <elliott> it won't in this case
20:55:41 <elliott> Something like "make libs='gio-2.0 sdl zlib' LDFLAGS='-lzlib'" should work.
20:55:43 <elliott> definitely
20:55:45 <elliott> well, -lz
20:55:48 <elliott> you know what flags it needs, presumably
20:55:49 <elliott> erm
20:55:52 <elliott> Something like "make libs='gio-2.0 sdl' LDFLAGS='-lzlib'" should work.
20:55:55 <elliott> fff
20:55:58 <fizzie> Or you could keep a local branch with the patched Makefile and "git rebase" on master after pulling, that'll work automagically each time the Makefile doesn't drastically change.
20:56:10 <Vorpal> elliott, key stuck?
20:56:15 <elliott> Vorpal: No, I kept correcting in.
20:56:16 <elliott> *it.
20:56:23 <elliott> Vorpal: $ make libs='gio-2.0 sdl' LDFLAGS='-lz'
20:56:27 <elliott> Fill in appropriate flags for -lz.
20:56:29 <elliott> That should work.
20:56:41 <Vorpal> fizzie, mmm
20:56:43 <elliott> (But I won't "guarantee" it always will, since libs is, like, a private variable!)
20:56:51 <Vorpal> elliott, just -lz worked for me
20:56:57 <elliott> Vorpal: So that invocation worked? Good.
20:57:05 <Vorpal> elliott, well before
20:57:09 <Vorpal> elliott, I haven't tried it now
20:57:09 <elliott> You may want to "make clean" if you have .os lying around; the optimised build won't generate them, so.
20:57:15 <Vorpal> elliott, I edited the makefile before anyway
20:57:24 <Vorpal> elliott, I don't plan to update just yet, I'm still connected
20:59:05 <fizzie> I can only find a single reference to someone getting that inline-failed message for vprintf in particular (usually it's just their own functions), and there is no resolution, the guy just ends up removing -fwhole-program.
20:59:15 <elliott> YES!! AN IRON PICKAXE!!
20:59:23 <elliott> fizzie: what gcc version?
20:59:37 <Vorpal> elliott, why not diamond?
20:59:45 <Vorpal> elliott, and iron is trivial
20:59:46 <elliott> Vorpal: Because I don't have any diamond; this game isn't very old.
20:59:51 <Vorpal> ah
20:59:55 <elliott> And no it isn't, I've been mining for iron with stone pickaxes for way too long.
20:59:59 <elliott> Even now I only have enough for this and one more pickaxe.
21:00:05 <elliott> I'm building a staircase down, so...
21:00:08 <Vorpal> elliott, mcmap?
21:00:13 <elliott> Vorpal: On single-player?
21:00:15 <fizzie> gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5, Ubuntu whatsitcalled, package version 4:4.4.4-1ubuntu2. Whatever it installs by default, anyway.
21:00:19 <Vorpal> elliott, well, minutor then
21:00:24 <elliott> fizzie: Personally, I would edit the system header to remove that always-inline thing, but I'm crazy like that.
21:00:28 <Vorpal> elliott, it is a decent mapping tool when you have the world
21:00:31 <elliott> gcc (Debian 4.4.5-8) 4.4.5
21:00:31 <elliott> for me
21:00:47 <elliott> Vorpal: Cheatin', man. I've only turned Peaceful on because I'm a wimp.
21:00:55 <Vorpal> fizzie, my system has gcc 4.4.3 btw
21:00:58 <Vorpal> elliott, XD
21:01:08 <Vorpal> fizzie, "linaro"?
21:01:12 <elliott> NO NO NO
21:01:14 <elliott> A SPIDER JUST SLURPED
21:01:17 <elliott> BUT I'M ON PEACEFUL
21:01:22 <Vorpal> elliott, bug?
21:01:27 <elliott> THERE IS *NO WAY* A MOB SPAWNER CAN HAVE A SPIDER BE ALIVE FOR LONG ENOUGH TO MAKE A SLURPING NOISE
21:01:31 <elliott> I CONCLUDE THAT THE BETA HAS BROKEN PEACEFUL MODE
21:01:35 <elliott> DEAR GOD
21:01:37 <Vorpal> whops
21:02:11 <Vorpal> wait, is beta 1.0_01 ?
21:02:14 <elliott> Hearing mob spawner noise + hearing things moving about when there's nothing outside the window, in the day time, and it sounds like it's near you + hearing spider slurp when in your mines, near where the mob spawner was
21:02:15 <Vorpal> how does that make sense
21:02:16 <elliott> = AAAAAAAAAAAAAAAAAAA
21:02:22 <elliott> Vorpal: It was 1.0, but then he fixed it five minutes later.
21:02:39 <elliott> "I will work on the MacOSX launch bug tomorrow!"
21:02:41 <Vorpal> elliott, yes the _01 I get
21:02:49 <Vorpal> elliott, the 1.0 bit I don't get
21:02:52 <elliott> Vorpal: Because it's the first version of beta.
21:02:57 <Vorpal> elliott, 1.0 sounds like final release
21:02:58 <Vorpal> oh okay
21:03:06 <elliott> "Well, holy moly, beta is out. We'll update the website and increase the price now. :D" ;; Aren't you *already* a millionaire?
21:03:09 <fizzie> Vorpal: That's what it says nowadays. Linaro's some sort of linux-on-ARM advocacy group.
21:03:20 <Vorpal> fizzie, huh
21:03:27 <elliott> Apparently it's still 25% off the full price.
21:03:34 <elliott> How much money does the man want for such a buggy game?
21:03:48 <Vorpal> elliott, well hopefully it won't be buggy when it reaches stable
21:03:48 <elliott> fizzie: http://www.markshuttleworth.com/archives/427
21:03:49 <elliott> Hmm.
21:04:07 <elliott> fizzie: Presumably they include Linaro optimisations, but I can't imagine how they'd touch non-ARM-target builds.
21:04:16 <fizzie> Anyway, the headers end up having the always-inline attributes (for vprintf and others) when __GNUC_PREREQ(4,3) and __GNUC_STDC_INLINE__ is defined.
21:05:01 <elliott> fizzie: Undefined the latter. :p
21:05:03 <elliott> *Undefine
21:05:46 <Vorpal> hm
21:05:55 <fizzie> elliott: http://p.zem.fi/pjsm
21:06:03 <Vorpal> fizzie, which ubuntu version?
21:06:04 <fizzie> I don't think they want me to. :p
21:06:10 <elliott> fizzie: I ...
21:06:14 <fizzie> Vorpal: The official one.
21:06:22 <fizzie> I can never remember the numbers.
21:06:24 <fizzie> 10.10?
21:06:25 <elliott> fizzie: "-D_GNU_SOURCE=1 -D_REENTRANT" Ain't them new?
21:06:27 <elliott> And yes, 10.10
21:06:38 <fizzie> Right, the Perfect Ten.
21:06:46 <Vorpal> I stay on LTS
21:07:09 <fizzie> elliott: Those are added from pkg-config somewhere.
21:07:40 <fizzie> Or maybe not.
21:08:03 <fizzie> Oh, right, for --cflags sdl.
21:08:53 <elliott> fizzie: Welp, SORRY but your computer is not hardcore enough for the optimised edition.
21:09:34 <fizzie> Heh, with -U__GNUC_STDC_INLINE__ instead I get:
21:09:36 <fizzie> In file included from /usr/include/stdio.h:930,
21:09:36 <fizzie> from /usr/include/SDL/SDL_stdinc.h:37,
21:09:36 <fizzie> from /usr/include/SDL/SDL_main.h:26,
21:09:36 <fizzie> from /usr/include/SDL/SDL.h:30,
21:09:36 <fizzie> from world.c:5:
21:09:37 <fizzie> /usr/include/bits/stdio2.h: In function ‘printf’:
21:09:39 <fizzie> /usr/include/bits/stdio2.h:105: error: invalid use of ‘__builtin_va_arg_pack ()’
21:10:35 -!- elliott has quit (Read error: Connection reset by peer).
21:11:04 <Vorpal> fizzie, what distro does ellitott use?
21:11:14 <fizzie> Debian nowadays, I think.
21:11:17 <fizzie> At least at the moment.
21:11:31 -!- elliott has joined.
21:12:00 <Vorpal> ah
21:12:23 <zzo38> I should need a good quality random number generator that will first generate a seed value or take it from user input, and then can generate random numbers based on the algorithm, such that it will be the same all computers (so that you can play duplicate draft). Which algorithm should work good? Is the one in METAFONT good?
21:13:22 <fizzie> I'm not exactly sure how mcmap manages to trigger the problem, since a test program that just has a main and a vprintf-function like that works just fine.
21:13:23 -!- elliott has quit (Read error: Connection reset by peer).
21:13:43 -!- elliott has joined.
21:14:22 <Vorpal> fizzie, was it gcc 4.5.x?
21:14:29 <Vorpal> if so: not surprised
21:14:34 <elliott> 13:11:04 <Vorpal> fizzie, what distro does ellitott use?
21:14:36 <elliott> Why?
21:14:48 <elliott> zzo38: mersenne twister
21:14:52 <Vorpal> elliott, well not same as fizzie I guess
21:15:12 <Vorpal> elliott, but iirc mersenne isn't a CPRNG+
21:15:16 <Vorpal> s/+/?/
21:15:33 <elliott> Vorpal: Is zzo38 doing cryptography?
21:15:35 <fizzie> Vorpal: I already mentioned the version, didn't I?
21:15:42 <elliott> I don't think he is.
21:15:44 <fizzie> 4.4.5.
21:15:47 <Vorpal> elliott, true, he isn't
21:15:51 <Vorpal> fizzie, hm huh
21:16:11 <elliott> zzo38: You may also want to consider http://en.wikipedia.org/wiki/Blum_Blum_Shub.
21:16:12 <Vorpal> fizzie, yes, couldn't find it when scrolling bacl
21:16:14 <Vorpal> back*
21:16:25 <elliott> But Mersenne twister is very popular.
21:16:44 <zzo38> elliott: No. I am looking for one that is suitable for TeXnicard.
21:16:57 <elliott> zzo38: Welp, Mersenne twister of Blum Blum Shub are my recommendations.
21:17:33 <Vorpal> elliott, isn't blum blum shub rather slow (hm, wtf at that name btw)
21:17:44 <elliott> Vorpal: He's writing this in TeX, it's going to be slow.
21:17:48 <zzo38> "The generator is not appropriate for use in simulations, only for cryptography, because it is very slow."
21:17:50 <fizzie> Blum's the slowest thing in the world.
21:17:55 <elliott> Vorpal: And it was invented by Blum, Blum and Shub.
21:18:00 <elliott> But yes, I'd go for Mersenne.
21:18:07 <elliott> It's just Vorpal whined about not being crypto-ready. :p
21:18:09 <zzo38> elliott: I am writing the program in Enhanced CWEB.
21:18:12 <elliott> zzo38: Ah.
21:18:15 <elliott> zzo38: http://en.wikipedia.org/wiki/Mersenne_twister
21:18:18 <elliott> zzo38: Just use that, everyone does.
21:18:26 <elliott> There's even pseudocode on the page.
21:18:55 <elliott> http://en.wikipedia.org/wiki/Mersenne_twister#Implementations <-- Now here's a section that needs extreme cutting.
21:19:14 <Vorpal> yeah it's decent if you don't need a CPRNG
21:19:15 <fizzie> MT's very popular indeed.
21:19:35 <elliott> http://en.wikipedia.org/wiki/Linoleum_%28programming_language%29 LOL BLATANT ADVERTISEMENT
21:19:58 <fizzie> Also Marsaglia (of "Random numbers fall mainly in the planes") posted what he likes best in comp.lang.c not far ago, IIRC.
21:20:26 <fizzie> s/)/ fame)/
21:20:38 <Vorpal> fizzie, planes? is that the thing about PRNG and attractor analysis?
21:20:45 <nooga> ha!
21:20:53 <nooga> i just wrote my first trainer
21:20:54 <nooga> :D
21:21:02 <zzo38> elliott: OK I can use Mersenne twister
21:21:11 <Vorpal> nooga, trainer for?
21:21:16 <nooga> B.A.D
21:21:30 <Vorpal> nooga, never heard of it, what is it?
21:21:33 <nooga> space shooter for DOS by Webfoot, hard to find
21:21:37 <nooga> nothing special
21:21:47 <fizzie> Vorpal: Well, the high-dimensional lattice structure thing, yes. Probably just that.
21:21:48 <elliott> I am going to venture -- with sound off -- into the territory of Minecraft on Supposedly Peaceful.
21:21:51 <elliott> And I will have my fucking sword at the ready.
21:22:16 <nooga> elliott: finally I just decided to write small, offline memory dump analyser
21:22:16 <elliott> Armourless no less.
21:22:16 <fizzie> The mcmap build works without -combine -fwhole-program, but of course that's loser-talk.
21:22:20 <elliott> nooga: heh
21:22:34 <nooga> instead of patching dosbox debugger
21:22:38 <elliott> fizzie: As long as you put go-faster flares on, I guess it's okay.
21:22:41 <nooga> with new functions
21:23:22 <elliott> O god.
21:23:24 <elliott> It's too scary.
21:23:28 <zzo38> What is the best way to initialize the seed if no user seed has been specified?
21:23:41 <Gregor> time(NULL)^getpid()
21:23:42 <elliott> zzo38: "Another issue is that it can take a long time to turn a non-random initial state (notably the presence of many zeros) into output that passes randomness tests. A small lagged Fibonacci generator or linear congruential generator gets started much more quickly and usually is used to seed the Mersenne Twister with random initial values."
21:23:53 <elliott> zzo38: As for the input to that, try the current time. :p
21:24:42 <zzo38> Gregor: OK. (I want to ensure it works on both Windows and UNIX systems, however. I could put a change tag there if needed.)
21:25:10 <elliott> zzo38: Don't seed it directly like that.
21:25:26 <elliott> zzo38: Seed a Fibonacci generator or whatever with that, run it for a bit, and seed the Mersenne twister with its output.
21:26:04 <zzo38> elliott: OK, maybe I can do with Fibonacci generator.
21:26:10 <zzo38> For seeding it.
21:26:31 <elliott> fizzie I need therapy because of spiders.
21:26:55 <elliott> I have to pause the game every two seconds because I'm frightened to death that a spider will jump out of a corner and ravage me.
21:27:22 <zzo38> No actually you have to win a big spider more bigger than you. You also need to make a copy of the game on VHS tape.
21:27:24 <nooga> i HATE spiders
21:27:32 <fizzie> elliott: Just for giggles I tried it with gcc-4.5 in addition to gcc-4.4 too, and what it did was to remove the warning for the vprintf call in main.c:log_print, but add instead two similar warnings for both the printf and the vprintf calls in main.c:do_die. I'm not sure they've quite debugged the whole -combine thing.
21:27:53 <elliott> fizzie: You could use "cat" instead. :p
21:28:08 <elliott> fizzie: Now I need therapy.
21:28:21 <fizzie> Also the function for which it gives the warning depends on the order of the source files on the command line.
21:28:36 <zzo38> elliott: No you don't need therapy. You need a VHS tape.
21:28:45 <elliott> I do?
21:29:01 <zzo38> Yes.
21:29:02 <fizzie> Oh, it's a bit different warning: "/usr/include/bits/stdio2.h:115:1: sorry, unimplemented: inlining failed in call to ‘vprintf’: redefined extern inline functions are not considered for inlining"
21:29:49 <zzo38> You need a VHS tape and a big spider.
21:31:00 <elliott> [[# This may raise some eyebrows but I'm restricting the use of eval(*), setTimeout(string, ..), setInterval(string, ..) and Function(..). Don't dynamically include a script either (good call @bga_!). This list may grow if I discover another way of getting eval in so please don't bother. This rule targets the dynamic creation and running of js only (creating dynamic animations or whatever is fine). Note that setTimeout and setInterval with functi
21:31:00 <elliott> on arguments are still okay! I'm doing this for aesthetic reasons, mostly. The most fun of creating a demo is hand tuning it!]]
21:31:12 <Vorpal> <Gregor> time(NULL)^getpid() <-- uh, what if pid wraps around in the same second!?
21:31:13 <Vorpal> ;P
21:31:17 <elliott> Apparently the JS1k guy thinks he's cool enough to disallow procedural generation of programs.
21:31:23 <elliott> Way to eliminate a major source of compression and creativity!
21:31:45 <Gregor> elliott: That's laaaaame
21:31:53 <elliott> Gregor: Totally is.
21:32:02 <Vorpal> elliott, JS1k?
21:32:02 <elliott> Gregor: Why would you even do that? Dynamic inclusion of scripts, OK. But the others??
21:32:07 <elliott> Vorpal: Exactly what it sounds like.
21:32:14 <Vorpal> elliott, javascript 1000?
21:32:21 <Gregor> elliott: You should read my eval paper!
21:32:24 <elliott> Vorpal: *1024 +byte
21:32:26 <elliott> Gregor: Well, link it already.
21:32:30 <Gregor> http://sss.cs.purdue.edu/projects/dynjs/eval-TR.pdf
21:32:45 <elliott> If it isn't pun-titled I refuse.
21:33:18 <Gregor> OH BUT IT IS
21:33:24 <elliott> <3
21:33:24 <Vorpal> elliott, have you seen any enemies on peaceful yet?
21:33:37 <elliott> Vorpal: No, I'm too much of a pussy to unpause for more than a few seconds.
21:33:41 <elliott> Wow, I can't believe this is 1k: http://js1k.com/2010-first/demo/635
21:33:47 <elliott> c=document.body.children[0];h=t=150;L=w=c.width=800;u=D=50;H=[];R=Math.random;for($ in C=c.getContext('2d'))C[$[J=X=Y=0]+($[6]||'')]=C[$];setInterval("if(D)for(x=405,i=y=I=0;i<1e4;)L=H[i++]=i<9|L<w&R()<.3?w:R()*u+80|0;$=++t%99-u;$=$*$/8+20;y+=Y;x+=y-H[(x+X)/u|0]>9?0:X;j=H[o=x/u|0];Y=y<j|Y<0?Y+1:(y=j,J?-10:0);with(C){A=function(c,x,y,r){r&&a(x,y,r,0,7,0);fillStyle=c.P?c:'#'+'ceff99ff78f86eeaaffffd45333'.substr(c*3,3);f();ba()};for(D=Z=0;Z<21;Z++){
21:33:47 <elliott> Z<7&&A(Z%6,w/2,235,Z?250-15*Z:w);i=o-5+Z;S=x-i*u;B=S>9&S<41;ta(u-S,0);G=cL(0,T=H[i],0,T+9);T%6||(A(2,25,T-7,5),y^j||B&&(H[i]-=.1,I++));G.P=G.addColorStop;G.P(0,i%7?'#7e3':(i^o||y^T||(y=H[i]+=$/99),'#c7a'));G.P(1,'#ca6');i%4&&A(6,t/2%200,9,i%2?27:33);m(-6,h);qt(-6,T,3,T);l(47,T);qt(56,T,56,h);A(G);i%3?0:T<w?(A(G,33,T-15,10),fc(31,T-7,4,9)):(A(7,25,$,9),A(G,25,$,5),fc(24,$,2,h),D=B&y>$-9?1:D);ta(S-u,0)}A(6,u,y-9,11);A(5,M=u+X*.7,Q=y-9+Y/5,8);A(8,M,
21:33:47 <elliott> Q,5);fx(I+'¢',5,15)}D=y>h?1:D",u);onkeydown=onkeyup=function(e){E=e.type[5]?4:0;e=e.keyCode;J=e^38?J:E;X=e^37?e^39?X:E:-E}
21:33:51 <elliott> Very very impressive.
21:34:42 <Vorpal> no procedural generation kind of ruins it
21:36:09 <elliott> Yeah.
21:36:14 <Gregor> I SEE A SETINTERVAL BLORP BLORP
21:36:27 <elliott> Gregor: That's from the last competition; also, he only disallowed *string* setIntervals.
21:36:34 <elliott> Vorpal: Well, you can still procedurally generate, just not procedurally generate *code*.
21:36:36 <Gregor> I SEE A STRING SETINTERVAL BLORP BLORP
21:36:40 <elliott> Genetic algorithms vs. genetic programming.
21:36:44 <elliott> Gregor: That's from the last poop.
21:36:51 <elliott> http://js1k.com/2010-first/demo/593 MOTHERFUCKING ANIMATED LASERS
21:37:55 <elliott> Gregor: You should have attributed the opening quote to Douglas "Secretly Satan" Crockford.
21:37:57 <elliott> You know it's true.
21:38:07 <Vorpal> elliott, silly
21:38:14 <Vorpal> (lack of code gen)
21:38:17 <elliott> Yeah.
21:39:57 <elliott> "To this end, we have built an infrastructure that automatically loads over 10,000 web pages." "And have since put it to work downloading porn."
21:40:20 <Gregor> We probably have a not-insubstantial amount of porn downloaded, yeah.
21:41:42 <elliott> Gregor: Put up a torrent of all of them :P
21:42:33 <Gregor> $ du -hc cache
21:42:33 <Gregor> 6.4G cache
21:43:32 <elliott> Gregor: So?
21:43:36 <elliott> Gregor: There are torrents bigger than that.
21:43:45 <Gregor> I wasn't saying that was infeasible at all :P
21:43:52 <Gregor> Also, that's only half our cache.
21:44:00 <elliott> Gregor: Do eet.
21:44:10 <Gregor> Probably a lot of it ISN'T porn though D-8
21:44:36 <elliott> Gregor: You probably got some kiddie pr0n in there, too, and also of course heaps of copyrighted material so GOOD LUCK redistributing that :P
21:44:53 <elliott> " To illustrate the power of eval, consider the following example, which is one way to
21:44:53 <elliott> implement objects using only functions and local variables."
21:44:57 <elliott> BRB, ADOPTING THIS IN ALL MYCODE.
21:44:58 <elliott> *MY CODE.
21:44:59 <Gregor> I really don't think there's child porn in the top 10,000 most popular sites ...
21:45:07 <elliott> YOU WANNA BET
21:45:08 <elliott> And:
21:45:12 <elliott> You didn't consider unpopular sites? LAME
21:46:19 <elliott> Gregor: What's that new function syntax JS1.93458345whatever introduced?
21:46:24 <Vorpal> fizzie, there?
21:46:32 <Gregor> elliott: function(x) x
21:46:39 <Vorpal> fizzie, need help debugging the possible collaboration thingy?
21:46:49 <Vorpal> (if you have a server I could try going there)
21:46:57 <elliott> Gregor: To illustrate the power of eval, consider the following example, which is one way to
21:46:57 <elliott> implement objects using only functions.
21:46:59 <elliott> Point = function() {
21:46:59 <elliott> return {x:0, y:0};
21:46:59 <elliott> }
21:47:02 <elliott> Gregor: U JELLY?
21:47:15 <elliott> <Gregor> CURSES! FOILED AGAIN!
21:47:27 <Gregor> elliott: That doesn't implement objects, it just leans on the pre-existing implementation of objects.
21:47:30 <elliott> Gregor: Also, does anything actually support function(x) x yet...?
21:47:34 <elliott> <Gregor> elliott: That doesn't implement objects, it just leans on the pre-existing implementation of objects.
21:47:38 <elliott> Gregor: So does yours :P
21:47:40 <zzo38> How good is Xorshift random number generator?
21:47:41 <elliott> eval is a function which is an object.
21:47:42 <elliott> Also strings.
21:47:45 <Gregor> elliott: Only Mozilla, and it's not even part of standard ES, so nothing will.
21:47:47 <elliott> zzo38: Not as good as Mersenne.
21:47:50 <fizzie> Vorpal: I'll save that to some point when it naturally crashes; if I have any luck, someone has figured the protocol out by then.
21:47:51 <elliott> Gregor: lawl
21:47:59 <Vorpal> fizzie, hah
21:47:59 <elliott> zzo38: Oh, wait.
21:48:02 <elliott> zzo38: It's Marsaglia.
21:48:05 <elliott> zzo38: Yes, that should be just fine.
21:48:11 <elliott> zzo38: Just steal the implementation from http://en.wikipedia.org/wiki/Xorshift :P
21:48:36 <zzo38> elliott: That is the page I looked at! The only problem is, what is the best way to seed it?
21:48:46 <elliott> zzo38: Looks like it comes pre-seeded to me.
21:49:17 <elliott> zzo38: But, um, if seeding it with time() or whatever isn't enough, you could use a http://en.wikipedia.org/wiki/Linear_congruential_generator.
21:49:21 <zzo38> elliott: I can see that. That is why I need to make it seedable by external.
21:50:03 <zzo38> I ought to use a generator good enough that even WotC could use it for making booster packs and it would be difficult to predict what cards you are going to get.
21:50:44 <elliott> Gregor: Point = function(){
21:50:45 <elliott> return (function(o){
21:50:45 <elliott>
21:50:45 <elliott> })(function(f){return f((function(f,x){return x}),(function(f,x){return x}))}
21:50:45 <elliott> }
21:50:54 <elliott> Gregor: Skeleton of an example which implements objects using only functions.
21:51:10 <elliott> (That function it's being called with is lambda-calculus-style (0,0) :P)
21:51:17 <Gregor> elliott: I don't think you fully understand the notion of an illustrative example :P
21:51:29 <elliott> Gregor: You should have put that in with "..." in the body.
21:51:34 <elliott> Leaving the body as an exercise to the reader.
21:51:57 <Gregor> Results
21:52:03 <Gregor> Results are left as an exercise to the reader.
21:52:09 <elliott> " Any assignment to
21:52:10 <elliott> an undeclared variable in JavaScript, including in an eval, will implicitly declare the
21:52:10 <elliott> variable in the global scope, becoming globally visible and polluting the namespace.
21:52:10 <elliott> For instance, executing eval(”x=4”) in a scope that does not include x will declare x in
21:52:10 <elliott> the global scope and assign it the value 4."
21:52:12 <elliott> tl;dr javascript sucks
21:52:58 <elliott> Gregor: Now you've made me want to write Pong In Five Statements D:
21:53:29 <elliott> [[ Of course the above code could be implemented straight-
21:53:29 <elliott> forwardly without eval as:
21:53:29 <elliott> Resources[”message ” + userInput]]]
21:53:36 <elliott> Gregor: Ever considered Resources.messages[userInput]? :P
21:54:16 <Gregor> elliott: That's not the above code.
21:54:21 <Gregor> elliott: That's code similar to the above code.
21:54:26 <elliott> Gregor: No, but it is a better solution :P
21:54:36 <Gregor> elliott: Yes, it is, and we go into that later.
21:54:46 <elliott> Gregor: Your eval("Resources.message_" + validate(userInput)) isn't the same code as that either.
21:54:51 <elliott> Depending on the definition of validate :P
21:54:57 <Gregor> Fair enough *shrugs*
21:55:06 <zzo38> elliott: If using Xorshift, what would be the best way to modify the registers for seeding? Should we change "w"? Should we add the seed number to all of "x" and "y" and "z" and "w"? How should it be entered into a bibliography?
21:55:11 <elliott> Gregor: I'm jus' pickin' on you 'cuz I'm jealous.
21:55:44 <Gregor> Jealous of all the porn our autostuff downloaded.
21:55:47 <elliott> zzo38: * Marsaglia (July 2003). "Xorshift RNGs". Journal of Statistical Software Vol. 8 (Issue 14). http://www.jstatsoft.org/v08/i14/paper.
21:55:51 <elliott> zzo38: would be the bibliography reference.
21:56:07 <Vorpal> ... XD
21:56:11 <zzo38> elliott: OK. What formatting should be used?
21:56:36 <elliott> The seed set for xor128 is four 32-bit integers x,y,z,w not all 0, while the seed set for MWC is three 32-bit integers
21:56:36 <elliott> x,y,z and an initial c<a, excluding the two cases x=y=z=c=0, and x=y=z=b-1,c=a-1.
21:56:37 <Vorpal> zzo38, doesn't bibtex handle that?
21:56:41 <elliott> zzo38: Basically, it comes pre-seeded.
21:56:57 <elliott> zzo38: So I would change all of them.
21:57:08 <Vorpal> elliott, won't it generate the same stream all the times if the seed is the same?
21:57:17 <elliott> zzo38: Just set x, y, z and w according to successive values of whatever seeder RNG you have, seeded itself with time() or similar.
21:57:19 <zzo38> I think I will put the bibliography directly before the index.
21:58:47 <zzo38> elliott: I am not using BibTeX. I am using Enhanced CWEB to write this program, I told you already. What would be a very simple seeder RNG for this?
21:59:33 <zzo38> Vorpal: It can use seed from timer (and possibly other things), but it is OK if it generate the same stream with the same seed, it is supposed to be like that so that you can enter the seed manually in case you want to play duplicate draft, or something similar.
22:00:03 <elliott> zzo38: I did not say BibTeX.
22:00:04 <Vorpal> mhm
22:00:10 <elliott> Vorpal said BibTeX.
22:00:13 <Vorpal> yeah
22:00:16 <zzo38> OK
22:00:32 <zzo38> Vorpal: OK you tell me the formatting to use, then.
22:00:33 <elliott> zzo38: Simple seeder RNG would be Fibonacci generator or linear congruential generator.
22:00:57 <zzo38> elliott: OK.
22:03:19 * nooga cracker
22:03:38 <nooga> btw. who did this skyway's levels renderings?
22:03:50 <elliott> nooga: ?
22:06:27 <elliott> pikhq: OMake review: Oh hey the website looks nice. And so simple too!
22:06:27 <elliott> $ omake --install
22:06:28 <elliott> omake: Symbol `FamErrlist' has different size in shared object, consider re-linking
22:06:28 <elliott> OMakeroot already exists, overwrite (yes/no)? yes
22:06:28 <elliott> *** omake: creating OMakeroot
22:06:28 <elliott> *** omake: creating OMakefile
22:06:29 <elliott> *** omake: project files OMakefile and OMakeroot have been installed
22:06:31 <elliott> *** omake: you should edit these files before continuing
22:06:33 <elliott> pikhq: Fuck this shit.
22:06:35 <elliott> pikhq: (All builds are similarly noisy.)
22:06:45 <elliott> And you get stuck with a useless OMakeroot file that apparently you usually don't need to edit.
22:09:28 <Vorpal> zzo38, no idea if you don't use bibtex
22:11:52 <zzo38> Vorpal: I am using Enhanced CWEB to write this program. You can just tell me what parts ought to be bold and so on, and what paragraph formatting you think is good for bibliography.
22:13:25 <pikhq> elliott: God that's stupid.
22:13:52 <Vorpal> zzo38, I don't know, doesn't it depend on citation style?
22:13:55 <elliott> pikhq: It even tells me that it's looking for g++ when I try to compile a C file, and when it finds it, then looks for gcc.
22:13:58 <elliott> Why did you have to look for g++?
22:14:34 <elliott> pikhq: I am starting to think that the best short-term solution is to write a GNU Make library of sorts...
22:14:46 <elliott> pikhq: So you can just do "include lib.make" and have most everything sorted.
22:14:48 <zzo38> Vorpal: I don't know either. What does citation style means?
22:16:06 <Vorpal> I'll let elliott explain
22:16:15 <elliott> I'll let Vorpal explain
22:16:21 <Vorpal> (hardvard, oxford, Vancouver and so on)
22:16:33 <elliott> Harvard, Oxford, Vancouver, Pyongyang.
22:16:49 <pikhq> Pyongyang citation style‽
22:17:03 <zzo38> Which style should I use?
22:17:07 <elliott> zzo38: Pyongyang!
22:17:14 <elliott> You just credit everything to Dear Leader.
22:17:16 <elliott> It's really simple.
22:17:19 <elliott> Here's what a citation looks like:
22:17:22 <elliott> [1] Dear Leader.
22:17:29 <elliott> pikhq: Actually, a GNU make library would be really useful...
22:18:02 <zzo38> elliott: That is no good! I need to use a proper style. Which style is good for literate programming?
22:18:48 <elliott> zzo38: No idea.
22:20:28 <Vorpal> elliott, stop trolling zzo38
22:20:55 <elliott> Vorpal: I use the Pyongyang style all the time![1]
22:20:56 <elliott> [1] Dear Leader.
22:21:28 <zzo38> elliott: I don't really care what style you use. But for me it is insufficient.
22:21:59 <pikhq> PRAISE BE TO THE DEAR LEADER OF THE DEMOCRATIC PEOPLE'S REPUBLIC OF CHOSON!
22:22:22 <olsner> elliott: you broke my code? it works for me :)
22:22:34 <elliott> olsner: not when you define a Floating instance :P
22:22:37 <elliott> and also add | Zero
22:22:43 <elliott> pikhq: map = $(foreach a,$(2),$(call $(1),$(a)))
22:22:44 <elliott> pikhq: o = $(call map,origin,o map MAKE)
22:22:50 <elliott> pikhq: This is an actual example from the GNU make documentation.
22:22:56 <pikhq> *vomit*
22:23:44 <elliott> define hello
22:23:44 <elliott> hello: ;
22:23:44 <elliott> @echo hi
22:23:44 <elliott> @echo bye
22:23:44 <elliott> endef
22:23:45 <elliott> $(hello)
22:23:50 <elliott> pikhq: Valid GNU make. (Yes, the ; is required.)
22:23:55 <elliott> pikhq: So this means a library is actually feasible ...
22:24:03 <elliott> define hello
22:24:03 <elliott> hello: ;
22:24:03 <elliott> @echo hi
22:24:03 <elliott> @echo bye
22:24:03 <elliott> endef
22:24:04 <elliott> This even works. :p
22:25:40 <zzo38> Well, I put some macros in the limbo area for bibliography. I still don't know what style to use.
22:26:18 <zzo38> And I still don't know what parts to make bold, slanted, etc
22:27:55 -!- j-invariant has quit (Quit: leaving).
22:28:38 <elliott> pikhq: Do you know how to disable all implicit Make rules?
22:30:23 <olsner> elliott: make --help or man make?
22:30:38 <elliott> olsner: asking pikhq is easier
22:30:56 <olsner> ... but slower
22:31:00 <elliott> but easier
22:32:08 <olsner> I know what it is now that I've looked it up in the make -h output, you could too
22:32:51 <Vorpal> elliott, and you tell me to google for stuff?
22:33:06 <elliott> olsner: i'm busy reading the whole manual
22:33:09 <elliott> which is much less useful
22:33:24 <elliott> I wish you could write $(foo bar, baz) for $(call foo, bar, baz)
22:34:21 <olsner> ah, making every multiple-word variable expansion a function call ... I can't see why that wouldn't work, it's such an obvious improvement too
22:34:59 <olsner> why do you read the *whole* manual when all you want to know is one option?
22:35:29 <olsner> that's like... an implementation of 'head' that always reads to EOF before printing anything
22:35:53 <olsner> "ooh, found it! now I just have to remember it until I get to the end of the manual!"
22:38:41 <elliott> olsner: :D
22:39:18 <elliott> olsner: right now I'm grappling with the seemingly-impossible task: "Turn 'a b c' into 'a,b,c'."
22:39:34 <olsner> $(shell) and sed
22:41:03 <elliott> joinwith = $(if $(2),$(firstword $(2))$(if $(wordlist 2,$(words $(1)),$(1)),$(1)$(call joinwith,$(1),$(wordlist 2,$(words $(1)),$(1))),),)
22:41:05 <elliott> YAAAAAAAAAAAAAAAAAAAAAAAAAAAY
22:41:08 <elliott> pikhq: YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY
22:41:13 * elliott gushes blood from every pore
22:41:15 <elliott> YAAAAAAAAAAAAAAAAAAAAAAAY
22:41:23 <olsner> elliott: wtf, my eyes are bleeding :(
22:41:31 <elliott> olsner: YAAAAAAAAAAAAAAAAAAAAAY
22:42:30 <elliott> olsner: doesn't even work :D
22:42:58 <olsner> make it work, then comment it out and replace with the silly sed solution
22:43:06 <elliott> olsner: that's not PORTABLE to OS/2
22:43:24 <olsner> well, wtf *is* portable to OS/2?
22:43:32 <elliott> aha i had $(1) instead of $(2)
22:43:33 <elliott> EASY
22:43:34 <elliott> MSITAKE
22:43:35 <elliott> *MISTAKE
22:44:08 <olsner> hmm, on second thought, I might have made some code that worked on both Linux and OS/2 :(
22:44:14 -!- Phantom_Hoover_ has quit (Quit: Leaving).
22:44:24 <elliott> define joinwith
22:44:24 <elliott> $(if $(2),
22:44:24 <elliott> $(firstword $(2))
22:44:24 <elliott> $(if $(wordlist 2,$(words $(2)),$(2)),
22:44:24 <elliott> $(1)
22:44:24 <elliott> $(call $(0),$(1),$(wordlist 2,$(words $(2)),$(2)))
22:44:26 <elliott> ,),)
22:44:28 <elliott> endef
22:44:30 <elliott> i give up
22:44:32 <elliott> there has to be another way
22:45:07 <elliott> EMPTY :=
22:45:07 <elliott> SPACE := $(EMPTY) #
22:45:07 <elliott> COMMA := ,
22:45:16 <elliott> olsner: that comment is solely there to show that, yes, gnu make is crazy!
22:45:18 <elliott> SPACE := #
22:45:20 <elliott> DOES NOT WORK
22:45:21 <elliott> but
22:45:23 <elliott> SPACE := $(EMPTY) #
22:45:23 <elliott> DOES
22:45:51 <olsner> (I don't remember if I had any code that was shared, or if the OS/2 and Linux parts were disjoint)
22:46:02 <elliott> olsner: you wrote OS/2 parts? why :D
22:46:16 <olsner> elliott: because it needed to run on OS/2
22:46:27 <olsner> or it *involved* OS/2 is more correct
22:47:24 <elliott> "The value function provides a way for you to use the value of a variable without having it expanded"
22:47:26 <elliott> MWAHAHAHAHA
22:47:29 <elliott> olsner: why.
22:47:37 <olsner> elliott: because.
22:47:39 <elliott> "The eval function is very special"
22:47:43 <olsner> *because?
22:47:44 <elliott> In the really, really retarded sense of "special".
22:48:08 <elliott> ifdef bletch
22:48:08 <elliott> ifeq "$(origin bletch)" "environment"
22:48:09 <elliott> bletch = barf, gag, etc.
22:48:09 <elliott> endif
22:48:09 <elliott> endif
22:48:11 <elliott> funny, mr. manual;
22:48:13 <elliott> that's how i feel about gnu make
22:48:48 <olsner> Mark writes, "advice that is true for life as well as code."
22:48:48 <olsner> # The colon is very important. DO NOT TOUCH.
22:48:58 <elliott> :D
22:49:23 <elliott> [["This is used all over our app," writes Anthony Arnold, "I get rid of them when I see them. What's wrong with !String.IsNullOrEmpty((s ?? "").ToString())"
22:49:23 <elliott> public static bool IsRealString(object s)
22:49:23 <elliott> {
22:49:23 <elliott> return s != null && !String.IsNullOrEmpty(s.ToString());
22:49:23 <elliott> }]]
22:49:31 <elliott> Why is that even on the daily wtf?
22:49:39 <elliott> ZOMG IT DOESN'T USE THE *ABSOLUTE NEWEST* CONSTRUCTS
22:49:43 <elliott> NOT PRESENT IN MOST OTHER LANGUAGES
22:49:45 <elliott> IT'S EVIL CODE
22:49:45 <Vorpal> <elliott> SPACE := $(EMPTY) # <-- why not " " ?
22:49:52 <elliott> Vorpal: you mean SPACE := " "?
22:49:59 <Vorpal> elliott, yeah
22:49:59 <elliott> that defines it to literally be quote mark, space, quote mark
22:50:01 <elliott> duh
22:50:05 <Vorpal> elliott, oh...
22:50:09 <Vorpal> elliott, how silly
22:50:09 <olsner> elliott: hopefully that's sarcasm and that other construct is considered equally bad
22:50:12 <elliott> you are clearly a make n00b luz3r
22:50:18 <elliott> olsner: I doubt it
22:50:23 <elliott> olsner: oh wait
22:50:26 <elliott> olsner: just looked at it :D
22:50:28 <elliott> yeah okay
22:50:28 <elliott> lol
22:51:25 <olsner> or maybe the submitter thinks that's the best way to do it and the wonder of clarity
22:51:27 <Vorpal> elliott, C#?
22:51:36 <elliott> Vorpal: prolly
22:51:38 <Vorpal> what the heck does ?? do there
22:51:41 <olsner> and as the readers we're supposed to go "lol, the *real* wtf, etc"
22:51:45 <Vorpal> I do not remember
22:52:11 <olsner> presumably s ?? foo means s != null ? s : foo
22:52:13 <elliott> yep
22:52:19 <elliott> olsner: btw i want to get rid of implicit rules in the makefile, not on the command line
22:52:29 <elliott> so -h does not help :P
22:53:08 <Vorpal> elliott, all:\n$(MAKE) -<switch> realall
22:53:14 <Vorpal> (NOTE: DON'T DO THIS)
22:53:21 <elliott> echo $(subst $(SPACE),$(COMMA),$(LD.FLAGS))
22:53:23 <elliott> HAHA IT WORKS
22:53:26 <olsner> you could ... $(filter) on MAKEFLAGS (or whatever it's called), then call make recursively if implicit rules are not disabled
22:53:34 <elliott> Vorpal: I might, actually, except the way olsner does it.
22:53:38 <elliott> I can't really think of a cleaner solution. :p
22:53:54 <Vorpal> elliott, you would need one per target
22:53:55 <Vorpal> !!
22:54:02 <elliott> Vorpal: nope
22:54:05 <olsner> put an if around your whole makefile, and use MAKECMDGOALS along with a catch-all rule to implement the wrapper
22:54:05 <elliott> Vorpal: %: \n ...
22:54:11 <Vorpal> elliott, oh my
22:54:13 <elliott> but yeah, what olsner said
22:54:31 <olsner> and remember to handle an empty list of goals
22:55:25 <olsner> I remember doing this once (not for the purpose of adding -r though) and deciding that it didn't end up that ugly after all
22:55:25 <Vorpal> olsner, won't the first rule be invoked then?
22:55:56 <olsner> Vorpal: put everything in an if so only the wrapper part is visible when you've decided you need to wrap
22:56:01 <Vorpal> why not BSD make
22:56:06 <Vorpal> isn't it much nicer iirc
22:57:05 <Vorpal> elliott, didn't mk have problems with spaces in the filenames?
22:57:26 <elliott> mk, yes, I think so.
22:57:34 <Vorpal> what about make?
22:57:36 <elliott> BSD make is less featureful, so I can't bend it into usefulness.
22:57:44 <elliott> Vorpal: It works *if* you take precautions at every point to make it work.
22:57:51 <elliott> Vorpal: Which my library *will* but *nothing* else does.
22:58:04 <Vorpal> elliott, a make library?
22:58:13 <elliott> Vorpal: Yes.
22:58:20 <elliott> Vorpal: The idea is that you can make your Makefile look something like this:
22:58:26 <elliott> include useful.make
22:58:29 <olsner> a make library? intriguing
22:58:36 <elliott> $(call c-program, foo, *.c)
22:58:38 <elliott> Or the like.
22:58:45 <Vorpal> elliott, does it do the deps thingy then
22:58:49 <Vorpal> so you get those .d files
22:58:50 <elliott> Vorpal: Yes, it will.
22:59:03 <elliott> Vorpal: It'll also hopefully have easy ways to add pkgconfig libraries to the mix, without manually doing $(shell pkg-config ...).
22:59:20 <Vorpal> elliott, and if the package only has foo-config?
22:59:33 <Vorpal> as in /usr/bin/motif-config (I hope not!)
22:59:35 <elliott> Vorpal: Well, then you get to add support yourself. Or maybe I'll have specific stuff for that :p
22:59:39 <elliott> Also, *allegro-config would be more realistic.
22:59:55 <Vorpal> elliott, well okay, I don't know which packages still use only that old style
23:00:06 <Vorpal> allegro would be reasonable to presume
23:00:10 <Vorpal> it is so.... backwards
23:00:17 <elliott> Allegro is nice though. :p
23:00:24 <Vorpal> elliott, SDL isn't bad either
23:00:30 <elliott> Allegro does more stuff for you.
23:00:45 <Vorpal> elliott, true, but it feels rather outdated somehow (yes yes, allegro 5...)
23:00:45 <elliott> Ugh, how can one make a submake not print "make[1]:"? I want to use $(MAKE) to be a Good Citizen but I don't want it to think "ooh, recursion!".
23:00:52 <zzo38> I have used SDL. It does work.
23:00:59 <Vorpal> no one doubted that
23:01:11 <olsner> if (oneHundred == 100) { oneHundred /= 2; }
23:01:26 <Vorpal> olsner, dailywtf?
23:01:35 <zzo38> olsner: What is the point of such a code?
23:02:30 <olsner> zzo38: Indeed.
23:02:46 <zzo38> TeX sometimes makes overfull boxes. I fixed it by setting \emergencystretch=\hsize
23:04:24 <zzo38> olsner: Yes I have seen that code in Daily WTF.
23:05:04 <pikhq> elliott: Don't use a submake?
23:05:20 <elliott> pikhq: Give me another way to disable the default set of implicit rules.
23:05:34 <elliott> (Than filtering on MAKEFLAGS and re-making with --no-builtin-rules if it isn't there.)
23:05:44 <pikhq> Oh!
23:06:18 <pikhq> So that's what you're doing.
23:07:11 <elliott> pikhq: Yeah.
23:07:12 <Vorpal> elliott, just manually redefine a replacement for each built in rule
23:07:16 <Vorpal> ;P
23:07:24 <elliott> Vorpal: There is no way to know exactly what built-in rules are defined. :p
23:07:35 <elliott> Except maybe INVOKING MAKE TO ASK IT!11271892 (Even if this is possible: NO.)
23:07:47 <Vorpal> elliott, make -p
23:07:57 <Vorpal> elliott, then write a parser in make
23:08:07 <Vorpal> elliott, generate a makefile, and include it
23:08:09 <Vorpal> or something
23:08:20 <Vorpal> elliott, note: not a good idea
23:08:31 <elliott> lawl#
23:08:33 <elliott> *lawl
23:08:35 -!- zzo38 has quit (Remote host closed the connection).
23:09:05 <Vorpal> elliott, hm is make classified as an expert system or not?
23:09:19 <elliott> Yes.
23:09:27 <elliott> In fact "Recursive Make Considered Harmful" explicitly describes it as one.
23:09:30 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:09:41 <Vorpal> elliott, I wonder if you could turn it into a probabilistic expert system!
23:11:17 <elliott> Aha.
23:11:18 <elliott> MAKELEVEL=0.
23:11:53 <elliott> make: *** No rule to make target `sdf'. Stop.
23:11:53 <elliott> make: *** [sdf] Error 2
23:11:56 <elliott> Now to get rid of that pesky second line.
23:12:06 <elliott> pikhq:
23:12:06 <elliott> .RECIPEPREFIX
23:12:06 <elliott> The first character of the value of this variable is used as the character make assumes is introducing a recipe line. If the variable is empty (as it is by default) that character is the standard tab character. For example, this is a valid makefile:
23:12:06 <elliott> .RECIPEPREFIX = >
23:12:06 <elliott> all:
23:12:08 <Vorpal> elliott, not sure you can
23:12:09 <elliott> > @echo Hello, world
23:12:10 <elliott> The value of .RECIPEPREFIX can be changed multiple times; once set it stays in effect for all rules parsed until it is modified.
23:12:13 <elliott> LOL WAT.
23:12:26 <Vorpal> elliott, what is a "recipe" in make
23:12:43 <Vorpal> oh
23:12:44 <elliott> Vorpal: The actual shell script with make variable inclusions and the like.
23:12:47 <Vorpal> right
23:12:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:13:02 <Vorpal> elliott, can it be set to two chars
23:13:09 <Vorpal> elliott, so you can do space indented makefile
23:13:11 <Vorpal> or even mixed
23:13:21 <elliott> .RECIPEPREFIX := $(SPACE) *should* work.
23:13:28 <elliott> But you'd really want space-or-tab, which I think is impossible.
23:13:32 <Vorpal> ah
23:13:55 <Vorpal> elliott, I know it would confuse the hell out of most editor's mode for makefiles
23:14:03 <Vorpal> emacs would probably hate you
23:14:05 <Vorpal> same for kate
23:14:11 <pikhq> GNU Make really could do with a "break compatibility" option so that it can have saner syntax.
23:14:27 <pikhq> But, then, GNU would fuck it up somehow.
23:14:31 <Vorpal> yeha
23:14:32 <Vorpal> yeah*
23:14:35 <Vorpal> write your own?
23:15:01 <Vorpal> pikhq, all of this channel would thank you
23:15:08 <pikhq> Like turn $@ into $THE_TARGET_FOR_THIS_HERE_GNU_(GNU'S_NOT_UNIX)_MAKE_RECIPE_WILL_BE_PUT_IN_PLACE_OF_THIS_STRING
23:16:44 <elliott> Vorpal: Hey, my plan if this doesn't work out is to write my own Make-alike.
23:16:56 <elliott> Vorpal: Where in $(...), the code in ... is just interpreted in a pure, functional language.
23:17:02 <elliott> With PROPER LISTS, god dammit.
23:18:22 <Vorpal> hah
23:18:28 <olsner> you don't need lists, you can just use space-delimited strings! it's so much easier!
23:18:54 <elliott> olsner: Especially when your filenames have spaces in them!
23:19:20 <olsner> since you can't use such files with make, make users will not create such files :D
23:19:29 <elliott> olsner: you can, actually
23:19:32 <elliott> just reaaally painfully
23:20:02 <Vorpal> elliott, what about filenames with : in them
23:20:26 <Vorpal> can you do foo: bar is a nice file.interesting extension.really fun : something
23:20:30 <elliott> Vorpal: I think foo\:: bar might be valid
23:20:31 <elliott> if not,
23:20:34 <elliott> foo := foo:
23:20:35 <elliott> $(foo): bar
23:20:36 <elliott> probably is
23:20:39 <Vorpal> elliott, hah
23:20:51 <elliott> when in doubt, make a fucking variable
23:21:09 <Vorpal> elliott, mpw make!
23:21:15 <Vorpal> (just because)
23:21:18 <Vorpal> elliott, ever used it?
23:21:33 <Vorpal> it has it's own syntax, using non-ascii for stuff like : and \
23:21:43 <Vorpal> (macroman ftw)
23:22:00 <Vorpal> elliott, ?
23:22:02 <elliott> Vorpal: i've seen it.
23:22:06 <elliott> when trying to compile your cfunge port
23:22:14 <Vorpal> elliott, I didn't port cfunge...
23:22:18 <Vorpal> elliott, I ported ick
23:22:32 <Vorpal> porting cfunge would be insane
23:23:12 <elliott> oh joy, there's commas in my function argument
23:23:19 <elliott> time to mutilate my vital organs
23:23:23 <Vorpal> hah
23:23:46 <Vorpal> elliott, the issue is that make is doing this on a textual level
23:23:51 <elliott> you don't say
23:23:59 <Vorpal> elliott, I mean, it is rather insane
23:23:59 <elliott> oh wait my cat function seems broken
23:24:00 <elliott> neat!
23:24:02 <Vorpal> even for shells
23:24:02 <elliott> just like real cats
23:24:11 <elliott> always...broken
23:24:34 <elliott> ok you know what? fuck $(LD.FLAGS) for now
23:24:48 <Vorpal> elliott, why are you using that name
23:24:55 <Vorpal> elliott, LDFLAGS is kind of more common
23:25:00 <elliott> HAHAHAHAHAHAHAHA THE ISSUE IS THAT I HAD NEWLINES IN MY MACRO
23:25:13 <olsner> Vorpal: this is not the channel for "common" and you know it
23:25:16 <Vorpal> elliott, wait what
23:25:18 <elliott> Vorpal: because "CFLAGS" is stupid; I'm rationalising all the variable names and then defaulting them to the common name
23:25:26 <Vorpal> elliott, ah
23:25:26 <elliott> e.g. CC.FLAGS := $(CFLAGS)
23:25:28 <Vorpal> elliott, nice idea
23:25:31 <elliott> I may end up lowercasing it to cc.flags for less annoyance :P
23:25:34 <Vorpal> elliott, seen it done before though
23:25:46 <Vorpal> elliott, WHY NOT SHOUT WHEN YOU CAN. ALSO IT'S TRADITIONAL!
23:26:23 <Vorpal> "Tradition, tradition, where would we be without tradition" <-- I know this is a quite from somewhere, but I can't remember where
23:26:58 <elliott> define default
23:26:58 <elliott> $(eval,ifndef $(1)
23:26:58 <elliott> $(1) := $(2)
23:26:58 <elliott> endif)
23:26:58 <elliott> endef
23:27:00 <Vorpal> (I think, some play)
23:27:01 <elliott> aww, doesn't quite work
23:27:02 <Vorpal> (or such)
23:30:26 <elliott> hahaa it works
23:30:31 <Vorpal> elliott, how?
23:30:35 <elliott> define default_body
23:30:36 <elliott> ifeq ($$(origin $(1)), undefined)
23:30:36 <elliott> $(1) := $(2)
23:30:36 <elliott> endif
23:30:36 <elliott> endef
23:30:37 <elliott> default = $(eval $(call default_body,$(1),$(2)))
23:30:43 <Vorpal> whaaat
23:30:54 <Vorpal> that makes no sense
23:30:57 <elliott> I'm not sure why the make example for ?= uses origin like that though
23:31:01 <elliott> Vorpal: I think that
23:31:01 <elliott> $(eval
23:31:02 <elliott> foo
23:31:03 <elliott> bar)
23:31:06 <elliott> gets all its whitespace flattened
23:31:11 <elliott> whereas a multi-line macro can have any whitespace it wants
23:31:17 <elliott> i.e. $(foo bar baz) has all its newlines normalised to spaces
23:31:22 <elliott> whereas the body of a multi-line macro does not
23:31:24 <elliott> thus explaining the above
23:31:25 <Vorpal> elliott, ouch
23:31:46 <elliott> " If the variable variable-name has an empty value, the text-if-true is effective; otherwise, the text-if-false, if any, is effective. The rules for expansion and testing of variable-name are identical to the ifdef directive."
23:31:46 <elliott> ah
23:31:48 <elliott> so origin is morep recise
23:31:50 <elliott> *more precise
23:32:29 <Vorpal> elliott, ...what does origin do now again?
23:32:41 -!- cheater99 has joined.
23:32:46 -!- cheater99 has quit (Read error: Connection reset by peer).
23:32:48 <elliott> Vorpal: horrible things: http://www.gnu.org/software/make/manual/make.html#Origin-Function
23:33:11 <Vorpal> elliott, *decides to leave minecraft running overnight*
23:33:21 <Vorpal> I hope it won't do anything insane like swap trash
23:34:25 <Vorpal> elliott, oh my
23:35:27 -!- cheater99 has joined.
23:36:11 <elliott> quote = '$(subst ','\'',$(1))'#'
23:36:15 <elliott> Vorpal: Guess what that comment is for.
23:36:27 <elliott> Vorpal: Answer: To stop Emacs thinking the rest of the Makefile is in a quote.
23:36:39 <Vorpal> elliott, emacs fails parsing then
23:36:40 <elliott> EXAMPLE USAGE:
23:36:41 <elliott> define c-program
23:36:41 <elliott> ;
23:36:41 <elliott> $(call cat, $(CC) $(CC.FLAGS) $(CPP.FLAGS)) \
23:36:41 <elliott> -o $$(call quote,$$@) \
23:36:41 <elliott> $$(foreach src,$$^,$$(call quote,$$(src)))
23:36:43 <elliott> endef
23:37:02 <Vorpal> elliott, I have no idea what that does. I never used call in make even
23:37:08 -!- cheater99 has quit (Read error: Connection reset by peer).
23:37:10 <elliott> Vorpal:
23:37:13 <elliott> foo = $(2) $(1)
23:37:16 <elliott> $(call foo,a,b) => b a
23:37:23 <Vorpal> yearh
23:37:26 <Vorpal> yeargh*
23:37:30 <elliott> Vorpal: quote = '$(subst ','\'',$(1))'#'
23:37:35 <Vorpal> elliott, did it turn a variable into a function?
23:37:36 <elliott> Vorpal: So, we have literal ', a call, and a literal '.
23:37:40 <elliott> The call transforms ' into '\''.
23:37:41 <elliott> So:
23:37:45 <elliott> $(call quote,a' b)
23:37:46 <elliott> ->
23:37:50 <elliott> 'a'\'' b'
23:37:51 <Vorpal> !!!!!!
23:37:52 <pikhq> Wow. 9 months after the election, Iraq finally forms a government.
23:37:54 <elliott> Which is how you shell-represent "a' b".
23:37:58 <elliott> Vorpal: And yes, it does; string-based!
23:38:00 <elliott> Vorpal: Remember that
23:38:01 <Vorpal> !!!!!!!!!!!!!!!!!!
23:38:01 <elliott> define foo
23:38:02 <elliott> ...
23:38:02 <elliott> endef
23:38:05 <elliott> just defines a string too.
23:38:15 <Vorpal> elliott, not a string foo?
23:38:18 <Vorpal> XD
23:38:22 <elliott> Yes yes yse.
23:38:23 <elliott> *yes.
23:38:25 <Vorpal> yeah
23:38:46 <Vorpal> wow, $(flavor ...) looks even worse
23:38:49 <elliott> $ make
23:38:49 <Vorpal> than origin
23:38:49 <elliott> cc -o 'foo' 'foo.c'
23:38:50 <elliott> Bit ugly though.
23:38:52 <elliott> SOLUTION?
23:38:53 <elliott> Another function!
23:39:00 <elliott> That only quotes if there's any quote-needing characters.
23:39:01 <elliott> To quote.
23:39:16 <elliott> I am, by the way, laughing.
23:39:24 <Vorpal> elliott, oh?
23:39:29 <elliott> Yes.
23:39:31 <elliott> This is very silly.
23:39:43 <Vorpal> elliott, yes, yes it is
23:39:59 <elliott> OK, I think if I do
23:40:03 <Vorpal> $(info text...)
23:40:03 <Vorpal> This function does nothing more than print its (expanded) argument(s) to standard output. No makefile name or line number is added. The result of the expansion of this function is the empty string.
23:40:04 <Vorpal> uh
23:40:07 <Vorpal> @echo ?
23:40:12 <elliott> Vorpal: Anywhere in the makefile, silly.
23:40:13 <elliott> $(filter-out %a%,$(1))
23:40:14 <elliott> erm
23:40:16 <Vorpal> elliott, oh right
23:40:20 <elliott> $(filter-out %a%,$(1))$(filter-out %b%,$(1))$(filter-out %c%,$(1))...
23:40:25 <elliott> for every single safe character
23:40:28 <elliott> then I can do kwote
23:40:32 <Vorpal> elliott, this in absurd
23:40:44 <elliott> Wait, no. Argh.
23:41:15 <elliott> I think I'm going to start listening to emo just to accurately convey my mood right now.
23:41:21 <Vorpal> elliott, ouch
23:41:24 <Vorpal> elliott, that's bad
23:41:29 <Vorpal> elliott, you need a VHS (??)
23:41:33 * elliott slits the wrists of his inner programmer
23:41:36 <elliott> Vorpal: And a big spider!
23:41:40 <Vorpal> elliott, and that
23:41:46 <elliott> SCCS
23:41:47 <elliott> Any file n is extracted if necessary from an SCCS file named either s.n or SCCS/s.n. The precise recipe used is ‘$(GET) $(GFLAGS)’. The rules for SCCS are terminal (see Match-Anything Pattern Rules), so SCCS files cannot be generated from another source; they must actually exist.
23:41:48 <elliott> WHY DOES THIS EVEN EXIST
23:41:50 <Vorpal> elliott, and a big RMS plush figure
23:42:08 <elliott> Vorpal: Oh man, I would buy that if and only if it's in the pose of eating stuff it picked from its feet.
23:42:15 <elliott> ...and then promptly burn it.
23:42:15 <elliott> Twice.
23:42:21 <Vorpal> elliott, I doubt rms does that
23:42:26 <elliott> HAHAHA
23:42:30 <Vorpal> elliott, what?
23:42:40 <Vorpal> elliott, [citation needed]
23:42:42 <elliott> Vorpal: http://www.youtube.com/watch?v=I25UeVXrEHQ
23:42:42 -!- oerjan has joined.
23:42:46 <elliott> Vorpal: skip to 1:47
23:42:54 <Vorpal> elliott, not sure I will...
23:42:55 <elliott> Vorpal: (Note: You really, really don't want to.)
23:42:55 <Vorpal> but hm
23:43:08 <Vorpal> elliott, indeed I won't
23:44:06 <elliott> Vorpal: Writing a make replacement sounds SO lovely right now.
23:44:08 <Vorpal> elliott, "8.12 Functions That Control Make" <-- don't all in some sense
23:44:21 <Vorpal> elliott, keyword: NOT TEXTUAL
23:44:26 <Vorpal> (as in, binary file format!)
23:44:29 <elliott> Sexual make. (Wait, what?)
23:44:30 <oerjan> 07:16:25 <elliott> 20:31:48 <zzo38> Do you have any high resolution templates for Magic: the Gathering cards? I should need templates with a better quality than the ones Wizards of the Coast uses.
23:44:35 <oerjan> 07:16:31 <elliott> <oerjan> Funny you should mention it, why yes I do!
23:44:37 <oerjan> 07:16:38 <Vorpal> XD
23:44:52 <oerjan> IT'S GOOD TO SEE YOU ENJOYING YOURSELVES
23:44:56 <elliott> <oerjan> 07:16:25 <elliott> 20:31:48 <zzo38> Do you have any high resolution templates for Magic: the Gathering cards? I should need templates with a better quality than the ones Wizards of the Coast uses.
23:44:56 <elliott> <oerjan> 07:16:31 <elliott> <oerjan> Funny you should mention it, why yes I do!
23:44:56 <elliott> <oerjan> 07:16:38 <Vorpal> XD
23:44:56 <elliott> <oerjan> IT'S GOOD TO SEE YOU ENJOYING YOURSELVES
23:45:02 <elliott> IT'S GOOD TO SEE YOU ENJOYING OURSELVES
23:45:12 <Vorpal> elliott, wait what
23:45:18 <elliott> <Vorpal> elliott, wait what
23:45:19 <Vorpal> elliott, you mean "good to see us"
23:45:24 <elliott> It's good to see wait what!
23:45:26 <oerjan> redundant elliott is redundant
23:45:28 <elliott> <elliott> <Vorpal> elliott, wait what
23:45:28 <elliott> <Vorpal> elliott, you mean "good to see us"
23:45:32 <elliott> IT'S GOOD REDUNDANT
23:45:54 <Vorpal> elliott is indeed redundant (not just redundant elliott!)
23:46:14 <Vorpal> after all, we have Gregor
23:46:32 <elliott> Gregor serves my purpose?
23:46:35 <oerjan> Vorpal: that X Y is X is an old meme
23:46:40 <elliott> oerjan: he probably knows.
23:46:42 <elliott> one would assume.
23:46:42 <Vorpal> elliott, well no, but zzo fills the rest
23:46:43 <elliott> perhaps.
23:46:50 <elliott> Vorpal: I will cause your death.
23:46:52 <oerjan> elliott: _probably_, but he _is_ Vorpal
23:47:01 <Vorpal> <oerjan> Vorpal: that X Y is X is an old meme <-- you don't say!??!?!
23:47:07 <Vorpal> :P
23:47:35 <Vorpal> elliott, I can only presume that is your intention
23:47:37 <elliott> pikhq: Quick, help me design a Make replacement.
23:47:43 <Vorpal> elliott, use macroman
23:47:45 <Vorpal> (not)
23:47:58 <elliott> Macro Man.
23:47:59 <oerjan> call it "fake"
23:47:59 <Vorpal> elliott, should it be TC?
23:48:04 <elliott> Vorpal: Why not :P
23:48:12 <elliott> oerjan: Bake. Cake. Shake. Lake. Sake. Rake.
23:48:14 <elliott> Quake.
23:48:17 <elliott> Take.
23:48:21 <Vorpal> elliott, well... there are arguments in both directions
23:48:26 <Vorpal> elliott, but yeah, TC
23:48:38 <elliott> Vorpal: Not making it TC would make it harder to support useful features.
23:48:40 <Vorpal> elliott, I seem to remember that "rake" is taken
23:48:44 <Vorpal> for some build system
23:48:46 <elliott> Indeed. So's cake.
23:48:49 <Vorpal> elliott, is it? huh
23:48:55 <elliott> So's bake, it seems.
23:48:55 <Vorpal> elliott, no that's a lie!
23:49:03 <elliott> Sake is taken too.
23:49:13 <Vorpal> elliott, construct?
23:49:23 <Vorpal> hm too long
23:49:27 <elliott> Vorpal: Cons, the tool that SCons is inspired by :P
23:49:33 <Vorpal> ah...
23:49:42 <Vorpal> elliott, is cons even worse than scons?
23:49:51 <elliott> Well, it's Perl. YMMV.
23:49:53 <Vorpal> ah
23:49:58 <Vorpal> YMMV indeed
23:50:17 -!- poiuy_qwert has joined.
23:50:26 <Vorpal> elliott, make is a Swedish word btw
23:50:29 <elliott> Vorpal: At Least It's Not CMake(TM)
23:50:40 <Vorpal> elliott, alinc?
23:50:48 <elliott> What does make mean in svedish?
23:50:56 <Vorpal> elliott, "husband"
23:51:08 <Vorpal> elliott, also w
23:51:32 <Vorpal> elliott, so you could call the program spouse?
23:51:57 <elliott> Heh.
23:52:11 <Vorpal> elliott, this is like taking cockney rhyme to a new level
23:52:14 <Vorpal> or something
23:52:18 <elliott> "emake" is my work-in-progress name, but. That's boring.
23:52:20 <elliott> (Extended Make)
23:52:24 <Vorpal> elliott, emake is used
23:52:30 <elliott> shake has quite a nice qwerty-feel.
23:52:35 <elliott> Oh, right, erlang.
23:52:38 <Vorpal> yep
23:52:40 <elliott> Thankfully nobody uses erlang :P
23:52:47 <Vorpal> elliott, I think there is another emake too
23:53:33 <Vorpal> elliott, you mean, last.fm, ubuntu (couchdb), Ericsson, ejabberd (forgot the company behind it) and so on?
23:53:46 <elliott> Vorpal: Yep.
23:53:48 <elliott> None of those exist.
23:53:51 <Vorpal> elliott, ah
23:53:58 <Vorpal> elliott, so ubuntu is a lie?
23:53:58 -!- cheater99 has joined.
23:54:04 <elliott> Yes.
23:54:17 <Vorpal> elliott, explains why the bug reports seem to stay open forever
23:54:19 <elliott> Mark Shuttleworth has actually just managed to embed mind-control into an .iso; your screen is, in fact, blank for the duration of Ubuntu's use.
23:54:25 <elliott> It's a sick, sick joke he is playing on us all.
23:54:30 <Vorpal> elliott, lucky I'm on arch
23:54:31 <elliott> Ugh, "%: Makefile" doesn't do the right thing. :P
23:54:32 <elliott> brb
23:54:32 <Vorpal> atm
23:54:49 <Vorpal> elliott, so what *does* %: Makefile do?
23:57:29 <Vorpal> elliott, mc data values make no sense
23:58:11 <Vorpal> elliott, a number of blocks, wall signs, furances, pumpkins and so on, can face different directions
23:58:23 <Vorpal> you would think east/west/south/north would be same for all
23:58:25 <Vorpal> no
23:58:29 <elliott> heh
23:59:09 <Vorpal> Ground levers:
23:59:10 <Vorpal> * 0x5: Lever points west when off.
23:59:10 <Vorpal> * 0x6: Lever points south when off. (Note that unlike the other types of switch, this version will not power wires around the block it is sitting on.)
23:59:11 <Vorpal> what?
23:59:26 -!- cheater99 has quit (Ping timeout: 240 seconds).
23:59:31 <elliott> lol
←2010-12-19 2010-12-20 2010-12-21→ ↑2010 ↑all