00:00:07 <CakeProphet> I think he's just confusing reals with integers.
00:00:10 <itidus20> there is no real number n which exists whereby real number n+1 does not exist
00:00:19 <elliott> itidus20: same for naturals...
00:00:47 <oerjan> itidus20: true. the number of real numbers is _not_ a real number, it's something else called a transfinite cardinal number
00:01:08 <elliott> oerjan: you might have left off the "transfinite" part :P
00:01:28 <oerjan> well transfinite here means just "beyond the finite ones"
00:01:38 <oerjan> the finite ones are just the natural numbers
00:03:00 <itidus20> ah ok so the thing about real numbers then is that they are supposed to have leading and trailing zeros
00:03:17 <oerjan> "infinity" tends to lead to different concepts depending on exactly what property of finite numbers you are generalizing. cardinals are when you are generalizing the size of sets.
00:03:53 <elliott> itidus20: Specifically the number of real numbers is ב₁ (usually taken, by axiom, to be equal to א₁)
00:04:11 <elliott> arguments aren't about winning hth
00:04:31 <itidus20> for some reason.. it rarely occurs that a person says ...333.0
00:04:33 <oerjan> itidus20: leading zeros, not necessarily trailing (only numbers of the form a/10^n where a and n are integers have that
00:04:38 <elliott> itidus20: that's not a real number
00:04:43 <elliott> it is a p-adic number, though
00:04:55 <quintopia> PatashuWarg: let's write it in base 3: 0.10 see the leading and trailing zeroes?
00:05:05 <elliott> itidus20: that's not a p-adic number.
00:05:13 <elliott> http://en.wikipedia.org/wiki/P-adic_number
00:05:20 <elliott> a system not the same as the real numbers
00:05:25 <elliott> left-infinite rather than right-
00:05:48 <itidus20> suppose you have left and right infinite.. you're just up to your knees in shit then? :D
00:06:40 <quintopia> for bonus points devise a system where no number has more than 2 representations (which is a nice property of the standard real numbers)
00:06:48 <itidus20> oh i mean im sure in some backwards corner of mathematics its already been done dont get me wrong im not that arrogant
00:07:34 <oerjan> <elliott> oerjan: am i helpnig <-- my putty may be broken, but i suspect you hit some trouble with hebrew right-left writing there
00:07:55 <itidus20> PatashuWarg: sorry i have issues
00:08:28 <itidus20> yes 0.333... is a fantastic example of a number which does not have infinite trailing zeros
00:08:39 <itidus20> which i did not think of when i made my statement
00:09:05 <elliott> oerjan: i tried to insert overrides
00:09:06 <oerjan> itidus20: i cannot recall any use for numbers which have both leading and trailing ... oh wait, maybe hyperreals count
00:09:13 <elliott> itidus20: backwards corner?
00:09:26 <oerjan> elliott: ah. maybe putty just didn't notice.
00:09:32 <PatashuWarg> both leading and trailing ... sounds like a higher cardinality than reals
00:09:35 <CakeProphet> elliott: he's talking about number theory of course.
00:10:16 <itidus20> elliott: noone can account for the activities of mathematicians...
00:10:25 <oerjan> elliott: also, i wouldn't really call the continuum hypothesis "usual", i haven't really seen much math assuming anything about it
00:10:42 <elliott> oerjan: fair enough; I was under the impression it was usually taken to be true rather than false
00:10:52 <oerjan> beyond that which investigates it specifically
00:11:06 <elliott> oerjan: the cardinality of the reals is often casually referred to as aleph-one, though, isn't it?
00:11:10 <elliott> which is the point i was trying to make
00:11:10 <oerjan> elliott: well that's what Cantor wanted :P
00:11:25 <itidus20> lets face it guys.. babbage built a computer... noone else had anything like it going on at the time... you never know what rabbit a mathematician is gonna pull out of a hat next
00:12:57 <itidus20> i can't really explain why history seems more exciting when it happened over 100 years ago.. but it does
00:12:58 <oerjan> elliott: there are some popular math books which confuses them, i think
00:13:06 <quintopia> you should go back in time and give him money to build it
00:13:23 <quintopia> (we actually might build an analytical engine soon. someone is looking for funding to do it.)
00:13:36 <itidus20> so he built a fancy calculator, and designed a computer
00:14:13 <quintopia> it will easily fill a room. it will be quite expensive
00:15:37 <quintopia> so ... it can do anything your computer can, given enough time and a big enough store!
00:16:15 <quintopia> (babbage reckoned it could multiply two twenty digit numbers in under three minutes)
00:19:35 <itidus20> the signifigance being, I imagine, that it could do it all day
00:22:23 <CakeProphet> quintopia: have you read The Difference Engine.
00:22:45 * itidus20 laughs to myself. oerjan: I think I will just let it go this time.
00:22:57 <oerjan> unlike for real numbers in different bases, the different p-adic number sets (n-adics? 10 isn't prime so...) aren't just different representations of the same set
00:25:45 * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me.
00:26:48 * itidus20 has probably detected a fault in my thinking patterns.... .... go him
00:27:23 <Gregor> itidus20: Even for what you were attempting, that's the wrong person, "me" is the software.
00:27:36 <elliott> * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me.
00:28:00 <itidus20> Gregor: When I said "laughs to myself" it was a genuine mistake, not a joke.
00:28:01 <monqy> I just don't use /me
00:28:04 <elliott> <oerjan> unlike for real numbers in different bases, the different p-adic number sets (n-adics? 10 isn't prime so...) aren't just different representations of the same set
00:28:09 <elliott> hm are the ten-adics even valid?
00:28:18 <monqy> a few years ago I used to use /me, and when I did, I used pronouns properly
00:28:19 <itidus20> It may be related to some kind of neurosis
00:28:25 <elliott> I would think the fact that p isn't prime would, you know...
00:28:44 <CakeProphet> itidus20: yes. I often attribute my typos to my cancerous schizophrenia.
00:28:49 * Gregor says, "But this is the only way to speak."
00:30:13 <itidus20> CakeProphet: it was more than a typo
00:30:31 <CakeProphet> actually it would explain a lot of things if I were actually schizophrenic. Or something less in severity.
00:31:00 <CakeProphet> itidus20: I frequently misconjugate words or just type the wrong word. Ask anyone here.
00:31:18 <monqy> sometimes I make typoes.
00:31:45 <CakeProphet> it's not like... a mental problem. Just carelessness or thinking too fast.
00:31:54 <itidus20> I'm not "ok". But sure one can say that noone is perfect.
00:32:31 <itidus20> And indeed, the kinds of troubles I have all seem to relate to interactions with the other humans
00:32:54 <monqy> except for the ones that don't
00:33:18 <itidus20> I would do just as good as the next guy in some post-armageddon where I was the sole-survivor
00:34:00 <CakeProphet> I would build and program zombie slaying robots if I survived long enough to find the parts.
00:34:19 <PatashuWarg> I'm not prepared for a zombie invasion, and that's OK
00:34:40 <CakeProphet> and, most likely, the library of reference material I would need to know how to do everything without the internet. It is a crutch.
00:35:33 <CakeProphet> PatashuWarg: I'm glad you've accepted that.
00:35:42 <CakeProphet> this is what #estoeric-therapy is all about: Acceptance
00:36:22 <CakeProphet> you need to bring your FSA to an accepting state.
00:36:55 <itidus20> I can accept that I don't need to know what an FSA is to get the gist of what you're saying.
00:36:55 <oerjan> <elliott> hm are the ten-adics even valid? <-- as a ring, sure, but only primes extend to a field iirc
00:37:34 <CakeProphet> itidus20: to get my totally awesome joke you need to know about it though.
00:38:22 <oerjan> elliott: specifically, i think the 10-adics have numbers divisible indefinitely by 2 and indefinitely by 5, and if you multiply those you get 0
00:38:38 <elliott> oerjan: thats how felds works,,
00:39:12 <itidus20> Yes and I google things which I wouldn't tell my own mother
00:39:12 <CakeProphet> I am reading about surreal numbers that I googled as we speak.
00:39:28 <CakeProphet> same. she wouldn't really understand what a p-adic number is.
00:39:39 <itidus20> But in this case I knew that TLA
00:39:51 <itidus20> even though if you asked me to define it we might be in a fix
00:40:42 <quintopia> it's interesting how TLDs are TLAs in a sense
00:41:30 <oerjan> * Gregor says, "But this is the only way to speak." <-- ah ancient MUD days...
00:41:56 <Gregor> 'I remember talking to people who put quotes behind all their lines unthinkingly.
00:42:01 <Gregor> 'Even when they weren't on MUDs.
00:42:24 <oerjan> elliott: um no, in fields you can have the product of two nonzero elements be zero
00:42:37 <CakeProphet> itidus20: a fsa is a set of states, an alphabet, and a state-transition function that maps a state-input pair to a new state.
00:42:51 <CakeProphet> oh, there's an initial state and a set of accepting (or final) states.
00:43:52 <CakeProphet> you can visualize it as a bunch of circles connected by arrows. Each circle is given a state (from the set of states), and each arrow is labeled by an input character (from the alphabet)
00:44:05 <itidus20> CakeProphet: I have pondered over it before indirectly.. because my purpose for existence is to ultimately be a game designer
00:44:07 <CakeProphet> you start the initial state, and then you take the input and follow the arrows... basically.
00:44:49 <itidus20> ok so.. can the states be duplicated?
00:45:12 <CakeProphet> do you mean, can you have more than one "circle" with the same state? no.
00:45:52 <itidus20> cool. and.. i assume multiple arrows can have the same input character
00:46:25 <oerjan> itidus20: er that wasn't to you
00:46:32 <oerjan> i was correcting myself above :P
00:46:40 <CakeProphet> each state must have an "arrow" for each character in the alphabet.
00:46:49 <CakeProphet> every state-input combination has to go somewhere.
00:47:01 <CakeProphet> so yes, more than one arrow can share an input character.
00:47:18 <CakeProphet> a lot of simple machines can be modeled as FSA. A vending machine, for example.
00:47:39 <oerjan> itidus20: whether arrows from the same state can have the same input character, depends on whether the FSA is deterministic (it cannot) or nondeterministic (it can)
00:47:56 <itidus20> oh nevermind that comment of mine
00:48:41 <itidus20> so a final state I assume doesn't have any outputs
00:49:54 <oerjan> itidus20: it might. it's only really final if there aren't any more characters then
00:50:16 <CakeProphet> itidus20: it always has a state that it transition to for each input character.
00:50:31 <CakeProphet> but sometimes it might circle back on itself.
00:51:10 <CakeProphet> so that once you're at a final state you're stuck there no matter what input you give the automata. but it doesn't have to work like that.
00:52:00 <CakeProphet> oerjan: is the state-transition function still a function in the nondeterministic version?
00:52:45 <itidus20> so.. if there are 4 states.. and 3 characters then i imagine there are 12 transitions.
00:52:52 <oerjan> um not with a single state as result value, anyway
00:53:31 <CakeProphet> oerjan: ah so the result is a set of possible states then?
00:55:09 <CakeProphet> the only purpose of the accepting states is to determine whether or not an input string is part of the "language" it accepts.
00:55:13 <CakeProphet> I'm not sure why I put quotes around that.
00:55:56 <itidus20> and so you could say that (state1)--ABCD-->(state2)--ABCD-->(state3)--ABCD-->(state4)--ABCD-->(connects to state1 which is impossible in this diagram)
00:56:12 <itidus20> oh well of course thats with 4characters instead of 3
00:56:39 <oerjan> that's a pretty simple machine though, it just counts characters
00:57:19 <CakeProphet> as far as I can tell it only has one input character as well.
00:57:57 <CakeProphet> http://en.wikipedia.org/wiki/File:DFAexample.svg
00:58:34 <CakeProphet> the double-circle around S1 means it's an accepting state.
00:58:50 <CakeProphet> the arrowing coming out of nothingness means that S1 is the initial state.
00:58:54 <itidus20> 4 states: state1,state2,state3,state4 ... 4 characters: A, B, C, D... 16 transitions conveniently grouped into 4 identical ones.. state1->state2, state2->state3, state3->state4, state4->state1
00:59:08 <itidus20> that is what i was trying to say
00:59:47 <itidus20> ah ok so in your diagram .. the characters are 0 and 1
01:01:25 <itidus20> and finally what does accepting state mean?
01:01:50 <CakeProphet> if an input string ends at an accepting state that means the string is part of the language of the automata.
01:02:03 <lambdabot> ["","0","1","00","01","10","11","000","001","010","011","100","101","110","...
01:02:24 <CakeProphet> that's all of the possible input strings in that alphabet
01:02:31 <CakeProphet> can you figure out which ones are part of the language?
01:02:31 <itidus20> ohhh .. so these FSA's have input strings
01:02:38 <CakeProphet> right, that's the purpose of the alphabet.
01:03:50 <CakeProphet> itidus20: so which input strings are accepted as a member of the language of that automata?
01:04:45 <itidus20> well i should point out i dont understand the notation of "(`replicateM` "01") =<< [0..]" but i do recognize the series
01:05:11 <CakeProphet> it's irrelevant to FSA I was just generating all of the possible input strings... or at least the beginning of the series.
01:05:14 <itidus20> it is clearly natural binary numbers
01:05:30 <itidus20> uh except the empty set which is .. well..
01:05:58 <CakeProphet> okay so which strings end at an accepting state in that diagram?
01:06:47 <CakeProphet> ....I've exhausted your attention span haven't I?
01:07:23 <itidus20> "1" ends in an accepting state
01:07:35 <CakeProphet> but can you say something about ALL Of the strings?
01:07:56 -!- cheater__ has joined.
01:07:57 <itidus20> "0" doesn't because it needs a second character presumably to get back to the accepting state
01:10:21 <itidus20> i can guess by cheating that the set of strings you listed with haskell is the strings in question.. except it's not quite because of "0"
01:10:39 <CakeProphet> the set of strings I listed is ALL of the possible inputs
01:11:01 <CakeProphet> ....can you just like, look at the diagram and see?
01:11:26 <zzo38> Does Haskell know to not add semicolons where I don't want them?
01:11:26 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:11:44 <itidus20> i would have to go through it following every arrow to understand
01:12:07 <CakeProphet> there are infinite possibilities, so you'd end up doing that forever.
01:12:34 <itidus20> well i would do a few.. it would take a while..
01:12:49 <zzo38> CaheProphet: I mean that it uses its layout rules to determine where to add semicolons, sometimes I might want a line break but it won't automatically add semicolons. If you use { } and explicit semicolons will it know not to add its own semicolons?
01:12:51 <oerjan> zzo38: semicolons are added based on indentation.
01:12:51 <CakeProphet> the 1s are irrelevant to whether or not the input is accepted.
01:13:24 <CakeProphet> I don't know, actually. I never use the {} syntax.
01:13:39 <oerjan> zzo38: { } turns off implicit semicolons, yes. another way is to simply indent the next line a bit more than the current layout alignment.
01:14:23 <zzo38> It seems somewhat strange that record syntax also uses { } but separates the items with commas instead of semicolons. Why is that?
01:14:46 <itidus20> CakeProphet: well.. as frustrating as it is i have to stop regularly to eat and my diabetes isn't that well controlled..
01:14:47 <CakeProphet> to destroy your arbitrary rules of consistency and laugh at them.
01:14:58 <CakeProphet> itidus20: okay that's fine I will beat some sense into you later.
01:15:32 <oerjan> zzo38: well record syntax doesn't have layout. it might be confusing if implicit semicolons got intertwined in them
01:15:37 <CakeProphet> not as painful as me berating you over how obvious the answer to my question is
01:15:39 <itidus20> it can drive a person to distrction to hear it come up again
01:16:21 <zzo38> oerjan: Then why do they use braces? It doesn't make sense to me.
01:16:41 <oerjan> well they had to use some delimiter. maybe it was a bad choice.
01:18:05 <zzo38> I don't know. Maybe it is OK how it is.
01:18:14 <CakeProphet> what else would they use? C [y] is applying a list
01:18:32 <CakeProphet> C <y> is stupid why would I even consider that.
01:18:38 <oerjan> it's pretty much agreed that haskell's record system is badly designed, anyhow, although for different reasons :P
01:19:30 <oerjan> <> are operator characters, not delimiters, it would mess up other uses or make the lexical syntax even more complicated
01:19:46 <zzo38> oerjan: Yes I realize < > are operator characters rather than delimiters and can see why that is bad
01:20:00 <zzo38> And I can also see why ( ) and [ ] are bad for record syntax
01:20:13 <zzo38> So perhaps there is no other choice than { }
01:20:40 <CakeProphet> it also matches the record declaration syntax.
01:20:49 <zzo38> Maybe if you used semicolons instead of commas, you could make it work just by requiring the { to be prefixed by a word such as "record"
01:20:57 <PatashuWarg> hmm is any character not used for an operator?
01:21:27 <oerjan> zzo38: yes, then it could have layout too based on that keyword, although it would be more verbose
01:21:34 <zzo38> The specials include ` { } ( ) [ ] ' " and " and ' have other meanings. ' is like a letter which is neither uppercase nor lowercase
01:21:52 <zzo38> And ' can also be used for character constants, and for names in Template Haskell. And " is used for strings.
01:22:03 <oerjan> > let a ~- b = a-b in 2 ~- 3
01:22:35 <zzo38> Yes, : is an uppercase operator symbol, and the others are lowercase.
01:23:12 <zzo38> At least, reading the specifications, it is what it looks like to me; that : is considered uppercase.
01:23:12 <CakeProphet> yes if you want to yell in symbols you do it like this:::::::::::::::::::
01:24:04 <zzo38> It is what seemed to me, at least, that : is an uppercase symbol, _ is a lowercase letter, and ' is a letter which is neither uppercase nor lowercase.
01:24:19 <PatashuWarg> does any other language make distinctions like this?
01:24:30 <elliott> Gregor: So I just ran into a situation where I'd like plash-esque total sandboxing..............
01:24:36 <oerjan> PatashuWarg: haskell distinguishes alphanumeric identifiers based on whether they start with upper or lower case. for operator identifiers : happens to have essentially the same meaning as being the only upper case one
01:24:46 <zzo38> Isn't there something in Ruby where capitalized words are treated different somehow?
01:24:47 <Gregor> elliott: So use UMLBox :P
01:24:55 <elliott> Gregor: I'm asking for a link, doofus :P
01:25:05 <Gregor> elliott: http://bitbucket.org/GregorR/umlbox
01:25:31 <CakeProphet> titlecase words are considered classes I believe.
01:25:36 <elliott> bitbucket.imaspecialsnowflake.org
01:25:38 <oerjan> PatashuWarg: ocaml also distinguishes things based on case afair
01:25:43 <elliott> TIME TO REMEMBER HOW TO USE HG
01:25:50 <elliott> Gregor: So hey, what happened to you hosting everything on codu.org :P
01:25:54 <CakeProphet> $ is for globals, @ is instance variables, and I think ALL_CAPS is for global constants?
01:26:13 <elliott> CakeProphet: uppercase = class, module or constant.
01:26:16 <elliott> technically, just constant
01:26:20 <elliott> it's just that classes and modules are constant
01:26:33 <elliott> Gregor: Hmm, are standard Debian kernels built with UML?
01:26:36 <oerjan> but it doesn't have upper/lower case for operators, although unlike haskell it decides precedence by the first symbol
01:26:40 <CakeProphet> well you can redefine classes via partial classes.
01:26:44 <monqy> aren't classes/modules in ruby not constant at all
01:26:55 <monqy> you can do monkey patching on them and stuff
01:27:09 <elliott> monqy: constant doesn't mean cnostant
01:27:14 <Gregor> elliott: Re codu: Occasionally I put things on bitbucket when they're a bit less me-centric.
01:27:20 <elliott> you can mutate the objects just not reassign them
01:27:33 <elliott> <Eduard_Munteanu> SELinux, user limits and maybe cgroups, IIRC.
01:27:35 <monqy> elliott: that is a stupid definition of constant
01:27:38 <elliott> HAHAHAHA I SHALL POWER THROUGH MY COMPETITOR WITH SIMPLICITY
01:27:41 <Gregor> elliott: Re Debian: There's the user-mode-linux package, but it's not sufficient, you need to build a UMLBox-specific kernel.
01:27:43 <zzo38> It would seem in Haskell, that if you use Template Haskell, then when reading a lexeme starting by ' then you have to look ahead to figure out what you mean
01:27:54 <elliott> Gregor: Maybe I WILL just use Plash then :P
01:28:13 <Gregor> elliott: ... err ... not HOST kernel.
01:28:19 <Gregor> elliott: GUEST kernel.
01:28:31 <Gregor> elliott: The host box requires nothing special, you don't even need root to get UMLBox running.
01:28:32 <elliott> Gregor: Yeah, but it still involves building a kernel, which is strictly more work than installing Plash :P
01:28:43 <Gregor> elliott: Except installing plash involves traveling back in time :P
01:28:52 <elliott> Hmm, it doesn't work any more?
01:29:24 <itidus20> CakeProphet: ok it appears to only work for numbers which have an even number of zero's
01:29:27 <zzo38> Can you use ptrace to make up all these special kind of permission and override?
01:29:38 <Gregor> elliott: No Debian later than lenny :(
01:29:52 <Gregor> elliott: When squeeze started getting near release, they made a change that broke plash.
01:29:54 <itidus20> i might not have understood that without your hint though
01:29:54 <CakeProphet> itidus20: are you familiar with regular expressions?
01:30:08 <Gregor> elliott: That's ... pretty much the whole reason I wanted to make UMLBox :P
01:30:26 <elliott> Gregor: What happened to cunionfs being enough anyway, and also how does the proxy work now
01:30:28 <itidus20> yup.. had to use em to block bots on another chat system
01:30:34 <HackEgo> env: translatefrom: No such file or directory
01:30:41 <elliott> `translatefromto sv en poop
01:30:42 <HackEgo> env: translatefromto: No such file or directory
01:30:47 <CakeProphet> itidus20: okay well you can describe the language accepted by an automata as a regular expression.
01:30:48 <elliott> Gregor: Your soul will be devoured through death and evil
01:30:52 <elliott> But thanks for making stderr work finally
01:30:52 <Gregor> elliott: At present, the proxy simply doesn't work.
01:30:55 <HackEgo> ` \ addquote \ allquotes \ botsnack \ calc \ commands \ creatures \ define \ delquote \ esolang \ etymology \ fuck \ google \ imdb \ json \ k \ karma \ marco \ minifind \ paste \ pastenquotes \ pastequotes \ penis \ ping \ prefixes \ quine \ quote \ quotes \ rec \ roll \ runasperl \ runfor \ rungcc \ say \ sayhi \ strfile
01:31:01 <elliott> Gregor: OK where the hell are my commands.
01:31:04 <CakeProphet> itidus20: do you think you could find the regex for our example?
01:31:11 <Gregor> elliott: Uhh ... that's a good question ...
01:31:25 <elliott> Gregor: THEY MIGHT NOT WORK BUT THEY STILL MATTER
01:31:32 <elliott> Those aren't actually my commands actually
01:31:35 <HackEgo> env: wl: No such file or directory
01:31:36 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
01:32:00 <CakeProphet> itidus20: actually there can be more than one regular expression. they're not unique.
01:32:05 <HackEgo> env: quote: No such file or directory
01:32:13 <elliott> `run quote software patents
01:32:14 <HackEgo> sh: quote: command not found
01:32:16 <itidus20> to be honest i don't really know regex very well.. i had to kind of copy and paste and look up examples when i have used them
01:32:16 <elliott> `run bin/quote software patents
01:32:17 <HackEgo> sh: bin/quote: Permission denied
01:32:21 <elliott> Gregor: I diagnose a path error, also a permissions error
01:32:48 <CakeProphet> itidus20: okay well the answer is (1*01*0)*1*
01:33:27 <CakeProphet> * is the Kleene star. it means "zero or more repetitions of the previous character"
01:34:15 <CakeProphet> in fact, this is how regular expressions began, to describe the languages of automata.
01:34:34 <elliott> `translate IS GREGOR A DAMN???
01:34:35 <HackEgo> env: translate: No such file or directory
01:35:24 <monqy> is someone trying to teach itidus20 about finite automata, regular languages, regular expressions, etc.
01:35:28 <monqy> is that what's happening
01:35:38 <CakeProphet> itidus20: so in the pattern wrapped in parens, I put 1* between each zero, and make sure there's two zeros... then I put a * around that whole pattern to signify that there can be zero or more repetitions of it.
01:35:43 <Gregor> elliott: Yes yes, I'm fixing the path issue.
01:35:48 <CakeProphet> and then another 1* at the end, because it needs to be there.
01:36:10 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
01:36:34 <HackEgo> /hackenv/bin/translatefromto: line 13: /hackenv/bin/json: Permission denied
01:37:08 <CakeProphet> itidus20: I put 1* between each zero because 1's can be anywhere in the string and are completely irrelevant.
01:37:08 <Lymee> `run cat /usr/bin/yes | paste
01:37:10 <HackEgo> mkdir: cannot create directory `/paste': Permission denied \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7862 \ /hackenv/bin/paste: line 14: /paste/paste.7862: No such file or directory
01:37:21 <zzo38> Oops you mixed up all of the permissions
01:38:02 <Gregor> Hold on, people, I'm still fixing shit :P
01:38:23 <itidus20> ok so to represent any binary number you could say (0*1*)*
01:38:41 -!- pikhq_ has joined.
01:38:46 <elliott> Gregor: http://codu.org/projects/hackbot/fshg/index.cgi/rev/d0b6c6046174 Nice unknown command
01:39:11 <monqy> itidus20: is the empty string a binary number
01:39:16 <Lymee> itidus20, Why not [01]*
01:39:18 <itidus20> or i would prefer it as (0*1*)+
01:39:42 <monqy> itidus20: it can still be the empty string
01:39:57 <CakeProphet> itidus20: so when you use a regular expression (excluding advanced features of Perl-based regex languages) you're actually describing a finite state automata that accepts the input strings that you're wanting to match.
01:40:00 <pikhq_> Gregor: Think you could link to UMLBox?
01:40:13 <monqy> itidus20: ignore Lymee
01:40:33 <Gregor> pikhq_: http://bitbucket.org/GregorR/umlbox
01:40:55 <HackEgo> 480) < falso___> its also open sores
01:40:55 <CakeProphet> itidus20: in Perl, yes. But formal regular expressions don't really use the [] notation as far as I'm aware.
01:40:59 <elliott> COPRO YOU KEEP ADIG THE WRONG QUTOOES
01:41:11 <Lymee> `quotes open sores
01:41:30 <itidus20> so how else might you say [01]+
01:41:31 <HackEgo> 554) <itidus20> software patents strike again \ 555) < itidus20> software patents strike again < ais523_> that's got to be at least three times, now < ais523_> are they out yet?
01:41:41 <CakeProphet> itidus20: also I don't think + is a formal operator either. but a+ is equivalent to aa*
01:41:42 <HackEgo> 314) <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE. \ 438) [after a long string of Lymia getting lambdabot to spit out huge, meaningless type signatures] <Lymia> I need to learn
01:41:56 <monqy> itidus20: < monqy> (0|1)(0|1)*
01:42:00 -!- pikhq has quit (Ping timeout: 264 seconds).
01:42:07 <elliott> `addquote <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:42:09 <HackEgo> 583) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:42:29 <monqy> where are the doubles paces
01:42:54 <monqy> itidus20: i was afraid it got lost in the quote foolery
01:43:04 <CakeProphet> itidus20: the basic operations are concatenation, which is just represented by juxtaposing two expressions (aa). alternation, to describe a set union (a|b), and Kleene star, which I already explained.
01:43:25 <elliott> `addquote <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:43:26 <HackEgo> 583) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
01:43:31 <elliott> Gregor: do we still have the stupid hg merge bug
01:43:36 <CakeProphet> itidus20: I believe all of the basic regex operators can be defined in terms of those three.
01:44:00 <Gregor> elliott: It's not a bug, it's just a weird behavior :P
01:44:17 <elliott> Gregor: It's weird, bad behaviour, aka a bug
01:44:33 <Gregor> elliott: By that logic, YOU'RE a bug OHHHH BURN
01:44:52 <Gregor> That's like megaburn coming from somebody named Gregor btw
01:45:07 <CakeProphet> itidus20: [] is just sugar for |. a? is (a|) a+ is aa*
01:45:53 <monqy> is there a good symbol for the empty string? I've seen both epsilon and lambda, but neither of those are on this keyboard helpe
01:45:55 <elliott> Gregor: Yes I am an insect please do not mock me
01:46:16 <monqy> I prefer epsiolon, as well
01:46:22 <monqy> but I have seen lambda
01:46:35 <monqy> at least I think I've seen lambda
01:46:37 <HackEgo> 462) < pikhq_> I'm afraid that Qu'ran is probably not that good-tasting. < coppro> pikhq_: edible paper < pikhq_> Still, I'd rather not eat a book of bullshit.
01:46:43 <CakeProphet> nothingness is a pretty good representation of the empty string
01:46:51 <elliott> i will eliminate all unholy formatting, also unfunny quotes
01:47:01 <CakeProphet> mathematicians should just leave nothing in place of the empty string, and hopefully everyone else will catch on.
01:47:33 <oerjan> < elliott> oerjan: PROBABLY FUCK YOU <-- wat?
01:47:45 <elliott> oerjan: oops i meant coppro
01:48:05 <elliott> SPACES IN FRONT OF NAMES IS HERESY DEATH
01:48:35 <monqy> 18:50:05 < elliott> SPACES IN FRONT OF NAMES IS HERESY DEATH
01:49:13 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I
01:49:31 <HackEgo> 110) <fax> oklopol geez what are you doing here <oklokok> ...i don't know :< <oklokok> i actually ate until now, although i guess i also did other things... \ 187) <cpressey> < ais523> then running repeatedly until you get the right sequence of random numbers < ais523> and just completely ignoring the input <-- some people
01:49:33 <elliott> Gregor: hey, hackego corrupts input
01:49:36 <elliott> Lymee: It's regex you idiot
01:49:45 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:49:50 <Gregor> elliott: HackEgo ... doesn't take input ...
01:49:52 <HackEgo> 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 8) <SimonRC> TODO: sex life \ 66) <Sgeo> What else is there to vim besides editing commands? \ 90) <Sgeo> I'd imagine that it already has, and no one noticed \ 92) <Sgeo|web> Where's the link to the log? <lament> THERE'S NO LOG. YOUR REQUEST IS
01:49:59 <elliott> Gregor: It corrupts the input line by stripping trailing spaces
01:50:09 <HackEgo> 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 5)
01:50:22 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:50:27 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 8) <SimonRC> TODO: sex life \ 16) <pikhq> First, invent the direct mind-computer interface. <pikhq> Second,
01:50:31 <HackEgo> 110) <fax> oklopol geez what are you doing here <oklokok> ...i don't know :< <oklokok> i actually ate until now, although i guess i also did other things... \ 187) <cpressey> < ais523> then running repeatedly until you get the right sequence of random numbers < ais523> and just completely ignoring the input <-- some people
01:50:34 <elliott> Lymee: oh that'll work yes
01:50:41 <Lymee> I did it a few lines ago...
01:50:42 <HackEgo> mkdir: cannot create directory `/paste': Permission denied \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32240 \ /hackenv/bin/paste: line 14: /paste/paste.32240: No such file or directory
01:51:01 <Lymee> <elliott> `quote <\
01:51:01 <Lymee> <HackEgo> egrep: Trailing backslash
01:51:01 <Lymee> <Lymee> `run quote "< "
01:51:02 <Gregor> elliott: I keep forgetting to fix that ...
01:51:14 -!- CakeProphet has quit (Ping timeout: 246 seconds).
01:51:31 <Gregor> `run echo pastypaste | paste
01:51:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6258
01:51:34 <elliott> 12:42:28: <fizzie> Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci.
01:51:34 <elliott> YES IT IS YOU PEOPLE IN THE LOG ARE STUPID
01:51:42 <elliott> Lymee: fair enough, stop saying nyan
01:51:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14435
01:52:20 <Lymee> elliott, nyan nyan
01:52:22 <elliott> how to fix that j-invariant quote...
01:53:02 <Lymee> 305) <Deewiant> !bfjoust sm3 < <EgoBot> Score for Deewiant_sm3: 43.4
01:53:25 <Lymee> !bfjoust suicide <<<
01:53:33 <EgoBot> Score for Lymee_suicide: 0.0
01:53:36 <Lymee> !bfjoust suicide <
01:53:38 <EgoBot> Score for Lymee_suicide: 0.0
01:54:11 <elliott> I forget why it did so well
01:54:16 <elliott> Maybe the random factors still existed then
01:57:02 -!- Nisstyre has joined.
01:57:10 <elliott> castSTUArray :: STUArray s ix a -> ST s (STUArray s ix b)
01:57:44 <monqy> is that like doing unsafecoerce on everything in it
01:57:55 -!- CakeProphet has joined.
01:57:55 -!- CakeProphet has quit (Changing host).
01:57:55 -!- CakeProphet has joined.
01:58:03 <elliott> at least it only works on certain types... apparenrtly; I don't see that enforced anywhere
01:58:10 <Lymee> :t map unsafeCoerce
01:58:30 <Lymee> elliott, why isn't "unsafe" in the function name?
01:58:44 -!- Sgeo has joined.
01:58:49 <elliott> Lymee: well that's what _I'm_ wondering
01:59:07 <elliott> you can use it to convert floats and doubles to words and back
01:59:15 -!- Sgeo has quit (Client Quit).
01:59:21 <elliott> and I think this is in an unsafeCoerce manner
01:59:27 <elliott> but it's only for certain element types???
01:59:32 <elliott> so maybe the interface is actually ok
01:59:39 <elliott> (and the implementation ok for ieee cpus)
02:00:32 <Lymee> @t map (flip (,) (unsafeCoerce y) . unsafeCoerce)
02:00:32 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
02:00:38 <Lymee> :t map (flip (,) (unsafeCoerce y) . unsafeCoerce)
02:02:05 -!- CakeProphet has quit (Ping timeout: 246 seconds).
02:02:41 <Lymee> @pl \x -> (unsafeCoerce x, unsafeCoerce x)
02:02:41 <lambdabot> liftM2 (,) unsafeCoerce unsafeCoerce
02:02:50 <Lymee> :t map (liftM2 (,) unsafeCoerce unsafeCoerce)
02:02:57 <Lymee> Wonder what the first one would have done
02:05:09 <lambdabot> parse error (possibly incorrect indentation)
02:05:52 <lambdabot> parse error (possibly incorrect indentation)
02:06:22 <lambdabot> parse error (possibly incorrect indentation)
02:06:34 <lambdabot> parse error (possibly incorrect indentation)
02:06:50 <monqy> lambdabot..........
02:06:55 <oerjan> !haskell (\ø -> ø) "test"
02:07:13 <oerjan> what not EgoBot either
02:07:37 <Lymee> !haskell putStrLn $ (\あ -> あ) "test"
02:08:04 <Lymee> !haskell putStrLn $ (\a -> a) "test"
02:08:14 -!- CakeProphet has joined.
02:08:26 -!- CakeProphet has quit (Changing host).
02:08:26 -!- CakeProphet has joined.
02:09:11 <oerjan> something isn't set up quite right
02:09:26 <elliott> <PatashuWarg> why u no like unicode
02:09:28 <lambdabot> mueval-core: <stdout>: hPutChar: invalid argument (Invalid or incomplete mu...
02:10:44 <elliott> i just picked my laptop up and slammed it down really hard because of you
02:11:07 <oerjan> if that's literally true i suggest you seek help.
02:11:29 <Lymee> > \バカなlambdabot -> undefined
02:11:30 <lambdabot> Overlapping instances for GHC.Show.Show (t -> a)
02:11:32 <oerjan> wait, now i sound like my father.
02:11:51 <Lymee> > \バカな -> undefined
02:11:53 <lambdabot> Overlapping instances for GHC.Show.Show (t -> a)
02:12:00 <PatashuWarg> http://www.youtube.com/watch?v=DIn4L7hUmUI
02:12:01 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:15 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:19 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
02:12:32 <oerjan> Lymee: it cannot print a function
02:12:33 <lambdabot> parse error (possibly incorrect indentation)
02:12:33 <elliott> you havent applied ti to an argument
02:12:45 <Lymee> Why does > parse it correctly but no :t
02:13:00 <oerjan> it tries, then fails horribly because someone imported two different ways of doing it
02:13:09 <elliott> oerjan: (showing a function not :t)
02:13:26 <quintopia> can anyone explain this line from df: /dev/sdb1 5905972 5837136 0 100% /usr
02:13:29 <quintopia> i'm pretty okay at math, and when i add 5837136 and zero, i don't get 5905972
02:13:50 <oerjan> quintopia: it's where the gnomes hide
02:13:58 <elliott> quintopia: reserved blocks for root
02:14:35 <elliott> quintopia: you may want to look at `man tune2fs`.
02:16:44 <oerjan> oh no, you destroyed everything!
02:16:55 <Lymee> @let map f a -> undefined
02:17:09 <Lymee> Wouldn't have worked anyways
02:17:22 <oerjan> @let map f a = undefined
02:17:31 <lambdabot> It could refer to either `L.map', defined at <l...
02:17:51 <elliott> oerjan: rude to the people in hash-haskell
02:18:12 <oerjan> elliott: you cannot escape the ambiguous message
02:18:16 <elliott> shachaf: Shut up my number keys are broken.
02:18:24 <Lymee> @define undefined = error "ur a poopy face"
02:18:38 <oerjan> shachaf: elliott has a long-standing keyboard problem
02:18:58 <Lymee> Could we define a malicious typeclass?
02:19:08 <Lymee> shachaf, how was that done? =p
02:19:15 <shachaf> You can't @let type classes or data types in lambdabot, sadly. :-(
02:19:18 <oerjan> of course when he keeps slamming the laptop down hard, it's no wonder.
02:19:32 * shachaf never thought of pronouncing it as "hash". Weird.
02:19:51 <monqy> octothorpe-haskell
02:20:02 <elliott> @let Data.List.map f a = text "I'm tired of evaluating Haskell code for you."
02:20:02 <lambdabot> Parse error in pattern: Data.List.map
02:20:12 <shachaf> Er, actually, now that I think of it, I say "sulamit haskell".
02:20:21 <monqy> soflty slams laptop on ground, stomps
02:20:39 <shachaf> I guess "hash" kind of makes sense. Though it has too many meanings.
02:21:06 <elliott> shachaf will take his secrets to the grave.
02:21:10 <lambdabot> It could refer to either `L.+', defined at <local...
02:21:13 <elliott> shachaf: I say octothorpe when I'm not being informal
02:21:27 <Lymee> > map (\x -> x) [1,2,3,4]
02:21:38 <lambdabot> arising from the literal `3' at <inter...
02:21:39 <elliott> shachaf: How to do a ?let like that
02:21:39 <shachaf> > mаp (\x -> x) -> [1,2,3,4]
02:21:40 <lambdabot> <no location info>: parse error on input `->'
02:21:54 <elliott> shachaf: Bypassing the ambiguity
02:22:00 <Lymee> @let map a b = error $ "Evil"
02:22:04 <lambdabot> It could refer to either `L.map', defined at <l...
02:22:05 <elliott> <shachaf> Well, OK, you can't.
02:22:17 <shachaf> elliott: Like, whoa, man, you're, like, the same elliott as the one in #haskell.
02:22:20 <Lymee> <shachaf> > mаp 1 2
02:22:20 <Lymee> <lambdabot> *Exception: Evil
02:22:22 <Lymee> How did you do that?
02:22:31 <elliott> shachaf: I'm not that elliottt guy though.
02:22:42 <Lymee> How did you get it to do the *Exception: Evil?
02:22:45 <shachaf> Maybe you're conal elliottt?
02:22:45 <elliott> I'm also not elliottcable, at least until he actually gives me money for this nick like he said he would.
02:23:02 <elliott> I don't think he liked my offer of five hundred dollars.
02:23:03 * pikhq_ is tempted to use umlbox as a sandbox for packaging
02:23:06 <Lymee> @define module Data.List; map a b = error $ "Evil"
02:23:09 <shachaf> elliott: Oh, he came to #haskell once and saw elliottt and was very happy.
02:23:12 <Lymee> @let module Data.List; map a b = error $ "Evil"
02:23:17 <elliott> shachaf: Who, elliottcable?
02:23:19 <Lymee> @let module Data.List
02:23:25 <elliott> I think he has "a thing" about people using His Name.
02:23:49 <Lymee> @let module Data.List where map a b = error $ "Evil"
02:23:55 <oerjan> > mаp (\x -> x) [1,2,3,4]
02:24:08 <oerjan> > mаp (\x -> x) [1,2,3,4]
02:24:08 <pikhq_> elliott: I've previously been spawning chroots.
02:24:12 <Lymee> @let module Data.List (map) where map a b = error $ "Evil"
02:24:33 <Lymee> @let module Data.List (map) where; map a b = error $ "Evil"
02:24:47 <oerjan> shachaf: i think i've got a hunch there :P
02:25:00 <Lymee> oerjan, whatdidyoudo
02:25:13 <elliott> pikhq_: You're writing a package manager?
02:25:17 <elliott> It sucks mine is SO MUCH BETTER.
02:25:19 <oerjan> Lymee: i just cut and pasted shachaf's line. i think it has invisible chars
02:25:24 <monqy> elliott has a package manager too?
02:25:35 <pikhq_> elliott: I've been tinkering off and on for about a month now.
02:25:45 <oerjan> or possibly chars that look normal but aren't
02:26:07 <Lymee> @let a / b = a * b
02:26:09 <elliott> ?let mаp f x = text "I'm tired of evaluating Haskell code for you."
02:26:11 <lambdabot> It could refer to either `L./', defined at <local...
02:26:17 <lambdabot> Ambiguous type variable `a' in the constraint:
02:26:24 <lambdabot> I'm tired of evaluating Haskell code for you.
02:26:29 <pikhq_> I, personally, demand that the packaging be exceptionally declarative.
02:26:39 <elliott> pikhq_: do you hvae issues with Nix?
02:26:49 <pikhq_> Insufficiently declarative.
02:26:56 <elliott> pikhq_: Umm, Nix is purely functional
02:27:00 <shachaf> Lymee: You really abuse it, don't you. @define, @undefine, @undefine foo, and so on all reset the entire L.hs file.
02:27:14 <elliott> shachaf: Not that there's much other choice
02:27:19 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
02:27:21 <pikhq_> elliott: It also has boilerplate up the wazoo! I disapprove of boilerplate.
02:27:33 <Lymee> I'm not sure what the invisible character involved is, but...
02:27:42 <lambdabot> parse error (possibly incorrect indentation)
02:27:42 <shachaf> There is no invisible character!
02:28:14 <pikhq_> GNU make: name=make;version=3.82;gnu_src
02:28:14 <elliott> pikhq_: It defaults to a configure-make-make install build
02:28:19 <pikhq_> There. Complete package!
02:28:24 <Lymee> Long UTF-8 sequences?
02:28:26 <elliott> OK, so trivial syntactical complaints
02:28:28 <pikhq_> ... Sans dependencies. :(
02:28:46 <elliott> Man, your package might be whole BYTES smaller than Nix's!!!!!
02:29:02 <elliott> pikhq_: You could automate dependency-handling. Maybe.
02:29:28 <elliott> Obviously autoconf packages reveal all their _unmet_ dependencies, and if you start it in a clean-ish chroot with just libc and the like, you can determine the _installed_ dependencies with ldd or similar.
02:29:48 <elliott> They also tend to reveal their minimum required versions if they're autoconf
02:29:54 <PatashuWarg> when are we going to get packages that download their own dependencies?
02:32:46 <elliott> Is annotatable a word? Or is it annotate.
02:33:43 <Lymee> @let mаp x y = Data.List.map (/x -> if x != 0 than x else undefined) y
02:33:49 <CakeProphet> http://www.thefreedictionary.com/annotatable if you need more reassurance
02:33:49 <elliott> oerjan: ANNOTATABLE OR ANNOTABLE
02:34:00 <elliott> CakeProphet: thefreedictionary.com is not what I would call "assuarnce"
02:34:04 <pikhq_> Kay, fine, Linux: http://sprunge.us/BfDV
02:34:07 <elliott> Considering it's also a redirection, and the word doesn't appear anywhere else on the page
02:34:20 <elliott> pikhq_: Hey you should be a lot happier that I told you how to automate dependencies.
02:34:25 <Lymee> @let mаp f l = Data.List.map (/x -> if (x != 0) than (f x) else undefined) l
02:34:31 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x) else undefined) l
02:34:33 <elliott> pikhq_: Also Linux has a ton of build-time dependencies you omitted.
02:34:52 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x); else undefined) l
02:34:54 <CakeProphet> elliott: right because it's a word derived from annotate via -able
02:35:05 <CakeProphet> elliott: it's just like... a rule.. of English, you can always use.
02:35:05 <oerjan> you cannot a me, i'm not able
02:35:09 <pikhq_> The full list of dependencies is, BTW, busybox, binutils, gcc, make.
02:35:31 <elliott> pikhq_: Linux depends on a set of basic commands, not busybox
02:35:43 <elliott> And I suspect your make is actually gmake
02:35:56 <Lymee> @let mаp f l = Data.List.map (\x -> if (x != 0) then (f x) else undefined) l
02:35:57 <lambdabot> Multiple declarations of `L.m<stderr>: hPutChar: invalid a...
02:36:08 <pikhq_> Well, yes, what other make would I use? The only other one for Linux systems is, frankly, ridiculous.
02:36:41 <pikhq_> Heirloom make depends on a friggin' C++ compiler.
02:36:49 <oerjan> Lymee: @undefine takes no arguments
02:37:07 <pikhq_> And why the hell would I use BSD make?
02:37:07 <elliott> pikhq_: pmake, bmake, makepp (mostly backwards-compatible with GNU make, so almost certainly supports the portable subset of make), probably OMake
02:37:17 <elliott> pikhq_: It doesn't matter "why", what matters is that your package name is inaccurate
02:37:28 <elliott> Linux does depend on a GNU make though, so the dependency is reasonable
02:37:32 <elliott> But the busybox one definitely isn't
02:37:33 -!- NihilistDandy has quit (Remote host closed the connection).
02:37:46 <Lymee> @let mаp f l = Data.List.map (\x -> if ((len $ take 100 l)==100) then (f x) else undefined) l
02:37:47 <lambdabot> <local>:1:10: Not in scope: `Data.List.map'
02:38:01 <pikhq_> I disbelieve in GNU coreutils.
02:38:08 <oerjan> presumably nobody has figured out how to keep track of each @let definition _and_ check if the result is still coherent if you delete one
02:38:10 <CakeProphet> elliott: your dependency on reasonable dependencies is unreasonable.
02:38:26 <elliott> pikhq_: so busybox is the only option then, OK
02:38:39 <elliott> pikhq_: your personal choices in software do not change the fact that those are not Linux's dependencies
02:38:58 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b])
02:39:04 <CakeProphet> oerjan: probably not very efficiently though.
02:39:12 -!- augur has quit (Read error: Connection reset by peer).
02:39:18 <pikhq_> elliott: I also lied a bit about Linux's dependencies: you have to hack out its dependencies on GNU sed and Perl.
02:39:42 <CakeProphet> basically it would be a recursive delete. delete the definition and then call the delete operation on any definitions that contain the name of the original.
02:39:47 <Lymee> @let mаp f l = Preludemap (\x -> if boom then (f x) else undefined) l where boom = (len $ take 100 l)==100
02:39:48 <lambdabot> <local>:1:10: Not in scope: data constructor `Preludemap'
02:39:53 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else undefined) l where boom = (len $ take 100 l)==100
02:39:54 <elliott> pikhq_: Also, you're using shell scripts as your build scripts there it looks like, so enjoy your being much less declarative and functional than Nix I guess? :-P
02:40:00 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else undefined) l where boom = (length $ take 100 l)==100
02:40:08 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:14 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:25 <Gregor> So apparently slirp is a security nightmare :P
02:40:27 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:40:36 <elliott> Gregor: slirp? Isn't that -- yes it is.
02:40:50 <Gregor> It provides a "configuration interface" via telnet which, amongst other things, allows you to run arbitrary commands >_>
02:40:51 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (len $ take 100 l)>50
02:40:52 <lambdabot> <local>:2:103: Not in scope: `len'
02:40:56 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)>50
02:40:57 <lambdabot> Warning: Pattern match(es) are overlapped
02:41:07 <elliott> Gregor: Dude, seriously, can't you just write a UML driver?
02:41:08 <pikhq_> elliott: Would you be happier if I just tried to use Nix?
02:41:12 <elliott> Surely those have access to the host system
02:41:13 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)>50
02:41:20 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:25 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:41 <Lymee> @let mаp f l = Prelude.map (\x -> if boom then (f x) else (error "Too many items, sorry.")) l where boom = (length $ take 100 l)<50
02:41:46 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28...
02:41:48 <lambdabot> [*Exception: Too many items, sorry.
02:41:54 <elliott> pikhq_: That'd probably put you out of a distro, considering that Nixpkgs is a source of thousands of packages for Nix that work on Linux, OS X, FreeBSD, OpenBSD, and Cygwin
02:41:55 <Gregor> elliott: Well, I was going to get networking and X11 in one go, but it looks like the only networking interface that doesn't require root is slirp ...
02:42:11 <elliott> pikhq_: But if you're gonna state declarativeness as a main goal, then you'd better be better than Nix :-P
02:42:19 <CakeProphet> Lymee: congratulations you did something horrible.
02:42:53 <elliott> Gregor: You'll make your life so much easier if you just write some sort of generic child<->host driver :P
02:42:56 <elliott> And do everything over that
02:43:17 <pikhq_> NixOS does not use musl, and I could not in good conscience make a distro using glibc.
02:43:17 <Gregor> elliott: It would have to be magically generic to support both arbitrary networking and UNIX domain sockets ...
02:43:23 <Gregor> Like, impossible-generic.
02:43:35 -!- augur has joined.
02:43:51 <elliott> Gregor: Just run the HTTP proxy server _inside the guest_
02:43:56 <elliott> Gregor: And make it send requests over that generic mechanism
02:44:17 <Gregor> elliott: Oh, I see your trick.
02:44:29 <CakeProphet> also it's very important that it's called chauffeur
02:44:31 <Gregor> elliott: But anyway, 'til this point I haven't touched the kernel.
02:44:43 <elliott> Gregor: Yeah, but your life is going to get exponentially harder the more you try to do :P
02:44:53 <elliott> You're using slirp, man :P
02:45:06 <Gregor> slirp is pretty nifty, when security isn't a concern ...
02:45:23 <elliott> It was last updated about five hundred years ago, and its man page is unbearable :P
02:45:31 <elliott> (OK, so Debian have made changes)
02:45:35 <elliott> --Kelly "STrRedWolf" Price
02:45:59 <elliott> <pikhq_> NixOS does not use musl, and I could not in good conscience make a distro using glibc.
02:46:12 <elliott> pikhq_: you could probably build your own NixOS using musl
02:46:16 <elliott> if you make a musl package
02:46:21 * oerjan suddenly gets an urge to rename Taneb's latest language to Istanbul
02:46:40 <elliott> It depends rather strongly on upstart though because the packages in Nixpkgs do (or you could just write your own script for every package like you'd have to anyway)
02:47:03 <quintopia> tell me this isn't hilarious: http://images2.wikia.nocookie.net/__cb20080606170116/inciclopedia/images/2/20/DDR_DDR.jpg
02:47:27 <pikhq_> elliott: I'd also want to use runsv instead of upstart...
02:47:30 <oerjan> Lymee: 1 isn't an identifier, the 1 in 1 = 2 is interpreted as a pattern match
02:47:33 <elliott> pikhq_: So write your own scripts
02:47:45 <elliott> pikhq_: At least you have something to do then :P
02:47:55 <lambdabot> <no location info>: parse error on input `='
02:47:57 <elliott> FWIW, I'm not the biggest fan of Nix's package description language, but ... I like it more than yours :P
02:48:10 <CakeProphet> Lymee: using parentheses does not change this fact.
02:48:39 <pikhq_> elliott: I could probably think of a better one.
02:48:55 <elliott> pikhq_: Yep; then you get to implement it
02:49:07 <elliott> Actually Nix is implemented in C++ which sucks, if I wrote one it'd be in Haskell
02:49:20 <oerjan> Lymee: there is no way to redefine 1 like that
02:49:24 <pikhq_> Oh, then Nix would be unusable with a musl system, anyways.
02:49:35 <elliott> pikhq_: Well that's a temporary problem... a big one, though :P
02:49:45 <elliott> > let 1 = 2 in "shut up Lymia"
02:49:56 <pikhq_> Yeah, it's not like there's never going to *be* C++ support.
02:50:01 <pikhq_> It's just a problem right now.
02:50:08 <Lymee> > let 2 = 1 in "nou"
02:50:21 <elliott> pikhq_: Maybe I'll write a purely-functional service system in Haskell :P
02:50:36 <elliott> That sounds really neat I wonder how I'd do that???
02:50:48 <Lymee> > text "<CTCP>ACTION hugs elliott<CTCP>"
02:50:49 <pikhq_> Also, I gave up on trying to get GHC to build on a musl system. It's probably *doable*, but GHC is a royal PITA to build.
02:50:50 <elliott> I'm not sure I trust GHC so much that I'd run it as process one though
02:50:50 <lambdabot> lexical error in string/character literal at chara...
02:50:56 <elliott> Most people use fucking C as their process one
02:50:58 <Lymee> > text "\0001ACTION hugs elliott\0001"
02:50:59 <elliott> HAHA TEN TIMES MORE TRUSTABLE GUYS
02:51:06 <elliott> pikhq_: Well then your OS is useless :)
02:51:23 <elliott> (I have been spending my life trying to be a more perfect Haskell zealot lately)
02:51:23 <pikhq_> elliott: Actually, I gave up on trying to get GHC to build *at all*, too, so. :P
02:51:30 <elliott> GHC is easy to build nowadays, dude
02:51:33 <elliott> It's just autoconf + circular
02:51:51 <pikhq_> Thank you for naming its problems!
02:52:03 <elliott> Har har har, but come on, autoconf packages are not hard to build
02:52:24 <pikhq_> Then they're unbearable.
02:52:35 <pikhq_> I sentence you to GCC.
02:52:47 <elliott> - Get binary of previous build
02:52:52 <elliott> - make install into temporary directory
02:52:56 <elliott> - ./configure --with-ghc=...
02:53:12 <elliott> This has worked for me multiple times recently
02:54:00 <elliott> Hmm, dammit, where's this generic structure transformation covered
02:54:16 <monqy> !haskell {-# LANGUAGE RebindableSyntax #-} import System.IO; fromInteger = (+1); main = print 5
02:54:20 <EgoBot> /tmp/input.23021.hs:1:13: unsupported extension: RebindableSyntax
02:54:33 <monqy> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = (+1); main = print 5
02:54:59 <oerjan> monqy: your fromInteger definition infloops :P
02:55:04 <elliott> data Ann LC a = AnnLam (a, Ann String a) (a, Ann LC a)
02:55:04 <elliott> | AnnApp (a, Ann LC a) (a, Ann LC a)
02:55:04 <elliott> | AnnVar (a, Ann String a)
02:55:12 <elliott> oerjan: I want to turn any type into its Ann type, as shown above
02:55:18 <elliott> THERE MUST BE SOME KIDN OF TYPECLASS FOR THIS :(
02:55:25 <monqy> oerjan: it doesn't work at all because I forgot (+) isn't even in scope :(
02:55:34 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = join (+); main = print 5
02:56:04 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; import Prelude as P; fromInteger = P.join (P.+); main = print 5
02:56:05 <monqy> 19:56:42 <EgoBot> /tmp/input.23091.hs:1:68: Not in scope: `+'
02:56:45 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = Prelude.join (Prelude.+); main = print 5
02:56:59 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print 5
02:57:28 <elliott> monqy: well not with rebindablesyntax, but with _noimplicitprelude_, yes
02:57:33 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print (5 + 5)
02:58:04 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = join (*); main = print 5
02:58:25 <Lymee> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = (\x -> x*x); main = print 5
02:58:33 <monqy> elliott: how does it work with old ghcs like EgoBot's that don't have rebindablesyntax (and instead have noimplicitprelude doing the rebindablesyntax stuff)?
02:59:22 <monqy> but you'd have to do that with rebindablesyntax too wouldn't you
02:59:27 <monqy> since it implies noimplicitprelude???
02:59:33 <elliott> total used free shared buffers cached
02:59:33 <elliott> Mem: 3699 1762 1936 0 34 441
02:59:33 <elliott> -/+ buffers/cache: 1286 2412
02:59:51 <monqy> -XRebindableSyntax implies -XNoImplicitPrelude.
02:59:56 <monqy> (from http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax )
03:00:28 <monqy> somehow I bookmarked 7.0.2 instead of latest
03:03:06 <Lymee> @let {-# LANGUAGE NoImplicitPrelude #-}
03:03:13 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b])
03:03:55 <CakeProphet> http://www.lewrockwell.com/orig2/baskerville1.html
03:03:57 <elliott> there's no way that comment appears at the top
03:04:34 <Sgeo_> http://www.reddit.com/r/bestof/comments/jgpr8/hi/
03:06:38 <oerjan> <elliott> wrong channel <-- wait that wasn't a comment to <Lymee> @let {-# LANGUAGE NoImplicitPrelude #-} ?
03:06:58 <elliott> <Sgeo_> http://www.reddit.com/r/bestof/comments/jgpr8/hi/
03:07:02 <elliott> <elliott> there's no way that comment appears at the top
03:07:52 <itidus20> CakeProphet: is there any magic method to convert a DFA to a regular expression or is it raw problem solving?
03:08:37 <elliott> It is completely impossible. just ask oerjan for the proof.
03:09:04 <monqy> itidus20: magic method? it's a simple algorithm
03:09:37 <itidus20> just like you spoiled xmas for little timmy
03:10:16 <itidus20> a joke based on the idea of ruining things
03:11:06 <itidus20> little timmy being named to sound like a poor little sickly kid
03:11:33 <monqy> i laughed too much at that
03:12:00 <monqy> i was still laughing when I typed that
03:12:07 <elliott> oh my god IAmInLoveWithJesus still posts
03:12:22 <elliott> oh wait, just posted last month after not posting for two years, lol
03:12:25 <monqy> the original looking ghostly was great too though
03:12:28 <oerjan> <elliott> wrong channel <-- well it was funny anyhow
03:12:42 <elliott> oerjan: no, Sgeo_ isnot allowed fun
03:12:53 <monqy> who is iaminlovewithjesus
03:15:22 <itidus20> So this is a DFA I made to consolidate my lesson. http://oi53.tinypic.com/wmmgrq.jpg
03:15:57 <elliott> i like how you defined one-letter abbreviations and then never used them
03:17:01 <itidus20> i am surprised at how complex the resulting language is
03:17:29 <elliott> how come that mario can be hit twice before he dies
03:17:53 <elliott> but then why can he be hit by an enemy or fall down a hole or mushroom
03:18:03 <elliott> shouldn't dead mario just feed back into itself or w/e
03:18:05 <monqy> if that happens it wont be accepted
03:18:17 <monqy> and blah is not accepting state
03:18:26 <elliott> i just thought the extra circles were
03:18:38 <monqy> beautiful mistakes
03:19:09 <itidus20> i dont actually know the rules of mario well enough to extend it to the fire flower
03:19:22 <itidus20> because its hard to recreate those effects
03:20:10 <itidus20> technically theres a small mario with fire mario clothes that can be obtained by clever glitch exploitation
03:20:43 <elliott> http://vde.sourceforge.net/????????////////
03:21:09 <monqy> is that a hat or a 2
03:21:20 <monqy> http://vde.sourceforge.net/v2logo.png
03:22:23 <elliott> Gregor: It looks like a router thing rather than anything you could diectly communicate with maybe???
03:26:04 <Gregor> elliott: It's a virtual networking infrastructure.
03:26:10 <Gregor> elliott: Also, ?!??!!!!!???????!??!??!
03:29:19 <elliott> Gregor: ???????????????????????????????????????????????????????????///// i cant type xeclmvation marks
03:29:47 <monqy> here have mine!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
03:30:59 -!- augur has quit (Ping timeout: 250 seconds).
03:31:56 <itidus20> i dont have unicode turned on but ill take your word for it !!!!!!!!!!!!!!!!1
03:32:29 <elliott> oh no, i need the generics stuff
03:45:49 <elliott> You jest, but it's quite common in languages with no proper boolean type
03:46:03 <elliott> (If you think C99 has one, tell me what value (bool)9 has)
03:46:30 <pikhq_> !! is the boolean cast operator.
03:46:41 <quintopia> it sets a positive number to 1 in most Cs right?
03:46:48 <elliott> quintopia: Nnnnnnnnnnnnnnnnnnnnnnnnnno.
03:46:55 <elliott> quintopia: It's equivalent to ==[one]
03:46:59 <elliott> Where [one] is the digit one
03:47:03 <zzo38> Yes I have used !! in a few C codes sometimes
03:47:24 <zzo38> It changes everything to 1 except 0 and null pointer, which remains 0
03:47:26 <elliott> I'm worried as to what state of affairs caused you to believe it could do something like check for positivity
03:47:33 <elliott> zzo38: Oh right, it's not equivalent to ==[one]
03:47:39 <elliott> It'd be [exclamation mark]= 0
03:47:54 <elliott> (for both values and pointers)
03:48:06 <quintopia> elliott: i was thinking it was a check from nonzeroness
03:49:34 <elliott> Except it's used where something is basically "like a boolean"
03:49:35 <quintopia> but i didn't know for sure if !0=1 was an explicit standard
03:49:44 <elliott> For instance, if a search routines either NULL or a pointer to the found thing
03:49:52 <elliott> Then you can cast it to a zero-or-one boolean with !!
03:50:19 <quintopia> i don't frequently need my trues to be exactly 1
03:50:23 <zzo38> I think it is a standard C code that anything resulting in boolean would be 1 for true and 0 for false
03:50:28 <quintopia> i'd put the routine in the if statement directly
03:51:04 <zzo38> I also usually don't need !! since I also don't need the numbers 0 and 1 but in a few cases I find it useful to do so
03:52:30 <elliott> quintopia: If you believe booleans can only be used directly in an if statement, you have a very poor conception of booleans indeed
03:52:52 <elliott> If you have a named boolean type -- which you should, even if it'll have more values than you want in C -- then assigning anything but zero or one to it is punishable by death.
03:53:07 <elliott> Because lord knows that (x == TRUE) should be a different test to x.
03:53:33 <quintopia> IT MAKES HUEG DIFFERENCE IN C CODE
03:53:46 <quintopia> when are you going to fix your keyboard?
03:55:12 <zzo38> I fixed the spiders in MegaZeux by assuming true is 1 and false is 0.
03:55:16 <zzo38> int web=(element_type==ELEMENT_THINWEB)+(element_type==ELEMENT_THICKWEB)*2;
03:55:49 <zzo38> But at first needs element_type which is int element_type=(d_flag&(A_ELEMENT*7))>>19;
03:56:29 <zzo38> And it now works far better than the old one, which not only didn't work, but was not as versatile as my new one
04:04:27 -!- elliott has quit (Ping timeout: 250 seconds).
05:06:37 -!- GreaseMonkey has quit (Quit: The Other Game).
05:40:49 <zzo38> That's my good friend. He often plays the fool. But I myself wouldn't touch a ten-foot Pole with a guitar!
05:44:29 <oerjan> ye olde wild escaped punchline
05:50:11 -!- elliott has joined.
05:52:15 <elliott> pikhq_: is your package manager perfect yet
06:00:09 <zzo38> What things does your package manager do? What ideas do you have?
06:06:34 <elliott> `addquote <itidus20> like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with <itidus20> but that would be NP hard I think
06:06:36 <HackEgo> 583) <itidus20> like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with <itidus20> but that would be NP hard I think
06:07:32 <elliott> 05:18:14: <itidus20> hummm.. Garfield [who designed Magic] studied under Herbert Wilf and earned a Ph.D. in combinatorial mathematics from Penn in 1993.
06:07:32 <elliott> but what does he think of mondays
06:08:01 <elliott> `addquote <itidus20> combinatronics seems to be the mathematics chasing buddha's tail <itidus20> yeah.. he was a smart monkey that buddha
06:08:02 <HackEgo> 584) <itidus20> combinatronics seems to be the mathematics chasing buddha's tail <itidus20> yeah.. he was a smart monkey that buddha
06:10:12 <elliott> 05:50:06: <itidus20> you know..
06:10:12 <elliott> 05:50:08: <itidus20> that..
06:10:12 <elliott> 05:50:24: <itidus20> patents are like an altar made of wood
06:10:12 <elliott> 05:50:37: <itidus20> onto which the rich can store their gold
06:10:12 <elliott> 05:50:37: <itidus20> onto which the rich can store their gold
06:10:34 <oerjan> http://www.einaudi.cornell.edu/curriculum/monkey/journey/
06:12:23 <fizzie> Based on a the last few lines -- can't be bothered to read further back -- got tempted to topicize something like "the channel of magic an monkeys", but that would again confuse the-other-sort-of-esoteric visitors.
06:18:22 <elliott> http://www.reddit.com/r/fifthworldproblems/
06:21:27 <oerjan> something must have escaped from the scp foundation, i think
06:28:22 <oerjan> PatashuWarg: anyway, since when did you become a werewolf?
06:28:37 <PatashuWarg> I don't know why I'm using that name on here
06:31:14 <elliott> 06:53:30: <NihilistDandy> I used to be in three channels on Freenode. Now I'm on 16. Thanks, #haskell and #esoteric
06:31:19 <elliott> #esoteric usually results in a _decrease_
06:31:22 -!- cheater has joined.
06:31:42 <elliott> 06:57:06: <monqy> what's -spinoff is it any good
06:31:46 <elliott> monqy: fizzie is on -minecraft.
06:31:53 <elliott> Which is mostly about things that aren't Minecraft.
06:32:53 <oerjan> so about as on topic as #esoteric itself?
06:33:08 <elliott> monqy: right now it's about half dwarf fortress, half vaguely off-topic things that we feel needs a smaller audience than here I guess???
06:33:25 -!- cheater__ has quit (Ping timeout: 250 seconds).
06:33:44 <monqy> too bad I still haven't bothered myself into getting into dwarf fortress
06:34:03 <elliott> monqy: it's as entertaining to read about as play
06:34:22 <monqy> well reading it is pretty entertaining
06:36:04 -!- cheater_ has joined.
06:37:19 -!- cheater has quit (Ping timeout: 250 seconds).
06:38:10 <elliott> Gregor: What happened to matrixofsolidity???
06:38:45 -!- oerjan has set topic: Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth |.
06:38:48 <oerjan> http://codu.org/logs/_esoteric/
06:39:09 <zzo38> TOPIC #esoteric :Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/
06:39:14 -!- zzo38 has set topic: Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/.
06:39:52 <zzo38> Why did you post the URL in a message not the topic message?
06:40:04 <oerjan> irssi's cut and paste failed
06:40:12 <monqy> why did you cut and paste the topic
06:40:14 <elliott> cut? you removed the topic from the window?
06:40:29 <elliott> ZFunge is a largely Befunge 98 compatible Z-machine application created by Martin Bays. It is multithreaded and three dimensional, and supercedes ZBefunge. Provided you like fungular confusion!
06:40:33 <monqy> if you do /topic <tab> it will put the topic where the tab was
06:40:34 <elliott> Deewiant: So how does it do on Mycology
06:40:37 <monqy> and then you can just edit it there
06:40:49 <elliott> monqy: irssi "workarounds for having a bad output mechanism" irssi
06:41:10 <oerjan> monqy: cut and paste worked last time...
06:41:21 <monqy> i don't trust cut and paste
06:41:36 <oerjan> well i don't either, now :(
06:41:53 <elliott> 11:36:11: <ais523> hmm, does anyone here know of ATS (a language that isn't meant to be eso, but may as well be)?
06:41:53 <elliott> 11:36:15: <ais523> here's some code: http://www.ats-lang.org/EXAMPLE/MISC/quicksort_list_dats.html
06:41:53 <elliott> 11:38:25: <ais523> the homepage is effectively saying "look how great our language is, it only took us ten years to write quicksort"
06:42:11 <elliott> ?tell ais523 I know enough about ATS to have opinions on it.
06:42:27 <elliott> ?tell ais523 "it's basically, you write both an imperativish and a functionallish program, in such a way that you prove they do the same thing" -- this isn't really true, but whatever.
06:42:40 <zzo38> To me the only paste problem occurs in IRC if I paste a linebreak accidentally.
06:43:02 <elliott> 11:40:27: <Phantom_Hoover> Yeah, it's... preternaturally ugly.
06:43:02 <elliott> It's... mostly the bad syntax highlighting.
06:44:37 <elliott> "The AS/400 (the ultimate CISC) might qualify as an unintentionally esoteric computer architecture. It has transcendental math, iconv, malloc/realloc/free, (almost) sprintf, mark-and-sweep garbage collection, compression, and encryption, as single assembly instructions. It has 128-bit segmented pointers (which are bit patterns but not integers), EBCDIC characters, no (visible) registers, hardware malloc() instead of a stack for function arguments
06:44:37 <elliott> /local variables, and trap representations. It's what inspired the majority of weird things in the C standard like the undefined behavior about pointer arithmetic ("one past the end of the last array") and casting (data pointers, function pointers, and integers can't be cast to one another on the AS/400). It's one of the few architectures that needs va_end() because va_lists are implemented using malloc and must be freed. On the AS/400, the lette
06:44:37 <elliott> rs 'A' to 'Z' (and 'a' to 'z') are not at contiguous code points. There's a single level store (no distinction between RAM and disk) and files are segments too. Pointers can be copied with memcpy (which, like most of <string.h>, is also an assembly instruction), but the simpler cpybytes instruction doesn't copy pointers because pointers have special metadata (not part of the pointer) that marks them as valid. Compared to most assembly languages/C
06:44:42 <elliott> PU architectures, the AS/400 is definitely esoteric. Ian 02:19, 13 August 2011 (UTC)"
06:44:49 <zzo38> My IRC client might have a few features that no other IRC client has; do you know if it is?
06:45:59 <oerjan> zzo38: irssi breaks output across lines, and is _supposed_ to join lines together if you paste to the channel, but too often fails
06:46:39 <oerjan> so cutting from the irssi window to paste back into it is fickle
06:47:09 <elliott> 13:53:33: <Gregor> elliott: You're not here.
06:47:09 <elliott> 13:53:38: <Gregor> <-- genius
06:47:10 <elliott> 14:00:14: <Gregor> ais523: As punishment for you're being here, I'm telling you this anecdote: Yesterday I accidentally uninstalled dash, coreutils, grep, sed, tar, dpkg and apt. Then, I fixed my system.
06:47:14 <elliott> Gregor: Explain. Immediately.
06:48:17 <zzo38> This is seems very strange kind of computer if all of this stuff of AS/400 is doing in hardware including some C stuff that no other computer has, it would do some strange things with C that other computers don't do, I guess
06:48:51 <zzo38> Is AS/400 computer architecture compatible with LLVM though?
06:49:00 <elliott> let me use my omniscience to find out :)
06:52:23 <zzo38> Since I wrote my IRC client by myself, I don't know the comparison between feature of other IRC client. Do you know?
06:54:30 <zzo38> What I do know is that this program, copy/paste is a feature of the terminal emulator rather than a feature of the IRC client program itself.
06:54:34 <pikhq_> elliott: Wow. It's an actual C machine.
06:55:14 <zzo38> pikhq_: Yes it seems like that to me.
06:55:15 <elliott> not that you'd need C with assembly like that
06:55:54 <zzo38> elliott: No, you still need C; one purpose of even having C is that you can compile in many computers.
06:55:58 <pikhq_> Yeah, the assembly language appears to be about on par with C in expressiveness.
06:57:05 <pikhq_> elliott: IBM *still sells this*.
06:58:07 <zzo38> If it has no registers, does that mean the "register" command in C is meaningless on this computer?
06:58:22 <pikhq_> zzo38: It generally is. :)
06:58:45 <elliott> wow, the VAX had instructions for evaluating polynomials
07:00:03 <elliott> "AS/400 "Future Systems" (128-bit...in 1988!) (check out its instruction set: Materialize User Profile? Free Activation Group-Based Heap Space Storage? Call Program with Variable Length Argument List?)"
07:00:13 <elliott> call program with variable length argument list: the best assembly instruction
07:00:24 <elliott> "SHARC (hardware COME FROM!!!)" :DDDDDDDDDddddddddd
07:03:56 <zzo38> Reading the linked documentation, I can see the commands
07:05:58 -!- oerjan has quit (Quit: Good night).
07:13:35 <zzo38> It even has instruction for computing date duration.
07:19:24 <zzo38> It has a lot of different kinds of copying
07:22:40 <zzo38> It has both binary and decimal modes, and it has zoned decimal and packed decimal
07:26:55 <zzo38> I suppose in the case of C programs that do things contrary to AS/400, you could make an emulator if necessary.
07:31:16 <elliott> shojdfosduljfd i hsoisleeep
07:35:58 <elliott> Taneb gets a little card saying "not heplful two thousand and eleven 9remembered forever)", also so does everyone else in here, enjoy your cards i am going to cry (i amnot actually going to cry)
07:36:02 <elliott> (also the cards are not real)
07:36:06 <elliott> (they are fake imaginary cars)
07:36:17 <Taneb> Don't fall asleep.
07:36:24 <Taneb> Sleep is when the nightmares cometh
07:37:13 <elliott> all i have to do is put the laptop screen down but that sounds like work??? yeah
07:38:44 <zzo38> Built-in date/time instructions. It has user profiles at the hardware level (although some fields of the user profiles are for operating system use). It has a complicated way of converting numbers into display form. The MVLICOPT command uses Unicode even though some other commands use EBCDIC.
07:38:45 <elliott> monqy: i choose to blame yuo
07:39:34 <monqy> i am not a slepe doctore.....
07:39:43 -!- PatashuFluttersh has joined.
07:39:48 <elliott> YOU ARE NOW [punches in slow motion] [film pauses before punch hits]
07:39:55 <elliott> [punch rewinds so far it goes through my head]
07:40:20 <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:40:43 <elliott> ok i specifically crafted that last line to get addquoted someone do it
07:40:47 <monqy> step 1 fist out of hed step 32 learn how to spelepe sltep 3 selp
07:41:20 <elliott> in yuor pofesional slepe doctore opinoyins
07:41:47 <Taneb> He just wants your money
07:41:53 -!- PatashuWarg has quit (Ping timeout: 252 seconds).
07:41:53 <Taneb> He gets more money if you sleep
07:42:11 <elliott> CFONCFONLINCTING OPINIONS AND IM NOW MORE EVEN LOOKING GHOSTLY
07:42:21 <elliott> `addquote <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:42:23 <monqy> i was only giving instructions on how to sleep.l....
07:42:26 <HackEgo> 585) <elliott> IM FIST IN HEAD AND DONT KNOW TO SLEEP??????
07:42:29 <monqy> NOT ADVICE ON WHETHER YOU SHOULD
07:42:32 <elliott> `addquote <elliott> I MIGHT BECOME GHOST
07:42:33 <HackEgo> 586) <elliott> I MIGHT BECOME GHOST
07:42:35 <elliott> monqy: I NEED A SLEPE DOCTORE
07:42:41 <monqy> wjhy did you add thoise.....
07:42:54 <elliott> I WILL ADD EVERY LINE I SAY AFTER ONE AFTER THIS ONE IF YOU DO NOT GIVE ME PROFESIONAL ADIVCE
07:43:02 <elliott> (THEN CONITINUE TO RE-ADD FOREVER)
07:47:19 <zzo38> AS/400 even has command to copy the high 4 bits of one byte to the low 4 bits of another byte.
07:51:31 <zzo38> And you are not allowed to branch to NOOP instructions.
07:54:43 -!- elliott has quit (Ping timeout: 252 seconds).
07:58:15 -!- Taneb has quit (Quit: He's a big quitter he is.).
08:05:51 -!- cheater__ has joined.
08:08:45 -!- cheater_ has quit (Ping timeout: 240 seconds).
08:09:54 -!- Taneb has joined.
08:12:29 <Taneb> What does anyone think of Constantinople?
08:17:23 <zzo38> OK, I have read it.
08:17:49 <zzo38> I think I understand it.
08:18:07 <Taneb> I haven't written it very well
08:18:25 <zzo38> Yes, I can see it is not written very well.
08:22:41 <Taneb> Ignore that it isn't well written, what do you think of the language
08:23:09 <zzo38> It is OK, I guess.
08:23:25 <Taneb> That's good enough for me!
08:24:27 <Taneb> Can you try to neaten the article up, if you're not too busy?
08:28:10 <zzo38> Not today; now I will sleep.
08:28:13 -!- zzo38 has quit (Remote host closed the connection).
08:32:49 -!- BeholdMyGlory has joined.
08:35:08 -!- Taneb has quit (Ping timeout: 260 seconds).
08:50:33 -!- pitufoide has quit.
10:20:24 -!- Phantom_Hoover has joined.
10:23:00 <Phantom_Hoover> "The greatest warriors are the ones who fight for peace."
10:23:00 <lambdabot> Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them.
10:26:44 * itidus20 looks around coyly whistling even though he lacks whistling ability.
10:51:34 -!- monqy has quit (Quit: Lost terminal).
10:59:56 -!- FireFly has joined.
11:06:20 <itidus20> But it is like a girlfriend who is too attractive. It has flaws which we want to overlook in our limerence?
11:07:47 <Phantom_Hoover> Yes. We all want to overlook Java's flaws in our limerence.
11:12:21 <itidus20> I downloaded this thing JFLAP after chatting about DFAs before and I couldn't help but blush at the elegance of the executable jar files
11:38:51 <itidus20> It's free. It's portable. It has a comprehensive API. You can execute an archive!
11:39:23 <itidus20> Don't get me wrong I don't have a java sdk
12:27:22 -!- Taneb has joined.
12:39:27 <CakeProphet> I got a freelance gig so after I do all of my morning routine stuff I'm going to spending today researching anything I can about what I'm supposed to do, so that I kind of know what I'm talking about later when I talk to them.
12:42:53 -!- PatashuFluttersh has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
12:50:30 <Taneb> I'd pay good money to see CakeProphet on ice.
12:50:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3098
12:50:59 <CakeProphet> I'm pretty sure CakeProphet: The Musical would be of the horror tradgedy genre
12:51:29 <Phantom_Hoover> 423) <GregorR> How to make a tasty deep-fried treat: 1) Buy ingredients: Large vat of boiling oil, dry ice and a small Filipino boy. 2) Place Filipino boy in dry ice until frozen solid. 3) Shatter now-frozen Filipino boy into boiling oil. 4) Wait fifteen minutes, drain and enjoy! <CakeProphet> I have the weirdest boner right now.
12:52:14 <Phantom_Hoover> Liquid nitrogen is a better choice in pretty much every aspect.
12:52:57 <Taneb> No such thing as overkill.
12:54:46 <Phantom_Hoover> You can actually hold it in your hands for a few seconds without any pain at all.
12:55:23 <Gregor> If you hold it in your hands for long enough, they'll never feel pain again.
12:56:07 -!- sebbu2 has joined.
12:56:07 -!- sebbu2 has quit (Changing host).
12:56:07 -!- sebbu2 has joined.
12:56:29 -!- sebbu has quit (Ping timeout: 260 seconds).
12:56:48 -!- sebbu2 has changed nick to sebbu.
12:59:07 <Taneb> I think I've just proved Constantinople Turing-Complete
12:59:59 <Taneb> No, that's a load of Istanbul
13:00:16 <Taneb> Oddly, it's a place I've been to
13:00:36 <CakeProphet> where in Europe do you think one could get laid the most?
13:01:30 <Taneb> How much are you willing to spend?
13:01:54 <CakeProphet> I am planning my future round-the-world flight plan.
13:02:13 <Taneb> I was going to go around the world by train
13:02:31 <Taneb> That's where my plan failed
13:02:45 <CakeProphet> the failure in this plan is probably the rich part.
13:02:52 <Taneb> I can get to Vladivostok
13:03:25 <CakeProphet> still if I ever end up making 50k (which is very possible with a CS degree) then I could fly to a third world country and get a round-the-world ticket for like... 7k or so
13:03:31 <Taneb> Then I'll hitch with a freight tanker
13:03:35 <CakeProphet> instead of like 20k in the US, or whatever it is.
13:03:58 <CakeProphet> the price varies based on your starting country, which is kind of stupid but whatever it's economics.
13:04:22 <Taneb> ...Do they have trains in Los Angeles?
13:04:43 <CakeProphet> there are definitely trains in Atlanta. or there were.
13:04:56 <CakeProphet> Atlanta was like, the train hub of the south.
13:06:06 <Taneb> Hong Kong is freight
13:06:12 <Taneb> Heathrow is international passengers
13:06:24 <Taneb> Frankfurt is international destinations
13:06:29 <CakeProphet> I'm glad we know what Wikipedia is, otherwise we would be lost here.
13:07:07 <Taneb> I went to Colorado once.
13:07:30 <Taneb> No, I ended up in Melbourne
13:09:12 <Taneb> I know Charles de Gaulle has the fastes moving walkways
13:11:51 <CakeProphet> http://www.flightmapping.com/news/coventry-airport/biggest-busiest-airports.asp
13:12:13 <CakeProphet> according to this King Fahd Interational Airport in Damman, Saudi Arabia
13:13:23 <CakeProphet> hmmm, I'd probably want to go to Tokyo I think.
13:13:54 <Taneb> The shortest distance between two capital cities is Rome to the Vatican City
13:14:03 <Taneb> One is literally inside the other
13:16:02 <CakeProphet> I'd think the Twin Cities area would be close
13:16:24 <CakeProphet> if you exclude capitals from other countries/religious-state-things
13:16:54 <Taneb> They aren't capitals
13:17:15 <Taneb> After them, it's Brazzaville and Kinshasa
14:29:09 <quintopia> ....this channel suddenly got trippy as soon as a kitty got near it
14:29:19 <quintopia> thankfully i am immune to their deleterious effects
14:30:04 <quintopia> (although i am highly reactive to the presence of puppies)
14:41:50 <Vorpal> <Gregor> I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean?
14:42:48 <Gregor> More like 8-in-the-morning.
14:42:55 <Gregor> And they're warm and fuzzy too.
15:05:33 -!- augur_ has joined.
15:10:49 -!- ais523 has joined.
15:13:26 <Phantom_Hoover> <Vorpal> <Gregor> I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean?
15:13:40 <Phantom_Hoover> Why did you have to say that elliott's going to complain about it for like 2 hours
15:14:10 <Vorpal> Phantom_Hoover, don't worry. I will be away eating soon. Besides it was you who highlighted him about it
15:14:26 <Vorpal> Phantom_Hoover, anyway my description was accurate.
15:29:42 <tswett> Vorpal *didn't* say that elliot's going to complain about it for like 2 hours.
15:39:00 -!- copumpkin has joined.
15:44:21 -!- jix has quit (Ping timeout: 276 seconds).
15:44:25 -!- jix has joined.
15:56:08 * Sgeo_ learns about DEFCON game
16:33:36 <ais523> anyone here know if there's a git command to determine if a file is currently versioned or not?
16:33:37 <lambdabot> ais523: You have 2 new messages. '/msg lambdabot @messages' to read them.
16:33:44 <lambdabot> elliott said 9h 51m 32s ago: I know enough about ATS to have opinions on it.
16:33:44 <lambdabot> elliott said 9h 51m 16s ago: "it's basically, you write both an imperativish and a functionallish program, in such a way that you prove they do the same thing" -- this isn't really true, but
16:33:58 <ais523> as in, I have a git repo, and some files, and I want to know if the files are part of the repo or generated
16:34:11 <ais523> I suppose I could edit one and git add -p, but there must be a neater way
16:41:07 <cheater__> ais523: it's $VCS status in any $VCS i know
16:45:02 <ais523> same result for a versioned and nonversioned file
16:45:48 <itidus20> it occurs to me that if the string of reposts of an initial post was a problem, a bot could be created which kicks anyone who says more than a fixed limit of usernames from the chatters list in the room
16:45:58 <itidus20> i know it wouldn't really solve the actual problem though
16:46:07 <itidus20> nor is there such a problem really
16:46:22 <itidus20> just the idea of such a thing amuses me
16:46:25 <cheater__> ais: sorry it doesn't take a file as the parameter
16:46:40 <cheater__> here's the kind of output you get if there's an unversioned file in the repo somewhere (aaa in this case):
16:46:42 <cheater__> # (use "git add <file>..." to include in what will be committed)
16:47:03 <cheater__> if you get no output then your files are all versioned
16:47:44 <cheater__> all the paths are relative to $PWD
16:47:58 <ais523> cheater__: that's not what I wanted at all
16:48:04 <ais523> as the file's almost certainly either versioned or ignored
16:48:18 <ais523> as it's in an unedited repo after building
16:48:24 <ais523> the question is, was it there before I built?
16:49:30 <cheater__> so you cloned/checked out the repository, you have made "./build.sh" or something, and you want to know what files that added?
16:49:42 <ais523> I have a specific file there
16:49:49 <ais523> and want to know if it's generated or part of the source
16:50:08 <cheater__> the source would have been in the repository during a new checkout, right?
16:51:24 <ais523> and generated files won't have been
16:51:41 <Taneb> s/Constantinople/Istanbul/
16:52:43 <cheater__> ais523, but you think if you did "git add <file>" then it wouldn't show up in git status?
16:53:12 <ais523> cheater__: the generated files don't show up, because they're in git's ignore file
16:53:18 <ais523> which is what you'd expect for generated files
16:53:19 <cheater__> ais523, but you think if you had done "git add <file>" then it wouldn't show up in git status?
16:54:45 <ais523> I think pikhq_ had the right answer all along
16:55:12 <ais523> although it seems not to distinguish between directories
17:05:22 -!- Taneb has quit (Quit: It's-a pizza tonight!).
17:21:19 -!- Taneb has joined.
17:49:23 <Gregor> There, now UMLBox can use Debian's user-mode-linux package for its kernel, instead of supplying its own :)
17:56:12 <Sgeo_> Suzumiya Haruhi novels <3
18:20:37 -!- elliott has joined.
18:24:46 <elliott> `addquote <Phantom_Hoover> I gave her the Noblesse Oblige rooms. <Phantom_Hoover> She was happy with them even when they were behind 2 locked doors and a floodgate and full of water.
18:24:46 <lambdabot> elliott: You have 12 new messages. '/msg lambdabot @messages' to read them.
18:24:47 <HackEgo> 587) <Phantom_Hoover> I gave her the Noblesse Oblige rooms. <Phantom_Hoover> She was happy with them even when they were behind 2 locked doors and a floodgate and full of water.
18:25:14 <ais523> it's pretty typical of DF
18:25:19 <ais523> and typical DF is funny by default
18:25:36 <ais523> so, is that you arranging an accident for an unhelpful mayor?
18:26:00 <Phantom_Hoover> No, that was after the accident when I was waiting for the rooms to drain.
18:26:12 <ais523> she wasn't in the rooms, presumably
18:26:13 <elliott> our fortress is very well-organised
18:26:17 <Phantom_Hoover> And I needed rooms for the new baroness, so I gave her the flooded ones.
18:26:33 <elliott> do elves even go to war in DF does anyone know
18:26:40 <elliott> ours seem to be happy to have their caravans repeatedly never come back
18:26:43 <ais523> they do if you annoy them too badly
18:26:47 <elliott> and then to trade in rooms splattered with elf blood
18:26:48 <Phantom_Hoover> elliott, most of the dorfs are ecstatic despite the fact that only about a quarter of them have beds.
18:26:49 <Taneb> Give them wood, then kill them
18:26:55 <elliott> Phantom_Hoover: I know it's so bizarre.
18:27:00 <ais523> but that's mostly by cutting down trees, rather than merely kidnapping caracans
18:27:04 <elliott> Phantom_Hoover: My laziness: ecstatic-creating????
18:27:11 <elliott> ais523: kidnapping? more like seizing and massacring
18:27:20 <elliott> YOU CAN CUT DOWN OUR BROTHERS BUT YOU MUST NOT CUT THE TREES
18:27:53 <Phantom_Hoover> elliott, I also made the best solution to cave adaptation
18:28:03 <ais523> elliott: I bet it's how they punish elven criminals
18:28:13 <ais523> send them to the dwarf fortress, along with some bribes to continue not cutting down trees
18:28:36 <elliott> ais523: why do they send valuables along? well, ok, valuable for elves
18:28:38 <ais523> and have the dwarves deal with their unwanted people and keep the trees intact and think they're outwitting the elves all the time
18:28:48 <ais523> elliott: because how many dwarves leave the forests alone?
18:30:24 <Phantom_Hoover> It's now packed with about 3 dorfs per tile, but they're all perfectly happy with going outside.
18:30:42 <elliott> `addquote <Phantom_Hoover> On further reflection, I think I did manage to miss winter and spring altogether. <Phantom_Hoover> This does explain the goblin siege I had in autumn.
18:30:44 <HackEgo> 588) <Phantom_Hoover> On further reflection, I think I did manage to miss winter and spring altogether. <Phantom_Hoover> This does explain the goblin siege I had in autumn.
18:31:18 <elliott> `addquote <Phantom_Hoover> A possessed soapmaker: the most ridiculous thing? <Phantom_Hoover> OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD <Phantom_Hoover> I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS
18:31:19 <HackEgo> 589) <Phantom_Hoover> A possessed soapmaker: the most ridiculous thing? <Phantom_Hoover> OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD <Phantom_Hoover> I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS
18:31:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3480
18:31:58 <elliott> 562) <Phantom_Hoover> Taneb's been hit by melancholy. <Phantom_Hoover> He didn't have any friends, fortunatel.y
18:31:58 <elliott> 563) <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster.
18:32:13 <elliott> iguess the original quote had some formatting problem
18:32:27 <Phantom_Hoover> It used to have "iridium is too mainstream", which ruins the joke a bit.
18:32:50 <ais523> let's put it in the topic instead
18:32:56 <elliott> 151) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. <cpressey> To comply with the GFDL, there's a copy of Wikipedia in there.
18:32:56 <elliott> 155) <CakeProphet> how does a "DNA computer" work. <CakeProphet> von neumann machines? <Phantom_Hoover> CakeProphet, that's boring in the context of DNA. <Phantom_Hoover> It's just stealing the universe's work and passing it off as our own.
18:33:03 -!- ais523 has set topic: iridium is too mainstream | http://codu.org/logs/_esoteric/.
18:33:09 <fungot> elliott: what, the last one. wait no, that just made you disappear" and stuff
18:33:10 <ais523> see, that's almost an ontopic topic
18:33:11 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13417
18:33:25 <elliott> 206) <fungot> Vorpal: you can't plant spiders, duh!
18:33:25 <fungot> elliott: that happens, right. maybe it would be best not to be near it when this happens every young troll stands in his bedroom.
18:33:36 <ais523> it'd work better if there's a really obscure non-eso lang called iridium
18:33:41 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube
18:34:17 <elliott> http://esolangs.org/wiki/C_plus_plus
18:34:20 <elliott> ais523: copyvio from WP, offtopic
18:34:31 <ais523> how recent? it's not in my RSS feed yet
18:34:37 <elliott> (diff) (hist) . . N C plus plus; 10:25 . . (+1,834) . . 58.175.14.145 (Talk) (Created page)
18:34:40 <elliott> before you deleted those spam user pages
18:34:45 <elliott> five hours before, in fact
18:34:53 <ais523> must have been a feedreader hiccup
18:35:11 <ais523> I'll delete as copyvio, that's normally the most uncontroversial opinion
18:35:22 <ais523> I did that on Wikipedia, once, when someone copied [[kitten huffing]] over
18:35:29 <elliott> we need a copyvio user warning template at some point
18:35:36 <ais523> and while the admins were busy arguing, I blanked it and put {{copyvio}} on it
18:35:37 <elliott> at least two occurrences recently :P
18:35:42 <ais523> (this is before I was an admin)
18:35:48 <elliott> ais523: haha, people were arguing to keep [[kitten huffing]]?
18:35:59 <Gregor> elliott: BTW I made UMLBox work with stock UML kernels (e.g. the one in the Debian package user-mode-linux)
18:36:02 <ais523> well, it's more that half of the people were going "I don't get it, is this an inside joke?"
18:36:07 <elliott> Gregor: Woooooooooooooo link me again
18:36:18 <ais523> and weren't sure whether they were allowed to delete it /in case/ it was some sort of sacred inside joke that nobody was allowed to delete
18:36:18 <Gregor> elliott: https://bitbucket.org/GregorR/umlbox
18:36:28 <ais523> it had [[Category:Inside jokes]] on it too, but most of them missed it
18:36:29 <Phantom_Hoover> BtW, tswett, your dorf was voted out of office before his mandate could expire and I killed him out of spite.
18:36:46 <Gregor> elliott: Use `make nokernel` to build it (it still tries to build the kernel with `make all`)
18:37:01 <elliott> ais523: /me considers rewriting [[stroopwafel]] to be hideously POV to see if anyone dares revert
18:37:09 <ais523> hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous?
18:37:11 <elliott> Gregor: Wait, it had something to automatically configure and build the kernel?
18:37:17 <elliott> Gregor: Why didn't you say so :-P
18:37:27 <elliott> ais523: Please stop telling me to not do things that are obviously a bad idea :P
18:37:38 <ais523> elliott: I'd be out of character if I didn't!
18:37:43 <elliott> ais523: <ais523> hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous?
18:37:46 <elliott> AAAAAAAAAAAAAAAAA is pretty famous
18:37:53 <ais523> oh right, I somehow forgot that one
18:38:02 <ais523> you're right, it's probably even more famous
18:38:02 <elliott> Gregor: Not that it isn't a change for the better :P
18:38:43 <elliott> Gregor: The UMLBox startup involves a full Linux bootup, more or less, right?
18:38:48 <elliott> Just checking it isn't practical to do for every command
18:39:02 <ais523> hey, Uncyclopedia has Monobook as its default skin
18:39:03 <Gregor> elliott: Well, not particularly "full", no. It doesn't include a real init. It's quite quick actually.
18:39:10 <ais523> I wonder if they managed to argue Wikia into a vague amount of sense?
18:39:35 <Gregor> elliott: Well, "quite quick" as in "it takes about a second at most" :P
18:39:57 <elliott> Gregor: Does HackEgo do it for every command?
18:40:04 <elliott> ais523: they argue with Wikia a lot, I think
18:40:17 <elliott> Gregor: That explains why it's so fucking slow ;)
18:40:27 <Gregor> `echo You're mean *sob*
18:40:55 <elliott> Gregor: I take it running a command-running server thing from inside would defeat all the limits and the like
18:41:05 <ais523> Gregor: does it include... fakeinit?
18:41:21 <elliott> Oh god, what if Gregor just wrote fifty percent of ais523's program.
18:41:32 <ais523> fakeinit is a very small part of my program
18:41:38 <Gregor> elliott: Well, no, it wouldn't defeat the limits, but all the programs run within would share the limits, if you understand my meaning.
18:41:45 <Gregor> ais523: It has its own pseudoinit.
18:41:57 <Gregor> ais523: (Which just mounts the requested parts of the host filesystem and runs)
18:42:04 <ais523> I need to tell fakeinit to change its own name to init and commandline to /sbin/init
18:42:07 <ais523> just in case someone thinks to check
18:42:14 <elliott> Gregor: Well, right. I just mean that it'd make "kill this command if it takes more than five seconds" a pain.
18:42:17 <pikhq_> I'm not sure it's possible to get out-of-the-box Linux booting in under a second.
18:42:23 <elliott> Because you'd be under the effects of the in-system limits
18:42:27 <elliott> pikhq_: UML is hardly ootb
18:42:43 <pikhq_> elliott: It got pushed upstream.
18:42:56 <ais523> I think it's in my copy of the kernel sources
18:43:00 <ais523> which I got via package manager
18:43:01 <Gregor> It's perfectly possible to get UML from zero to running init in well under a second.
18:43:03 <pikhq_> elliott: You now just do make ARCH=um
18:43:36 <Gregor> It's been in mainstream for quite a while now, in fact.
18:43:52 <pikhq_> Wasn't it 2.6.1x or some such?
18:44:12 <elliott> But it's not exactly a ````stock kernel"
18:44:39 <ais523> hmm, I'd forgotten how good Uncyclopedia's page on NetHack is
18:44:44 <elliott> Gregor: So imma try and see if I can either make UMLBox start up fast or else run the processes from outside
18:44:47 <ais523> it's not quite paced perfectly, but the idea's pretty neat
18:44:49 <pikhq_> Well, in the sense that it gets to omit the *cheaper* startup costs entirely, and make some of the expensive startup costs somewhat less expensive.
18:44:57 <elliott> Gregor: (Latter would have the additional benefit of NO FUCKING HG MERGE PROBLEMS)
18:44:59 <Gregor> elliott: Y'all have fun now, y'hear.
18:45:24 <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
18:45:41 <pikhq_> (device scanning is pretty cheap when you have hardly any hardware. :))
18:49:25 <ais523> elliott: I had a git vs. nongit flamewar with someone recently, and it gave me a VCS epiphany
18:49:43 -!- elliott has quit (Ping timeout: 246 seconds).
18:49:45 <ais523> because I think I discovered the simplest thing that can't reasonably be done with git, and can be done with darcs but it's really annoying
18:50:17 <Gregor> VCS epiphany: git is terrible :P
18:50:29 <ais523> maintaining a fork of a project while still pulling a subset of upstream changes
18:50:37 <pikhq_> Gregor: git is quite a brilliant VCS with quite a terrible UI.
18:50:54 <ais523> pikhq_: it isn't quite a brilliant VCS
18:50:58 <ais523> its view of the world is fundamentally broken
18:51:03 <ais523> it just doesn't track enough metadata
18:51:40 <pikhq_> Okay, true, there's some obvious deficiencies...
18:51:58 <pikhq_> (Linus, it makes sense to have an empty directory. Allow trees to be empty objects.)
18:52:59 <ais523> I was talking to a git fan
18:53:12 <ais523> and they were acting like my desire to fork a project and still pull some upstream changes was completely insane
18:53:20 <ais523> because git didn't understand the operation
18:55:00 <ais523> now, darcs can represent the operation
18:55:06 <pikhq_> Hmm. I... Think that's an actual problem caused by git's model of "a commit just points to the entire data at that point in time, and its ancestors", with diffs as nothing more than an operation.
18:55:06 <ais523> but you have to include/exclude every patch by hand every time
18:55:26 <ais523> pikhq_: yes, that's what I mean by "the simplest thing that can't reasonably be done by git"
18:55:43 <Deewiant> I would think that git cherry-pick can do that somehow
18:56:00 <pikhq_> The only real way to handle it in git is, in essence, to manually apply the patch yourself and give it most of the same metadata as the original commit.
18:56:01 <ais523> that's what required me to add the "reasonably" qualifier
18:56:10 <ais523> the thing is, that git gets more and more confused the more you cherry-pick, especially out of order
18:56:25 <ais523> because the versions you're comparing to get more and more not-existing-in-the-original-source
18:56:28 <Deewiant> I've never used cherry-pick so beats me
18:56:28 <pikhq_> But this gives you a completely different commit which happens to have some similarity to another one.
18:56:53 <itidus20> ais523: it sounds like when you use a game engine of one genre to do something from another genre
18:57:06 <ais523> itidus20: oh no, flashback
18:57:17 <ais523> I never did finish making that platformer in Enigma
18:57:19 <itidus20> the advantages of not coding it from the ground up diminish as you get further from the intended genre
18:57:21 <ais523> I should, it'd be great
18:57:50 <pikhq_> Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing.
18:57:50 <itidus20> im saying this as secondhand .. not so much first hand
18:57:54 <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:01:16 <itidus20> so generalizing the ethic of reciprocity... perhaps we are inclined to do to others that which we percieve is in our own fate to have done to us
19:01:28 <itidus20> i know thats out of left field.. best ignore it
19:01:33 <itidus20> im getting way off the git topic
19:01:57 <Gregor> The topic should be UMLBox! :P
19:10:32 -!- zzo38 has joined.
19:11:56 <ais523> CakeProphet: the actual clipboard is normally controlled by control-c control-x control-v just like in Windows, although some programs have different bindings
19:12:05 <ais523> there's also a selection buffer, which fills when you drag your mouse over something
19:12:09 <ais523> and you can paste it by middle-clicking
19:12:19 <ais523> it's very good for quick pastes, but don't expect something you put on it to last
19:13:03 <ais523> there are actually something like nine clipboards, but only two are ever used
19:13:09 <ais523> one of them is called PRIMARY, but I forget which
19:13:13 <ais523> and I forget the names of the others
19:13:32 <Taneb> SECONDARY, TERTIARY?
19:13:50 <ais523> I doubt they're all named like that, but presumably some of them are
19:14:02 <zzo38> As far as I know, X has PRIMARY (the selection buffer when dragging the mouse over something), SECONDARY (unused), and CLIPBOARD (the one accessed by CTRL+X, CTRL+C, and CTRL+V in many programs)
19:14:18 <ais523> (I discovered all this when trying to develop a method to copy-paste from Emacs running on a SunOS system accessed via Exceed, to Windows, that was fun)
19:14:26 <ais523> zzo38: that sounds about right
19:20:29 <pikhq_> i.e. the giant pile of needless nonsense.
19:24:16 <zzo38> Yes, there is also Wayland, which fixes some things.
19:24:21 -!- nooga has joined.
19:24:39 <nooga> I've got an undeniable proof that Notch's a real retard
19:24:52 <nooga> Notch on C++: "Recently, I've done some work in C++. It's a powerful language and fun, but the retarded compilation system makes me cry a bit."
19:25:06 <ais523> actually, it's ambiguous
19:25:21 <ais523> C++'s design makes it very hard to write efficient compilers for
19:25:27 <nooga> it is both ambiguous and unambiguous
19:25:36 <Phantom_Hoover> I suppose he could be talking about delayed compilation?
19:25:41 <pikhq_> Phantom_Hoover: Two words: header files.
19:25:41 <ais523> a C++ compiler is generally significantly slower than a comparable compiler for another language
19:25:45 <ais523> compare gcc to g++, for instance
19:26:35 <ais523> Phantom_Hoover: basically, whenever you change an implementation detail of a class in C++
19:26:41 <ais523> everything that references that class needs to be recompiled
19:26:53 <ais523> because it needs to use different memory offsets to access things like the vtables and fields
19:27:01 <ais523> even if this is something that should be hidden by encapsulation
19:27:34 <ais523> the result is that incremental compilation of C++ is really nasty to do, and doesn't even help much
19:27:38 <pikhq_> Phantom_Hoover: In C++, you have only translation units that get linked. You don't, say, import functions from some other module, you simply link a bunch of .o's together.
19:28:09 <pikhq_> With their only actual *relationship* being in *manually maintained* files that can be viewed as declaring an interface.
19:28:18 <ais523> pikhq_: if the ABI was more resistant to changes in implementation details, there wouldn't be so much of an issue
19:28:33 <pikhq_> Phantom_Hoover: Yes. It's a problem in C as well.
19:28:45 <ais523> Phantom_Hoover: in C, it's not as bad because you can have a reasonably stable ABI between .o files
19:29:12 <pikhq_> This thing makes it a royal pain to do a build system.
19:29:27 <pikhq_> Phantom_Hoover: C++ just makes the problem much more obvious.
19:29:37 <zzo38> However the file "wayland.xml" mentions many things which I do not want, but a different version can be made without these things and with some differences, possibly by having a different window manager and stuff
19:29:45 <Phantom_Hoover> ais523, you mean how calling a function is basically the same if it keeps its type?
19:29:59 <zzo38> It seems to have MIME types, and I don't need that
19:30:16 <ais523> the problem exists in both C and C++, but it's much easier to work around in C
19:30:51 <Phantom_Hoover> ais523, because C++ does awful, awful things to the ABI for method calls?
19:31:06 <pikhq_> That's an understatement. :)
19:33:09 <ais523> somewhere between five and six
19:34:51 <CakeProphet> "in the X server" doesn't tell me how to get to it.
19:35:18 <ais523> CakeProphet: you can communicate with X directly, but you'd be mad to
19:35:23 <ais523> so you use a library which abstracts away the details
19:39:04 <ais523> Phantom_Hoover: something like GTK or Qt almost certainly has an API for accessing the clipboard
19:39:12 <ais523> and that's what people normally use to interact with X
19:39:18 <ais523> perhaps even SDL does, although I'm not sure on that one
19:39:31 <ais523> open a particular socket, do read() and write() to it
19:39:35 <ais523> in a particular format
19:40:09 <ais523> you need to prove you're allowed to write to that X display by sending a particular string first, which is stored in a file with permissions set so only the user in "charge" of the display can read it
19:40:28 <ais523> the idea's that you can copy the file to your accounts on other systems to pop up windows on your own desktop remotely
19:41:59 <Sgeo_> Starting to wonder if I should have gotten a Kindle
19:44:00 <Sgeo_> Not sure that what I did get is necessarily better in just those terms
19:44:17 <CakeProphet> oh yeah Kindle is probably the best e-reader thingy.
19:44:32 <CakeProphet> I considered getting one but I don't really read enough to warrant the purchase.
19:44:36 <CakeProphet> maybe that would change though if I got one.
19:47:25 -!- Nisstyre has quit (Ping timeout: 264 seconds).
19:52:29 -!- elliott has joined.
19:52:31 <zzo38> I suggest you don't need it. I don't need it either
19:52:35 <elliott> <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
19:52:39 <elliott> <elliott> Gregor: You just hg commit whenever no commands are running
19:52:41 <elliott> I mean sure, if someone does something legitimate and someone else fucks it up simultaneously, you have to run the legitimate command again, but...
19:53:03 <elliott> 18:50:37: <pikhq_> Gregor: git is quite a brilliant VCS with quite a terrible UI.
19:53:03 <elliott> 18:50:54: <ais523> pikhq_: it isn't quite a brilliant VCS
19:53:09 <elliott> hey guys SCAPEGOAT HAVE I MENTIONED SCAPEGOAT
19:53:17 <elliott> 18:50:17: <Gregor> VCS epiphany: git is terrible :P
19:53:22 <elliott> Gregor: git is pretty much exactly as terrible as hg :P
19:53:27 <elliott> They're basically identical
19:53:34 <Gregor> Except that git's UI is a joke.
19:53:44 <ais523> elliott: later I explain when I realised what exactly was wrong with git
19:54:00 <ais523> before, I'd known there was something very wrong with it but couldn't quite put my finger on it
19:54:02 <elliott> Gregor: Well, common operations are nice enough, and it's nice to have the advanced branch filtration stuff because git is deficient enough to need it. But yeah, hg's is slightly nicer.
19:54:14 <elliott> git has more infrastructure and popularity, though, so it wins out for me.
19:54:38 <elliott> ais523: btw, are you implying that you'd only want to pull _parts_ of a commit from upstream?
19:54:46 <ais523> elliott: not of a commit
19:54:49 <elliott> because that's wrong in any DVCS; commits should be as small as possible
19:54:51 <ais523> only some commits from a series
19:55:15 <ais523> if I want to pull half a commit, it's because the person committing it didn't break it up enough
19:55:18 <elliott> 18:57:50: <pikhq_> Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing.
19:55:23 <ais523> and that's most easily done by pulling then half reverting
19:55:26 <elliott> ais523: indeed (I do that a lot, but that's a personal deficiency)
19:55:38 <ais523> (darcs actually has a UI for a half revert, so presumably they're aware that people often mess that up)
19:55:42 <elliott> at least it's for mcmap, which has a proud tradition of terrible UI practices
19:55:56 <elliott> if it builds, commit it... if you're too lazy to try and build it, commit it anyway
19:56:19 <elliott> `addquote <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:56:21 <HackEgo> 590) <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
19:56:37 <ais523> the second is arguably even more fun
19:56:44 <elliott> 19:24:39: <nooga> I've got an undeniable proof that Notch's a real retard
19:56:57 <ais523> my favourite of my Enigma levels is still Boulder Crossing, which they didn't accept
19:57:00 <elliott> Notch is an idiot, but your grudge against him and all things Minecraft is really weird and really annoying
19:57:15 <elliott> Do you have walls covered with anti-Minecraft propaganda written in 9 pt font in crayons
19:57:17 <ais523> it's very nearly pure wiring, no Lua there at all
19:57:25 <elliott> ais523: I haven't played that one, I don't think
19:57:26 <ais523> although I needed to make a trigger control the existence of a grate
19:57:39 <ais523> elliott: indeed, it isn't "public" as in the repo, because it wasn't accepted
19:57:43 <ais523> but it's on mag-heut, let me dig up the link
19:57:49 <elliott> 19:24:52: <nooga> Notch on C++: "Recently, I've done some work in C++. It's a powerful language and fun, but the retarded compilation system makes me cry a bit."
19:57:49 <elliott> C++ /is/ a powerful language, it /is/ fun (note: this does not mean it's a good language), and its compilation system /is/ terrible
19:57:54 <elliott> that's one of the least stupid things Notch has ever said
19:58:08 <elliott> ais523: I probably won't play it now, but perhaps later
19:58:19 <pikhq_> "Fun" in the sense that Brainfuck is fun, presumably.
19:58:33 <elliott> no, fun in the sense of C++ sudoku
19:58:37 <elliott> which is still the best programming game, ever
19:58:48 <ais523> http://www.mag-heut.net/blackball/levels/submits/ais32_2.zip
19:58:52 <Gregor> Is that where you use C++ template metaprogramming to solve sudoku?
19:59:09 <elliott> Gregor: It's where you use C++ template metaprogramming to solve anything.
19:59:18 <elliott> Gregor: Or, more generally, accomplish any task that's trivial in a functional language in C++.
19:59:41 <Gregor> elliott: So, didja get UMLBox running?
19:59:47 <elliott> Gregor: For instance: create a class maybe<T> which perfectly represents the Haskell Maybe type or OCaml's option. You can't just use a pointer. Why not? Because you can't have a pointer to references.
19:59:57 <elliott> So you have to rely on the standard casting to char-pointer and back.
20:00:09 <elliott> Gregor: I got disconnected right as I was talking about it >_>
20:00:18 <elliott> <elliott> <Gregor> elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P
20:00:18 <elliott> <elliott> <elliott> Gregor: Or
20:00:18 <elliott> <elliott> <elliott> Gregor: You just hg commit whenever no commands are running
20:00:18 <elliott> <elliott> I mean sure, if someone does something legitimate and someone else fucks it up simultaneously, you have to run the legitimate command again, but...
20:01:38 <elliott> Gregor: I think sg is the nicest solution for the HackEgoWhatevers :P
20:02:14 <elliott> OK, I'mma try and build umlbox.
20:02:26 <Gregor> elliott: None of that is about U--- yeah
20:02:27 <ais523> well, even sg can't resolve an actual conflict without help
20:02:43 <elliott> ais523: no, but for HackEgo, the merging mechanism is obvious
20:02:52 <Gregor> <CakeProphet> oh yeah Kindle is probably the best e-reader thingy. // (lol accidental logreading) I assume of course that in your confused state, you have replaced the word "worst" by "best"
20:03:15 <elliott> ais523: just run the two patches in time order, and if the second one fails, just give up and let there be two heads
20:03:25 <elliott> which, admittedly, is not an easy situation to resolve from inside the bot
20:03:34 <elliott> Gregor: Better than the Nook
20:03:56 <elliott> Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package?
20:03:57 <ais523> what's wrong with the Nook? I have very little information on it, so I can't praise or bash it
20:04:00 <elliott> I mean, apart from the kernel being newer.
20:04:02 <ais523> and don't even know which to do
20:04:09 <Gregor> elliott: The kernel it builds has less gunk (so is faster)
20:04:15 <Gregor> The Nook is assuredly better than the Kindle.
20:04:18 <elliott> ais523: pointless normal touchscreen display below the screen, so you have a nice glaring surface below your actual book
20:04:25 <Gregor> elliott: That's olde nook.
20:04:42 <Gregor> elliott: The new Nook (NOT the Nook touch) has a clever touchscreen, no backlight anywhere.
20:04:49 <elliott> Gregor: well, I also resent it for trying to appear all "open sharing", while in reality having a completely insane one-share system
20:04:53 <elliott> whereas the Kindle doesn't even try to pretend
20:05:06 <Gregor> But at least the Nook supports ePub ...
20:05:19 <elliott> I kind of want a Kindle just so I can use the browser to IRC
20:05:25 <Gregor> ais523: Yes. Both are AFAIK, but Nook runs Android so that's nice ...
20:05:26 <elliott> I mean, what other e-reader comes with free threegee internet?
20:06:14 <Gregor> Anyway, the best is (was) the IREX DR800. Which is why the company went out of business.
20:06:54 <elliott> <elliott> Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package?
20:07:07 <Gregor> <Gregor> elliott: The kernel it builds has less gunk (so is faster)
20:07:16 <Gregor> Gotta agree with that assessment of keys.
20:07:37 -!- oerjan has joined.
20:07:44 <elliott> echo init | cpio -H newc -o | gzip -9c > umlbox-initrd.gz
20:07:44 <elliott> cp -f umlbox-config linux-3.0.1/.config
20:07:45 <elliott> cp: cannot create regular file `linux-3.0.1/.config': No such file or directory
20:07:53 <elliott> Gregor: Your Makefile is missing a certain dependency :P
20:08:09 <Gregor> elliott: Shall I go back to the part where I said you need to `make nokernel` to build without the kernel?
20:08:16 <Gregor> I don't want to logread that far to copypasta.
20:08:18 <elliott> Gregor: I want to build the kernel :-P
20:08:34 <elliott> But you did miss the dependency on linux-3.0.1/Makefile ;-P
20:08:36 <Gregor> Oh; well you need to fetch and extract the kernel yourself, it just configures and builds it :P
20:11:23 <elliott> How is Linux even seventy megabytes compressed these days.
20:11:29 <elliott> How can my internet connection even download that in minutes.
20:11:33 <elliott> What is this life, what is this future.
20:11:55 <Taneb> The Future sure isn't what it's cracked up to be
20:13:29 <elliott> Gregor: How minimal a kernel does it build? cba to look at your config :P
20:13:57 <elliott> I'VE MADE A FIVE HUNDRED KILOBYTE (COMPRESSED) KERNEL BEFORE THAT EVEN BOOTED IN QEMU, I DON'T SEE HOW IT COULD POSSIBLY LIVE UP TO MY INCREDIBLY EXACTING STANDARDS
20:14:39 <Gregor> elliott: Not that small.
20:14:40 -!- monqy has joined.
20:14:52 <Gregor> It has no support for modules, swap or networking.
20:15:05 <Gregor> That's uncompressed though ...
20:15:12 <elliott> No point compressing it really
20:15:18 <Gregor> Ohwait, it's at about 1.8M now apparently.
20:15:31 <elliott> /bin/sh could not be executed
20:15:31 <elliott> I might have to actually fill out a chroot of some kind huh
20:15:49 <Gregor> You want ./umlbox -B ls
20:16:07 <Gregor> -B is the base directories (I'm considering making that the default and its inversion the option)
20:16:17 <elliott> Gregor: So I take it this is running on my irl system
20:16:25 <elliott> Hmm, without /home mind you
20:16:43 <ais523> hmm, I suspect UMLbox is actually entirely unlike the Secret Project
20:16:46 <Gregor> The base directories do not include /home.
20:16:57 <ais523> does it do anything to help out reproducibility at all?
20:17:04 <Gregor> ais523: Not even a little bit.
20:17:11 <Gregor> elliott: You can use umlbox -B -f . ls
20:17:38 <Gregor> . is .. quite the command ...
20:18:00 <ais523> SIGTERM is quite a rare signal to get, actually
20:18:03 <Gregor> But yes, its error output tends to be magnificent.
20:18:06 <ais523> you pretty much have to set it off deliberately
20:18:06 <elliott> Gregor: Oh, -f sls is what breaks it
20:18:21 <elliott> ./umlbox-linux results in FUN
20:18:45 <ais523> the sort of fun which involves a lot of angry dwarves?
20:18:47 <Gregor> elliott: Oh, I see what's happening, trying to mount a non-existing directory = craziness.
20:18:56 <elliott> Gregor: I really like how -v fucks up my terminal and I have to "stty sane" afterwards :P
20:19:15 <Gregor> elliott: That's UML's fault, Idonno how to fix it >_>
20:19:19 <ais523> hmm, is stty sane more or less severe than reset?
20:19:26 <ais523> Gregor: a few ioctls should do it
20:19:26 <elliott> Gregor: Store terminal state at startup, restore it at quit?
20:19:41 <elliott> It's just a syscall or two
20:19:44 <Gregor> elliott: So much work for the mostly-lame -v option :P
20:20:09 <elliott> Is there actually a host/host?
20:20:17 <elliott> That's an absolute path :P
20:20:25 <elliott> SF(tmpi, setgid, -1, (childGID));
20:20:25 <elliott> SF(tmpi, setuid, -1, (childUID));
20:20:25 <elliott> This is set to a constant nowadays, right?
20:20:44 <Gregor> No, it's set to the caller's IDs.
20:21:29 * elliott recalls ubda as a UML thing...
20:21:59 <Gregor> ubda is where I put the configuration junk that the host communicates into the guest 8-D
20:22:08 <Gregor> Making your hard disk be a text file ... the best?
20:22:38 <elliott> I find your host-client communications really wanting :P
20:22:50 <elliott> Where is the ubda file on the host, though...
20:23:40 <elliott> So you have to configure it after it starts up but before your process gets executed?
20:23:59 <Gregor> umlbox writes the configuration file based on the command line arguments.
20:24:05 <elliott> I thought it was a user-exposed hing
20:24:17 <elliott> Those aren't very safe /tmp filenames >_>
20:24:57 <Gregor> elliott: If the attacker already has your user account, you're pretty boned.
20:27:12 <elliott> I was raised on a diet known as "ALWAYS FUCKING USE MKSTEMP OR YOU WILL IDE"
20:28:36 <ais523> elliott: I typically use tempdir instead
20:28:42 <ais523> which is an alternative way to make secure tempfiles
20:28:48 <ais523> and one that's a little easier to mentally prove secure
20:29:01 <elliott> Temporary files: Still the stupidest thing????
20:29:15 <ais523> the way Secret Project creates temporary files is really ridiculous
20:29:26 <ais523> it creates a new mount namespace, then mounts a tmpfs there
20:29:28 <ais523> and creates the files on that
20:29:48 <ais523> the files' filenames aren't expressible from outside the secret project
20:29:54 <ais523> except sometimes via /proc hackery
20:31:20 <elliott> ais523: I bet the secret project would be easy IN @
20:31:39 <elliott> that @ is capitalised, btw
20:31:55 <ais523> it'd be easy if it had sufficient permissions
20:31:56 <elliott> and I don't know whether I mean doing the same thing as the secret project for @, or keeping it as Linux, but doing that on top of @
20:32:07 <ais523> it might need quite high permissions, though
20:32:18 <ais523> (although, Secret Project requires root, oh does it really require root)
20:32:31 <ais523> (but it drops permissions as quickly as it can; before becoming init, in fact)
20:32:36 <Taneb> sudo secret project
20:32:42 <elliott> ais523: why would it need high permissions? remember that you can basically run anything you have access to in an arbitrary environment
20:32:44 <Gregor> elliott: Well, she's sleeping right next to me.
20:32:46 <ais523> oh, random fact: if you've ever been root, and drop your permissions, you then can't read your own procfiles
20:32:50 <Taneb> Oh, I was an idiot for think that would be funny
20:32:51 <elliott> so you can emulate an entire system as an unprivileged user
20:33:01 <ais523> elliott: but the issue is that you have to emulate the entire system
20:33:03 <Gregor> ais523: You could use Linux's crazy set-capabilities bits to only get the strictly-required caps!
20:33:12 <ais523> whereas secret project passes syscalls mostly unchanged, if it can
20:33:19 <ais523> Gregor: I actually thought of that
20:33:28 <elliott> ais523: Well, the secret project could give anything it runs the exact permissions it has
20:33:29 <ais523> but I want to drop permissions totally
20:33:34 <elliott> ais523: So you could easily pass on anything that you can do
20:33:41 <ais523> partly to stop what's inside breaking out
20:33:53 <ais523> because I'm not quite crazy enough to mount over /
20:34:01 <Gregor> ais523: I meant the set-capability bits on the file, as an alternative to setuid-root.
20:34:15 <ais523> oh, it's currently not SUID, but designed to be run via sudo
20:34:19 <elliott> ais523: So I don't see how the secret project would require any more permissions than what it's running
20:34:30 <ais523> it has to drop permissions to a known UID anyway
20:34:34 <ais523> because Linux doesn't yet have UID namespaces
20:35:32 <ais523> and I'm not sure if people are planning to implement them
20:35:51 <ais523> (you can namespace /etc/passwd easily enough, but that's not really the same)
20:36:31 -!- PatashuWarg has joined.
20:36:44 <elliott> ais523: so yeah, I really don't see how the secret project would need any elevated permissions on @ over what it's running
20:36:47 <ais523> Gregor: gah, don't say that, do you have any idea how nondeterministic sending signals is
20:37:00 <elliott> the reason you need them in Linux is that you can't control how your children access the system if you're not really privileged
20:37:04 <ais523> it took me hours to get that working
20:37:15 <ais523> and I'm still not sure if it's fully working
20:37:17 <elliott> but in @, you pass all your children the whole system _anyway_ (or well, the bits you have access to)
20:37:21 <elliott> so you can easily transform it arbitrarily
20:37:28 <Gregor> ais523: umlbox makes signal isolation easy! :P
20:37:36 <elliott> ais523: also, have you considered just writing a Linux syscall emulator?
20:37:44 <ais523> elliott: yes, it seems like a lot /more/ work
20:37:49 <ais523> I'm just emulating the syscalls that need emulation
20:37:53 <elliott> ais523: like, getting a really simple xeightsix emulator
20:37:53 <ais523> which is a relatively small fraction
20:38:00 <elliott> and then implementing the syscalls you need in a really deterministic way
20:38:09 <elliott> Gregor got JSMIPS running bash in days :P
20:38:11 <ais523> I need /all/ the syscalls!
20:38:13 <Taneb> That would be like everything WINE isn't
20:38:23 <ais523> even personality(2), apparently
20:38:37 <elliott> monqy: guess what just got a major new release.........
20:38:39 <ais523> I have to intercept requests to prevent them turning ASLR back on
20:39:02 <elliott> oh no now it depends on arrows..........
20:39:07 <ais523> well, OK, I gave up on the one that goes into virtual x86 mode
20:39:21 <elliott> monqy: fclabels, it is now at one point oh, and it has been like totally redone???
20:39:23 <elliott> http://hackage.haskell.org/package/fclabels-1.0
20:39:32 <ais523> and ptrace is obviously a complete nonstarter
20:39:39 <elliott> "Arrows allow for effectful lenses, for example, lenses that might fail or use state."
20:39:44 <elliott> iw onder what KMETT Things of this
20:39:44 <ais523> unless I reimplement it in terms of, umm, ptrace
20:39:47 <ais523> and that'd be really confusing
20:39:53 <elliott> "Dear Op: I was playing with this today and noticed the performance was about 20 times slower than the built-in method of changing fields."
20:40:33 <ais523> you could intercept ptrace requests, then vary your own so that to the ptraced processes, it looked like they were ptracing other processes and those processes were responding appropriately
20:40:46 <Gregor> Does fclabels stand for "Fuck labels!"?
20:40:51 <elliott> Gregor: first-class labels
20:40:58 <elliott> Gregor: it is pruely functional goto (no not really)
20:41:06 <ais523> (incidentally, this sort of thing is why you cannot run secret project in a debugger; for bonus points, it makes valgrind crash with an internal error and a suggestion you send a bug report, even though AFAIK valgrind doesn't even use ptrace)
20:41:23 <elliott> ais523: why doesnt bochs work agin...
20:41:29 <elliott> it is pretty detriministic........
20:41:33 <monqy> so how bad is the new fclabels....
20:41:39 <ais523> elliott: inside valgrind?
20:41:45 <ais523> I don't see why it wouldn't work inside secret project
20:41:55 <elliott> why is bochs not suitable for secret project
20:42:02 <ais523> oh, I muddled it with boehm
20:42:09 <ais523> I've never heard of bochs
20:42:13 <elliott> ais523: what, yes you have
20:42:18 <elliott> Gregor: tell ais523 he's heard of bochs, because he has
20:42:21 <ais523> well, in that case I forgot
20:42:36 <elliott> ais523: it's like qemu but.................. even more pure/deterministic/portable/slow
20:42:43 <elliott> it's used for debugging OSes, usually
20:42:47 <ais523> speed is actually important
20:42:56 <elliott> ais523: well it's fast enough to run like old windowses
20:42:58 <ais523> it doesn't need to run fullspeed (although sometimes it runs faster)
20:43:02 <Gregor> bochs is the x86 emulator for people who seriously are emulating an x86, and not just trying to make x86 shit run.
20:43:10 <ais523> but fast enough that applications inside it are reasonable
20:43:12 <elliott> I mean you couldn't boot any Ubuntu on it
20:43:21 <elliott> but you could easily run a command-line Linux or maybe simple Xorg linux???
20:43:34 <ais523> could it run pulseaudio?
20:43:44 <ais523> at a reasonable speed?
20:43:51 <elliott> ais523: I think it emulates, like, a SoundBlaster, but probably, but why are you using pulseaudio
20:43:52 <ais523> admittedly, secret project can't do pulseaudio yet
20:43:59 <ais523> because other things have dependencies on it
20:44:03 <elliott> you should try bochs though it might really help you out
20:44:09 <elliott> I mean, I don't know what your problems with qemu were
20:44:13 <elliott> but bochs is a lot more... predictable? than that
20:44:30 <ais523> telling you my problems with qemu would give too much away
20:44:37 <ais523> but I will say, they were unrelated to emulation accuracy
20:44:42 <elliott> but try bochs; it's in Debian and everything
20:45:01 <elliott> ais523: oh, you'll want to copy its default configuration file and modify it, probabl
20:45:13 <ais523> copying it to save on having to redownload it?
20:45:15 <elliott> ais523: were they related to determinism?
20:45:29 <elliott> it's in /usr/share somewhere
20:45:34 <ais523> I don't think either yes or no would be a non-misleading answer
20:45:42 <ais523> so I just won't answer you
20:46:00 <ais523> in fact, I'm not entirely sure, offhand, which is technically correct
20:46:02 <elliott> monqy: the new fclabels expor names are uglier :(
20:46:47 <elliott> gets, puts, modify <-- conssisistent
20:47:33 <elliott> http://hackage.haskell.org/package/data-accessor-0.0.1 maybe i will just use this forever (it is before henning got his hands on it)
20:48:18 <Gregor> Bochs is a HUGE pain to configure.
20:48:28 <Gregor> But it can run AT&T Unix System V, so it's totally worth it.
20:49:10 <zzo38> Is "cat" in UNIX similar to "return" in Haskell? Some document says there is similarity and also that "|" in UNIX is similar to ">>=" in Haskell
20:49:53 <elliott> zzo38: okmij.org, by any chance?
20:50:05 <ais523> hmm, arguably UNIX echo is more like Haskell return
20:50:06 -!- sllide has joined.
20:51:07 <zzo38> Yes that is the domain name as it turns out
20:51:32 <elliott> zzo38: yep, that's Oleg's popular piece on it
20:51:55 <ais523> well, /the/ relevant Oleg?
20:52:03 <ais523> that's a weird analogy to be using
20:52:14 <ais523> although I'm not surprised he uses weird analogies
20:52:22 <ais523> given what his code is like
20:52:33 <elliott> ais523: I think you're thinking of the Subleq Oleg
20:52:47 <elliott> ais523: I'm talking about the Haskell-celebrity one
20:52:59 <elliott> his code is perfectly readable :P
20:53:01 <ais523> I thought his code was famous for being very efficient and unlike what anyone else writes
20:53:06 <elliott> ais523: but anyway, it's not "an analogy", http://okmij.org/ftp/Computation/monadic-shell.html
20:53:10 <ais523> not unreadable, just /weird/
20:53:20 <elliott> ais523: Well, he's mostly famous for applying the type system to everything
20:53:34 <elliott> his Haskell style isn't the "standard" style, I suppose, but it doesn't really feel foreign
20:53:48 <ais523> bleh, I don't think is-equivalent-to can be typed with compose
20:53:52 <ais523> or at least, I can't guess the binding
20:53:56 <elliott> anyway, it's more of a correspondence than an analogy
20:54:00 <ais523> I may end up having to write Agda
20:54:10 <elliott> ais523: what language are you talking about
20:54:26 <elliott> ais523: you don't need to use the compose key for Agda
20:54:29 <ais523> "typed with compose" almost has a computer-science meaning
20:54:34 <monqy> oh so the subleq oleg and the real oleg are different people? this glads me.
20:54:39 <elliott> ais523: agda-mode automatically turns on a modified TeX input method
20:54:43 <ais523> but it's not one that makes a lot of sense
20:54:51 <elliott> well, I thought you meant point-free style
20:54:55 <ais523> elliott: hmm, what if I need to type random bits of Agda when Emacs isn't open
20:54:58 <elliott> but yeah, no compose needed for agda
20:55:13 <elliott> ais523: you suffer, or just type it in emacs then copy it over
20:55:20 <ais523> also, I don't really like texish input methods
20:55:32 <elliott> ais523: Agda has so many special characters that there isn't much choice
20:55:38 <ais523> I've used them before now when writing unicode-heavy stuff
20:55:44 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:55:49 <ais523> I actually find LaTeX a little frustrating to type for the same reason
20:55:52 <elliott> besides, coding Agda without using agda-mode or a (non-existent) equivalent is... not nice for humans
20:56:03 <elliott> (it's half language mode, half interactive proof-ish system)
20:56:20 <elliott> (you can put your cursor over a "hole" ("expression I haven't written yet") and ask it what type it needs to be, etc.)
20:56:33 <ais523> this is why I thought efficiently compiling Agda was a weird thing for my coworker to study
20:56:43 <ais523> it's not as if Agda programs are mostly designed to be run
20:56:49 <ais523> you just write them to verify they compile
20:56:52 <ais523> then you go do something else
20:56:57 <elliott> ais523: umm, writing a fast Agda compiler, or writing an Agda compiler that produces fast code?
20:57:03 <Deewiant> ais523: You modify ~/.XCompose
20:57:15 <elliott> ais523: there is actually a surge of Agda programs you actually want to run; there's even a webframework
20:57:29 <elliott> ais523: but they're all very, very slow
20:57:35 <ais523> elliott: Agda compiler that produces fast code
20:57:37 <elliott> ais523: you end up writing the performance-critical code in Haskell and FFIing to it from Agda, usually
20:57:48 <elliott> Deewiant: thanks for your exciting mycology messages btw :P
20:58:36 <Deewiant> Thanks for either pointing me to a new interpreter or reminding me about one I'd forgotten about
20:58:45 <Deewiant> I saw it earlier but I thought it was the same as zfunge
20:59:34 <ais523> elliott: they wrote a parser for expressions along the lines of + - * / numbers and parens
20:59:41 <elliott> Deewiant: You should totally rewrite slowdown so it doesn't depend on, like, fingerprints and shit... or wait, I actually got it running, didn't I
20:59:49 <ais523> with five operands, the resulting program only took a day or so to run
20:59:52 <ais523> they gave up waiting with six
20:59:56 <elliott> Deewiant: It is the same as zfunge, just not the same as zbefunge
20:59:58 <ais523> apparently they were happy with the reuslts, though
21:00:06 <elliott> Deewiant: How did you get a hold of zfunge? The link on http://flourish.org/zbefunge/ is broken
21:00:11 <ais523> (that is, the parser was written in Agda, and this is with the optimising compiler)
21:01:04 <Deewiant> elliott: And no, that calls itself zedfunge, that's a different thing from zfunge
21:02:08 <elliott> | fs !@@ (ip ^. ray) == space = [...]
21:02:08 <elliott> | not (isStringMode ip) && fs !@@ ray ip == semicolon =
21:02:46 <Deewiant> Also, random numbers are available only in FIXP, can't really do much about that
21:03:16 <Deewiant> If you want to write a ?-using random generator with the full 2^32 range, go ahead
21:04:32 <Taneb> Is it possible for software to be proprietry and open source?
21:05:11 <Taneb> Like, you can look at the inner workings of this software if you've paid for it, but don't distribute it. At all. And don't tell anyone.
21:05:17 <ais523> that's not open source
21:05:25 <ais523> it's known as "shared source"; Microsoft have some products like that
21:05:34 <ais523> and UNIX was like that for years
21:05:38 <elliott> don't... don't do that, Taneb :P
21:05:43 <ais523> before it escaped into almost the public domain
21:06:04 <ais523> well, parts of it, anyway
21:06:16 <ais523> with both BSD and OpenSolaris, there isn't a lot left
21:06:26 <ais523> (although SCO managed to confuse everyone as to whether OpenSolaris was legal or not)
21:09:45 <oerjan> Taneb: your new language is _clearly_ misnamed. and you even admit to knowing why. hth.
21:10:09 <Taneb> If you can think of a better name, please tell me
21:16:40 <elliott> copumpkin: Is this the Haskell confession booth?
21:16:53 <itidus20> this is the haskell showbag booth
21:17:16 <elliott> copumpkin: I've Haskell-sinned, y'see.
21:17:25 <elliott> Or, well, am planning to. I can get preemptive forgiveness, right?
21:17:26 <itidus20> sir you look awfully lucky if i have ever seen a lucky looking man it is you
21:18:38 <elliott> copumpkin: I'm about to create a package that just imports a package, renames a few functions and changes the type signatures of a few, and re-exports the lot. It will introduce an additional dependency for no justifiable non-aesthetic gain and is completely self-centred.
21:19:43 <itidus20> why does my heart-- feeel so bad
21:20:34 <oerjan> itidus20: too much pasta. hth.
21:21:08 <elliott> Anyway it's edwardk's fault for making the StateT modify and put functions in data-lens return the modified value.
21:22:02 <itidus20> best cure for a psychotic break is a glass of your brothers alcohol.. although maybe that wasnt what happened.. who knows.. who cares
21:23:47 <itidus20> my subconcious seems to know its place for now
21:23:57 * oerjan is unclear whether itidus20 is breaking down or quoting lyrics
21:24:42 <monqy> elliott: i still don't see what's so bad about that you can just discard them right???
21:24:53 <monqy> elliott: or is this all just about going against your convention
21:25:33 <elliott> monqy: yeah but I have to put "ignore" everywhere so that I can still return -> Shiro () in my actions that have NO USEFUL RETURN VALUE
21:25:46 <elliott> because OMG UR THROWING IT AWAY
21:25:51 <elliott> "_ <- foo [percent]= blah"
21:25:53 <itidus20> someone once told me that there are a surprising number of chemical paths to creating alcohol
21:25:54 <elliott> and i am like FUCK OYU........
21:26:12 <ais523> itidus20: it's a pretty simple chemical
21:26:36 <monqy> that reminds me I've been playing with a really stupid alternative to do notation I made up and I don't know if it's worth using or just incredibly stupid
21:27:47 <zzo38> monqy: What is it?
21:27:48 <Sgeo_> Dangit, someone needs to remind me to refund that person
21:27:52 <monqy> basically there are two columns, one with sequencing operators and the like, and one with everything else, and that's about it
21:28:18 <monqy> will contrive example
21:29:44 <monqy> one problem with contriving example is im so bad at it
21:30:37 <monqy> I try writing something to show off how to do something but there's a better way and it makes me feel bad
21:30:46 <elliott> monqy: a simple, gussing game???
21:30:57 <elliott> some list monad code to do pythagoran triples
21:34:49 <oerjan> > do x <- [1..]; y <- [1..x `div` 2]; let ss = x*x-y*y; z = round . sqrt $ fromIntegral ss; guard (z*z == ss); return (x,y,z)
21:34:50 <lambdabot> <no location info>: parse error on input `;'
21:35:11 <oerjan> > do x <- [1..]; y <- [1..x `div` 2]; let {ss = x*x-y*y; z = round . sqrt $ fromIntegral ss}; guard (z*z == ss); return (x,y,z)
21:35:13 <lambdabot> [(13,5,12),(17,8,15),(25,7,24),(26,10,24),(34,16,30),(37,12,35),(39,15,36),...
21:35:19 -!- ais523 has quit (Remote host closed the connection).
21:35:44 <oerjan> hum i feel something missing
21:36:03 <elliott> monqy: hvae you writen exmaple yet
21:36:57 <oerjan> > do x <- [1..]; y <- [1..x-1]; let {ss = x*x-y*y; z = round . sqrt $ fromIntegral ss}; guard (ss < y*y); guard (z*z == ss); return (x,y,z)
21:36:58 <lambdabot> [(5,4,3),(10,8,6),(13,12,5),(15,12,9),(17,15,8),(20,16,12),(25,20,15),(25,2...
21:37:33 <elliott> oerjan: i don't think you need sqrt...
21:37:37 <elliott> iirc there's a very easy wayto do it
21:37:49 <elliott> An interesting thing to note is how similar list comprehensions and the list monad are. For example, the classic function to find Pythagorean triples:
21:37:50 <elliott> pythags = [ (x, y, z) | z <- [1..], x <- [1..z], y <- [x..z], x^2 + y^2 == z^2 ]
21:37:53 <elliott> This can be directly translated to the list monad:
21:37:53 <elliott> import Control.Monad (guard)
21:38:15 <oerjan> elliott: i'm trying not to iterate across all z's duh
21:40:04 <oerjan> i guess they haven't put monad comprehensions in lambdabot yet...
21:40:43 <oerjan> > [x | x <- Just "test"]
21:40:44 <lambdabot> Couldn't match expected type `[t]'
21:40:44 <lambdabot> against inferred type `Data.Mayb...
21:40:58 <elliott> monqy: fuck it, im delaying the lens conversion
21:41:55 <lambdabot> Source not found. Maybe you made a typo?
21:42:00 <oerjan> elliott simply cannot focus on his lens work
21:42:09 <elliott> hey oerjan how would I catch _just_ pattern matching errors
21:42:22 <elliott> only monadic pattern match errors
21:42:33 <lambdabot> Source not found. Are you on drugs?
21:42:36 <olsner> harr harr, *focus* on *lens* work
21:43:06 <oerjan> elliott: put it above something without IO?
21:43:19 <elliott> oerjan: I need IO at the bottom
21:43:30 <elliott> oerjan: if I put MaybeT at the front all hell breaks loose, I really need it directly in StateT IO
21:43:35 <elliott> to avoid a mess of typeclass slowdown
21:44:40 -!- Taneb has quit (Read error: Connection reset by peer).
21:45:47 <oerjan> what about a newtype with its own fail definition?
21:46:10 <elliott> oerjan: nope. (well, yes. but: no, it's not an option)
21:46:18 <elliott> I just need to know what the exception looks like :P
21:48:01 <monqy> is there any sort of lambda-case or lambda-if in (ghc) haskell
21:48:02 <elliott> Prelude Control.Exception Control.Monad.Trans Control.Monad.State.Strict> Control.Exception.catch (do Just 9 <- return Nothing; print "hi" :: IO ()) (\(SomeException e) -> print e)
21:48:02 <elliott> user error (Pattern match failure in do expression at <interactive>:1:29-34)
21:49:39 <oerjan> monqy: it's proposed, but...
21:49:39 <Deewiant> elliott: Is there any recommended way of doing configurationy stuff with tup
21:50:30 <CakeProphet> (no I don't know what you're talking about)
21:51:14 <elliott> Deewiant: tup.config support is built in, so yes.
21:51:18 <elliott> Deewiant: Or do you mean autoconf
21:51:29 <Deewiant> elliott: I mean something more convenient than editing a file
21:51:41 <elliott> Deewiant: The format is deliberately identical (gittup uses this extensively)
21:51:54 <Deewiant> How does one use Kconfig if one is not Linux
21:52:09 <elliott> The same way BusyBox, buildroot, ..., do
21:52:17 <elliott> Deewiant: If you want autoconf-style "find the compiler and shit", you can actually use autoconf fairly trivially, FWIW
21:52:36 <pikhq_> Yeah, autoconf is surprisingly general.
21:52:38 <Deewiant> autoconf isn't Windows-friendly
21:52:49 <elliott> Windows users are used to pain though ;-)
21:53:01 <pikhq_> Also, Windows isn't development-friendly.
21:53:05 <elliott> Deewiant: You may want to look at the http://gittup.org/ repositories for a large-scale Kconfig/tup usage
21:53:42 <elliott> Deewiant: A portable graphical Kconfig thing would be nice, as would something nicer than autoconf for automated compiler-finding, but... until then, Windows users can edit tup.config, I suppose
21:54:04 <elliott> pikhq_: Are you sure, like, the Qt Kconfig interface isn't portable?
21:57:01 <Deewiant> The tup kconfig doesn't even build the Qt interface :-P
21:57:15 <elliott> Deewiant: You don't need the modified kconfig
21:57:18 <elliott> That's just a gittup thing
21:57:41 <elliott> Deewiant: There's no special tup Kconfig integration, it's just that Kconfig "happens to" output in the exact tup.config format
21:58:26 <Deewiant> I just don't know anything about Kconfig other than that it's used by Linux
21:58:52 <Deewiant> This is the first time I've run into it as a separate project :-P
21:59:02 <elliott> Deewiant: You've never ever used BusyBox?
21:59:29 <elliott> Other things use it too, I just can't recall what :P
21:59:37 <elliott> Deewiant: Anyway, the syntax is pretty nice
21:59:48 <Deewiant> Well, maybe I've used it unknowingly but I haven't configured it or anything
21:59:50 <fizzie> Buildroot does too, IIRC.
21:59:57 <elliott> fizzie: I mentioned that, but that's almost the same thing as busybox
22:00:14 <elliott> bool "64-bit kernel" if ARCH = "x86"
22:00:14 <elliott> Say yes to build a 64-bit kernel - formerly known as x86_64
22:00:14 <elliott> Say no to build a 32-bit kernel - formerly known as i386
22:00:20 <elliott> default "arch/x86/configs/i386_defconfig" if X86_32
22:00:24 <elliott> default "arch/x86/configs/x86_64_defconfig" if X86_64
22:00:26 <elliott> config GENERIC_CLOCKEVENTS_BROADCAST
22:00:30 <elliott> depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
22:00:32 <elliott> That's basically the Kconfig format :-P
22:00:47 <olsner> "In fact, all you can really do with gittup.org is recompile things really fast and play nethack." :D
22:01:13 <oerjan> and you're all out of things to recompile, i take
22:01:25 <elliott> oerjan: "Go ahead -- try to change the ls on your system to print out extra messages for no reason!2 You can't do it!! Unless of course you're running gittup.org. But if you're running gittup.org, why aren't you playing nethack or needlessly recompiling things just for fun? In fact, how are you reading this webpage?? It doesn't even come with a web browser."
22:02:14 <elliott> Deewiant: But yeah, things that would be nice: a portable Kconfig or at leas something similar, plus something that takes a Kconfig file and some autoconf-esque declarations and tries to figure out values for them
22:02:15 <Deewiant> Is there a way of using Kconfig without importing more lines of code than there are in my project into my project
22:02:36 <elliott> Deewiant: If you want everyone else to have to find those same lines to compile them, sure
22:02:50 <Gregor> Deewiant: If Kconfig is longer than your project, you don't need that much configurability.
22:03:36 <elliott> Gregor: There is no real way to get lesser configurability that isn't text editing here, and Deewiant doesn't like text editors because he's a Windows user
22:03:41 <elliott> In fact, he doesn't even like words
22:03:54 <Deewiant> What's "that much configurability" :-P
22:04:00 <Deewiant> I just think that convenience is nice
22:04:26 <elliott> Deewiant: Ask pikhq_ for his tup+autoconf thing
22:04:29 <Deewiant> And I very rarely build stuff on Windows these days but I still think it's worth supporting
22:04:36 <elliott> I modified it to automatically do "tup init" and a few other things, but oh well :-P
22:04:43 <elliott> Deewiant: It was, well, the best autoconf on Windows could get
22:04:47 <elliott> Because it ran in under a second on Linux, rather than multiple seconds
22:05:04 <elliott> And it outputted in the correct format and all
22:05:11 <elliott> That's the most convenient way currently, IMO
22:07:30 <elliott> http://pulseaudio.org/ticket/672
22:08:26 <elliott> maybeShiro m = m `catchShiro` \(e::IOException) -> if isUserError e then reflect else io $ throwIO e
22:08:28 <elliott> oerjan: Rename my function, yo
22:08:47 <elliott> It used to make sense because it translated MaybeT Shiro into Shiro, but now it just handles certain types of exceptions and reflects on them :P
22:13:39 -!- augur_ has changed nick to augur.
22:15:24 <Deewiant> elliott: tup again: is there a generally used way of turning tup.config into, say, a .h, so that the project knows its configuration
22:16:19 <elliott> Deewiant: You want to read the entire thread "Support for -DFOO=@FOO"
22:16:33 <elliott> Basically, gittup does this by patching gcc, but there's an obvious way to do it without
22:16:48 <elliott> Deewiant: You probably don't want to turn it into an .h because that makes the dependencies less fine-grained
22:17:19 <pikhq_> Deewiant: There's been discussion on that, the best way I know of doing it currently on autoconf/tup is having autoconf generate a config.h in the mundane way.
22:17:58 <elliott> pikhq_: Well, it's easy enough to
22:18:00 <pikhq_> Though there's certainly better ways of handling it, just nothing that's already written for you.
22:18:03 <elliott> : tup.config |> sed |> config.h
22:18:03 <oerjan> elliott: horriblyBrittleFunctionWhichWillBreakIfGHCEverChangesItsPatternMatchErrorStringsShiro
22:18:16 <elliott> oerjan: I gave the entire implementation there
22:18:25 <elliott> as long as do notation pattern matches "fail" on failure, which they will
22:19:01 <oerjan> oh i guess there won't be userErrors unless you make them
22:19:24 <pikhq_> elliott: Or : foreach *.c.in |> tup varsed %f %o |> %B.c
22:19:46 <Deewiant> Ah right, tup varsed, I forgot about that
22:20:17 <elliott> Yeah, you can have a config.h.in pretty easily with that
22:20:30 <elliott> You could also generate config.h.in from config.tup and then varsed it :-D
22:21:08 <Deewiant> Even if it's somewhat redundant it's better than splitting the configuration into two places
22:21:34 <pikhq_> If tup varsed were more unixy, and you didn't care about not-unix, !cc = |> tup varsed <%f | gcc -c -o %o - |> %B.o
22:22:20 <elliott> Now to BRB and thus deprive Deewiant of my wisdom temporarily
22:22:21 <Deewiant> Am I a bad person for using $(CC) instead of !-macros
22:24:06 <oerjan> indeed, he barely scratches 54 microhitlers
22:25:22 <oerjan> if one microhitler is killing a few dozen people...
22:25:36 <itidus20> yeah even my left shoe registers on the picohitler level
22:25:40 <pikhq_> Deewiant: You want ! macros.
22:26:11 <pikhq_> Unless you like typing !cc = |> ^ CC %f^ @(CC) $(LOCAL_CFLAGS) $(%f_CFLAGS) @(CFLAGS) $(%f_CPPFLAGS) $(LOCAL_CPPFLAGS) @(CPPFLAGS) -c %f |> %B.o
22:26:22 <itidus20> http://photoshoplooter.tumblr.com
22:26:29 <pikhq_> Or !ld = |> ^ LD %o^ @(CC) $(LOCAL_CFLAGS) $(%f_CFLAGS) @(CFLAGS) $(%f_LDFLAGS) $(LOCAL_LDFLAGS) @(LDFLAGS) %f $(LOCAL_LIBS) $(%f_LIBS) @(LIBS) -o %o |>
22:26:34 <pikhq_> Over and over and over again.
22:26:35 <Deewiant> I just type $(CC) $(CFLAGS) -c %f -o %f
22:26:38 <itidus20> some of these are not completely terrible
22:27:13 <pikhq_> Congrats, you're going to be breaking some entirely reasonable expectations.
22:28:04 <oerjan> elliott: selfAwareShiro
22:28:06 <pikhq_> CPPFLAGS works. You can have per-file CFLAGS and per-directory in addition to global CFLAGS. You don't have giant piles of boilerplate.
22:28:30 <oerjan> (it reflects upon its actions)
22:29:11 <oerjan> especially the bad ones
22:29:41 <Deewiant> I fail to see the "giant piles of boilerplate" thus far
22:29:50 <Deewiant> But hmm, tup reads environment variables for that stuff?
22:29:58 <pikhq_> No, but autoconf does.
22:30:34 <pikhq_> Welp, you get to redo its functionality.
22:31:19 <pikhq_> Though, not much needs to be done for anything well-behaved.
22:32:50 <Gregor> pikhq_: umlbox is so much better than tup
22:33:41 <pikhq_> Gregor: umlbox does something *entirely different* from tup.
22:33:45 <pikhq_> But umlbox is pretty neat.
22:35:57 <Gregor> pikhq_: Dude, oranges are so much better than apples.
22:36:41 <olsner> oh, UML stands for usermode linux, not UML
22:37:10 <pikhq_> Yes, it's the acronym expansion that doesn't summon much vomit.
22:37:12 <Gregor> olsner: The good UML, not the lame UML.
22:38:30 <olsner> though, if there was a way to apply UML for this problem the result might actually be interesting
22:39:29 <oerjan> uniform modeling linux
22:46:44 <elliott> <Deewiant> Am I a bad person for using $(CC) instead of !-macros
22:46:57 <elliott> <Deewiant> I just type $(CC) $(CFLAGS) -c %f -o %f
22:47:04 <elliott> You really, really want to use the ^^ syntax to give it a prettier output
22:47:08 <elliott> That's basically idiomatic
22:47:11 <elliott> That's basically unidiomatic
22:47:27 <elliott> It prints the real command on any error
22:48:08 <elliott> Deewiant: And basically, you want to use rules because that's how the conceptual model works; don't think of them as macros. For instance, if you have C files in another directory, you don'tw ant to copy-paste all that crap
22:48:17 <elliott> You just want to list the files needing compiled, with the cc rule
22:48:26 <elliott> And then either an ld rule if it's a binary or a different one if it's a library, etc.
22:48:45 <Deewiant> Yeah but right now I only have one directory
22:49:04 <elliott> Deewiant: It's like writing a C program without any functions because you only call them once
22:49:19 <elliott> It's like, what, fifty bytes added in total to convert it to using rules? :P
22:49:35 <Deewiant> It's a bunch of cognitive overhead to look at the rule syntax etc
22:50:00 <elliott> Deewiant: That's a typical "I don't know the language so I'll use it unidiomatically" argument :-P
22:50:20 <elliott> ": foreach a.c b.c c.c |> !cc |>" is not hard to understand by any stretch
22:50:28 <elliott> And the rule-defining syntax is ... basically identical to the syntax you're using now?
22:50:39 <Sgeo_> elliott, Phantom_Hoover, husup
22:50:48 -!- nooga has quit (Ping timeout: 240 seconds).
22:52:39 <Deewiant> elliott: If "cc -c" is CC, what's "cc -shared"
22:52:57 <elliott> Deewiant: A different action to compiling a C file
22:53:11 <Deewiant> elliott: I mean, what to call it in ^^ :-P
22:53:14 <elliott> I forgot what -shared does :-P
22:53:36 <elliott> The .so extension should make it obvious
22:53:49 <elliott> Since it's ^ LD [percent]o^ for linker things by convention
22:56:25 <Deewiant> elliott: It was 218 bytes added
22:57:08 <elliott> Deewiant: Oh no, it's zero point zero one percent of a floppy disk
22:58:15 <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:58:16 <Deewiant> It's fifteen percent of an IP packet!
22:58:31 <Deewiant> Or an MTU or whatever the correct term is
22:59:06 <elliott> `addquote <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:59:08 <HackEgo> 591) <itidus20> that shit adds up. have you ever dropped a math problem in the toilet and got an answer back? yeah... it adds up
22:59:39 -!- SimonRC has quit (Ping timeout: 260 seconds).
23:00:07 <elliott> BAD: U says atan(2348.2368) isn't 89.9756
23:00:11 <elliott> Deewiant: Precision requirements a little exacting there
23:00:34 <Deewiant> It's the correct result, better give it
23:00:52 <elliott> Deewiant: Do you want a precise result for sqrt two as well?
23:01:14 -!- SimonRC has joined.
23:01:21 <Lymee> > atan(2348.2368)*(180/pi)
23:01:33 <elliott> Oh, so that's what's wrong :-)
23:01:38 <Deewiant> elliott: I allow arbitrary rounding I think
23:02:01 <Deewiant> At least for some reason some of them allow "0.1234 or 0.1235"
23:02:02 <itidus20> you won't get a rational answer for the sqrt of a prime
23:02:43 <itidus20> you will get either a rational or irrational answer for the sqrt of a prime
23:03:45 <oerjan> itidus20: do you wish to delete your last remark and undelete your first one? ;P
23:04:10 <oerjan> as it, whether you knew it or not, was entirely correct
23:07:15 <elliott> degree :: (Double -> Double) -> (Double -> Double)
23:07:15 <elliott> degree f = (/pi) . (*180) . f
23:07:22 <elliott> I wonder if (times (hundredeighty/pi)) would be better
23:08:56 <oerjan> i suppose neither method is guaranteed to give the best answer for every float
23:09:35 <elliott> Dammit Deewiant, Mycology sucks and FIXP sucks and YOU suck
23:09:42 <elliott> I also blame you for FIXP, completely unreasonably
23:09:59 <Deewiant> I don't see why you're finding FIXP so difficult :-P
23:10:23 <elliott> Deewiant: I've worked on it for about ten minutes
23:10:47 <elliott> Deewiant: Oh what, it's bitwise?
23:11:36 <elliott> I should really capalise shiro
23:13:02 <elliott> Deewiant: I wish you printed out the result you get when it's wrong :-P
23:14:01 <elliott> Deewiant: Clearly you need to rewrite Mycology to be modular and object-oriented
23:14:13 <elliott> Why the hell did you hand-write it anyway :-P
23:15:19 <elliott> I wonder if it's the largest funge ninteyeight program
23:21:22 <elliott> UNDEF: 2aaaa****J pushes 0
23:21:32 <elliott> Deewiant: Help what is even going on I don't even remember what the FIXP spec says, maybe I should read it
23:22:52 <Deewiant> > asin 20000 :: Complex Double
23:22:53 <lambdabot> 1.5707963267948966 :+ (-10.596634732471074)
23:23:35 <elliott> How the hell would you have a fixed-point complex funge
23:24:25 <Deewiant> You wouldn't with FIXP, at least
23:25:58 <Gregor> Wow, nasty thunderstorm ...
23:28:47 <zzo38> How can I do compose of two arguments in Haskell?
23:32:39 <oerjan> zzo38: could you rephrase that?
23:32:57 <zzo38> Don't worry I rephrased it properly on #haskell channel
23:35:24 <Gregor> Damn you thunderstorm.
23:35:28 <Gregor> My kitty does not like thunderstorms.
23:37:58 <elliott> Phantom_Hoover: YOU ABANDON ME
23:38:19 <Phantom_Hoover> elliott, WELL OK GET DOING THINGS AND I CAN STAY UP FOR A FEW MINUTES
23:39:34 -!- FireFly has quit (Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.).
23:48:41 -!- sllide has quit (Quit: Leaving).
23:54:35 -!- Phantom_Hoover has quit (Quit: Leaving).
23:58:19 <elliott> Where is that goddamn execution chamber.