00:00:07 I think he's just confusing reals with integers. 00:00:10 there is no real number n which exists whereby real number n+1 does not exist 00:00:19 itidus20: same for naturals... 00:00:47 itidus20: true. the number of real numbers is _not_ a real number, it's something else called a transfinite cardinal number 00:01:02 orosu 00:01:08 oerjan: you might have left off the "transfinite" part :P 00:01:21 ahh ok cool 00:01:28 well transfinite here means just "beyond the finite ones" 00:01:38 the finite ones are just the natural numbers 00:03:00 ah ok so the thing about real numbers then is that they are supposed to have leading and trailing zeros 00:03:13 really? 00:03:16 what 00:03:17 "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:18 what about 0.3333333333... 00:03:39 that one has leading zeros :D 00:03:53 itidus20: Specifically the number of real numbers is ב‎₁ (usually taken, by axiom, to be equal to א‎₁) 00:03:53 AND trailing zeros you said 00:03:57 oerjan: am i helpnig 00:03:57 if you mean or or xor then say so 00:04:03 i know .. you win 00:04:11 arguments aren't about winning hth 00:04:31 for some reason.. it rarely occurs that a person says ...333.0 00:04:33 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 itidus20: that's not a real number 00:04:43 it is a p-adic number, though 00:04:54 what about ...333.333... 00:04:55 PatashuWarg: let's write it in base 3: 0.10 see the leading and trailing zeroes? 00:05:03 curses! 00:05:05 itidus20: that's not a p-adic number. 00:05:09 what is that? 00:05:13 http://en.wikipedia.org/wiki/P-adic_number 00:05:20 a system not the same as the real numbers 00:05:25 left-infinite rather than right- 00:05:48 suppose you have left and right infinite.. you're just up to your knees in shit then? :D 00:06:03 you could do it 00:06:11 just devise your own system 00:06:20 its just never come up? 00:06:40 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 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: am i helpnig <-- my putty may be broken, but i suspect you hit some trouble with hebrew right-left writing there 00:07:55 PatashuWarg: sorry i have issues 00:08:28 yes 0.333... is a fantastic example of a number which does not have infinite trailing zeros 00:08:39 which i did not think of when i made my statement 00:08:59 BD 00:09:05 oerjan: i tried to insert overrides 00:09:06 itidus20: i cannot recall any use for numbers which have both leading and trailing ... oh wait, maybe hyperreals count 00:09:13 itidus20: backwards corner? 00:09:26 elliott: ah. maybe putty just didn't notice. 00:09:32 both leading and trailing ... sounds like a higher cardinality than reals 00:09:35 elliott: he's talking about number theory of course. 00:09:45 the most perverse corner of mathematics. 00:10:16 elliott: noone can account for the activities of mathematicians... 00:10:25 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 oerjan: fair enough; I was under the impression it was usually taken to be true rather than false 00:10:52 beyond that which investigates it specifically 00:10:52 actually, nvm. it isn't 00:11:06 oerjan: the cardinality of the reals is often casually referred to as aleph-one, though, isn't it? 00:11:10 which is the point i was trying to make 00:11:10 elliott: well that's what Cantor wanted :P 00:11:25 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:54 babbage did not build a computer 00:12:57 he designed one 00:12:57 i can't really explain why history seems more exciting when it happened over 100 years ago.. but it does 00:12:58 elliott: there are some popular math books which confuses them, i think 00:13:06 you should go back in time and give him money to build it 00:13:21 ok 00:13:23 (we actually might build an analytical engine soon. someone is looking for funding to do it.) 00:13:36 so he built a fancy calculator, and designed a computer 00:13:37 I thought it was already built? 00:13:40 oh, right 00:14:13 it will easily fill a room. it will be quite expensive 00:14:37 and does it have much power? 00:15:23 well, it's turing-complete! 00:15:34 is it? no fixed bitwidth? 00:15:37 so ... it can do anything your computer can, given enough time and a big enough store! 00:16:15 (babbage reckoned it could multiply two twenty digit numbers in under three minutes) 00:19:35 the signifigance being, I imagine, that it could do it all day 00:21:05 aha.. so ...9999=-1. 00:21:32 in the 10-adics 00:22:23 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 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:11 * CakeProphet laughs with itidus20 at me. 00:25:38 s/at/to/ 00:25:45 * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me. 00:26:26 how third-person of you. 00:26:29 ZING! 00:26:48 * itidus20 has probably detected a fault in my thinking patterns.... .... go him 00:27:23 itidus20: Even for what you were attempting, that's the wrong person, "me" is the software. 00:27:36 * Gregor laughs at his seemingly-unique ability to use pronouns properly in /me. 00:27:38 ais does it too 00:27:46 :P 00:27:47 also me 00:27:56 and I. 00:27:59 CakeProphet: of course 00:28:00 Gregor: When I said "laughs to myself" it was a genuine mistake, not a joke. 00:28:01 I just don't use /me 00:28:04 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 hm are the ten-adics even valid? 00:28:18 a few years ago I used to use /me, and when I did, I used pronouns properly 00:28:19 It may be related to some kind of neurosis 00:28:25 I would think the fact that p isn't prime would, you know... 00:28:44 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:28:55 Gregor: Shut up Eliezer. 00:30:13 CakeProphet: it was more than a typo 00:30:31 actually it would explain a lot of things if I were actually schizophrenic. Or something less in severity. 00:31:00 itidus20: I frequently misconjugate words or just type the wrong word. Ask anyone here. 00:31:18 sometimes I make typoes. 00:31:45 it's not like... a mental problem. Just carelessness or thinking too fast. 00:31:54 I'm not "ok". But sure one can say that noone is perfect. 00:32:31 And indeed, the kinds of troubles I have all seem to relate to interactions with the other humans 00:32:36 -____- 00:32:54 except for the ones that don't 00:32:58 #esoteric-therapy 00:33:18 I would do just as good as the next guy in some post-armageddon where I was the sole-survivor 00:34:00 I would build and program zombie slaying robots if I survived long enough to find the parts. 00:34:19 I'm not prepared for a zombie invasion, and that's OK 00:34:40 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 PatashuWarg: I'm glad you've accepted that. 00:35:42 this is what #estoeric-therapy is all about: Acceptance 00:36:22 you need to bring your FSA to an accepting state. 00:36:55 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 hm are the ten-adics even valid? <-- as a ring, sure, but only primes extend to a field iirc 00:37:07 im feld 00:37:34 itidus20: to get my totally awesome joke you need to know about it though. 00:38:04 Finite State Automaton? 00:38:22 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:29 itidus20 levels up his Google skill. 00:38:34 yes. 00:38:36 bah 00:38:38 oerjan: thats how felds works,, 00:38:40 i didnt google it :> 00:38:46 :o 00:38:53 I... google things all the time. 00:39:12 Yes and I google things which I wouldn't tell my own mother 00:39:12 I am reading about surreal numbers that I googled as we speak. 00:39:28 same. she wouldn't really understand what a p-adic number is. 00:39:39 But in this case I knew that TLA 00:39:51 even though if you asked me to define it we might be in a fix 00:39:54 uh, one second while I google that. 00:40:09 oh ho, that's a new one to me. 00:40:15 how clever. 00:40:16 yeah its pretty cool 00:40:42 it's interesting how TLDs are TLAs in a sense 00:41:30 * Gregor says, "But this is the only way to speak." <-- ah ancient MUD days... 00:41:38 Hah X-D 00:41:56 'I remember talking to people who put quotes behind all their lines unthinkingly. 00:42:01 'Even when they weren't on MUDs. 00:42:24 elliott: um no, in fields you can have the product of two nonzero elements be zero 00:42:37 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 oh, there's an initial state and a set of accepting (or final) states. 00:43:52 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 CakeProphet: I have pondered over it before indirectly.. because my purpose for existence is to ultimately be a game designer 00:44:07 you start the initial state, and then you take the input and follow the arrows... basically. 00:44:11 *start at 00:44:49 ok so.. can the states be duplicated? 00:45:12 do you mean, can you have more than one "circle" with the same state? no. 00:45:18 can you revisit states? yes. 00:45:52 cool. and.. i assume multiple arrows can have the same input character 00:46:08 *cannot, dammit 00:46:12 ahh 00:46:25 itidus20: er that wasn't to you 00:46:32 i was correcting myself above :P 00:46:40 each state must have an "arrow" for each character in the alphabet. 00:46:49 every state-input combination has to go somewhere. 00:46:50 ahh 00:47:01 so yes, more than one arrow can share an input character. 00:47:18 a lot of simple machines can be modeled as FSA. A vending machine, for example. 00:47:39 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 oh nevermind that comment of mine 00:48:41 so a final state I assume doesn't have any outputs 00:49:54 itidus20: it might. it's only really final if there aren't any more characters then 00:50:16 itidus20: it always has a state that it transition to for each input character. 00:50:22 +s 00:50:31 but sometimes it might circle back on itself. 00:51:10 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 oerjan: is the state-transition function still a function in the nondeterministic version? 00:52:45 so.. if there are 4 states.. and 3 characters then i imagine there are 12 transitions. 00:52:52 um not with a single state as result value, anyway 00:53:31 oerjan: ah so the result is a set of possible states then? 00:53:35 yeah 00:54:33 itidus20: yes. 00:55:09 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 I'm not sure why I put quotes around that. 00:55:56 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 oh well of course thats with 4characters instead of 3 00:56:39 that's a pretty simple machine though, it just counts characters 00:56:51 mod 4 00:57:19 as far as I can tell it only has one input character as well. 00:57:26 unless I'm reading the notation wrong. 00:57:27 i don't think i understand 00:57:40 ok wait ill explain 00:57:57 http://en.wikipedia.org/wiki/File:DFAexample.svg 00:58:16 here is a FSA diagram 00:58:34 the double-circle around S1 means it's an accepting state. 00:58:50 the arrowing coming out of nothingness means that S1 is the initial state. 00:58:54 *arrow lol 00:58:54 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 that is what i was trying to say 00:59:09 ah, right. 00:59:47 ah ok so in your diagram .. the characters are 0 and 1 01:00:36 yes. 01:00:40 the alphabet is "01" 01:01:25 and finally what does accepting state mean? 01:01:50 if an input string ends at an accepting state that means the string is part of the language of the automata. 01:02:02 > (`replicateM` "01") =<< [0..] 01:02:03 ["","0","1","00","01","10","11","000","001","010","011","100","101","110","... 01:02:24 that's all of the possible input strings in that alphabet 01:02:31 can you figure out which ones are part of the language? 01:02:31 ohhh .. so these FSA's have input strings 01:02:38 right, that's the purpose of the alphabet. 01:02:41 and the arrows. 01:02:47 and the fsas 01:02:59 well, sure. 01:03:50 itidus20: so which input strings are accepted as a member of the language of that automata? 01:03:54 can you think of a pattern for them? 01:04:45 well i should point out i dont understand the notation of "(`replicateM` "01") =<< [0..]" but i do recognize the series 01:04:55 that's Haskell, don't worry about that. 01:05:11 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 it is clearly natural binary numbers 01:05:14 *sequence 01:05:20 yes. 01:05:30 uh except the empty set which is .. well.. 01:05:40 ^empty string 01:05:58 okay so which strings end at an accepting state in that diagram? 01:06:06 "" is a number in nirvana 01:06:47 ....I've exhausted your attention span haven't I? 01:06:58 no no.. ill keep going 01:07:14 ok lets see... 01:07:23 "1" ends in an accepting state 01:07:30 yes, that's one. 01:07:35 but can you say something about ALL Of the strings? 01:07:56 -!- cheater__ has joined. 01:07:57 "0" doesn't because it needs a second character presumably to get back to the accepting state 01:08:09 a second zero, yes. 01:09:11 do you see the pattern? 01:10:21 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:33 no 01:10:39 the set of strings I listed is ALL of the possible inputs 01:10:42 not the accepted ones. 01:10:45 ahh 01:11:01 ....can you just like, look at the diagram and see? 01:11:05 before I beat it into you? 01:11:14 * CakeProphet is a sadistic teacher. 01:11:26 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:41 zzo38: add them in what? 01:11:44 i would have to go through it following every arrow to understand 01:11:51 no just think about it 01:12:02 hmm 01:12:07 there are infinite possibilities, so you'd end up doing that forever. 01:12:33 okay I will give you a hint 01:12:34 well i would do a few.. it would take a while.. 01:12:43 obviously the 1s do nothing to the state. 01:12:49 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 zzo38: semicolons are added based on indentation. 01:12:51 the 1s are irrelevant to whether or not the input is accepted. 01:13:04 zzo38: yes. 01:13:12 er... well, maybe? 01:13:24 I don't know, actually. I never use the {} syntax. 01:13:39 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 It seems somewhat strange that record syntax also uses { } but separates the items with commas instead of semicolons. Why is that? 01:14:46 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 to destroy your arbitrary rules of consistency and laugh at them. 01:14:58 itidus20: okay that's fine I will beat some sense into you later. 01:15:10 like ... circa every 2 hours 01:15:17 its a pain 01:15:32 zzo38: well record syntax doesn't have layout. it might be confusing if implicit semicolons got intertwined in them 01:15:37 not as painful as me berating you over how obvious the answer to my question is 01:15:39 it can drive a person to distrction to hear it come up again 01:15:49 brb anyway 01:16:21 oerjan: Then why do they use braces? It doesn't make sense to me. 01:16:41 well they had to use some delimiter. maybe it was a bad choice. 01:16:51 I don't really see it as an issue. 01:17:00 it's completely unambiguous. 01:18:05 I don't know. Maybe it is OK how it is. 01:18:14 what else would they use? C [y] is applying a list 01:18:17 C (y) is applying y 01:18:29 <> ? 01:18:32 C is stupid why would I even consider that. 01:18:35 LOL 01:18:38 it's pretty much agreed that haskell's record system is badly designed, anyhow, although for different reasons :P 01:19:30 <> are operator characters, not delimiters, it would mess up other uses or make the lexical syntax even more complicated 01:19:46 oerjan: Yes I realize < > are operator characters rather than delimiters and can see why that is bad 01:19:47 unless Haskell decided to be Perl. 01:20:00 And I can also see why ( ) and [ ] are bad for record syntax 01:20:13 So perhaps there is no other choice than { } 01:20:40 it also matches the record declaration syntax. 01:20:40 / / delimited 01:20:48 same issue as <> 01:20:49 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:51 oh yeah 01:20:57 hmm is any character not used for an operator? 01:21:07 I think they all have the potential to be 01:21:25 only the bracketing ones. and ~ I think. 01:21:27 zzo38: yes, then it could have layout too based on that keyword, although it would be more verbose 01:21:31 no ~ can be used. 01:21:34 The specials include ` { } ( ) [ ] ' " and " and ' have other meanings. ' is like a letter which is neither uppercase nor lowercase 01:21:52 And ' can also be used for character constants, and for names in Template Haskell. And " is used for strings. 01:22:03 > let a ~- b = a-b in 2 ~- 3 01:22:04 -1 01:22:18 : is for constructor operators. 01:22:35 Yes, : is an uppercase operator symbol, and the others are lowercase. 01:22:54 'uppercase' ? 01:23:12 At least, reading the specifications, it is what it looks like to me; that : is considered uppercase. 01:23:12 yes if you want to yell in symbols you do it like this::::::::::::::::::: 01:24:04 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 does any other language make distinctions like this? 01:24:30 Gregor: So I just ran into a situation where I'd like plash-esque total sandboxing.............. 01:24:32 not really, except maybe _ 01:24:36 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:43 yes, : is uppercase 01:24:46 Isn't there something in Ruby where capitalized words are treated different somehow? 01:24:47 elliott: So use UMLBox :P 01:24:48 sort of :) 01:24:55 Gregor: I'm asking for a link, doofus :P 01:25:00 zzo38: yes 01:25:05 elliott: http://bitbucket.org/GregorR/umlbox 01:25:31 titlecase words are considered classes I believe. 01:25:36 bitbucket.imaspecialsnowflake.org 01:25:38 PatashuWarg: ocaml also distinguishes things based on case afair 01:25:43 TIME TO REMEMBER HOW TO USE HG 01:25:50 Gregor: So hey, what happened to you hosting everything on codu.org :P 01:25:54 $ is for globals, @ is instance variables, and I think ALL_CAPS is for global constants? 01:26:13 CakeProphet: uppercase = class, module or constant. 01:26:16 technically, just constant 01:26:20 it's just that classes and modules are constant 01:26:22 ah okay. 01:26:22 (I may be wrong there) 01:26:33 Gregor: Hmm, are standard Debian kernels built with UML? 01:26:36 but it doesn't have upper/lower case for operators, although unlike haskell it decides precedence by the first symbol 01:26:40 well you can redefine classes via partial classes. 01:26:44 aren't classes/modules in ruby not constant at all 01:26:45 iirc 01:26:52 so technically not constant I guess 01:26:55 you can do monkey patching on them and stuff 01:27:09 monqy: constant doesn't mean cnostant 01:27:13 hlep 01:27:14 elliott: Re codu: Occasionally I put things on bitbucket when they're a bit less me-centric. 01:27:20 you can mutate the objects just not reassign them 01:27:25 Gregor: What a metric :-P 01:27:33 SELinux, user limits and maybe cgroups, IIRC. 01:27:35 elliott: that is a stupid definition of constant 01:27:38 HAHAHAHA I SHALL POWER THROUGH MY COMPETITOR WITH SIMPLICITY 01:27:41 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 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:47 Gregor: Oh >_> 01:27:54 Gregor: Maybe I WILL just use Plash then :P 01:28:13 elliott: ... err ... not HOST kernel. 01:28:19 elliott: GUEST kernel. 01:28:31 elliott: The host box requires nothing special, you don't even need root to get UMLBox running. 01:28:32 Gregor: Yeah, but it still involves building a kernel, which is strictly more work than installing Plash :P 01:28:43 elliott: Except installing plash involves traveling back in time :P 01:28:52 Hmm, it doesn't work any more? 01:29:24 CakeProphet: ok it appears to only work for numbers which have an even number of zero's 01:29:27 Can you use ptrace to make up all these special kind of permission and override? 01:29:36 itidus20: -gasp- 01:29:38 elliott: No Debian later than lenny :( 01:29:38 good job 01:29:43 now I don't have to beat you. 01:29:52 elliott: When squeeze started getting near release, they made a change that broke plash. 01:29:54 i might not have understood that without your hint though 01:29:54 itidus20: are you familiar with regular expressions? 01:30:08 elliott: That's ... pretty much the whole reason I wanted to make UMLBox :P 01:30:26 Gregor: What happened to cunionfs being enough anyway, and also how does the proxy work now 01:30:28 yup.. had to use em to block bots on another chat system 01:30:32 `translatefrom sv poop 01:30:34 env: translatefrom: No such file or directory 01:30:41 `translatefromto sv en poop 01:30:42 env: translatefromto: No such file or directory 01:30:47 itidus20: okay well you can describe the language accepted by an automata as a regular expression. 01:30:48 Gregor: Your soul will be devoured through death and evil 01:30:52 But thanks for making stderr work finally 01:30:52 elliott: At present, the proxy simply doesn't work. 01:30:54 `ls bin 01:30:55 ​` \ 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 Gregor: OK where the hell are my commands. 01:31:04 itidus20: do you think you could find the regex for our example? 01:31:11 elliott: Uhh ... that's a good question ... 01:31:25 Gregor: THEY MIGHT NOT WORK BUT THEY STILL MATTER 01:31:32 Those aren't actually my commands actually 01:31:34 `wl this is though 01:31:35 `help 01:31:35 env: wl: No such file or directory 01:31:36 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 01:32:00 itidus20: actually there can be more than one regular expression. they're not unique. 01:32:03 `quote software patents 01:32:05 env: quote: No such file or directory 01:32:07 `ls bin/translate 01:32:08 bin/translate 01:32:11 oerjan: PROBABLY FUCK YOU 01:32:13 `run quote software patents 01:32:14 sh: quote: command not found 01:32:16 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 `run bin/quote software patents 01:32:17 sh: bin/quote: Permission denied 01:32:21 Gregor: I diagnose a path error, also a permissions error 01:32:48 itidus20: okay well the answer is (1*01*0)*1* 01:33:27 * is the Kleene star. it means "zero or more repetitions of the previous character" 01:33:49 ahh 01:34:15 in fact, this is how regular expressions began, to describe the languages of automata. 01:34:34 `translate IS GREGOR A DAMN??? 01:34:35 env: translate: No such file or directory 01:34:43 ANSWER, YES 01:35:24 is someone trying to teach itidus20 about finite automata, regular languages, regular expressions, etc. 01:35:28 is that what's happening 01:35:38 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 elliott: Yes yes, I'm fixing the path issue. 01:35:48 monqy: yeah 01:35:48 and then another 1* at the end, because it needs to be there. 01:36:08 `yes 01:36:10 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:23 this is good 01:36:23 `which translate 01:36:24 ​/hackenv/bin/translate 01:36:31 `translate Hola 01:36:34 ​/hackenv/bin/translatefromto: line 13: /hackenv/bin/json: Permission denied 01:36:54 `which yes 01:36:56 ​/usr/bin/yes 01:37:08 itidus20: I put 1* between each zero because 1's can be anywhere in the string and are completely irrelevant. 01:37:08 `run cat /usr/bin/yes | paste 01:37:10 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 Oops you mixed up all of the permissions 01:38:02 Hold on, people, I'm still fixing shit :P 01:38:23 ok so to represent any binary number you could say (0*1*)* 01:38:41 -!- pikhq_ has joined. 01:38:42 Regex? 01:38:46 Gregor: http://codu.org/projects/hackbot/fshg/index.cgi/rev/d0b6c6046174 Nice unknown command 01:39:11 itidus20: is the empty string a binary number 01:39:16 itidus20, Why not [01]* 01:39:18 or i would prefer it as (0*1*)+ 01:39:42 itidus20: it can still be the empty string 01:39:47 hmmm 01:39:57 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 Gregor: Think you could link to UMLBox? 01:40:01 ok so it depends on the [ ] 01:40:13 itidus20: ignore Lymee 01:40:26 so [01]+ 01:40:33 pikhq_: http://bitbucket.org/GregorR/umlbox 01:40:53 `quotes falso 01:40:55 480) < falso___> its also open sores 01:40:55 itidus20: in Perl, yes. But formal regular expressions don't really use the [] notation as far as I'm aware. 01:40:59 COPRO YOU KEEP ADIG THE WRONG QUTOOES 01:41:03 `delquote 480 01:41:05 ​*poof* 01:41:11 `quotes open sores 01:41:12 No output. 01:41:28 `quote software patents 01:41:30 so how else might you say [01]+ 01:41:31 554) 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:38 (0|1)(0|1)* 01:41:38 `delquote 555 01:41:40 ​*poof* 01:41:40 `quotes hug 01:41:41 itidus20: also I don't think + is a formal operator either. but a+ is equivalent to aa* 01:41:42 314) 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] I need to learn 01:41:49 `delquote 554 01:41:51 ​*poof* 01:41:56 itidus20: < monqy> (0|1)(0|1)* 01:41:58 ahhhh 01:42:00 -!- pikhq has quit (Ping timeout: 264 seconds). 01:42:04 :[ 01:42:07 `addquote software patents strike again that's got to be at least three times, now are they out yet? 01:42:09 583) software patents strike again that's got to be at least three times, now are they out yet? 01:42:29 where are the doubles paces 01:42:29 thanks for thre repost monqy 01:42:30 i do not 01:42:31 see them 01:42:34 Gregor: Neat. 01:42:54 itidus20: i was afraid it got lost in the quote foolery 01:43:04 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:08 monqy: ooops 01:43:11 `delquote 583 01:43:13 ​*poof* 01:43:23 ten, nine, eight, seven 01:43:25 six, five 01:43:25 `addquote software patents strike again that's got to be at least three times, now are they out yet? 01:43:26 583) software patents strike again that's got to be at least three times, now are they out yet? 01:43:31 Gregor: do we still have the stupid hg merge bug 01:43:36 itidus20: I believe all of the basic regex operators can be defined in terms of those three. 01:43:45 well, regular expression 01:43:51 regex implies something more complex. 01:44:00 elliott: It's not a bug, it's just a weird behavior :P 01:44:09 cool 01:44:17 Gregor: It's weird, bad behaviour, aka a bug 01:44:33 elliott: By that logic, YOU'RE a bug OHHHH BURN 01:44:52 That's like megaburn coming from somebody named Gregor btw 01:45:01 megaburn 01:45:07 itidus20: [] is just sugar for |. a? is (a|) a+ is aa* 01:45:32 how about lookarounds? ;) 01:45:38 that's regex. :P 01:45:53 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 Gregor: Yes I am an insect please do not mock me 01:46:00 monqy: epsillonne 01:46:01 hmm 01:46:04 is the bet bsete 01:46:12 I've never seen lambda for that. 01:46:14 always epsilon 01:46:16 I prefer epsiolon, as well 01:46:17 or nothingness 01:46:22 but I have seen lambda 01:46:24 it was weird 01:46:35 at least I think I've seen lambda 01:46:35 `quote Qu'ran 01:46:37 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:40 `delquote 462 01:46:42 ​*poof* 01:46:43 nothingness is a pretty good representation of the empty string 01:46:47 ok so (a|) means 0 or 1 a's 01:46:51 i will eliminate all unholy formatting, also unfunny quotes 01:47:01 mathematicians should just leave nothing in place of the empty string, and hopefully everyone else will catch on. 01:47:06 itidus20: yes, this is also what a? means 01:47:33 < elliott> oerjan: PROBABLY FUCK YOU <-- wat? 01:47:45 oerjan: oops i meant coppro 01:47:45 also 01:47:46 FIX 01:47:46 YOUR 01:47:47 QUOTING 01:47:49 STYLE 01:47:50 HERETIC 01:47:52 SHITBAG 01:48:05 SPACES IN FRONT OF NAMES IS HERESY DEATH 01:48:08 GOD PUNISHES ALL WHO 01:48:35 18:50:05 < elliott> SPACES IN FRONT OF NAMES IS HERESY DEATH 01:48:35 hlep 01:49:05 `quote bullshit 01:49:07 No output. 01:49:08 monqy: FIX 01:49:08 YOUR 01:49:09 SHIT 01:49:12 `quote < 01:49:13 1) I used computational linguistics to kill her. \ 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 3) Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... More practice is in order. \ 4) that's where I 01:49:18 `quote "< " 01:49:20 No output. 01:49:21 :[ 01:49:22 `quote <\ 01:49:24 egrep: Trailing backslash 01:49:29 `run quote "< " 01:49:31 110) oklopol geez what are you doing here ...i don't know :< i actually ate until now, although i guess i also did other things... \ 187) < 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 Gregor: hey, hackego corrupts input 01:49:36 Lymee: It's regex you idiot 01:49:44 `quote <[:space:] 01:49:45 1) I used computational linguistics to kill her. \ 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 4) that's where I got it rocket launch facility gift shop \ 8) TODO: sex life \ 16) First, invent the direct mind-computer interface. Second, 01:49:50 elliott: HackEgo ... doesn't take input ... 01:49:51 `quote <\s 01:49:52 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 8) TODO: sex life \ 66) What else is there to vim besides editing commands? \ 90) I'd imagine that it already has, and no one noticed \ 92) Where's the link to the log? THERE'S NO LOG. YOUR REQUEST IS 01:49:59 Gregor: It corrupts the input line by stripping trailing spaces 01:50:05 And also, wtf?? 01:50:06 Oh 01:50:07 `quote \<\s 01:50:09 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 3) Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... More practice is in order. \ 4) that's where I got it rocket launch facility gift shop \ 5) 01:50:12 Help 01:50:15 Why doesn't it work ;_; 01:50:20 `quote <[:space:] 01:50:22 1) I used computational linguistics to kill her. \ 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 4) that's where I got it rocket launch facility gift shop \ 8) TODO: sex life \ 16) First, invent the direct mind-computer interface. Second, 01:50:25 `quote <[:space:]+ 01:50:27 1) I used computational linguistics to kill her. \ 2) EgoBot just opened a chat session with me to say "bork bork bork" \ 4) that's where I got it rocket launch facility gift shop \ 8) TODO: sex life \ 16) First, invent the direct mind-computer interface. Second, 01:50:29 `run quote "< " 01:50:31 110) oklopol geez what are you doing here ...i don't know :< i actually ate until now, although i guess i also did other things... \ 187) < 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 :3 01:50:34 Lymee: oh that'll work yes 01:50:39 `run pastequotes '< ' 01:50:41 I did it a few lines ago... 01:50:42 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:50:45 Gregor: lol 01:50:49 Lymee: without `run 01:51:01 `quote <\ 01:51:01 egrep: Trailing backslash 01:51:01 `run quote "< " 01:51:02 elliott: I keep forgetting to fix that ... 01:51:05 nyan 01:51:14 -!- CakeProphet has quit (Ping timeout: 246 seconds). 01:51:31 `run echo pastypaste | paste 01:51:33 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6258 01:51:34 12:42:28: 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 YES IT IS YOU PEOPLE IN THE LOG ARE STUPID 01:51:42 Lymee: fair enough, stop saying nyan 01:51:49 `run pastequotes '< ' 01:51:51 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14435 01:52:20 elliott, nyan nyan 01:52:22 how to fix that j-invariant quote... 01:52:31 the " [...] " thing 01:53:02 305) !bfjoust sm3 < Score for Deewiant_sm3: 43.4 01:53:03 ..... 01:53:04 wat 01:53:09 bfjoust 01:53:14 bfjoust 01:53:25 !bfjoust suicide <<< 01:53:33 ​Score for Lymee_suicide: 0.0 01:53:36 !bfjoust suicide < 01:53:38 ​Score for Lymee_suicide: 0.0 01:53:43 Was there a bug? 01:54:00 that's not a bug 01:54:11 I forget why it did so well 01:54:16 Maybe the random factors still existed then 01:54:26 I'm not sure, really 01:57:02 -!- Nisstyre has joined. 01:57:10 castSTUArray :: STUArray s ix a -> ST s (STUArray s ix b) 01:57:12 oerjan: yikes 01:57:44 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 at least it only works on certain types... apparenrtly; I don't see that enforced anywhere 01:58:10 :t map unsafeCoerce 01:58:12 forall a b. [a] -> [b] 01:58:30 elliott, why isn't "unsafe" in the function name? 01:58:44 -!- Sgeo has joined. 01:58:49 Lymee: well that's what _I'm_ wondering 01:59:07 you can use it to convert floats and doubles to words and back 01:59:15 -!- Sgeo has quit (Client Quit). 01:59:21 and I think this is in an unsafeCoerce manner 01:59:27 but it's only for certain element types??? 01:59:32 so maybe the interface is actually ok 01:59:39 (and the implementation ok for ieee cpus) 02:00:32 @t map (flip (,) (unsafeCoerce y) . unsafeCoerce) 02:00:32 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 :t map (flip (,) (unsafeCoerce y) . unsafeCoerce) 02:00:39 forall a a1 a2. [a2] -> [(a, a1)] 02:00:41 02:02:05 -!- CakeProphet has quit (Ping timeout: 246 seconds). 02:02:15 :t y 02:02:17 Expr 02:02:41 @pl \x -> (unsafeCoerce x, unsafeCoerce x) 02:02:41 liftM2 (,) unsafeCoerce unsafeCoerce 02:02:50 :t map (liftM2 (,) unsafeCoerce unsafeCoerce) 02:02:51 forall a1 a2 a. [a] -> [(a1, a2)] 02:02:57 Wonder what the first one would have done 02:05:07 :t \あ -> あ 02:05:09 parse error (possibly incorrect indentation) 02:05:51 :t \β -> β 02:05:52 parse error (possibly incorrect indentation) 02:05:54 ;-; 02:06:10 huh 02:06:21 :t \ø -> ø 02:06:22 parse error (possibly incorrect indentation) 02:06:28 :t \a -> a 02:06:29 forall t. t -> t 02:06:33 :t \ (ø) -> (ø) 02:06:34 parse error (possibly incorrect indentation) 02:06:35 why u no like unicode 02:06:50 lambdabot.......... 02:06:55 !haskell (\ø -> ø) "test" 02:07:13 what not EgoBot either 02:07:37 !haskell putStrLn $ (\あ -> あ) "test" 02:08:00 !haskell "ø" 02:08:03 ​"\195\184" 02:08:04 !haskell putStrLn $ (\a -> a) "test" 02:08:06 test 02:08:12 > "ø" 02:08:13 "\248" 02:08:14 -!- CakeProphet has joined. 02:08:26 -!- CakeProphet has quit (Changing host). 02:08:26 -!- CakeProphet has joined. 02:09:11 something isn't set up quite right 02:09:26 why u no like unicode 02:09:26 > text "ø" 02:09:28 mueval-core: : hPutChar: invalid argument (Invalid or incomplete mu... 02:09:28 i will end your life 02:09:34 sheesh 02:09:56 > show $ text "ø" 02:09:57 "\248" 02:10:24 Y U NO LIKE MEMES 02:10:31 oerjan: [FATAL STAB] 02:10:31 DIE 02:10:31 DIE 02:10:32 DIE 02:10:32 DEID 02:10:33 EDIEFSJOGIFOJG 02:10:35 \'\;L[;]' 02:10:35 \ 02:10:44 i just picked my laptop up and slammed it down really hard because of you 02:11:07 if that's literally true i suggest you seek help. 02:11:29 > \バカなlambdabot -> undefined 02:11:30 Overlapping instances for GHC.Show.Show (t -> a) 02:11:31 arising from a use of `... 02:11:32 wait, now i sound like my father. 02:11:38 scratch that. 02:11:40 elliott I have a video for you 02:11:51 > \バカな -> undefined 02:11:53 Overlapping instances for GHC.Show.Show (t -> a) 02:11:53 arising from a use of `... 02:12:00 > \バカな -> バカな 02:12:00 http://www.youtube.com/watch?v=DIn4L7hUmUI 02:12:01 Overlapping instances for GHC.Show.Show (t -> t) 02:12:02 arising from a use of `... 02:12:04 he? 02:12:14 > \ああ -> ああ 02:12:15 Overlapping instances for GHC.Show.Show (t -> t) 02:12:16 arising from a use of `... 02:12:18 > \あ -> あ 02:12:19 Overlapping instances for GHC.Show.Show (t -> t) 02:12:20 arising from a use of `... 02:12:22 ...wat 02:12:31 :t \あ -> あ 02:12:32 Lymee: it cannot print a function 02:12:33 parse error (possibly incorrect indentation) 02:12:33 you havent applied ti to an argument 02:12:40 Um. 02:12:45 Why does > parse it correctly but no :t 02:12:46 not* 02:12:55 because different setup 02:13:00 it tries, then fails horribly because someone imported two different ways of doing it 02:13:09 oerjan: (showing a function not :t) 02:13:11 (vs >) 02:13:13 (ujust) 02:13:16 (carlyfiing) 02:13:26 can anyone explain this line from df: /dev/sdb1 5905972 5837136 0 100% /usr 02:13:29 i'm pretty okay at math, and when i add 5837136 and zero, i don't get 5905972 02:13:50 quintopia: it's where the gnomes hide 02:13:58 quintopia: reserved blocks for root 02:13:59 probably 02:14:35 quintopia: you may want to look at `man tune2fs`. 02:14:39 or buy a new disk 02:14:41 > (\ø -> ø+ø) 2 02:14:42 4 02:14:49 oerjan: ø_ø 02:15:15 > (\ø_ø -> ø_ø^ø_ø) 4 02:15:16 256 02:16:00 @list type 02:16:00 type provides: type kind 02:16:20 @list run 02:16:20 eval provides: run let undefine 02:16:24 different plugins 02:16:31 @undefine 02:16:44 oh no, you destroyed everything! 02:16:55 @let map f a -> undefined 02:16:56 TemplateHaskell is not enabled 02:17:05 s/->/=/ 02:17:09 Wouldn't have worked anyways 02:17:22 @let map f a = undefined 02:17:23 Defined. 02:17:30 > map 1 2 02:17:31 Ambiguous occurrence `map' 02:17:31 It could refer to either `L.map', defined at > L.map 1 2 02:17:36 *Exception: Prelude.undefined 02:17:51 oerjan: rude to the people in hash-haskell 02:17:51 :P 02:17:53 omg wait 02:17:55 I have the perfect prank 02:18:07 "hash"-haskell? 02:18:12 elliott: you cannot escape the ambiguous message 02:18:16 shachaf: Shut up my number keys are broken. 02:18:18 oerjan: Sure you can. 02:18:24 @define undefined = error "ur a poopy face" 02:18:24 oerjan: hmmmmmmmmmmmmmm 02:18:30 shachaf: How? 02:18:36 Well, OK, you can't. 02:18:38 shachaf: elliott has a long-standing keyboard problem 02:18:56 > mаp 1 2 02:18:58 Could we define a malicious typeclass? 02:18:58 *Exception: Evil 02:19:08 shachaf, how was that done? =p 02:19:15 You can't @let type classes or data types in lambdabot, sadly. :-( 02:19:18 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:45 what do you say 02:19:51 octothorpe-haskell 02:20:02 @let Data.List.map f a = text "I'm tired of evaluating Haskell code for you." 02:20:02 Parse error in pattern: Data.List.map 02:20:04 :( 02:20:05 cries 02:20:08 (softly) 02:20:12 Er, actually, now that I think of it, I say "sulamit haskell". 02:20:21 soflty slams laptop on ground, stomps 02:20:22 shachaf: wat 02:20:39 I guess "hash" kind of makes sense. Though it has too many meanings. 02:20:51 @let a (+) b = a 02:20:52 :2:10: 02:20:53 Ambiguous occurrence `a' 02:20:53 It could refer to either `L... 02:21:02 @let a + b = a 02:21:04 Defined. 02:21:06 shachaf will take his secrets to the grave. 02:21:08 > 1 + 1 02:21:10 Ambiguous occurrence `+' 02:21:10 It could refer to either `L.+', defined at shachaf: I say octothorpe when I'm not being informal 02:21:18 elliott: Which secrets? 02:21:27 > map (\x -> x) [1,2,3,4] 02:21:29 [1,2,3,4] 02:21:31 > map 1 [1,2,3,4] 02:21:32 [1,1,1,1] 02:21:36 > map 1 3 02:21:38 No instance for (GHC.Num.Num [a]) 02:21:38 arising from the literal `3' at shachaf: How to do a ?let like that 02:21:39 > mаp (\x -> x) -> [1,2,3,4] 02:21:40 : parse error on input `->' 02:21:47 elliott: Like what? 02:21:51 > mаp (\x -> x) [1,2,3,4] 02:21:53 *Exception: Evil 02:21:54 shachaf: Bypassing the ambiguity 02:22:00 @let map a b = error $ "Evil" 02:22:02 Defined. 02:22:03 > map 1 3 02:22:04 Ambiguous occurrence `map' 02:22:04 It could refer to either `L.map', defined at Well, OK, you can't. 02:22:05 oh 02:22:17 elliott: Like, whoa, man, you're, like, the same elliott as the one in #haskell. 02:22:20 > mаp 1 2 02:22:20 *Exception: Evil 02:22:22 How did you do that? 02:22:23 =p 02:22:24 Same number of 't's. 02:22:26 shachaf: Whoaaaaaaaaaaa. 02:22:31 shachaf: I'm not that elliottt guy though. 02:22:32 Lymee: By typing it in. 02:22:34 Also, I'm not conal. 02:22:42 How did you get it to do the *Exception: Evil? 02:22:43 =p 02:22:45 Maybe you're conal elliottt? 02:22:45 I'm also not elliottcable, at least until he actually gives me money for this nick like he said he would. 02:23:02 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 @define module Data.List; map a b = error $ "Evil" 02:23:09 elliott: Oh, he came to #haskell once and saw elliottt and was very happy. 02:23:12 @let module Data.List; map a b = error $ "Evil" 02:23:13 Parse error: ; 02:23:14 pikhq_: Seems overkill 02:23:17 shachaf: Who, elliottcable? 02:23:19 @let module Data.List 02:23:20 Parse error: EOF 02:23:23 elliott: I think so. 02:23:25 I think he has "a thing" about people using His Name. 02:23:49 @let module Data.List where map a b = error $ "Evil" 02:23:49 Invalid declaration 02:23:55 > mаp (\x -> x) [1,2,3,4] 02:23:56 Not in scope: `m 02:24:07 > (еlliott, elliott) 02:24:08 > mаp (\x -> x) [1,2,3,4] 02:24:08 elliott: I've previously been spawning chroots. 02:24:09 Not in scope: `m 02:24:09 (True,False) 02:24:12 @let module Data.List (map) where map a b = error $ "Evil" 02:24:13 Invalid declaration 02:24:15 :P 02:24:33 @let module Data.List (map) where; map a b = error $ "Evil" 02:24:34 Invalid declaration 02:24:47 shachaf: i think i've got a hunch there :P 02:25:00 oerjan, whatdidyoudo 02:25:01 oerjan spoils everything. 02:25:13 pikhq_: You're writing a package manager? 02:25:17 It sucks mine is SO MUCH BETTER. 02:25:19 Lymee: i just cut and pasted shachaf's line. i think it has invisible chars 02:25:24 elliott has a package manager too? 02:25:33 monqy: No but I do now. 02:25:35 oerjan: NOpe. 02:25:35 elliott: I've been tinkering off and on for about a month now. 02:25:45 or possibly chars that look normal but aren't 02:25:53 aha, cyrillic a, perfect 02:25:56 > "m" 02:25:56 "m" 02:26:00 ?undefine 02:26:07 @let a / b = a * b 02:26:08 Defined. 02:26:09 ?let mаp f x = text "I'm tired of evaluating Haskell code for you." 02:26:10 > a / b 02:26:10 Defined. 02:26:11 Ambiguous occurrence `/' 02:26:11 It could refer to either `L./', defined at > mаp succ [0,9] 02:26:17 Ambiguous type variable `a' in the constraint: 02:26:17 `GHC.Enum.Enum a' 02:26:17 ar... 02:26:22 > mаp id [0..] 02:26:24 I'm tired of evaluating Haskell code for you. 02:26:29 I, personally, demand that the packaging be exceptionally declarative. 02:26:33 @undefine map 02:26:39 pikhq_: do you hvae issues with Nix? 02:26:44 Lymee: OK wait stop 02:26:45 I need to prank 02:26:46 hash haskell 02:26:47 with this 02:26:49 somehow 02:26:49 Insufficiently declarative. 02:26:56 pikhq_: Umm, Nix is purely functional 02:27:00 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 shachaf: Not that there's much other choice 02:27:15 >map id [0..] 02:27:18 > map id [0..] 02:27:19 [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 elliott: It also has boilerplate up the wazoo! I disapprove of boilerplate. 02:27:23 > mаp id [0..] 02:27:25 Not in scope: `m 02:27:33 I'm not sure what the invisible character involved is, but... 02:27:35 >:3 02:27:41 :t (а) 02:27:42 parse error (possibly incorrect indentation) 02:27:42 There is no invisible character! 02:27:43 oh right 02:27:51 :'( 02:28:05 > (а) 02:28:06 Not in scope: ` 02:28:09 nooo 02:28:10 pikhq_: Howso 02:28:14 GNU make: name=make;version=3.82;gnu_src 02:28:14 pikhq_: It defaults to a configure-make-make install build 02:28:19 There. Complete package! 02:28:24 Long UTF-8 sequences? 02:28:26 OK, so trivial syntactical complaints 02:28:28 ... Sans dependencies. :( 02:28:46 Man, your package might be whole BYTES smaller than Nix's!!!!! 02:29:02 pikhq_: You could automate dependency-handling. Maybe. 02:29:28 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 They also tend to reveal their minimum required versions if they're autoconf 02:29:54 when are we going to get packages that download their own dependencies? 02:30:57 PatashuWarg: @ 02:31:17 > "а" 02:31:18 "\1072" 02:31:42 > "> mаp id [0..]" 02:31:43 "> m\1072p id [0..]" 02:32:29 !perl print "test" =~ /(a|)/ 02:32:41 !perl print "" =~ /(a|)/ 02:32:46 Is annotatable a word? Or is it annotate. 02:32:58 !perl print "a" =~ /(a|)/ 02:32:58 a 02:33:08 elliott: it's a word. 02:33:22 you put -able after pretty much any verb. 02:33:39 Erm 02:33:41 Or is it annotable 02:33:43 Is what i meant to say 02:33:43 @let mаp x y = Data.List.map (/x -> if x != 0 than x else undefined) y 02:33:44 Parse error: -> 02:33:49 http://www.thefreedictionary.com/annotatable if you need more reassurance 02:33:49 oerjan: ANNOTATABLE OR ANNOTABLE 02:34:00 CakeProphet: thefreedictionary.com is not what I would call "assuarnce" 02:34:04 Kay, fine, Linux: http://sprunge.us/BfDV 02:34:07 well you're not annoting 02:34:07 Considering it's also a redirection, and the word doesn't appear anywhere else on the page 02:34:12 you're annotating. :P 02:34:20 pikhq_: Hey you should be a lot happier that I told you how to automate dependencies. 02:34:25 @let mаp f l = Data.List.map (/x -> if (x != 0) than (f x) else undefined) l 02:34:26 Parse error: -> 02:34:31 @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x) else undefined) l 02:34:32 Parse error: else 02:34:33 pikhq_: Also Linux has a ton of build-time dependencies you omitted. 02:34:48 Yes, yes, I know. 02:34:52 @let mаp f l = Data.List.map (\x -> if (x != 0) than (f x); else undefined) l 02:34:53 Parse error: ; 02:34:54 elliott: right because it's a word derived from annotate via -able 02:34:56 :( 02:35:05 elliott: it's just like... a rule.. of English, you can always use. 02:35:05 you cannot a me, i'm not able 02:35:09 The full list of dependencies is, BTW, busybox, binutils, gcc, make. 02:35:31 pikhq_: Linux depends on a set of basic commands, not busybox 02:35:43 And I suspect your make is actually gmake 02:35:46 Lymee: speling 02:35:56 @let mаp f l = Data.List.map (\x -> if (x != 0) then (f x) else undefined) l 02:35:57 :2:0: 02:35:57 Multiple declarations of `L.m: hPutChar: invalid a... 02:36:05 @undefine map 02:36:08 Well, yes, what other make would I use? The only other one for Linux systems is, frankly, ridiculous. 02:36:15 @undefine mаp 02:36:41 Heirloom make depends on a friggin' C++ compiler. 02:36:49 Lymee: @undefine takes no arguments 02:37:00 Oh. 02:37:01 @undefine 02:37:07 And why the hell would I use BSD make? 02:37:07 pikhq_: pmake, bmake, makepp (mostly backwards-compatible with GNU make, so almost certainly supports the portable subset of make), probably OMake 02:37:17 pikhq_: It doesn't matter "why", what matters is that your package name is inaccurate 02:37:28 Linux does depend on a GNU make though, so the dependency is reasonable 02:37:32 But the busybox one definitely isn't 02:37:33 -!- NihilistDandy has quit (Remote host closed the connection). 02:37:46 @let mаp f l = Data.List.map (\x -> if ((len $ take 100 l)==100) then (f x) else undefined) l 02:37:47 :1:10: Not in scope: `Data.List.map' 02:37:47 02:37:47 :1:36: Not in scope: `... 02:37:50 :[ 02:38:01 I disbelieve in GNU coreutils. 02:38:08 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 elliott: your dependency on reasonable dependencies is unreasonable. 02:38:26 pikhq_: so busybox is the only option then, OK 02:38:37 At present, at least. 02:38:39 pikhq_: your personal choices in software do not change the fact that those are not Linux's dependencies 02:38:42 oerjan: I bet I could do it in Perl. :D 02:38:50 > Data.List.map 02:38:51 Not in scope: `Data.List.map' 02:38:57 > Prelude.map 02:38:58 Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b]) 02:38:58 arising... 02:39:04 oerjan: probably not very efficiently though. 02:39:07 Lymee: ^ 02:39:12 -!- augur has quit (Read error: Connection reset by peer). 02:39:18 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 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 @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 :1:10: Not in scope: data constructor `Preludemap' 02:39:48 02:39:48 :1:79: N... 02:39:50 repeat until the recursion terminates. 02:39:53 @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 :1:80: Not in scope: `len' 02:39:54 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 @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:01 Defined. 02:40:07 > map id [1..] 02:40:08 [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:12 > mаp id [1..] 02:40:14 [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:24 > mаp id [1..] 02:40:25 So apparently slirp is a security nightmare :P 02:40:27 [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:27 :[ 02:40:36 Gregor: slirp? Isn't that -- yes it is. 02:40:39 Lymee: what are you doing... 02:40:46 I've used that 02:40:50 I forget what for 02:40:50 It provides a "configuration interface" via telnet which, amongst other things, allows you to run arbitrary commands >_> 02:40:51 @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 :2:103: Not in scope: `len' 02:40:56 @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:56 Gregor: :D 02:40:57 :1:0: 02:40:57 Warning: Pattern match(es) are overlapped 02:40:57 In... 02:41:07 Gregor: Dude, seriously, can't you just write a UML driver? 02:41:08 elliott: Would you be happier if I just tried to use Nix? 02:41:09 >@undefine 02:41:11 @undefine 02:41:12 Surely those have access to the host system 02:41:13 @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:15 Defined. 02:41:19 > map id [1..] 02:41:20 [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:23 > mаp id [1..] 02:41:25 [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:28 :< 02:41:40 @undefine 02:41:41 @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:42 Defined. 02:41:44 > map id [1..] 02:41:46 [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:46 you can't use where for that. 02:41:46 > mаp id [1..] 02:41:48 [*Exception: Too many items, sorry. 02:41:54 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 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 pikhq_: But if you're gonna state declarativeness as a main goal, then you'd better be better than Nix :-P 02:42:19 Lymee: congratulations you did something horrible. 02:42:32 にゃぁ 02:42:53 Gregor: You'll make your life so much easier if you just write some sort of generic child<->host driver :P 02:42:56 And do everything over that 02:43:17 NixOS does not use musl, and I could not in good conscience make a distro using glibc. 02:43:17 elliott: It would have to be magically generic to support both arbitrary networking and UNIX domain sockets ... 02:43:23 Like, impossible-generic. 02:43:32 name said driver Chauffeur 02:43:35 -!- augur has joined. 02:43:36 for many lulz. 02:43:37 Gregor: You don't 02:43:51 Gregor: Just run the HTTP proxy server _inside the guest_ 02:43:56 Gregor: And make it send requests over that generic mechanism 02:44:17 elliott: Oh, I see your trick. 02:44:29 also it's very important that it's called chauffeur 02:44:31 elliott: But anyway, 'til this point I haven't touched the kernel. 02:44:43 Gregor: Yeah, but your life is going to get exponentially harder the more you try to do :P 02:44:53 You're using slirp, man :P 02:45:06 slirp is pretty nifty, when security isn't a concern ... 02:45:23 It was last updated about five hundred years ago, and its man page is unbearable :P 02:45:31 (OK, so Debian have made changes) 02:45:35 --Kelly "STrRedWolf" Price 02:45:35 Slirp Maintainer 02:45:38 OH MAN SO PROFESSIONAL 02:45:48 Dude chauffeurs get paid a lot of money. 02:45:52 to just like... drive people places. 02:45:59 NixOS does not use musl, and I could not in good conscience make a distro using glibc. 02:46:12 pikhq_: you could probably build your own NixOS using musl 02:46:16 if you make a musl package 02:46:19 @let 1 = 2 02:46:20 Defined. 02:46:21 * oerjan suddenly gets an urge to rename Taneb's latest language to Istanbul 02:46:23 > 1 + 1 02:46:25 2 02:46:26 :( 02:46:36 Lymee is banned from using let. 02:46:37 > 1 02:46:38 1 02:46:40 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:46:41 :[ 02:46:42 @undefined 02:46:45 @undefine 02:47:03 tell me this isn't hilarious: http://images2.wikia.nocookie.net/__cb20080606170116/inciclopedia/images/2/20/DDR_DDR.jpg 02:47:27 elliott: I'd also want to use runsv instead of upstart... 02:47:30 quintopia: it isn't 02:47:30 Lymee: 1 isn't an identifier, the 1 in 1 = 2 is interpreted as a pattern match 02:47:33 pikhq_: So write your own scripts 02:47:37 Yup. 02:47:37 elliott: thanks 02:47:45 pikhq_: At least you have something to do then :P 02:47:53 > (1) = 2 02:47:55 : parse error on input `=' 02:47:57 FWIW, I'm not the biggest fan of Nix's package description language, but ... I like it more than yours :P 02:48:10 Lymee: using parentheses does not change this fact. 02:48:14 :( 02:48:39 elliott: I could probably think of a better one. 02:48:55 pikhq_: Yep; then you get to implement it 02:49:07 Actually Nix is implemented in C++ which sucks, if I wrote one it'd be in Haskell 02:49:20 Lymee: there is no way to redefine 1 like that 02:49:24 Oh, then Nix would be unusable with a musl system, anyways. 02:49:35 pikhq_: Well that's a temporary problem... a big one, though :P 02:49:37 You can't even use WebKit 02:49:45 > let 1 = 2 in "shut up Lymia" 02:49:45 "shut up Lymia" 02:49:56 Yeah, it's not like there's never going to *be* C++ support. 02:50:01 It's just a problem right now. 02:50:08 > let 2 = 1 in "nou" 02:50:10 "nou" 02:50:21 pikhq_: Maybe I'll write a purely-functional service system in Haskell :P 02:50:36 That sounds really neat I wonder how I'd do that??? 02:50:48 > text "ACTION hugs elliott" 02:50:49 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:49 : 02:50:50 I'm not sure I trust GHC so much that I'd run it as process one though 02:50:50 lexical error in string/character literal at chara... 02:50:51 Oh wait 02:50:56 Most people use fucking C as their process one 02:50:58 > text "\0001ACTION hugs elliott\0001" 02:50:59 HAHA TEN TIMES MORE TRUSTABLE GUYS 02:50:59 ACTION hugs elliott 02:51:02 :( 02:51:06 pikhq_: Well then your OS is useless :) 02:51:23 (I have been spending my life trying to be a more perfect Haskell zealot lately) 02:51:23 elliott: Actually, I gave up on trying to get GHC to build *at all*, too, so. :P 02:51:30 GHC is easy to build nowadays, dude 02:51:33 It's just autoconf + circular 02:51:51 Thank you for naming its problems! 02:52:03 Har har har, but come on, autoconf packages are not hard to build 02:52:20 'Cept when they are. 02:52:24 Then they're unbearable. 02:52:24 They're really not 02:52:35 I sentence you to GCC. 02:52:42 Unfair 02:52:45 Here's how to build GHC 02:52:47 - Get binary of previous build 02:52:52 - make install into temporary directory 02:52:56 - ./configure --with-ghc=... 02:52:57 - make 02:52:59 - make install 02:53:12 This has worked for me multiple times recently 02:54:00 Hmm, dammit, where's this generic structure transformation covered 02:54:10 Hey oerjan 02:54:16 !haskell {-# LANGUAGE RebindableSyntax #-} import System.IO; fromInteger = (+1); main = print 5 02:54:20 ​/tmp/input.23021.hs:1:13: unsupported extension: RebindableSyntax 02:54:23 :( 02:54:27 wat 02:54:33 !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = (+1); main = print 5 02:54:57 oerjan: 02:54:59 monqy: your fromInteger definition infloops :P 02:55:03 data LC = Lam String LC 02:55:04 | App LC LC 02:55:04 | Var String 02:55:04 data Ann LC a = AnnLam (a, Ann String a) (a, Ann LC a) 02:55:04 | AnnApp (a, Ann LC a) (a, Ann LC a) 02:55:04 | AnnVar (a, Ann String a) 02:55:12 oerjan: I want to turn any type into its Ann type, as shown above 02:55:18 THERE MUST BE SOME KIDN OF TYPECLASS FOR THIS :( 02:55:25 oerjan: it doesn't work at all because I forgot (+) isn't even in scope :( 02:55:27 Maybe it's SYB 02:55:34 !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = join (+); main = print 5 02:55:35 monqy: it would be 02:55:41 (+1) is an integer though 02:55:46 try swapping the + sign 02:56:04 !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; import Prelude as P; fromInteger = P.join (P.+); main = print 5 02:56:05 19:56:42 /tmp/input.23091.hs:1:68: Not in scope: `+' 02:56:05 19:56:42 02:56:07 ???? 02:56:45 !haskell {-# LANGUAGE NoImplicitPrelude #-} import System.IO; fromInteger = Prelude.join (Prelude.+); main = print 5 02:56:59 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print 5 02:57:04 6 02:57:12 * oerjan cackles evilly 02:57:28 monqy: well not with rebindablesyntax, but with _noimplicitprelude_, yes 02:57:33 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = succ; main = print (5 + 5) 02:57:38 12 02:57:43 Ooohhhhh~ 02:57:44 >:D 02:58:04 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = join (*); main = print 5 02:58:25 !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (fromInteger); fromInteger = (\x -> x*x); main = print 5 02:58:29 25 02:58:33 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:58:49 monqy: import Prelude 02:59:22 but you'd have to do that with rebindablesyntax too wouldn't you 02:59:27 since it implies noimplicitprelude??? 02:59:33 total used free shared buffers cached 02:59:33 Mem: 3699 1762 1936 0 34 441 02:59:33 -/+ buffers/cache: 1286 2412 02:59:33 im confused 02:59:36 I should use more memory 02:59:40 monqy: does it? 02:59:42 ok i guess 02:59:51 -XRebindableSyntax implies -XNoImplicitPrelude. 02:59:56 (from http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax ) 03:00:28 somehow I bookmarked 7.0.2 instead of latest 03:00:47 fixed bookmark 03:03:06 @let {-# LANGUAGE NoImplicitPrelude #-} 03:03:08 Defined. 03:03:10 ... 03:03:12 > map 03:03:13 Overlapping instances for GHC.Show.Show ((a -> b) -> [a] -> [b]) 03:03:13 arising... 03:03:37 > id 1 03:03:39 1 03:03:40 :( 03:03:50 :( 03:03:55 http://www.lewrockwell.com/orig2/baskerville1.html 03:03:57 there's no way that comment appears at the top 03:04:34 http://www.reddit.com/r/bestof/comments/jgpr8/hi/ 03:05:34 wrong channel 03:06:38 wrong channel <-- wait that wasn't a comment to @let {-# LANGUAGE NoImplicitPrelude #-} ? 03:06:50 no 03:06:51 to Sgeo_ 03:06:55 oh 03:06:58 http://www.reddit.com/r/bestof/comments/jgpr8/hi/ 03:06:58 wrong channel 03:06:59 not 03:07:02 there's no way that comment appears at the top 03:07:02 wrong channel 03:07:04 it was to lymee yes 03:07:16 GOOD, GOOD 03:07:52 CakeProphet: is there any magic method to convert a DFA to a regular expression or is it raw problem solving? 03:08:37 It is completely impossible. just ask oerjan for the proof. 03:09:04 itidus20: magic method? it's a simple algorithm 03:09:12 YOURE RUINING ING IT 03:09:37 just like you spoiled xmas for little timmy 03:09:47 what 03:10:16 a joke based on the idea of ruining things 03:10:21 ok 03:11:06 little timmy being named to sound like a poor little sickly kid 03:11:15 ok 03:11:23 looking ghostly 03:11:33 i laughed too much at that 03:11:50 now or when it happened 03:11:57 lol 03:12:00 i was still laughing when I typed that 03:12:07 oh my god IAmInLoveWithJesus still posts 03:12:11 and now, yes 03:12:22 oh wait, just posted last month after not posting for two years, lol 03:12:25 the original looking ghostly was great too though 03:12:28 wrong channel <-- well it was funny anyhow 03:12:42 oerjan: no, Sgeo_ isnot allowed fun 03:12:53 who is iaminlovewithjesus 03:13:03 monqy: my hero 03:15:22 So this is a DFA I made to consolidate my lesson. http://oi53.tinypic.com/wmmgrq.jpg 03:15:30 blah 03:15:32 good state 03:15:42 its like a toilet 03:15:57 i like how you defined one-letter abbreviations and then never used them 03:17:01 i am surprised at how complex the resulting language is 03:17:29 how come that mario can be hit twice before he dies 03:17:38 the small mario that is 03:17:45 or um 03:17:46 he dies 03:17:53 but then why can he be hit by an enemy or fall down a hole or mushroom 03:18:01 he cant 03:18:03 shouldn't dead mario just feed back into itself or w/e 03:18:05 if that happens it wont be accepted 03:18:10 monqy: yes it will 03:18:12 monqy: it will go to blah 03:18:16 see diagram 03:18:17 and blah is not accepting state 03:18:20 oh 03:18:25 hehehe... 03:18:26 i just thought the extra circles were 03:18:27 like 03:18:28 mistakes 03:18:38 beautiful mistakes 03:19:09 i dont actually know the rules of mario well enough to extend it to the fire flower 03:19:22 because its hard to recreate those effects 03:20:10 technically theres a small mario with fire mario clothes that can be obtained by clever glitch exploitation 03:20:23 VDE hmm ... 03:20:34 Gregor: What 03:20:43 http://vde.sourceforge.net/????????//////// 03:20:52 Looks like it maybe 03:21:09 is that a hat or a 2 03:21:14 what 03:21:20 http://vde.sourceforge.net/v2logo.png 03:21:24 oh it's a 2 03:21:36 oh 03:22:10 Uhh, yeah :P 03:22:23 Gregor: It looks like a router thing rather than anything you could diectly communicate with maybe??? 03:26:04 elliott: It's a virtual networking infrastructure. 03:26:10 elliott: Also, ?!??!!!!!???????!??!??! 03:29:19 Gregor: ???????????????????????????????????????????????????????????///// i cant type xeclmvation marks 03:29:47 here have mine!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 03:29:55 STOP BRAGING 03:30:08 why not try an interrobang 03:30:59 -!- augur has quit (Ping timeout: 250 seconds). 03:31:32 ‽ 03:31:56 i dont have unicode turned on but ill take your word for it !!!!!!!!!!!!!!!!1 03:32:29 oh no, i need the generics stuff 03:34:29 ‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼‼ 03:38:25 ‼‽!?¿?!‼‽!?¿?!‼‽!?¿?! 03:39:08 ¡ 03:44:15 ‼ is the NOT NOT function 03:44:18 Very useful to have 03:45:49 You jest, but it's quite common in languages with no proper boolean type 03:45:52 e.g. C 03:46:03 (If you think C99 has one, tell me what value (bool)9 has) 03:46:14 so you've seen it used? 03:46:30 !! is the boolean cast operator. 03:46:34 PatashuWarg: You haven't? 03:46:38 It's common in C code. 03:46:41 it sets a positive number to 1 in most Cs right? 03:46:48 quintopia: Nnnnnnnnnnnnnnnnnnnnnnnnnno. 03:46:55 quintopia: It's equivalent to ==[one] 03:46:59 Where [one] is the digit one 03:47:03 Yes I have used !! in a few C codes sometimes 03:47:08 Also (x ? [one] : 0) 03:47:24 It changes everything to 1 except 0 and null pointer, which remains 0 03:47:26 I'm worried as to what state of affairs caused you to believe it could do something like check for positivity 03:47:33 zzo38: Oh right, it's not equivalent to ==[one] 03:47:35 Not even remotely 03:47:39 It'd be [exclamation mark]= 0 03:47:54 (for both values and pointers) 03:48:06 elliott: i was thinking it was a check from nonzeroness 03:48:34 *for 03:49:21 It is 03:49:34 Except it's used where something is basically "like a boolean" 03:49:35 but i didn't know for sure if !0=1 was an explicit standard 03:49:44 For instance, if a search routines either NULL or a pointer to the found thing 03:49:52 Then you can cast it to a zero-or-one boolean with !! 03:50:19 i don't frequently need my trues to be exactly 1 03:50:23 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 i'd put the routine in the if statement directly 03:51:04 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 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 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 Because lord knows that (x == TRUE) should be a different test to x. 03:53:26 ORAIT 03:53:33 IT MAKES HUEG DIFFERENCE IN C CODE 03:53:39 What\ 03:53:46 when are you going to fix your keyboard? 03:53:53 Soon 03:55:12 I fixed the spiders in MegaZeux by assuming true is 1 and false is 0. 03:55:16 int web=(element_type==ELEMENT_THINWEB)+(element_type==ELEMENT_THICKWEB)*2; 03:55:49 But at first needs element_type which is int element_type=(d_flag&(A_ELEMENT*7))>>19; 03:56:29 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 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 ye olde wild escaped punchline 05:44:35 *wilde 05:48:42 looking for its joke 05:50:11 -!- elliott has joined. 05:50:36 hi 05:50:59 hello 05:52:15 pikhq_: is your package manager perfect yet 05:54:36 No. 05:56:00 oh 06:00:09 What things does your package manager do? What ideas do you have? 06:06:34 `addquote like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with but that would be NP hard I think 06:06:36 583) like i could ask how many "petals" are there on each of the "flowers" on this coffee mug i just made a drink with but that would be NP hard I think 06:07:32 05:18:14: hummm.. Garfield [who designed Magic] studied under Herbert Wilf and earned a Ph.D. in combinatorial mathematics from Penn in 1993. 06:07:32 but what does he think of mondays 06:07:51 >_> 06:08:01 `addquote combinatronics seems to be the mathematics chasing buddha's tail yeah.. he was a smart monkey that buddha 06:08:02 584) combinatronics seems to be the mathematics chasing buddha's tail yeah.. he was a smart monkey that buddha 06:10:12 05:50:06: you know.. 06:10:12 05:50:08: that.. 06:10:12 05:50:24: patents are like an altar made of wood 06:10:12 05:50:37: onto which the rich can store their gold 06:10:12 05:50:37: onto which the rich can store their gold 06:10:12 dee;p 06:10:34 http://www.einaudi.cornell.edu/curriculum/monkey/journey/ 06:12:23 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:12:47 confuse is good 06:16:09 confusius say 06:18:22 http://www.reddit.com/r/fifthworldproblems/ 06:18:24 help what is this 06:21:27 something must have escaped from the scp foundation, i think 06:26:11 rofl 06:26:25 reddit... 06:28:22 PatashuWarg: anyway, since when did you become a werewolf? 06:28:33 oh 06:28:37 I don't know why I'm using that name on here 06:31:14 06:53:30: I used to be in three channels on Freenode. Now I'm on 16. Thanks, #haskell and #esoteric 06:31:19 #esoteric usually results in a _decrease_ 06:31:22 -!- cheater has joined. 06:31:42 06:57:06: what's -spinoff is it any good 06:31:46 monqy: fizzie is on -minecraft. 06:31:53 Which is mostly about things that aren't Minecraft. 06:32:32 oh 06:32:53 so about as on topic as #esoteric itself? 06:33:08 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:29 it is a: nice channel 06:33:44 too bad I still haven't bothered myself into getting into dwarf fortress 06:34:03 monqy: it's as entertaining to read about as play 06:34:22 well reading it is pretty entertaining 06:34:41 yep 06:36:04 -!- cheater_ has joined. 06:37:19 -!- cheater has quit (Ping timeout: 250 seconds). 06:38:10 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 http://codu.org/logs/_esoteric/ 06:38:54 wat 06:39:06 lol 06:39:09 TOPIC #esoteric :Don't enjoy unlocking the matrix of unobtainide, please. | wget -s 42 redpill | man mouth | http://codu.org/logs/_esoteric/ 06:39:11 bloody irssi 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:15 thanks 06:39:52 Why did you post the URL in a message not the topic message? 06:40:04 irssi's cut and paste failed 06:40:12 why did you cut and paste the topic 06:40:14 cut? you removed the topic from the window? 06:40:15 in irssi 06:40:29 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 if you do /topic it will put the topic where the tab was 06:40:34 Deewiant: So how does it do on Mycology 06:40:37 and then you can just edit it there 06:40:49 monqy: ooh 06:40:49 monqy: irssi "workarounds for having a bad output mechanism" irssi 06:41:10 monqy: cut and paste worked last time... 06:41:21 i don't trust cut and paste 06:41:36 well i don't either, now :( 06:41:39 :( 06:41:53 11:36:11: hmm, does anyone here know of ATS (a language that isn't meant to be eso, but may as well be)? 06:41:53 11:36:15: here's some code: http://www.ats-lang.org/EXAMPLE/MISC/quicksort_list_dats.html 06:41:53 11:38:25: the homepage is effectively saying "look how great our language is, it only took us ten years to write quicksort" 06:42:11 ?tell ais523 I know enough about ATS to have opinions on it. 06:42:11 Consider it noted. 06:42:27 ?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:27 Consider it noted. 06:42:29 ADVANCED LOGREADING 06:42:32 TEMPORALLY DISPLACED 06:42:40 To me the only paste problem occurs in IRC if I paste a linebreak accidentally. 06:43:02 11:40:27: Yeah, it's... preternaturally ugly. 06:43:02 It's... mostly the bad syntax highlighting. 06:44:37 "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 /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 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 , 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 PU architectures, the AS/400 is definitely esoteric. Ian 02:19, 13 August 2011 (UTC)" 06:44:44 :DDDDDDDDDDDddddddddd 06:44:49 My IRC client might have a few features that no other IRC client has; do you know if it is? 06:45:59 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:01 Wow, EBCDIC characters 06:46:39 so cutting from the irssi window to paste back into it is fickle 06:47:09 13:53:33: elliott: You're not here. 06:47:09 13:53:38: <-- genius 06:47:10 14:00:14: 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 Gregor: Explain. Immediately. 06:47:47 Oh, yer explaining :P 06:48:17 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 Is AS/400 computer architecture compatible with LLVM though? 06:49:00 let me use my omniscience to find out :) 06:52:23 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 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 elliott: Wow. It's an actual C machine. 06:55:14 pikhq_: Yes it seems like that to me. 06:55:15 not that you'd need C with assembly like that 06:55:54 elliott: No, you still need C; one purpose of even having C is that you can compile in many computers. 06:55:58 Yeah, the assembly language appears to be about on par with C in expressiveness. 06:57:05 elliott: IBM *still sells this*. 06:57:43 too CISC; didn't buy 06:57:49 ...also too expensive 06:58:07 If it has no registers, does that mean the "register" command in C is meaningless on this computer? 06:58:22 zzo38: It generally is. :) 06:58:45 wow, the VAX had instructions for evaluating polynomials 07:00:03 "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 call program with variable length argument list: the best assembly instruction 07:00:24 "SHARC (hardware COME FROM!!!)" :DDDDDDDDDddddddddd 07:03:56 Reading the linked documentation, I can see the commands 07:05:58 -!- oerjan has quit (Quit: Good night). 07:13:35 It even has instruction for computing date duration. 07:15:09 SHARC? 07:15:17 PatashuWarg: Shark. 07:15:48 should i sleep 07:19:02 you're lall terrihlble 07:19:24 It has a lot of different kinds of copying 07:21:12 how can you copy in different ways? 07:22:40 It has both binary and decimal modes, and it has zoned decimal and packed decimal 07:23:12 wow 07:23:19 high level assembly 07:23:26 should i seep 07:26:55 I suppose in the case of C programs that do things contrary to AS/400, you could make an emulator if necessary. 07:29:40 hel;lp should i felspeeep 07:29:47 shurosjhudl i slep 07:31:16 shojdfosduljfd i hsoisleeep 07:31:17 help 07:31:35 I've been sleepin 07:31:40 g since around 11 07:31:59 that is because 07:32:01 you do things 07:32:03 the reasonable way 07:32:07 ((bad way)) 07:32:53 sjoshuxocjls i seleepj 07:33:18 hepl...... 07:34:16 HEPL............ 07:34:34 HEPLY..... 07:34:46 not hepling :( 07:35:58 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 (also the cards are not real) 07:36:06 (they are fake imaginary cars) 07:36:17 Don't fall asleep. 07:36:24 Sleep is when the nightmares cometh 07:36:48 NOT HEPLFUL 07:37:13 all i have to do is put the laptop screen down but that sounds like work??? yeah 07:37:29 looking ghostly 07:38:44 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 monqy: i choose to blame yuo 07:39:16 who watht 07:39:21 monqy: SHOUDLJDL I SLEP 07:39:34 i am not a slepe doctore..... 07:39:43 -!- PatashuFluttersh has joined. 07:39:48 YOU ARE NOW [punches in slow motion] [film pauses before punch hits] 07:39:50 [film rewinds] 07:39:55 [punch rewinds so far it goes through my head] 07:39:56 hepl 07:40:00 hlep 07:40:08 HELPK,L 07:40:20 IM FIST IN HEAD AND DONT KNOW TO SLEEP?????? 07:40:43 ok i specifically crafted that last line to get addquoted someone do it 07:40:47 step 1 fist out of hed step 32 learn how to spelepe sltep 3 selp 07:40:51 or ill have to 07:41:11 monqy: are you syinging 07:41:14 thta 07:41:20 in yuor pofesional slepe doctore opinoyins 07:41:26 im shouoldk slep? 07:41:47 He just wants your money 07:41:53 -!- PatashuWarg has quit (Ping timeout: 252 seconds). 07:41:53 He gets more money if you sleep 07:42:11 CFONCFONLINCTING OPINIONS AND IM NOW MORE EVEN LOOKING GHOSTLY 07:42:15 I MIGHT BECOME GHOST 07:42:21 `addquote IM FIST IN HEAD AND DONT KNOW TO SLEEP?????? 07:42:23 i was only giving instructions on how to sleep.l.... 07:42:26 585) IM FIST IN HEAD AND DONT KNOW TO SLEEP?????? 07:42:29 NOT ADVICE ON WHETHER YOU SHOULD 07:42:32 `addquote I MIGHT BECOME GHOST 07:42:33 586) I MIGHT BECOME GHOST 07:42:35 monqy: I NEED A SLEPE DOCTORE 07:42:41 wjhy did you add thoise..... 07:42:45 BECUAJUISE IM SO FUNNY 07:42:54 I WILL ADD EVERY LINE I SAY AFTER ONE AFTER THIS ONE IF YOU DO NOT GIVE ME PROFESIONAL ADIVCE 07:43:02 (THEN CONITINUE TO RE-ADD FOREVER) 07:47:19 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 And you are not allowed to branch to NOOP instructions. 07:54:43 -!- elliott has quit (Ping timeout: 252 seconds). 07:57:29 why not? 07:58:10 Breakfast time! 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 What does anyone think of Constantinople? 08:17:23 OK, I have read it. 08:17:49 I think I understand it. 08:18:07 I haven't written it very well 08:18:25 Yes, I can see it is not written very well. 08:22:41 Ignore that it isn't well written, what do you think of the language 08:23:09 It is OK, I guess. 08:23:25 That's good enough for me! 08:23:27 Thanks! 08:24:27 Can you try to neaten the article up, if you're not too busy? 08:28:10 Not today; now I will sleep. 08:28:13 -!- zzo38 has quit (Remote host closed the connection). 08:30:18 going now 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 "The greatest warriors are the ones who fight for peace." 10:23:00 -- Holly Near 10:23:00 Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them. 10:23:09 Glanced at this, thought it said "fight in space". 10:26:24 Java is... kind of cool.. 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:00:58 itidus20, um... 11:06:20 But it is like a girlfriend who is too attractive. It has flaws which we want to overlook in our limerence? 11:06:36 s/?/. 11:07:47 Yes. We all want to overlook Java's flaws in our limerence. 11:08:44 Oh wait that's actually a word. 11:09:48 yup 11:12:21 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:35:41 Yes... elegance... 11:38:51 It's free. It's portable. It has a comprehensive API. You can execute an archive! 11:39:23 Don't get me wrong I don't have a java sdk 11:58:09 nah im deluded 12:05:32 >_> 12:05:44 you know what's pretty elegant? C# 12:27:22 -!- Taneb has joined. 12:28:41 Hello! 12:29:20 heyo 12:33:02 How's life? 12:38:52 going. 12:39:27 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:41:35 mmmm waffles 12:41:38 so good. 12:42:47 Yay! 12:42:53 -!- PatashuFluttersh has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 12:47:18 CakeProphet, gig as in comedy? 12:49:11 yes... 12:49:17 comedy musical 12:49:45 CakeProphet: The Musical 12:49:54 The companion to Sgeo: The Movie. 12:50:30 I'd pay good money to see CakeProphet on ice. 12:50:46 `pastequotes CakeProphet 12:50:48 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3098 12:50:59 I'm pretty sure CakeProphet: The Musical would be of the horror tradgedy genre 12:51:29 423) 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! I have the weirdest boner right now. 12:51:38 Honestly, Gregor. 12:51:44 Dry ice is a pretty terrible choice for that. 12:52:10 Liquid helium? 12:52:14 Liquid nitrogen is a better choice in pretty much every aspect. 12:52:42 Liquid helium is... overkill. 12:52:57 No such thing as overkill. 12:53:03 Merely underkill. 12:53:11 Dry ice is a poor conductor. 12:54:46 You can actually hold it in your hands for a few seconds without any pain at all. 12:55:23 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 I think I've just proved Constantinople Turing-Complete 12:59:29 The city? 12:59:59 No, that's a load of Istanbul 13:00:16 Oddly, it's a place I've been to 13:00:33 The esolang 13:00:36 where in Europe do you think one could get laid the most? 13:00:40 and not get a disease. 13:01:09 well the second part is optional I guess. 13:01:30 How much are you willing to spend? 13:01:37 irrelevant. 13:01:42 Amsterdam 13:01:54 I am planning my future round-the-world flight plan. 13:02:01 you know, when I'm rich and stuff. 13:02:13 I was going to go around the world by train 13:02:19 how does that work. 13:02:23 do they have sea trains? 13:02:31 That's where my plan failed 13:02:45 the failure in this plan is probably the rich part. 13:02:52 I can get to Vladivostok 13:03:05 From the profits from your comedy musical? 13:03:25 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 Then I'll hitch with a freight tanker 13:03:35 instead of like 20k in the US, or whatever it is. 13:03:58 the price varies based on your starting country, which is kind of stupid but whatever it's economics. 13:04:04 TO LOS ANGELES 13:04:22 ...Do they have trains in Los Angeles? 13:04:26 probably. 13:04:43 there are definitely trains in Atlanta. or there were. 13:04:56 Atlanta was like, the train hub of the south. 13:05:01 now it's the air travel hub. 13:05:14 largest airport in the world I believe. 13:05:47 In some ways 13:05:48 busiest airport, actually. 13:05:54 based on total number of passengers. 13:06:01 per year./ 13:06:06 Hong Kong is freight 13:06:12 Heathrow is international passengers 13:06:24 Frankfurt is international destinations 13:06:29 I'm glad we know what Wikipedia is, otherwise we would be lost here. 13:06:51 Yup 13:07:07 I went to Colorado once. 13:07:14 When I was little 13:07:21 did you end up in Atlanta? 13:07:30 No, I ended up in Melbourne 13:07:56 Taneb, what's the largest in terms of size? 13:08:34 I don't know 13:09:12 I know Charles de Gaulle has the fastes moving walkways 13:11:51 http://www.flightmapping.com/news/coventry-airport/biggest-busiest-airports.asp 13:12:13 according to this King Fahd Interational Airport in Damman, Saudi Arabia 13:13:23 hmmm, I'd probably want to go to Tokyo I think. 13:13:54 The shortest distance between two capital cities is Rome to the Vatican City 13:14:03 One is literally inside the other 13:16:02 I'd think the Twin Cities area would be close 13:16:24 if you exclude capitals from other countries/religious-state-things 13:16:34 *citystate 13:16:54 They aren't capitals 13:17:15 After them, it's Brazzaville and Kinshasa 13:59:46 I HAS KITTY 14:04:16 Gregor, YAAAAY 14:04:18 WHAT IS IT CALLED 14:07:10 TIA 14:10:36 AWWWWWWWWWWWWWWW 14:11:03 IS IT SO CUTE 14:11:55 SHE IS A FATTY 14:17:05 HEY GUYS I AM JAMAICAN 14:17:09 mon 14:21:59 WHOOOOOOOOAH 14:29:09 ....this channel suddenly got trippy as soon as a kitty got near it 14:29:19 thankfully i am immune to their deleterious effects 14:29:29 this is a low grade of trippy. 14:30:04 (although i am highly reactive to the presence of puppies) 14:41:50 I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean? 14:42:48 More like 8-in-the-morning. 14:42:55 And they're warm and fuzzy too. 14:56:30 `echo hi 14:56:31 hi 15:05:33 -!- augur_ has joined. 15:10:49 -!- ais523 has joined. 15:13:26 I HAS KITTY <-- bloody allergen-spreading wakeup-inducing-at-6-in-the-morning balls of fur and claws you mean? 15:13:40 Why did you have to say that elliott's going to complain about it for like 2 hours 15:14:10 Phantom_Hoover, don't worry. I will be away eating soon. Besides it was you who highlighted him about it 15:14:26 Phantom_Hoover, anyway my description was accurate. 15:29:42 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 anyone here know if there's a git command to determine if a file is currently versioned or not? 16:33:37 ais523: You have 2 new messages. '/msg lambdabot @messages' to read them. 16:33:43 @messages 16:33:44 elliott said 9h 51m 32s ago: I know enough about ATS to have opinions on it. 16:33:44 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:44 whatever. 16:33:58 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 I suppose I could edit one and git add -p, but there must be a neater way 16:39:20 git ls-tree HEAD? 16:40:03 ais: git status 16:41:07 ais523: it's $VCS status in any $VCS i know 16:44:22 cheater__: thanks 16:44:35 hmm 16:44:36 except, that's wrong 16:44:38 I just tried it 16:45:02 same result for a versioned and nonversioned file 16:45:48 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 i know it wouldn't really solve the actual problem though 16:46:07 nor is there such a problem really 16:46:22 just the idea of such a thing amuses me 16:46:25 ais: sorry it doesn't take a file as the parameter 16:46:40 here's the kind of output you get if there's an unversioned file in the repo somewhere (aaa in this case): 16:46:41 $ git status 16:46:41 # On branch master 16:46:41 # Untracked files: 16:46:42 # (use "git add ..." to include in what will be committed) 16:46:44 # 16:46:46 #aaa 16:47:03 if you get no output then your files are all versioned 16:47:26 it also scans subdirs 16:47:44 all the paths are relative to $PWD 16:47:58 cheater__: that's not what I wanted at all 16:48:04 as the file's almost certainly either versioned or ignored 16:48:18 as it's in an unedited repo after building 16:48:24 the question is, was it there before I built? 16:49:30 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 I have a specific file there 16:49:49 and want to know if it's generated or part of the source 16:50:08 the source would have been in the repository during a new checkout, right? 16:51:17 yes 16:51:24 and generated files won't have been 16:51:41 s/Constantinople/Istanbul/ 16:52:43 ais523, but you think if you did "git add " then it wouldn't show up in git status? 16:53:12 cheater__: the generated files don't show up, because they're in git's ignore file 16:53:12 sorry, wrong tense 16:53:18 which is what you'd expect for generated files 16:53:19 ais523, but you think if you had done "git add " then it wouldn't show up in git status? 16:53:28 mhm 16:54:05 wouldn't git log show something 16:54:09 got log 16:54:15 *git* 16:54:45 I think pikhq_ had the right answer all along 16:55:06 yeah i think his answer applies 16:55:12 although it seems not to distinguish between directories 16:56:36 possibly no. 17:05:22 -!- Taneb has quit (Quit: It's-a pizza tonight!). 17:21:19 -!- Taneb has joined. 17:49:23 There, now UMLBox can use Debian's user-mode-linux package for its kernel, instead of supplying its own :) 17:56:12 Suzumiya Haruhi novels <3 18:20:37 -!- elliott has joined. 18:24:46 `addquote I gave her the Noblesse Oblige rooms. She was happy with them even when they were behind 2 locked doors and a floodgate and full of water. 18:24:46 elliott: You have 12 new messages. '/msg lambdabot @messages' to read them. 18:24:47 587) I gave her the Noblesse Oblige rooms. She was happy with them even when they were behind 2 locked doors and a floodgate and full of water. 18:25:01 heh, 12 18:25:05 That's... not very funny at all. 18:25:14 it's pretty typical of DF 18:25:19 and typical DF is funny by default 18:25:36 so, is that you arranging an accident for an unhelpful mayor? 18:26:00 No, that was after the accident when I was waiting for the rooms to drain. 18:26:06 ah 18:26:12 she wasn't in the rooms, presumably 18:26:13 our fortress is very well-organised 18:26:17 And I needed rooms for the new baroness, so I gave her the flooded ones. 18:26:33 do elves even go to war in DF does anyone know 18:26:40 ours seem to be happy to have their caravans repeatedly never come back 18:26:42 Occasionally 18:26:43 they do if you annoy them too badly 18:26:47 and then to trade in rooms splattered with elf blood 18:26:48 so 18:26:48 elliott, most of the dorfs are ecstatic despite the fact that only about a quarter of them have beds. 18:26:49 ??? 18:26:49 Give them wood, then kill them 18:26:55 Phantom_Hoover: I know it's so bizarre. 18:27:00 but that's mostly by cutting down trees, rather than merely kidnapping caracans 18:27:02 *caravans 18:27:04 Phantom_Hoover: My laziness: ecstatic-creating???? 18:27:11 ais523: kidnapping? more like seizing and massacring 18:27:14 also, that's hilarious 18:27:20 YOU CAN CUT DOWN OUR BROTHERS BUT YOU MUST NOT CUT THE TREES 18:27:53 elliott, I also made the best solution to cave adaptation 18:28:03 elliott: I bet it's how they punish elven criminals 18:28:13 send them to the dwarf fortress, along with some bribes to continue not cutting down trees 18:28:20 Phantom_Hoover: What 18:28:25 ais523: haha 18:28:36 ais523: why do they send valuables along? well, ok, valuable for elves 18:28:38 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 elliott: because how many dwarves leave the forests alone? 18:29:02 heh 18:29:41 elliott, I build a 7-z-level or so tower. 18:29:45 *built 18:29:52 And then I put a table and chair at the top. 18:30:03 And made it a dining room/meeting hall. 18:30:08 wat 18:30:24 It's now packed with about 3 dorfs per tile, but they're all perfectly happy with going outside. 18:30:42 `addquote On further reflection, I think I did manage to miss winter and spring altogether. This does explain the goblin siege I had in autumn. 18:30:44 588) On further reflection, I think I did manage to miss winter and spring altogether. This does explain the goblin siege I had in autumn. 18:31:07 ok this log is too funny 18:31:18 `addquote A possessed soapmaker: the most ridiculous thing? OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS 18:31:19 589) A possessed soapmaker: the most ridiculous thing? OH YES YOU JUST HAD TO CLAIM THE WORKSHOP I SET ASIDE FOR STRAND EXTRACTION YOU BASTARD I SWEAR IF ANY OF THAT ADAMANTINE GOES MISSING YOU'RE GETTING SOME HIGH-QUALITY ROOMS 18:31:23 I'LL STOP NOW 18:31:34 `pastequotes Phantom_Hoover 18:31:37 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3480 18:31:46 wow, that's a lot 18:31:58 562) Taneb's been hit by melancholy. He didn't have any friends, fortunatel.y 18:31:58 563) Oh god. I've become a metallurgy hipster. 18:31:59 that's... 18:31:59 SIX DF QUOTES 18:32:01 SIX 18:32:03 not the right ordering 18:32:10 elliott, I altered it. 18:32:13 iguess the original quote had some formatting problem 18:32:15 Phantom_Hoover: Howso 18:32:27 It used to have "iridium is too mainstream", which ruins the joke a bit. 18:32:50 let's put it in the topic instead 18:32:56 151) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. To comply with the GFDL, there's a copy of Wikipedia in there. 18:32:56 155) how does a "DNA computer" work. von neumann machines? CakeProphet, that's boring in the context of DNA. It's just stealing the universe's work and passing it off as our own. 18:32:56 TODO: Fix spacing 18:33:03 -!- ais523 has set topic: iridium is too mainstream | http://codu.org/logs/_esoteric/. 18:33:08 `pastequotes fungot 18:33:09 elliott: what, the last one. wait no, that just made you disappear" and stuff 18:33:10 see, that's almost an ontopic topic 18:33:11 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13417 18:33:16 ais523: fsvo almost 18:33:25 206) Vorpal: you can't plant spiders, duh! 18:33:25 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:25 :D 18:33:36 it'd work better if there's a really obscure non-eso lang called iridium 18:33:41 ^style 18:33:41 Available: agora alice c64 ct darwin discworld europarl ff7 fisher homestuck* ic irc jargon lovecraft nethack pa speeches ss wp youtube 18:34:16 I... think we need to create a new quotes file. 18:34:17 http://esolangs.org/wiki/C_plus_plus 18:34:19 maybe there is 18:34:20 ais523: copyvio from WP, offtopic 18:34:31 how recent? it's not in my RSS feed yet 18:34:37 (diff) (hist) . . N C plus plus‎; 10:25 . . (+1,834) . . 58.175.14.145 (Talk) (Created page) 18:34:40 before you deleted those spam user pages 18:34:41 at least 18:34:45 five hours before, in fact 18:34:49 but earlier today 18:34:53 must have been a feedreader hiccup 18:35:11 I'll delete as copyvio, that's normally the most uncontroversial opinion 18:35:22 I did that on Wikipedia, once, when someone copied [[kitten huffing]] over 18:35:29 we need a copyvio user warning template at some point 18:35:36 and while the admins were busy arguing, I blanked it and put {{copyvio}} on it 18:35:37 at least two occurrences recently :P 18:35:42 (this is before I was an admin) 18:35:48 ais523: haha, people were arguing to keep [[kitten huffing]]? 18:35:59 elliott: BTW I made UMLBox work with stock UML kernels (e.g. the one in the Debian package user-mode-linux) 18:36:02 well, it's more that half of the people were going "I don't get it, is this an inside joke?" 18:36:07 Gregor: Woooooooooooooo link me again 18:36:18 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 elliott: https://bitbucket.org/GregorR/umlbox 18:36:28 it had [[Category:Inside jokes]] on it too, but most of them missed it 18:36:29 BtW, tswett, your dorf was voted out of office before his mandate could expire and I killed him out of spite. 18:36:29 ais523: hahaha 18:36:46 elliott: Use `make nokernel` to build it (it still tries to build the kernel with `make all`) 18:37:01 ais523: /me considers rewriting [[stroopwafel]] to be hideously POV to see if anyone dares revert 18:37:09 hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous? 18:37:10 elliott: don't 18:37:11 Gregor: Wait, it had something to automatically configure and build the kernel? 18:37:17 Gregor: Why didn't you say so :-P 18:37:25 ... 18:37:26 >_< 18:37:27 ais523: Please stop telling me to not do things that are obviously a bad idea :P 18:37:38 elliott: I'd be out of character if I didn't! 18:37:43 ais523: hmm, /is/ that page the most famous on Uncyclopedia? or is there one even more famous? 18:37:46 AAAAAAAAAAAAAAAAA is pretty famous 18:37:49 or however many As it is 18:37:53 oh right, I somehow forgot that one 18:38:02 you're right, it's probably even more famous 18:38:02 Gregor: Not that it isn't a change for the better :P 18:38:43 Gregor: The UMLBox startup involves a full Linux bootup, more or less, right? 18:38:48 Just checking it isn't practical to do for every command 18:39:02 hey, Uncyclopedia has Monobook as its default skin 18:39:03 elliott: Well, not particularly "full", no. It doesn't include a real init. It's quite quick actually. 18:39:10 I wonder if they managed to argue Wikia into a vague amount of sense? 18:39:35 elliott: Well, "quite quick" as in "it takes about a second at most" :P 18:39:57 Gregor: Does HackEgo do it for every command? 18:40:04 ais523: they argue with Wikia a lot, I think 18:40:06 elliott: Yup 18:40:17 Gregor: That explains why it's so fucking slow ;) 18:40:27 `echo You're mean *sob* 18:40:28 You're mean *sob* 18:40:55 Gregor: I take it running a command-running server thing from inside would defeat all the limits and the like 18:41:05 Gregor: does it include... fakeinit? 18:41:21 Oh god, what if Gregor just wrote fifty percent of ais523's program. 18:41:24 WHAT IF. 18:41:32 fakeinit is a very small part of my program 18:41:38 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 ais523: It has its own pseudoinit. 18:41:57 ais523: (Which just mounts the requested parts of the host filesystem and runs) 18:42:04 I need to tell fakeinit to change its own name to init and commandline to /sbin/init 18:42:07 just in case someone thinks to check 18:42:14 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 I'm not sure it's possible to get out-of-the-box Linux booting in under a second. 18:42:23 Because you'd be under the effects of the in-system limits 18:42:27 pikhq_: UML is hardly ootb 18:42:43 elliott: It got pushed upstream. 18:42:56 I think it's in my copy of the kernel sources 18:43:00 which I got via package manager 18:43:01 It's perfectly possible to get UML from zero to running init in well under a second. 18:43:03 elliott: You now just do make ARCH=um 18:43:36 It's been in mainstream for quite a while now, in fact. 18:43:52 Wasn't it 2.6.1x or some such? 18:44:01 Sounds about right. 18:44:08 Sure 18:44:12 But it's not exactly a ````stock kernel" 18:44:39 hmm, I'd forgotten how good Uncyclopedia's page on NetHack is 18:44:44 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 Erm, from inside 18:44:47 it's not quite paced perfectly, but the idea's pretty neat 18:44:49 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 Gregor: (Latter would have the additional benefit of NO FUCKING HG MERGE PROBLEMS) 18:44:59 elliott: Y'all have fun now, y'hear. 18:45:07 Gregor: Imma y'all. 18:45:24 elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P 18:45:41 (device scanning is pretty cheap when you have hardly any hardware. :)) 18:47:58 we demand sg! 18:48:06 So do I :P 18:49:25 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 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:02 Oh? 18:50:17 VCS epiphany: git is terrible :P 18:50:29 maintaining a fork of a project while still pulling a subset of upstream changes 18:50:37 Gregor: git is quite a brilliant VCS with quite a terrible UI. 18:50:54 pikhq_: it isn't quite a brilliant VCS 18:50:55 pikhq_: Well, yes. 18:50:58 its view of the world is fundamentally broken 18:51:03 it just doesn't track enough metadata 18:51:40 Okay, true, there's some obvious deficiencies... 18:51:58 (Linus, it makes sense to have an empty directory. Allow trees to be empty objects.) 18:52:59 I was talking to a git fan 18:53:12 and they were acting like my desire to fork a project and still pull some upstream changes was completely insane 18:53:20 because git didn't understand the operation 18:55:00 now, darcs can represent the operation 18:55:06 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 but you have to include/exclude every patch by hand every time 18:55:26 pikhq_: yes, that's what I mean by "the simplest thing that can't reasonably be done by git" 18:55:43 I would think that git cherry-pick can do that somehow 18:56:00 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 that's what required me to add the "reasonably" qualifier 18:56:10 the thing is, that git gets more and more confused the more you cherry-pick, especially out of order 18:56:25 because the versions you're comparing to get more and more not-existing-in-the-original-source 18:56:28 I've never used cherry-pick so beats me 18:56:28 But this gives you a completely different commit which happens to have some similarity to another one. 18:56:51 Same in hg, btw. 18:56:53 ais523: it sounds like when you use a game engine of one genre to do something from another genre 18:57:06 itidus20: oh no, flashback 18:57:08 *flashbacks 18:57:17 I never did finish making that platformer in Enigma 18:57:19 the advantages of not coding it from the ground up diminish as you get further from the intended genre 18:57:21 I should, it'd be great 18:57:50 Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing. 18:57:50 im saying this as secondhand .. not so much first hand 18:57:54 (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 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 i know thats out of left field.. best ignore it 19:01:33 im getting way off the git topic 19:01:57 The topic should be UMLBox! :P 19:10:32 -!- zzo38 has joined. 19:11:24 hi how does clipboard workin Linux. 19:11:37 Strangely. 19:11:56 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 there's also a selection buffer, which fills when you drag your mouse over something 19:12:09 and you can paste it by middle-clicking 19:12:19 it's very good for quick pastes, but don't expect something you put on it to last 19:12:23 how do programs access the clipboard? 19:12:49 via X 19:13:03 there are actually something like nine clipboards, but only two are ever used 19:13:09 one of them is called PRIMARY, but I forget which 19:13:13 and I forget the names of the others 19:13:32 SECONDARY, TERTIARY? 19:13:50 I doubt they're all named like that, but presumably some of them are 19:14:02 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 (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 zzo38: that sounds about right 19:19:28 right but like, where are those 19:20:16 In the X server. 19:20:29 i.e. the giant pile of needless nonsense. 19:24:16 Yes, there is also Wayland, which fixes some things. 19:24:21 -!- nooga has joined. 19:24:39 I've got an undeniable proof that Notch's a real retard 19:24:52 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 actually, it's ambiguous 19:25:13 Why, what's wrong with C++'s compilation system? 19:25:21 C++'s design makes it very hard to write efficient compilers for 19:25:27 it is both ambiguous and unambiguous 19:25:36 I suppose he could be talking about delayed compilation? 19:25:41 Phantom_Hoover: Two words: header files. 19:25:41 a C++ compiler is generally significantly slower than a comparable compiler for another language 19:25:45 compare gcc to g++, for instance 19:26:05 pikhq_, two words which barely help explain anything? 19:26:35 Phantom_Hoover: basically, whenever you change an implementation detail of a class in C++ 19:26:41 everything that references that class needs to be recompiled 19:26:53 because it needs to use different memory offsets to access things like the vtables and fields 19:27:01 even if this is something that should be hidden by encapsulation 19:27:34 the result is that incremental compilation of C++ is really nasty to do, and doesn't even help much 19:27:38 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 With their only actual *relationship* being in *manually maintained* files that can be viewed as declaring an interface. 19:28:18 pikhq_: if the ABI was more resistant to changes in implementation details, there wouldn't be so much of an issue 19:28:25 pikhq_, exactly the same as C? 19:28:27 *the ABI were 19:28:33 Phantom_Hoover: Yes. It's a problem in C as well. 19:28:45 Phantom_Hoover: in C, it's not as bad because you can have a reasonably stable ABI between .o files 19:29:12 This thing makes it a royal pain to do a build system. 19:29:15 pikhq_, ais said C was faster. 19:29:27 Phantom_Hoover: C++ just makes the problem much more obvious. 19:29:37 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 ais523, you mean how calling a function is basically the same if it keeps its type? 19:29:59 It seems to have MIME types, and I don't need that 19:30:06 Phantom_Hoover: yes 19:30:16 the problem exists in both C and C++, but it's much easier to work around in C 19:30:51 ais523, because C++ does awful, awful things to the ABI for method calls? 19:31:06 That's an understatement. :) 19:33:00 How many 'awful's should there be? 19:33:09 somewhere between five and six 19:34:37 pikhq_: right but like... right now 19:34:41 how do I access the clipboard. 19:34:51 "in the X server" doesn't tell me how to get to it. 19:35:02 because I don't know anything about X. :P 19:35:18 CakeProphet: you can communicate with X directly, but you'd be mad to 19:35:23 so you use a library which abstracts away the details 19:38:45 ais523, you can? 19:38:46 How? 19:39:04 Phantom_Hoover: something like GTK or Qt almost certainly has an API for accessing the clipboard 19:39:12 and that's what people normally use to interact with X 19:39:18 perhaps even SDL does, although I'm not sure on that one 19:39:18 No, I mean communicate with X directly. 19:39:31 open a particular socket, do read() and write() to it 19:39:35 in a particular format 19:40:09 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 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:33 Bleh 19:41:59 Starting to wonder if I should have gotten a Kindle 19:42:08 answer: no 19:42:23 Reasoning? 19:42:45 Not worth the money. 19:44:00 Not sure that what I did get is necessarily better in just those terms 19:44:17 oh yeah Kindle is probably the best e-reader thingy. 19:44:32 I considered getting one but I don't really read enough to warrant the purchase. 19:44:36 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 I suggest you don't need it. I don't need it either 19:52:33 Internet outage... 19:52:35 elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P 19:52:37 Gregor: Or 19:52:39 Gregor: You just hg commit whenever no commands are running 19:52:41 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:52:44 Now to logread 19:53:03 18:50:37: Gregor: git is quite a brilliant VCS with quite a terrible UI. 19:53:03 18:50:54: pikhq_: it isn't quite a brilliant VCS 19:53:04 ais523++ 19:53:09 hey guys SCAPEGOAT HAVE I MENTIONED SCAPEGOAT 19:53:17 18:50:17: VCS epiphany: git is terrible :P 19:53:22 Gregor: git is pretty much exactly as terrible as hg :P 19:53:27 They're basically identical 19:53:34 Except that git's UI is a joke. 19:53:44 elliott: later I explain when I realised what exactly was wrong with git 19:54:00 before, I'd known there was something very wrong with it but couldn't quite put my finger on it 19:54:02 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 git has more infrastructure and popularity, though, so it wins out for me. 19:54:38 ais523: btw, are you implying that you'd only want to pull _parts_ of a commit from upstream? 19:54:46 elliott: not of a commit 19:54:49 because that's wrong in any DVCS; commits should be as small as possible 19:54:51 ais523: ah, ok 19:54:51 only some commits from a series 19:55:15 if I want to pull half a commit, it's because the person committing it didn't break it up enough 19:55:18 18:57:50: Deewiant: cherry-pick automates fetching the diff from a commit, applying it to your current branch head, and then committing. 19:55:18 gross super bad 19:55:23 and that's most easily done by pulling then half reverting 19:55:26 ais523: indeed (I do that a lot, but that's a personal deficiency) 19:55:38 (darcs actually has a UI for a half revert, so presumably they're aware that people often mess that up) 19:55:42 at least it's for mcmap, which has a proud tradition of terrible UI practices 19:55:46 erm, s/UI/development/ 19:55:56 if it builds, commit it... if you're too lazy to try and build it, commit it anyway 19:56:03 then push it :P 19:56:19 `addquote (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 590) (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 the second is arguably even more fun 19:56:44 19:24:39: I've got an undeniable proof that Notch's a real retard 19:56:57 my favourite of my Enigma levels is still Boulder Crossing, which they didn't accept 19:57:00 Notch is an idiot, but your grudge against him and all things Minecraft is really weird and really annoying 19:57:15 Do you have walls covered with anti-Minecraft propaganda written in 9 pt font in crayons 19:57:17 it's very nearly pure wiring, no Lua there at all 19:57:25 ais523: I haven't played that one, I don't think 19:57:26 although I needed to make a trigger control the existence of a grate 19:57:39 elliott: indeed, it isn't "public" as in the repo, because it wasn't accepted 19:57:43 but it's on mag-heut, let me dig up the link 19:57:49 19:24:52: 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 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 that's one of the least stupid things Notch has ever said 19:58:08 ais523: I probably won't play it now, but perhaps later 19:58:19 "Fun" in the sense that Brainfuck is fun, presumably. 19:58:33 no, fun in the sense of C++ sudoku 19:58:37 which is still the best programming game, ever 19:58:48 http://www.mag-heut.net/blackball/levels/submits/ais32_2.zip 19:58:52 Is that where you use C++ template metaprogramming to solve sudoku? 19:59:09 Gregor: It's where you use C++ template metaprogramming to solve anything. 19:59:18 Gregor: Or, more generally, accomplish any task that's trivial in a functional language in C++. 19:59:41 elliott: So, didja get UMLBox running? 19:59:47 Gregor: For instance: create a class maybe 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 So you have to rely on the standard casting to char-pointer and back. 20:00:09 Gregor: I got disconnected right as I was talking about it >_> 20:00:17 But 20:00:18 elliott: No hg merge problems = either everything is serialized, or no hg revert convenience :P 20:00:18 Gregor: Or 20:00:18 Gregor: You just hg commit whenever no commands are running 20:00:18 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 Gregor: I think sg is the nicest solution for the HackEgoWhatevers :P 20:02:14 OK, I'mma try and build umlbox. 20:02:26 elliott: None of that is about U--- yeah 20:02:27 well, even sg can't resolve an actual conflict without help 20:02:43 ais523: no, but for HackEgo, the merging mechanism is obvious 20:02:52 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 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 which, admittedly, is not an easy situation to resolve from inside the bot 20:03:34 Gregor: Better than the Nook 20:03:41 Also the iPad :-P 20:03:56 Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package? 20:03:57 what's wrong with the Nook? I have very little information on it, so I can't praise or bash it 20:04:00 I mean, apart from the kernel being newer. 20:04:02 and don't even know which to do 20:04:09 elliott: The kernel it builds has less gunk (so is faster) 20:04:15 The Nook is assuredly better than the Kindle. 20:04:18 ais523: pointless normal touchscreen display below the screen, so you have a nice glaring surface below your actual book 20:04:25 that's the main problem 20:04:25 elliott: That's olde nook. 20:04:30 Gregor: oh, it changed? 20:04:42 elliott: The new Nook (NOT the Nook touch) has a clever touchscreen, no backlight anywhere. 20:04:44 Erm 20:04:47 NOT the Nook color. 20:04:49 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:50 YES the Nook touch :P 20:04:53 whereas the Kindle doesn't even try to pretend 20:05:00 Fair enough :P 20:05:06 But at least the Nook supports ePub ... 20:05:11 is it rootable? 20:05:11 yeah, that's good 20:05:19 I kind of want a Kindle just so I can use the browser to IRC 20:05:25 ais523: Yes. Both are AFAIK, but Nook runs Android so that's nice ... 20:05:26 I mean, what other e-reader comes with free threegee internet? 20:06:14 Anyway, the best is (was) the IREX DR800. Which is why the company went out of business. 20:06:54 Gregor: Are there any relevant advantages to having it build a kernel over using the Debian package? 20:07:04 Ctrl+V: BEST KEY 20:07:07 elliott: The kernel it builds has less gunk (so is faster) 20:07:16 Gotta agree with that assessment of keys. 20:07:31 Oh, I missed that :P 20:07:37 -!- oerjan has joined. 20:07:43 strip init 20:07:44 echo init | cpio -H newc -o | gzip -9c > umlbox-initrd.gz 20:07:44 1332 blocks 20:07:44 cp -f umlbox-config linux-3.0.1/.config 20:07:45 cp: cannot create regular file `linux-3.0.1/.config': No such file or directory 20:07:53 Gregor: Your Makefile is missing a certain dependency :P 20:08:09 elliott: Shall I go back to the part where I said you need to `make nokernel` to build without the kernel? 20:08:16 I don't want to logread that far to copypasta. 20:08:18 Gregor: I want to build the kernel :-P 20:08:34 But you did miss the dependency on linux-3.0.1/Makefile ;-P 20:08:36 Oh; well you need to fetch and extract the kernel yourself, it just configures and builds it :P 20:08:43 SO USER-UNFRIENDLY 20:08:52 Like your FACE. 20:11:23 How is Linux even seventy megabytes compressed these days. 20:11:29 How can my internet connection even download that in minutes. 20:11:33 What is this life, what is this future. 20:11:55 The Future sure isn't what it's cracked up to be 20:13:29 Gregor: How minimal a kernel does it build? cba to look at your config :P 20:13:57 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 elliott: Not that small. 20:14:40 -!- monqy has joined. 20:14:42 It's about 3MB 20:14:52 It has no support for modules, swap or networking. 20:15:05 That's uncompressed though ... 20:15:12 No point compressing it really 20:15:18 Ohwait, it's at about 1.8M now apparently. 20:15:31 $ ./umlbox ls 20:15:31 /bin/sh could not be executed 20:15:31 I might have to actually fill out a chroot of some kind huh 20:15:49 You want ./umlbox -B ls 20:16:00 Ah :P 20:16:07 -B is the base directories (I'm considering making that the default and its inversion the option) 20:16:12 Yay, it works :P 20:16:17 Gregor: So I take it this is running on my irl system 20:16:25 Hmm, without /home mind you 20:16:43 hmm, I suspect UMLbox is actually entirely unlike the Secret Project 20:16:46 The base directories do not include /home. 20:16:57 does it do anything to help out reproducibility at all? 20:17:00 Gregor: Right 20:17:04 ais523: Not even a little bit. 20:17:11 elliott: You can use umlbox -B -f . ls 20:17:14 yep, indeed 20:17:22 $ ./umlbox -B -f sls . 20:17:22 Terminated 20:17:26 Nice error behaviour :P 20:17:38 . is .. quite the command ... 20:17:47 Oh, duh 20:17:53 lol, and "-B ." works 20:17:56 Just does nothing 20:18:00 SIGTERM is quite a rare signal to get, actually 20:18:03 But yes, its error output tends to be magnificent. 20:18:06 you pretty much have to set it off deliberately 20:18:06 Gregor: Oh, -f sls is what breaks it 20:18:21 ./umlbox-linux results in FUN 20:18:45 the sort of fun which involves a lot of angry dwarves? 20:18:47 elliott: Oh, I see what's happening, trying to mount a non-existing directory = craziness. 20:18:56 Gregor: I really like how -v fucks up my terminal and I have to "stty sane" afterwards :P 20:19:03 ais523: Precisely. 20:19:15 elliott: That's UML's fault, Idonno how to fix it >_> 20:19:19 hmm, is stty sane more or less severe than reset? 20:19:26 Gregor: a few ioctls should do it 20:19:26 Gregor: Store terminal state at startup, restore it at quit? 20:19:41 It's just a syscall or two 20:19:44 elliott: So much work for the mostly-lame -v option :P 20:20:06 chdir("/host"); 20:20:07 chroot("/host"); 20:20:09 Is there actually a host/host? 20:20:13 Oh, wait 20:20:17 That's an absolute path :P 20:20:25 SF(tmpi, setgid, -1, (childGID)); 20:20:25 SF(tmpi, setuid, -1, (childUID)); 20:20:25 This is set to a constant nowadays, right? 20:20:44 No, it's set to the caller's IDs. 20:21:13 Ah 20:21:29 * elliott recalls ubda as a UML thing... 20:21:59 ubda is where I put the configuration junk that the host communicates into the guest 8-D 20:22:08 Making your hard disk be a text file ... the best? 20:22:38 I find your host-client communications really wanting :P 20:22:50 Where is the ubda file on the host, though... 20:22:57 Oh, something in ~/.uml? 20:23:17 /tmp/.conf 20:23:40 So you have to configure it after it starts up but before your process gets executed? 20:23:44 Hardcore 20:23:59 umlbox writes the configuration file based on the command line arguments. 20:24:02 Oh :P 20:24:05 I thought it was a user-exposed hing 20:24:06 thing 20:24:12 It is not :P 20:24:17 Those aren't very safe /tmp filenames >_> 20:24:28 Sensitive coder problems 20:24:57 elliott: If the attacker already has your user account, you're pretty boned. 20:26:48 Probably :P 20:27:12 I was raised on a diet known as "ALWAYS FUCKING USE MKSTEMP OR YOU WILL IDE" 20:27:14 DIE 20:28:36 elliott: I typically use tempdir instead 20:28:42 which is an alternative way to make secure tempfiles 20:28:48 and one that's a little easier to mentally prove secure 20:29:01 Temporary files: Still the stupidest thing???? 20:29:10 I mean, system-made 20:29:15 the way Secret Project creates temporary files is really ridiculous 20:29:26 it creates a new mount namespace, then mounts a tmpfs there 20:29:28 and creates the files on that 20:29:31 haha 20:29:48 the files' filenames aren't expressible from outside the secret project 20:29:54 except sometimes via /proc hackery 20:31:20 ais523: I bet the secret project would be easy IN @ 20:31:34 hmm 20:31:39 that @ is capitalised, btw 20:31:41 I HAS KITTY 20:31:55 it'd be easy if it had sufficient permissions 20:31:56 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 it might need quite high permissions, though 20:32:07 Gregor: KITTYYYYYYYYYYYYY 20:32:13 Phantom_Hoover: GET MOUSE 20:32:15 UNITE WITH GREGOR KITTY 20:32:17 FRIENDSHIP FOREVER 20:32:18 (although, Secret Project requires root, oh does it really require root) 20:32:31 (but it drops permissions as quickly as it can; before becoming init, in fact) 20:32:36 sudo secret project 20:32:42 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 elliott: Well, she's sleeping right next to me. 20:32:46 oh, random fact: if you've ever been root, and drop your permissions, you then can't read your own procfiles 20:32:50 Oh, I was an idiot for think that would be funny 20:32:51 so you can emulate an entire system as an unprivileged user 20:32:57 s/user/piece of code/ 20:33:01 elliott: but the issue is that you have to emulate the entire system 20:33:03 ais523: You could use Linux's crazy set-capabilities bits to only get the strictly-required caps! 20:33:12 whereas secret project passes syscalls mostly unchanged, if it can 20:33:19 Gregor: I actually thought of that 20:33:28 ais523: Well, the secret project could give anything it runs the exact permissions it has 20:33:29 but I want to drop permissions totally 20:33:34 ais523: So you could easily pass on anything that you can do 20:33:41 partly to stop what's inside breaking out 20:33:53 because I'm not quite crazy enough to mount over / 20:34:01 ais523: I meant the set-capability bits on the file, as an alternative to setuid-root. 20:34:15 oh, it's currently not SUID, but designed to be run via sudo 20:34:19 Oh 20:34:19 ais523: So I don't see how the secret project would require any more permissions than what it's running 20:34:22 in @ 20:34:30 it has to drop permissions to a known UID anyway 20:34:34 because Linux doesn't yet have UID namespaces 20:35:32 and I'm not sure if people are planning to implement them 20:35:51 (you can namespace /etc/passwd easily enough, but that's not really the same) 20:36:11 Good ol kill(2) 20:36:31 -!- PatashuWarg has joined. 20:36:44 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 Gregor: gah, don't say that, do you have any idea how nondeterministic sending signals is 20:37:00 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 it took me hours to get that working 20:37:15 and I'm still not sure if it's fully working 20:37:17 but in @, you pass all your children the whole system _anyway_ (or well, the bits you have access to) 20:37:21 so you can easily transform it arbitrarily 20:37:28 ais523: umlbox makes signal isolation easy! :P 20:37:36 ais523: also, have you considered just writing a Linux syscall emulator? 20:37:44 elliott: yes, it seems like a lot /more/ work 20:37:49 I'm just emulating the syscalls that need emulation 20:37:53 ais523: like, getting a really simple xeightsix emulator 20:37:53 which is a relatively small fraction 20:38:00 and then implementing the syscalls you need in a really deterministic way 20:38:09 Gregor got JSMIPS running bash in days :P 20:38:11 I need /all/ the syscalls! 20:38:13 That would be like everything WINE isn't 20:38:23 even personality(2), apparently 20:38:37 monqy: guess what just got a major new release......... 20:38:39 I have to intercept requests to prevent them turning ASLR back on 20:38:58 elliott: hi 20:39:02 oh no now it depends on arrows.......... 20:39:07 well, OK, I gave up on the one that goes into virtual x86 mode 20:39:08 is it g pipe 20:39:21 monqy: fclabels, it is now at one point oh, and it has been like totally redone??? 20:39:23 oh 20:39:23 http://hackage.haskell.org/package/fclabels-1.0 20:39:32 and ptrace is obviously a complete nonstarter 20:39:39 "Arrows allow for effectful lenses, for example, lenses that might fail or use state." 20:39:40 huh,, 20:39:44 iw onder what KMETT Things of this 20:39:44 unless I reimplement it in terms of, umm, ptrace 20:39:47 and that'd be really confusing 20:39:53 "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:39:54 :DDD 20:40:33 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 Does fclabels stand for "Fuck labels!"? 20:40:51 Gregor: first-class labels 20:40:58 Gregor: it is pruely functional goto (no not really) 20:41:06 (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 ais523: why doesnt bochs work agin... 20:41:29 it is pretty detriministic........ 20:41:33 so how bad is the new fclabels.... 20:41:39 elliott: inside valgrind? 20:41:45 I don't see why it wouldn't work inside secret project 20:41:51 ais523: no i just mean 20:41:55 why is bochs not suitable for secret project 20:41:58 monim dont know.... qy 20:42:02 oh, I muddled it with boehm 20:42:09 I've never heard of bochs 20:42:13 ais523: what, yes you have 20:42:18 Gregor: tell ais523 he's heard of bochs, because he has 20:42:21 well, in that case I forgot 20:42:36 ais523: it's like qemu but.................. even more pure/deterministic/portable/slow 20:42:43 it's used for debugging OSes, usually 20:42:46 in the osdev community 20:42:47 speed is actually important 20:42:49 debugging and testing 20:42:56 ais523: well it's fast enough to run like old windowses 20:42:58 it doesn't need to run fullspeed (although sometimes it runs faster) 20:43:02 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 but fast enough that applications inside it are reasonable 20:43:12 I mean you couldn't boot any Ubuntu on it 20:43:21 but you could easily run a command-line Linux or maybe simple Xorg linux??? 20:43:34 could it run pulseaudio? 20:43:44 at a reasonable speed? 20:43:51 ais523: I think it emulates, like, a SoundBlaster, but probably, but why are you using pulseaudio 20:43:52 admittedly, secret project can't do pulseaudio yet 20:43:59 because other things have dependencies on it 20:44:03 you should try bochs though it might really help you out 20:44:09 I mean, I don't know what your problems with qemu were 20:44:13 but bochs is a lot more... predictable? than that 20:44:14 and stricter 20:44:30 telling you my problems with qemu would give too much away 20:44:35 fair enough 20:44:37 but I will say, they were unrelated to emulation accuracy 20:44:42 but try bochs; it's in Debian and everything 20:44:46 and widely-used 20:45:01 ais523: oh, you'll want to copy its default configuration file and modify it, probabl 20:45:01 y 20:45:03 it's quite a pain, but 20:45:13 copying it to save on having to redownload it? 20:45:15 ais523: were they related to determinism? 20:45:21 ais523: no, to modify it 20:45:29 it's in /usr/share somewhere 20:45:34 I don't think either yes or no would be a non-misleading answer 20:45:42 so I just won't answer you 20:45:53 heh 20:46:00 in fact, I'm not entirely sure, offhand, which is technically correct 20:46:02 monqy: the new fclabels expor names are uglier :( 20:46:17 yep :( 20:46:47 gets, puts, modify <-- conssisistent 20:47:33 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 Bochs is a HUGE pain to configure. 20:48:28 But it can run AT&T Unix System V, so it's totally worth it. 20:48:36 X-D 20:49:10 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 zzo38: okmij.org, by any chance? 20:50:05 hmm, arguably UNIX echo is more like Haskell return 20:50:06 -!- sllide has joined. 20:51:07 Yes that is the domain name as it turns out 20:51:32 zzo38: yep, that's Oleg's popular piece on it 20:51:45 elliott: /the/ Oleg? 20:51:51 ais523: yes, /the/ Oleg 20:51:55 well, /the/ relevant Oleg? 20:51:58 hmm, fair enough 20:52:03 that's a weird analogy to be using 20:52:03 ais523: The Kiselyov one 20:52:06 not the Subleq one 20:52:14 although I'm not surprised he uses weird analogies 20:52:22 given what his code is like 20:52:28 ais523: eh? 20:52:33 ais523: I think you're thinking of the Subleq Oleg 20:52:47 ais523: I'm talking about the Haskell-celebrity one 20:52:50 yes, so am I 20:52:59 his code is perfectly readable :P 20:53:01 I thought his code was famous for being very efficient and unlike what anyone else writes 20:53:06 ais523: but anyway, it's not "an analogy", http://okmij.org/ftp/Computation/monadic-shell.html 20:53:10 not unreadable, just /weird/ 20:53:20 ais523: Well, he's mostly famous for applying the type system to everything 20:53:34 his Haskell style isn't the "standard" style, I suppose, but it doesn't really feel foreign 20:53:48 bleh, I don't think is-equivalent-to can be typed with compose 20:53:52 or at least, I can't guess the binding 20:53:56 anyway, it's more of a correspondence than an analogy 20:53:58 ais523: eh? 20:54:00 I may end up having to write Agda 20:54:10 ais523: what language are you talking about 20:54:11 oh 20:54:14 compose key 20:54:22 oh, I see 20:54:26 ais523: you don't need to use the compose key for Agda 20:54:29 "typed with compose" almost has a computer-science meaning 20:54:34 oh so the subleq oleg and the real oleg are different people? this glads me. 20:54:39 ais523: agda-mode automatically turns on a modified TeX input method 20:54:43 but it's not one that makes a lot of sense 20:54:51 well, I thought you meant point-free style 20:54:55 elliott: hmm, what if I need to type random bits of Agda when Emacs isn't open 20:54:58 but yeah, no compose needed for agda 20:55:02 say, into IRC 20:55:13 ais523: you suffer, or just type it in emacs then copy it over 20:55:20 also, I don't really like texish input methods 20:55:32 ais523: Agda has so many special characters that there isn't much choice 20:55:38 I've used them before now when writing unicode-heavy stuff 20:55:40 but they annoy me 20:55:44 -!- BeholdMyGlory has quit (Remote host closed the connection). 20:55:49 I actually find LaTeX a little frustrating to type for the same reason 20:55:52 besides, coding Agda without using agda-mode or a (non-existent) equivalent is... not nice for humans 20:56:03 (it's half language mode, half interactive proof-ish system) 20:56:20 (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 this is why I thought efficiently compiling Agda was a weird thing for my coworker to study 20:56:43 it's not as if Agda programs are mostly designed to be run 20:56:49 you just write them to verify they compile 20:56:52 then you go do something else 20:56:57 ais523: umm, writing a fast Agda compiler, or writing an Agda compiler that produces fast code? 20:57:03 ais523: You modify ~/.XCompose 20:57:15 ais523: there is actually a surge of Agda programs you actually want to run; there's even a webframework 20:57:29 ais523: but they're all very, very slow 20:57:35 elliott: Agda compiler that produces fast code 20:57:37 ais523: you end up writing the performance-critical code in Haskell and FFIing to it from Agda, usually 20:57:42 (cue laugh track) 20:57:48 Deewiant: thanks for your exciting mycology messages btw :P 20:58:36 Thanks for either pointing me to a new interpreter or reminding me about one I'd forgotten about 20:58:45 I saw it earlier but I thought it was the same as zfunge 20:59:34 elliott: they wrote a parser for expressions along the lines of + - * / numbers and parens 20:59:41 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 with five operands, the resulting program only took a day or so to run 20:59:52 they gave up waiting with six 20:59:56 Deewiant: It is the same as zfunge, just not the same as zbefunge 20:59:58 apparently they were happy with the reuslts, though 21:00:06 Deewiant: How did you get a hold of zfunge? The link on http://flourish.org/zbefunge/ is broken 21:00:11 (that is, the parser was written in Agda, and this is with the optimising compiler) 21:00:15 elliott: Wayback machine 21:01:04 elliott: And no, that calls itself zedfunge, that's a different thing from zfunge 21:02:07 where nextInsPos' ip 21:02:08 | fs !@@ (ip ^. ray) == space = [...] 21:02:08 | not (isStringMode ip) && fs !@@ ray ip == semicolon = 21:02:10 oh dear 21:02:46 Also, random numbers are available only in FIXP, can't really do much about that 21:03:16 If you want to write a ?-using random generator with the full 2^32 range, go ahead 21:04:32 Is it possible for software to be proprietry and open source? 21:05:11 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 that's not open source 21:05:25 it's known as "shared source"; Microsoft have some products like that 21:05:30 Oooh 21:05:34 and UNIX was like that for years 21:05:38 don't... don't do that, Taneb :P 21:05:43 before it escaped into almost the public domain 21:06:04 well, parts of it, anyway 21:06:16 with both BSD and OpenSolaris, there isn't a lot left 21:06:26 (although SCO managed to confuse everyone as to whether OpenSolaris was legal or not) 21:09:45 Taneb: your new language is _clearly_ misnamed. and you even admit to knowing why. hth. 21:10:09 If you can think of a better name, please tell me 21:10:21 Istanbul, of course. 21:10:31 It's so obvious 21:16:40 copumpkin: Is this the Haskell confession booth? 21:16:45 ? 21:16:53 this is the haskell showbag booth 21:16:55 step right up 21:17:16 copumpkin: I've Haskell-sinned, y'see. 21:17:25 Or, well, am planning to. I can get preemptive forgiveness, right? 21:17:26 sir you look awfully lucky if i have ever seen a lucky looking man it is you 21:17:38 elliott: sure, go ahead 21:18:38 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:18:40 BUT I'M DOING IT ANYWAY 21:18:52 lol 21:18:53 go ahead 21:19:06 But I _feel_ _bad_. 21:19:11 So bad. 21:19:43 why does my heart-- feeel so bad 21:19:48 why does my soul 21:20:34 itidus20: too much pasta. hth. 21:21:08 Anyway it's edwardk's fault for making the StateT modify and put functions in data-lens return the modified value. 21:21:11 ALL. HIS. FAULT. 21:22:02 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 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:05 lol.. 21:24:11 no i seem to be ok 21:24:42 elliott: i still don't see what's so bad about that you can just discard them right??? 21:24:53 elliott: or is this all just about going against your convention 21:25:33 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:35 and 21:25:37 if I just do 21:25:41 "foo [percent]= blah" 21:25:42 in a do block 21:25:43 it warns me 21:25:46 because OMG UR THROWING IT AWAY 21:25:48 and tells me to do 21:25:51 "_ <- foo [percent]= blah" 21:25:53 someone once told me that there are a surprising number of chemical paths to creating alcohol 21:25:54 and i am like FUCK OYU........ 21:26:12 itidus20: it's a pretty simple chemical 21:26:36 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:26:52 monqy: tlel us..... 21:27:47 monqy: What is it? 21:27:48 Dangit, someone needs to remind me to refund that person 21:27:52 basically there are two columns, one with sequencing operators and the like, and one with everything else, and that's about it 21:27:54 CH3CH2OH 21:28:10 monqy: showe use 21:28:18 will contrive example 21:29:44 one problem with contriving example is im so bad at it 21:29:46 hlep 21:30:37 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 monqy: a simple, gussing game??? 21:30:50 or... 21:30:52 i dontnete know.. 21:30:57 some list monad code to do pythagoran triples 21:34:49 > 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 : parse error on input `;' 21:34:58 erm 21:35:11 > 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 [(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:20 monqy: hepl 21:35:44 hum i feel something missing 21:35:47 im so bad 21:35:56 oh right 21:36:03 monqy: hvae you writen exmaple yet 21:36:17 no ;_; ;-; 21:36:22 monqy: try,,, 21:36:57 > 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 [(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 oerjan: i don't think you need sqrt... 21:37:37 iirc there's a very easy wayto do it 21:37:49 List comprehensions 21:37:49 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 pythags = [ (x, y, z) | z <- [1..], x <- [1..z], y <- [x..z], x^2 + y^2 == z^2 ] 21:37:53 This can be directly translated to the list monad: 21:37:53 import Control.Monad (guard) 21:37:53 pythags = do 21:37:55 z <- [1..] 21:37:57 x <- [1..z] 21:37:59 y <- [x..z] 21:38:01 guard (x^2 + y^2 == z^2) 21:38:03 return (x, y, z) 21:38:15 elliott: i'm trying not to iterate across all z's duh 21:38:19 oh 21:40:04 i guess they haven't put monad comprehensions in lambdabot yet... 21:40:27 im a nomod camprenson 21:40:43 > [x | x <- Just "test"] 21:40:44 Couldn't match expected type `[t]' 21:40:44 against inferred type `Data.Mayb... 21:40:58 monqy: fuck it, im delaying the lens conversion 21:41:00 too much work 21:41:05 :( 21:41:46 ?src IO fail 21:41:46 fail s = failIO s 21:41:49 ?src failIO 21:41:50 failIO s = ioError (userError s) 21:41:55 ?src userError 21:41:55 Source not found. Maybe you made a typo? 21:41:59 >_< 21:42:00 elliott simply cannot focus on his lens work 21:42:09 hey oerjan how would I catch _just_ pattern matching errors 21:42:12 in... actually in StateT 21:42:18 but 21:42:22 only monadic pattern match errors 21:42:24 i.e. do notation 21:42:32 ?src StateT fail 21:42:33 Source not found. Are you on drugs? 21:42:36 harr harr, *focus* on *lens* work 21:42:36 he;p 21:42:42 olsner: huk huk 21:43:06 elliott: put it above something without IO? 21:43:19 oerjan: I need IO at the bottom 21:43:30 oerjan: if I put MaybeT at the front all hell breaks loose, I really need it directly in StateT IO 21:43:35 to avoid a mess of typeclass slowdown 21:44:40 -!- Taneb has quit (Read error: Connection reset by peer). 21:45:47 what about a newtype with its own fail definition? 21:46:10 oerjan: nope. (well, yes. but: no, it's not an option) 21:46:18 I just need to know what the exception looks like :P 21:46:19 * elliott tests it 21:48:01 is there any sort of lambda-case or lambda-if in (ghc) haskell 21:48:02 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 user error (Pattern match failure in do expression at :1:29-34) 21:48:04 ok well that's a start 21:48:05 monqy: no 21:48:17 :( 21:49:39 monqy: it's proposed, but... 21:49:39 elliott: Is there any recommended way of doing configurationy stuff with tup 21:50:22 Deewiant: YAML 21:50:30 (no I don't know what you're talking about) 21:50:52 Yes, that was rather obvious 21:51:14 Deewiant: tup.config support is built in, so yes. 21:51:18 Deewiant: Or do you mean autoconf 21:51:29 elliott: I mean something more convenient than editing a file 21:51:34 Deewiant: Kconfig 21:51:41 Deewiant: The format is deliberately identical (gittup uses this extensively) 21:51:54 How does one use Kconfig if one is not Linux 21:52:09 The same way BusyBox, buildroot, ..., do 21:52:17 Deewiant: If you want autoconf-style "find the compiler and shit", you can actually use autoconf fairly trivially, FWIW 21:52:36 Yeah, autoconf is surprisingly general. 21:52:38 autoconf isn't Windows-friendly 21:52:43 True, it isn't 21:52:47 I wonder if Kconfig is 21:52:49 Windows users are used to pain though ;-) 21:52:53 Deewiant: Less so. 21:53:01 Also, Windows isn't development-friendly. 21:53:05 Deewiant: You may want to look at the http://gittup.org/ repositories for a large-scale Kconfig/tup usage 21:53:42 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 pikhq_: Are you sure, like, the Qt Kconfig interface isn't portable? 21:57:01 The tup kconfig doesn't even build the Qt interface :-P 21:57:15 Deewiant: You don't need the modified kconfig 21:57:18 That's just a gittup thing 21:57:41 Deewiant: There's no special tup Kconfig integration, it's just that Kconfig "happens to" output in the exact tup.config format 21:57:54 oerjan's dwarf died ;_; 21:58:11 I know that 21:58:17 Right 21:58:26 I just don't know anything about Kconfig other than that it's used by Linux 21:58:52 This is the first time I've run into it as a separate project :-P 21:58:54 oh noes 21:59:02 Deewiant: You've never ever used BusyBox? 21:59:05 Nope 21:59:29 Other things use it too, I just can't recall what :P 21:59:37 Deewiant: Anyway, the syntax is pretty nice 21:59:47 OGDL-esque 21:59:48 Well, maybe I've used it unknowingly but I haven't configured it or anything 21:59:50 Buildroot does too, IIRC. 21:59:57 fizzie: I mentioned that, but that's almost the same thing as busybox 22:00:14 config 64BIT 22:00:14 bool "64-bit kernel" if ARCH = "x86" 22:00:14 default ARCH = "x86_64" 22:00:14 ---help--- 22:00:14 Say yes to build a 64-bit kernel - formerly known as x86_64 22:00:14 Say no to build a 32-bit kernel - formerly known as i386 22:00:18 config ARCH_DEFCONFIG 22:00:18 string 22:00:20 default "arch/x86/configs/i386_defconfig" if X86_32 22:00:24 default "arch/x86/configs/x86_64_defconfig" if X86_64 22:00:26 config GENERIC_CLOCKEVENTS_BROADCAST 22:00:28 def_bool y 22:00:30 depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 22:00:32 That's basically the Kconfig format :-P 22:00:47 "In fact, all you can really do with gittup.org is recompile things really fast and play nethack." :D 22:01:13 and you're all out of things to recompile, i take 22:01:25 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 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 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 Deewiant: If you want everyone else to have to find those same lines to compile them, sure 22:02:46 So, no :-P 22:02:50 Deewiant: If Kconfig is longer than your project, you don't need that much configurability. 22:03:36 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 In fact, he doesn't even like words 22:03:54 What's "that much configurability" :-P 22:04:00 I just think that convenience is nice 22:04:26 Deewiant: Ask pikhq_ for his tup+autoconf thing 22:04:29 And I very rarely build stuff on Windows these days but I still think it's worth supporting 22:04:36 I modified it to automatically do "tup init" and a few other things, but oh well :-P 22:04:43 Deewiant: It was, well, the best autoconf on Windows could get 22:04:47 Because it ran in under a second on Linux, rather than multiple seconds 22:04:57 heh 22:05:04 And it outputted in the correct format and all 22:05:11 That's the most convenient way currently, IMO 22:07:30 http://pulseaudio.org/ticket/672 22:08:26 maybeShiro m = m `catchShiro` \(e::IOException) -> if isUserError e then reflect else io $ throwIO e 22:08:28 oerjan: Rename my function, yo 22:08:47 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 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 Deewiant: You want to read the entire thread "Support for -DFOO=@FOO" 22:16:21 It's only two days old 22:16:33 Basically, gittup does this by patching gcc, but there's an obvious way to do it without 22:16:48 Deewiant: You probably don't want to turn it into an .h because that makes the dependencies less fine-grained 22:16:54 Er, I think ;-) 22:17:03 Howso 22:17:19 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:24 tup-users is down, hoody hoo 22:17:32 Oh, F5 fixed it, fine 22:17:58 pikhq_: Well, it's easy enough to 22:18:00 Though there's certainly better ways of handling it, just nothing that's already written for you. 22:18:03 : tup.config |> sed |> config.h 22:18:03 elliott: horriblyBrittleFunctionWhichWillBreakIfGHCEverChangesItsPatternMatchErrorStringsShiro 22:18:10 oerjan: um, no it won't? 22:18:16 oerjan: I gave the entire implementation there 22:18:25 as long as do notation pattern matches "fail" on failure, which they will 22:19:01 oh i guess there won't be userErrors unless you make them 22:19:24 elliott: Or : foreach *.c.in |> tup varsed %f %o |> %B.c 22:19:24 *other userErrors 22:19:24 :P 22:19:42 pikhq_: or that, yes 22:19:46 Ah right, tup varsed, I forgot about that 22:19:46 :P 22:20:17 Yeah, you can have a config.h.in pretty easily with that 22:20:21 Albeit redundantly 22:20:30 You could also generate config.h.in from config.tup and then varsed it :-D 22:21:08 Even if it's somewhat redundant it's better than splitting the configuration into two places 22:21:34 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 Now to BRB and thus deprive Deewiant of my wisdom temporarily 22:22:21 Am I a bad person for using $(CC) instead of !-macros 22:23:44 you are not a bad person sir 22:24:06 indeed, he barely scratches 54 microhitlers 22:24:35 or wait is that nano 22:24:42 pico 22:24:52 let's not overdo it 22:25:22 if one microhitler is killing a few dozen people... 22:25:36 yeah even my left shoe registers on the picohitler level 22:25:40 Deewiant: You want ! macros. 22:25:57 Why 22:26:11 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 http://photoshoplooter.tumblr.com 22:26:29 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 Over and over and over again. 22:26:35 I just type $(CC) $(CFLAGS) -c %f -o %f 22:26:38 some of these are not completely terrible 22:26:41 And I'm fine with that 22:27:13 Congrats, you're going to be breaking some entirely reasonable expectations. 22:27:21 Which are? 22:28:04 elliott: selfAwareShiro 22:28:06 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 (it reflects upon its actions) 22:29:11 especially the bad ones 22:29:41 I fail to see the "giant piles of boilerplate" thus far 22:29:50 But hmm, tup reads environment variables for that stuff? 22:29:58 No, but autoconf does. 22:30:04 I don't have autoconf. 22:30:08 And I won't. 22:30:34 Welp, you get to redo its functionality. 22:30:40 Why. 22:31:19 Though, not much needs to be done for anything well-behaved. 22:32:50 pikhq_: umlbox is so much better than tup 22:33:41 Gregor: umlbox does something *entirely different* from tup. 22:33:45 But umlbox is pretty neat. 22:35:57 pikhq_: Dude, oranges are so much better than apples. 22:36:41 oh, UML stands for usermode linux, not UML 22:37:10 Yes, it's the acronym expansion that doesn't summon much vomit. 22:37:12 olsner: The good UML, not the lame UML. 22:38:04 > 1/1.7 22:38:05 0.5882352941176471 22:38:30 though, if there was a way to apply UML for this problem the result might actually be interesting 22:39:29 uniform modeling linux 22:41:30 Oh god now 22:41:32 Erm 22:41:38 Oh god no (odd typo) 22:46:44 Am I a bad person for using $(CC) instead of !-macros 22:46:52 Yes 22:46:57 I just type $(CC) $(CFLAGS) -c %f -o %f 22:47:04 You really, really want to use the ^^ syntax to give it a prettier output 22:47:08 That's basically idiomatic 22:47:09 No, I don't 22:47:10 erm 22:47:11 That's basically unidiomatic 22:47:12 What you're doing 22:47:20 Deewiant: Yes, you do 22:47:27 It prints the real command on any error 22:47:35 Oh, okay 22:47:38 Then I do 22:48:08 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 You just want to list the files needing compiled, with the cc rule 22:48:26 And then either an ld rule if it's a binary or a different one if it's a library, etc. 22:48:45 Yeah but right now I only have one directory 22:48:49 YAGNI etc. 22:49:04 Deewiant: It's like writing a C program without any functions because you only call them once 22:49:19 It's like, what, fifty bytes added in total to convert it to using rules? :P 22:49:35 It's a bunch of cognitive overhead to look at the rule syntax etc 22:50:00 Deewiant: That's a typical "I don't know the language so I'll use it unidiomatically" argument :-P 22:50:20 ": foreach a.c b.c c.c |> !cc |>" is not hard to understand by any stretch 22:50:28 And the rule-defining syntax is ... basically identical to the syntax you're using now? 22:50:39 elliott, Phantom_Hoover, husup 22:50:43 date 22:50:48 -!- nooga has quit (Ping timeout: 240 seconds). 22:52:39 elliott: If "cc -c" is CC, what's "cc -shared" 22:52:57 Deewiant: A different action to compiling a C file 22:53:10 Or, wait, no 22:53:11 elliott: I mean, what to call it in ^^ :-P 22:53:14 I forgot what -shared does :-P 22:53:21 elliott: Output a .so 22:53:23 Deewiant: I'd call it LD 22:53:23 It makes a .so out of *.o 22:53:36 The .so extension should make it obvious 22:53:49 Since it's ^ LD [percent]o^ for linker things by convention 22:56:25 elliott: It was 218 bytes added 22:57:08 Deewiant: Oh no, it's zero point zero one percent of a floppy disk 22:58:15 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 It's fifteen percent of an IP packet! 22:58:31 Or an MTU or whatever the correct term is 22:59:06 `addquote 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 591) 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 BAD: U says atan(2348.2368) isn't 89.9756 23:00:11 Deewiant: Precision requirements a little exacting there 23:00:34 It's the correct result, better give it 23:00:48 > atan(2348.2368) 23:00:50 1.5703704753903236 23:00:52 Deewiant: Do you want a precise result for sqrt two as well? 23:01:14 -!- SimonRC has joined. 23:01:21 > atan(2348.2368)*(180/pi) 23:01:22 89.97560051181826 23:01:33 Oh, so that's what's wrong :-) 23:01:38 elliott: I allow arbitrary rounding I think 23:01:48 Deewiant: Fair enough 23:02:01 At least for some reason some of them allow "0.1234 or 0.1235" 23:02:02 you won't get a rational answer for the sqrt of a prime 23:02:22 oh delete that remark 23:02:25 what i mean to say is 23:02:43 you will get either a rational or irrational answer for the sqrt of a prime 23:03:45 itidus20: do you wish to delete your last remark and undelete your first one? ;P 23:04:10 as it, whether you knew it or not, was entirely correct 23:04:59 cool 23:07:15 degree :: (Double -> Double) -> (Double -> Double) 23:07:15 degree f = (/pi) . (*180) . f 23:07:22 I wonder if (times (hundredeighty/pi)) would be better 23:08:56 i suppose neither method is guaranteed to give the best answer for every float 23:09:35 Dammit Deewiant, Mycology sucks and FIXP sucks and YOU suck 23:09:42 I also blame you for FIXP, completely unreasonably 23:09:43 HOW DOES IT FEEL 23:09:59 I don't see why you're finding FIXP so difficult :-P 23:10:23 Deewiant: I've worked on it for about ten minutes 23:10:26 SO DIFFICULT 23:10:44 BAD: b6A isn't 2 23:10:45 elliott is a noob. 23:10:47 Deewiant: Oh what, it's bitwise? 23:11:01 I remember nowt 23:11:36 I should really capalise shiro 23:11:38 ... 23:11:39 cabalise 23:12:19 GOOD: b6A is 2 23:12:19 Hooray 23:13:02 Deewiant: I wish you printed out the result you get when it's wrong :-P 23:13:32 So do others 23:13:55 It's too much of a pain 23:14:01 Deewiant: Clearly you need to rewrite Mycology to be modular and object-oriented 23:14:06 Or just make it generated 23:14:13 Why the hell did you hand-write it anyway :-P 23:14:56 Why not 23:15:19 I wonder if it's the largest funge ninteyeight program 23:15:21 Probably 23:18:15 Rsswssw 23:18:39 sebbu: hi 23:21:22 UNDEF: 2aaaa****J pushes 0 23:21:32 Deewiant: Help what is even going on I don't even remember what the FIXP spec says, maybe I should read it 23:22:44 > asin 20000 23:22:45 NaN 23:22:52 > asin 20000 :: Complex Double 23:22:53 1.5707963267948966 :+ (-10.596634732471074) 23:23:27 Oh 23:23:35 How the hell would you have a fixed-point complex funge 23:24:25 You wouldn't with FIXP, at least 23:25:58 Wow, nasty thunderstorm ... 23:26:27 I am asleep as of now --> 23:28:47 How can I do compose of two arguments in Haskell? 23:32:39 zzo38: could you rephrase that? 23:32:57 Don't worry I rephrased it properly on #haskell channel 23:33:03 ah 23:35:24 Damn you thunderstorm. 23:35:28 My kitty does not like thunderstorms. 23:35:57 Awwwwwwwwwwwwwwwwwwww 23:37:53 * Phantom_Hoover → sleep 23:37:58 Phantom_Hoover: YOU ABANDON ME 23:38:00 IN MY FINEST HOUR 23:38:13 HANDLEKINDLED CURSES YOU 23:38:19 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:40:07 Phantom_Hoover: OK DONE 23:48:41 -!- sllide has quit (Quit: Leaving). 23:54:35 -!- Phantom_Hoover has quit (Quit: Leaving). 23:58:19 Where is that goddamn execution chamber. 23:59:44 jesus christ we're rich