←2011-01-09 2011-01-10 2011-01-11→ ↑2011 ↑all
00:06:31 <Phantom__Hoover> OK, I've exported the essay to LaTeX...
00:10:07 <elliott> TODO: make the display of branches somehow a table.
00:10:59 <Phantom__Hoover> So, who wants to see the stupidity I make up when scrambling to finish an essay at 12 o'clock?
00:12:17 <elliott> Yes.
00:13:24 <Phantom__Hoover> What's that command-line pastebin?
00:13:32 -!- TLUL|afk has changed nick to TLUL.
00:14:38 <Phantom__Hoover> Ah, sprunge.
00:16:23 <Phantom__Hoover> http://sprunge.us/SRKV
00:16:45 <Phantom__Hoover> Advice welcome, since I suspect I'll have to hand this in for some exam or other.
00:22:42 -!- hagb4rd|afk has joined.
00:27:58 <oerjan> hagb4rd|afk: HOW CAN YOU JOIN WHEN YOU'RE AFK, THIS NO SENSE MAKE
00:29:25 <Phantom__Hoover> oerjan, he joined with his mind.
00:29:31 <oerjan> ooh
00:30:39 <elliott> Phantom__Hoover: I refuse to review anything other than the originale ssay.
00:30:43 <elliott> *original essay.
00:31:00 <Phantom__Hoover> elliott, that is essentially it.
00:31:09 <elliott> Phantom__Hoover: \author{Phantom Hoover}
00:31:10 <elliott> I doubt!
00:31:29 <Phantom__Hoover> I made no alteration to the text other than to change \author from my real name to... NOT GOING TO BE THAT EASY
00:32:00 <elliott> :D
00:32:05 <elliott> oerjan: what were those two name possibilities again
00:32:13 <elliott> Phantom__Hoover: FWIW, OS X has only had Comic Sans as of very recently, and Unix machines rarely ship with it.
00:32:18 <elliott> So I don't get this "every computer" stuff.
00:32:27 <elliott> "other operating systems rapidly followed suit" -- no they did not
00:32:31 <oerjan> elliott: wat
00:32:41 <Phantom__Hoover> elliott, WROTE IT IN 2 HOURS
00:32:50 <elliott> oerjan: of the two possible names ph can be
00:32:52 <elliott> or did fizzie get that
00:32:59 <Phantom__Hoover> FACTUAL ERRORS ARE FORGIVEABLE UNLESS BLINDINGLY CLEAR
00:33:06 * oerjan doesn't recall
00:34:02 <Phantom__Hoover> elliott, also, it's an ENGLISH essay.
00:34:08 <Phantom__Hoover> Facts are irrelevant.
00:36:31 <oerjan> You may lie as much as you wish, as long as your grammar and spelling is impeccable.
00:36:48 <Phantom__Hoover> Which they are!
00:36:55 -!- Wamanuz has quit (Ping timeout: 255 seconds).
00:36:56 <Phantom__Hoover> Except for the semicolon splices.
00:38:36 -!- cheater00 has joined.
00:39:43 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
00:40:19 -!- hagb4rd|afk has changed nick to hagb4rd.
00:40:43 * Phantom__Hoover → sleep
00:41:26 -!- Phantom__Hoover has quit (Quit: Leaving).
00:41:28 <hagb4rd> sry oerjan.. i was afk before i quit
00:41:33 <elliott> Vorpal: http://www.minecraftforum.net/viewtopic.php?f=25&t=128995
00:41:34 <elliott> Vorpal: yes!
00:41:39 -!- cheater- has quit (Ping timeout: 240 seconds).
00:42:28 <hagb4rd> but to answer your question: remote control :p
00:43:44 <elliott> Vorpal: yeah from screenshots this relaly makes everything smoother
00:43:46 <elliott> *really
00:43:58 <hagb4rd> ah phantom did it
00:44:04 <hagb4rd> damn :/
00:44:05 <oerjan> hagb4rd: what a ridiculous concept!
00:44:16 <elliott> did whata
00:44:31 <hagb4rd> concept would go too far
00:44:52 <elliott> Vorpal: also http://www.minecraftforum.net/viewtopic.php?f=25&t=128043 arbitrary shader mod!
00:45:08 <elliott> Vorpal: http://img443.imageshack.us/f/screenshot20110108at101.png/ if better light is better light, what is this? perfect light?
00:45:09 <hagb4rd> lets call it 'the creative moment of superposition'
00:45:36 <oerjan> ME GO TOO FAR!
00:45:48 <elliott> hahahahahahahahahaaa:
00:45:50 <elliott> [[Do not distribute anything I've made. This includes the client and the server software for the game. This also includes modified versions of anything I've made.]]
00:45:57 <elliott> you can't redistribute the minecraft server which is available for free download
00:45:58 <elliott> :D
00:47:56 <hagb4rd> kind of inviting
00:48:48 <hagb4rd> maybe me/you leak on trust for the culture of white man
00:52:06 <hagb4rd> [pretty nice track: http://www.youtube.com/watch?v=egdOBB-Z16c&fmt=18]
00:53:02 <elliott> hagb4rd: what
00:53:26 <hagb4rd> minima lelectro music
00:53:43 <hagb4rd> feel free to ignore it
00:53:44 <pikhq> http://www.youtube.com/watch?v=7jzsrnTFhyQ I think I prefer this.
00:55:08 <elliott> Aza's texture pack looks nice...
00:55:08 <hagb4rd> oh.. u mean my mistranslated thompson quote :>
00:55:15 <elliott> indeed.
00:55:18 <elliott> that is what i mean
00:57:34 * elliott tries to flesh out list semantics.
00:58:00 <hagb4rd> nice1 pikhq :)
00:58:01 <elliott> A list has a current selection. The arrow keys move this selection up/down or left/right (same thing) the list of focusable children.
00:58:26 <elliott> The E key can be pressed to cause the current selection to be focused. Before this, the current selection stays as the list's widget.
00:59:06 <elliott> The current selection's border is blue; other selections' borders are light grey. I might have some extra border colour for "selected and focused", but this is not very relevant, since you could tell by seeing whether there are any highlighted borders inside it.
00:59:42 <elliott> The D key defocuses the current selection, and returns to the list, with it still selected.
00:59:45 <elliott> Focusing a number makes it become blue-bordered, say, and then typing overwrites that number.
00:59:57 <elliott> So e123d, when a number is selected, would turn it into 123.
01:00:49 <elliott> The + or = key (not sure which) adds a new element after the current one in a list and selects it (but does not focus it, I don't *think*.)
01:01:02 <elliott> I should probably have an "insert before" key so that you can insert at the top of a list.
01:01:13 <elliott> If I do, then probably = should be insert after, and + should be insert before, since + is shifted = for me.
01:01:34 <elliott> So in an argument list, +e123d adds 123 as an argument after the current one.
01:02:04 <elliott> (Perhaps I should make sure that all examples have the same number of arguments? That could be a pain (although maybe not), but it would be nice if it could do that somehow and... automatically add blank arguments to the others? Not sure.)
01:02:11 <elliott> Actually, it would be +ie123d.
01:02:28 <elliott> Since + would take the type in an argument list; either integer (i) or list (l).
01:03:06 <elliott> So +le+ie123d+ie456d+ie789d adds the list [123 456 789] after the current argument.
01:03:12 <elliott> Or perhaps e should be implicit after +.
01:03:23 <elliott> In that case, it would be: (oh, and I'm using + to mean = here, i.e. insert after)
01:03:35 <elliott> +l+i123d+i456d+i789d
01:03:41 <elliott> That's certainly nicer, but perhaps more confusing. I'll have to see.
01:03:54 <elliott> Backspace or something deletes the current selection.
01:04:11 <elliott> In a set, obviously, everything gets sorted, so no matter where you add an element, it'll move to the right place after you enter the name.
01:04:23 <elliott> On that note: in a bag, there's an extra type other than i and l, f for function.
01:04:43 <elliott> But <enter> is used in place of d when writing a string. (Perhaps <enter> should be a synonym for d everywhere.)
01:05:00 <elliott> So +fesucc<enter> or +fsucc<enter> (if e is implicit) adds succ to the current bag.
01:05:03 <elliott> I like it.
01:05:23 <elliott> Other things I should probably have: keys to jump to the branch list and bag of the current function, no matter where you are in it.
01:05:35 <elliott> Also, a command called / which has you type in a function name, press enter, and it jumps there.
01:06:02 <elliott> I think this could actually work!
01:06:14 <elliott> Also, s or Cmd+s or whatever saves. Obviously.
01:06:27 <elliott> Saving will have to exit the current item if it's an integer or string to make sure it gets updated properly...
01:06:41 <elliott> I should probably also store history here, but I'm not sure how. Maybe just copy the whole thing on every change and store it in memory, the ghetto way. :p
01:11:12 <elliott> Also also, the focus starts on the program object, which is just a set of functions (well, really a dictionary, but you don't see that).
01:11:36 <elliott> There, + just takes a name and creates a function. Perhaps it should actually do an implicit "ee", i.e. enter into the function, and enter into the name.
01:11:44 <elliott> Obviously it would remove it if you try and name a function an existing name or whatever.
01:11:47 <elliott> Or don't give it a name.
01:13:20 <elliott> http://www.minecraftforum.net/viewtopic.php?f=31&t=11997 The Minecraft Society of Blowing People's Chests Up.
01:13:25 <elliott> I wholeHEARTEDLY approve.
01:15:09 <elliott> http://www.reddit.com/r/Minecraft/comments/ez76j/living_underground_playing_minecraft_in_moleman/
01:15:15 <elliott> I really want to do this as a two-person SMP thing.
01:15:19 <elliott> Maybe I'll convince PH.
01:48:59 <elliott> ...so basically, I keep a list index (or object references for sets? Or for everything? I have no direct object duplicates... eh, TODO: figure this out.) in each list object.
01:49:08 <elliott> And make sure it all gets highlighted and have bindings to move around that list.
01:49:14 <elliott> Then I just have a binding to focus the current index/whatever.
01:49:28 <elliott> Each widget itself has a key to focus its parent, which accomplishes "going up" one, i.e. exiting (d).
01:49:32 <elliott> (And <return>).
01:49:36 <elliott> (And perhaps <esc>.)
01:49:38 <elliott> *<return>.)
01:49:43 <elliott> Yeah, this could work.
01:50:09 <elliott> Obviously integers just have to snarf the keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and - when they're focused and do the obvious (*10)+.
01:50:16 <elliott> Although - might require some trickery.
01:50:26 <elliott> Maybe I should keep it as a string until the whole integer's written.
01:50:29 <elliott> Or maybe not. Whatever.
01:53:10 <cheater00> hello
01:54:13 -!- TLUL has quit (Read error: Connection reset by peer).
01:54:45 -!- TLUL has joined.
01:57:14 <elliott> [["We" don't make us Ninjas or Rockstars - we still have the notion of "Monks". You might think this is stupid - on a cultural level you're basically comparing living the boheme with celebacy - guess what speaks to
01:57:14 <elliott> people?]]
01:57:16 <elliott> this is the silliest article ever
01:58:56 <elliott> "Ah Perl, a ... weapon ... from an ... age." —reddit
02:02:41 <elliott> http://www.youtube.com/watch?v=D1sXuHnf_lo Deldo, teledildonics for Emacs. WJW.
02:03:58 <elliott> Oh god he's having sex with Steve Yegge via Emacs. What is this.
02:06:01 <elliott> bahahaha networked teledildonics
02:07:53 <elliott> He's proposing teledildonical eugenics to wipe out vi.
02:11:12 -!- luatre has quit (Remote host closed the connection).
02:11:15 -!- elliott has quit (Remote host closed the connection).
02:23:18 -!- TLUL has changed nick to TLUL|afk.
02:31:17 <variable> would a language that does a random walk among all its instructions (and otherwise TC) be considered TC because it will *eventually* perform whatever it is that you actually intended
02:36:12 <oerjan> well that sounds like it would be an infinitely long computation, wouldn't it? and defining what it means for infinite computation models to be TC is very subtle
02:37:05 <oerjan> the thing is that you need some kind of output translation algorithm to look through the actual random walk to say what the final result is
02:38:12 <oerjan> and the question is then, is it your random walk or the output translation that is doing most of the _real_ computation?
02:39:11 <oerjan> this is a problem for such things as rule 110 cellular automaton and that minimal turing machine which ais523 proved
02:42:33 <oerjan> both of which require an infinite setup which calculates forever
02:42:45 <oerjan> variable: ^
02:44:06 <variable> rule 110 cellular automation ?
02:44:09 * variable googles
02:44:51 <oerjan> also to be nitpicking, theoretically TC should always be about computing a result somehow, whether it is also performing "actions" is fairly irrelevant
02:46:23 <oerjan> for the other one see http://www.wolframscience.com/prizes/tm23/solved.html
02:46:24 <variable> oerjan, so my question should have been "since it will eventually compute whatever it is you intended"
02:46:36 <variable> ps - nitpicky is good for me - it helps me learn
02:46:50 <oerjan> variable: well you see you have to have some way to decide on _one_ result to get out of it
02:47:29 <oerjan> (warning, everything wolfram is embedded in an ocean of hype)
02:49:48 <oerjan> it might compute as many other things it wants, but at the end you have to have a way to choose, and if that way is itself too computationally complex it is too easy to cheat
02:50:24 <variable> oerjan, so what your saying is that the chooser itself becomes what becomes TC so the random walk doesn't matter
02:50:47 <oerjan> that can happen yes. although sometimes there is a combination.
02:52:33 <oerjan> for the rule 110 automaton you need infinite setup and extraction of result but each of those is essentially still a finite state automaton (i think)
02:53:21 <oerjan> so in some sense they're still "simple"
02:54:54 <oerjan> for the 2,3-turing machine case the setup is even more complicated, and there was a debate about whether it was simple enough
02:55:55 <oerjan> (i recall ais523 telling that the output extraction was still a very simple check)
02:56:11 <variable> ah
03:51:37 -!- pikhq has quit (Ping timeout: 276 seconds).
03:52:04 -!- pikhq has joined.
04:03:50 <oklopol> o
04:04:58 <augur> i think ive started to understand how continuation based backtracking works
04:04:58 <augur> :T
04:09:00 -!- TLUL|afk has changed nick to TLUL.
04:10:27 -!- hagb4rd has quit (Ping timeout: 240 seconds).
04:11:37 -!- azaq231 has joined.
04:11:39 -!- azaq231 has quit (Client Quit).
04:11:50 -!- azaq231 has joined.
04:12:04 -!- azaq231 has quit (Changing host).
04:12:04 -!- azaq231 has joined.
04:13:05 -!- azaq23 has quit (Ping timeout: 276 seconds).
04:15:38 <oklopol> here's my essay about comic sans: "Comic Sans is not monospaced, nuff said."
04:16:17 <oerjan> "Comic Sans is not monospaced", Nuff said.
04:16:56 * pikhq finds it funny how bad people are at driving in snow.
04:17:18 <pikhq> "Oh my god there's half an inch of snow! I CAN'T DRIVE!"
04:17:25 <pikhq> (for you non-Americans, that's 1 or 2 cm)
04:18:50 <oerjan> 1.27
04:19:33 <pikhq> oerjan: Ballpark figures get ballpark conversions from me.
04:20:05 <oerjan> 1.270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
04:20:19 <pikhq> The 0s are irrelevant digits!
04:20:25 -!- poiuy_qwert has joined.
04:20:33 <oerjan> YOUR digits are irrelephant!
04:20:34 <oklopol> augur: congratulations
04:20:38 <pikhq> An inch is *defined as* precisely 25.4e-3 m!
04:20:48 <oerjan> i know.
04:20:53 <augur> oklopol: :D
04:20:54 <augur> <3
04:20:56 <oklopol> that was sort of his point
04:21:25 <pikhq> Bah.
04:21:45 <pikhq> Anyways.
04:21:55 <pikhq> I actually saw people *parked on the side of the road*.
04:22:21 <oklopol> what's the significance of that, said the foreigner?
04:22:40 <oklopol> do americans only use fancy big parking lotw
04:22:41 <oklopol> *lots
04:22:51 <pikhq> oklopol: Their thoughts were "Oh fuck it's too bad I'm going to wait this out".
04:23:02 <oklopol> oh like just a random road
04:23:09 <pikhq> oklopol: Meanwhile I'm driving by at ~45 mph (~70 kph).
04:23:19 <oklopol> i suppose that's sort of the definition of road
04:23:49 <oklopol> we rarely have half an inch of snow on the roads because people drive about as much as in the summer
04:24:11 <oklopol> well. probably much less, but you don't need that many cars to remove the snow.
04:24:32 <pikhq> It happens when it's snowing pretty well, and it's evening.
04:24:42 <oklopol> i suppose it might
04:24:46 <oklopol> i don't actually own a car
04:26:13 <oklopol> should prolly go to uni and try to study a bit
04:29:14 <oklopol> oerjan: i think i now understand the green's stuff completely, the lemmas are just because you first prove that there is a kind of inverse element for each *pair* of identity elements in the same D class, for D = L \circle R (an eq relation), that is, for each x, eRx, fLx where e and f are idempotents, there is a unique fRyLe such that xy=e, yx=f
04:29:48 <oklopol> which is actually pretty easy, but you have to guess what y is, by building it from the elements used in the implementations of L and R relations
04:30:04 <oklopol> with the same meaning of implementation as i used yesterday
04:30:43 <oklopol> so xRy ~ xs = y, ys' = x would mean s and s' implement the relation, not sure that's a good term but anyhows
04:31:25 <oklopol> and the really complex looking lemma i listed yesterday is actually very simple when you think of it in terms of these diagrams representing D classes
04:32:31 <oklopol> D = R \circle L so have R classes as rows and L classes as columns, then what the lemma says, or on of the things, is that if left multiplication takes an element in an R class a to another R class b, then actually the whole class a is bijected onto b
04:33:18 -!- hagb4rd has joined.
04:33:49 <oklopol> and L classes are preserved when multiplying a's elements from the left (by that element we chose), since well obviously because there's another element whose multiplication from the left inverts the operation
04:33:50 <oklopol> well
04:34:10 <oklopol> it's not really very clear this way either, but trust me, it's clear when you draw a diagram and move your fingers along it!
04:35:41 <oklopol> anyhow so in short, H classes within one R class a are bijected onto H classes of the other R class b, if you multiply from the left by an element implementing the L relation between two elements x \in a, y \in b
04:36:31 <oerjan> i think i'll run away screaming now
04:37:00 <oklopol> :D
04:37:22 <oklopol> the stuff in the inverse semigroups chapter is waaaaaaaay more complicated
04:38:13 <oklopol> i'd love to rant about it but
04:38:19 <oklopol> i should probably read it once more
04:38:26 <oklopol> and to do that, i should probably leave
04:38:43 <oklopol> anyway in short:
04:38:59 <oklopol> inverse element of x is y such that xyx = x, yxy = y
04:39:08 <oklopol> inverse semigroup = all have unique inverses
04:39:30 <oerjan> in short my brain is not capable of this stuff today
04:39:47 <oklopol> the trace of a congruence is the restriction of it on the semilattice of idempotents (nontrivial that it's a semilattice, essentially needs the same proof we spend hours on back when)
04:39:51 <oklopol> :D
04:39:59 <oklopol> well i don't really care!
04:40:03 <oklopol> so umm
04:40:04 <oklopol> where was i
04:40:10 <oklopol> yeeeeeah
04:40:13 <oerjan> as long as you don't mind speaking to yourself
04:40:17 <oklopol> now for each congruence on an inverse semigroup
04:40:26 <oklopol> well you might not be listening, but others might!
04:40:32 <oklopol> :DDDDDDDDDD
04:40:34 <oklopol> anyway so
04:40:41 <oerjan> SUUUUURE
04:41:33 <oerjan> http://www.ninjapirate.com/newcomputer.html
04:41:36 <oklopol> let p be a congruence, we can define p_{min} = complicated shit; then we can prove, using a page of dense impossibl- to-understand algebration, that p_{min} is the smallest congruence with the same trace
04:41:39 <oklopol> same for p_{max}
04:41:57 <oklopol> and that's the greatest sexiness eva
04:42:45 <oklopol> such a uniqueness of minimul suchness is not the case for all regular semigroups
04:42:58 <oklopol> and in the case of groups, that is an empty definition
04:43:04 <oklopol> as is usually the case in semigroup theory
04:43:11 <oklopol> which is essentially the theory of idempotents afaiu
04:43:36 <oklopol> okay rant over, you don't have to feel bad about me wasting my time anymore
04:43:53 <oerjan> YAY
04:53:22 -!- pikhq has quit (Ping timeout: 250 seconds).
04:56:38 <oklopol> i'll continue after the exam, try to get your brain up and running with puzzles and shit while i'm gone k?!
04:58:10 <oerjan> NEVER
04:58:22 <oklopol> :(((
04:58:31 <oerjan> ok MAYBE
04:58:50 <oklopol> :P
04:59:26 <oklopol> i should actually try to clean up this place, i moved about a week ago, and i still haven't moved a single object
04:59:32 <oklopol> well, maybe like 5 objects
04:59:33 <oklopol> anyhow ->
04:59:36 <oklopol> i mean
04:59:40 <oklopol> should do that today
04:59:48 <oerjan> good luck on the exam
04:59:52 <oklopol> so it's possible i won't be here all day
04:59:54 <oklopol> thanks
05:00:02 <oklopol> apparently it's super hard
05:00:05 <oklopol> i mean
05:00:08 -!- Wamanuz has joined.
05:00:25 <oklopol> according to the guy who deduced how clue works from ski
05:01:25 <oklopol> but i'm sure i'll manage with 5 hours of sleep
05:02:12 <oklopol> ->
05:07:53 <Sgeo> My new favorite game is Super PSTW
05:08:10 <oerjan> we'll have to update shutup then
05:08:16 * oerjan ducks
05:08:17 * Sgeo was joking
05:08:31 * oerjan has no idea what Super PSTW is anyhow
05:08:38 <Sgeo> http://www.newgrounds.com/portal/view/495903
05:11:27 -!- pikhq has joined.
05:14:38 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
05:18:04 -!- pikhq has quit (Ping timeout: 250 seconds).
05:59:35 <Sgeo> Oh no
05:59:40 <Sgeo> Mercury
06:00:16 <oerjan> The Evil Planet
06:00:28 <oerjan> or wait, uh uh
06:01:00 <oerjan> _definitely_ time to update shutup
06:01:50 <Sgeo> oerjan, it will need to be provided with an AI capable of determining when I'm expressing an interest in something new.
06:02:15 <oerjan> sounds plausible
06:05:12 <Sgeo> Well, this sounds like a lot of redundant typing that Haskell eliminates via the IO monad
06:05:20 -!- Wamanuz has quit (Ping timeout: 264 seconds).
06:05:47 <Sgeo> [Mercury IO predicates manually take in and give back the state of the world]
06:06:22 <Sgeo> "
06:06:22 <Sgeo> Naming all these intermediate states quickly becomes tedious, so Mercury
06:06:22 <Sgeo> provides us with syntactic sugar in the form of state variables"
06:06:23 <Sgeo> Oh good
06:10:29 <Sgeo> I'll look at it in more detail tomorrow
06:10:37 <Sgeo> Just got confused by a line that looks backwards
06:14:02 -!- FireFly has joined.
06:27:10 -!- oerjan has quit (Quit: leaving).
06:32:08 -!- TLUL has changed nick to TLUL|rlybusy.
06:33:14 -!- Wamanuz has joined.
06:51:42 -!- oerjan has joined.
07:01:29 -!- Zuu has quit (Read error: Connection reset by peer).
07:01:40 -!- Zuu has joined.
07:05:10 -!- zzo38 has joined.
07:07:25 <zzo38> Quick! Everyone count to zero!
07:07:32 -!- zzo38 has changed nick to Quick_Everyone_c.
07:07:34 -!- Quick_Everyone_c has quit (Client Quit).
07:08:11 <oerjan> at last a request we can fill
07:12:30 <quintopia> i didn't do it though. this isn't #irp
07:12:46 <oerjan> yes you did.
07:13:14 <quintopia> you lie.
07:13:32 <oerjan> watch me count to zero again:
07:14:28 <oerjan> > [1 .. 0]
07:14:28 <lambdabot> []
07:14:32 -!- Wamanuz has quit (Ping timeout: 240 seconds).
07:14:51 <quintopia> he didn't say to start counting at 1
07:14:59 <quintopia> most computer scientists start at zero
07:15:03 <oerjan> that's the default duh
07:15:05 <quintopia> and that requires counting at least zero
07:15:37 <oerjan> ...you show me an average computer scientist who starts at zero when counting actual items
07:16:14 <quintopia> he didn't ask anyone to count actual items
07:16:32 <quintopia> stop making up arbitrary situations where you're right and i'm not :P
07:16:42 <oerjan> *MWAHAHAHA*
07:19:07 <Sgeo> oerjan, me, out of habit, on occasion
07:19:25 <Sgeo> *counting chairs to remember where I sit* 0, 1, 2,
07:19:27 <oerjan> Sgeo: I SAID AVERAGE
07:19:41 <oerjan> supergeeks don't count
07:21:01 <quintopia> i have an annoying bug or something that is pissing me off. my microSD card unmounts always and only when i copy files to it
07:21:06 * oerjan reads up on the no true computer scientist fallacy
07:21:13 <oerjan> ^ lie
07:21:14 <quintopia> creating files on it is fine, copying files from it is fine.
07:21:38 <quintopia> i want to punt it but then i'd lose it...it's too small
07:22:03 * oerjan suggests cat >
07:22:19 * quintopia tries
07:24:57 <quintopia> still fails and unmounts but takes longer in doing it
07:25:04 <oerjan> huh
07:25:24 <oerjan> what about touch followed by cat >> ?
07:25:34 <oerjan> (FOR SCIENCE!)
07:26:20 <quintopia> failed fast again
07:26:35 <oerjan> does the size of the file copied matter?
07:26:36 <quintopia> (the touch worked though)
07:26:48 <quintopia> well, i tried a pretty small one and it failed
07:26:54 <quintopia> let me try an uber small one
07:27:47 <quintopia> alright, a 4byte file copies fine
07:28:54 <fizzie> How about a slow-speed write with something like perl -e 'open IN, "<:raw", "/input/file"; open OUT, ">:raw", "/output/file"; while (read IN, $data, 512) { print OUT $data; sleep 1; }' -- that's half a kilobyte per second.
07:29:55 <quintopia> apparently half a kilobyte is too big
07:30:08 <oerjan> is that the block size?
07:30:12 <quintopia> i just tried to echo 10 lines of t's into a file and it failed
07:30:34 <oerjan> what happens if you echo >> 10 times?
07:32:23 <quintopia> it appears to fail as soon as the file reaches a certain (extremely small size)
07:32:29 <quintopia> lemme try again slower
07:33:21 <oerjan> i'm just wondering if it's absolute file size or just amount written in one go
07:34:10 <quintopia> apparently if i wait long enough between appending 80 or so bytes at a time i can make big files
07:34:19 <oerjan> heh
07:34:38 * quintopia tries the perl script with a 80 byte rate
07:34:40 <oerjan> oh so it's not enought to close in between, you have to wait?
07:34:51 <quintopia> yep
07:35:03 <quintopia> echoing really quick in a row still breaks it
07:35:20 <fizzie> You could try echo + sync + echo + sync; though that sort of thing is probably going to wear out the card quicker.
07:35:31 <fizzie> They have to always erase a full block when writing, after all.
07:36:08 <quintopia> odds are it's an issue with the card reader
07:36:23 <quintopia> i know the card is fine
07:40:15 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
07:40:49 -!- Phantom_Hoover has joined.
07:41:34 * quintopia is now writing a file at 40 bytes/sec >_>
07:42:57 <oerjan> now if this slow speed means it syncs so that it does that erase a full block everything thing...
07:43:20 <oerjan> *everytime
07:43:24 <quintopia> yeahhhhhhhhhhh...
07:43:36 <quintopia> just for science anyway
07:45:43 <Phantom_Hoover> What're you doing?
07:46:29 <quintopia> running fizzie's perl script
07:47:55 <fizzie> Phantom_Hoover: MINDLINK. I had committed-and-pushed a (very preliminary probably broken) //save command (which saves the so-far received block data, sans signs, furnaces and chests, into a hopefully Minecraft-compatible world-dir) about an hour before you had that feature request.
07:47:57 * oerjan discovers r/inglip
07:48:40 <Phantom_Hoover> fizzie, HOW DARE YOU STEAL MY THOUGHTS BEFORE I EVEN THINK THEM
07:48:52 <fizzie> If it's any consolation, it probably doesn't work.
07:49:46 * oerjan wonders if he is witnessing the birth of a meme
07:50:15 <fizzie> I've only tried the resulting world with pynemap, and, well, http://zem.fi/~fis/pynemap.png -- there's a bit of it that's missing.
07:50:40 <fizzie> Also the lighting values are likely to be very worng.
07:51:06 <fizzie> And the heightmap I know is mirrored over the x=z line.
07:51:34 <fizzie> (The heightmap is used as a speedup for computing the final light values from block-light and skylight, or some-such.)
07:51:58 <Phantom_Hoover> oerjan, inglip?
07:52:55 <quintopia> the perlscript expt failed
07:53:07 <oerjan> Phantom_Hoover: http://www.reddit.com/r/fffffffuuuuuuuuuuuu/comments/eybba/dark_captcha_magic/
07:53:16 <Phantom_Hoover> fizzie, it's good enough for my plot to blow up Mt. Vorpal locally.
07:53:31 -!- azaq231 has left (?).
07:53:51 <oerjan> and of course http://www.reddit.com/r/Inglip/
07:53:52 <fizzie> Phantom_Hoover: You shouldn't say stuff like that before actually verifying whether it works in the actual game at all.
07:54:16 <Phantom_Hoover> oerjan, ah, it's Zalgo 2.0.
07:54:22 <Phantom_Hoover> fizzie, I WILL
07:54:27 <oerjan> Phantom_Hoover: possibly
07:54:39 <oerjan> hm i guess that means it may have troubles competing
07:55:22 <Phantom_Hoover> Zalgo does have something of a monopoly on the field of memetic Lovecraftian horrors.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:01 <oerjan> this Inglip seems a teeny bit reluctant though
08:02:24 <oerjan> *this Inglip daemon
08:02:26 -!- FireFly has quit (Quit: swatted to death).
08:03:57 <Phantom_Hoover> fizzie, I'll try out the saved world now...
08:05:30 <fizzie> Phantom_Hoover: It is possible you may fall into your death.
08:06:08 <fizzie> I'd have tried it myself, but I always get queasy when there are glitches in 3D-y games.
08:06:27 <Phantom_Hoover> fizzie, I can confirm that it does indeed work.
08:06:40 <fizzie> Oh no! Wait, what? Where's the "not" in that sentence?
08:06:41 <Phantom_Hoover> I spawned on Mt. Vorpal, and I saw the skyway in the distance.
08:07:13 <fizzie> Then what happened?
08:08:02 <fizzie> The experience must've been so horrible, it robbed him of the power of speech. How tragic!
08:08:12 <Phantom_Hoover> Heh, it even captured the front half of nailor's cabin.
08:08:17 <Phantom_Hoover> It looks a bit forlorn.
08:08:42 <fizzie> How's the lighting?
08:10:15 <Phantom_Hoover> Fine.
08:10:21 <fizzie> Weird.
08:10:29 <Phantom_Hoover> Although I only explored the overground bits.
08:11:04 <Phantom_Hoover> At this point I just want to load hMod locally and give myself a load of TNT.
08:11:35 <fizzie> You can server-command-'give' yourself 64 blocks of TNT even without any hMods.
08:12:01 <fizzie> The //save-enabled mcmap build will use 2.5 times as much memory as the normal version, which is a bit of a shame. I should possibly do the whole "persist far-away chunks to file" thing the usual client does; then there wouldn't be a separate //save, it'd be intemagrated.
08:13:02 <olsner> use mmap:ed memory for everything? :>
08:13:37 <Phantom_Hoover> fizzie, yes, but I want to turn health off.
08:14:25 <fizzie> olsner: Just plain old data-structure dumps won't be combattible with the official client on-disk formats, unfortunately.
08:14:58 <olsner> well, yeah... unless your memory format is compatible
08:17:06 <fizzie> The NBT thing it uses is a bit uncomfortable to work with.
08:17:10 <fizzie> Oh, and it needs to be gzipped.
08:21:22 <olsner> oh, screw that then :) but you can always build converters from your format to official-client format
08:41:46 -!- wth has joined.
08:46:20 -!- wth has left (?).
08:57:48 <Phantom_Hoover> Huh. Dynamite disappears after a short time, and doesn't do anything when punched.
08:59:46 <Phantom_Hoover> Only happens in some chunks.
09:12:31 -!- wth has joined.
09:13:13 -!- wth has quit (Remote host closed the connection).
09:13:35 -!- wth has joined.
09:14:30 -!- wth has quit (Remote host closed the connection).
09:18:18 -!- GreaseMonkey has quit (Quit: ilua).
09:22:44 <Phantom_Hoover> fizzie, your house is next.
09:23:35 <fizzie> I just hope you don't get confused, accidentally connect to the real server, and then explode the *beep* out of it.
09:28:26 <Phantom_Hoover> fizzie, I don't have 5 stacks of dynamite on the real server.
09:28:59 <Phantom_Hoover> Also, the amount of TNT I used on your house seems to have broken the world...
09:31:22 <fizzie> So this is how the world ends.
09:37:29 <Phantom_Hoover> Not with a bang but with a NullPointerException.
09:49:27 -!- quintopi1 has joined.
09:50:10 -!- quintopi1 has quit (Client Quit).
10:20:41 <TLUL|rlybusy> Heh, look at this: http://goo.gl/4yVWN
10:21:14 * TLUL|rlybusy has ruined breakfast for some of you
10:24:50 <Phantom_Hoover> I have HAD breakfast, fool!
10:25:50 <TLUL|rlybusy> it's 5:30, fool
10:26:07 <TLUL|rlybusy> europenub
10:30:01 <fizzie> 12:30, more like.
10:40:30 <Phantom_Hoover> 10:38!
10:43:23 -!- copumpkin has quit (Ping timeout: 240 seconds).
10:43:59 -!- copumpkin has joined.
10:44:01 -!- copumpkin has quit (Changing host).
10:44:01 -!- copumpkin has joined.
10:50:05 <Vorpal> fizzie, oh it saves now? excellent.
10:50:48 <fizzie> It seems to sorta-work for some purposes, but it's all reasonably experimental still.
10:51:26 <Vorpal> fizzie, how does one enable this saving?
10:52:38 <fizzie> There's just a command to dump the currently-in-memory world into a directory. "//save" (which uses "world" in current dir), or "//save dir" if you want to specify where it goes.
10:53:06 <Vorpal> fizzie, also how comes that part of the --help output is localised to Swedish?
10:53:17 <fizzie> That's from glib.
10:53:19 <Vorpal> ah
10:54:26 <Vorpal> fizzie, hm is it able to dump a larger area than that which the server lets you see at a single point in time?
10:55:21 <fizzie> It dumps whatever you have seen during the "session".
10:55:30 <Vorpal> ah nice
10:56:45 <fizzie> I'll probably make it also load an existing dump and in general auto-persist the world on disk at some point, in order to reduce memory use for long-running game sessions where you wander around far and wide.
10:57:07 <fizzie> (Plus that way you'll have the map from the previous session as "background"; should probably shade it or something to indicate it may be out-of-date, though.)
10:57:33 <Vorpal> fizzie, might be a good idea to be able to turn off this tracking in case you don't want that memory overhead. Like when I play on my local test server.
10:58:18 <fizzie> There is currently no way for it to forget any chunks, but there probably should.
10:58:51 <Vorpal> fizzie, any way to tell when it finished saving?
10:58:58 <Vorpal> oh wait, there it comes
10:59:05 <Vorpal> (that took some time)
10:59:12 <fizzie> Yes, it's suspiciously slow.
10:59:14 <Phantom_Hoover> Vorpal, http://imgur.com/3Wjwh
10:59:44 <Vorpal> Phantom_Hoover, well it is your local copy. As long as it doesn't happen on the actual server. *shrug*
11:00:14 * oerjan has a feeling Vorpal wasn't supposed to have noticed that :D
11:00:24 <Vorpal> Phantom_Hoover, I did read scrollback :P
11:00:30 <Phantom_Hoover> I have since corrupted the copy, though.
11:00:30 <Vorpal> err
11:00:31 <Vorpal> oerjan, ^
11:00:46 <Vorpal> Phantom_Hoover, hm?
11:01:14 <Phantom_Hoover> Vorpal, I used an insane amount of TNT on fizzie's place and it corrupted the world data after crashing the server.
11:01:27 <Vorpal> Phantom_Hoover, ouch.
11:01:39 <Vorpal> Phantom_Hoover, did you find fizzie's hidden chest by any chance?
11:01:59 <Vorpal> Phantom_Hoover, another question: do signs and such things work? Chests?
11:02:07 <Vorpal> or do you get empty signs and chests?
11:02:11 <Phantom_Hoover> Vorpal, no, although I did find two of yours.
11:02:18 <Phantom_Hoover> They're empty, though.
11:02:35 <Phantom_Hoover> (Although I still looked inside them on the actual server.)
11:03:26 <Vorpal> Phantom_Hoover, I don't care what you do with your local copy as long as you don't steal anything on the actual server and don't mess it up there either.
11:04:15 <Vorpal> Phantom_Hoover, notice I have never messed up your place so far, so I assume you won't mess up mine. :)
11:04:41 <Phantom_Hoover> I'll be picking apart fizzie's house soon, though/
11:04:53 <Vorpal> Phantom_Hoover, not on the actual server I presume?
11:05:00 <fizzie> Chests will be empty, and signs will be gone completely.
11:05:10 <fizzie> Also furnaces should disappear.
11:05:18 <fizzie> (For some values of "should".)
11:05:25 <fizzie> Possibly just their contents.
11:05:28 <Vorpal> maybe we need an extension like realms or similar. I hope we don't
11:05:34 <Phantom_Hoover> fizzie, they still exist.
11:05:40 <fizzie> Okay, then it's just their contents.
11:05:55 <Vorpal> fizzie, what about crops?
11:06:01 <fizzie> Those should be there.
11:06:14 <Vorpal> fizzie, but isn't the growth stored as aux data?
11:06:18 <Vorpal> do you track that?
11:06:24 <fizzie> Yes, nowadays.
11:06:27 <Vorpal> hm
11:06:44 <fizzie> You can compile-time disable that, though it will also disable //save.
11:06:51 <Vorpal> mhm
11:09:25 <fizzie> What will not be stored in the //save dump are Entities (mobs, items, paintings, vehicles, primed TNT and currently falling sand) and TileEntities (furnace and chest contents, signs, mob spawner details).
11:09:43 <Vorpal> fizzie, wait, paintings are entities!?
11:09:51 <Vorpal> that explains why they don't work on SMP
11:12:27 <Phantom_Hoover> fizzie, FWIW, test 2 of //save was far less positive.
11:12:35 <Vorpal> Phantom_Hoover, what happened?
11:12:42 <Phantom_Hoover> It's a jumbled mess of saved chunks and generated ones.
11:13:00 <Vorpal> fizzie, btw: any progress on the surface-and-heightmap corruption bug?
11:13:11 <Vorpal> Phantom_Hoover, huh, did you save before everything loaded?
11:13:27 <Phantom_Hoover> Dunno. I'll retry...
11:13:33 <fizzie> Vorpal: Not really. I stared at it, but didn't figure it out.
11:13:46 <fizzie> Yes, it's probably best to wait that the situation is "stable".
11:14:21 <fizzie> The hashmap walk will probably fail in the middle of the save (silently, to boot) if it's modified (read: chunk-update for a so far unseen chunk) during the save.
11:15:45 <fizzie> Except that saving and updates are done by the same thread, so that shouldn't happen.
11:15:45 <Vorpal> fizzie, that must happen a lot since the save takes like 20-30 seconds?
11:15:47 <Phantom_Hoover> OK, I have a nice square area.
11:16:28 <Phantom_Hoover> Saved it, will start blowing stuff up.
11:16:55 <Vorpal> have fun in your local copy
11:17:50 <Vorpal> Phantom_Hoover, remember that you only need 5000 TNT going off at once to blow up one obsidian!
11:18:48 <Vorpal> Phantom_Hoover, to make sure they go off at once I suggest redstone wiring. Be sure to time them right when it comes to inverters (so every TNT have the same number of inverters on the path to it)
11:19:19 <Vorpal> however I'm not sure what this will do to the server
11:19:31 <Vorpal> fizzie, is door position saved btw?
11:19:36 <Phantom_Hoover> Erm. Some chunks have spawn-like protection on them.
11:19:54 <Vorpal> Phantom_Hoover, well, where is your local spawn then?
11:20:10 <Vorpal> Phantom_Hoover, presumably the area around that spawn is protected
11:20:20 <Phantom_Hoover> That doesn't really explain it; some other chunks are unprotected.
11:20:27 <Phantom_Hoover> Er, *protected.
11:20:31 <Vorpal> Phantom_Hoover, huh
11:20:43 <Vorpal> Phantom_Hoover, do you have admin rights on your local hmod server?
11:20:59 <Phantom_Hoover> No, but again, that doesn't explain *why* they have the protection.
11:21:14 <Phantom_Hoover> And I got another world-destroying NullPointerException.
11:21:18 <Vorpal> Phantom_Hoover, any weird plugins?
11:21:32 <Vorpal> Phantom_Hoover, I assume you made a copy before starting the local server?
11:21:36 <Vorpal> if not do that for the next time
11:21:39 <fizzie> Phantom_Hoover: The world spawn position may be set to something rather weird.
11:21:58 <Vorpal> fizzie, such as?
11:22:22 <fizzie> Well, it's supposed to be set to wherever you appeared first when connecting.
11:23:01 <fizzie> (I just took the first PLAYER_MOVE packet sent by the server.)
11:23:54 <Vorpal> fizzie, hm
11:23:55 <fizzie> I should probably take the last seen SPAWN_POSITION packet. (Currently I don't look at those at all.)
11:24:19 <fizzie> Though then it'd be the regular spawn, which might easily be outside the //save'd region.
11:24:27 <Phantom_Hoover> Well, I think I found fizzie's secret chest.
11:24:28 <fizzie> Possibly I could just use player position at //save time.
11:24:42 <fizzie> Phantom_Hoover: In the house or in the bunker?
11:24:50 <Phantom_Hoover> fizzie, in the house.
11:24:57 <fizzie> Then it's empty on the real server too.
11:25:05 <Phantom_Hoover> Well, I detonated a TNT charge in it and I found a chest.
11:25:08 <Vorpal> based on checking with the interactive map viewer minutor (rather good, and very quick and responsive) the dump I made worked fine
11:25:15 <Phantom_Hoover> TIME TO SEE HOW THE BUNKER HOLDS UP
11:26:07 <Vorpal> Phantom_Hoover, the TNT room will hold up just fine. And in case of nuclear war I have always planned to block the door up with obsidian. (since steel door won't last for long against TNT)
11:26:44 <Vorpal> fizzie, does the server send the random seed to the client or?
11:26:52 <Phantom_Hoover> Well, I just got into the bunker without even bothering with the doors.
11:27:02 <Phantom_Hoover> The storeroom is ridiculously easy to break into.
11:27:21 <Vorpal> Phantom_Hoover, fizzie's bunker you mean?
11:27:22 <Vorpal> yeah
11:27:43 <fizzie> Yes, it's like single block of stone and one layer of dirt.
11:27:47 <fizzie> And yes, the random seed is sent.
11:28:10 <Vorpal> btw it seems you can get bedrock holes again in recent versions
11:28:27 <Vorpal> you know those underground lakes? And lava lakes at non-standard altitudes?
11:28:43 <fizzie> Yes, I've heard you can get a lake over bedrock.
11:28:47 <Vorpal> they can result in holes in the bedrock when they end up at a suitable altitude for that
11:29:07 <fizzie> Re the random seed, you'll of course get post-halloween map-generation even on blocks that would be pre-halloween on our server, if they don't end up in the //save-dump.
11:30:16 <fizzie> I didn't have mcmap when I started with the bunker, which sort-of explains why it's so near the surface. Didn't bother thinking about where I were inside the mountain.
11:30:35 <fizzie> That's also the reason the storage room is L-shaped; I was making it a long I-shaped one, but I hit the mountain wall.
11:30:58 <Vorpal> heh
11:32:55 <Vorpal> fizzie, an idea for mcmap which would be cool but is not really high priority: ability to load an image and overlay it on terrain with, say, 25% alpha or such. Perfect when you are doing mega-engineering. Currently I did this with cartographer + gimp but cartographer takes ages.
11:33:40 <Vorpal> it is also useful to check that you did indeed get it right between the point of planning it and it being finished. So you can check the dimensions halfway
11:34:41 <Vorpal> (still the map corruption bug is more important than that idea)
11:34:46 <Vorpal> (way more important)
11:36:45 <fizzie> Mhm, well, sure; that could be done.
11:37:06 <Phantom_Hoover> fizzie, found it.
11:37:14 <Phantom_Hoover> In the cactus farm?
11:37:24 <fizzie> Phantom_Hoover: Well done. Though blabbing on-channel is a bit impolite!
11:37:40 <fizzie> Now someone will steal all my treasureres.
11:37:45 <Phantom_Hoover> THAT WAS A LIE I FOUND NOTHING
11:37:46 <Vorpal> fizzie, let me tell you that it would be a sanity saver when working on a 200x200 sized structure. :P And so would fixing the corruption bug when working on the upper parts of said structure
11:38:22 <Vorpal> fizzie, really it was quite easy to find it already with mcmap
11:38:51 <Vorpal> fizzie, I had a hunch it was around there since some time when I had mcmap in mode 2 when visiting you and noticed a 1x2 black thing in the wall
11:45:16 <Phantom_Hoover> Death to the subtree!
11:46:52 <Phantom_Hoover> Well, for the hell of it, I'm going to send down a 5x5 raft of TNT.
11:47:04 <Phantom_Hoover> This will probably break the server.
11:47:04 <Vorpal> Phantom_Hoover, raft?
11:48:35 <Phantom_Hoover> Well, that's that.
11:53:27 -!- TLUL|rlybusy has quit (Quit: *disappears in a puff of orange smoke*).
11:54:56 <Vorpal> hm is the area around spawn never unloaded on servers?
11:55:17 <Vorpal> if so that is the perfect place to place some redstone stuff that should run all the time
11:57:15 <fizzie> "NOTE: This event is not suitable for undergraduate students". I wonder what sort of DIRTY PORNOGRAPHY they're going to show in this three-hour MathWorks-given "Programming Techniques to Speed up MATLAB/Parallel Computing with MATLAB/Symbolic Computing with MATLAB" seminar.
11:57:18 <Phantom_Hoover> What like?
11:58:47 <Vorpal> fizzie, you have a rather strange mind. Personally it seems perfectly innocent to me. Just meaning "this is too technical for that group" or such
11:59:37 <fizzie> There's no chance whatsover that a three-hour PR session is going to be "too technical" for undergraduates; there must be another reason.
11:59:56 <Vorpal> fizzie, PR?
12:00:27 <fizzie> They're not going to come here just out of a desire to be helpful.
12:00:38 <Vorpal> fizzie, are you going to go there?
12:01:04 <fizzie> I don't know. It's three hours I'd never get back; and ineiros attended the previous one and I think it was a bit "meh", IIRC.
12:01:18 <Vorpal> ah
12:01:40 <fizzie> On the other hand, there's a half-hour "Break", which might include free cookies.
12:02:49 <fizzie> On the third hand, I didn't know people were actually doing symbolic stuff with MATLAB; that smells a bit desperate to me.
12:03:52 <fizzie> Apparently they've (MathWorks, that is) bought a symbolic algebra company and "integrated" their product as a MATLAB Toolbox now. (Well, now == 2008 in this case.)
12:03:58 <fizzie> (Cf. http://en.wikipedia.org/wiki/MuPAD)
12:07:39 <Vorpal> heh
12:07:53 <ineiros> fizzie: They had some useful advice.
12:08:18 <Vorpal> ineiros, hi there
12:08:30 <ineiros> fizzie: Though you could get 85% of the information in 15 minutes by reading the slides they provided.
12:08:54 <fizzie> Gawds, I hate the parcel-tracking of the Finnish post office; it has a textfield which auto-empties itself whenever it gains focus. So if you have, say, a parcel ID code in another browser tab in a non-pasteable form, you have to either remember the whole 17-digit number, or transcribe it elsewhere first for pasting. (Because if you write down only part of it, it'll get erased when you switch back to the tab.)
12:12:36 <fizzie> At least it's just the front-page quick-link textfield that does it; the actual tracking-page field doesn't.
12:17:53 <Vorpal> fizzie, in a non-pastable form?
12:18:59 <Vorpal> fizzie, like an image?
12:19:01 <Vorpal> if so wtf
12:19:29 <fizzie> Yes. For some unfathomable reason, the "delivered via the web-e-post-system" hey-we-have-your-parcel notes are scan-like images of the ones they deliver on paper.
12:20:16 <fizzie> I guess they're not really scans, since evince does manage to extract text from the "open as PDF" version.
12:20:37 <fizzie> But the thing shown in the web-system is a bona-fide image.
12:21:27 <fizzie> I guess they are "imagey" because they want the bar code to appear properly, and there are form fields for signatures and whatever on it.
12:21:49 <fizzie> Also, the PDF variants have the dubious distinction of being unprintable from Evince.
12:25:47 <Vorpal> heh
12:26:07 <Vorpal> fizzie, evince respects copy protection?
12:26:09 <Vorpal> I'm surprised
12:26:23 <fizzie> No, it just prints them... well, I'll take a photo.
12:26:31 <Vorpal> fizzie, garbled?
12:26:44 <Vorpal> fizzie, does it work in other pdf viewers, such as okular?
12:26:56 <fizzie> It works with acroread.
12:26:59 <fizzie> Haven't tried others.
12:27:13 <Vorpal> I had problems printing pdf on some computers but not on other ones
12:27:21 <fizzie> It also shows up just fine on-screen in Evince, it's just the printout that turns out like http://users.ics.tkk.fi/htkallas/20110110_001.jpg (the red blocks are my own redactions).
12:27:39 <Vorpal> mostly from my desktop running arch, and it seems to have been related to a cups upgrade.
12:27:45 <Vorpal> (it seems to work again now)
12:28:15 <Vorpal> fizzie, ah different type of garbling
12:28:17 <fizzie> The barcode in the Evince print is correct, so theoretically speaking it might be that I could use that printout to claim the parcel; I've never bothered to try, though.
12:28:30 <Vorpal> fizzie, also I see some was *red*acted ;P
12:28:56 <fizzie> That was just my name and address, and I'm not exactly sure why I bothered, since it's not especially difficult to find out.
12:29:00 <Vorpal> ah
12:29:21 <fizzie> Well, also the sender company's name.
12:31:06 <Vorpal> fizzie, hm. Must have been some dirty MathWorks thing then ;P
12:32:04 <fizzie> You caught me: it was a package full of toolboxes. (Well no, not really.)
12:41:41 -!- cheater- has joined.
12:42:52 -!- cheater00 has quit (Ping timeout: 240 seconds).
13:03:39 -!- cheater- has quit (Ping timeout: 240 seconds).
13:04:53 -!- cheater- has joined.
13:09:21 <Vorpal> Phantom_Hoover, speaking of movecraft and chests: worldedit managed to move a chest with the //move command just fine. So probably isn't too hard
13:19:28 <fizzie> I have a feeling that in these server-side inventory times, chest contents are only sent on-demand, so //save can't dump chest contents unless the player actually looks inside.
13:20:44 <Vorpal> probably
13:23:12 <Vorpal> fizzie, btw if it helps: the map corruption bug doesn't happen only when placing blocks up high through the client. If you use worldedit to set a block at similar altitudes it also happens. So presumably related to chunk update rather than sending "place block here" kind of message
13:24:46 <fizzie> I've been dumping the chunk-update/set-block/multi-set-block messages, but haven't figured it out yet. I think next thing I'll try (later, though) is to dump only those packets that actually cause map-visible changes. The server keeps sending all kinds of inconsequential block-set packets quite often.
13:24:58 <fizzie> Like setting empty blocks to air, or grass to grass, or leaves to leaves.
13:26:10 <fizzie> Was it so that the topo-map also got corrupted?
13:26:34 <Vorpal> fizzie, yes
13:27:05 <Vorpal> fizzie, haven't seen mode 2 or 3 get corrupted though
13:27:35 <Vorpal> fizzie, so maybe it is not a bug in how you handle the messages but in how you update the surface map?
13:27:43 <fizzie> Yes, probably.
13:28:12 <Vorpal> fizzie, tried valgrind? Otherwise I'll do it if you tell me how to make a debug build of mcmap
13:29:30 <fizzie> At least a short "okay, it got corrupted" test got no valgrind errors. But of course most of the memory around there is allocated as largeish blocks, and valgrind can't really notice if I just mess up indexing or something.
13:30:11 <Vorpal> fizzie, valgrind in memcheck mode won't tell if you enter another valid object
13:30:14 <Vorpal> fizzie, so hm
13:30:28 <Vorpal> fizzie, exp-ptrcheck or ptrcheck-exp or whatever it was called
13:30:32 <Vorpal> for the --tool parameter
13:30:41 <Vorpal> (note: probably even slower than the default memcheck)
13:30:50 <Vorpal> that tracks pointers jumping between objects
13:30:56 <fizzie> I'll check at home.
13:31:55 <fizzie> The current surface-map update logic is approximately: if placing a block with type T and Y >= current topmost non-air block: set surface on that point to T and height to Y. Then if T was air: rescan from Y down to 0 to find the highest non-air block. Set surface map to that block, and height to that height.
13:32:19 <Vorpal> fizzie, also something I noticed is that the orientation of the player marker seems to lag behind when you rotate the view while in a boat
13:32:53 <fizzie> Mhm, yes, I don't think I track the "entity-look" packets at all.
13:32:55 <Vorpal> hm
13:33:09 <Vorpal> fizzie, well it does change, it just lags behind a bit
13:34:59 <Vorpal> fizzie, hm what happens if you try to teleport with mcmap while in a boat?
13:35:35 <fizzie> I don't really know how it sends looking-around while in a vehicle. For location once you've "attached" to a vehicle, it will send only (0, -999, 0) or some-such as the location; for the view direction it might be more complicated, since there's both the current boat-direction as well as the player view direction.
13:35:38 <fizzie> I have no idea.
13:35:52 <fizzie> Perhaps an "illegal move" and a blocked teleport.
13:36:00 <Vorpal> fizzie, -999, how strange
13:36:08 <fizzie> Yes, it was some sort of a nonsense value.
13:36:53 <Vorpal> fizzie, that kind of "explains" that "placing block in the 999 bug z plane"-bug I read about recently though. For some very weird values of explains.
13:37:25 <fizzie> I don't know what sort of packets the client sends when you're "driving" a boat, either.
13:37:43 <Vorpal> hm
13:38:15 <fizzie> The usual entity-move packets are all marked as server-to-client only.
13:39:03 <Vorpal> fizzie, in mcmap or in protocol docs?
13:39:16 <fizzie> In protocol docs, though of course those aren't any more official.
13:41:55 -!- oerjan has quit (Quit: Good night).
13:51:05 <Vorpal> fizzie, yeah exploring with mcmap made the system swap trash now
13:51:42 <Vorpal> fizzie, how did you say you disabled this at compile time?
13:52:01 <fizzie> Comment out the FEAT_IFORGETTHENAME #define in config.h and rebuild.
13:52:07 <Vorpal> ah
13:52:13 <fizzie> FULLCHUNK or some-such.
13:52:43 <Vorpal> yeah there is only one there, not too hard to find
13:53:09 <fizzie> The forthcoming "unload far-away chunks on disk" code will probably make it easy to also provide a (runtime) mode where it just forgets faraway blocks. They're always re-sent by the server for the client, anyway.
13:54:20 <fizzie> (Though the hash-map based chunk storage isn't the best one for a "which chunks are outside this box?" query.)
14:06:17 <Vorpal> fizzie, hm is it just me or were the pre-halloween seas much larger than the ones you get nowdays?
14:06:42 <fizzie> I haven't really looked at any large-scale maps.
14:08:51 <fizzie> Heh, there's a (custom) minecraft terrain generator that comes with a FUSE filesystem module; you can mount it into a "world" directory and that way get on-the-fly terrain generator inside an unmodified client. That's quite a clever (if weird) trick.
14:09:18 <Vorpal> not only weird, crazy
14:09:22 <Vorpal> fizzie, link to this?
14:09:31 <fizzie> http://www.nuke24.net/projects/TMCMG/
14:09:38 <fizzie> I don't know about the quality of terrain it generates.
14:10:46 -!- FireFly has joined.
14:12:33 <Vorpal> fizzie, well the current terrain generator in beta have some issues with desert biome edges. Looks like blocks that contain both sand and grass ends up with wrong rotation. So that the edge blocks are rotated away from the desert.
14:12:40 <Vorpal> at least it looks like that on a map
14:13:00 <fizzie> Yes, I've wondered about the edges on the map too.
14:19:09 <Phantom_Hoover> fizzie, that's brilliant...
14:21:42 <Vorpal> Phantom_Hoover, that site needs example screenshots from minecraft of the results of using it
14:22:08 <Phantom_Hoover> Vorpal, it gets off due to being AWESOME
14:22:20 <Vorpal> Phantom_Hoover, hard to tell how awesome it is
14:23:11 <Vorpal> fizzie, uh, fuse is on the todo list? https://github.com/TOGoS/TMCMG/raw/master/doc/todo.txt
14:23:25 <fizzie> It also exists already.
14:23:32 <Vorpal> heh
14:23:41 <fizzie> https://github.com/TOGoS/TMCMG/raw/master/README "Using with GeneratorFS"
14:24:38 <oklopol> fizzie: coordinates by any chance?
14:25:18 <fizzie> oklopol: No coordinates for you! (That is, I don't really know what's causing the crash in the Windows version.)
14:25:34 <fizzie> How does it fail for you, anyway? For me it just seems to go into a 100% CPU-wastage loop and hang up.
14:25:47 <Vorpal> oklopol, didn't it work when you used it last time and other people spoke?
14:30:16 <Phantom_Hoover> Well, I'm going to try that terrain gen thing.
14:31:54 <Phantom_Hoover> Great, fuse requires root access.
14:33:00 <oklopol> fizzie: timeout in mc, and the program just disconnects and crashes after a while afaiu
14:33:01 <oklopol> *afair
14:33:07 <oklopol> but i could check at some point
14:33:16 <oklopol> Vorpal: it worked for a while
14:33:32 <oklopol> so the bug can't just be that when people talk, it crashes
14:33:39 <oklopol> that's kinda important, maybe, fizzie
14:35:10 <fizzie> Yes, it's a bit of a show-stopper, admittedly.
14:35:11 <oklopol> "<fizzie> http://www.nuke24.net/projects/TMCMG/" "<fizzie> I don't know about the quality of terrain it generates." <<< it's a programming language, it generates what you ask
14:35:17 <oklopol> but basically what you can do is
14:35:50 <oklopol> you have the perlin function, which is a pseudorandom function that gives you random constant size bumps, you can scale it, and gets big bumps and small bumps on top.
14:36:27 <oklopol> and things like cutoffs for different kinds of terrains are easy to do as well, although it's one of the horriblest languages out there
14:36:33 <oklopol> made a couple levels for friends
14:36:50 <oklopol> or one level for them, and a couple for myself, rather
14:37:07 <oklopol> fizzie: i meant, knowing that may be important
14:38:03 <oklopol> maybe the most retarded thing is that you actually have the 3d perlin function
14:38:15 <Vorpal> <Phantom_Hoover> Great, fuse requires root access. <-- hm... so it does. But I thought only for the initial mount, and for the unmount. Not in between?
14:38:26 <oklopol> but you can't actually say things like insert the 3d coordinates to perlin, and if it goes over cutoff, put diamond here
14:38:38 <oklopol> so you have to reimplement the whole 3d perlin idea by using 2d perlin
14:38:44 <oklopol> or at least, i couldn't find a better way
14:39:16 <fizzie> Oh. Right, right. I'd try a debugger to see where it's hung up, but I don't quite know how to debug a wine-running executable. I'm sure it's somehow possible, though.
14:40:18 <oklopol> also the "fractal" command is quite a letdown in tmcmg
14:40:23 <Phantom_Hoover> OK, testing it...
14:40:47 <oklopol> it just means you constant amount of levels of smaller and smaller grained bumps
14:40:59 <oklopol> *you add together a constant
14:41:59 <oklopol> unless i misunderstood it, i never actually tried it because if i understood it correctly, it's pretty useless
14:42:51 <Vorpal> oklopol, how comes you know so much about TMCMG?
14:44:27 <oklopol> i know pretty much everything about it because i read the documentation so i could make a level with it
14:44:36 <oklopol> the docs are like one page
14:44:51 <Vorpal> oklopol, did it work well in the end?
14:44:52 <oklopol> you can call the perlin function, and do basic math on the result.
14:45:19 <oklopol> well i just wanted a world mostly full of sand, so yeah i succeeded well enough :D
14:46:23 <oklopol> there were also some oases
14:46:44 <oklopol> so i made a cutoff that added water and dirt
14:46:53 <oklopol> the perlin function idea makes randomness very nice to handle
14:47:48 <oklopol> because like water and dirt can just look for the same cutoff, and add themselves on different levels below sand level
14:48:06 <Vorpal> hm nice worldedit has a //smooth command that you can use to patch up heightmap edges in the scenery. Mostly for the halloween ones. It seems to work decently when the difference in height is 0-20, but doesn't work very well if more than that. At least not when you only select like 10 blocks on each side of the border. (Tried it on artificial border since my local testing server doesn't have any pre-hal
14:48:06 <Vorpal> loween scenery)
14:48:24 <Vorpal> oklopol, nice
14:49:10 <Vorpal> oklopol, so for a given x,y,z perlin always return the same value?
14:49:14 <oklopol> yes
14:49:33 <oklopol> but
14:49:40 <Vorpal> oklopol, any way to add a fourth parameter if you want to randomise different things for the same coord.
14:49:49 <oklopol> you can just add 10000 to the y coordinate to get another perlin function
14:50:12 <Vorpal> oklopol, hm
14:50:18 <oklopol> because you'll actually be using the 3d perlin function to get *heights* of ground at different x, z spots
14:50:33 <Vorpal> hm I see
14:50:57 <oklopol> i don't know if that y+100000 thing was the author's idea originally, to me it seems kinda retarded that you can't just say "put sand where 3d perlin spikes"
14:51:04 <oklopol> but instead
14:51:18 <oklopol> you have to have put sand from 1 to perlin height
14:51:30 <oklopol> i mean, in certain cases the former is much better
14:51:34 <oklopol> like in the case of resources
14:51:38 <Vorpal> heh
14:51:43 <Vorpal> so what PRNG algorithm is this perlin?
14:51:55 <oklopol> it's a well-known algorithm i first heard about when i read that documentation
14:52:02 <Vorpal> oklopol, :D
14:52:05 <oklopol> of course, he doesn't say anything about the grain size
14:52:28 <fizzie> It's a well-known algorithm I first heard about when I was looking at landscape generation ages ago.
14:52:35 <oklopol> so you have to trial and error that out, unless you know what the standard size is in perlin implementations (he surely didn't write the prng himself)
14:52:39 <oklopol> (because he sucks)
14:52:46 <fizzie> But it does appear in things like procedural textures quite often.
14:53:02 <oklopol> do you know how it works?
14:53:19 <oklopol> take a random map of 0 and 1, and add smooth transitions? :P
14:53:22 <Phantom_Hoover> Y'know what would make SSP so much cooler?
14:53:24 <Vorpal> oklopol, you could check the source to find out what the grain size is
14:53:35 <fizzie> "The implementation [of simplex noise] used by TMCMG seems to have lower average amplitude than perlin noise, so you may want to multiply the output more to get a similar effect." -- yes, I don't think either one was written by the author here.
14:53:36 <Phantom_Hoover> If it added the wreckage of a spaceship to your spawn point.
14:53:51 <Vorpal> Phantom_Hoover, being less laggy is like 1000 times more important atm
14:53:54 <oklopol> Vorpal: it's not necessarily easy to see there
14:54:02 <Vorpal> oklopol, true
14:54:04 <Phantom_Hoover> Vorpal, it's not that laggy for me.
14:54:12 <Vorpal> Phantom_Hoover, better cpu maybe
14:54:19 <oklopol> fizzie: was that from the tbtmbmtmbtmb page?
14:54:44 <fizzie> oklopol: From it's readme, yes.
14:55:14 <Vorpal> Phantom_Hoover, SMP works fine but in SSP it stutters a lot. And no it isn't low FPS as such, but seemingly random delays a few times every second. Between the FPS seems decent
14:55:48 <oklopol> that comment is a bit ridiculous, since you'll have to adjust your intuition on what perlin looks like to fit the mc scale anyway
14:56:14 <oklopol> unless he means the hills are actually different shape or something, in which case multiplication doesn't help
14:56:22 <oklopol> oh hmm
14:57:27 <Vorpal> fizzie, that is for simplex. He is just comparing perlin to simplex?
14:57:48 <fizzie> Yes. But it sounds like both implementations come mostly-cribbed from some external source.
14:57:55 <Vorpal> true
14:58:21 -!- MigoMipo has joined.
14:58:23 <oklopol> you can tell by the programming language that he either doesn't have a very firm grip on what he's doing, or the project was a really really quick hack
14:58:29 <Vorpal> the idea of that program is good but the implementation seems poor. I guess it is a perfect fit for minecraft then
14:58:36 <oklopol> hah
14:59:19 <oklopol> the language is just silly, or, well, tell me if you like the way argument passing is handled, in my opinion it was really annoying to use
15:00:20 <Vorpal> wikipedia on perlin noise: "The function has a pseudo-random appearance, yet all of its visual details are the same size (see image)." <-- the image doesn't explain what it means here. Exactly what is a "visual detail" and how do you measure it.
15:00:48 <oklopol> look at the image
15:01:03 <oklopol> i doubt there's a definition that makes it more clear than that
15:01:19 <Vorpal> oklopol, do you mean the width of the white parts such?
15:01:38 -!- Wamanuz has joined.
15:01:40 <Vorpal> which is approximately the same it seems.
15:01:45 <oklopol> yeah
15:02:01 <oklopol> it's not white noise, it's a desert
15:02:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:02:23 <Vorpal> oklopol, uh does "desert" have some technical meaning in this context?
15:02:30 <oklopol> no
15:02:33 <Vorpal> ah
15:02:36 <oklopol> just a desert. not really the best possible way to put it.
15:02:44 <oklopol> because
15:02:58 <oklopol> deserts have waves, not bumps
15:04:07 <Vorpal> hm
15:05:01 <Vorpal> oklopol, deserts can have that but there are different types. Stony ones for example.
15:07:41 <Phantom_Hoover> Vorpal, surely it's clear what visual details means here.
15:07:54 <Vorpal> Phantom_Hoover, but is it rigorous?
15:08:14 <Phantom_Hoover> Vorpal, you could formulate it in terms of self-similarity.
15:08:42 <Vorpal> Phantom_Hoover, hm. That might work yes
15:13:04 <oklopol> i would formulate it based on some sort of second order differential, how fast, on average, the slope is changing
15:13:15 <oklopol> dunno what you mean by self-similarity
15:13:35 -!- BeholdMyGlory has joined.
15:14:23 <oklopol> slope change + average i suppose
15:14:46 <oklopol> well, dunno if that works, it's a characteristic but maybe not really sufficient
15:15:27 <Vorpal> oklopol, I assumed he meant to define it by the fractal nature of it somehow-
15:15:52 <oklopol> it has fractal nature?
15:16:07 <Vorpal> oklopol, hm maybe not.
15:16:11 <Vorpal> your way sounds better
15:16:13 <oklopol> isn't that exactly what it doesn't have
15:16:22 -!- Mathnerd314 has joined.
15:16:34 <oklopol> because if you look at it from further away, it will look *different*, bumps are smaller
15:16:45 <Vorpal> oh good point
15:17:06 <Vorpal> oklopol, so define it by the lack of fractal nature?
15:17:11 <oklopol> :D
15:17:13 <oklopol> maybe, maybe
15:18:18 <Phantom_Hoover> <oklopol> it has fractal nature? ← that's my point, there's no fractalness.
15:18:20 <oklopol> it's just "fractal nature" and fractals in general make my "meaningless bullshit" sensor tick, sort like turing completeness, heard one meaning less too many
15:18:26 <oklopol> Phantom_Hoover: ah
15:18:29 <oklopol> so what Vorpal said
15:18:37 <Phantom_Hoover> You can't make it look the same by scaling up or down.
15:19:27 <Vorpal> Phantom_Hoover, but since it is PRNG won't it eventually cycle? Given a large enough region.
15:19:52 <oklopol> first of all a prng doesn't have to cycle even if it's just a function from integers
15:20:01 <oklopol> second of all, no
15:20:29 <Vorpal> hm
15:20:45 <oklopol> at least not in a sense that would mean grains appear again
15:20:55 <oklopol> say when you zoom
15:21:12 <Vorpal> right
15:21:47 <Vorpal> oklopol, however I guess it might when expanding to a larger region being generated at the same zoom level.
15:21:50 <cheater-> secret maryo is fun
15:22:06 <oklopol> what is true is that if you hold a constant size slot of bits B, compute some random value, and recompute the contents of B to get a new seed, then certainly the random values will cycle
15:22:21 <oklopol> Vorpal: might, doesn't have to tho
15:23:00 <Vorpal> ohm
15:23:02 <Vorpal> hm*
15:23:04 <oklopol> it could increase state as it moves further, and do more complicated computation
15:23:04 <Vorpal> brb
15:23:32 <cheater-> helloklopol
15:23:42 <oklopol> if nth bit can be computed in O(1) after computing the n-1 first ones, then it'll eventually cycle, i think
15:23:54 <oklopol> but not sure if that's amortized
15:24:08 <oklopol> really i'm so tired i might be spouting complete bullshit here.
15:24:15 <oklopol> cheater-: helloes.
15:24:30 <oklopol> *not sure that's true if the O(1) is amortized
15:24:35 <cheater-> oklopol: yes
15:24:46 <oklopol> it's not even true if it's not amortized, actually
15:24:55 <oklopol> for instance you could have it print 01001000100001 etc
15:25:01 <cheater-> oklopol: http://www.secretmaryo.org/index.php?page=game_downloads
15:25:02 <oklopol> or a similar sequence
15:25:05 <oklopol> by moving a marker
15:25:23 <oklopol> that constant sequence is not very random, but at least my theorem is not true
15:25:42 <oklopol> so yeah, spouting bullshit here, you may just as well ignore me till tomorrow
15:25:57 -!- copumpkin has joined.
15:25:59 <cheater-> so the usual situation :D
15:26:08 <oklopol> ?
15:26:15 <oklopol> i'm rarely wrong
15:26:31 <cheater-> no i mean the "ignore until tomorrow"
15:26:35 <cheater-> j/k :3
15:26:40 <oklopol> cheater-: what's that?
15:26:47 <oklopol> why did you give it to *me*?
15:26:55 <cheater-> oklopol: you were in the blasting radius
15:27:00 <oklopol> cheater-: i was just kidding too, i'm very often wrong
15:27:09 <cheater-> oklopol: not true! you're always right.
15:27:19 <oklopol> fuck you man
15:27:25 <oklopol> that's hurtful
15:27:57 <oklopol> gah where's oerjan
15:28:01 <oklopol> i wanna talk to him about semigrops
15:28:03 <oklopol> *groups
15:28:15 <oklopol> oh right, i told him i would, so he's probably in a bunker somewhere
15:31:09 <Phantom_Hoover> What is there to discuss about semigroups?
15:31:28 <Phantom_Hoover> Have all of the things to say about semigroups not already been said?
15:31:59 <oklopol> :D
15:32:03 <oklopol> possibly!
15:33:17 <oklopol> iirc at least one of the branches of the current theory is about a very special case of inverse semigroups, which are exactly semigroups of partial injective functions
15:33:24 <oklopol> *exactly the
15:34:08 <oklopol> should know what that special case was
15:34:23 <oklopol> but anyway it's a reeeeeally beautiful theory
15:34:30 <oklopol> inverse semigroups are much sexier than groups
15:34:48 <oklopol> (they are a superset of groups tho)
15:35:09 <Vorpal> oklopol, out of curiosity, what exactly is a semigroup?
15:35:20 <oklopol> a set and an operation
15:35:24 <oklopol> set is closed under the op
15:35:24 <oklopol> and
15:35:28 <oklopol> associativity
15:35:31 <oklopol> is present
15:35:37 <Vorpal> oklopol, isn't that what a group is? (set + operation)?
15:35:50 <oklopol> associativity means (a*b)*c = a*(b*c)
15:36:01 <Vorpal> I know what associativity is in general yes.
15:36:30 <oklopol> Vorpal: groups always have inverses, and they always have an identity element
15:36:37 <Vorpal> ah
15:36:46 <oklopol> and a semigroup with identity but not necessarily inverses is a monoid
15:37:17 <Vorpal> oklopol, "not necessarily" as in "some members of the set might have inverses"?
15:37:40 <oklopol> yes
15:37:44 <oklopol> it's not forbidden
15:37:53 <oklopol> thus groups are monoids
15:37:58 <oklopol> and monoids are semigroups
15:38:02 <Vorpal> hm
15:38:36 <Phantom_Hoover> I don't get "semigroup".
15:38:46 <Phantom_Hoover> It's more of a third of a group, not half a group.
15:38:48 <oklopol> it's just a name
15:38:57 <Phantom_Hoover> An INACCURATE one!
15:38:58 <oklopol> yeah
15:39:22 <oklopol> it's a weird name, i didn't like it at first, but now it's just a name to me
15:40:24 <oklopol> Vorpal: regular semigroups on the other hand have inverses (with a different definition), but not necessarily an identity element
15:40:30 <Vorpal> oklopol, would the set of all nxn matrices for a given constant n and the operation matrix multiplication be a semi-group?
15:40:41 <oklopol> (in fact if they have an identity, they are just groups)
15:40:47 <Vorpal> (or monid even I guess)
15:40:55 <oklopol> yes
15:41:01 <oklopol> monoid, but not a group
15:41:11 <oklopol> why not a group?
15:41:14 <Phantom_Hoover> oklopol, oh, so it's two thirds of a group.
15:41:17 <oklopol> (homework)
15:41:18 <Vorpal> oklopol, well obviously not a group indeed. Not all elements have inverses
15:41:25 <Vorpal> oklopol, *that* bit is trivial :P
15:41:28 <oklopol> Phantom_Hoover: no monoid is 2/3 isn't it?
15:41:54 <oklopol> Vorpal: what is not trivial then? the fact that matrix multiplication is associative is pretty obvious if you think of them as linear transformations
15:41:56 <Phantom_Hoover> Oh, *regular* semigroups.
15:42:09 <Phantom_Hoover> Wait, how do you have inverses without an identity?
15:42:10 <oklopol> oh sorry
15:42:17 <Vorpal> oklopol, well, I was just wondering if there was some other snag.
15:42:22 <oklopol> Phantom_Hoover: x's inverse is a y such that x = xyx
15:43:04 <oklopol> or maybe it's not strictly obvious that it's associative even if you think about them as linear transformations, but anyhow everyone knows that!
15:43:20 <Phantom_Hoover> oklopol, but not such that forall y, x*x^-1*y = y?
15:43:20 <Vorpal> oklopol, hm x = xyx doesn't imply y = yxy in such a case I guess?
15:43:39 <oklopol> Phantom_Hoover: inverse semigroups are when you assume a *unique* x^-1 such that x and x^-1 are each other's inverses
15:44:15 <oklopol> Vorpal: it doesn't, necessarily, although you can prove that in a regular semigroup, all elements x have a pair y such that x = xyx, y = yxy
15:44:51 <Vorpal> oklopol, what property guarantees that?
15:44:55 <oklopol> in fact, if x = xyx, then x = xyx = x.yxy.x, and yxy.x.yxy = yxy, so yxy is such a pair
15:45:04 <oklopol> Vorpal: my proof guarantees it
15:45:22 <oklopol> i can clarify if you're not used to following that kind of stuff
15:45:38 <oklopol> well maybe that's easy to read
15:45:39 <Vorpal> oklopol, what is the . there in that notation
15:45:45 <oklopol> oh just an explicit *
15:45:49 <oklopol> * was harder to write
15:45:50 <Vorpal> ah
15:45:50 <oklopol> ...
15:45:51 <oklopol> :D
15:46:03 -!- elliott has joined.
15:46:26 <Vorpal> oklopol, you need to drop associativity for that to no longer work I guess
15:46:48 <oklopol> yeah associativity is very crucial, because it allows rewriting strings context-freely
15:46:51 <oklopol> erm
15:46:57 <oklopol> i mean context sensitively
15:47:00 <oklopol> in the sense that
15:47:16 <oklopol> you can rewrite something, and then use parts of it in another rewrite
15:47:17 <oklopol> like
15:47:58 <Vorpal> like?
15:48:18 <oklopol> in xyx = x.yxy.x, i rewrite the x.y.x to x.y.xyx, but then i split the result in a different way to obtain x.yxy.x
15:48:19 <oklopol> i mean
15:48:24 <Vorpal> oklopol, well yes
15:48:34 <Vorpal> oklopol, I never disputed this
15:48:41 <oklopol> not a very good example because i don't actually use that new decomposition for anything, but that was all i had
15:48:57 <oklopol> Vorpal: just trying to make it clear what i mean
15:49:14 <oklopol> because IT WAS SOOOOOOO COMPLEX
15:49:42 <Vorpal> oklopol, not really no
15:49:52 <Vorpal> oklopol, it was clear once you said what you meant by . :P
15:50:33 <oklopol> oh, when i said why associativity is crucial, i wasn't talking about that example, but proving things for semigroups in general
15:50:49 <Vorpal> oklopol, oh okay
15:52:02 <oklopol> so a semilattice is a semigroup such that all its elements are idempotent x^2 = x, and its elements commute, xy = yx; let S be an inverse semigroup, let us prove its idempotents form a semilattice under the semigroup operation
15:52:09 <oklopol> let e, f be two idempotents
15:52:17 <oklopol> consider the unique inverse x of ef
15:52:32 -!- copumpkin has quit (Ping timeout: 246 seconds).
15:52:43 <oklopol> ef = efxef = ef.xe.ef = ef.fe.ef by the fact e and f are idempotent
15:52:44 <Vorpal> oklopol, err can't say I'm very familiar with lattices
15:52:57 <elliott> 21:00:25 <oklopol> according to the guy who deduced how clue works from ski
15:52:57 <elliott> how
15:53:10 <oklopol> also xe.ef.xe = x.ef.xe = xe because x is the inverse of ef
15:53:30 <oklopol> similarly, fx.ef.fx = fx
15:53:41 <Vorpal> hm
15:54:00 <oklopol> now, xx = xe.fx = x because x is ef's inverse => x is an idempotent
15:54:19 <oklopol> but if x is an idempotent, then x^3 = x, and so x is its own unique inverse, which must mean x = ef!
15:54:30 <oklopol> therefore, the product of two idempotents is idempotent
15:54:36 <oklopol> now, let's prove commutativity
15:55:00 <Vorpal> oklopol, so what is a lattice then? (And isn't that word used for different things in different areas of mathematics)
15:55:05 <oklopol> ef and fe are idempotent by what we already proved, ef.fe.ef = ef.ef = ef by the fact e and f are idempotents
15:55:11 <oklopol> similarly, fe.ef.fe = fe
15:55:18 <oklopol> so ef and fe are each other's unique inverses
15:55:25 <oklopol> but again, they are also their own inverses => ef = fe
15:55:27 <oklopol> w.e.d.
15:55:28 <oklopol> *q.e.d.
15:55:32 <Vorpal> right
15:55:48 <oklopol> elliott: not completely, he knew the basic idea.
15:55:52 <elliott> Vorpal: wtf happened to your throne room
15:56:00 <Vorpal> elliott, something happened to it?
15:56:06 <elliott> Blown up.
15:56:06 <oklopol> Vorpal: you don't have to be familiar with lattices, since i was talking about semilattices :D
15:56:11 <oklopol> and i defined them!
15:56:52 <oklopol> a lattice is something more complicated, if you remember what boolean algebras were (the abstract axiom-based definition), lattices are boolean algebras with a few less axioms.
15:56:57 <Vorpal> elliott, I'll check soon. Minecraft.net seems down. But then I suspect PH. He talked about doing it in a local copy saved with mcmap (it has that feature now) but if he did it on the server then fuck him.
15:57:18 <oklopol> basically, there isn't necessarily a "0" or "1", and there is no complementation
15:57:27 <oklopol> just union and intersection
15:58:08 <oklopol> (that have to satisfy a series of axioms, they don't actually have to be unions or intersections on a set though, just arbitrary binary ops that satisfy the axioms)
15:58:10 <Vorpal> wow the lag
15:58:43 <Vorpal> elliott, not blown up?
15:58:54 <oklopol> anyhow that's one of my favorite proofs, why aren't you more excited :(
15:59:19 <oklopol> have to wait for oerjan
15:59:22 <Phantom_Hoover> Vorpal, yeah, I was just playing a trick on him.
15:59:22 <Vorpal> oklopol, hm
15:59:30 <Vorpal> Phantom_Hoover, oh elliott?
15:59:31 <Vorpal> Phantom_Hoover, hah
15:59:38 <elliott> Vorpal: Actually I knew.
15:59:43 <elliott> I just wanted to see if you'd freak
15:59:45 <elliott> *freak.
16:00:13 <Vorpal> elliott, hardly more than you would if told that the cube was blown up (once done). You would probably also go online to check :P
16:01:10 <elliott> Vorpal: No, I'd go online and immediately destroy Mount Vorpal, most likely.
16:01:16 <oklopol> also everyone knows elliott is a crazy mythomaniac
16:01:17 <elliott> NOTE TO PEOPLE WHO WANT TO BLOW UP THE CUBE: probably a bad idea.
16:01:41 <elliott> oklopol: so anyway i designed cled in the logs
16:01:47 <Vorpal> elliott, why on earth. It could have been nailor.
16:01:57 <oklopol> too UNINTERESTING; didn't read
16:02:12 <Vorpal> elliott, and I wouldn't blow it up. I'm not like you.
16:02:30 <elliott> Vorpal: It's more like an incentive for everyone because they'd have to listen to you scream if it happened
16:02:33 <elliott> Phantom_Hoover: So how fucked up is the lighting?
16:02:33 <oklopol> nailor's door was locked :(
16:02:43 <Phantom_Hoover> elliott, not very,
16:02:48 <Phantom_Hoover> Not at all, in fact.
16:03:01 <Phantom_Hoover> Why would it be?
16:03:22 <elliott> fizzie said they were.
16:03:26 <Phantom_Hoover> <elliott> Vorpal: No, I'd go online and immediately destroy Mount Vorpal, most likely. ← did that on the local copy.
16:03:40 <Phantom_Hoover> I ended up corrupting the world file due to Notch-quality engineering.
16:03:42 <elliott> :D
16:04:18 <Phantom_Hoover> I also blew up the wooden house.
16:04:26 <Phantom_Hoover> Wait, the charge in that was what broke it.
16:04:50 <elliott> 02:56:45 <fizzie> I'll probably make it also load an existing dump and in general auto-persist the world on disk at some point, in order to reduce memory use for long-running game sessions where you wander around far and wide.
16:04:52 -!- copumpkin has joined.
16:05:00 <elliott> fizzie: Do it the sane way; just use mmap and let the OS handle it for you.
16:05:22 <Vorpal> elliott, you realise that isn't sane when there is a shitload of small files?
16:05:31 <Vorpal> as opposed to a number of large ones
16:05:42 <elliott> Vorpal: Umm, he should store them in one file and then convert for //save, duh.
16:05:48 <elliott> No reason to be as stupidly-architectured as the client.
16:05:51 <Vorpal> elliott, many files are smaller than the page size. Besides they are gzip compressed.
16:06:01 <Phantom_Hoover> And mcmap's internal data structures are different to MC's internal ones.
16:06:07 <Vorpal> elliott, still, do you suggest storing them uncompressed?
16:06:11 <elliott> Yes.
16:06:15 <Vorpal> elliott, that would be huge.
16:06:22 <elliott> It's just for what you've seen in the current session...
16:06:42 <Vorpal> elliott, no?
16:06:48 <elliott> Yes, it is.
16:06:49 <elliott> See logs.
16:07:03 <Vorpal> yes it sounds like it would be able to load dumps when starting?
16:07:16 <elliott> Yes, and?
16:07:27 <Vorpal> meaning they would be between sessions
16:08:35 <Sgeo> elliott, to get something like Slate working on Windows, would I compile using Cygwin, or MinGW?
16:08:42 * Sgeo barely knows the difference
16:08:58 <elliott> fizzie: mcmap -c on OS X gives me unloaded chunks all around my current location.
16:09:02 <elliott> Sgeo: try mingw first.
16:09:08 <Sgeo> Ok, ty
16:09:16 <elliott> Sgeo: or just use linux, it's unlikely to work on win.
16:10:25 <elliott> fizzie: Dude, is it totally broken for everyone else?
16:14:40 -!- Sgeo_ has joined.
16:16:11 <elliott> Vorpal: to build debug mcmap, make debug=1
16:16:31 <elliott> well
16:16:34 <elliott> make clean; make debug=1
16:17:08 <Vorpal> hm
16:17:16 -!- Sgeo has quit (Ping timeout: 240 seconds).
16:17:22 <Vorpal> elliott, I guess the symlink at ./mcmap will no longer work?
16:17:39 <elliott> I refuse to answer that yourself since you can figure it out in 3 seconds.
16:17:47 <Sgeo_> elliott, do you know Mercury?
16:17:48 <elliott> Also, separating normal and debug builds is a good thing.
16:17:51 <elliott> Actually, you don't need to clean.
16:17:55 <elliott> make debug=1 will put it in _debug.
16:18:01 <elliott> So you can keep your current build.
16:18:01 <Vorpal> elliott, yes it is a good idea to separate them
16:25:48 <elliott> so oklopol
16:25:50 <elliott> cled
16:25:51 <elliott> best or best
16:32:56 -!- Wamanuz has quit (Ping timeout: 264 seconds).
16:54:21 <oklopol> Phantom_Hoover: if you still come back, wanna tell me if i'm on your map?
16:54:50 <oklopol> i didn't go *that* far, and i was thinking settling down
16:55:21 <Phantom_Hoover> oklopol, where'd you go?
16:55:33 <Phantom_Hoover> (I'm blowing up the spawn area right now.)
16:55:40 <oklopol> to a random place
16:55:58 <oklopol> you're blowing it up locally or what?
16:56:03 <Phantom_Hoover> Yes.
16:56:31 <oklopol> just checking, not a good time building a home if you're abandoning the world or something
16:57:18 <elliott> oklopol: cleddy cled
16:57:24 <elliott> also oklopol building a house? weird
16:57:34 <oklopol> "house"
16:58:40 -!- poiuy_qwert has joined.
17:00:11 -!- Vorpal has quit (Ping timeout: 272 seconds).
17:00:13 <cheater-> oklopol: so, i heard i was trying to disprove clue works at all
17:00:34 <oklopol> elliott told you or what?
17:00:47 <cheater-> oklopol: i sometimes do things without knowing. i'm sorry if you felt bad about my sleepwalking argumentative self
17:00:53 <elliott> oklopol: ?
17:00:55 <cheater-> yeah, apparently i have
17:01:13 <oklopol> i didn't feel bad about anything
17:01:16 * elliott compiles a few clue programs
17:01:24 <elliott> shit, you're right, it actually just spews out python errors :D
17:01:34 <elliott> $ python repl.py qsort.clue
17:01:37 <elliott> oh god what is this
17:01:38 <elliott> $
17:02:05 -!- Vorpal has joined.
17:08:25 <elliott> oklopol: omg cled is actually working :D
17:09:04 <elliott> oklopol: http://i.imgur.com/M27fK.png
17:09:12 <elliott> oklopol: this is a graphical representation of {. 0 1 -> 1 . 0 5 -> 5 }
17:09:23 <elliott> i can even move about and ascend and descend the tree and everything
17:09:37 <Sgeo_> No more comma?
17:09:45 <elliott> Sgeo_: that was removed a while ago
17:09:50 <Sgeo_> Huh
17:09:59 <elliott> also i can press cmd+s and it prints the tree
17:10:02 <elliott> nicely-formatted and all
17:10:31 <oklopol> i don't get why i had the comma, i never have those in my languages
17:11:19 <elliott> oklopol: dude http://i.imgur.com/M27fK.png
17:11:24 <elliott> LOOK AT THE BEAUTIFUL UGLY?
17:11:30 <elliott> it's like aardappel
17:11:31 <elliott> except clue
17:12:10 -!- cheater00 has joined.
17:12:40 <elliott> oklopol: in fact it's very similar to aardappel, since in aardappel you name func params with example values :P
17:12:43 <elliott> clue just does it PROPERLY
17:13:53 -!- cheater- has quit (Ping timeout: 240 seconds).
17:15:22 * Sgeo_ blinks
17:15:42 <Sgeo_> I saw ---> as a solid arrow and was wondering how it would be typed in a real program
17:16:40 <elliott> Sgeo_: With cled, -> IS a solid arrow! http://i.imgur.com/M27fK.png
17:17:06 * Sgeo_ is talking about Mercury
17:17:18 <elliott> Sgeo_: Inferior to cled.
17:18:44 <oklopol> yeah, was just thinking that
17:19:00 <Phantom_Hoover> oklopol, still want me to help you on the server?
17:19:13 <elliott> oklopol: was just thinking what
17:19:28 <oklopol> aardappel has a property clue has, and you're making an editor that looks like a non-ugly version of the aardappel editod
17:19:31 <oklopol> *editor
17:19:57 <elliott> oklopol: i wouldn't exactly call that screenshot non-ugly, but at least it doesn't have stupid pictures everywhere :)
17:20:02 <oklopol> Phantom_Hoover: i have forgotten all context
17:20:03 <elliott> also you can't really edit aardappel with the keyboard
17:20:04 <oklopol> oh
17:20:06 <elliott> whereas all of this is keyboard-based
17:20:16 <Phantom_Hoover> oklopol, you were lost?
17:20:17 <oklopol> want you to help me, that i do yes, if you log in, check if i'm on your map
17:20:21 <oklopol> no not really
17:20:26 <elliott> oklopol: in fact I think that editing with this will take quite a bit fewer keystrokes than editing wtih a file
17:21:40 <elliott> oklopol: i gotta say something though
17:21:49 <elliott> oklopol: why can't you have zero-arg functions in clue
17:21:50 <elliott> it's totally nonelegant
17:21:59 <elliott> just a parser bug?
17:22:11 <Sgeo_> \" (had the database
17:22:11 <Sgeo_> community known about maybe types they never would have invented NULLs
17:22:11 <Sgeo_> and wrecked the relational model. . . "
17:22:13 <oklopol> no
17:22:19 <oklopol> i just didn't want zero arg functions
17:22:20 <elliott> oklopol: why not
17:22:36 <fizzie> Meh: GLib-GIO:ERROR:gsocket.c:2347:remove_condition_watch: assertion failed: (g_list_find (socket->priv->requested_conditions, condition) != NULL)
17:22:43 <elliott> oklopol: you can't define _ in clue, that's not very elegant :)
17:22:45 <oklopol> because they are completely useless, and {. -> 3 } looks wrong
17:22:58 <elliott> oklopol: so useless that you defined one as a primitive
17:23:06 <elliott> :P
17:23:16 <oklopol> yeah that used to be useful
17:23:20 <elliott> oklopol: ok well... why can't you return multiple values
17:23:25 <elliott> that would be more symmetrical
17:23:25 <oklopol> and it will be again, when i add higher-order funcs
17:23:35 <oklopol> you should definitely be able to return multiple values
17:23:40 <oklopol> i mean
17:23:48 <oklopol> that's even more important than multiparam
17:23:52 <oklopol> since
17:24:00 <oklopol> multiparam is more dangerous
17:24:03 <oklopol> for explosions
17:24:09 <elliott> oklopol: what would f(multiple value returner(x)) do
17:24:25 <oklopol> in clue, you don't have to think about that
17:24:38 <elliott> oklopol: well right
17:24:40 <elliott> i'm just asking
17:24:48 <elliott> presumably None or whatever
17:24:51 <elliott> and the code gen would arrange for like
17:24:57 <elliott> multiple value returner@2(x)
17:24:58 <elliott> to get the third arg
17:25:00 <elliott> (@0 for first)
17:25:13 <elliott> oklopol: now what i'd really like to be possible
17:25:16 <elliott> is {. -> }
17:25:20 <elliott> zero inputs, zero outputs
17:25:23 <elliott> oklopol: you wanna know why?
17:25:27 <oklopol> why?
17:25:31 <elliott> oklopol: as it is, currently, in cled, the program is not always a valid ast
17:25:42 <elliott> oklopol: when you create an example, it creates two Hole objects (or, well, it will when i code that)
17:25:45 <elliott> one arg, one result
17:25:48 <elliott> these can't be serialised to value clue
17:25:54 <elliott> they're just so that you can enter them, specify what type they are
17:25:56 <elliott> and then specify a value
17:26:05 <elliott> if you could have N inputs and N outputs, it could just have two empty input and output lists
17:26:09 <elliott> and you'd add them at your leisure
17:26:19 <elliott> and the tree would always be a valid clue tree
17:27:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
17:27:47 <oklopol> zero inputs and outputs would work just fine if "side-effects" are ever added, which i might just do at some point, not the binary output stream approach tho
17:28:06 <elliott> oklopol: ew no side-effects, that's so lame
17:28:15 <oklopol> not really
17:28:16 <elliott> oklopol: but uh, basically a function with zero outputs would never be called I think
17:28:18 <elliott> as part of a generated program
17:28:30 <elliott> because you can only call a function as (func@(result number)(params))
17:28:34 <elliott> and since result numbers start at 0
17:28:38 <elliott> there's no valid number for a zero-output function
17:28:43 <elliott> but the point is, it'd make cled more elegant :)
17:28:52 <elliott> since having the tree in an invalid state is just lame
17:29:02 <elliott> it could have you specify the inputs and outputs before it let you do anything else, but that feels annoyingly restricting
17:29:04 <oklopol> it could be called, it's output just wouldn't be numbered
17:29:05 <oklopol> i mean
17:29:13 <oklopol> with the current implementation, no, it wouldn't be called
17:29:19 <oklopol> which is what you meant
17:29:28 <oklopol> so ignore what i said
17:30:02 <elliott> oklopol: well the way i see it is the simplest way to impl it would be to turn every func call from
17:30:05 <elliott> name (params)
17:30:05 <elliott> into
17:30:12 <elliott> name @resultnum (params)
17:30:17 <cheater00> oklopol: ok, if you didn't feel bad, but elliott has given me shit already, maybe i should start talking shit about clue, just to cash in my debt ;p
17:30:24 <elliott> that way you can't have f(multiple args(foo)), it's always f(multiple args@0(foo)) or @1 etc
17:30:27 <elliott> *etc.
17:30:30 <oklopol> cheater00: works for me
17:30:31 <oklopol> :D
17:30:36 <elliott> so since 0 is first result, for a zero input function, there is no valid @ number
17:30:40 <elliott> and it'd never be calle
17:30:41 <elliott> d
17:30:48 <cheater00> oklopol: clue is php
17:31:12 <cheater00> oklopol: worse, clue is c++
17:31:19 <oklopol> okay that's enough kthx
17:31:27 <oklopol> NOEUGH
17:31:30 <oklopol> ENOUGHEONUGENOUGHEOUGNEOUGHE
17:31:40 <elliott> oklopol: what
17:31:40 <oklopol> CAN'T TAKEA IRTSARJTIJIT
17:31:42 <oklopol> what?
17:31:49 <cheater00> what?
17:31:51 <oklopol> huh?
17:31:56 <cheater00> hm?
17:31:57 <oklopol> eh?
17:32:01 <cheater00> what?
17:32:02 <oklopol> excuse me?
17:32:09 <cheater00> i beg your pardon?
17:32:11 <oklopol> sorry?
17:32:13 <cheater00> que?
17:32:16 <oklopol> nani?
17:32:20 <elliott> fag
17:32:28 <cheater00> elliott broke it
17:32:33 <cheater00> he's such a spoil sport
17:32:35 * variable works on a new language
17:32:39 <oklopol> no i thought that was a good ending
17:32:49 <elliott> oklopol: so uh got any suggestions for cled that don't involve holes
17:32:50 <elliott> I mean
17:32:54 <oklopol> elliott: nope!
17:32:56 <elliott> it could be that if you + to add an example
17:32:59 <elliott> you have to say e.g.
17:33:01 <elliott> li
17:33:03 <elliott> meaning "list to integer"
17:33:03 <oklopol> i just play minecraft and be a happy!
17:33:04 <elliott> but eugh
17:33:07 <elliott> so lame
17:33:16 <elliott> oklopol: so um is clue abandoned :p
17:33:36 <variable> Perl is a general purpose language. It's also known to be the only widespread use obfuscated language.
17:33:38 <variable> lulz
17:33:46 <cheater00> oklopol: so do u vant to normalize clue?
17:34:06 -!- poiuy_qwert has joined.
17:34:08 <cheater00> oklopol: i think clue could actually lift off really well, there's nothing else that does what clue does
17:34:10 <oklopol> elliott: no
17:34:19 <elliott> that's funny, this channel has only been witness to "perl is esolang" sentiments about 1000000 times :D
17:34:23 <elliott> oklopol: yay
17:34:24 <oklopol> cheater00: it could totally become mainstream!
17:34:40 <cheater00> and with the current extreme TDD approach and python lifting off it could make me famous
17:34:40 <oklopol> but i'm not working on it today, no
17:34:43 <cheater00> and you too maybe
17:34:44 <oklopol> possibly this week
17:34:49 <variable> elliott, that is on the wiki
17:34:52 <cheater00> but the idea is to come up with a spec
17:34:55 <cheater00> that makes sense
17:35:03 <fizzie> Gnar, I don't get why the Win build fails; it is as if it just decides to close the connection.
17:35:06 <elliott> i think some random anon added it and nobody bothered to remove it.
17:35:17 <variable> elliott, it should be kept - tis true
17:35:22 <fizzie> oklopol: I don't suppose you see any sort of "GLib-GIO" error message on your end when it goes?
17:35:25 <elliott> 'tisn't, not really
17:35:34 <elliott> odd, sure
17:35:47 <elliott> but esoteric shouldn't be applied to every language just because people think it's weird.
17:35:48 <oklopol> fizzie: doesn't ring a bell
17:36:05 <elliott> lol @ cheater00 thinking clue is practical
17:36:07 <fizzie> I get one, but I don't know, it might be just a side-effect of the connection disconnectering.
17:36:19 <oklopol> hey clue is TOTALLY practical
17:36:27 <elliott> totally
17:36:59 -!- copumpkin has quit (Ping timeout: 276 seconds).
17:37:09 -!- copumpkin has joined.
17:37:13 <elliott> oklopol: you have to swear now to always use cled for everything
17:37:14 <cheater00> oklopol: i believe it could become a practical language
17:37:19 <elliott> cheater00: it really couldn't :)
17:37:20 <cheater00> and/or framework for existing languages
17:37:27 <elliott> it seems like it could, before you figure out how it actually works.
17:37:29 <oklopol> i think it could as well
17:37:43 <oklopol> well
17:37:43 <elliott> oh oklopol, you so zany
17:37:46 <cheater00> oklopol: let's ignore the torl
17:37:47 <oklopol> for certain values of practical
17:37:52 <variable> elliott, what should I call my random chance language ?
17:37:59 <cheater00> oklopol: i feel it's a fairly new paradigm
17:38:12 <elliott> "the torl"?
17:38:20 <cheater00> oklopol: i think in fact what you got right now - the language in itself - is just very basic
17:38:28 <elliott> also, it's a new paradigm because it's amazingly stupid ... in that puttign it into practice is nearly impossible
17:38:29 <elliott> *putting it
17:38:40 <cheater00> elliott: it's how retarded people pronounce troll.
17:38:57 <elliott> fitting
17:39:14 <cheater00> oklopol: i think you could have multiple very languages very distant from eachother, derived from clue, just using different inference methods
17:39:36 <cheater00> oklopol: because those inference methods are actually what defines clue
17:39:48 <cheater00> oklopol: hence i was talking about defining your own inference methods
17:40:36 <cheater00> oklopol: i think clue is a bit near to the automatic prover territory, isn't it?
17:41:26 <elliott> cheater00: not raelly.
17:41:27 <elliott> *really.
17:41:38 <elliott> cheater00: also example-based programming isn't really a HUGE NEW IDEA
17:41:45 <elliott> by saying
17:41:50 <elliott> "omg different inference engines"
17:41:51 <elliott> you're saying
17:41:59 <elliott> "chuck out all of the current work on clue and keep the obvious core idea!"
17:42:04 <elliott> which is stupid because the work was the hard part
17:42:37 <cheater00> shush
17:42:50 <elliott> cheater00: um what i'm saying is perfectly true
17:42:58 <cheater00> yes. shush.
17:43:54 <oklopol> business in my pants
17:44:07 <cheater00> oklopol: that's where the business always is.
17:44:10 <oklopol> how's THAT for a slogan?
17:44:51 <cheater00> i'm gonna go make some breakfast and watch the ballet dancers next door
17:45:40 <oklopol> take pix k
17:45:44 -!- pumpkin has joined.
17:46:44 -!- copumpkin has quit (Ping timeout: 264 seconds).
17:52:23 <cheater00> that's illegal
17:52:47 <oklopol> take mental pix
17:53:26 <cheater00> done
17:53:38 <cheater00> with my mental-undress-ray
17:55:50 <Phantom_Hoover> oklopol, don't encourage him.
17:56:08 <oklopol> to do what, send me pictures of ballet dancers?
17:56:16 <Phantom_Hoover> oklopol, to be cheater.
17:56:38 <Phantom_Hoover> Ignore him and we'll all be much happier.
17:56:45 <oklopol> but if someone was encouraging me to be oklopol (elliott), i would be really pleased
17:57:05 <elliott> oklopol: be oklopol
17:57:17 <elliott> Phantom_Hoover: be oklopol
17:57:19 <elliott> cheater00: be oklopol
17:57:21 <elliott> fizzie: be oklopol
17:57:23 <elliott> Vorpal: be oklopol
17:57:26 <elliott> clog: be oklopol
17:57:31 <elliott> elliott: be oklopol
17:57:34 <Phantom_Hoover> elliott, don't tell fizzie to be oklopol!
17:57:48 <Phantom_Hoover> If fizzie is oklopol, who will be fizzie?
17:57:51 <Phantom_Hoover> oklopol, be fizzie.
17:58:04 <elliott> no
17:58:07 <elliott> we don't need fizzie
17:58:09 <elliott> we just need more oklopol
17:58:18 <oklopol> true
17:58:28 <Phantom_Hoover> But there will be wars over interior decoration!
17:58:40 <Vorpal> elliott, Processing... ... ... Error 49123: Mutant produced. Details: Now Vorpol.
17:58:56 <elliott> Is that like Vorpal but intelligent?
17:59:07 <cheater00> i wouldn't want to be someone who has "toilet" as part of their name
17:59:08 <Vorpal> elliott, it is like the most extreme sides of me and oklopol
17:59:34 <cheater00> :D
17:59:39 <elliott> So incredibly stupid and irritating and awesome and intelligent?
17:59:41 <elliott> oklopol: What have you done
17:59:52 <Vorpal> elliott, it was you who did it
18:00:08 <elliott> I blame Vorpal
18:00:12 <oklopol> hahaha vorpol luuuuv it
18:00:14 <Vorpal> elliott, I blame you
18:01:01 <Vorpal> bbl food
18:01:26 <cheater00> oklopol: http://dict.leo.org/ende?lp=ende&lang=de&searchLoc=0&cmpType=relaxed&sectHdr=on&spellToler=&search=klo
18:02:48 <oklopol> i know that word, yes
18:03:07 <elliott> that's funny because
18:03:10 <elliott> oklopol has "lo" in his name
18:03:13 <elliott> so obviously he's low
18:03:14 <elliott> BROW
18:03:15 <elliott> low-brow
18:03:19 <elliott> oklowbrowpol
18:03:32 <elliott> and obviously i'm input and output
18:03:33 <elliott> ell IO tt
18:03:43 <elliott> Vorpal is clearly everyone's PAL
18:03:45 <elliott> and also into VORe
18:03:50 <oklopol> really i could just go back to playing locally, you guys are never here
18:03:54 <elliott> wow this is like reading tea leaves but better
18:04:01 <elliott> oklopol: i was on but then you DIDN'T LET ME VISIT
18:04:10 <Vorpal> elliott, in fact I'm into VORs since I'm into flightsims :P
18:04:12 <oklopol> well obviously i don't want to see any of you
18:04:14 <cheater00> elliott: and i eat ch's?
18:04:32 <elliott> cheater00: no, you're che guevara
18:04:33 <Vorpal> elliott, it's a type of omnidirectional navigational beacon.
18:04:34 <elliott> obviously
18:04:41 <elliott> Vorpal: yes. right. sure.
18:04:41 <cheater00> yes.
18:04:58 <Phantom_Hoover> What about MEEEEEE
18:05:09 <Vorpal> elliott, and you move impure IO (ellIOtt)
18:05:22 <elliott> 18:03 elliott: and obviously i'm input and output
18:05:22 <elliott> 18:03 elliott: ell IO tt
18:05:28 <Vorpal> elliott, oh missed that
18:05:29 <cheater00> Phantom_Hoover: you're j. edgar hoover
18:05:30 <elliott> Phantom_Hoover: You're an ant named Tom.
18:05:46 <Vorpal> elliott, which is over something
18:06:03 <cheater00> elliott: i think you're offtopic
18:06:08 <cheater00> elli OT t
18:06:13 <Vorpal> hah
18:06:22 <elliott> cheater00: I think you're gender-neutral
18:06:23 <elliott> ch E ater00
18:06:24 <Vorpal> that explains the channel
18:06:25 <elliott> also a fan of Spivak
18:06:34 <elliott> fuckin science
18:06:36 <Vorpal> #esoteric OT there
18:06:39 <Vorpal> so off topic
18:06:42 <Vorpal> it all fits
18:06:47 <cheater00> also you drive an audi TT
18:06:51 <elliott> E's OT, Eric.
18:06:52 <elliott> translation
18:06:56 <elliott> He or she is off-topic, Eric.
18:07:01 <elliott> the only remaining question is
18:07:02 <Vorpal> cheater00, no, he is a news agency
18:07:04 <elliott> WHO IS ERIC
18:07:10 <Vorpal> cheater00, (TT is a Swedish news agency)
18:07:15 <elliott> excuse me
18:07:18 <elliott> i just decoded #esoteric
18:07:20 <elliott> can we science please
18:07:28 <Vorpal> elliott, I said it was OT in it yes
18:07:28 <Vorpal> bbl
18:07:32 <elliott> yes
18:07:35 <elliott> but i decoded the whole thing
18:07:39 <elliott> #esoteric -> E's OT, Eric.
18:07:39 <cheater00> maybe it's about Eric the Esot
18:07:43 <elliott> He or she's off-topic, Eric.
18:07:47 <elliott> this fits #esoteric
18:07:48 <elliott> obviously
18:07:49 <cheater00> this channel is about Eric the Esot
18:07:50 <elliott> so who's Eric????
18:07:52 <elliott> maybe oklopol is Eric
18:07:54 <cheater00> the esot.
18:08:40 <Phantom_Hoover> oklopol, what was your name again?
18:08:53 <cheater00> klo
18:08:56 <cheater00> toilet.
18:08:59 <cheater00> he's also an OPO
18:09:08 <cheater00> which makes no sense because there's nothing named OPO
18:09:49 <elliott> i broke it :DDDD
18:10:05 <cheater00> you broke clue?
18:11:04 <elliott> no
18:11:04 <elliott> cled
18:14:42 -!- sshc has quit (Ping timeout: 240 seconds).
18:15:17 -!- elliott has quit (Remote host closed the connection).
18:18:02 -!- elliott has joined.
18:18:45 <elliott> WHAT IST BROKE
18:19:08 <Vorpal> <elliott> #esoteric -> E's OT, Eric. <-- hm
18:19:10 <Vorpal> indeed
18:19:13 <Phantom_Hoover> drakhan's heart.
18:19:22 <elliott> Who.
18:19:27 <Vorpal> <elliott> WHAT IST BROKE <-- your connection was broke before
18:19:30 <elliott> No.
18:19:31 <drakhan> (;
18:19:32 <elliott> Not broke.
18:19:34 <elliott> who is drakhan
18:19:37 <Vorpal> + elliott has quit (Remote host closed the connection)
18:19:41 <elliott> Vorpal: that is correct
18:19:53 <Vorpal> elliott, the TCP connection was broken.
18:19:56 <drakhan> elliott, as for my person - I`m new here
18:20:21 <elliott> hello
18:20:30 <elliott> are you on one of those horrible keyboard layouts where you can't put an apostrophe in properly
18:20:31 <Vorpal> hi
18:20:47 <drakhan> Hi.
18:20:52 <Vorpal> elliott, well /whois says .pl, you could check that
18:21:08 <drakhan> No, it`s my preference
18:21:15 <drakhan> Yeah, Poland.
18:22:05 <elliott> It's your preference to use backticks instead of apostrophes?
18:22:23 <oklopol> even diamonds feel worthless when your items are all made of it for free :(
18:22:32 <drakhan> Is it so important?
18:22:42 <elliott> I'm just curious, since it makes lines harder to read.
18:23:32 <drakhan> A matter of habit.
18:23:37 <elliott> "Somewhat typical of PHP’s API, there are actually thirteen different built-in array sorting functions."
18:26:20 -!- j-invariant has joined.
18:27:38 <elliott> philosophical question
18:27:40 <elliott> if j-invariant's j varied
18:27:42 <elliott> what would happen
18:28:13 <quintopia> PHP's design philosophy is "you should never have to write any real algorithms. any algorithm that actually does something difficult should be built in."
18:28:33 <elliott> quintopia: "Except that, we'll actually implement it badly."
18:28:39 <elliott> Apparently usort() used to be — wait for it — BUBBLESORT.
18:28:40 <j-invariant> elliott: I would stay the same
18:28:56 <quintopia> friend of mine wrote bot in php and i said "it should have a rot13 function" and he determined that the best method to implement it ... would be to make a call to rot13() >_>
18:29:13 <elliott> Apparently they left their CS classes in the three seconds between "This is bubblesort" and "NEVER USE BUBBLESORT."
18:29:26 <j-invariant> Maybe one should have to aquire a liscence to write algorithms
18:29:33 <j-invariant> sort of like a driving liscence
18:29:48 <elliott> j-invariant: european computer mechanics license
18:29:53 <elliott> (there's a european computer driving license)
18:30:00 <elliott> (it is a hilariously easy Microsoft Office thing)
18:30:05 <j-invariant> of course if you have a full proof that you algorithm works you can use a provisional algorithm liscence to have it uploaded into a sandbox
18:30:31 <Phantom_Hoover> Which one is bubble sort?
18:30:35 <quintopia> but it can never be actually used unless it is also experimentally determined to be efficient in practice
18:30:39 <j-invariant> have you ever heard of Dijkstras room?
18:30:40 <elliott> Phantom_Hoover: the horrible one
18:30:55 <Phantom_Hoover> What's the *algorithm*?
18:31:01 <elliott> quintopia: bitch, you can work that out without testing it
18:31:07 <elliott> if your theory doesn't match practice your theory wasn't good enough
18:31:09 <elliott> and you're executed
18:31:10 <quintopia> Phantom_Hoover: the one with the near-guaranteed quadratic runtime in number-of-comparisons
18:31:24 <elliott> Phantom_Hoover: http://en.wikipedia.org/wiki/Bubble_sort#Implementation
18:32:19 <oklopol> "<quintopia> PHP's design philosophy is "you should never have to write any real algorithms. any algorithm that actually does something difficult should be built in."" <<< somehow i doubt it actually has any useful algorithms in it
18:32:20 <quintopia> elliott: sure, but sometimes it's easier to test it on all the possible hardware platforms than prove for each instruction set (and the respective latencies) that the constants in the runtime are low
18:32:26 <oklopol> does it?
18:32:35 <elliott> quintopia: instructions are irrelevant, mostly
18:32:36 <fizzie> oklopol: http://zem.fi/~fis/mcmap-win-fba7271.zip and then just doubleklick the .exe.
18:32:44 <elliott> you don't get "oh this c code is really slow on sparc but really fast on x86"
18:32:57 <elliott> just takes one level of abstraction to even those out
18:33:03 <oklopol> i mean say if i want to turn an NFA into a DFA
18:33:08 <oklopol> what's the php function
18:33:39 <oklopol> that's basically the only thing you'll ever need
18:33:39 <elliott> oklopol: nfatodfa($nfa) OR nfa_convert('Dfa',$nfa,2) (the 2 is to disable the old version of the function)
18:33:43 <quintopia> elliott: it's mainly an issue when involving floating point stuff, memory/disk access, and other I/O
18:34:04 <elliott> or automatonConvt($nfa, getconv('NFA'), getconv('DFA'), $output)
18:34:23 <oklopol> ah thanks
18:34:49 <elliott> oh man how did i break this
18:34:51 <elliott> oklopol: note: lies
18:34:54 <Phantom_Hoover> How do you even fail at quicksort?
18:35:02 <elliott> Phantom_Hoover: qsort is not really something that should be used.
18:35:11 <Phantom_Hoover> What's wrong with quicksort?
18:35:13 <Phantom_Hoover> Recursion?
18:35:17 <elliott> Phantom_Hoover: worst-case performance
18:35:20 <oklopol> and what about that algorithm that solves the two-pair case of pcp?
18:35:21 <elliott> whatever(n^2)
18:35:23 <j-invariant> quacksort
18:35:29 <elliott> --> if you sort arbitrary user-inputted data
18:35:33 <oklopol> the marked version
18:35:33 <elliott> you gon get DDoSed
18:35:36 <elliott> erm
18:35:37 <elliott> or just DoSed
18:35:45 <elliott> Phantom_Hoover: e.g. merge sort is much better
18:35:53 <elliott> oklopol: do merge sort in clue :P
18:36:02 <quintopia> is there an in-place sort with the performance guarantee of merge sort?
18:36:05 <oklopol> i was thinking i'd, but then i not'd.
18:36:21 <oklopol> quintopia: i think there's an in-place merge sort
18:36:40 <oklopol> but that's kinda hairy, if i recall correctly
18:37:06 <oklopol> also you can do quicksort without recursion, i think
18:37:10 <quintopia> yes
18:37:13 <elliott> heap sort is also good
18:37:16 <elliott> i think
18:37:18 <quintopia> but you don't get any better worst case performance
18:37:19 <elliott> well
18:37:20 <elliott> actually
18:37:21 <elliott> you know what
18:37:22 <elliott> just use http://en.wikipedia.org/wiki/Timsort
18:37:23 <oklopol> heap sort is very fast, and can be done in-place
18:37:24 <elliott> :P
18:37:25 <quintopia> heap sort is also not in-place
18:37:27 <elliott> stable mergesort
18:37:30 <quintopia> how
18:37:36 <quintopia> how to do in place oklopol
18:37:38 <oklopol> quintopia; merge sort is worst case n log n
18:37:38 <elliott> i don't think it's in-place but
18:37:39 <elliott> who cares
18:37:42 <oklopol> quintopia: do what in-place?
18:37:46 <elliott> mergesort or if you're feeling fancy, http://en.wikipedia.org/wiki/Timsort
18:37:50 <quintopia> heap sort
18:38:33 <fizzie> quintopia: You can do merge-sort in-place and some variants have even been described by Finnish guys: http://www.diku.dk/hjemmesider/ansatte/jyrki/Paper/mergesort_NJC.ps
18:38:34 <oklopol> oh well you use an array, and 1 (2 3) (4 5 6 7) (8 9 10 11 12 13 14 15) ... where those are the levels of the tree
18:38:44 <elliott> fizzie: Finnish guys, what would we do without them.
18:38:53 <oklopol> you can then multiply index by 2 and either add 1 or 0 to get to children, and divide by 2 to get to daddy
18:39:18 <elliott> aww hi daddy
18:39:20 <elliott> where's mommy
18:39:24 <elliott> is this in a cruel world where all list mothers run away
18:39:25 <elliott> oh god
18:39:26 <elliott> this is the worst
18:39:28 <elliott> your sorting algorithm
18:39:30 <elliott> what has it
18:39:31 <elliott> of
18:40:13 <oklopol> fizzie: lol no wonder a prof at our uni mentioned it
18:40:24 <elliott> it's actually funny how broken this is...
18:40:28 <oklopol> jukka teuhola is a prof at our uni
18:40:33 <elliott> well more like, depressing
18:40:39 <oklopol> katajainen hangs there too
18:40:49 <elliott> diz ir oklopol
18:40:50 <fizzie> oklopol: Yeah, we hear about Kohonen maps all the time at WaveU.
18:40:57 <oklopol> :P
18:41:02 <elliott> fizzie: oh god don't call it that
18:41:14 <elliott> so wait how old is fizzie now, 47?
18:41:38 <fizzie> (Also WSOM 2011 deadline is Jan 14th, submit your full papers now!)
18:41:44 <elliott> 48?
18:41:47 <oklopol> oh it's even PRACTICAL in-place mergesort :D
18:41:49 <fizzie> Twentyseven, I think.
18:41:54 <elliott> 49 then
18:42:06 <elliott> oklopol: i want to see the previous paper, Impractical In-Place Mergesort
18:42:20 <elliott> oklopol: "average O(2^n), but hey, it's in-place mergesort!"
18:42:29 <cheater00> oklopol: can you write fib with clue?
18:42:35 <fizzie> And the earliest draft, "completely useless out-of-place mergesort".
18:42:38 <elliott> cheater00: yes.
18:42:40 <elliott> efficiently too.
18:42:47 <j-invariant> can you write a clue compiler?
18:42:53 <elliott> cheater00: http://www.vjn.fi/pb/p6379491136.txt
18:43:03 <elliott> j-invariant: yes, with more pain than anyone should have to endure :D
18:43:48 <oklopol> j-invariant: has been done, so yeah
18:43:57 <elliott> oklopol: no, IN clue
18:44:00 <oklopol> oh
18:44:01 <elliott> j-invariant means
18:44:07 <oklopol> not in a very nice way
18:44:11 <elliott> :D
18:44:13 <elliott> understatement prize
18:44:15 <oklopol> for instance parsing is nicest to do with mutual rec
18:44:37 <elliott> oh yeah
18:44:37 <j-invariant> is there a clever way to do it though? by reflecting the way clue works
18:44:39 <elliott> that's totally the main reason
18:44:45 <elliott> j-invariant: nope, not even remotely
18:44:50 <elliott> you can't harness it at runtime at all
18:44:54 <j-invariant> darn
18:44:59 <elliott> maybe if you had eval :P
18:45:06 <elliott> clue interp ~ eval
18:45:07 <j-invariant> nothing as crude as eval
18:45:09 <j-invariant> but maybe there could be a slightly modified form of clue
18:45:17 <j-invariant> which allows for a nontrivial self interpreter
18:45:28 <elliott> well it's not really an interp
18:45:32 <elliott> clue is pretty inherently a compiler
18:45:33 <elliott> as much as can be
18:46:18 <oklopol> clue could even be thought of as a metalanguage
18:46:38 <oklopol> (but hopefully people don't)
18:47:50 <j-invariant> Are there some detailed pages on Clue with source code?
18:47:58 <oklopol> not really
18:48:30 <elliott> j-invariant: clue.py :P
18:48:31 <oklopol> there's the esolang page, that's it
18:48:32 <quintopia> isn't the probability of getting O(n^2) runtime for a random-pivot quicksort unbelievably low?
18:48:46 <elliott> quintopia: yes, but the point is that you can't trust your users.
18:48:55 <elliott> it's easy to craft such inputs
18:48:59 <elliott> and this has been done
18:49:05 <elliott> quintopia: also, why bother? merge sort is just as easy
18:49:21 <quintopia> i'm just trying to understand the theory man
18:49:24 <oklopol> merging is almost the same thing as pivoting
18:49:26 <quintopia> i'm not the guy in charge of this shit
18:49:40 <oklopol> just the other one unzips, the other one zips
18:49:41 <quintopia> where can i find these carefully crafted inputs?
18:50:04 <oklopol> quintopia: no he means if you run qs on user-given input on your server, then ppl can give crafted inputs that make slow it up
18:50:31 <oklopol> you can craft such inputs if you know how pivoting is done
18:50:35 <elliott> this shit is well-known btw
18:50:36 <quintopia> oklopol: yes, but i don't see how any adversary could slow a random-pivot quicksort
18:50:44 <quintopia> it seems like random pivoting is unbeatable
18:50:57 <oklopol> indeed it does
18:51:06 <elliott> sure, if you use a crypto rng
18:51:06 <oklopol> i don't know if it *is* though
18:51:08 <elliott> but that seems unlikely.
18:51:10 <elliott> anyway, meh
18:51:12 <elliott> merge sort is nicer anyway
18:51:35 <elliott> also quicksort is unstable
18:51:36 <elliott> which is just lame
18:51:58 <elliott> quintopia: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.44.5903
18:52:35 <elliott> anyway the theoretical worst-case performance is reason enough :)
18:52:59 <quintopia> i was already convinced. you were preaching to the choir
18:53:15 <quintopia> i'm just curious about the theory of DoSing qs
18:53:57 <cheater00> oklopol: you need an easier character to type than > for the "goes to" symbol in clue
18:54:03 <elliott> cheater00: it's ->
18:54:04 <elliott> not >
18:54:08 <elliott> also that is like
18:54:10 <elliott> the stupidest complaint
18:54:10 <elliott> ever
18:54:21 <cheater00> do you realize > is inside -> ?
18:54:33 <elliott> > is trivial to type, if it isn't your layout sucks
18:54:34 <lambdabot> <no location info>: parse error on input `type'
18:54:38 <elliott> also this is an esolang
18:54:43 <elliott> stop bothering us with your petty concerns :|
18:54:48 <cheater00> also you're boring me
18:54:51 <oklopol> cheater00: i have to agree with elliott, that is even less interesting than elliott's additions! :P
18:55:08 <elliott> oklopol: i totally removed branchers, man
18:55:10 <cheater00> oklopol: the most important reason for me to use python over php is that it doesn't use braces :D
18:55:12 <elliott> and implemented your default thing
18:55:16 <elliott> default branch thing
18:55:19 <elliott> shower me with praise
18:55:22 <cheater00> oklopol: being able to type in code without shift is veddy important
18:55:22 <oklopol> elliott: everyone ignored them already :D
18:55:26 <oklopol> well except in ski
18:55:35 <elliott> oklopol: i did #x into x, that's like
18:55:38 <elliott> total improvement
18:55:41 <elliott> also removed the devil ,s
18:55:45 <cheater00> oklopol: can you do map/reduce with clue?
18:55:49 <elliott> no
18:55:51 <oklopol> you can't
18:55:52 <oklopol> but you will be
18:55:55 <cheater00> why can't you?
18:55:57 <oklopol> able to
18:56:00 <elliott> because it has no first-class functions
18:56:02 -!- sshc has joined.
18:56:02 <oklopol> because functions not ho
18:56:07 <elliott> functions not ho
18:56:07 <elliott> indeed
18:56:19 <cheater00> what about map/reduce with a hardcoded reduction
18:56:23 <elliott> yes, that's trivial.
18:56:25 <cheater00> like just +
18:56:46 <oklopol> of course you can do that
18:56:47 -!- luatre has joined.
18:57:00 <oklopol> might even compile fast!
18:57:18 <j-invariant> does Clue have higher order programs?
18:57:23 <oklopol> no.
18:57:24 <elliott> no, as we just said :P
18:57:26 <oklopol> not atm
18:57:33 <elliott> :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; cdr; 0
18:57:33 <luatre> DepthLimitException: depth limit exceeded (sum) :(
18:57:35 <oklopol> they would be easy to add though
18:57:35 <elliott> hm
18:57:37 <j-invariant> no lambda! WHAT!
18:57:39 <elliott> what did i do wrong
18:57:47 <oklopol> i mean ridiculously easy
18:57:51 <j-invariant> oklopol: wow! I was hoping they would be some tremendously difficult addition
18:57:54 <Sgeo_> http://www.google.com/search?rlz=1C1TSND_enUS401US401&sourceid=chrome&ie=UTF-8&q=-lang.org#sclient=psy&hl=en&rlz=1C1TSND_enUS401US401&source=hp&q=lang.org&aq=f&aqi=g-s1g-c1g-ms2g-o1&aql=&oq=&gs_rfai=&pbx=1&fp=ca05a7bb65e82229
18:57:56 <elliott> oklopol
18:57:57 <Sgeo_> There goes my life
18:57:58 <elliott> what did i wrong
18:58:25 <elliott> oklopol: WHAT DID I WRONG
18:58:26 <Sgeo_> I'm going to die from lack of food and sleep due to reading about programming languages for the rest of my short life. Bye all.
18:58:30 <oklopol> essentially you'd have to give an apply function to glue, and have syntax for functions in examples
18:58:38 <elliott> Sgeo_: ah so you won't talk about them?
18:58:39 <elliott> great, have fun
18:58:44 <j-invariant> Sgeo_: aren't most of then rubbish?
18:58:49 <elliott> j-invariant: doesn't matter to sgeo
18:59:11 <j-invariant> Sgeo_: anyway are you going to structure this, like study a new one at the start of each fortnight?
18:59:15 <Sgeo_> No
18:59:16 <elliott> Sgeo_: lol http://www.thorn-lang.org/ is high on that list, which Gregor did something with :P
18:59:19 <elliott> at least i've seen it before
18:59:21 <j-invariant> Sgeo_: why not?
18:59:21 <elliott> and he's listed on the page
18:59:24 <j-invariant> Sgeo_: what is your plan?
18:59:29 <Sgeo_> j-invariant, just keep reading
18:59:30 <elliott> to read them all and not eat or sleep and then die
18:59:31 <elliott> as he stated
18:59:49 <j-invariant> Sgeo_: well maybe you are just fundamentally different than me, but if I did that I would not really get much out of it
19:00:13 <oklopol> elliott: you don't have car
19:00:18 <elliott> oklopol: oh right
19:00:19 <Sgeo_> j-invariant, if by "get something out of it" you mean "be capable of writing a line of code in that language" than yes, well
19:00:22 <Sgeo_> *then
19:00:23 <elliott> oklopol: you need pattern matching :P
19:00:27 <oklopol> car and cdr should be a single command
19:00:33 <j-invariant> Sgeo_: no I didn't mean that
19:00:35 <elliott> oklopol: returning a list, good idea!
19:00:38 <elliott> oklopol: waaaaiit.
19:00:39 <oklopol> haha
19:00:41 <oklopol> :D
19:00:43 <elliott> :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; car; cdr; 0
19:00:43 <luatre> TypeError: unsupported operand type(s) for -: 'float' and '_socketobject' :(
19:00:48 <elliott> ...xD
19:00:50 <oklopol> not exactly what i meant, but why not
19:01:07 -!- luatre has quit (Remote host closed the connection).
19:01:12 -!- luatre has joined.
19:01:13 <elliott> :: sum ~ {. [] -> 0 } sum ~ {:. [1 2 3] -> 6 : [2 3] -> 5 :. [4 5 6] -> 15 : [5 6] -> 11 } sum ~ add; car; cdr; 0
19:01:14 <luatre> Compiled in 0.0132999420166 seconds
19:01:14 <luatre> sum: (a) => [a] | [] => 0 | _ => add(@(cdr(a)) car(a))
19:01:20 <elliott> cheater00: fold ^
19:01:26 <Phantom_Hoover> Is Epigram 1 any good?
19:01:28 <Gregor> elliott: þorn.org is the preferable address :P
19:01:37 <elliott> Phantom_Hoover: No :-P Not compared to Epigram 2!
19:01:43 <elliott> oklopol: why does the recursion become the first argument, that's kinda WEIRD
19:01:48 <Phantom_Hoover> elliott, why?
19:01:51 <elliott> Gregor: omg that works :D
19:01:56 <elliott> Phantom_Hoover: BECAUSE IT'S NOT EPIGRAM 2
19:02:03 <elliott> :. sum([1 2 7 9])
19:02:03 <luatre> 19
19:02:14 <Phantom_Hoover> j-invariant, you know about this stuff.
19:02:18 -!- sshc has quit (Read error: Connection reset by peer).
19:02:21 <elliott> oh thanks Phantom_Hoover
19:02:24 -!- sshc has joined.
19:03:01 <elliott> :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred
19:03:01 <luatre> Compiled in 0.00318908691406 seconds
19:03:01 <luatre> factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b))
19:03:36 <j-invariant> Phantom_Hoover: Everything that went into epigram 1 is spelled out in Conors research papers: Read those instead.. and once you've donen that you can read the new ones about the theory of Epigram 2
19:03:42 <elliott> :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(0 3))))
19:03:42 <luatre> 6
19:03:48 <elliott> ...xD
19:03:52 <j-invariant> Phantom_Hoover: Once you've done all that.. maybe Epigram 2 will be useable!
19:03:53 <Sgeo_> Timber just caught my eye
19:03:54 <elliott> :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(3 factorial loop(0 4)))))
19:03:54 <luatre> 48
19:04:00 <elliott> oh good
19:04:09 <elliott> wait it should be 4 0
19:04:14 <Phantom_Hoover> Hmm. Does MapReduce = map . reduce with optimisations?
19:04:18 <elliott> :. factorial loop(0 factorial loop(1 factorial loop(2 factorial loop(3 factorial loop(4 0)))))
19:04:18 <luatre> 0
19:04:20 <elliott> oh wait no
19:04:21 <elliott> 0 4
19:04:22 <elliott> right
19:04:25 <elliott> :. factorial loop(0 4)
19:04:25 <luatre> 4
19:04:26 <elliott> :. factorial loop(0 5)
19:04:26 <luatre> 5
19:04:34 <elliott> so we want
19:04:34 <Sgeo_> Mobl.... sounds... intersting yet scary
19:04:36 <elliott> factorial loop(rest this)
19:04:37 <elliott> so
19:04:40 <elliott> factorial loop(recurse this)
19:04:49 * Sgeo_ would NOT like to see Mobl take over the world
19:05:11 <elliott> wtf is mobl
19:05:39 <Sgeo_> http://www.mobl-lang.org/
19:05:45 <elliott> :. factorial loop(factorial loop(factorial loop(0 1) 2) 3)
19:05:45 <luatre> 6
19:05:51 <elliott> :. factorial loop(factorial loop(factorial loop(factorial loop(0 1) 2) 3) 4)
19:05:51 <luatre> 2880
19:06:03 <elliott> :. factorial loop(factorial loop(0 1) 2)
19:06:03 <luatre> 2
19:06:19 <Phantom_Hoover> Sgeo_, Christ that's stupid.
19:06:26 <elliott> :: what ~ {. [] -> 0 } what ~ { [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr
19:06:26 <luatre> Compiled in 0.00108098983765 seconds
19:06:26 <luatre> what: (a) => [a] | _ => 0
19:06:29 <elliott> ...
19:06:31 <elliott> oklopol: ^
19:06:37 <elliott> oh
19:06:38 <elliott> :D
19:06:39 <elliott> bad syntax
19:06:47 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr
19:06:47 <luatre> RuntimeError: maximum recursion depth exceeded while calling a Python object :(
19:06:48 <Phantom_Hoover> How many times will people reinvent the same language?
19:06:52 -!- luatre has quit (Remote host closed the connection).
19:06:58 -!- luatre has joined.
19:07:01 <Sgeo_> Same language?
19:07:01 <elliott> :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred
19:07:01 <luatre> Compiled in 0.00199413299561 seconds
19:07:01 <luatre> factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b))
19:07:05 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 5 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr
19:07:05 <luatre> RuntimeError: maximum recursion depth exceeded while calling a Python object :(
19:07:10 <elliott> hmm
19:07:27 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3 4] -> 2880 : [0 1 2 3] -> 6 :. [0 1 2 3] -> 6 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr
19:07:27 <luatre> RuntimeError: maximum recursion depth exceeded while calling a Python object :(
19:07:38 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2 3] -> 6 : [0 1 2] -> 2 } what ~ factorial loop; 0; car; cdr
19:07:38 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
19:07:41 <elliott> ...
19:08:35 <elliott> :. factorial loop(factorial loop(0 1) 2)
19:08:36 <luatre> 2
19:08:49 <elliott> :. factorial loop(0 1)
19:08:49 <luatre> 1
19:08:53 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2] -> 2 : [0 1] -> 1 } what ~ factorial loop; 0; car; cdr
19:08:54 <luatre> RuntimeError: maximum recursion depth exceeded while calling a Python object :(
19:08:57 <elliott> wtf????
19:08:59 -!- luatre has quit (Remote host closed the connection).
19:09:04 -!- luatre has joined.
19:09:07 <elliott> :: factorial loop ~ {. 0 6 -> 6 . 0 24 -> 24 } factorial loop ~ {:. 3 1 -> 6 : 2 3 -> 6 :. 1 6 -> 6 : 0 6 -> 6 } factorial loop ~ multiply; pred
19:09:08 <luatre> Compiled in 0.00293016433716 seconds
19:09:08 <luatre> factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b))
19:09:19 <elliott> :: what ~ {. [] -> 0 } what ~ {:. [0 1 2] -> 2 : [0 1] -> 1 } what ~ factorial loop; 0; car; cdr
19:09:20 <luatre> RuntimeError: maximum recursion depth exceeded while calling a Python object :(
19:09:22 <elliott> oklopol
19:09:47 <oklopol> elly
19:10:02 <Sgeo_> "Like many programmers with a pulse, I am compelled to create my own programming language."
19:10:06 <Sgeo_> http://jolt-lang.org/
19:10:08 <oklopol> do you want me to tell you what's wrong?
19:10:17 <elliott> oklopol: it stack overflows for no apparent reason
19:10:19 <elliott> but yes
19:10:20 <elliott> i do
19:10:59 -!- pikhq has joined.
19:11:16 -!- pikhq has quit (Remote host closed the connection).
19:11:25 <oklopol> hmm
19:11:56 <oklopol> i don't see anything wrong
19:12:25 <oklopol> :. factorial loop (0 6)
19:12:25 <luatre> 6
19:12:33 <oklopol> :. factorial loop (10 1)
19:12:34 <luatre> 3628800
19:12:36 <oklopol> erm
19:12:43 <oklopol> so what gave an error exactly?
19:12:44 <Sgeo_> Plain language!
19:12:46 <oklopol> "what"?
19:13:13 <elliott> oklopol: yes
19:13:17 <oklopol> the examples for what make no sense, so there's really no telling what the code will do
19:13:25 <oklopol> erm
19:13:40 <oklopol> except you get a runtime error during compilation
19:13:46 <oklopol> so obviously
19:13:54 <oklopol> factorial loop is called with parameters what make it infloop
19:14:01 <oklopol> and you don't catch exceptions anymore
19:14:14 <oklopol> (incidentally, this is why i caught theem)
19:14:15 <oklopol> *them
19:14:33 <elliott> oklopol: i'll catch stack overflow exceptions then?
19:14:39 <oklopol> hmm yeah prolly
19:14:56 <Sgeo_> Dear Pika:
19:15:01 <Sgeo_> "Mersenne Twister based pseudorandom number generator." is not a language feature.
19:15:07 <Sgeo_> In conclusion, fuck you.
19:15:12 <Sgeo_> http://www.pika-lang.org/features/
19:15:50 <coppro> Chu
19:16:20 <Gregor> Sgeo_: Technically that depends :P
19:16:39 <Gregor> Sgeo_: If it has a random-based object system ... :P
19:16:42 <j-invariant> Sgeo_: why not?
19:17:22 <Gregor> j-invariant: Language features are features of the LANGUAGE, not libraries provided.
19:17:37 <Sgeo_> Well, the features page doesn't say _language_ features
19:17:46 <Sgeo_> It also doesn't list every single library
19:17:46 <Gregor> Oh, it didn't? :P
19:17:50 <j-invariant> the different between language and library is fuzzy
19:18:00 <Gregor> Well, in that case, j-invariant: That's an extremely boring feature :P
19:18:05 <j-invariant> hehe
19:18:41 <Sgeo_> We have a library that lets you retrieve content via HTTP!
19:18:55 -!- pikhq has joined.
19:19:25 <Gregor> Why you should use my language: Ships with binding to libcurl.
19:19:27 <Sgeo_> The rest of Pika is boring
19:19:39 <Gregor> Sgeo_: Everything except for the random number generator? ;)
19:20:13 <elliott> hey Sgeo_
19:20:14 <elliott> use Apex
19:20:15 <elliott> it's the best
19:20:35 <Sgeo_> Well, it's in contrast to those languages who ship with stdlibs who use the xkcd RNG
19:20:55 <Sgeo_> ...on-demand?
19:21:38 <Sgeo_> It's. A. Language. For. Code. That. Runs. On. salesforce.com.
19:21:38 <elliott> what?
19:21:46 <elliott> what
19:21:59 <Sgeo_> Enterprise Language 101
19:22:06 <elliott> you know, every time you talk to us about languages
19:22:10 <elliott> it's time you could spend googling more
19:22:14 <Sgeo_> elliott, you don't mean http://wiki.developerforce.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language do you?
19:22:18 <Sgeo_> That's what Google came up with
19:22:21 <elliott> no, i don't
19:22:46 <Gregor> Hahah, reading that.
19:22:53 <elliott> i mean Apex, the expressive, functional imperative language from Cat's Eye Technologies
19:23:22 <Gregor> 'Like all aspects of salesforce.com’s application and platform technologies, Apex Code is “on demand,” running entirely on Force.com without requiring any local servers or software' <-- this ... is what they mean? LAAAAAAAAAAAAAAAAAAWL
19:24:55 <Sgeo_> Yeah, it's the first language that HAS to be run on the cloud
19:25:05 <Sgeo_> (Probably not)
19:26:22 <Sgeo_> elliott, I can't find Apex on cpressey's site
19:26:36 <elliott> it's too secret. or too vapourware.
19:26:45 <elliott> also mostly formulated by me.
19:27:59 -!- cheater00 has quit (Read error: Connection reset by peer).
19:29:59 -!- Wamanuz has joined.
19:32:11 <j-invariant> Phantom_Hoover: how come you are interested in it anyway?
19:32:20 <elliott> in what
19:32:27 <elliott> oh epi
19:32:33 <pikhq> Gregor: APPLIED PHLEBOTINUM IS BETTER THAN LOGIC
19:32:38 <j-invariant> The consensus is: " Let’s briefly look at some non-solutions to the software problem. First, we can’t just prove everything to be correct. This is way too expensive and most real systems lack formal specifications."
19:32:46 <j-invariant> " At present, it is not even clear that the correct behavior of large systems can be formalized at all, though hopefully this will be possible someday (exercise for the reader: formalize Asimov’s Three Laws in HOL, Coq, or a similar language)."
19:32:53 <elliott> why is this broken, what manner of witchery is this
19:32:54 <j-invariant> Everyone seems to agree with this (tripe)
19:33:07 <elliott> j-invariant: eh?
19:33:29 <elliott> WHAT MANNER OF WITCHERY IS THIS!!!!!!
19:33:37 <j-invariant> elliott: it is exceptional to find people that seriously think proofs are sensible
19:33:43 <elliott> wtfwtfwtfwtfwtfwtfwtwfwtwffwtwftwfwwffwtwfwtfffffff
19:33:45 <j-invariant> or useful etc etc
19:34:00 <elliott> j-invariant: you can find them interesting without finding them useful :) i.e. computer-based systems
19:34:02 <pikhq> j-invariant: Clearly math education should be mandatory.
19:34:17 <elliott> i'm not entirely sure that Coq/Epigram/etc. are useful for proving theorems. for writing verified software, of course.
19:34:22 <elliott> but regardless, they are interesting.
19:34:38 <elliott> ohh
19:34:42 <elliott> i like how tk eats up all exceptoins
19:34:44 <elliott> and doesn't print them
19:34:45 <elliott> *exceptions
19:34:46 <elliott> well Tkinter
19:34:49 <elliott> it's very nice
19:35:10 <elliott> oh dear, that is a problem
19:36:34 <elliott> oklopol: can you give your executive opinion on a part of cled
19:36:41 <j-invariant> pikhq: huh? it is
19:36:52 <elliott> j-invariant: no it isn't
19:36:54 <elliott> arithmetic education is
19:36:59 <elliott> hmm it's kinda broken when you tab away... todo, fix
19:37:41 <pikhq> j-invariant: That's no more math education than the alphabet is literature education.
19:38:15 <j-invariant> Is it possible to teach math?
19:39:07 <pikhq> Quite likely. Is it possible without a mathematician becoming supreme ruler of the Department of Education (or your local national equivalent)? Probably not.
19:39:29 <elliott> oklopol i need opinion
19:39:36 <pikhq> Because almost everyone is convinced that we already teach math, and quite well...
19:40:22 <j-invariant> haha they must be crazy
19:41:29 <Phantom_Hoover> j-invariant, ...you didn't know this?
19:41:46 <j-invariant> didn't know what?
19:41:52 <Phantom_Hoover> Were you homeschooled for your entire life until you moved out into a cave in the wilderness?
19:41:57 <elliott> xD
19:42:01 <Phantom_Hoover> That maths education is nothing of the sort.
19:42:01 <j-invariant> I didn't pay much attention in school
19:42:44 <j-invariant> Phantom_Hoover: anyway I am curious how&why did you get interesetd in epigram
19:42:53 <Phantom_Hoover> It seems... interesting.
19:42:57 <j-invariant> heh
19:44:28 <coppro> combinatorics is interesting
19:45:36 <pikhq> Man. I just now realised that IPv4 depletion is literally happening *this month*...
19:46:00 <Phantom_Hoover> Awesome.
19:46:10 <coppro> blargh
19:46:14 <pikhq> Well. It *could* happen early February.
19:46:47 <Phantom_Hoover> So wait, what was P(civilisation collapses) again?
19:46:54 <pikhq> 0.
19:47:15 <pikhq> I'd suggest not being in the stock market, though.
19:47:26 <pikhq> Or strategically selling short.
19:47:53 <Phantom_Hoover> But P(civilisation collapses | the stock market fluctuates) is rather high, no?
19:48:08 <pikhq> Quite high, yes.
19:48:26 <elliott> it won't have that big a deal
19:48:29 <elliott> NATs are not very hard to set up really
19:48:37 <elliott> and remember that most hosting companies and the like
19:48:42 <elliott> already have way more IPs than they use
19:48:51 <pikhq> elliott: Telecoms are boned.
19:48:55 <elliott> so it's not like people are gonna see "lol no you can't have a server we have no ip to give it"
19:48:57 <elliott> pikhq: oh sure
19:48:59 <elliott> i'm just saying that
19:49:03 <elliott> everyone already has IPs to spare
19:49:05 <elliott> so it won't be a _huge_ deal
19:49:29 <pikhq> Except that adoption of IPv6 will be really expensive at this point, and it will be mandatory pretty soon.
19:49:50 <pikhq> Mostly for the telecoms.
19:55:11 <pikhq> Hah.
19:55:44 <pikhq> After depletion, RIPE and AfriNIC will only allocate IPv4 to entities with IPv6 allocations.
20:00:04 <coppro> lol
20:10:10 <j-invariant> was there something derisive about measuring code in KLOCs?
20:10:34 <elliott> j-invariant: eh?
20:22:00 <j-invariant> elliott: http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7740?context=3
20:22:58 <elliott> j-invariant: heh
20:23:04 <elliott> j-invariant: i think they're right though ... _for now_
20:23:09 <j-invariant> 0.999.. = 1 therefore math is not perfect
20:23:27 <elliott> j-invariant: I have a feeling that with the progress, probably a... loss of precision will be had
20:23:43 <elliott> j-invariant: i.e., it turns out that if you prove a kernel, like, "only 80%" correct, it takes only 30% of the work
20:24:01 <elliott> "After depending typing, the only type of bugs left are those that are not provable, like if prime numbers ever end and such." lol wat
20:24:21 <j-invariant> elliott: well generally you would only prove the very very awkward difficult parts: So 80% correct would be 99% as hard
20:24:41 <elliott> j-invariant: Perhaps! ...but then perhaps not, you see people writing unit tests for every damn thing
20:24:42 <j-invariant> elliott: LOL
20:24:54 <elliott> j-invariant: Anyway, consider, the very very awkward difficult parts tend to consist of multiple subproblems
20:25:02 <elliott> j-invariant: so if you prove most of those but not all
20:25:08 <elliott> j-invariant: or if you prove that all of them apply in, like, 80% of cases
20:25:35 <elliott> j-invariant: like, I can imagine some proof system that lets you state some property on, like, floats, and as long as it can experimentally verify it for a few thousand random values, and also pathological ones like denormalised numbers
20:25:39 <elliott> then it lets it be accepted as a theorem
20:25:43 <elliott> useless, mathematically
20:25:47 <elliott> but for proving software, potentially very useful
20:27:15 <j-invariant> ?
20:27:19 <j-invariant> that's called testing elliott
20:27:24 <j-invariant> peopl already do that
20:27:44 <elliott> j-invariant: not really
20:27:49 <elliott> j-invariant: I mean, say you have a big, formal proof
20:27:54 <elliott> j-invariant: that relies on some twiddly property of floating point numbers
20:28:03 <elliott> j-invariant: if you can prove that, using that theorem
20:28:14 <elliott> and then have that hypothesis about floating points "experimentally" demonstrated
20:28:17 <elliott> then it allows the proof
20:28:28 <elliott> that's a whole lot better than just testing the component
20:33:04 <elliott> j-invariant: lol ololol ololo olol ololololo lololoo
20:33:06 <elliott> j-invariant: "Does computer science completely miss the point of a computer -- namely, that it is a creative tool?"
20:33:19 <elliott> One could argue that computer science is like a "pen science" where scientists find ways to write as quickly as possible with a pen and to fill up a page with as much text as possible.
20:33:19 <elliott> That would of course completely miss the point of a pen.
20:33:19 <elliott> One could say something similar about computer science with its focus on time and space efficiency of computations.
20:33:21 <elliott> The computer -- like a pen -- is a creative tool and the focus should be on the invention of new kinds of software applications -- not on making existing ones more efficient.
20:33:22 <elliott> Universities should have a creative field of study -- distinct from computer science -- for novel uses of computers.
20:33:24 <elliott> roffflllll
20:33:26 <elliott> xDD
20:33:46 <elliott> worst thing ... ever
20:33:51 <j-invariant> XD
20:34:02 <elliott> how did that get on /r/compsci
20:34:26 <elliott> j-invariant: i like how they think computer science is just about like
20:34:27 <elliott> optimising programs
20:34:40 <Phantom_Hoover> "hat does the /r
20:34:46 <Phantom_Hoover> *What does the /r mean?
20:34:57 <elliott> Phantom_Hoover: subreddit
20:34:59 <elliott> it's part of the url
20:35:02 <elliott> reddit.com/r/subredditname
20:39:16 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:39:21 <elliott> oklopol you'll love this program
20:39:26 <elliott> do you know why oklopol
20:44:44 <j-invariant> hm
20:44:49 <j-invariant> elliott: where was that
20:44:49 * Sgeo_ accidentally mentally dropped the why
20:44:57 <elliott> j-invariant: /r/compsci
20:45:01 <elliott> Sgeo_: what
20:45:03 <elliott> oh
20:45:03 <j-invariant> yeah I know
20:45:09 <elliott> j-invariant: it's on the front page
20:45:12 <elliott> of compsci
20:45:14 <j-invariant> I looked there
20:45:34 <elliott> it's #3
20:45:37 <elliott> so you're not looking quite hard enough :D
20:45:41 <elliott> http://www.reddit.com/r/compsci/comments/ez4op/does_computer_science_completely_miss_the_point/
20:46:24 <j-invariant> what thehell? that's not on my front page at all
20:47:01 -!- Phantom_Hoover has joined.
20:47:37 <j-invariant> elliott: looks like the poster actually agrees with that stuff http://www.reddit.com/r/compsci/comments/ez4op/does_computer_science_completely_miss_the_point/c1c2upo
20:47:43 <elliott> j-invariant: i have a feeling the poster asked the question
20:47:45 <j-invariant> elliott: P.S. did you not notice this is voted zero :|
20:47:47 <quintopia> i just realized i haven't used ftp in so long that i don't have a proper ftp client installed. any recommendations?
20:47:54 <elliott> j-invariant: i did yeah
20:47:59 <elliott> quintopia: ftp(1)
20:48:07 <quintopia> meh
20:48:16 <elliott> it's trivial to use
20:48:36 -!- sebbu2 has joined.
20:48:39 <quintopia> yeah, but it requires me to remember the command names. i want drag and drop for instant gratification
20:48:59 <quintopia> read: i'm lazy, motherfuckers
20:51:20 -!- sebbu has quit (Ping timeout: 272 seconds).
20:54:33 <elliott> IRONY: http://i.imgur.com/DkbPs.png
20:54:51 <elliott> (after someone got into his account in the thread an xss was discovered in stackoverflow)
20:56:24 <Sgeo_> It's ok, he never uses StackOverflow anyway
20:57:08 <j-invariant> jeff atwood is such a dork
20:59:20 <elliott> *thread where an
20:59:33 <elliott> i wish i could delete jeff atwood's face
20:59:34 <elliott> or all of him
21:00:36 <elliott> j-invariant: have you written any clue programs yet?
21:00:51 <j-invariant> no I am waiting for the wiki page: please write it!
21:01:21 <elliott> j-invariant: http://esolangs.org/wiki/Clue_%28oklopol%29
21:01:30 <elliott> j-invariant: it is not very complete... e.g. bags can also contain objects
21:01:33 <elliott> but it's a primer :>
21:01:42 <elliott> oh wait it does say that
21:01:44 <elliott> ok just read it then
21:02:04 <j-invariant> I should write a Clue compiler
21:02:18 <elliott> j-invariant: uh, "good luck"
21:02:27 <elliott> j-invariant: clue.py is 717 lines
21:02:55 <j-invariant> obviously the problem is that you're using python
21:03:00 <elliott> j-invariant: :>
21:03:17 <elliott> j-invariant: writing clue programs is great fun though, you struggle through and go wtf, but the moment the compiler spits out the right function
21:03:22 <elliott> it feels like it was so easy
21:03:25 <elliott> and your code is so simple
21:04:26 <elliott> ::: http://pb.vjn.fi/p9634238413.txt
21:04:26 <luatre> Downloading...
21:04:27 <luatre> Compiling, just a minute...
21:04:27 <luatre> DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :(
21:04:33 <elliott> aw man ...
21:04:38 <elliott> comments don't actually work
21:04:56 <j-invariant> so how do you compile clue?
21:05:12 <elliott> j-invariant: difficultly...
21:05:19 <elliott> j-invariant: it's basically advanced brute force :)
21:05:23 <j-invariant> it's not just breath first generate all programs?
21:05:29 <elliott> no way
21:05:39 <elliott> there's a reason there's more than one {} branch in each function
21:05:42 <elliott> well, most functions
21:05:47 <elliott> i.e., there's a reason you do that
21:05:49 <elliott> there's a reason the bag exists
21:05:53 <elliott> and there's a reason :. : exist to denote recursion
21:06:05 <j-invariant> okay this is getting complicated
21:06:25 <elliott> j-invariant: hehe
21:06:52 <elliott> j-invariant: yeah there is basically no way you could do recursive functions (only flow control other than branching really) with a stupid search like that
21:06:58 <elliott> the search is stupid, not the idea, that is
21:07:08 <j-invariant> hm
21:07:56 -!- luatre has quit (Remote host closed the connection).
21:08:01 -!- luatre has joined.
21:08:02 <elliott> ::: http://pb.vjn.fi/p9634238413.txt
21:08:02 <luatre> Downloading...
21:08:03 <luatre> Compiling, just a minute...
21:08:03 <luatre> DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :(
21:08:06 <elliott> wtf
21:08:14 -!- luatre has quit (Remote host closed the connection).
21:08:19 <j-invariant> ooh this is a clue bot!
21:08:19 -!- luatre has joined.
21:08:21 <elliott> ::: http://pb.vjn.fi/p9634238413.txt
21:08:21 <luatre> Downloading...
21:08:22 <luatre> Compiling, just a minute...
21:08:22 <luatre> DepthLimitException: depth limit exceeded (:..: factorial stack-hogging factorial) :(
21:08:26 <elliott> don't use it i'm busy fixing it :>
21:08:32 <j-invariant> :P
21:08:39 <elliott> wait what ...
21:08:52 <elliott> o, lol
21:10:44 <elliott> hey j-invariant
21:10:52 <elliott> how many ways can you represent 6, if . is +1 and : is +2
21:10:59 <elliott> and those are the only symbols you can use
21:11:39 <j-invariant> i don't know what . and : do
21:11:47 <j-invariant> oh they are symbols for +1 and +2
21:11:58 <j-invariant> well ...... is 6
21:12:03 <j-invariant> ::: is 6
21:12:03 <luatre> Downloading...
21:12:04 <luatre> ValueError: unknown url type: is 6 :(
21:12:19 <Gregor> ...
21:12:20 <elliott> j-invariant: yep
21:12:22 <elliott> but you can combine them
21:12:22 <Gregor> wtf
21:12:29 <elliott> Gregor: it's a cluebot.
21:12:32 <j-invariant> :.... .:... ..:.. ...:. ....:
21:12:32 <luatre> Downloading...
21:12:33 <luatre> URLError: <urlopen error unknown url type: .> :(
21:12:33 <Gregor> http://lemonparty.com
21:12:41 <Gregor> It's a fail :P
21:12:42 <elliott> Gregor: xD
21:12:50 <j-invariant> ::.. <-- can't be bothered drawing all these but there are 4!/2!2! of them
21:12:50 <luatre> Downloading...
21:12:51 <luatre> ValueError: unknown url type: <-- can't be bothered drawing all these but there are 4!/2!2! of them :(
21:13:01 <j-invariant> ::: http://lemonparty.com
21:13:01 <luatre> Downloading...
21:13:01 <luatre> Compiling, just a minute...
21:13:02 <luatre> Compiled in 3.00407409668e-05 seconds
21:13:05 <elliott> xD
21:13:07 <j-invariant> XD
21:13:09 <j-invariant> LOL
21:13:27 <elliott> Elliott-Hirds-MacBook-Air:~ ehird$ curl http://lemonparty.com
21:13:28 <elliott> <script>top.window.location.href="http://www.livejasmin.com/listpage.php?psid=loupizz&pstour=t10&psprogram=REVS";</script>
21:13:32 <elliott> hardly surprising it was fast then
21:13:49 <j-invariant> elliott: 1 + 5!/1!4! + 4!/2!2! + 1
21:14:21 <elliott> j-invariant: ok, i'm not gonna write out all 2906 then :D
21:14:44 <j-invariant> that's 13??
21:14:52 <elliott> oh, W|A fails at parsing
21:14:59 <coppro> wtf
21:15:03 <elliott> coppro: what
21:15:07 <j-invariant> yeah I wasn't using proper syntax
21:15:19 <coppro> 4!/2!2! is obviouly 24
21:15:33 <coppro> and 5!/1!4! is obviously 24*120
21:15:43 <elliott> it's 5!/(1!4!).
21:18:33 <j-invariant> I mean 4!/(2! * 2!)
21:18:40 <j-invariant> i.e. 6
21:19:05 <j-invariant> it makes no sense to use abcd/efgh as abcdfgh/e
21:19:11 <j-invariant> I don't who does this
21:19:16 <j-invariant> well, everyone does, but I don't know why
21:19:25 <elliott> sometimes it looks nicer
21:19:26 <elliott> kinda
21:19:33 <elliott> same reason you see \frac{1}{x} ... in equations
21:19:36 <j-invariant> yes but in that case you can use (abcd/e)fgh
21:19:40 <elliott> true
21:19:42 -!- GreaseMonkey has joined.
21:21:39 <Phantom_Hoover> <elliott> same reason you see \frac{1}{x} ... in equations ← as opposed to...?
21:23:21 <elliott> Phantom_Hoover: \frac{...}{x}
21:23:29 <j-invariant> elliott: words letters = map (flip replicateM letters) [1..]
21:23:37 <Phantom_Hoover> Oh.
21:24:14 <elliott> j-invariant: was that...responding to my #haskell question in here?
21:24:14 <elliott> :D
21:24:43 <Phantom_Hoover> @pl words letters = map (flip replicateM letters) [1..]
21:24:43 <lambdabot> words = flip map [1..] . flip replicateM
21:25:07 <elliott> j-invariant: that produces a list of lists, you mean concatMap surely
21:25:22 <Phantom_Hoover> Hey, an @pl which is pretty!
21:25:24 <fizzie> Re the "how many times", it's actually fib times: http://oeis.org/A000045 "F(n)=number of compositions of n-1 with no part greater than 2. Example: F(4)=3 because we have 3 = 1+1+1=1+2=2+1."
21:25:52 <j-invariant> elliott: oh flip replicateM letters =<< [1..] then
21:26:22 <elliott> Prelude Control.Monad> takeWhile (\x -> s x < 7) (words ":.")
21:26:22 <elliott> [":",".","::",":.",".:","..",":::","::.",":.:",":..",".::",".:.","..:","..."]
21:26:23 <elliott> j-invariant: wait what
21:26:28 <elliott> Prelude Control.Monad> let s('.':xs)=1+s xs;s(':':xs)=2+s xs;s []=0
21:27:48 <elliott> j-invariant: is it just not ordered like that?
21:28:09 <elliott> j-invariant: yay i got all 13
21:28:10 <elliott> [":::","::..",":.:.",":..:",".::.",".:.:","..::",":....",".:...","..:..","...:.","....:","......"]
21:28:39 <Phantom_Hoover> <fizzie> Re the "how many times", it's actually fib times: http://oeis.org/A000045 "F(n)=number of compositions of n-1 with no part greater than 2. Example: F(4)=3 because we have 3 = 1+1+1=1+2=2+1." ← COINCIDENCE?
21:28:47 <elliott> wat
21:29:18 <fizzie> Phantom_Hoover: And of course it's fib, since for all the F(n) ways to write n, there are F(n-1) those that start with '.' and F(n-2) those that start with ':'.
21:29:43 <Phantom_Hoover> Yes, I know.
21:29:52 <fizzie> Admittedly the example is a bit silly.
21:30:03 <elliott> fizzie: how many times what
21:30:17 <elliott> oh how many ways to write?
21:30:18 -!- luatre has quit (Remote host closed the connection).
21:30:20 <fizzie> elliott: Should've been that, yes.
21:30:23 -!- luatre has joined.
21:30:32 <elliott> ::: http://www.vjn.fi/pb/p9634238413.txt
21:30:32 <luatre> Downloading...
21:30:33 <luatre> Compiling, just a minute...
21:30:33 <luatre> Compiled in 0.000127077102661 seconds
21:30:38 <elliott> ...that's definitely not right
21:30:49 -!- Phantom__Hoover has joined.
21:30:49 -!- Phantom__Hoover has quit (Changing host).
21:30:49 -!- Phantom__Hoover has joined.
21:31:04 <elliott> Phantom_Hoover: What's with that x- suffix.
21:31:44 <elliott> j-invariant: lol:
21:31:48 <elliott> 21:28 EvanR-work: set of finite strings from a countable alphabet is countable?
21:31:48 <elliott> 21:28 Cale: EvanR-work: yes
21:31:48 <elliott> 21:28 EvanR-work: interesting
21:31:53 <elliott> j-invariant: WHAT A REVELATION
21:32:01 <j-invariant> elliott: he meant something else
21:32:07 <elliott> are you suure
21:32:08 <j-invariant> elliott: he was thinnking base infinity
21:32:13 <elliott> oh
21:32:19 <elliott> well that's continued fractions :)
21:32:21 <j-invariant> elliott: which is not at all what he /said/ :P
21:32:25 <Phantom__Hoover> elliott, no idea.
21:32:34 <elliott> wait no it isn't
21:32:38 <j-invariant> elliott: everyone in #haskell is going "oh I misread it"
21:32:38 <Phantom__Hoover> Ask the guy on #freenode who cloaked me.
21:32:46 <elliott> 21:29 cdsmithus: EvanR-work: It's pretty easy to see. Just enumerate all the 0-length strings (finitely many), then all the 1-length, then the 2-length, and so on. Every finite string has some length, and will be reached eventually
21:32:49 <elliott> finitely many 0-length strings
21:32:53 <elliott> all 1 of them
21:34:17 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:36:10 <elliott> ::: did i break this ~ {. 0 -> 1} did i break this ~ 1
21:36:11 <luatre> Downloading...
21:36:11 <luatre> ValueError: unknown url type: did i break this ~ {. 0 -> 1} did i break this ~ 1 :(
21:36:14 <elliott> :: did i break this ~ {. 0 -> 1} did i break this ~ 1
21:36:14 <luatre> Compiled in 0.00750088691711 seconds
21:36:17 <elliott> yes, yes i did
21:36:48 <elliott> ohhhh
21:36:50 <elliott> xDDD
21:37:25 -!- luatre has quit (Remote host closed the connection).
21:37:30 -!- luatre has joined.
21:37:34 <elliott> ::: http://www.vjn.fi/pb/p9634238413.txt
21:37:34 <luatre> Downloading...
21:37:34 <luatre> Compiling, just a minute...
21:37:35 <luatre> Compiled in 0.080559015274 seconds
21:37:35 <luatre> factorial: (a) => [a] | _ => factorial loop(a 1)
21:37:35 <luatre> stack-hogging factorial: (a) => [a] | 0 => multiply(pred(0) pred(0)) | _ => multiply(a @(pred(a)))
21:37:35 <luatre> factorial loop: (a, b) => [a] | 0 => b | _ => @(pred(a) multiply(a b))
21:37:35 <luatre> fibonacci: (a) => [a] | _ => fast fibonacci loop(a 0 1)
21:37:36 <luatre> fast fibonacci loop: (a, b, c) => [a] | 0 => b | _ => @(pred(a) c add(b c))
21:37:36 <luatre> slow fibonacci: (a) => [a] | 0 => 0 | 1 => 1 | _ => add(@(pred(a)) @(pred(pred(a))))
21:37:41 <elliott> commentz wurk!
21:38:57 <elliott> j-invariant: so my program's structure is quite flawed, what about you
21:39:01 <elliott> any flawed programs lately?
21:42:15 <j-invariant> everything I have written in the past ... forever
21:42:24 -!- oerjan has joined.
21:43:15 <elliott> j-invariant: :D
21:43:18 <elliott> j-invariant: have you ever written GUI PROGRAMS
21:43:26 <j-invariant> yeah they suck :|
21:43:32 <j-invariant> I don't know how to make it look okay
21:43:34 <elliott> j-invariant: haha what did you write
21:43:40 <j-invariant> well I tried to make a little REPL
21:43:40 -!- pumpkin has changed nick to copumpkin.
21:43:50 <Phantom__Hoover> GUI PROGRAMS WHERE ARE THEY GET THEM AWAY
21:44:53 <elliott> Phantom__Hoover: cled!
21:44:55 <elliott> cled is a gui program
21:44:58 <elliott> it's the best gui program ever in fact
21:45:02 <Phantom__Hoover> AAAAAAAAAAAAAAAAAAAAAAAa
21:45:20 <elliott> j-invariant: how didn't it look ok? :p
21:46:12 <j-invariant> http://i.imgur.com/6eG6a.png
21:46:31 <elliott> j-invariant: that doesn't look bad
21:46:45 <j-invariant> it sorts of sucks
21:46:50 <elliott> I'd add a bit more spacing after the rendered equation, and possibly make that whole upper pane white-backgrounded if i could
21:46:56 <elliott> j-invariant: what did you write it with?
21:47:07 <Phantom__Hoover> elliott, http://www.reddit.com/r/Minecraft/comments/ezre7/did_notch_give_details_why_they_switched_from_git/
21:47:09 <j-invariant> gtk haskell
21:47:09 <elliott> j-invariant: anyway it's not as ugly as cled http://i.imgur.com/M27fK.png :D
21:47:13 <elliott> j-invariant: by far
21:47:21 <elliott> Phantom__Hoover: "From my own experience with both I find Subversion to be easier to understand." lol
21:47:24 <j-invariant> I like the look of cled
21:47:29 <elliott> j-invariant: really? it's hideous :D
21:47:35 <Phantom__Hoover> elliott, is Subversion awful?
21:47:41 <j-invariant> elliott: I want to make a GUI for interactive program derivation
21:47:46 <elliott> Phantom__Hoover: It's centralised. Its aim is to be "CVS done right" which is impossible. So yes.
21:47:50 <elliott> j-invariant: that would be amazing
21:48:01 <j-invariant> elliott: Haskell
21:48:10 <elliott> eh?
21:48:12 <j-invariant> like that paste I showed you: except you do it all in place
21:48:14 <elliott> right
21:48:21 <elliott> which paste
21:48:21 <elliott> :P
21:48:25 <j-invariant> hey that would be really cute I should actually make it
21:48:38 <elliott> j-invariant: btw cled isn't really meant to look like that... ideally instead of those awful borders, it'd have like, those outwards poking ones... so that it looks like things deeper in the tree stick out further, you know?
21:48:39 <elliott> 3d style
21:48:46 <elliott> j-invariant: and then what would happen is, descent would be shown by element background
21:48:49 <elliott> not by border colour
21:48:52 <elliott> that's on the todo list
21:49:31 <Phantom__Hoover> Program derivation?
21:49:56 <elliott> j-invariant: it'd be a lot nicer because right now borders kinda drown out everything
21:50:40 <j-invariant> Phantom__Hoover: here is a derivation of init in terms of foldr http://pastebin.com/raw.php?i=VBavHxpt
21:50:45 <elliott> ah right
21:50:58 <j-invariant> hm actually there is no nice way to make a GUI for this
21:51:20 <elliott> j-invariant: btw, isn't your cons just (:) there...
21:51:40 <elliott> oh wait
21:51:40 <elliott> no
21:51:53 <elliott> the cons name is kinda confusing though :p
21:52:40 <j-invariant> elliott: I don't think there is a good way to make a GUI for program derivation
21:52:57 <j-invariant> there are too many different ways to structure things
21:53:07 <Phantom__Hoover> What else is on voxelperfect.net other than esolang stuff?
21:53:09 <elliott> perhaps...
21:53:10 <elliott> Phantom__Hoover: nothing
21:53:12 <elliott> that we know of
21:53:14 <j-invariant> Phantom__Hoover: did you read that?
21:53:30 <Phantom__Hoover> j-invariant, yes, but it confuzzled me.
21:53:33 <j-invariant> why?
21:54:14 <copumpkin> j-invariant: that's wrong
21:54:26 <Phantom__Hoover> Because I have no idea what fold is meant to do.
21:54:37 <j-invariant> Phantom__Hoover: oh you should learn about foldr
21:54:44 <elliott> copumpkin: it is?
21:54:51 <copumpkin> have you tried running it?
21:55:06 <Phantom__Hoover> Well, I *know* what foldr is, but I thought it had a function involved...
21:55:08 <copumpkin> > foldr cons [] [1..10]
21:55:09 <elliott> saying why it's wrong >> telling to run :)
21:55:10 <lambdabot> []
21:55:14 <copumpkin> :P
21:55:15 <elliott> copumpkin: fail
21:55:19 <elliott> copumpkin: cons is defined in the where clause
21:55:22 <elliott> :t cons
21:55:23 <lambdabot> forall a. a -> [a] -> [a]
21:55:24 <elliott> ^ that's not used
21:55:29 <copumpkin> ?
21:55:33 <copumpkin> no, I @let that myself
21:55:35 <elliott> init = foldr cons [] where
21:55:35 <elliott> cons x [] = []
21:55:35 <elliott> cons x (y:ys) = x : y : ys
21:55:36 <elliott> is the final result
21:55:38 <elliott> oh
21:55:39 <copumpkin> as defined in the where clause
21:55:46 <elliott> wait what
21:56:03 <elliott> wait, wait what
21:56:08 <copumpkin> I wrote @let cons x [] = []; cons x (y:ys) = x : y : ys
21:58:52 <copumpkin> > let cons x [] = [x]; cons x (y:ys) = x : y : ys in foldr cons [] [1..10]
21:58:53 <lambdabot> [1,2,3,4,5,6,7,8,9,10]
21:59:02 <copumpkin> that's revealing
21:59:08 <copumpkin> :)
21:59:21 <elliott> j-invariant: you should write a clue program ... with cled!
21:59:32 <elliott> copumpkin: that's not the intention, though
21:59:34 <j-invariant> elliott: I thought it was a debugger
21:59:39 <elliott> j-invariant: ... :D
21:59:47 <copumpkin> elliott: I know! I'm just saying, it shows where it's going wrong
21:59:54 <elliott> j-invariant: I have no idea how http://i.imgur.com/M27fK.png could be used to debug anything
22:00:03 <elliott> j-invariant: it's actually an editor
22:00:18 <elliott> j-invariant: what you see in that screenshot is the clue branch
22:00:19 <elliott> {. 0 1 -> 1
22:00:19 <elliott> . 0 5 -> 5 }
22:00:43 <elliott> you can descend and ascend through that tree, basically, move about, and edit individual atoms
22:00:49 <elliott> plus add/remove to the lists, etc.
22:00:55 <elliott> the lists in a display sense, not in clue-code-sense
22:01:47 <elliott> hmm i shouldn't link to such scary screenshots when #haskellers are around
22:01:54 <elliott> i have a feeling they have some modicum of taste
22:02:00 <elliott> copumpkin: can you confirm/deny?
22:02:07 <copumpkin> ?
22:02:15 <copumpkin> I'm not a true haskeller
22:02:21 <elliott> that #haskellers have some modicum of taste
22:02:27 <copumpkin> nah, no taste here
22:02:32 <elliott> and thus linking to things like http://i.imgur.com/M27fK.png when they're around is likely to scare them off
22:02:41 <copumpkin> I've seen worse
22:02:47 <copumpkin> :)
22:02:56 <copumpkin> but keep in mind that I have no taste
22:03:05 <copumpkin> so my idea of worse may actually be better
22:03:11 <elliott> i should implement that background-based system, like now
22:03:17 <elliott> and it'd stop scaring off helpless children
22:04:57 <j-invariant> http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7ks6
22:05:19 <j-invariant> HAY GUYS: GODELGODELGODELGODELGODEL
22:05:30 <j-invariant> when will people learn this is just not relevant?
22:06:47 <elliott> godel is often relevant! but usually not in the cases when people think it is
22:08:00 <Gregor> "GODELGODELGODEL" is the sound of a mathematician turkey.
22:12:30 <oerjan> the incompleteness from outer space
22:14:07 <elliott> what's a nice, light blue
22:14:18 <j-invariant> 0000FF
22:14:24 <elliott> THAT IS NOT LIGHT
22:14:29 <j-invariant> FFFFFF
22:14:34 <elliott> THAT IS NOT BLUE
22:14:40 <j-invariant> BBBBFF
22:15:08 <elliott> that is... not nice... actually it's koay
22:15:09 <elliott> okay
22:15:09 <elliott> :P
22:15:22 <elliott> givin' cled a makeover
22:17:18 <elliott> http://twitter.com/notch/status/24558373093515264 Reeds are now sugar canes. I am not even kidding.
22:17:18 <elliott> http://www.minecraftwiki.net/wiki/Sugar_Cane
22:17:31 <elliott> fizzie: Vorpal: Gawp at the ...ness.
22:19:19 <j-invariant> I found some reeds but I could not find them again :(
22:19:21 <j-invariant> I lost them
22:20:18 <elliott> j-invariant: *SUGAR CANES
22:20:24 <elliott> j-invariant: have you joined the server yet :p
22:20:43 <j-invariant> elliott: what is the address?
22:21:35 <elliott> j-invariant: I can't tell you, that would be wrong; you'll have to look at a four days old log or something where we discuss mcmap!
22:21:46 <elliott> That is a guess of course. Naturally.
22:21:46 <j-invariant> why not
22:21:52 <elliott> An utter guess.
22:21:56 <j-invariant> I dno't want to join if I'm not supposed to
22:22:02 <elliott> :P
22:22:13 <j-invariant> you should ask the boss if its okay
22:22:16 <elliott> get oklopol to tell you, he has oklopolic immunity
22:22:25 <elliott> and that's no joke
22:23:55 <fizzie> Our administratafator has been a bit gone for the evening; my guess is some sort of debauchery.
22:24:39 <elliott> fizzie: You're the right-hand man, go tell j-invariant the address.
22:25:31 <oerjan> elliott: and from those sugar canes you will be able to produce high-fructose corn syrup >:)
22:25:38 <fizzie> Oh, but I couldn't possibly, that'd be insubordination.
22:26:00 <Phantom__Hoover> <fizzie> Our administratafator has been a bit gone for the evening; my guess is some sort of debauchery. ← MATLAB debauchery?
22:26:02 <elliott> oklopol: Insubordinate!
22:26:21 <elliott> fizzie: So is there a scenester named SUGAR CANE who isn't in your pants either?
22:26:23 <elliott> Your sign needs changing.
22:26:32 <fizzie> Oh, right.
22:26:39 <oerjan> also whiskey and creme brulee
22:26:39 <elliott> Or just leave it as a protest :P
22:26:50 <fizzie> Well, maybe I'll just be all RETRO-reed.
22:26:52 <elliott> Oh man, whiskey in Minecraft would be amazing.
22:27:05 <fizzie> "I was into reeds before they were sugar canes."
22:27:10 <elliott> It'll, like, restore 70% of your health, but if you drink too much your vision starts going blurry and stuff.
22:27:14 <elliott> And tilting around.
22:27:17 <oerjan> fizzie: you had reeds on vinyl?
22:27:37 <elliott> i had reeds before they sold out
22:27:48 <fizzie> "Reeds on Vinyl", sounds like a band.
22:28:14 <oerjan> "Sounds like a band" sounds like a band.
22:28:20 <elliott> fizzie: with the amount of things the internet has called good band names, we'd need like 1,000 times more bands than have ever existed to be created.
22:28:58 <Gregor> "'Sounds like a band' sounds like a band" sounds like a band
22:29:33 <elliott> My band will be called #1#="\"#1#\" sounds like a band".
22:29:37 <elliott> Literally that.
22:29:43 <oerjan> s/band/band name/g
22:29:47 <elliott> heh
22:29:50 <elliott> First album will naturally be called Main Page.
22:29:56 <elliott> Because fuck Wikipedia!
22:33:39 * oerjan recalls there was a norwegian race horse named "Sugar Cane Hannover"
22:33:59 <oerjan> *hanover
22:34:21 <elliott> the people who name horses are like people who name cats fun things, except on crack
22:34:31 <elliott> like, you start naming cats silly things
22:34:34 <elliott> but then when you get a job
22:34:35 <elliott> and become a pro
22:34:37 <elliott> you become a horse name
22:34:37 <elliott> r
22:34:53 <oerjan> famous enough to have a no.wikipedia page
22:34:57 <elliott> what is it with horse names, anyway?
22:35:11 <oerjan> born in sweden actually
22:35:52 <Gregor> "Followed by the horse formerly known as Horse."
22:36:15 <Sgeo_> I found that more hilarious than it was
22:36:24 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:36:25 <elliott> if horse racing actually involved like
22:36:27 <elliott> programming jokes
22:36:30 <elliott> i'd watch
22:36:39 <elliott> But oh! Here comes My Other Car Is A Cdr!
22:37:16 * Sgeo_ hits elliott with an element and a list
22:37:24 <elliott> that's cons.
22:37:25 <Gregor> I'll name my horse 🐎.
22:37:42 <elliott> Name a horse after the Unicode snowman.
22:37:45 <Phantom__Hoover> Someone tell me if Firefly is non-crap.
22:37:58 <Sgeo_> elliott, you think I'm capable of thinking of some stupid not-that-funny thing to say about car and cdr?
22:38:00 <FireFly> it isn't
22:38:02 <elliott> Phantom__Hoover: It's... Joss Whedon-y, isn't it? Said as someone who hasn't seen it.
22:38:04 <elliott> FireFly: BIAS
22:38:05 <FireFly> or, well, I dunno
22:38:15 <Phantom__Hoover> FireFly, it isn't non-crap?
22:38:23 <FireFly> From the little I've seen, yes
22:38:25 <FireFly> assuming you mean the show
22:38:28 <elliott> Phantom__Hoover: I get the feeling there's more western there than scifi.
22:38:32 <elliott> "Space western", as they say.
22:38:34 <Sgeo_> I know people like Firefly
22:38:35 <Phantom__Hoover> You mean that it is, in fact, crap?
22:38:46 <elliott> Gregor: Name a horse the GLAGOLITIC CAPITAL LETTER SPIDERY HA.
22:38:49 <elliott> Gregor: Pronounced like that.
22:38:51 <Sgeo_> And that it was cancelled
22:38:51 * Phantom__Hoover applauds Sgeo_ for his research skills.
22:39:03 <elliott> I THINK THEY MADE A MOVIE OUT OF IT
22:39:06 <elliott> GUYS? GUYS???
22:39:11 <Phantom__Hoover> So wait, noöne has actually seen it?
22:39:19 <elliott> randall munroe likes it, which is always a bad sign
22:39:21 <Phantom__Hoover> Well then, I see no harm in joining the crowd.
22:39:31 <Phantom__Hoover> elliott, he liked it pre-xkcdecay.
22:39:41 <Sgeo_> elliott, Randall Munroe likes breathing.
22:39:52 <elliott> Sgeo_: Breathing is kind of a pain.
22:39:55 <elliott> sometimes.
22:40:01 <elliott> Phantom__Hoover: Sure, but he also liked Python.
22:40:10 <Sgeo_> I like Python!
22:40:12 <oerjan> elliott: not breathing even more so
22:40:16 <Phantom__Hoover> elliott, Python is a necessary evil.
22:40:22 <elliott> Phantom__Hoover: Is it?
22:40:32 * Sgeo_ cries as his lingua fraca gets spit upon
22:40:51 <elliott> Python is a terrible language.
22:41:00 <Phantom__Hoover> elliott, lazy people and idiots want to program.
22:41:12 <elliott> Phantom__Hoover: Funny. I don't want them to.
22:41:39 <Gregor> elliott: Dude, I'm going to change MY name to GLAGOLITIC CAPITAL LETTER SPIDERY HA
22:41:43 <Phantom__Hoover> elliott, yes, but it filled a gap in the market, so it was inevitable.
22:41:43 <Phantom__Hoover> And would you rather they used Perl?
22:42:03 <elliott> Phantom__Hoover: No, but ... intelligent people who like Python are odd.
22:42:06 <elliott> Gregor: I approev.
22:42:07 <elliott> *approve.
22:42:12 <elliott> Phantom__Hoover: And they, strangely, exist.
22:42:15 <Phantom__Hoover> oklopol!
22:42:30 <elliott> oklopol likes Python for, like, totally different reasons to everyone else.
22:42:54 <oerjan> Sgeo_: *franca
22:43:05 <Phantom__Hoover> elliott, what reasons?
22:43:20 <elliott> Phantom__Hoover: Well, not "clean code and comprehensive standard libraries" :-)
22:43:37 <Sgeo_> elliott, do you think I'm an idiot?
22:43:39 <elliott> oerjan: don't be harsh, english isn't Sgeo_'s lingua fraca
22:43:47 * Sgeo_ lols
22:43:49 <Phantom__Hoover> Because oklobrainese compiles easily to Python?
22:43:50 <elliott> Sgeo_: Not really, but I have the feeling you like Python for the wrong reasons.
22:43:53 <elliott> Phantom__Hoover: WHO KNOWS
22:44:06 <oerjan> elliott: hey i wasn't intending to start a fracas
22:44:17 <elliott> oerjan: ...you win :D
22:44:47 <oerjan> YAY
22:45:27 <Sgeo_> There's a language called HaXe
22:45:34 <oerjan> AND MY HAXE
22:45:45 <Sgeo_> As far as I can tell, the only reason people like it is its "portability"
22:45:54 -!- pikhq has quit (Remote host closed the connection).
22:46:30 <elliott> I need to start drinking more coffee.
22:47:38 -!- Phantom__Hoover has quit (Quit: Leaving).
22:48:44 <Sgeo_> Fancy's supposed to be able to target a bunch of stuff eventually
22:48:52 <elliott> hey j-invariant design my program
22:48:54 <elliott> somehow
22:49:13 -!- pikhq has joined.
22:49:19 <Sgeo_> Now that I look at http://www.fancy-lang.org/features/ again, it looks boring
22:49:33 <Sgeo_> Except for the BDD thingy, which puts Scala's thing in mind
22:50:12 <elliott> example-driven development is the only acceptable policy.
22:50:27 <j-invariant> lol
22:50:31 <elliott> NOT
22:50:32 <elliott> KIDDING
22:50:45 * Sgeo_ still wants to know if it's TC
22:50:46 -!- pikhq has quit (Remote host closed the connection).
22:50:52 <elliott> what, Clue?
22:51:20 <oerjan> elliott: ideally the language _specification_ should be example-driven, no?
22:51:22 <Sgeo_> Yes
22:51:30 <elliott> Sgeo_: yes, it is
22:51:41 <Sgeo_> Huh. That's awesome.
22:51:43 <Sgeo_> How?
22:51:45 <elliott> oerjan: oh yes definitely, but unfortunately there's no other example-driven processors
22:51:55 <elliott> Sgeo_: you can basically write simple imperative loops that use each other
22:52:01 <elliott> and there's also an ski interpreter
22:52:05 <elliott> and quicksort
22:52:06 <elliott> soo
22:52:06 <elliott> QED
22:52:11 <elliott> most people would consider SKI enough
22:52:17 <elliott> but, you might not consider that so if, e.g.,
22:52:20 <oerjan> elliott: i guess it's hard when you don't have any examples
22:52:21 <elliott> you can't express every turing machine as a unique program
22:52:34 <elliott> but, yes
22:52:38 <elliott> you can basically write code imperatively
22:54:48 <elliott> bleh
22:54:51 <elliott> does anyone know tk here
22:56:26 <Sgeo_> I know of it. And that Python comes with libraries for it
22:56:44 <j-invariant> 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task.
22:56:48 <j-invariant> HAHA
22:57:07 <elliott> :D
22:57:10 <elliott> are they serious
22:57:14 <j-invariant> I think so
22:58:42 <elliott> j-invariant: oh god, he is
22:59:05 <j-invariant> this is amazing, like meeting a Mormon or something
22:59:17 <j-invariant> aw everyone is ganging up on him
22:59:34 <elliott> j-invariant: except for the ones who are telling him UML can work ... lol
23:00:16 <Sgeo_> WTF does UML have to do with Haskell?
23:00:28 <Sgeo_> Is UML some sort of imperative thingy? I thought it was flowchartiness
23:00:34 <Sgeo_> Which I guess is imperative
23:00:48 <elliott> It's OO.
23:01:05 <Sgeo_> Ah
23:02:30 <j-invariant> elliott: http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7sdo
23:03:15 <j-invariant> elliott: stupid guy, first comes out with this irrelevant halting problem crap then starts being all arrogant
23:04:06 <elliott> heh
23:04:22 <copumpkin> lol
23:04:23 <j-invariant> all the godel/turing/etc stuff
23:04:36 <copumpkin> man, I got downvoted
23:04:37 <copumpkin> wtf
23:04:39 <j-invariant> people just need to STFU about it
23:04:54 <j-invariant> yeah cool you just learned something new and interesting, NOT EVERYTHING IS A NAIL
23:05:00 <elliott> j-invariant++
23:05:26 <j-invariant> Why don't we get people that just learned thermodynamics and join every fucking energy discussion with "YYEAH BUT YOU CANT CREATE INFINITE FREE ENERGY SO WHY BOTHER WITH WINDMILLS?"
23:05:39 <elliott> `addquote <j-invariant> 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. <j-invariant> HAHA [...] <j-invariant> this is amazing, like meeting a Mormon or something
23:06:06 <elliott> j-invariant: because you don't have Thermo Engineering
23:06:08 <elliott> j-invariant: or Thermo Monkeys
23:06:30 <elliott> HackEgo: ping :(
23:06:52 <HackEgo> 264) <j-invariant> 22:55 < qfr> How am I supposed to develop software in Haskell if I can't even prepare my projects in UML?! It seems like an impossible task. <j-invariant> HAHA [...] <j-invariant> this is amazing, like meeting a Mormon or something
23:07:36 <j-invariant> elliott: the guy is fucking off the wall
23:07:43 <j-invariant> elliott: like totally bonkers
23:07:48 <j-invariant> I can't even keep up with what's going on
23:08:01 <copumpkin> I love the guy responding to me with a condescending tone
23:08:09 <j-invariant> copumpkin: which guy
23:08:17 <copumpkin> tachi-kaze
23:08:21 <elliott> http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7s0t
23:08:26 <elliott> the reply to that
23:08:43 <j-invariant> I don't get the aversion to correctness
23:08:46 <elliott> copumpkin: i'm glad to see you've found the secret purpose of #esoteric, other than #minecraft
23:08:47 <j-invariant> it's actually completely mad
23:08:50 -!- pikhq has joined.
23:08:51 <elliott> which is #behind-people's-backs
23:08:56 <copumpkin> mmm
23:09:00 <oerjan> copumpkin: you're godofpumpkins i guess?
23:09:06 <j-invariant> That just means we can't exactly decide when something halts or not <---- nobody cares
23:09:10 <copumpkin> oerjan: yep :)
23:10:02 <elliott> copumpkin: oerjan is FAMOUS, he basically wrote half of the haskell 98 report*
23:10:06 <elliott> *complete and utter hogwash
23:10:07 <j-invariant> http://www.reddit.com/r/compsci/comments/ez93s/the_future_of_software_system_correctness/c1c7ks6
23:10:11 <copumpkin> lol
23:10:14 <j-invariant> it upsets me that this comment has score 2
23:10:16 <elliott> oerjan: point copumpkin to that typo you fixed or whatever!!
23:10:18 <j-invariant> it should be -30
23:10:20 <elliott> your fame will never end
23:10:32 <copumpkin> j-invariant: keep saying that in here and I'm sure it will be :)
23:10:39 <elliott> i did my bit!! HIVEMIND
23:10:41 <j-invariant> doubt it
23:10:46 * copumpkin posts to twitter that it should be -30
23:10:48 <elliott> now to go make stupid comments
23:10:55 <elliott> copumpkin: WE CAN DO THIS
23:10:56 <copumpkin> (I have a lot of dumb followers who do my bidding)
23:10:57 <j-invariant> well only actually downvote it if you agree with me: That his comment is totally irrelevant
23:10:59 <elliott> if we all work together!
23:11:04 <oerjan> elliott: there were several and i don't have them memorized
23:11:08 <elliott> j-invariant: MORONS DON'T UNDERSTAND QUALIFIERS
23:11:33 <oerjan> dammit now my z key is acting up
23:11:35 <j-invariant> I think tachi-kaze has probably smoked a load of dope
23:11:42 <elliott> holy shit comex has a lot of twitter followers now
23:11:43 <j-invariant> nothing he says has anny connection to reality
23:11:45 <elliott> 107,757...
23:11:47 <elliott> i remember when he had like
23:11:47 <elliott> 3
23:11:49 <copumpkin> elliott: indeed :)
23:11:55 <copumpkin> comex superstar!
23:11:57 <elliott> damn dude, getting all famous and hsit
23:11:58 <comex> whoa, copumpkin is in this channel
23:11:58 <elliott> *shit
23:12:01 <elliott> lol
23:12:07 <copumpkin> comex: duh, I follow you around
23:12:09 <j-invariant> what's comex?
23:12:13 <elliott> j-invariant: this Agora player!
23:12:17 <elliott> >:D
23:12:19 <copumpkin> no, actually I saw people mention it in #haskell(-blah?)
23:12:20 <elliott> that's what he's known for
23:12:21 <elliott> playing Agora
23:12:23 <comex> nah
23:12:24 <comex> I'm not a player
23:12:28 <elliott> well okay
23:12:30 <elliott> EX-agora player
23:12:33 <elliott> as of a few days ago :P
23:12:41 <elliott> but my statement will be correct again soon enough
23:12:44 <copumpkin> comex is a playa
23:12:45 <elliott> comex: I'm gonna go around tleling people
23:12:48 <elliott> I knew comex before he was famous
23:12:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:12:53 <j-invariant> why so many followers?
23:12:59 <copumpkin> j-invariant: superstar, and playa
23:13:01 <comex> but you never knew me before I was an Agora player
23:13:02 <elliott> j-invariant: he did the new jailbreakme.com iPhone crack
23:13:07 <elliott> *jailbreak
23:13:07 <comex> your statements contradict ;)
23:13:10 <j-invariant> oh cool
23:13:15 <comex> also that's not very new anymore
23:13:18 <elliott> well no
23:13:22 <elliott> but it's what propelled you to INTERWEBS INFAMY
23:13:29 <elliott> comex: i say new because, i remember using the old jailbreakme
23:13:32 <elliott> on the day i bought my iphone
23:13:34 <comex> oh
23:13:35 <comex> good point
23:13:35 <oerjan> <copumpkin> (I have a lot of dumb followers who do my bidding) <-- you do know that voting conspiracies are a bannable offense on reddit, right?
23:13:40 <copumpkin> elliott: I helped make that one :P
23:13:46 <elliott> oerjan: he can just say "omg this is so stupid"
23:13:51 <comex> but they're not in Agora
23:13:55 <copumpkin> oerjan: well luckily I don't do such conspiracies
23:13:57 <elliott> copumpkin: naw, Haskell can't do anything practical like that
23:14:03 <elliott> stop lying
23:14:06 <copumpkin> elliott: lol, that was pre-haskell :P
23:14:13 <elliott> oh the old one
23:14:13 <copumpkin> then I saw the light and lost interest in iphonez
23:14:35 <copumpkin> yeah
23:14:36 <j-invariant> :(
23:14:39 <j-invariant> i have to go to bed
23:14:40 <copumpkin> not as superstarish as comex, sadly
23:14:47 <j-invariant> I did not get anything done
23:14:47 <elliott> i had comex on vinyl
23:14:51 <j-invariant> this sucks
23:14:54 <comex> let's play ircnomic
23:14:58 <elliott> before he went platinum
23:15:01 <copumpkin> j-invariant: don't sleep!
23:15:06 <copumpkin> sleep is for the weak anyway
23:15:11 <elliott> comex: heh, #ircnomic still redirects to ##nomic
23:15:12 <elliott> BUT I CAN FIX THAT
23:15:21 <elliott> grumble wooble grumble grumble cough
23:15:32 * copumpkin eats some orange chicken
23:15:48 <j-invariant> stop ditsracting me
23:15:55 <elliott> risdacting
23:16:00 <elliott> *risdracting
23:16:31 <elliott> gah, how can i remove the redirect...
23:16:46 <Sgeo_> I thought comex was famous for iPhone-related reasons before jailbreakme
23:16:47 -!- elliott has changed nick to ehird.
23:17:22 <copumpkin> Sgeo_: he had a sex tape
23:17:36 <ehird> lol
23:17:44 <copumpkin> with emma watson
23:18:24 <ehird> HOW DO YOU REMOVE A CHANNEL REDIRECT
23:18:27 <ehird> the forces of wooble are acting against me
23:20:42 <j-invariant> ehird: this fucking qfr is just an idiot trill
23:20:47 <j-invariant> I'm bored o fhim
23:20:48 <ehird> comex: #ircnomic now open for business
23:20:54 <ehird> don't crowd around now
23:20:56 <ehird> one at a time
23:21:43 <Sgeo_> j-invariant, I thought it was centuries before we learned the Trills' secrets
23:21:48 <Sgeo_> *secret
23:22:04 -!- Sgeo_ has changed nick to Sgeo.
23:22:25 <ehird> Sgeo: oh, shush
23:22:31 <ehird> comex: do you have a copy of the last ircnomic ruleset :D
23:22:35 <j-invariant> waht is a trill?
23:22:40 <ehird> star trek.
23:22:45 <comex> no
23:23:06 <ehird> comex: well... get one?
23:23:29 <ehird> copumpkin: so have you started playing minecraft yet >:D
23:23:33 <j-invariant> I just want to progrma something really simple what is the issuse
23:23:37 <ehird> j-invariant: program what
23:23:48 <j-invariant> ehird: just some really simple algorithms on polynomials
23:23:51 <copumpkin> ehird: hell no
23:23:54 <ehird> j-invariant: do it then :D
23:24:02 <j-invariant> ehird: what language?
23:24:07 <j-invariant> I tried scheme, haskell and Coq they all fail
23:24:07 <copumpkin> j-invariant: agda
23:24:09 <ehird> j-invariant: haskell? istr you did some stuff with it
23:24:13 <ehird> and polynomialalalallal
23:24:14 <ehird> s
23:24:19 <ehird> copumpkin: agda is not a language for human consumption
23:24:20 <ehird> or production
23:24:26 <ehird> copumpkin: it's only a matter of time before you're yelling expletives at Notch every day, btw
23:24:27 <copumpkin> I consume and produce it all the time
23:24:35 <ehird> copumpkin: you're a pumpkin
23:24:37 <ehird> i said human
23:24:38 <j-invariant> ehird: yeah I tried to write the same program in all languages, none of them are any good
23:24:39 <copumpkin> fair enough
23:24:48 <ehird> copumpkin: and maybe you do, but you certainly don't produce nontrivial proofs in it >:)
23:24:50 <j-invariant> I should make my own language
23:24:52 <ehird> because that's impossible!
23:24:56 <ehird> j-invariant: what was not good about it?
23:25:00 <ehird> about haskell i mean
23:25:02 <copumpkin> ehird: :(
23:25:09 <ehird> copumpkin: COQQQQQ
23:25:17 <j-invariant> ehird: consider modular arithmetic data type
23:25:28 <j-invariant> ehird: you need to implement type level numbers to do it
23:25:32 <copumpkin> I wrote that in two different ways in agda
23:25:35 <j-invariant> or use unsafePerformIO
23:25:36 <copumpkin> both were painful
23:25:38 <ehird> j-invariant: use she :)
23:25:43 <ehird> the best language!
23:25:50 <j-invariant> ehird: yes I did use she
23:25:57 <ehird> j-invariant: then you only have to implement nats ;P
23:25:57 <Sgeo> What is she?
23:25:58 <ehird> *:P
23:26:03 <j-invariant> ehird: but I don't do modular arithmetic but polynomials
23:26:11 <ehird> Sgeo: she's a thing.
23:26:17 <copumpkin> Sgeo: she's a preprocessor for haskell
23:26:18 <j-invariant> I mean the type level "thing" is not a natural but a polynomial
23:26:22 <copumpkin> that I've started using for her other features, too
23:26:26 <copumpkin> not just the autolifting of data
23:26:27 <j-invariant> basically it's a clusterfuck
23:26:38 <j-invariant> can't do this in a reasonable way in haskuell
23:26:38 <ehird> j-invariant: just define a polynomial normally
23:26:43 <ehird> and she will define the type-level version
23:26:44 <Sgeo> She's an it!
23:26:45 <ehird> what's wrong with that
23:26:48 -!- azaq23 has joined.
23:26:51 <ehird> Sgeo: She's a SHE.
23:26:52 <copumpkin> ehird: well, to a degree
23:26:54 <j-invariant> ehird: it does not work that way
23:27:00 <ehird> j-invariant: does for me :-D
23:27:00 <ehird> well
23:27:02 <ehird> on a good day ...
23:27:06 <copumpkin> she only lifts data constructors
23:27:09 <ehird> that's true
23:27:12 <ehird> but who needs strong kinding
23:27:14 <copumpkin> so if j-invariant wants to actually do something to the polynomial
23:27:19 <copumpkin> then he needs to write it himself
23:27:23 <j-invariant> ehird: idk I just can't get stuff working it sucksf
23:27:27 <j-invariant> I need proofs too
23:27:31 <copumpkin> why do you need a polynomial at the type level anyway?
23:27:36 <j-invariant> I can't program in haskell it's like "woah what if everything is wrong?"
23:27:45 <copumpkin> agda's getting a better compiler or two soon too
23:27:57 <j-invariant> copumpkin: Z[x]/(p(x))
23:28:11 <copumpkin> okay
23:28:12 <copumpkin> yeah
23:28:13 <copumpkin> wait for epigram2
23:28:16 <ehird> lol
23:28:24 <Sgeo> NEED
23:28:25 <Sgeo> MORE
23:28:26 <ehird> the answer to everything
23:28:27 <Sgeo> LANGUAGES
23:28:29 <Sgeo> FEED ME
23:28:31 <j-invariant> You know what
23:28:39 <copumpkin> j-invariant: or just use cochon
23:28:45 <j-invariant> Everything sucks: When epigram2 comes out I will find out something that sucks about it after a week
23:28:48 <ehird> :D
23:28:50 <ehird> j-invariant: please say "i'm going to write my own language"
23:29:03 <copumpkin> yeah, with observational type theory
23:29:03 <j-invariant> i'm going to write my own language
23:29:10 <ehird> j-invariant: YAAAAAAAY
23:29:14 <copumpkin> and easy reflection and so on
23:29:20 <j-invariant> who will help me design it
23:29:21 <ehird> don't tell Sgeo
23:29:25 <ehird> copumpkin: yeah who needs all that
23:29:27 <ehird> j-invariant: MEEEEEEE
23:29:33 <copumpkin> j-invariant: don't forget substructural types (all sorts of them)
23:29:33 <ehird> j-invariant: i suggest it have quotient types!</easywayout>
23:29:36 <copumpkin> and effect types
23:29:41 <j-invariant> ehird: this is essential
23:29:44 <ehird> who needs effects
23:29:44 <copumpkin> quotient types are easy with OTT
23:29:51 <j-invariant> I don't know about parametricity
23:29:56 <j-invariant> I wonder if it is important
23:29:57 <ehird> copumpkin: but how do you avoid the extensional axiom of choice?
23:30:00 <copumpkin> j-invariant: definitely separate forall and pi
23:30:01 <ehird> :(
23:30:09 <copumpkin> pff
23:30:16 <copumpkin> I choose to not care about the AoC
23:30:26 <ehird> copumpkin: YOU CAN'T WELL-ORDER THE REALS DAMMIT
23:30:34 <ehird> </opinions taken from russell oconnor's blog>
23:30:38 <copumpkin> :P
23:30:39 <j-invariant> everything is well ordered
23:30:40 <ehird> *o'connor's
23:30:46 <ehird> j-invariant: nuh uh!
23:30:48 <copumpkin> there's loads of blog posts telling you how to count the reals out there
23:30:49 <j-invariant> "well ordered" is a set theoretic notion
23:30:51 <copumpkin> one put pi in the middle
23:30:54 <ehird> touche
23:30:55 <copumpkin> and then laid them out in a grid
23:30:59 <copumpkin> and then counted spirally!
23:31:00 <copumpkin> mmm
23:31:05 <ehird> lol @ pi in the middle
23:31:06 <j-invariant> hm what would well ordered mean in type theory?
23:31:16 <ehird> dunno
23:31:17 <ehird> http://r6.ca/blog/20050604T143800Z.html
23:31:18 <ehird> word of god
23:31:23 <ehird> clearly you can't have quotient types
23:31:24 <ehird> :(
23:31:34 <ehird> wait ...
23:31:44 <ehird> if you can prove that you can well-order the reals in type theory + quotient types
23:31:49 <ehird> ... then what fucking program does that spit out?!
23:31:49 <luatre> ValueError: substring not found :(
23:31:53 <ehird> shut up, luatre.
23:34:20 <j-invariant> can we implement quotients in a type theory inside agda?
23:34:34 <j-invariant> following e.g. Kipling
23:34:49 <Sgeo> I think Euphoria is supposed to be an "easy" language
23:34:52 * Sgeo facepalms
23:35:10 <copumpkin> j-invariant: we can with setoid-like things
23:35:17 <copumpkin> well, just setoids
23:35:18 <j-invariant> no proper quotients
23:35:18 <Sgeo> http://openeuphoria.org/wiki/view.wc?page=SampleCode
23:35:20 <copumpkin> oh
23:35:22 * Sgeo assassinates someone
23:35:33 <copumpkin> I dunno, check the OTT implementation in agda?
23:35:47 -!- SimonRC has quit (Ping timeout: 255 seconds).
23:36:28 <j-invariant> should I (1) sleep (2) write notes about this language that will probably never actually exist
23:36:44 <Sgeo> You should do 1, but you will do 2
23:37:04 <ehird> j-invariant: latter
23:37:23 <ehird> j-invariant: i wanna help :D
23:37:56 <copumpkin> j-invariant: you can follow conor's blog posts for the basic syntax and implementation
23:38:07 <copumpkin> (of a core behind it)
23:38:07 <ehird> j-invariant knows enough about Epigram i think :P
23:38:10 <j-invariant> but I am not implementing epigram
23:38:14 <ehird> oh man this python program is so ugly...
23:38:20 <ehird> if I was writing it in cled it'd be easy to navigate
23:38:23 <ehird> funny thing is,
23:38:24 <ehird> it's cled
23:38:34 <copumpkin> I mean, it's tricky to design a good AST that maintains invariants you want (especially the j- sort)
23:38:41 <copumpkin> and conor had a nice design on his blog
23:39:06 <j-invariant> copumpkin: do you mean e-pig?
23:39:10 <copumpkin> yep
23:39:21 <Sgeo> ehird, all self-hosting things start out that way, I think
23:40:07 <Sgeo> Also, Clue should be written entirely in Clue. That makes no sense, but do it anyway
23:40:16 <j-invariant> Sgeo: I agre
23:40:55 <ehird> j-invariant: more chatting about your language!
23:41:02 <j-invariant> ehird: I don't really know category theory
23:41:11 <ehird> j-invariant: don't base it on categories then
23:41:20 <j-invariant> ehird: but they are the solution to all problems?
23:41:21 <ehird> WHAT AN INTRUIGING IDEA
23:41:27 <ehird> j-invariant: or ARE they!!!!!!!!
23:41:30 <j-invariant> yet
23:41:31 <j-invariant> yes
23:41:45 <ehird> j-invariant: try and solve 80% of problems then :P
23:42:00 <ehird> self.fill_widget(self)
23:42:00 <ehird> TypeError: fill_widget() takes exactly 1 argument (2 given)
23:42:00 <ehird> xD
23:42:30 <ehird> i love how tk just ignores errors, it's so cute
23:43:38 -!- rom9com has joined.
23:44:06 <ehird> what the fuck ... oh
23:44:08 -!- jesus_muppet has joined.
23:45:09 <ehird> copumpkin: gimme a unicode character that looks like a hole, or a box, or a cross or something
23:45:32 <ehird> mr. unicode
23:45:34 <copumpkin>
23:45:36 <ehird> (your new name)
23:45:43 -!- calamari has joined.
23:45:45 <ehird> copumpkin: what is that :D
23:46:17 <copumpkin> when did I become mr unicode? :(
23:46:51 <j-invariant> I use compose key
23:47:14 <j-invariant> ōºō°øô
23:47:21 <ehird> wow it works ... kinda
23:47:31 <ehird> in a not really working way
23:48:38 <j-invariant> this is really stressful
23:51:16 <ehird> j-invariant: what is
23:51:40 <j-invariant> can't get anything important done :|
23:51:44 <j-invariant> don't have the tools
23:51:55 <j-invariant> don't have the tools to make the tools etc.
23:52:42 <ehird> j-invariant: you have the latter surely
23:52:48 <ehird> haskell is good for implementing languages :P
23:54:14 <j-invariant> I don't "get" haskell
23:54:22 <ehird> j-invariant: there's nothing to get
23:54:26 <j-invariant> I don't know how those guys can do anything with it
23:54:35 <Sgeo> http://qntm.org/tesla DARNIT
23:55:01 <ehird> j-invariant: by testing code rather than proving it correct
23:55:08 <ehird> Sgeo: what
23:55:14 -!- oerjan has quit (Quit: leaving).
23:58:25 <Sgeo> I think I'll try learning OCaml again
23:58:35 <Sgeo> Erm, reading about
23:59:19 <ehird> j-invariant: so tell me about your lang :P
←2011-01-09 2011-01-10 2011-01-11→ ↑2011 ↑all