←2011-03-03 2011-03-04 2011-03-05→ ↑2011 ↑all
00:00:02 <elliott> to 0x7C00:unprot
00:00:04 <elliott> because the gdt is still active!
00:00:28 <elliott> "I/O APIC read at address 0xfec008fe spans 32-bit boundary !"
00:00:29 <elliott> What
00:00:40 <cheater-> is postscript tc?
00:00:55 <elliott> IT MAKES NO SENSE
00:01:28 <cheater-> to u
00:02:20 <oerjan> cheater-: um i'm pretty sure it is
00:02:37 <cheater-> i guess postscript is tc
00:02:52 <oerjan> for one thing, i think it has equivalents to all of :()^
00:04:17 <cheater-> oerjan: what does that mean?
00:04:21 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:04:23 <oerjan> cheater-: see topic
00:04:38 <cheater-> url to proof
00:04:49 <cheater-> and ya
00:04:52 * cheater- opens champagne
00:04:57 <cheater-> did you prove that?
00:05:40 <oerjan> cheater-: you can read the irc logs from yesterday or was it the day before, i haven't finished the wiki markup yet
00:05:57 <oerjan> (also the wiki section on the minsky machine)
00:06:08 <elliott> i would totally mention something involving the words cheater and feed but it'd be cliche and i'm a conversational hipster
00:06:27 <elliott> or a conservational hipster. man, I help to save this totally obscure animal, you've probably never heard of it.
00:06:47 <oerjan> *the wiki section in underload
00:07:30 <oerjan> elliott: ok so postscript being tc is pretty obvious, it has many more commands than that
00:07:42 <elliott> oerjan: err, i was just talking about the fact that cheater- is a troll.
00:07:49 <elliott> postscript being tc is very obvious
00:07:53 <elliott> especially as a lot of anagolfers use it :)
00:07:54 <cheater-> <ais523> ingenious
00:07:55 <oerjan> but it _is_ at base pretty much a concatenative language like underload
00:07:58 <elliott> well, a few
00:08:07 <cheater-> that must be about some other person using your nick :D
00:08:25 <oerjan> @_@
00:08:26 <elliott> yeah oerjan is really stupid obviously.
00:08:28 <elliott> that's what i know oerjan for.
00:08:32 <oerjan> :D
00:10:02 <cheater-> :D
00:10:14 <oerjan> elliott: well you never know, maybe i do something that puts him in so much awe that he repents and stops trolling
00:10:28 <elliott> oerjan: uh huh
00:10:35 <oerjan> and starts genetically engineering airborne pork instead
00:10:40 <elliott> oerjan: you realise saying that will make him not shut up for hours :)
00:11:26 <cheater-> oerjan: it's not obvious to me
00:11:40 <cheater-> oerjan: we were talking in -blah about postscript and i was wondering if it's tc
00:11:58 <elliott> ok something is very wrong here.
00:11:59 <cheater-> and i thought i remembered it was, but decided to ask here for confirmation and for making conversation
00:12:27 <cheater-> yes, tkae a shower elliott, we can cut the air with a cheese knife :X
00:13:31 <cheater-> oerjan: so how did you have the idea to use the minsky machine?
00:13:43 <cheater-> was it your first approach or just a consecutive one?
00:14:55 <elliott> oerjan: have fun for the next N hours
00:15:03 <elliott> i sure won't be, fucking bios :(
00:15:14 <cheater-> nice blog, bro
00:16:56 <oerjan> ~ = exch, ! = pop, : = dup, ! = exec, = = S, those are the commands i find in http://www.math.ubc.ca/~cass/courses/ps.html that correspond to underload. i also think { = ( and } = ).
00:17:44 <oerjan> cheater-: i started with the turing machines, then when i got down to trying !:()^ i realized i didn't have enough to get that but a minsky machine worked
00:17:53 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
00:18:02 <oerjan> (since it only needs one stack symbol)
00:18:08 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
00:18:10 <oerjan> *tape
00:18:20 <cheater-> so do you see a minsky machine as a simpler to implement turing machine?
00:19:11 <oerjan> yes.
00:19:15 <elliott> no!
00:19:17 <cheater-> cool
00:19:18 <elliott> turing machines are sooo much easier
00:19:20 <elliott> because they're bigger
00:19:22 <elliott> and therefore easier
00:19:27 <elliott> basic application of logic oerjan
00:19:37 <cheater-> no one asked you, chum
00:19:48 <cheater-> we're having a private conversation here
00:19:51 <cheater-> :D
00:20:35 <cheater-> oerjan: now what is the shortest proof that you can come up with? o_o
00:21:28 <elliott> the "shortest proof"?
00:21:30 <elliott> stop bullshitting
00:21:35 <oerjan> i think underload a = [ exch ] essentially
00:21:54 <cheater-> well he's come up with the minimal system so far
00:22:04 <cheater-> now he needs the minimal proof of that minimal system :D
00:22:19 <cheater-> one-liner or else!
00:22:40 <oerjan> nah
00:22:47 <cheater-> oerjan: ok :)
00:22:56 <cheater-> oerjan: so what's next?
00:23:21 -!- poiuy_qwert has joined.
00:23:25 <cheater-> i guess implementing a lang based on that?
00:25:02 <oerjan> the implementation is already done, it's called underload.
00:25:10 <oerjan> just don't use four of the commands.
00:25:47 <oerjan> alternatively you can use postscript, joy or FALSE.
00:26:21 <oerjan> those four commands are pretty common in functional concatenative languages
00:26:25 <elliott> hmm, what's joy's equivalent of a?
00:26:32 <oerjan> no idea
00:26:47 <oerjan> :()^ are dup [] i, though
00:26:50 <elliott> indeed
00:27:06 <cheater-> oerjan: but what about something that takes a well-supported language and compiles it down to :()^?
00:27:23 <cheater-> like, i dunno, b*ainfuck
00:28:22 <oerjan> . and , are going to be a bitch
00:28:39 <oerjan> not to mention that minsky machines have exponential overhead
00:28:49 <Sgeo> a?
00:29:11 -!- azaq23 has joined.
00:29:18 <oerjan> hm...
00:31:39 -!- copumpkin has joined.
00:33:01 <oerjan> elliott: i don't know many joy commands, but it should be doable with map...
00:33:42 <elliott> oerjan: er you mean list map?
00:33:47 <elliott> like treating quotations as lists?
00:33:47 <oerjan> yes
00:33:49 <elliott> not every lang does that
00:33:52 <elliott> oerjan: if you have that it's just [] cons...
00:34:04 <oerjan> elliott: you were talking about joy
00:34:12 <elliott> oerjan: if you have that it's just [] cons...
00:34:40 <oerjan> i didn't know joy had cons
00:34:52 -!- Mathnerd314 has joined.
00:35:01 <elliott> oerjan: what kind of language has lists and no cons?
00:35:31 <Sgeo> Hmm
00:35:35 <Sgeo> I think maybe I like Fancy
00:40:03 <Zwaarddijk> is there any known automaton that, with finite space is known to be weaker than a turing macine with finite space, but thiss distinction magically disappears when there's infinite space?
00:42:42 <elliott> define weaker than a turing machine with finite space?
00:42:45 <elliott> well
00:42:46 <elliott> it's not ambiguous
00:42:47 <elliott> :P
00:43:54 <elliott> Oh dear god not again http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Joy_(programming_language)_(2nd_nomination)
00:46:14 <Zwaarddijk> well, turing machines can reject/accept any recursively enumerable language
00:47:01 <Zwaarddijk> but for a finite tape we get what's called a decider, no?
00:47:06 * elliott lets oerjan handle this one ;D
00:47:24 <oerjan> it's not ambiguous, it's hideously ambiguous.
00:47:35 <elliott> you tell him!
00:47:41 * elliott gets popcorn
00:48:15 -!- oerjan has quit (Quit: Good night).
00:48:24 <Mathnerd314> Zwaarddijk: turing machines accept recursively enumerable languages, and loop infinitely on non-examples of the language
00:48:38 <Zwaarddijk> yes, they don't reject.
00:48:49 <Zwaarddijk> I(necessarily)
00:49:21 <Zwaarddijk> so my "reject" there was wrong
00:50:16 <Mathnerd314> kickban!
00:50:26 <Zwaarddijk> so anyways, a machine that w/ finite tape accepts context-free grammars (or maybe something inbetween CFG and R, or between R and RE), but with infinite tape accepts RE
00:51:21 <Zwaarddijk> can such a thing exist?
00:53:30 <Ilari> With finite tape, it can at most decide (some subset of) regular languages.
00:54:04 <Ilari> And even the weakest language classes above regular can require unbounded memory to recognize.
00:54:21 <Zwaarddijk> yes
00:55:20 <Zwaarddijk> so ok, is there any machine that accepts CFG or even just a slighlty smaller set of langs than R with finite tape, but RE with infinite tape?
00:56:14 <quintopia> the question doesn't make sense :/
00:56:37 <Zwaarddijk> where doesn't it?
00:56:42 <Zwaarddijk> where doesn't it make sense
00:57:06 <quintopia> you're asking about a single TM...designed to recognize two different languages?
00:57:43 <Zwaarddijk> turing machines recognize different languages depending on whether they've got finite or infinite tapes
00:58:05 <quintopia> a specific TM will be designed to recognize a particular language
00:58:11 <Zwaarddijk> normally
00:58:19 <quintopia> i mean, all you're doing is changing the tape length
00:58:25 <Zwaarddijk> yes, so?
00:58:26 <quintopia> you aren't changing the FSM
00:58:35 <Zwaarddijk> this still doesn't make the question make no sense
00:58:40 <quintopia> which means you aren't changing the language it is designed to recognize...
00:58:46 <Zwaarddijk> .
00:58:49 <Zwaarddijk> ...
00:58:55 <Zwaarddijk> :|
00:59:01 * Zwaarddijk headdesks
00:59:22 <Zwaarddijk> should I rephrase the question like this:
00:59:42 <Ilari> Well, with finite memory and even weakest non-regular languages, you can't even recognize all "yes" cases.
00:59:43 <Zwaarddijk> does infinite tape make bigger difference for recognizeable languages for some weaker machine
01:00:20 <Ilari> Or, you could have algorithm that always says "yes" if it belongs to the language, but might say "yes" even if it doesn't.
01:00:45 <quintopia> Ilari: i know such a machine. Algorithm: for all input, accept.
01:01:06 <Zwaarddijk> that algorithm has a ratehr fantastic running time
01:01:31 <Ilari> Or actually, machine that could return 3 outputs: Yes, No or Maybe
01:02:17 <Ilari> For some languages, one needs insanely long output to overwhelm even very quite low amount of memor available.
01:02:27 <Ilari> *even quite low
01:02:49 <Ilari> *memory
01:04:18 <Ilari> Just consider a^n b^n and how much string length it takes to overwhelm a counter of given length.
01:06:14 <Ilari> Then there are languages that are recursive but may require insane amounts of memory even for very short strings.
01:10:37 -!- zzo38 has joined.
01:11:03 <Zwaarddijk> yes, that's quite obvious
01:11:04 -!- zzo38 has set topic: :()^ is TURING COMPLETE! EVERYBODY PARTY!!!! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:11:26 <quintopia> isn't that what it already said?
01:11:41 <cheater-> good question
01:12:49 -!- quintopia has set topic: :()^ is TURING COMPLETE! EVERYBODY PARTY!!!!!| http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:13:20 <elliott> Hey quintopia, wanna debug my assembly!
01:13:37 <quintopia> maybe in a week
01:13:56 <elliott> how about
01:13:56 <elliott> now
01:13:57 <quintopia> i'm already late
01:13:59 -!- zzo38 has set topic: :()^ is TURING COMPLETE! EVERYBODY PARTY???? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:14:00 <quintopia> gotta go
01:14:02 <elliott> you're a late
01:14:17 <quintopia> your face is a late
01:14:49 * elliott cry
01:14:59 <elliott> why is this all the fucked. it's bads.
01:15:29 <elliott> _WHAT_
01:15:32 <elliott> Adding "int 99" does something.
01:16:19 <Sgeo> I feel torn between Fancy and Ruby. Fancy is like a fixed Ruby with keyword-based methods. But Ruby is popular
01:20:07 <pikhq> So's stupid. Your point?
01:20:32 -!- FireFly has quit (Quit: swatted to death).
01:20:54 <elliott> pikhq: Can we just collectively agree to not feed Sgeo's insane languagebation?
01:20:57 -!- azaq23 has quit (Quit: Leaving.).
01:21:43 <Sgeo> Are Fancy's fixes and other niceties worth devoting time into Fancy that I'd otherwise spend in Ruby?
01:23:12 <zzo38> Sgeo: I don't know.
01:23:34 <zzo38> (I did look it up in Wikipedia and still I don't know)
01:26:04 <elliott> pikhq: X86 ASSEMBLY CODE
01:26:05 <elliott> DO YOU LOVE IT
01:27:08 <pikhq> elliott: I DESPISE IT
01:27:12 <elliott> pikhq: DO YOU LIKE DEBUGGING IT
01:27:21 <pikhq> elliott: THATS WHAT I DESPISE ABOUT IT
01:27:52 <pikhq> NEIN
01:28:41 <elliott> pikhq: WHY ARE YOU AN EVIL
01:29:44 <pikhq> Because I'm an atheist.
01:29:50 <elliott> pikhq: trut
01:29:51 <elliott> h
01:29:54 <pikhq> Now if you'll excuse me, I need to roast some babies.
01:30:01 <elliott> mmm
01:30:05 <elliott> tender baby flesh
01:30:10 <pikhq> Mmm, veal.
01:30:14 <elliott> make sure to rape them first, it brings out the juice
01:30:27 <pikhq> Of course.
01:30:45 <elliott> and convert some innocent christians to evil
01:32:36 -!- sftp has quit (Read error: Operation timed out).
01:33:05 -!- sftp has joined.
01:44:04 -!- sftp has quit (Read error: Operation timed out).
01:45:33 -!- sftp has joined.
01:49:11 -!- pikhq has quit (Ping timeout: 240 seconds).
01:49:17 -!- pikhq has joined.
01:55:54 <variable> psychoceramics -> study of crackpots :-)
02:01:24 <cheater-> lol
02:04:35 <elliott> :D
02:08:49 <Ilari> Haha... A typical timeline to
02:09:20 <Ilari> deployment might be: Support in 20% of implementations (open source helps at this stage): X.509: Never
02:34:06 -!- Behold has quit (Remote host closed the connection).
02:52:10 -!- Sgeo has quit (Ping timeout: 252 seconds).
02:54:52 -!- Sgeo has joined.
02:56:39 -!- elliott has quit (Remote host closed the connection).
02:56:44 -!- elliott_ has joined.
03:14:01 -!- pikhq_ has joined.
03:14:10 -!- pikhq has quit (Ping timeout: 252 seconds).
03:19:37 <Lymia> Heh.
03:19:39 <Lymia> I just had an idea.
03:19:45 <Lymia> A programming language who's encoding is an MIDI file.
03:19:58 <Lymia> In essence, a musical programming language.
03:20:44 -!- copumpkin has changed nick to MonadsSuck.
03:21:23 <variable> Lymia: that sounds interesting
03:22:45 <Lymia> In it, "syntax" is carried by relative pitch, or something similar, and so, a program can be made musical.
03:23:02 <zzo38> There are a few of that already in esolangs, but you can make up a new one if you want to.
03:23:08 <MonadsSuck> fucking monads, how do they work
03:23:23 <Lymia> If you want to down the evil path, make failure at harmony, etc an compiler error.
03:23:32 <zzo38> MonadsSuck: Did you look it up in Wikipedia?
03:24:33 <Lymia> variable, hmm...
03:24:42 <Lymia> Make useful programs semi-musical.
03:24:50 <Lymia> Make music execute, but in an excessively useless way.
03:24:59 <MonadsSuck> zzo38: fucking adjoint pairs!
03:25:10 <MonadsSuck> too many functors and natural transformations
03:25:14 <MonadsSuck> :P
03:25:19 * MonadsSuck shuts up
03:25:21 -!- MonadsSuck has changed nick to copumpkin.
04:01:03 -!- sftp has quit (Remote host closed the connection).
04:04:00 <elliott_> <Lymia> Heh.
04:04:01 <elliott_> <Lymia> I just had an idea.
04:04:01 <elliott_> <Lymia> A programming language who's encoding is an MIDI file.
04:04:02 <elliott_> see Fugue, Velato
04:08:44 <Lymia> Not /exactly/ what I had in mind.
04:08:59 <Lymia> Less of a programming language with an MIDI encoding, and more of one more directly related to the represented music.
04:09:01 <zzo38> Lymia: OK then make up your own ideas
04:09:04 <Lymia> ....I have no idea how to have this work...
04:13:18 <zzo38> Make one with music that isn't 12-TET....
04:16:08 <pikhq_> Ooooh, microtonal music.
04:16:32 <pikhq_> (note: I have never actually heard such music, I merely find the idea interesting in the abstract)
04:17:02 <zzo38> You have not written a program to play such a music?
04:17:22 <pikhq_> No, I haven't.
04:18:45 <zzo38> I have made a variant of PPMCK to allow you to make a scale of whatever tones you want to (however it is still up octave doubles frequency, up to ten letter names, and up to sixteen notes per octave; other than that you can have whatever tones you want to)
04:19:03 <zzo38> pikhq_: Then write a music/program!
04:19:40 <Lymia> pikhq_, I'm trying to figure out how to make a program result from features that are already found in music.
04:20:07 <Lymia> Then using ordered combinations of these to create programs.
04:20:34 <zzo38> Lymia: Do you mean number of notes in one bar, or repeat marks, or major/minor/augmented/diminish chord, non-chord note, etc?
04:21:11 <Lymia> No.
04:22:53 <Lymia> At least.
04:22:56 <Lymia> Not the former two.
04:31:36 -!- augur has joined.
04:33:27 <elliott_> Lymia: velato is that
04:33:30 -!- elliott_ has quit (Quit: Leaving).
06:35:15 -!- clog has joined.
06:35:15 -!- clog has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:30 -!- pikhq_ has joined.
08:08:39 -!- pikhq has quit (Ping timeout: 272 seconds).
09:38:34 -!- FireFly has joined.
10:30:16 <fizzie> Well, *that* was interesting. The "Machine Learning: Advanced Probabilistic Methods" lecturer called me 08:50am, said he's having a "situation" (I'll not go into details here), and someone needs to go and give the 10:15--12:00 lecture to students.
11:03:20 -!- pikhq_ has quit (Ping timeout: 240 seconds).
11:03:40 -!- pikhq has joined.
11:22:44 -!- copumpkin has quit (Ping timeout: 264 seconds).
11:23:10 -!- copumpkin has joined.
11:23:44 -!- Mannerisky has quit (Ping timeout: 264 seconds).
11:28:32 <quintopia> so...you?
11:28:37 <quintopia> good luck
11:47:12 <fizzie> It was already; it's 14:23pm here.
11:47:23 <quintopia> i figured
11:47:35 <quintopia> but wishing you luck late is better than not at al
11:48:47 <fizzie> I just spoke half an hour about the software blob they need to use for the course assignment (a mixture-of-multivariate-bernoulli-distributions thing for dealing with binary 0/1 matrices) and then showed half an hour of video from the Stanford University "Machine Learning" course they've graciously youtubed with a Creative Commons license.
11:49:39 <fizzie> Approximately 30-40% of the people bothered to stay for the video.
11:49:48 <quintopia> haha
11:49:59 <quintopia> so you were babysitting basically :P
11:51:45 <fizzie> Pretty much, yeah. "Show them a video" was my wife's suggestion, since that's what all the substitute teachers at elementary school used to do.
11:52:43 -!- rodgort has quit (Quit: Coyote finally caught me).
11:52:59 -!- rodgort has joined.
12:06:03 -!- rodgort has quit (Quit: Coyote finally caught me).
12:06:15 -!- rodgort has joined.
12:08:09 -!- Lymia has quit (Ping timeout: 276 seconds).
12:21:02 -!- Phantom_Hoover has joined.
12:28:50 -!- augur has quit (Remote host closed the connection).
12:35:15 -!- Patashu has quit (Ping timeout: 252 seconds).
12:47:21 -!- aloril has quit (Ping timeout: 240 seconds).
12:53:41 <Phantom_Hoover> http://www.youtube.com/watch_popup?v=XKRj-T4l-e8
12:53:58 <Phantom_Hoover> Most awesome rendition of Toccata and Fugue in D Minor EVER?
12:57:14 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
12:57:49 <Zwaarddijk> wow, the timbre makes it rather weird
12:59:16 <Zwaarddijk> I don't think there's any really consonant triads in that tuning for that instrument
13:01:00 -!- aloril has joined.
13:07:13 -!- augur has joined.
13:19:57 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
13:34:35 -!- Phantom_Hoover has joined.
13:46:44 -!- rodgort has quit (Quit: Coyote finally caught me).
13:46:58 -!- rodgort has joined.
13:50:55 -!- MigoMipo has joined.
13:56:51 -!- BeholdMyGlory has joined.
14:04:59 -!- Alex_Meg1roide has joined.
14:07:32 -!- Alex_Megaroide has quit (Ping timeout: 246 seconds).
14:13:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:28:48 -!- Behold has joined.
14:29:44 -!- pikhq has quit (*.net *.split).
14:29:47 -!- Vorpal has quit (*.net *.split).
14:29:47 -!- lambdabot has quit (*.net *.split).
14:29:48 -!- Gregor has quit (*.net *.split).
14:32:06 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
14:33:50 -!- augur has quit (Ping timeout: 250 seconds).
14:38:00 -!- Slereah has quit (Ping timeout: 264 seconds).
14:38:44 -!- Slereah has joined.
14:39:03 -!- Lymia has joined.
14:39:03 -!- Lymia has quit (Changing host).
14:39:03 -!- Lymia has joined.
14:45:57 -!- javawizard has joined.
14:47:58 -!- jcp has quit (*.net *.split).
14:47:59 -!- javawizard has changed nick to jcp.
14:49:17 -!- Gregor` has joined.
14:49:27 -!- pikhq has joined.
14:51:25 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:52:13 -!- Vorpal has joined.
14:52:50 -!- sftp has joined.
15:02:55 -!- asiekierka has joined.
15:17:21 -!- copumpkin has joined.
15:28:28 -!- pikhq_ has joined.
15:28:36 -!- pikhq has quit (Ping timeout: 264 seconds).
17:51:18 -!- clog has joined.
17:51:18 -!- clog has joined.
17:51:21 <Sgeo_> I think my last long disconnect was yesterday
17:51:25 <Sgeo_> FUCK YOU CLOG
17:51:47 <oerjan> Sgeo_: about 2 hours 20 minutes
17:52:04 <oerjan> assuming it hasn't switched time zones again
17:52:06 <Sgeo_> I was here that entire time.. except for the random minute long disconnects...
17:52:23 <oerjan> it's still in a strange minute, at least
17:53:39 * oerjan recalls writing his first BASIC programs without a computer
17:55:25 <oerjan> <Sgeo_> oerjan, I don't think mental stability is required for logs. <-- no but not dropping any task the first moment you're bored is. reference: herobrine.
17:55:46 * oerjan does _not_ claim to be any better, mind you
17:56:11 <impomatic> I've been writing MSP430 programs without a chip or emulator to run them on :-)
17:59:48 -!- MigoMipo has quit (*.net *.split).
17:59:48 -!- Alex_Meg1roide has quit (*.net *.split).
17:59:48 -!- rodgort has quit (*.net *.split).
17:59:48 -!- myndzi\ has quit (*.net *.split).
18:01:02 -!- MigoMipo has joined.
18:01:02 -!- Alex_Meg1roide has joined.
18:01:02 -!- rodgort has joined.
18:01:02 -!- myndzi\ has joined.
18:01:10 <oerjan> \o/
18:01:15 <myndzi\> |
18:01:15 <myndzi\> /<
18:04:34 <Sgeo_> oerjan, I thought it was just to provide what logs I happened to have lying around as of clogs recent temporary demise
18:05:54 <oerjan> Sgeo_: oh. i guess you're qualified for that. ;D
18:15:04 -!- zzo38 has joined.
18:15:32 -!- mtve has joined.
18:20:18 <fizzie> Perhaps I might be what?
18:20:32 <oerjan> fizzie: stable enough to log this channel
18:21:00 <fizzie> I do log this channel, but the bouncer log format is rather on the ugly side.
18:21:12 <oerjan> hm
18:22:32 <Ilari> APNIC down 0.27. 2x32k+8k+2x4k+2k+/32 to Japan, 8k to Taiwan, 1M+2x512k+2x128k to China, 2k to Indonesia, 4k+/32 to Papua New Guinea, 4k to India, 2M to Vietnam, 256+/32 to Australia, /32 to Malysia.
18:26:09 <Ilari> Well, at least that included /30 worth of IPv6 space. :-)
18:29:00 <oerjan> > 128-30
18:29:08 <oerjan> ...no lambdabot
18:29:17 <Phantom__Hoover> D:
18:31:26 <Ilari> 2^98 IPv6 host addresses, that is.
18:34:02 -!- augur has quit (Remote host closed the connection).
18:36:30 <zzo38> fizzie: Can you modify the program?
18:37:32 -!- jcp has quit (Ping timeout: 250 seconds).
18:38:36 -!- pikhq has quit (Ping timeout: 252 seconds).
18:38:36 -!- pikhq_ has joined.
18:39:16 -!- mtve has quit (Ping timeout: 250 seconds).
18:39:42 -!- olsner has quit (Ping timeout: 250 seconds).
18:39:42 -!- SimonRC has quit (Ping timeout: 250 seconds).
18:40:16 -!- sebbu2 has joined.
18:40:16 -!- sebbu2 has quit (Changing host).
18:40:16 -!- sebbu2 has joined.
18:41:29 -!- SimonRC has joined.
18:42:50 -!- jcp has joined.
18:44:16 -!- sebbu has quit (Ping timeout: 246 seconds).
18:44:16 -!- sebbu2 has changed nick to sebbu.
18:45:18 -!- Sgeo has joined.
18:46:52 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
18:49:03 <fizzie> zzo38: Theoretically, but I already have quite a lot of logs in the old format. I might just convert them for reading.
18:50:18 * oerjan liked elliott's idea of storing as raw irc format and just converting on the fly
18:51:48 -!- olsner has joined.
18:52:08 <zzo38> I invented a IRC log format.
18:52:20 -!- sebbu2 has joined.
18:52:21 -!- sebbu2 has quit (Changing host).
18:52:21 -!- sebbu2 has joined.
18:52:35 <fizzie> oerjan: I like that too; and in fact the bouncer's log format *is* pretty close to timestamps + direction + raw message, except someone's gone and tried to make it a tiny bit human-readable unfortunately.
18:53:20 <zzo38> fizzie: My format is also a bit like that.....
18:55:19 -!- sebbu has quit (Ping timeout: 264 seconds).
18:55:22 <zzo38> Who changed it?
18:57:33 <fizzie> Probably the author of the bouncer. And now that I look at it, it's not really that close to raw after all, except it uses the full nick!user@mask triplets in most places where they are in the IRC messages themselves.
18:57:52 <Phantom__Hoover> Huh, "squamous" means "scaly".
18:59:44 -!- aloril_ has joined.
19:00:30 <zzo38> fizzie: Do you have an example of a few lines?
19:02:14 <fizzie> zzo38: http://p.zem.fi/wnjr
19:03:22 <zzo38> My format looks like this (note there is a tab after each timestamp, and CRLF is required at the end of each line even in UNIX): http://zzo38computer.cjb.net/irc_log/ADMIN/1291325292
19:04:35 <fizzie> Well, that's quite more rawish.
19:05:09 <zzo38> Yes, it is.
19:08:04 <zzo38> In fact every message which is sent to everyone on the channel is also sent to the log file. (The lines with * are metadata lines and are added before)
19:21:20 -!- aloril has quit (*.net *.split).
19:21:20 -!- ineiros has quit (*.net *.split).
19:21:21 -!- dbc has quit (*.net *.split).
19:29:26 -!- Sgeo has quit (Read error: Connection reset by peer).
19:29:53 -!- Sgeo has joined.
19:34:15 -!- cheater- has quit (Read error: Connection reset by peer).
19:34:34 <variable> zzo38: what are you using to generate that log format?
19:34:46 * variable should set up a bouncer at some point
19:34:56 <zzo38> variable: The server is generating the log file.
19:35:27 <variable> zzo38: ah, which server is that? Your own?
19:35:33 <zzo38> variable: Yes.
19:35:48 <variable> zzo38: you wrote the SW as well?
19:36:07 <zzo38> The SW?
19:36:10 <variable> software
19:36:28 -!- cheater- has joined.
19:36:48 <zzo38> I took the software for ngIRCd and made some modifications and called the new one CthulhuIRCd.
19:37:11 <variable> What kind of modifications? Just log stuff or other things as well?
19:37:34 <zzo38> Other things too. Such as, adding the SUMMON command.
19:37:46 <zzo38> I also plan to add ! type channels later, too. (Currently it supports #&+ but not !)
19:38:06 <zzo38> And even a few more, too.
19:38:19 <variable> I know what ! and # are.
19:38:22 <variable> what are the other two ?
19:38:39 <fizzie> Opless and local channels, if I recall correctly.
19:38:45 <zzo38> + is modeless and & is local
19:39:09 -!- ineiros has joined.
19:39:09 -!- dbc has joined.
19:39:19 <Sgeo> What's !?
19:39:35 <variable> Sgeo: ! is random
19:39:38 <variable> well sort of
19:40:13 * variable gets link
19:40:20 <zzo38> ! is a channel that is safe from taking over by netsplit
19:40:33 -!- Sgeo has quit (Read error: Connection reset by peer).
19:40:48 -!- augur has joined.
19:40:53 <variable> basically - create it with !! and join with ! + random token IIRC
19:41:07 <fizzie> You can join with just "!foo" if there's only one !xxxxxfoo in the network.
19:41:28 <fizzie> If there happens to be multiple, you have to specify which one you mean by using the "full name".
19:41:50 <fizzie> Normally there shouldn't be multiple, but it can happen during split-time.
19:42:02 <zzo38> fizzie: Yes, it works like that. That is the purpose of ! type channel.
19:42:38 <zzo38> Note that only # is vulnerable to taking over. Types & ! + are all immune to being taking over, but for different reasons.
19:43:16 <variable> + because it makes no sense and & cause its local only and thus splits don't matter :-)
19:43:32 * variable prefers services to ! but meh
19:44:06 <zzo38> + because it is modeless, so the state cannot change after or before a split. You are correct about &
19:45:02 <zzo38> O, other thing I added in the IRC server, is a few new configuration settings (to select which channel types are available, and where logs go, and a few other things), and a way to add new commands by a external script.
19:45:16 <variable> zzo38: I was correct for both
19:45:28 <variable> it makes to sense to take over a modeless channel
19:45:42 <zzo38> variable: O, that is what you mean. OK, then you are correct.
19:45:59 <variable> also - please make said changes available to the public :-)
19:56:02 -!- pumpkin has changed nick to copumpkin.
19:59:35 <zzo38> variable: OK, I try
20:04:17 -!- copumpkin has quit (Ping timeout: 264 seconds).
20:05:02 -!- copumpkin has joined.
20:08:41 -!- Sgeo has joined.
20:08:42 -!- Sgeo_ has joined.
20:08:43 -!- Sgeo_ has quit (Client Quit).
20:12:48 -!- ais523 has joined.
20:13:28 -!- pikhq has joined.
20:13:41 -!- pikhq_ has quit (Ping timeout: 255 seconds).
20:26:41 <Ilari> APNIC down total of 1.07 this week. Wow.
20:26:55 <ais523> in what units?
20:27:05 <Ilari> Blocks (/8)
20:27:19 <ais523> more than a one /8 in a week?
20:27:26 <ais523> my mind's having trouble comprehending that
20:27:32 <ais523> well, more than 1.0 /8
20:29:04 <Ilari> Now there are 2.89 blocks left (excluding setaside block).
20:30:42 -!- elliottx has joined.
20:30:51 <elliottx> 09:55:25 <oerjan> <Sgeo_> oerjan, I don't think mental stability is required for logs. <-- no but not dropping any task the first moment you're bored is. reference: herobrine.
20:30:57 <Gregor> elliott X is elliott FROM THE FUTOOR
20:30:57 <elliottx> um i didn't exactly "give up" on herobrine
20:31:09 <elliottx> it was running fine, it just disconnected due to a situation that it was meant to recover automatically from
20:31:16 <elliottx> and i haven't bothered to restart it because clog still works :)
20:31:27 <elliottx> Gregor: elliott from a time where his computer won't route to freenode
20:31:29 <elliottx> and so uses the webchat
20:31:36 <elliottx> it is in the FUTURE ... of the past\
20:31:40 <elliottx> AKA: the "present"
20:31:53 <elliottx> oerjan: one day I _will_ find out where you live
20:31:55 <elliottx> bear that in mind.
20:32:04 * oerjan cackles maniacally
20:32:10 <elliottx> so what happened when the logs were offline, gay orgy?
20:32:14 <elliottx> thought so
20:32:17 <Ilari> Well, APNIC also has twice allocated entiere /8 at once. :-/
20:32:26 -!- pumpkin has joined.
20:32:41 <elliottx> 10:50:18 * oerjan liked elliott's idea of storing as raw irc format and just converting on the fly
20:32:42 <Ilari> 126/8 and 133/8.
20:32:43 <elliottx> THAT IS THE CORRECT IDEA
20:32:51 <elliottx> oerjan: what was herobrine's ip again
20:32:55 <elliottx> the server has no domain name for me to log in to :D
20:33:02 <oerjan> eek
20:33:26 <oerjan> it's just about slipped off my address bar
20:33:46 <elliottx> herobrine's survival depends on it.
20:33:54 <elliottx> i'm not quite motivated enough to check on the slicehost panel
20:35:14 <elliottx> oerjan, oerjan, oerjan, your blatant disregard for life is showing
20:35:14 <ais523> haha
20:35:47 <elliottx> ok fine i will
20:35:54 <elliottx> oerjan: ...in return for OPS
20:36:00 <elliottx> or er, +v will be acceptbale.
20:36:01 <oerjan>
20:36:02 <elliottx> acceptable.
20:36:05 <elliottx> shit
20:36:10 <elliottx> why must you destroy my leverage
20:36:37 <oerjan> elliottx: it took a bit of time because i selected the wrong link in my logs
20:36:40 -!- copumpkin has quit (Ping timeout: 264 seconds).
20:37:02 <oerjan> also i had to guess how long ago it was
20:37:31 <oerjan> what is +v again, anyhow
20:37:34 <elliottx> voice
20:37:42 <elliottx> lets you speak when +m is on, and shows how 1333337 you are
20:37:50 <Ilari> APNIC blocks free (starting from /10): 4, 10, 28, 68, 151, 319.
20:37:50 <elliottx> nobody has ever called me leet *sniff*
20:38:01 <elliottx> ok i have no idea which ruby process is herobrine and which is the web server
20:38:03 <elliottx> so let's kill both
20:38:07 <oerjan> U R SO 1337
20:38:20 <elliottx> oerjan: your words are hollow.
20:38:31 <Ilari> Also overrides some other stuff that would normally prevent sending to channel (like matching +q).
20:38:54 -!- Herobrine has joined.
20:39:00 <elliottx> fuckin' dance party.
20:39:39 <oerjan> \o/ \o/ \m/ \m/ \o| |o/
20:39:40 <myndzi\> | | `\o/´ | |
20:39:40 <myndzi\> /| /< | /'\ |\
20:39:40 <myndzi\> /`\
20:39:40 <myndzi\> (_| |_)
20:40:02 <Ilari> When there is no longer sufficiently large free blocks, address space starts to become quite fragmented.
20:40:43 <elliottx> Gregor: also first guy
20:40:45 <elliottx> *first guy
20:40:48 <Ilari> Wonder when /10s run out for APNIC.
20:41:27 <ais523> elliottx: hmm... e111077x?
20:41:35 <elliottx> ais523: yes.
20:41:43 <elliottx> oerjan: btw the lesson here is that insulting me is the best way to get me to do something.
20:42:01 <oerjan> NOTED.
20:42:03 <ais523> grr, looks like Deewiant improved allegro while I wasn't looking
20:42:08 <elliottx> *NOTED, YOU MORON.
20:42:20 <elliottx> qwebirc is terrible :(
20:42:32 <ais523> ah, is elliottx like ais523_?
20:42:44 <elliottx> yep
20:42:50 <elliottx> * Looking up irc.freenode.net * Connecting to chat.freenode.net ( port 6667... * Connection failed. Error: Network is unreachable
20:42:51 <elliottx> --xchat
20:43:00 <elliottx> the internets are falling apart
20:43:03 <elliottx> i blame ipv4
20:43:08 <Deewiant> ais523: Not any time recently :-P
20:43:27 <ais523> well, I've been busy recently
20:43:33 <ais523> but just spent a day writing a new program
20:43:40 <ais523> after I finished bugs it beat all but three existing programs
20:43:48 <ais523> and I'm busy tweaking constants to complete the set atm
20:43:56 <ais523> but it seems I was working against old versions of allegro
20:44:02 <elliottx> it's probably a chainlance bug instead ;)
20:44:14 <ais523> elliottx: this is using egojoust
20:44:19 <ais523> to be precise, a fixed version
20:44:21 <elliottx> oh, then it's an egojoust bug.
20:44:29 <elliottx> it is too buggy to be fixed
20:44:30 <ais523> it did have bugs, but I fixed some of them
20:44:33 <ais523> possibly all of them
20:44:38 <ais523> although it still has that efficiency on % issue
20:45:16 <ais523> oh, spookygoth and sexyghoul dropped off?
20:45:22 <ais523> they were an interesting challenge to beat
20:45:34 <ais523> and I think my program's better for knowing how to beat their strategy
20:47:52 -!- asiekierka has quit (Ping timeout: 250 seconds).
20:50:58 <Ilari> APNIC Last 30 days: 1.81(!!!) blocks
20:52:15 <impomatic> Oh. I only have 2 BF Joust programs left :-(
20:52:32 <impomatic> elliottx: Did you complete the Forth?
20:52:55 <Ilari> Do I smell panic? :-)
20:53:11 <elliottx> impomatic: >_> Nope :P
20:53:20 <elliottx> I'm working on keyboard input.
20:53:24 <ais523> impomatic: three, fizzie reposted spookygoth
20:54:28 <impomatic> It'd be neat if Egojoust had an age for programs
20:54:33 <elliottx> it does
20:54:35 <oerjan> Ilari: yes, impomatic is clearly panicking
20:54:53 * oerjan whistles innocently
20:55:18 <ais523> impomatic: there's a last-modified in the directory listing
20:55:21 <impomatic> No panic. I'll just write something else ;-)
20:55:28 <zzo38> Do you like Japanese chess and/or Chinese chess?
20:55:48 <impomatic> I meant age = number of challenges survived.
20:56:21 <impomatic> Like on the corewar hills http://sal.math.ualberta.ca/hill.php?key=tiny
20:56:33 <Ilari> Last 60 days: 3.19 blocks. Wow. Just Wow.
20:56:44 -!- Mathnerd314 has joined.
20:57:29 <Ilari> That's almost 900k addresses per day.
20:58:14 <olsner> elliottx: status report on your forth project?
20:58:46 <elliottx> olsner: I'm trying out switching into real mode to do the keyboard, still (dude, I just got on the computer...); I'm not sure it'll end up smaller than manual jiggery, though.
20:58:54 <elliottx> Although storing the first six bits of (ascii-64) is a huge advantag.e
20:58:56 <elliottx> *advantage.
20:59:10 <ais523> !bfjoust waterfall3 http://sprunge.us/iIZL
20:59:15 <olsner> does "ascii-64" mean 6-bit ascii here?
20:59:20 <ais523> it's not quite perfect, but still pretty good
20:59:53 <olsner> fwiw, when I said that the other day I meant ascii (subtract) 64
21:00:01 <ais523> the loss against wireless_frownie is based on precise details of timing, if I add or change the number of dots in one place it completely changes the result
21:00:08 <zzo38> elliottx: Did you try to use unreal mode?
21:00:48 <elliottx> zzo38: that's basically what I'm trying
21:00:56 <EgoBot> Score for ais523_waterfall3: 31.8
21:01:00 <elliottx> olsner: ascii-64 means take the 8-bit ascii, subtract 64, and store the lower 6 bits
21:01:09 <elliottx> if not that, then I'll use that 5-bit manual packing
21:01:21 <olsner> elliottx: aight
21:01:35 <ais523> hmm, that result's different from egojoust's
21:01:49 <elliottx> it's either chainlance bugs or egojoust bugs
21:01:53 <elliottx> lance has no bugs.
21:01:58 <Gregor> Some of the contestants now on the hill won't run on egojoust.
21:02:11 <elliottx> Gregor: ais523 has a """fixed""" egojoust
21:02:42 <ais523> I fear it might not be fixed enough, though
21:02:55 <ais523> in this case, I need chainlance or something like that to have any chance of competing
21:03:25 * ais523 asks egojsout for a third opinion
21:03:30 -!- pikhq has quit (Ping timeout: 246 seconds).
21:03:52 <Ilari> Seems like run-on-APNIC scenario has come to pass... Now I'm not sure APNIC pool will make it even to May (which would mean depleting it even faster than APNIC estimates (3-6 months) in early February).
21:04:11 -!- pikhq has joined.
21:04:31 <ais523> egojsout agrees with egojoust
21:04:33 -!- pumpkin has quit (Ping timeout: 246 seconds).
21:04:39 <ais523> so either both ego* are buggy, or chainlance is
21:05:01 -!- copumpkin has joined.
21:05:16 -!- impomatic has quit (Read error: Connection reset by peer).
21:12:02 <ais523> !bfjoust waterfall2 http://sprunge.us/WMEa
21:12:08 <EgoBot> Score for ais523_waterfall2: 31.4
21:12:13 <ais523> anyway, waterfall3 will never top the leaderboard, it tends to win closely
21:12:20 <ais523> but it does beat almost everything
21:20:45 -!- Alex_Meg1roide has changed nick to wareya.
21:28:25 -!- copumpkin has quit (Ping timeout: 260 seconds).
21:29:10 -!- copumpkin has joined.
21:31:44 <elliottx> ais523: egojsout isn't buggy, chainlance is
21:32:15 <elliottx> ais523: the chances of egojoust and egojsout sharing a bug is very low since their architecture is basically completely different
21:32:25 <elliottx> and chainlance has been buggy before
21:33:27 <ais523> elliottx: I think I agree with you
21:33:41 <ais523> anyway, it beats the furry girls and ties with allegro, regardless of what chainlance says
21:33:59 <ais523> I advise you don't try to look at what it's doing in egojsout, just because it takes far too long
21:34:20 <ais523> it's been known to timeout on a game it'd win eventually before now, just because it's doing so much
21:34:34 <ais523> meanwhile, have a look at this:
21:34:42 <ais523> !bfjoust triplock3 >>>>(-)*3<(+)*5<(+)*100<<(-)*41>(+)*120 [](+)*100>(+)*15[-]<[](+)*100>>(+)*15[-]<< [[](+)*100>>[>]->([-{[<+]}])%12<[<]<] <((++-)*100)*1000
21:34:49 <ais523> a defence program in one line of IRC
21:34:55 <ais523> that actually does moderately well
21:35:10 <EgoBot> Score for ais523_triplock3: 37.6
21:35:16 -!- pumpkin has joined.
21:35:17 <elliottx> Nice :P
21:35:20 <elliottx> Why *1000
21:35:21 <ais523> better than waterfall, according to chainlance
21:35:26 <elliottx> Oh, because you have (+)*100 and the like in there
21:35:29 <ais523> and *100000, which is the cycle limit
21:35:35 <elliottx> [22:12] <ais523> !bfjoust triplock3 >>>>(-)*3<(+)*5<(+)*100<<(-)*41>(+)*120 [](+)*100>(+)*15[-]<[](+)*100>>(+)*15[-]<< [[](+)*100>>[>]->([-{[<+]}])%12<[<]<] <((++-)*100)*1000
21:35:37 <elliottx> *1000 here
21:35:40 <elliottx> at the end
21:35:43 <ais523> it's *100 *1000
21:35:48 <ais523> because egojoust is buggy on *100000
21:38:26 -!- copumpkin has quit (Ping timeout: 264 seconds).
21:39:20 <elliottx> It is?
21:39:31 <ais523> yep, it interprets it as *10000
21:39:41 <ais523> that's a trivial fix, but I wasn't sure if I'd have to run it on an unfixed egojoust at some point
21:40:12 <ais523> anyway, I think it may have been Gregor who invented the triplock (I'm not sure), but I spent ages looking into how to make it work better
21:41:01 <elliottx> no
21:41:03 <elliottx> *-1 = *10000
21:41:11 <elliottx> *100000 = *100000
21:41:14 <ais523> the code reduces all numbers over 10000 to 10000
21:41:15 <ais523> including -1
21:41:22 <pikhq> So. I picked up some Don McLean albums, simply because I felt sorry that the only song of his that anybody knows is "American Pie".
21:41:25 <elliottx> no, it's all numbers over 100000 or under 0
21:41:29 <elliottx> to 10000
21:41:35 <elliottx> I believe
21:41:37 <elliottx> I might be wrong
21:41:48 <ais523> ah, yes
21:41:49 <ais523> I misread the line
21:42:05 <elliottx> ais523: oh, i was going to ask you something, but forget what
21:42:06 <ais523> anyway, pre-bugfix egojoust was much faster at running (()*3)*3 than ()*9
21:42:14 <ais523> for reasons I don't fully understand
21:42:18 <elliottx> ais523: you know how you were going on about call by name being the most general of the calling conventions?
21:42:22 <ais523> yes?
21:42:24 <Deewiant> Feel free to submit more programs that beat FFSPG but not allegro
21:42:34 <ais523> Deewiant: it draws with allegro
21:42:44 <elliottx> ais523: You may want to read http://www.cs.bham.ac.uk/~pbl/cbpv.html -- hey, *wow*, bham.ac.uk, I never even noticed! (No, seriously)
21:42:44 <ais523> chainlance is wrong about the result
21:42:59 <Deewiant> I, of course, refer only to the actual hill
21:43:07 <ais523> oh, Paul Levy
21:43:12 <elliottx> Possibly then you already know of call-by-push-value.
21:43:24 <ais523> he's one of the people who has to approve my interim reports on how I'm doing in the PhD
21:43:36 <elliottx> Get sucking up, then!
21:45:45 -!- copumpkin has joined.
21:47:33 -!- pumpkin has quit (Ping timeout: 276 seconds).
21:48:33 <elliottx> ais523: in call-by-name languages, can foo(v) change the value of v? I'm not very familiar with the convention because it's so fucked-up :)
21:49:36 <ais523> elliottx: generally things you can assign to and things you can't are different types
21:49:40 <ais523> but if it's assignable, yes
21:50:02 <elliottx> ais523: right; consider a lazy call-by-name language where everything is assignable :)
21:50:11 <ais523> the best analogy for call-by-name is that it works like #define macros and can do everything they do, except it's scoped properly
21:50:15 <elliottx> (I forget what else I was thinking of to make things more confusing)
21:50:21 <ais523> so if you call f(x), you give it your x rather than its x
21:50:44 <elliottx> ais523: Preferably, if f(x) is x = x/2, then f(x+1) is x = (x+1)/2 - 1
21:50:48 <ais523> you can do things like this too: f(x,x+1) then x assigns 4 to its first argument, now its second argument is 5
21:50:54 <ais523> elliottx: yep
21:51:00 <ais523> it's parenthesised properly too
21:51:39 <elliottx> ais523: what, "x+1 := 3" works in call-by-name languages?
21:51:45 <elliottx> what about f(x) := y for arbitrary f?
21:51:48 <elliottx> :-)
21:51:51 <ais523> no, x+1 isn't assignable
21:52:01 <ais523> or to be precise, you have to dereference x before you can add 1 to it
21:52:02 <elliottx> ais523: that's what I mean, a language where everything is assignable
21:52:10 <ais523> everything is assignable in INTERCAL
21:52:17 <elliottx> f(x+1) works where f is f(x) = { x := x/2 }
21:52:21 <ais523> although the existing impls aren't very good at it
21:52:30 <elliottx> turns into { x+1 := (x+1)/2 } === { x := (x+1)/2 - 1 }
21:52:43 <elliottx> obviously, you just have to define an inverse with every function
21:53:06 <ais523> C-INTERCAL and CLC-INTERCAL try to calculate it automatically, but often can't
21:53:15 <ais523> to make it easier, they'll change the value of constants if necessary
21:53:40 <ais523> analogy: if you do x+1 := 5, and x is 3, it might change 1 to 2 rather than x to 4
21:53:41 <elliottx> hmm, I was about to ask for a language where reverse(x) is x^-1, but iirc oerjan proved that every such language is trivial a while back :)
21:53:54 <elliottx> ais523: haha
21:53:57 <elliottx> Forte!
21:54:03 <ais523> it's a similar principle
21:54:10 <ais523> although in INTERCAL, all that changes are the literal constants
21:54:16 <ais523> and in CLC-INTERCAL, literal line numbers too
21:54:27 <ais523> it doesn't change things like intermediate results in calculations like Forte does
22:00:54 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
22:00:56 <zzo38> SUBROUTINE MUTATE(N) N=3 RETURN After calling MUTATE(2) in some FORTRAN implementations, you find that 2=3
22:02:25 -!- copumpkin has quit (Ping timeout: 264 seconds).
22:02:58 <elliottx> Some - bad ones :P
22:03:13 <elliottx> ais523: hmm, call-by-name is annoying because I'm having a hard time inventing a convention _more_ insane
22:03:19 -!- copumpkin has joined.
22:03:20 -!- copumpkin has quit (Changing host).
22:03:20 -!- copumpkin has joined.
22:03:32 <ais523> `addquote <elliottx> ais523: hmm, call-by-name is annoying because I'm having a hard time inventing a convention _more_ insane
22:03:33 <zzo38> You should use call-by-telephone, then.
22:03:42 <ais523> elliottx: yep, you should just have asked zzo38
22:03:49 <elliottx> good point
22:03:54 <elliottx> ais523: what about: variables are named by expressions; every parameter becomes a variable named by its expression, initialised to the same expression's value
22:03:57 <elliottx> ais523: the variable is then passed by reference
22:03:58 <elliottx> for instance
22:04:05 <elliottx> subroutine mutate(n)
22:04:08 <elliottx> n := n + 1
22:04:09 <elliottx> end
22:04:10 <elliottx> then
22:04:12 <elliottx> mutate(42)
22:04:14 <elliottx> print(42)
22:04:15 <ais523> in fact, I'm going to modify the quote to add zzo38's response, it works pretty well
22:04:17 <elliottx> prints 43
22:04:20 <elliottx> not because 42 was changed
22:04:24 <elliottx> but because "42" means the value of the variable "42" in the current scope
22:04:34 <elliottx> (initially 42)
22:05:09 <ais523> oh, HackEgo isn't here
22:05:58 <elliottx> ais523: please tell me that's at least as insane as call-by-name...
22:05:59 <elliottx> oh
22:06:03 <elliottx> and the variables are dynamically-scoped
22:06:04 <elliottx> of course
22:06:07 <elliottx> (named after expressions)
22:06:14 <ais523> well, I think call-by-name is sane, if a little hard to work out mentally
22:06:31 <elliottx> I'm going for IN-sane :P
22:06:47 <ais523> yep, it's an implication that I might not be the best person to ask for advice
22:07:22 <elliottx> ais523: Fine, is this convention MORE sane than call-by-name :P
22:07:33 <ais523> I don't think so
22:07:37 <zzo38> In QBASIC we have the default is to pass the pointer in the subroutine unless it is BYVAL or it is not specified as a single variable name. By combining that with VARPTR, I can do a few things with pointers.
22:08:12 <ais523> zzo38: I tried that once when I was younger, but got confused
22:08:36 <ais523> after a while I realised that for pointers to SINGLE type values, it was easier to copy them into a new SINGLE type value, rather than try to figure out their value from the individual bytes
22:09:02 <zzo38> ais523: You can use TYPE and LSET to copy bytes from one type to another
22:09:39 <elliottx> 05:07:27 --- join: ais523 (n=chatzill@chillingi.eee.bham.ac.uk) joined #esoteric 05:07:45 <ais523> Sorry about that, I forgot to join #esoteric before I started sending messages to it
22:10:06 <ais523> was that my first message that ever reached the channel?
22:10:09 <zzo38> Also, what I was doing didn't even do like that, instead, I pass pointers to the subroutine and then check to see if it is pointing to a specific variable, and those things, too.
22:10:13 <elliottx> ais523: no :)
22:10:14 <ais523> please tell me it was
22:10:16 <elliottx> but i wish it was
22:10:17 <ais523> oh, boring
22:10:31 <zzo38> It has +n I think you cannot send to a channel you are not joined to.
22:10:44 -!- elliottx has changed nick to elliott.
22:10:49 -!- elliott has quit (Changing host).
22:10:49 -!- elliott has joined.
22:10:49 -!- elliott has quit (Changing host).
22:10:49 -!- elliott has joined.
22:11:05 * elliott makes #esoteric-minecraft -n
22:11:08 <elliott> for sanity!
22:11:12 <elliott> +s and -n, the best combination
22:11:21 <Phantom__Hoover> Do explain that.
22:11:35 <zzo38> What happened now to the gateway/ and unaffiliated/ ??
22:11:40 <elliott> Phantom__Hoover: nobody can see it in whois and channel lists unless they're in it, but you can send messages to it without joining
22:11:47 <elliott> zzo38: it added my cloak
22:11:52 <elliott> because i identified
22:11:57 <ais523> zzo38: elliott's cloaked so when he identifies it hides his IP
22:12:05 <ais523> but you can't hide your IP via web access
22:12:05 <elliott> ais523: wow, that message worked
22:12:08 <elliott> perfect!
22:12:15 <ais523> so Freenode changed it, then overruled itself and changed it again
22:14:23 <elliott> zzo38: I noticed!
22:14:30 <zzo38> OK
22:15:01 <ais523> I imagine most people don't even know how to send a message to a channel they aren't in
22:15:13 <ais523> but I'm completely unsurprised that zzo38 does
22:15:27 <elliott> ais523: it was actually a notice
22:15:29 <elliott> not a message! :P
22:15:37 <ais523> ah
22:15:44 <zzo38> You send the message the same way that you send a message to the channel that you are in!
22:15:46 <ais523> well, it's much the same
22:16:03 <ais523> zzo38: yes, just most clients hide the fact
22:16:45 <zzo38> Do most clients hide that too?
22:16:49 <Phantom__Hoover> There are things called notices?
22:16:57 <ais523> hmm, why does clog put my hostname in a notice?
22:17:09 <ais523> zzo38: they put it behind a command /notice, rather than sending a privmsg which has no prefix
22:17:23 <ais523> Phantom__Hoover: yes, they're meant for automated responses, like bot replies
22:17:29 <elliott> ais523: "which has no prefix"?
22:17:32 <elliott> NOTICE is the IRC command to do it
22:17:36 <ais523> elliott: I mean in the client
22:17:41 <ais523> I know how it's done "by hand"
22:17:44 <elliott> ah
22:18:01 <zzo38> Phantom__Hoover: You can send a notice to a channel or user with NOTICE instead of PRIVMSG (some clients will do it in different way)
22:18:34 <ais523> Phantom__Hoover: yes
22:18:34 <zzo38> Yes
22:18:48 <ais523> the funny thing is, clients tend to make a big deal out of notices
22:18:57 <ais523> even though they're specced to be things you shouldn't make a big deal out of
22:19:53 <zzo38> My client doesn't treat notices any different, except that when information is requested, the request must use PRIVMSG and the response must use NOTICE
22:20:13 <ais523> hmm, triplock3 seems to be doing the best of all my programs
22:20:15 <ais523> I blame chainlance
22:20:22 <elliott> ais523: btw, I've been working on a boot-sector Forth
22:20:28 <elliott> = 510 bytes of code
22:20:31 <elliott> it turns out this is excruciatingly difficult
22:20:32 <ais523> also, now I'm curious; /did/ Gregor invent the triplock?Ii can't remember
22:20:39 <ais523> elliott: that seems doable, although a bit tight
22:21:03 <elliott> ais523: consider that the absolute minimum to get into flat protected mode is about 54 bytes for me
22:21:04 <zzo38> elliott: You can fit it in the boot sector? I do not think you could fit all of the primitives in there, so it should still require manual initialization?
22:21:06 <elliott> ais523: including the GDT
22:21:28 <elliott> ais523: (I overlap the first unused segment with the rest of the program, and only use one actual segment, which I change from read-write to read-execute with a xor right before setting cs)
22:21:37 <elliott> ais523: (and I only set A20 with the short-but-not-universally-supported BIOS method)
22:22:03 <elliott> now consider keyboard handling code... bios requires unprotecting and reprotecting, manual handling involves translating scancodes
22:22:08 <elliott> zzo38: I'm going to use a stripped-down set of primitives
22:22:24 <ais523> why use the keyboard at all?
22:22:33 <elliott> ais523: it isn't a Forth without a prompt...
22:22:43 <elliott> a non-interactive Forth isn't worthy of the name
22:22:49 <elliott> (actually being able to save your work is much less vital)
22:22:55 <elliott> (OK, so not really, but as far as the Forth nature goes)
22:23:17 <elliott> ais523: I'm planning to back word names into a 32-bit dword :)
22:23:29 <elliott> I can have a 32-long alphabet, enough for letters and some punctuation, and have names of max 6 chars, while still having two bits left over
22:23:36 <elliott> (names are padded out with 0; in this case, probably "q")
22:23:41 <elliott> (scancode-order, obviously)
22:23:49 <elliott> the problem is that i still need to translate to ascii to print to the screen
22:24:06 * Phantom__Hoover wonders why the A20 gate crap hasn't just been replaced with "I'm doing this on AMD64, and if you don't have that you're an idiot and deserve the boot crashing and burning on you".
22:24:10 <ais523> OK, it makes no sense that triplock3 is doing this well
22:24:14 <elliott> (that padding has the fun effect that abc = abcq = abcqq)
22:24:22 <ais523> I should submit triplock2, which is a) marginally better, and b) not a oneliner
22:24:40 <zzo38> I just used unreal mode and used the BIOS calls for keyboard, it will return the ASCII codes so that you can write to the screen
22:24:45 <elliott> Phantom__Hoover: x86's backwards-compatibility is one of its main selling points
22:24:58 <elliott> zzo38: Unreal mode still has the overhead of going into protected mode, though
22:24:59 -!- copumpkin has quit (Ping timeout: 260 seconds).
22:25:00 <elliott> so it's no shorter
22:25:00 <ais523> !bfjoust triplock2 http://sprunge.us/DcXF
22:25:10 <elliott> wait
22:25:20 <elliott> can you lgdt without going into protected mode, and have it work properly?
22:25:22 <elliott> I would be very surprised if you could
22:25:26 <zzo38> Yes, but you can switch out of protected mode afterward
22:25:26 <EgoBot> Score for ais523_triplock2: 42.5
22:25:29 <ais523> why are you going out of real mode?
22:25:39 -!- Patashu has joined.
22:25:53 <zzo38> If you are writing a system that small you should not ever need to go out of real mode, though.
22:26:00 <elliott> ais523: because dealing with segment addresses in Forth code is just perverse
22:26:01 <Phantom__Hoover> If you're talking to zzo38, it's because he's a nutcase and reason just doesn't factor.
22:26:16 <elliott> @ and ! being indices into a gigantic flat memory space is a vital part of the Forth philosophy
22:27:16 <zzo38> You can make a system that the data area is only 64K and the native code area is another 64K?
22:28:10 <zzo38> If you want to make it on GameBoy too, the one on GameBoy you cannot even address more than 64K memory.
22:28:42 <ais523> Phantom__Hoover: I don't think he's any less sane than anyone else in this channel
22:28:42 <ais523> hmm, if I'm never going to get waterfall on top of the leaderboard, how will I get to do a crazily long and detailed explanation of it?
22:28:47 <elliott> ais523: I suppose I could just say "oh, just use one segment"!
22:28:50 <elliott> also, ouch, I'm lagged
22:28:51 -!- pikhq has quit (Ping timeout: 246 seconds).
22:28:53 <Phantom__Hoover> ais523, well...
22:28:57 -!- pikhq_ has joined.
22:29:09 <elliott> I'll try real mode, I suppose
22:29:15 <elliott> but still, I'll ping olsner to ask about my insane idea :)
22:29:49 <Phantom__Hoover> He seems to be incapable of rational thought, at least on the same precepts as everyone else, and he is _incapable_ of dealing with the fact that other people are not exact duplicates of his mind state.
22:30:22 <ais523> Phantom__Hoover: his thought process is entirely rational, it just starts from different premises to everyone else's
22:31:41 <Deewiant> Yay, allegro's on top again
22:32:27 <Phantom__Hoover> On top of what?
22:32:47 <elliott> the furry furry girls
22:33:15 <ais523> if you know what you two mean...
22:33:31 <ais523> Deewiant: that table is bugged, I don't trust it
22:33:53 <ais523> allegro does do better than waterfall3 in my local testing, though (over 1200 compared to just under 1100 wins-losses)
22:36:05 <elliott> :t foldl
22:36:10 <elliott> wtf
22:36:13 <elliott> \bot disappeared _again_
22:36:16 <elliott> are we not worthy??
22:36:22 <elliott> oh, it's offline
22:36:52 <Deewiant> foldl :: (a -> b -> a) -> a -> [b] -> a
22:40:06 -!- augur has quit (Remote host closed the connection).
22:41:40 -!- augur has joined.
22:44:17 -!- copumpkin has joined.
22:44:56 -!- zzo38 has quit (Remote host closed the connection).
22:46:01 -!- augur has quit (Remote host closed the connection).
22:47:39 <oerjan> New Underload wiki section up
22:47:48 <Phantom__Hoover> http://tvtropes.org/pmwiki/pmwiki.php/Main/Scotireland
22:47:55 <Phantom__Hoover> Do... do people actually do that?
22:48:21 <pikhq_> Phantom__Hoover: Yes.
22:48:26 <Phantom__Hoover> pikhq_, oh dear god.
22:49:09 <pikhq_> Remember: Dick Van Dyke's "British" accent sounds legitimately British to many of us.
22:49:32 <Phantom__Hoover> That's not as extreme to me due to lack of personal experience.
22:50:01 <pikhq_> American trying to do Cockney.
22:51:03 <Phantom__Hoover> I already knew that you all think that Scotland consists entirely of the Highlands, but being the same as Ireland...
22:51:25 <pikhq_> "Eh, the accents are both rhotic. Close enough, right?"
22:51:59 <Phantom__Hoover> But YOUR accents are rhotic!
22:52:14 <pikhq_> Yeah, but it's a UK rhotic accent!
22:52:59 <pikhq_> Look: we can't even honestly portray regions of our own country consistently. Much less other countries. :P
22:54:22 <pikhq_> If it's between the east and west coasts, expect high levels of bullshit.
22:54:58 <Phantom__Hoover> [[(Note that what is marketed as a Mars bar in the UK more closely resembles the American Milky Way bar than the American Mars bar.)]]
22:54:59 <Phantom__Hoover> ...what.
22:55:09 <oerjan> iodahucky
22:55:23 <pikhq_> I haven't even freaking seen a Mars bar here.
22:55:28 <ais523> you get Milky Ways in the UK too
22:55:39 <ais523> and they're vaguely similar to Mars bars, but there are obvious differences
22:55:40 <Phantom__Hoover> All that time.
22:55:41 <pikhq_> Freaking Mars company.
22:58:01 <pikhq_> http://static.tvtropes.org/pmwiki/pub/images/the-world-according-to-americans.jpg Any further questions?
22:58:08 <Sgeo> sgeo.diagonalfish.net is down until further notice
22:58:54 <Phantom__Hoover> pikhq_, hey, where's England in the pussies section?
22:59:13 <Phantom__Hoover> Honestly, that's such a huge oversight I can't even begin to comment.
22:59:16 <Phantom__Hoover> Sgeo, NOOOOO
22:59:21 <pikhq_> You mean that's a seperate landmass?
22:59:21 <pikhq_> :P
22:59:24 <Phantom__Hoover> HOW WILL WE HEAR YOUR KARAOKE NOW
22:59:35 <Phantom__Hoover> pikhq_, yes, due to the concentration of pussies.
22:59:42 <Sgeo> My karaoke may be infected!
22:59:55 <Phantom__Hoover> Sgeo, I DO NOT CARE
23:00:04 <Phantom__Hoover> Sgeo, I WANT THAT FILE AND I WANT IT NOW
23:00:31 <Sgeo> Retrieve it now, tell me when you're done
23:01:54 <Phantom__Hoover> Sgeo, *shivers*... yes, I have it.
23:02:05 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:02:17 <Sgeo> Ok.
23:04:12 -!- hallvabo has joined.
23:04:19 <Sgeo> It's gone undealt with since Oct. 2010
23:04:21 <Sgeo> oops
23:05:06 <Phantom__Hoover> Sgeo, what happened to it?
23:05:21 <Sgeo> Malware
23:05:39 <Phantom__Hoover> ...
23:06:05 <Sgeo> Some stress thingy, this time
23:06:15 <Sgeo> It's happened before
23:06:15 <Phantom__Hoover> How...
23:06:35 <Sgeo> I don't know
23:09:02 <Sgeo> So the stress website points to another
23:09:26 <Sgeo> Specifically, to a site that is down
23:09:46 <Phantom__Hoover> Obviously it listened to the karaoke.
23:10:10 <elliott> [23:32] <ais523> you get Milky Ways in the UK too
23:10:13 <elliott> yep but they're not the same as in the us
23:12:45 <ais523> how beautifully muddled
23:12:56 <Phantom__Hoover> It's these minor things...
23:13:03 <ais523> one thing that surprised me is that McDonald's chips/fries are not the same in the UK and Canad
23:13:04 <ais523> *Canada
23:13:04 <oerjan> Muddy Bars
23:13:16 <pikhq_> ais523: How so?
23:13:21 <ais523> (the ones in Canada are much better IMO, and are more similar to Burger King chips in the UK than McDonalds chips)
23:13:28 <ais523> pikhq_: the UK ones are relatively tasteless
23:13:31 <ais523> apart from the salt
23:13:47 <pikhq_> Very, very strange.
23:13:49 <elliott> damned gourmet canadians
23:13:59 <pikhq_> Given that McDonald's has a freaking obsession with consistency.
23:14:02 <ais523> presumably because they think Brits just don't care
23:14:15 <elliott> ais523: clearly a sufficient portion of brits don't :)
23:14:17 <ais523> well, they make a big deal in the UK about selling British food
23:14:20 <Sgeo> I'm going to bring everything back online as it gets cleaned
23:14:29 <ais523> McDonalds, that is
23:14:34 <ais523> e.g. the Big Macs are made from British beef
23:14:53 <pikhq_> ais523: Yes, it's company policy to locally source ingredients, actually.
23:15:21 <pikhq_> But aside from that, they try and make it so that for each product that you can get internationally, it is the freaking *same* everywhere.
23:15:30 <elliott> ais523: *British beef-based product
23:15:42 <elliott> "100% beef" doesn't mean, you know, 100% actual beef meat.
23:15:49 <ais523> well, OK
23:15:50 <elliott> It just means 100% made out of stuff that came from cows.
23:15:53 <elliott> At one point.
23:16:02 <elliott> (And yes, McDonalds and other fast food chains do rely on this difference.)
23:18:12 -!- hallvabo has left (?).
23:18:53 <pikhq_> elliott: More importantly, they rely on factory farming to make their meat nearly devoid of cost.
23:20:23 -!- Mannerisky has joined.
23:20:51 -!- Phantom__Hoover has quit (Remote host closed the connection).
23:22:57 <Mathnerd314> pikhq_: and flavor
23:23:25 -!- pumpkin has joined.
23:23:35 <Mathnerd314> though so far that's a matter of opinion
23:23:53 <elliott> salt is a flavour.
23:24:03 <Mathnerd314> right... but it's added
23:24:09 <elliott> yes, but nobody *doesn't* add it.
23:24:19 <elliott> so it's part of mcdonalds chips by any reasonable definition
23:24:53 <ais523> in the UK, McDonalds add the salt themselves before serving
23:25:00 <ais523> although extra salt is available
23:25:09 <ais523> and Burger King serve the chips without salt and don't provide salt
23:25:11 -!- copumpkin has quit (Ping timeout: 264 seconds).
23:25:13 <ais523> but rather, potassium chloride
23:25:17 <elliott> burg- oh :)
23:25:36 <ais523> I think I hit upon the trick of taking the extra salt from McDonalds to Burger King once
23:25:41 <ais523> but I rarely have fast food anyway
23:25:56 <Mathnerd314> ais523: potassium chloride is a salt... can you really taste a difference?
23:26:05 <ais523> and nowadays, don't add salt to things (although I eat things that contain salt naturally, or had it added by the manufacturer)
23:26:08 <ais523> Mathnerd314: it's quite an obvious difference
23:26:43 * Mathnerd314 will some HCl and mix it with some potassium to try
23:26:50 <Mathnerd314> *get some
23:27:04 <ais523> possibly a bad idea, they might not cancel out exactly
23:27:20 <ais523> also, you want to mix with potassium hydroxide
23:28:33 <Mathnerd314> heh.
23:30:17 -!- Zuu has quit (Ping timeout: 260 seconds).
23:36:26 -!- Zuu has joined.
23:41:09 <pikhq_> Is my freaking hard drive dying or something?
23:41:35 <pikhq_> I'd love to test, but EVERYTHING THAT DOES A DISK ACCESS LOCKS UP RIGHT NOW
23:41:46 <elliott> reboot? :-P
23:41:51 <ais523> pikhq_: that sounds kind-of bad
23:42:22 <elliott> ais523: it's fine, just ask Sgeo; if you lose a disk, *don't* take it out of the computer, *don't* try and recover it, instead, just try and boot it a lot so that it gets even worse!
23:42:42 <elliott> days later, act amazed that recovering data from the disk might be impossible, and then give up when you learn it'll take about a day to run ddrescue
23:42:54 <elliott> this is a tried-and-tested method of data nonrecovery
23:43:13 <Sgeo> I never gave up!
23:43:28 <elliott> Sgeo: orly? so you have your data now?
23:43:30 <Sgeo> The project is just on... hiatus from lack of suitable computer.
23:43:38 <elliott> the data is permanently gone.
23:43:45 <ais523> elliott: I had a hard drive break due to the power supply breaking and taking out some things connected to it with it
23:43:46 <elliott> you had a few days, you blew it. you gave up by not proactively rescuing it in that time.
23:43:55 <ais523> the data's still on it, but the hard drive can't physically be turned on
23:44:12 <ais523> I just restored from backups rather than trying to repair it
23:44:13 <Sgeo> elliott, it degrades when it's not doing anything?
23:44:13 <elliott> ais523: in Sgeo's case, it was dropping it. I'm not sure how one drops a hard disk so hard as to badly damage it without covering your fingers with butter, or not living on the same dimensional plane.
23:44:17 <Sgeo> It's inside no computer.
23:44:18 <elliott> Sgeo: X_X
23:44:29 <elliott> I wish I had my normal client with all my fancy ignores.
23:44:36 <ais523> it also broke the CD drive, although obviously that didn't damage the CD in it
23:44:39 * pikhq_ install smartmontools
23:44:56 <elliott> ais523: I'd like to see an optical drive that, if damaged while a disc is inside, damages the disc
23:45:02 <elliott> say, one that constantly spins the CD incredibly fast?
23:45:06 <elliott> in a delicate hold
23:47:00 <pikhq_> It's too hot.
23:47:33 <elliott> hmm, what's a good name for the function f : Generator a -> Generator (Int, a)?
23:47:43 <elliott> i.e. f [a,b,c] == [(0,a), (1,b), (1,c)]
23:47:44 <oerjan> intGenerator
23:47:45 <elliott> Python calls it "enumerate"
23:48:02 <elliott> oerjan: that's a terrible name, that would be something like [0, 1, -1, 2, -2, ...] enumerating all the ints
23:48:06 <elliott> at least, that's what it suggests to me
23:48:19 <oerjan> natGenerator then !
23:48:39 <pikhq_> The drive is currently 56 Celsius, which is covering *severe* lags.
23:48:48 <elliott> oerjan: but that isn't what it is!
23:48:50 <elliott> it's zip [0..]
23:48:52 <pikhq_> What I'm going to do is shut down and try and identify cooling problems.
23:48:58 -!- pikhq_ has quit (Quit: Here's hoping.).
23:49:12 <oerjan> zipBracketZeroDotDotEndBracket
23:50:12 -!- quintopia has quit (Ping timeout: 250 seconds).
23:51:00 <ais523> elliott: pairWithIndex?
23:52:27 -!- quintopia has joined.
23:53:08 <oerjan> zipADeeDooDah
23:53:35 <elliott> enumerate is better than all of these :P
23:56:34 <elliott> heh I just realised that Haskell lists are isomorphic to generators
23:57:10 <elliott> newtype Generator a = Generator { next :: Maybe (a, Generator a) }
23:57:20 <elliott> newtype Generator a = Geberatir (Maybe (a, Generator a))
23:57:24 <elliott> Generator a = Maybe (a, Generator a)
23:57:28 <elliott> Generator a = Maybe (a * Generator a)
23:57:36 <elliott> Generator a = (a * Generator a) + 1
23:57:41 <elliott> same as
23:57:48 <elliott> data List a = Nil | Cons a (List a)
23:57:58 <elliott> List a = Nil | Cons (a * List a)
23:58:01 <elliott> List a = (a * List a) + 1
←2011-03-03 2011-03-04 2011-03-05→ ↑2011 ↑all