00:02:37 -!- MSleep has joined. 00:03:31 hi 00:12:47 -!- kmc has joined. 00:16:33 -!- sllide has joined. 00:26:07 elliott: I'm not drunk at all 00:26:29 -!- sllide has quit (Read error: Connection reset by peer). 00:26:52 Suuuure 00:26:58 i'm not as think as you drunk i am 00:27:47 elliott: hey. How old are you now, relative to how old you were five years ago? 00:28:01 tswett: Six years older. 00:28:15 Wow. That's pretty old, comparatively speaking. 00:28:27 Six years. I can barely believe it. 00:28:39 So much time has passed in those past five years. 00:29:57 damn right it has 00:29:59 Yes. 00:35:44 oerjan: what's the thing with (<*>) but no pure again? 00:35:47 (,) without Monoid? 00:35:51 s/w/W/ 00:36:56 i'm not sure that has <*> 00:37:10 What was it then? 00:37:12 You thought of something :P 00:37:22 it had Functor, but not Applicative 00:37:34 What was the thing with ap but not prue 00:37:35 pure 00:37:37 Map? 00:37:41 I think it was Map. 00:37:48 hm maybe 00:38:11 because it's like ziplist except you cannot make repeat 00:40:53 I'm so glad #haskell aren't watching, they think all these smarts are me. 00:44:36 What does Maybe correspond to in Curry-Howard? It seem to me, you can have (a -> Maybe b) since the function can be (const Nothing); does that mean anything in intuitionistic logic or other logic? 00:45:12 But you don't have (Maybe a -> a) or (Maybe a -> b) 00:45:39 in some sense, it represents a partial decision of b 00:45:53 it can say "yes b" or "I don't know" 00:48:46 How many fixed-precision binary digits do you need to represent every double 00:49:57 1079 00:50:03 -!- evincar has joined. 00:50:08 Jafet: Really? 00:50:12 That's a lot of binary digits. 00:50:30 People use doubles for a reason 00:50:41 you need to be able to represent the largest double, and the smallest 00:50:54 lots of digits between those 00:50:57 Jafet: How many after the... uh, binary point? 00:51:01 oerjan: Well yeah. 00:51:22 Probably 565. 00:51:55 :t const Nothing 00:51:56 forall a b. b -> Maybe a 00:52:27 zzo38: it would seem that Maybe a corresponds to a trivially true proposition, then 00:53:01 not really, it's just not as informative as Dec a 00:53:02 it's basically Either b a with b set to () or True 00:53:18 :t (flip Maybe) id 00:53:18 Not in scope: data constructor `Maybe' 00:53:20 :t (flip maybe) id 00:53:21 forall a. a -> Maybe a -> a 00:53:33 copumpkin: um the function Nothing is a proof of Maybe a for all a 00:53:43 @pl (flip (flip maybe) id) 00:53:43 maybe id 00:53:50 oerjan: yes but in a higher-order sense... 00:53:55 it's a partial decision procedure 00:53:57 @pl (flip $ (flip maybe) id) 00:53:57 flip (flip maybe id) 00:53:58 http://cl.ly/100S3t0i062c3q3Z083O :O 00:54:06 @pl (flip maybe) id 00:54:06 flip maybe id 00:54:07 oerjan: you might have 00:54:17 oerjan: imperfectPrimalityChecker :: (p :: Integer) -> Maybe (IsPrime p) 00:54:19 data Dec a = Yes a | No (Not a) 00:54:24 if it says it's prime, it's definitely prime, but if not, it might still be prime 00:54:29 that's the ideal 00:54:55 but sometimes you can't go that far, so Maybe gives you a definite yes, but not a definite no 00:55:20 say for example you have a statement in peano arithmetic 00:55:48 well, with presburger arithmetic 00:56:09 you'd have (s : PresburgerStatement) -> Dec (reify s) 00:56:20 Madoka-Kaname: you may be looking for fromMaybe 00:56:21 (s : PeanoStatement) -> Maybe (Dec (reify s)) 00:56:24 that's the best you can do 00:56:28 according to godel 00:56:30 :P 00:56:34 Jafet: The reason I asked was that I receive some data in a fixed-point format but some in doubles... eurgh 00:56:46 And it feels wrong just dividing the fixed-point format, even though it was almost certainly created from a double 00:57:06 Wait, what? 00:57:14 Where are you getting data from? 00:59:03 -!- ive has quit (Ping timeout: 276 seconds). 01:01:43 And for what, I might ask. 01:02:45 Are we verifying CERN research data? 01:02:59 Is that what my half-assed log-skimming should lead me to believe? 01:05:19 Sometimes my dreams fork and end in two different ways independently of each other 01:05:29 -!- nooga has quit (Ping timeout: 255 seconds). 01:07:13 I frequently have lucid dreams. 01:07:18 In a recent one I tried to move my body in the real world to get my phone call a friend of mine. 01:07:26 I wanted to tell him about the things I was seeing in the dream world. 01:07:35 It didn't work though. 01:08:00 it's when you _receive_ such a phone call while awake you should be worried. 01:08:17 Sometimes my dream I try to move my real body (but doesn't work) even though I am not trying to try to do that, it is not what I am wanting to do, etc 01:11:30 oerjan: What would be worrying? 01:11:36 It probably wouldn't even make sense. 01:11:41 Hmm... actually, I think doubles might be able to precisely represent every value in the range I'm dealing with. If I have a 32-bit int n, will n/32 be precisely representable as a double for all n? 01:11:50 I bet Jafet knows! 01:12:12 Sometime I'd like to see a "floating-point explorer". 01:12:29 Something that lets you drag a panel to see ranges of numbers and which ones are precisely representable. 01:12:30 -!- ive has joined. 01:13:44 elliott: if you can represent n accurately as a double, then you can represent n/32. the exponents for both will be far from the boundaries. 01:13:53 oerjan: Right. 01:14:03 oerjan: I'm just really ridiculously paranoid about floating point :) 01:14:23 > [0.1, 0.2 .. 0.3] 01:14:24 [0.1,0.2,0.30000000000000004] 01:14:26 It's useful for a number of things. 01:14:27 ;__; 01:14:46 (Sorry, that was awful.) 01:14:50 (from the current haskell-cafe discussion about Enum 01:14:55 oerjan: yeah 01:14:56 ) 01:15:04 im hide in your parens 01:15:07 : ) 01:17:53 > 0.3 01:17:55 0.3 01:18:21 > 0.30000000000000003 01:18:23 0.30000000000000004 01:18:26 > 0.30000000000000002 01:18:27 0.30000000000000004 01:18:30 > 0.30000000000000001 01:18:31 0.3 01:18:38 :'( 01:18:45 im doth cry 01:19:23 > nub (replicate 5 (0/0)) 01:19:24 [NaN,NaN,NaN,NaN,NaN] 01:19:48 im cry 01:20:07 > sort $ [1..5] ++ replicate 5 (0/0) 01:20:09 [NaN,NaN,NaN,NaN,NaN,1.0,2.0,3.0,4.0,5.0] 01:20:15 hm 01:20:37 > sort $ [1..5] ++ replicate 5 (0/0) ++ {6..10] 01:20:37 : parse error on input `{' 01:20:43 > sort $ [1..5] ++ replicate 5 (0/0) ++ [6..10] 01:20:44 [6.0,7.0,8.0,9.0,10.0,NaN,NaN,NaN,NaN,NaN,1.0,2.0,3.0,4.0,5.0] 01:20:51 XD 01:21:27 Is NaN supposed to be stable in sorts like that? 01:21:35 Is that what NaN is for in sorting? 01:21:53 It seem wrong 01:22:11 ...this is showing how Nan's Eq and Ord instances don't obey haskell's assumed laws 01:22:19 *NaN 01:22:34 Yes; it is not following proper Ord laws when NaN is involved. 01:22:49 floats shouldn't be Eq or Ord really 01:22:56 well ok maybe Ord but Eq is just wrong... Ord requires Eq though 01:23:12 in ML they have a whole type infrastructure just to disallow equality on floats :P (since they have no typeclasses) 01:23:18 > sort [1.0,5.0,1.5,NaN,2.0,NaN,NaN,1.1,1.0] 01:23:19 Not in scope: data constructor `NaN'Not in scope: data constructor `NaN'Not... 01:23:22 not even Ord 01:23:36 > sort [1.0,5.0,1.5,0/0,2.0,0/0,0/0,1.1,1.0] 01:23:37 [1.0,1.1,NaN,NaN,2.0,NaN,1.0,1.5,5.0] 01:23:43 copumpkin: kinda awkward to use though then :P 01:24:24 You can make a lot of things without floating point. 01:24:26 That's so broken...then again, NaN is sorta broken by definition. 01:24:48 It just makes me very uncomfortable that the output of my sorting algorithm depends crucially on the algorithm. :P 01:24:53 all this inspired by the recent haskell-cafe discussion. 01:24:59 Is there datatype to represent algebraic numbers? 01:25:13 zzo38: probably in some package 01:25:23 but not in the standard 01:26:35 i'm not even sure what kind of algorithms would handle them efficiently 01:31:46 -!- elliott has quit (Remote host closed the connection). 01:32:11 -!- elliott has joined. 01:32:32 oerjan: which haskell-cafe archive do you use btw, I don't like the ones I've used :P 01:39:38 hmph 01:40:50 i use haskell.org's pipermail and i hate it :P 01:41:04 i keep telling myself to change 01:41:40 it breaks on too many messages 01:42:29 (including, i believe, internal "From " lines, as i've mentioned before) 01:44:28 oerjan: aha, what about http://groups.google.com/group/haskell-cafe 01:44:37 that does the nice conversation view too, so you don't have to muck about with thread navigation 01:44:40 oh and i vaguely recall there may be something wrong with attachments too 01:44:42 well http://groups.google.com/group/haskell-cafe/topics 01:44:58 aha 01:45:26 yeah this seems nice 01:46:00 "Hello fellow Haskellers, 01:46:01 this is a proposal to extend the arrow notation (-XArrows)." 01:46:01 -!- cheater has quit (Ping timeout: 248 seconds). 01:46:04 not MORE :D 01:46:22 ertugrul's proposal? 01:46:26 yes 01:46:34 -!- evincar has quit (Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]). 01:46:35 i think he ended up finding those (| |) could do what he wanted 01:46:43 idiom brackets 01:46:44 *thing could 01:46:48 *things 01:46:59 i do not understand arrow notation in the slightest 01:47:07 oh hm not idiom brackets 01:47:10 banana brackets apparently 01:47:30 banana brackets? 01:47:42 arrow shit 01:47:44 who knows :P 01:47:48 arrows...... 01:48:32 -!- evincar has joined. 01:51:00 -!- augur has joined. 01:51:53 -!- augur has quit (Remote host closed the connection). 01:52:08 "If typhoon comes, umbrella does not work." --haskell-cafe 01:52:40 Sound advice on both typhoons and umbrellas. 01:53:19 My blog post got loads of views so now I have to be clever because people pay attention to me now. :( 01:54:30 ha. 01:54:31 oh no 01:54:43 dude my blag is going to be the best of all. 01:54:48 people will be "like woah dude portal chess" 01:54:51 whoa 01:54:51 dude 01:54:54 portla chess 01:55:02 That is something you say whoa dude about. 01:55:13 The things I write about are not the things that people say whoa dude about. 01:55:19 :'( 01:55:29 They are the things people agree with because they lack conflict. 01:55:36 Or disagree with because they have misunderstood them. 01:55:49 yes you are infallible. 01:56:25 I'm as fallible as anybody. 01:56:41 I just don't generally make controversial claims. 01:56:50 And when I do, people tend to disagree for the wrong reasons. 01:56:59 I want better peer review. :/ 01:57:16 "perl style can be shown to kill babies" 01:57:31 Name a thing that cannot be shown to kill babies. 01:57:46 Unless a "kill baby" is a thing. 01:57:51 A thing to which you can show perl style. 01:58:03 !perl print kill baby 01:58:05 Unrecognized signal name "baby" at /tmp/input.6812 line 1. 01:58:10 !perl print kill $baby 01:58:10 0 01:58:15 evincar: you may have to work a bit on your clever 01:58:29 That is what I said I would have to do. 01:58:42 Well, implied. 01:58:54 elliott: oh hey did you perhaps check out my new wacro? 01:58:58 then consider this positive reenforcement of your said 01:59:00 i agrreed with you 01:59:02 it probably needs a new name since it's not really generating acronyms anymore... 01:59:05 I don't care if it can kill babies. Just because it can, doesn't mean it does!! 01:59:09 it's lacking in the acronym department 01:59:12 yes. 01:59:14 Yaaay, someone else thinks I'm not as clever as I ought to be. 01:59:21 What a stupendous victory for me. 01:59:21 `wacro 20 01:59:25 savidebe sellstrixtrid wdyngivers pendehth tuenwamers ution hypolizatiii sages xxildonneau smairedelsolorwoosi trohe ageeine gue cojous rret reproadsiges pur roi torntitusto herreselavrethjac 01:59:27 and it's only mediocre at words.. 01:59:30 hypolizatiii 01:59:37 cojous and gue are good 01:59:38 also trohe 01:59:41 and pur and roi 01:59:43 yeah for some reason iii is really common 01:59:47 tuenwamers 01:59:53 that sounds like a kind of jumper 01:59:55 new wacro is good but not as good as fizzie's word generator from last night was it 01:59:58 i'm wearing a wooly tuenwamer 01:59:58 I really liked those words 02:00:03 monqy: oh what was that 02:00:04 i must logread 02:00:07 I'll dig bup the linke 02:00:20 * CakeProphet is currently fixing things / adding new features. 02:00:26 http://sprunge.us/MNHQ 02:00:32 * oerjan opens a bottle of xxildonneau 02:00:37 eventually I'll go back and redo the actual word generating algorithm. Maybe with larger grams. 02:00:41 faubblemarcus is maybe my favoirte there 02:00:42 how does the "n-gram" approach work? 02:00:47 monqy: oh these are good 02:00:59 CakeProphet: just build a reverse context tree(tm) 02:01:08 For small n, it doesn't. 02:01:14 :D 02:01:25 for large n, it doesn't, either 02:01:29 uh, maybe I should just stick to a single gram size? or two? or three? 02:01:31 un vin pur pour roi 02:01:33 How do you do internet access in Haskell? 02:01:34 monqy: megahal works pretty good 02:01:42 elliott: hm 02:01:51 monqy: but it's quite special, it uses a backwards thing too 02:01:55 @hoogle socket 02:01:56 Network.Socket socket :: Family -> SocketType -> ProtocolNumber -> IO Socket 02:01:56 module Network.Socket 02:01:56 Network data Socket 02:01:58 as in, it has a /reverse/ context tree 02:02:04 Iremember megahal beng special 02:02:05 and it has n=four which is pretty big 02:02:12 monqy: it also has a separate thing for punctuation, iirc 02:02:14 http://megahal.alioth.debian.org/Classic.html but it's good 02:02:21 elliott: yeah I was thinking 4-grams might produce better results. 02:02:25 oh I meant bigger than 4 when i said big. 4 is pretty big if you actually want things to be good. 02:02:26 http://megahal.alioth.debian.org/Best.html is good too 02:02:29 Where is module Network.Socket? 02:02:31 CakeProphet: n is words in this case 02:02:32 I mean 02:02:35 4 is on the big side of good 02:02:35 elliott: right. 02:02:37 zzo38: http://hackage.haskell.org/package/network 02:02:40 4 is good if you're good 02:02:45 100 is never good......... 02:03:02 one hundred generates source text verbati 02:03:03 m 02:03:05 which i guess is okay? 02:03:09 Bad 02:03:11 http://megahal.alioth.debian.org/Poetry.html 02:03:34 "exquisite dead guy 02:03:35 rotating in hell" 02:03:47 rotate in peace. 02:04:32 I was also considering as a hueristic lowering the frequency of trigrams that contain 3 vowels or 3 consonants. 02:04:39 to remove the things like iii 02:04:48 or to make them less frequent anyways 02:04:55 If you're even getting those trigrams, you're using the wrong corpus 02:05:07 but there's a lot of words with 3 consonants 02:05:09 in a row 02:05:15 Jafet: hmmm? 02:05:20 iiiiiiiiiiiiiiiiiiiiiiiiii 02:05:20 these trigrams are characters, btw 02:05:40 I am taking a 1-grams-of-words dataset 02:05:45 No english (or most other european) text will give you three i's in a row 02:05:45 and breaking each word into trigrams 02:05:58 ...very often 02:06:06 presumably the iii is from roman numerals or such 02:06:22 maybe I could just remove it as a special case. 02:06:32 roman numerals aren't mushed up with other words 02:06:35 Filter on a dictionary 02:06:39 elliott: true 02:06:40 if you're traversing across word boundaries you are "doin' it rong" 02:06:47 each word should be added separately 02:06:48 cakeprophet what about the tii 02:06:50 Or make n-grams on syllables, instead of letters 02:06:53 and yea hwhat eliotss saying 02:07:01 Jafet: that would be good, but syllables are hard to extract from text reliably :P 02:07:05 elliott: I am not concating words together I'm adding characters together. 02:07:09 but you could heuristic it 02:07:14 CakeProphet: i'm talking about when training 02:07:15 When in doubt, branch and add both. 02:07:44 Or index on a dictionary, where the syllables are already split for you. 02:08:13 elliott: the algorithm does this: takes the last two characters that were generating, plugs them into the hash table, then randomly selects, based on frequency, the third character from the inner-hash-table, and then adds that to the string 02:08:17 repeat 02:08:19 until it finds a space 02:08:23 which indicates the end of a word 02:08:32 I'm replacing the end-of-space thing to use a word length histrogram. 02:08:40 "the third"? 02:08:41 so that the lengths of words are based on the lengths of words in the dataset. 02:08:45 oh i see 02:08:51 CakeProphet: i'm talking about when training 02:08:53 not when generating. 02:08:55 as i already said. 02:08:56 yes if you have "aa" it will give you a table of possible third characters with frequencies. 02:08:59 and randomly selects one. 02:09:19 elliott: right, I was giving you the context to make sure we were talking about the same approach. how would word boundaries be factored in? 02:09:29 do you train separately for each word in the corpus 02:09:36 I... guess? 02:09:39 >_< 02:09:40 so that's a no then 02:09:45 which means you won't be generating words at all 02:09:46 how do you train them "all together" :PO 02:09:51 you'll be generating stretches of text without spaces 02:10:21 as in like, what is the difference in data representation 02:10:33 none in data representation. all in algorithm. 02:10:48 the algorithm that generates the data. "training" as you call it. 02:10:53 what data does it generate. 02:11:09 wow what a hopelessly unanswerable question 02:11:14 show your code, i'll tell you if it's wrong :P 02:11:23 I already know the answer to that, from you. 02:11:23 -!- elliott has quit (Remote host closed the connection). 02:11:23 it's in perl; automatically wrong 02:11:31 bye elliott 02:11:46 -!- elliott has joined. 02:11:48 elliott: I don't need you to tell me it's wrong. I would just like you to explain a little more about what you're talking about. 02:12:00 `ls bin/wacro 02:12:02 bin/wacro 02:12:03 enjoy 02:12:04 i can't because your questions are bad 02:12:09 and unanswerable 02:12:12 and i suspect a deeper confusion 02:12:31 basically what is training. 02:12:35 it would be much simpler to see your code which would let me determine whether it did what i said or not quickly; if you don't want to do that, then fine, I can't/won't help 02:12:43 ^^^^^^^^^^^^^^ 02:12:48 CakeProphet: going from corpus to data set 02:12:51 language model 02:12:52 whatever 02:12:57 okay. 02:13:30 Should I compete at the International Whistlers Convention next year? 02:13:33 http://pastebin.com/A16F58CF 02:13:34 it's the best code 02:13:36 best perl. 02:13:51 (I don't care if this is completely off-topic. Someone usually answers. :P) 02:14:00 evincar: :P 02:14:04 evincar: no dude because if you do I'll join 02:14:07 CakeProphet: i like the part where you discard all words after the first in a given n-gram 02:14:07 and completely dominante. 02:14:15 elliott: where is that? 02:14:20 also btw the google n-gram data is completely useless for this 02:14:22 all you need is the wordlist 02:14:24 or are you using the wordlist 02:14:25 elliott: these are 1-grams 02:14:26 which is 02:14:27 right 02:14:27 a wordlist 02:14:47 yeah ok you do it right i guess, but with a way too low n 02:15:00 n as in n-gram? 02:15:08 yes 02:15:08 CakeProphet: I'm pretty good. Not a virtuoso by any means, but I've practiced a lot. 02:15:11 CakeProphet: what does your generator use to denote start/end 02:15:15 I was considering maybe 4 or 5. 02:15:19 you should use special tokens for that 02:15:31 elliott: currently it doesn't use anything for end, and start is spaces. 02:15:34 two spaces for start 02:15:43 "doesn't use anything for end" what 02:15:47 CakeProphet: well, it doesn't matter what you use, as long as it's in the data set 02:15:51 CakeProphet: but you want an end token 02:15:55 to be inserted as the "last character" 02:16:02 so that you can end at a good place 02:16:06 elliott: the end token no longer means anything with the current generation algorithm. 02:16:13 it should 02:16:15 as it predecides the length. 02:16:20 it shouldn't 02:16:21 via a word length histrogram. 02:16:28 ok well 02:16:32 Hey, programming language. Smalltalk, but there's only one message selector, and it takes one argument, and messages don't return anything. 02:16:32 it can pick a target length 02:16:33 the current algorithm is the one that goes until it finds a space 02:16:36 and it ends up generating huge words. 02:16:37 and exit if it gets an end token 02:16:39 if you're close enough 02:16:42 i.e. >= 02:16:45 (I've gotten very lazy when it comes to creating esoteric programming languages.) 02:16:52 (and use a maximum length to cut it off if it gets stuck in a loop) 02:17:04 `wacro 20 02:17:06 ided proearreninarni nonneonav st thelaroprobatseeemisabla tagerapineronizimory mensit datchoid seteo polj furt lang xhiso suram ik recons jaff irrottd vam ite 02:17:07 tswett: at least lazy means you haven't been making lots of bad languages, right? 02:17:08 these are all generated until a space is found. 02:17:14 CakeProphet: see above 02:17:17 monqy: yep. 02:17:23 elliott: so you're saying combine both? 02:17:31 CakeProphet: sure 02:17:37 I like using just the word length histrogram as it would directly reflect the frequency of word lengths in the dataset. 02:17:44 yes but this leads to more natural endings 02:17:46 And I have G+, which means that everyone will now flock to flesh out my designs. 02:17:48 yours will just chop it off arbitrarily 02:18:00 elliott: somewhat short-sighted though for small n. 02:18:03 no 02:18:11 im agree with elliott 02:18:38 elliott: another idea: include character position in the frequency data. 02:18:45 what 02:18:56 so when I go to generate the next character I look up the current character position in the table 02:18:59 CakeProphet: pick target word length; subtract a bit (because you're likely to go over), making the new target word length; generate; if you reach an end token, then if the word length is >= the target length, quit, else pick again (instead of the end token); finally have an if >= target length + constant, quit, to stop generating words far over the target length 02:19:10 and it gives me "frequencies where this letter occured after the last n-1 characters at char position i" 02:19:12 `wacro 20 02:19:14 de fed xoilicherbrenttounisselageriusiverinefeloparka accreless su soravy but man edenerac fumo aus spramereetialiphouryhtalian rowbeld whing ble tursaxonturg refloatens st wart sky 02:19:19 Yes, yes. 02:19:19 xoilicherbrenttounisselageriusiverinefeloparka 02:19:27 CakeProphet: another thing you can do is, the closer/over the string gets to the target length, scale up the probability of end tokens, so you're more likely to end rather than getting hit by the safety cut-off 02:19:36 "Refloatens". That is a good word. 02:19:43 xoilicherbrenttounisselageriusiverinefeloparka 02:19:46 word 02:19:56 Also "whing". 02:20:00 at least the ending is natural 02:20:20 Whings. Like wyngz, but more English. 02:20:39 elliott: hmmmmmm 02:20:52 notice all of the really shot words that you get though 02:20:59 simply because your last two characters happen to commonly end words. 02:21:06 CakeProphet: ... 02:21:07 *short 02:21:12 CakeProphet: it only quits if the length is >= the target length 02:21:15 try actually reading what i wrote 02:21:19 before commenting on it 02:21:35 oh I missed that. 02:22:13 I could probably scale the probability of end tokens based on the frequency histogram. 02:22:16 somehow. 02:22:26 >_< 02:22:51 and just maybe not use a minimum (target) length. 02:24:35 elliott: >_ I read what you said, I understand it. What are you annoyed about? 02:24:47 >_ hmmmm 02:27:15 no your approach is probably safer than ONLY scaling the end tokens. 02:27:57 The scaling is a good idea though. 02:28:04 It's likely to steer to a more natural ending than the harsh cutoff. 02:28:11 yeah I see what you're saying. 02:28:13 especially with larger n 02:28:24 CakeProphet: btw run it on a finnish dictionary 02:28:30 what with all the agglutinativity 02:28:37 we'll need the finns to decode what it spits out though :P 02:28:38 even with 3-grams you get pretty good word endings. 02:29:00 elliott: should I go with 4-grams or 5-grams? 02:29:06 I think 5 might be too much? 02:29:41 4 02:29:59 note that you'll want to dump the result as binary, gzip it, and include it after __END__ 02:30:01 because it'll be big 02:30:10 might as well go ahead and make the code independent of gram size. 02:30:20 how will I do this? in typical perl style: global variables 02:30:39 13:29:45: not you too! 02:30:39 13:29:58: it's bad enough that elliott was considering buying an expensive ngram database 02:30:51 I wasn't joking and it was far more useful than a $787.50 wordlist, plus about ten times less expensive 02:31:03 *word list with parts of speech data 02:34:06 > 27^3 02:34:07 19683 02:34:24 that's the number of elements in the outer hash table for 4-grams. 02:34:40 each value is a 27-element hash table. 02:35:03 use an array instead 02:35:04 for the inner 02:35:17 it should be twenty-eight elements 02:35:25 well 02:35:25 times two 02:35:37 twenty-eight? 02:35:47 alphabet + start + end 02:35:47 also yeah I should switch to an array. 02:35:55 oh I was using the same token for start and end.. 02:35:58 because I can. 02:36:01 that won't go well. 02:36:03 at all. 02:36:15 start tokens are always in the outer table, end tokens are always in the inner. 02:36:26 grosse 02:37:55 whatev 02:39:03 oerjan: im robots?? 02:39:05 yeah 02:40:23 http://en.wikipedia.org/wiki/Cat-burning 02:40:24 http://en.wikipedia.org/wiki/The_Great_Cat_Massacre 02:40:28 the french are bad people :'( 02:40:30 wat 02:40:36 in 02:40:37 1700s 02:40:41 french people burned cats on bonfires 02:40:46 and shrieked and laughed 02:40:47 and were horrible 02:40:49 and beat them 02:40:53 and hung them for witchcraft 02:40:53 great massacre. 02:40:54 they were 02:40:54 awful 02:40:55 people 02:41:04 dear everyone: if you are french we are no longer friends 02:41:15 i agree 02:41:31 as far as i'm concerned, rome is still at war with the gauls 02:41:46 bona fortuna roma! 02:42:05 elliott: my last name has etymological roots in the French word for "courteous" 02:42:08 what now??? 02:42:13 CakeProphet: DIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 02:42:58 !perl sleep and die ", never to return" 02:44:03 My last name has confusing spelling. What now? 02:45:43 * oerjan cackles evilly and goes to deduce CakeProphet's full name from this information 02:45:52 NOOOOOOOOO 02:46:07 Adam Courtois???? 02:46:11 once you know my true name, you will control me. :P 02:46:13 elliott: not quite 02:46:19 Adam Curtis?????? 02:46:21 yep 02:46:23 he makes documentaries 02:46:24 are you him 02:46:26 no 02:46:29 but we have the same name. 02:46:31 http://upload.wikimedia.org/wikipedia/commons/c/c5/Adam_curtis.jpg cakeprophet 02:46:37 lol 02:46:40 yep that's me. 02:46:51 http://upload.wikimedia.org/wikipedia/en/7/76/The_Way_Of_All_Flesh_titles.jpg title to one of CakeProphet's documentaries 02:47:00 cakeprophet is 56 and from the uk 02:47:10 elliott: also the Way of All Flesh is an excellent Gojira album 02:47:11 "The Observer adds "if there has been a theme in Curtis's work since, it has been to look at how different elites have tried to impose an ideology on their times, and the tragicomic consequences of those attempts."[2]" 02:47:15 Gojira of course being a FRENCH METAL BAND. 02:47:15 this is what CakeProphet does 02:47:38 french poople 02:47:48 yes the consequences are very tragicomic 02:47:53 tragicomic being a very tragicomic word... 02:48:00 I like how I have a forty-one line long export list. 02:48:13 Haskell in action. 02:48:23 https://github.com/ehird/mchost/blob/master/MC/Protocol/Types.hs#L3 02:48:32 Python has the worst export control. 02:48:46 __all__ = ["name1", ...] 02:48:49 I don't think there's a single thing there I don't export, but best to be explicit about it. 02:48:59 Adam Curtis?????? <-- dammit i was going for this http://www.facebook.com/people/Adam-Gallant/511648752 02:49:11 oerjan: master of etymology 02:49:23 oerjan: google said "courtois" for courteous, so 02:49:51 I feel moving to the UK would be a bad move for me 02:49:54 elliott: i thought that was too obvious, so i looked for the alternative galant instead 02:49:58 as I would now be associated with this famous guy. 02:50:02 oerjan: lol 02:50:20 unless he's not actually that famous. 02:50:21 CakeProphet: I get the feeling he's somewhat of a, how do you say it, tosser. 02:50:30 ...I have no clue what that means. 02:50:33 Well, in the world of documentaries he's ecrtainly famous. :p 02:50:44 oh 02:50:44 s/ecrtainly/certainly/ 02:50:46 good word. 02:51:08 but I don't know what that means in your UK jargon. 02:51:34 Well, Wiktionary says http://en.wiktionary.org/wiki/tosser, but that has way too much focus on the not-really-relevant-any-more etymology and misses all the subtle meaning of the word. 02:51:41 right 02:51:52 I associated it with "wanker" 02:51:57 Wanker is much lighter. 02:52:05 A tosser has to be more offensive than that. 02:52:05 but I don't know what that means other than "some asshole" 02:52:14 Well, it literally means "masturbator". :p 02:52:17 right. 02:52:24 US slang > UK slang 02:52:32 No way. You have nothing with the subtlety of tosser. 02:52:36 bitch ass ho-slut 02:52:40 we're so subtle dude. 02:52:46 It's all obscene rubbish. 02:52:53 You're charlatans. 02:53:14 you're obviously just a big dickface with no nice American things. 02:53:45 Yeah, we're burdened with a culture, and a country more than like three hundred years old. 02:53:46 Adam le Ouancour 02:53:56 We have benches older than your country. 02:54:27 elliott: yeah but you can thank us for YOUR AWESOME GOVERNMENT BAHAHAHAHA. 02:54:33 .. 02:54:44 CakeProphet: What. 02:54:48 what 02:54:49 american of course being the place where freedom was invented. 02:54:51 *america 02:54:56 Well we don't have any of that nonsense. 02:55:01 Thankfully neither do you. 02:55:55 any what? freedom? 02:56:08 Exactly. 02:56:27 well fine. democracy. 02:56:28 there. 02:56:30 we invented that 02:56:31 yep 02:56:33 the first. 02:56:48 and everyone was like "woah that's cool" and copied it. 02:56:49 losers. 02:57:56 Totally 02:57:58 Totally. 02:58:05 Good thing you don't have that, either. 02:58:21 yep 02:58:31 I love capitalism. best system of government. 02:59:32 ITYM corporatism. 02:59:50 "The bloke who ripped me off was a right tosser" 03:00:00 only a really lame country would have slang like that. 03:00:17 elliott: yes I mean "people and non-person entities with lots of money rule" 03:00:20 Our slang is approximately ten times more gritty. 03:00:40 bloke and tosser sounds much better than my native slang 03:00:54 shut up you're all babyfuckers. 03:01:29 babyfucking twatwaffles. 03:01:49 -!- augur has joined. 03:02:57 monqy: from where do you hail? 03:03:11 america :( 03:03:22 america is a big place. 03:03:39 yeah, it's two whole continents. 03:03:43 is california small enough for you 03:04:02 no you have to go smaller 03:06:41 -!- azaq23 has quit (*.net *.split). 03:06:41 -!- CakeProphet has quit (*.net *.split). 03:06:41 -!- iamcal has quit (*.net *.split). 03:06:42 -!- fizzie has quit (*.net *.split). 03:06:42 -!- atehwa_ has quit (*.net *.split). 03:06:43 -!- chickenzilla has quit (*.net *.split). 03:07:18 hi 03:07:25 Hi? 03:07:29 hi 03:07:46 'lo 03:08:02 hi 03:08:59 -!- chickenzilla has joined. 03:09:04 hay 03:09:26 -!- atehwa has joined. 03:12:33 hi 03:12:42 pikhq: how do i git stash only one file... hepl 03:14:14 -!- fizzie has joined. 03:15:55 pikhq: heelp 03:16:48 -!- sebbu2 has joined. 03:16:48 -!- sebbu2 has quit (Changing host). 03:16:48 -!- sebbu2 has joined. 03:17:13 -!- sebbu has quit (Ping timeout: 248 seconds). 03:19:55 -!- iamcal has joined. 03:21:22 INTERCAL STASH is so much simpler 03:23:03 -!- azaq23 has joined. 03:24:30 oerjan: yes 03:25:57 http://shop.github.com/ I... 03:26:12 elliott: I don't think git-stash can operate on single files. 03:26:25 It's specifically for stashing all of your uncommitted changes. 03:26:27 This is the whitest store I have eve seen. 03:26:32 There's probably another obscurely named command for it. 03:26:54 Needs more white. 03:27:07 another neutrino idea: maybe they don't actually move faster than light on average, but instead they jump 60 ns backwards in time when oscillating from mu to tau flavor :P 03:27:10 "Let's say you ordered a shirt. And in between the time that you placed your awesome order, you happened upon a Krispy Kreme donut shop. Wanting to do your part to encourage the economy, you stopped in to support local business (while quickly putting out of your mind the fact that Krispy Kreme is in fact not local, but rather nation-wide.) At said establishment, you decide to order a couple dozen donuts as they stream off the assembly line type d 03:27:10 eal thing they got going on in there. (Honestly, I wouldn't know what it's called, I'm just a coder, not a donut maker). Thinking of the starving children throughout the world, you decide not to be wasteful but instead consume all 24 donuts." 03:27:19 Also: the whitest paragraph. 03:27:28 oerjan: :D 03:27:30 oerjan: that is awesome omg 03:27:36 this would explain why that supernova didn't show the effect 03:27:40 oerjan: they are like "whoops" 03:27:43 and 03:27:45 fall back in time 03:28:01 (because it's not cumulative over huge distance) 03:28:27 elliott: You could also just create a branch called "stash", check your files into it, do what you need to do, then merge. 03:29:46 -!- azaq231 has joined. 03:30:07 Did you try to play any of the addition CGA Collection games I have posted today? 03:31:00 I don't know a lot about neutrinos 03:31:29 -!- azaq23 has quit (Ping timeout: 245 seconds). 03:39:36 Can you win a pachinko game if the manager tries very hard to stop anyone from winning, by manipulating the tilt of the building by telling someone else to put large cans of water on the top floor, and putting a lot of balls at once that get stuck, so that when you load a few more, there is no place to go except falling in the winning hole? 03:40:10 oerjan: I wonder if anyone thought of that 03:40:13 oerjan: it sounds like a pretty good theory 03:40:44 elliott: i'm thinking of a snag though... 60 ns in which reference frame? 03:41:05 oerjan: presumably the reference frame of the measuring equipment :P 03:41:23 or equivalently, what in the neutrino rest frame? 03:41:55 the measuring equipment frame seems a little arbitrary 03:42:20 oerjan: Arbitrary, but also the only frame it's practical to measure in :P 03:42:40 er i mean, it would be 60 ns in that frame, of course, but that's not a _fundamental_ frame for the neutrino 03:44:11 food -> 03:46:11 oerjan: on a completely unrelated note, I wish there was something like 03:46:23 classInstance :: TypeRep -> ClassRep -> Maybe InstanceRep 03:46:25 so you could do 03:48:39 maybeShow :: (Typeable a) => a -> Maybe String 03:48:39 maybeShow x 03:48:39 | Just ins <- maybeIns = Just (instanceApply ins show x) -- or something 03:48:39 | otherwise = Nothing 03:48:39 where maybeIns = classInstance (typeOf x) (...some way to denote the Show class...) 03:50:15 didn't jhc have a representation where you could actually get classes from types from values it runtime 03:50:23 (vague recall) 03:55:47 -!- myndzi has joined. 03:57:45 oerjan: dunno 03:57:50 oerjan: but this is a pretty easy static thing, I think 03:58:01 since it goes through the type 03:58:06 so it just has to be the part of the TypeRep 03:58:12 oh, hmm 03:58:19 the problem is orphan instances and the like 03:58:24 you can't really write a manual instance to do that 03:58:48 maybe it should be class → list of typerep instances, then 03:59:00 it's just a shame to not be able to do generic thing slike this 04:03:33 13:52:41: yes the mathematics of large numbers is essentially masturbation. One can keep going until exhaustion. 04:03:39 there are slam dunks. like busy beaver 04:04:14 14:03:53: "The Humane Society of the United States and other animal welfare groups denounced the cloning, saying that the $50,000 could have been better used to save some of the millions of animals euthanized each year." — http://en.wikipedia.org/wiki/Little_Nicky_(cat) 04:04:14 hmph 04:05:53 Perhaps that is correct. However, due to the government, that is impossible (I don't mean illegal; I mean impossible) 04:06:42 http://www.reddit.com/r/science/comments/kol1x/faster_than_light_neutrinos_not_so_fast/c2m0vam seemed to have a similar idea :) 04:06:49 15:09:19: "Say what you will about D, the compiler is very well implemented." --proggit 04:06:51 Deewiant: Which one :P 04:07:55 I noticed some things about my barrier monad implementation: rebind yield = id head . collect = collect . flip continue () 04:09:58 Oops! I am wrong. tail . collect = collect . flip continue () 04:12:24 Should the arguments to continue be the other way around? 04:12:36 :t continue 04:12:37 Not in scope: `continue' 04:12:40 dunno 04:12:44 ?hoogle continue 04:12:45 Network.HTTP.Base Continue :: ResponseNextStep 04:13:02 I mean the "continue" in my BarrierMonad module. 04:13:09 -!- FireFly has quit (Ping timeout: 245 seconds). 04:13:22 I don't know that module :P 04:16:43 Okay, if you downloaded a game development environment, what would you expect for distribution capabilities? 04:17:08 Like, standalones, or would standalones that automatically download and install a Steam-esque runtime be okay? 04:17:50 I think the Digital Mars one would be the default referent in any discussion of "the D compiler". 04:18:02 The LLVM frontend is, well, an LLVM frontend. 04:18:11 I think it should be virtual machine (possibly JIT), with a single includable executable to do it 04:18:14 And then there's the other one I forget about. 04:18:32 zzo38: I was thinking of going for something like that. 04:18:39 -!- FireFly has joined. 04:18:43 The user downloads an executable which is really stub+payload. 04:18:53 -!- oerjan has quit (Quit: Good night). 04:18:56 And the stub checks for an installed VM and runs the payload if a VM is available. 04:19:05 Or downloads and installs the VM otherwise. 04:19:23 I think the executable should be the stub and the payload in a separate file in the same directory. 04:19:43 No, a single file is better for user experience. 04:19:55 -!- shachaf has joined. 04:19:56 The payload can always be extracted into the installation directory of the VM anyway. 04:20:02 Like a Steam game. 04:20:29 A game would constitute a (possibly compressed) archive or filesystem image. 04:20:34 Well, OK; if the payload can be extracted then it can work, so that the user can possibly make it running on other operating system or whatever else you want to do with it 04:20:49 I don't know how Steam games are loaded. 04:20:57 Yeah, I'd be going for OS-independence... 04:21:14 Steam games are stored in what are essentially disk images. 04:21:19 Very brief ones. :P 04:21:32 They have an internal hierarchical structure with whatever resources the game needs. 04:21:46 Plus tons of error-checking and what have you. 04:21:51 I don't recall the specifics. 04:22:05 I suppose it can be a Windows executable, but extractable in any operating system, but you would install the VM manually in those cases. 04:22:45 elliott: This is BarrierMonad module in case you interested (or to answer my question): http://sprunge.us/EQPb 04:23:09 Right, or just "bundle OS-independent game file requiring preinstalled VM" versus "bundle OS-specific game file that installs VM if needed". 04:23:45 Yes, do whatever works for you. 04:24:06 zzo38: fmap = liftM also works 04:24:32 I'm considering possible things to sell to make some extra pocket change during my grad studies. 04:24:41 And for some reason a game platform seems like a good idea. 04:24:44 elliott: OK, I fixed that 04:24:46 Even though rationally I would assume it isn't. 04:25:13 although you might need to import Control.Monad... not sure 04:25:45 Works without that. 04:26:08 ok 04:26:13 Control.Monad.Reader exports Control.Monad yeah 04:26:28 it would be cool to see implementations of the other examples you gave, overridable I/O, state, flow control 04:26:38 You can have modules implicitly import other modules? 04:26:46 zzo38: what do you use from Control.Monad.Reader, anyway? 04:27:03 evincar: Of course you can also make a game as a .nes or .gba file or whatever; this is sometimes (although rarely) done. 04:27:28 monqy: Oops! Nothing. I could put Control.Monad instead. 04:27:34 OK I fixed that, and it works. 04:27:58 zzo38: My software wouldn't really be able to do that; it's too high-level to conveniently compile, so I might as well just have a specialised VM. 04:29:21 evincar: There are many cross-platform formats implementable for computer games, such as emulators for older Nintendo systems, and Z-machine, Glulx, Java, or KINT (the license for KINT says public domain once author is dead; otherwise permission is required for anything done with it). 04:31:45 (NES games are still made today; mostly to run on emulators, although they are generally intended to work on actual NES/Famicom hardware, and Famiclones, as well) 04:32:09 :') 04:33:55 :t truncate 04:33:56 forall a b. (RealFrac a, Integral b) => a -> b 04:34:36 > truncate (-9.9) 04:34:37 -9 04:34:38 good 04:37:32 elliott: Yes, I could implement otherr example; overridable I/O could be done having the front type representing the atoms of actions to perform and back type representing the results. Now you can override it by other functions outside of there, such as implementing your own fake I/O, or using convert and/or rebind to change the actions a given I/O has already been made, to perform differently. 05:24:56 -!- copumpkin has changed nick to Daaan__. 05:25:09 -!- Daaan__ has changed nick to Daaaan_. 05:25:19 -!- Daaaan_ has changed nick to Daaaaan. 05:26:05 -!- Daaaaan has changed nick to daaaaaaaaaaaan. 05:29:19 -!- daaaaaaaaaaaan has changed nick to copumpkin. 05:33:29 -!- cheater has joined. 05:40:10 -!- evincar has quit (Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]). 05:45:14 -!- GreaseMonkey has quit (Quit: The Other Game). 05:55:37 -!- cheater has quit (Ping timeout: 248 seconds). 06:00:49 -!- cheater has joined. 06:16:57 -!- copumpkin has quit (Ping timeout: 248 seconds). 06:17:23 -!- copumpkin has joined. 06:55:44 -!- CakeProphet has joined. 07:10:11 -!- ive has quit (Quit: leaving). 07:23:46 -!- FireFly has quit (Ping timeout: 256 seconds). 07:25:55 -!- Ngevd has joined. 07:26:01 Hello! 07:27:06 I decided to make the examples not exported. So, they will be used only with GHCi. When compiled normally, will they be optimized out? 07:29:52 I also put each example in chapter with "Example" in its title. 07:47:21 The arrows are going to be fun in Uniquode 07:48:36 :t randomR 07:48:36 forall a g. (Random a, RandomGen g) => (a, a) -> g -> (a, g) 07:50:13 monqy: i had...ide...a 07:50:27 is it good? I was just abotu to slep 07:51:15 Mahjong tiles are going to be even more fun 07:52:12 I think Fraction literals should be dominos 07:52:23 monqy: it...good...think 07:53:07 Ngevd: dominoes as in they collapse in trains? 07:53:29 That will be horizontal-oriented dominoes 07:53:38 Vertical-oriented dominoes will be fractions 07:53:51 ah 07:54:01 oh I interprted what you saifc backwards 07:54:04 it makes sense nwo 07:54:16 monqy: it was about... orthogonal effects... 07:54:33 orhtoganlo efects ias a god idea!! 07:54:34 So, 3 7ths will be 🁷 07:55:16 BECAUSE YOU ADD ONE TO THE TOP AND BOTTOM TO PREVENT DIVIDE BY ZERO ERRORS 07:55:17 monqy: basically, lots of monad transformers are composable on top of each other where the order doesn't matter 07:55:31 basically everything that offers "imperative program but with " does this 07:55:32 -!- Ngevd has changed nick to Taneb|Hovercraft. 07:55:52 monqy: but the problem is that large transformer stacks suck... 07:55:55 so 07:56:08 this ia ll true.... 07:56:13 foo :: String -> Int -> M (Accesses Int, Produces String) Int 07:56:19 that's like ReaderT String (WriterT Int Int) 07:56:22 erm 07:56:24 that's like ReaderT String (Writer Int Int) 07:56:37 to run it, you do 07:56:57 run . eraseProduces . eraseAccesses initialValue $ foo "" 9 07:57:01 :: M () (Int, [String]) 07:57:11 because 07:57:12 eraseAccesses :: (Has (Accesses s) e) => s -> M e a -> M (Erase (Accesses s) e) a 07:57:12 eraseProduces :: (Has (Produces s) e) => M e a -> M (Erase (Produces s) e) (a, [s]) 07:57:15 and 07:57:17 run :: M () a -> a 07:57:34 now, the nice thing is that you can offer "subsets" of IO and the like through this 07:57:36 like an RNG effect 07:57:52 and you can either erase RNG to the AnyIO effect (which is runnable with "runAnyIO :: M AnyIO a -> IO a") 07:57:53 or do 07:57:55 unsafeEraseRNG 07:58:03 to erase it completely (unsafely), like unsafePerformIO but more restricted 07:58:11 (it can only unsafely run functions on the global RNG) 07:58:23 and then.... more things... like this 07:58:30 whats an erase 07:58:32 it might be good????? 07:58:39 monqy: like runFooT 07:58:41 it eliminates part of the stack 07:58:44 oh 07:58:46 eraseAccesses :: (Has (Accesses s) e) => s -> M e a -> M (Erase (Accesses s) e) a 07:58:48 this basically means 07:58:50 given an s 07:58:50 and an 07:58:56 M (..., Accesses s, ...) a 07:58:58 we can turn it into 07:59:01 M (..., ...) a 07:59:14 and once you get rid of all the effects in the stack you have (M () a) 07:59:19 and you just "run" that off into an a 07:59:41 it's like a monad transformer stack but much more composable, predictable, orthogonal, componentised, blah bla blah 07:59:43 s/bla/blah/ 07:59:49 good thigns.... 08:00:24 is it implemenmtatble in haskele 08:00:34 i believe so. 08:00:40 also good 08:01:07 it'd be cleaner as a core language feature type thing, some kind of effect system 08:01:11 but I think this is all doable in current Haskell 08:01:42 -!- Taneb|Hovercraft has changed nick to Ngevd. 08:02:08 monqy: the main nice thing is that you can split up the IO "sin bin" a bit 08:02:20 by offering an interface to various impure things like stablenames through a new effect 08:02:29 and then provide standard erasure to the AnyIO effect 08:02:32 and an unsafe erasure which just gets rid of it 08:02:33 -!- Ngevd has quit (Remote host closed the connection). 08:02:47 splitting up the sin bin like that reminds me a bit of ST 08:03:00 (you could just compose unsafe erasure of AnyIO (i.e. unsafePerformIO) with the safe erasure, but that means you're importing the unsafely-erase-AnyIO module) 08:03:09 (and with things like SafeHaskell, that's a no-no :P) 08:03:16 monqy: yeah, I think you can do ST as an effect, but don't quote me on that 08:03:24 ST has the nice advantage that it's pure 08:04:46 so how does this effect splieting work,,, is it necesarilye handled as a core langauge thing? 08:05:04 monqy: i'm not sure what you mean, how does it work 08:05:05 -!- Ngevd has joined. 08:05:07 oh 08:05:08 I thought I explained the main aspects 08:05:22 i meant specificalyl with the io sin bin 08:05:25 -!- Ngevd has quit (Client Quit). 08:05:36 monqy: you just represent it as IO and don't export the constructor 08:05:42 oh 08:05:54 safe erasure is just unwrapping the constructor (modulo the effect system), unsafe erasure is just unsafePerformIO on top of that 08:06:22 and you know that unsafely erasing an (M RNG a) can't have any unsafe side-effects other than using and mutating the global RNG 08:06:30 which is a much stronger guarantee than unsafePerformIO gets you :P 08:11:33 sounds good i guess 08:11:36 -!- monqy has quit (Quit: hello). 08:28:24 -!- Phantom_Hoover has joined. 08:30:06 -!- CakeProphet has quit (Ping timeout: 255 seconds). 08:34:37 -!- Vorpal has joined. 08:55:35 -!- elliott has quit (Remote host closed the connection). 08:55:39 -!- elliott_ has joined. 09:02:45 -!- cheater has quit (Quit: Ex-Chat). 09:03:38 -!- cheater has joined. 09:05:28 -!- azaq231 has quit (Quit: Leaving.). 09:08:38 `addquote elliott i smell of poo 09:08:42 682) elliott i smell of poo 09:08:46 elliott i smell of poo 09:09:18 Fascism: 09:09:19 `delquote 682 09:09:21 ​*poof* 09:12:35 OMFG 09:12:38 Simon's skin 09:12:39 has 09:12:52 a dorf smiley on the top of the hat 09:13:11 o;h my god 09:16:58 -!- SimonRC has quit (Ping timeout: 260 seconds). 09:18:32 -!- SimonRC has joined. 09:52:40 What is this crap you can't even use FTL for straight time travel. 09:52:49 What why not. 09:52:55 That's bad fix that? 09:53:36 elliott_, you need to have a reflector and something and something else. 09:53:50 And basically you can't just fire a giant neutrino laser into the past. 09:53:59 Fuck 09:53:59 that 09:54:00 shit 09:54:09 -!- nooga has joined. 10:06:22 Phantom_Hoover: how fast can we make them go (the netrinos)? 10:06:41 hagb4rd: About sixty ns faster than they should be able to. 10:06:48 ...modulo the fact that it's probably not true. 10:06:56 But the margin of error has been fixed very, very low. 10:07:00 /Something/ is up. 10:07:01 i see 10:11:11 Does anyone have a good name for a combination of yaw and pitch? 10:11:13 Literally just a tuple of 'em. 10:11:17 fizzie? :p 10:11:47 I don't know. Something related to "direction"? That's what it's indicating. 10:12:03 bpitch 10:12:05 Or, well, that's what it's usually indicating, anyhow. 10:12:12 fizzie: Yes, true. But then what if you add roll? WHAT THEN???? 10:12:15 "yatch", "paw". 10:12:22 PH already said those. :p 10:12:22 Then it's "orientation". 10:13:24 Right. 10:13:34 A vague term if there ever was one. :p 10:17:11 -!- zzo38 has quit (Remote host closed the connection). 10:18:43 question: if the would explode, would there be any effects mesasurable on earhh during th first 8 minutes (event horizon) 10:18:54 if the sun 10:21:18 I think gravity goes FTL because it's spacetime magic. 10:21:26 Think. I might be totally wrong here. 10:21:31 Not lightwise or anything, of course. 10:22:01 Yeah, gravity is instant, it seems. 10:22:29 yea, thats the direction my question goes.. so gravity is not dependent on the barriers of lightspeed, rightz? 10:23:06 Hmm, it still propagates with a delay apparently 10:23:07 its effects 10:23:12 s/apparently/apparently./ 10:23:18 Meh, this is way beyond my knowledge. 10:23:33 But the answer is almost certainly no, you can't use gravity to communicate faster than light :P 10:23:46 i guess its beyond the knowledght of humanity.. but there may be theories 10:26:42 superposition and EPR is interesting 10:26:43 http://en.wikipedia.org/wiki/EPR_paradox 10:27:08 though old stuff but still ass kickin 10:31:09 fizzie: Sigh. Some of the protocol is sent as "rotation, pitch, roll"; some of it as "yaw, pitch". Er, wait, that's just the fault of the documenters... 10:31:13 DISREGARD THAT 10:31:36 But do you suck cocks? 10:31:45 Only wrt my disregardation. 10:33:52 fizzie: I don't suppose you happen to know about the two different packed byte formats for yaw and pitch. 10:34:34 There are two? 10:34:54 One in steps of 2pi/256, one as a fraction of 360. 10:35:05 (And maybe the "packed byte" format is a third format altogether? The wiki never says what it is.) 10:35:13 elliott_: cheater doesnt like you :) 10:36:13 augur: I don't think we need to start drama with him here in the channel; if you're talking about the thing in #haskell then you already know what you'll cause by saying things like that. 10:36:28 i dont even know! all i know is its funny 10:37:08 elliott_: I know that the pickup_spawn uses (IIRC) angles in units of what I like to call brads (cf. the gradian; 2pi... sorry, tau == 256 brads), I don't know what that other thing is about. 10:37:35 fizzie: Brads. Really now? 10:37:47 It's 'b' for 'byte', you see. 10:37:49 Yaw byte126 The X Axis rotation as a fraction of 360 10:37:49 Pitch byte0 The Y Axis rotation as a fraction of 360 10:38:04 Whereas: 10:38:05 Yaw byte-27 The X Axis rotation in steps of 2π/256 10:38:05 Pitch byte0 The Y Axis rotation in steps of 2π/256 10:38:19 I would not be surprised if that were the same thing. 10:38:39 fizzie: Are you saying that 2π = 360? 10:38:54 Or are you saying that it just only /steps/ in those increments as to what the Notchian server/client sends? 10:39:09 I'm saying that 2pi rad = 360 degrees. 10:39:13 Oh, hmm. 10:39:19 "As a fraction of 360" is so silly. 10:39:25 Yes, it is BAD. 10:39:33 I mean, that should make some of the degrees that are degrees unrepsrespresntable. 10:40:00 y 360 anyway? 10:40:09 Degrees. 10:40:13 yes 10:40:32 is there a reason for 360 10:40:53 "The original motivation for choosing the degree as a unit of rotations and angles is unknown. One theory states that it is related to the fact that 360 is approximately the number of days in a year.[3] Ancient astronomers noticed that the stars in the sky, which circle the celestial pole every day, seem to advance in that circle by approximately one-360th of a circle, i.e., one degree, each day. Some ancient calendars, such as the Persian calendar, used 360 da 10:40:54 ys for a year. The use of a calendar with 360 days may be related to the use of sexagesimal numbers." 10:41:02 There are alternative ideas, too. 10:41:15 It's a very divisible number, that much is true. 10:41:21 would make kind of sence 10:42:23 360 is such a number. 10:42:52 at least you it has a few nice factors 10:43:14 indeed 12 would make better base than 10 10:46:17 divide and conquer 10:47:17 MC/Protocol/Types.hs:209:50: Not in scope: type variable `dreiving' 10:47:23 Whoops. Never drink and dreive. 10:50:29 fizzie: You can represent all those packed values precisely as a float, right? :p 10:50:31 SO MUCH PARANOIA. 10:51:04 Very likely. 10:51:13 NOT GOOD ENOUGH 10:51:23 fizzie: (So they're unsigned bytes, right?) 10:52:13 Possibly, though I don't think it really matters; -1 brad is pretty much the same thing as 255 brad. 10:52:29 "Additionally, yaw is not clamped to between 0 and 360 degrees; any number is valid, including negative numbers and numbers greater than 360." Just why. 10:52:56 where getComponent = (/ 360) . fromIntegral . SE.getWord8 10:52:57 LOOKS GOOD TO ME 10:53:52 Or, hmm. 10:53:56 Is that actually right? 10:54:04 I don't think it is, no. 10:54:22 I want 256/360. 10:54:49 where getComponent = (/ 360) . (* 256) . fromIntegral . SE.getWord8 10:54:52 LOOKS GOOD TO ME??? 10:55:06 If the original Word8 is in brads, you want (/ 256) to make it [0, 1], and then eiher (* 360) or (* (2 * pi)) to make it degrees or rads. 10:55:13 Er, right, wrong way around >_< 10:55:19 Well, [0, 1) I guess. 10:55:21 I'm making it degrees, since that's what the float fields in the protocol are. 10:55:48 where getComponent = (/ 256) . (* 360) . fromIntegral . SE.getWord8 10:55:51 FINALLY LOOKS GOOD TO ME 10:56:14 The yaw field is the one that collects all the rotation the object ever goes through. 10:56:25 I thought that was fixed. 10:56:30 Oh, it was? 10:56:34 Could be, I haven't been following. 10:56:34 Well, I thougth so. 10:56:36 thought 11:03:21 -!- BeholdMyGlory has joined. 11:04:54 elliott_, you might need to turn it into radians to be able to do sane calculations on where the player is looking later on (if you need that sort of stuff). 11:05:08 I'm sticking to just mapping the protocol as best as I can for now. 11:05:41 elliott_, but are you normalising it to 0-360 at least? 11:07:50 Vorpal: No. I'm not losing any data from the packets. 11:07:54 It is a representation of the network protocol. 11:28:58 -!- hagb4rd has quit (Ping timeout: 248 seconds). 11:32:25 What are the haps my friends. 11:34:52 Happity. 11:45:00 -!- augur has quit (Remote host closed the connection). 11:53:18 -!- hagb4rd has joined. 11:53:58 hurray! finally i've found some serious footage on the apollo mission 11:54:00 http://www.youtube.com/watch?v=_ecBbSIdBKI&NR=1 11:55:01 Is this just a reading of the Onion article. 11:55:28 onion article? 11:56:25 http://members.shaw.ca/rlongpre01/moon.html 11:56:45 ah thx 12:03:32 -!- augur has joined. 12:16:20 -!- CakeProphet has joined. 12:17:03 lolhi 12:17:36 elliott_: hi 12:17:42 hi 12:17:51 man being drunk is cool 12:17:53 weeeeeee 12:17:57 oh no 12:18:00 bluh bluhbluhbluh 12:18:04 be in 12:18:07 another place 12:18:12 OKAY FINE 12:18:17 I won't act drunk like I am. 12:18:38 I will maintain my usual demeanor of serene austerity. 12:20:23 bluh. 12:21:09 oh my I believe I feel the beginniong of what is referred to as a hahgnover 12:21:23 time to drink water 12:21:28 No 12:21:29 gluhgluhgluh 12:21:32 drink more alcohol 12:21:38 DROWN THE HANGOVER 12:23:15 apparently it's not common knowledge that water = hangover cure 12:23:27 apparently people can be stupid 12:23:31 I'm shocked. 12:28:30 elliott_: you, sir. what are you doing. 12:29:09 coding 12:29:56 what 12:30:38 coding 12:30:47 as in, "coding what?" 12:30:55 stuff 12:31:01 oh good 12:31:04 stuff is good for codes. 12:31:58 STUFF is the BEST. 12:32:10 stuff is the best codes. 12:32:35 coding the stuff makes the best codes for the stuff. 12:36:39 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 13:02:04 -!- MSleep has changed nick to MDude. 13:15:15 -!- sllide has joined. 13:16:41 goddamn clang on OSX 13:17:34 goddamn os x 13:31:31 -!- ais523 has joined. 13:41:39 hi ais523 13:41:45 hi elliott_ 14:03:54 Aw, nobody even noticed my haskell question. :/ 14:05:17 I choose to blame... ais523. 14:05:46 -!- ais523 has quit (Ping timeout: 248 seconds). 14:05:52 -!- sllide has quit (Read error: Connection reset by peer). 14:05:54 Dammit. 14:08:35 -!- sebbu2 has changed nick to sebbu. 14:09:08 -!- asiekierka has joined. 14:09:10 i was bored: http://ego.64pixels.org/ 14:11:34 -!- Wamanuz has quit (Remote host closed the connection). 14:17:16 -!- asiekierka has quit (Ping timeout: 276 seconds). 14:18:29 -!- asiekierka has joined. 14:48:32 > let foo = map (\x -> map (x:) foo) ['a'..'z'] 14:48:33 not an expression: `let foo = map (\x -> map (x:) foo) ['a'..'z']' 14:48:33 > let foo = map (\x -> map (x:) foo) ['a'..'z'] in foo 14:48:34 Couldn't match expected type `GHC.Types.Char' 14:48:35 against inferred type... 14:48:37 > let foo = map (\x -> concatMap (x:) foo) ['a'..'z'] in foo 14:48:38 ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 14:48:41 heh 14:48:46 > let foo = ['a'..'z'] map (\x -> concatMap (x:) foo) foo in foo 14:48:47 Couldn't match expected type `t1 -> t2 -> t3 -> t' 14:48:47 against inferred... 14:48:54 > let foo = map (:[]) ['a'..'z'] ++ map (\x -> concatMap (x:) foo) foo in foo 14:48:55 Couldn't match expected type `GHC.Types.Char' 14:48:55 against inferred type... 14:49:00 > let foo = map (:[]) ['a'..'z'] ++ map (\x -> map (x:) foo) foo in foo 14:49:00 Couldn't match expected type `GHC.Types.Char' 14:49:01 against inferred type... 14:49:04 > let foo = map (:[]) ['a'..'z'] ++ map (\x -> map (x++) foo) foo in foo 14:49:05 Couldn't match expected type `GHC.Types.Char' 14:49:05 against inferred type... 14:49:07 > let foo = map (:[]) ['a'..'z'] ++ map (\x -> concatMap (x++) foo) foo in foo 14:49:09 ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s... 14:49:14 > let foo = map (:[]) ['a'..'z'] ++ concatMap (\x -> map (x++) foo) foo in foo 14:49:16 ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s... 14:49:18 > let foo = map (:[]) ['a'..'z'] ++ concatMap (\x -> map (x++) foo) foo in drop 99 foo 14:49:20 ["aaav","aaaw","aaax","aaay","aaaz","aaaaa","aaaab","aaaac","aaaad","aaaae"... 14:49:25 hm 15:21:26 -!- sebbu2 has joined. 15:21:30 -!- sebbu has quit (Ping timeout: 248 seconds). 15:23:29 -!- sebbu2 has changed nick to sebbu. 15:32:01 Phantom_Hoover: oi, solve my haskell problem. 15:32:57 It is fixed. 15:34:09 OK thakns. 15:36:04 -!- ais523 has joined. 15:36:58 hi ais523 15:37:11 I blamed you for my Haskell problem then you left, and it didn't got fixed :'( 15:37:13 hi elliott_ 15:37:30 I didn't leave, the computer crashed (overheating because I forgot to unstick the fan) 15:37:36 then I went shopping 15:37:38 it was my curse 15:37:49 I didn't damn you but I evidently cursed you 15:38:13 hmm 15:38:18 depends on what sort of curse it was, I suppose 15:38:46 a Haskell one, obviously 15:45:29 -!- tiffany has quit (Ping timeout: 260 seconds). 15:51:42 -!- tiffany has joined. 15:56:11 Conclusion: 15:56:17 Haskell kills computer fans. 15:56:35 Clearly. 16:10:10 -!- Ngevd has joined. 16:10:17 Hello! 16:11:30 hi 16:13:28 I cut my finger this morning 16:14:00 rip 16:14:16 -!- sllide has joined. 16:17:03 ?hoogle (m a, m b) -> m (a,b) 16:17:03 No results found 16:17:36 -!- derrik has joined. 16:20:36 -!- Ngevd has quit (Quit: Taneb|Walkingdoor). 16:34:00 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]). 16:40:27 :t uncurry $ liftM2 (,) 16:40:28 forall a1 a2 (m :: * -> *). (Monad m) => (m a1, m a2) -> m (a1, a2) 16:40:57 I need a dislike button for ":t doen't work in query". 16:42:21 fizzie: ?ty 16:42:26 And yeah, I knew that. 16:42:41 (equiv. @ty, @type.) 16:43:42 So does anyone know a better way to do effectively a "git stash" but then only partially re-apply the changes? 16:43:44 git add -p style 16:44:04 I want to incrementally migrate the current branch head to my working copy by making commits of slightly modified versions of parts of my working tree. 16:44:38 Ty for ?ty. 16:45:06 Yw for ?yw. 16:45:07 ?yw x 16:45:07 Couldn't find fortune file 16:45:10 Ah. 16:45:16 fizzie: Now in return you must git-help me. 16:45:42 git stash -p? 16:48:23 Deewiant: That's just for stashing. 16:48:28 I want to stash everything then selectively /apply/ it. 16:48:40 -!- derrik has joined. 16:48:47 Why can't you first selectively stash, then apply everything 16:48:49 Basically I want to shove all my changes out of the way, then iteratively: pick part of stash → tweak it → commit → repeat. 16:48:58 Deewiant: What would that workflow look like? 16:49:04 Determining each chunk ahead of time? 16:49:18 You're doing it effectively at the same time 16:49:21 That would be awkward, since decisions made at each point during the modification process would affect the decision of which next thing I'd do or how to split it up. 16:49:25 -!- derrik has quit (Client Quit). 16:49:30 Instead of stash, checkout, repeatedly do stuff 16:49:37 Well o'kay 16:49:52 Last time I just git diff'd, git reset'd, and then manually re-applied everything 16:49:55 But that's awkward 16:50:12 Then you can do one stash -p and one stash and then when you've applied that part, do it again 16:50:12 git apply doesn't seem to have anything to do hunk selection. 16:50:24 Deewiant: I want to operate starting on a clean working tree. 16:50:28 So everything must be stashed before I can start. 16:50:44 And like I said, picking the splits ahead of time is inconvenient. 16:50:53 You're not doing it ahead of time there 16:50:59 Maybe I misunderstand 16:51:10 git stash -p requires me to select chunks, no? 16:51:18 You're doing a new stash -p every time after you commit the previous one 16:51:33 Hmm 16:51:34 So 16:51:59 Git stash, loop { git stash apply, git stash -p, select everything BUT the things I want to commit, tweak, commit }? 16:52:07 That works, but it's rather intuitive that no means yes and yes means no 16:52:10 s/intuitive/un/ 16:52:53 I was thinking loop { git stash -p, git stash, apply the -p'd one, tweak, commit, go back to where you were and apply the non-p'd one } 16:53:11 Hmm 16:53:13 That could work, yes 16:53:17 Why is git's workflow so ugly 16:53:20 If I were you I'd just apply the whole stash and then git add -p it 16:53:30 But that's just me 16:53:32 Deewiant: Doesn't even vaguely work, because I need to tweak it 16:53:38 I want to maintain a consistent state each commit 16:53:46 Not just have a seemingly split up sequence of commits that's actually just nonsense 16:53:47 You can re-stash prior to every commit 16:53:58 oh 16:54:06 Deewiant: Won't work, my changes involve splitting a file into two new ones 16:54:21 What does that break 16:54:44 Means that changes will be lost if I stash like that, or rather I won't be able to test my tweaks 16:55:48 Howso 16:59:52 Deewiant: Maybe I'm misunderstanding 17:00:00 Apply the whole stash 17:00:02 Git add -p 17:00:05 Commit 17:00:06 Re-stash 17:00:06 -!- Ngevd has joined. 17:00:18 Where in this workflow am I able to test the tree about to be committed, sans all these merges and stuff 17:00:26 Or do I re-stash before every commit 17:00:27 OK, you said that 17:00:28 Swap re-stash and commit 17:00:28 So 17:00:30 Apply the whole stash 17:00:33 Git add -p 17:00:34 Re-stash 17:00:35 Tweak 17:00:36 Commit? 17:00:51 Yes, essentially 17:00:56 Essentially? :p 17:01:04 I'd tweak before the stash in case you use something from there 17:01:12 And then re-tweak afterwards if necessary 17:01:18 I don't understand 17:01:30 I have to tweak after stash because the post-stash-changes landscape is wildly different 17:01:40 So I can't really consult another file to figure out what to do unless I stash first 17:01:55 Fair enough 17:02:04 It doesn't really matter, that was just a detail :-P 17:02:16 Yeah OK I guess this will work 17:02:24 I still think git needs a better incremental splitting workflow though 17:02:45 -!- copumpkin has quit (Ping timeout: 245 seconds). 17:02:53 Basically "rip the selected hunks out of the stash and apply them" 17:02:54 Rip as in remove 17:03:07 Maybe there is something like that, I just don't know about it. 17:03:10 -!- copumpkin has joined. 17:03:35 Maybe I'll write t :P 17:03:36 it 17:03:51 Deewiant: Now here's a question: Won't stash after add -p still stash the added changes? 17:03:59 Or does stash only stash stuff not anywhere gitwise? 17:04:14 I can't remember, I think there's an option to not stash indexed stuff 17:04:45 Deewiant: Now say I split a file into two, how would I stash the two new files, "git add" would make them not be stashed because of the above :-P 17:04:54 Note: This game is impossible to win. 17:05:18 Shrug, figure it out 17:05:33 The solution here is to not end up in this situation ;-) 17:06:02 -!- hagb4rd has quit (Ping timeout: 248 seconds). 17:06:10 Deewiant: A large part of the git advertisement is about being able to detangle overlapping changes because of the wide acceptance of history modification, and separating version-control time from development time 17:06:17 Perhaps I was mislead 17:06:32 Nobody said you're not able to do it 17:06:40 I wouldn't call this able to do it 17:06:40 You're just complaining about its difficulty 17:07:14 git is totally great, you can do X. Note: X is an arduous process involving animal sacrifice and death of loved ones. 17:07:26 OK, that stash seemed to work. 17:08:18 I'd rather do the animal sacrifice in this situation than "hg commit -m 'Pile of crap that I cannot unpile'" 17:09:24 Is hg the new standard for VCSes? 17:09:26 Bummer 17:09:48 Alright, it's time to do this shit 17:09:57 Deewiant: Do you know any way to retain the stash message through this process btw :-P 17:10:35 Stashes have messages? :-) 17:11:07 git stash save "I'm probably the kind of person who uses Getting Things Done and ritually practices BDD- fuck, I'm out of space. This is violating the standards. Oh god. Oh god." 17:11:19 elliott@katia:~/Code/mchost$ git stash list 17:11:19 stash@{0}: On master: Client/Server module split, records, better test server 17:11:20 So professional 17:12:03 I know 17:12:11 alias restash='git stash save ...' 17:13:06 Oh, hmm 17:13:11 Deewiant: There's quite a major problem with your simpler model 17:13:14 I only want to keep parts of the index 17:13:19 Specifically, I want to keep the parts I add -p'd 17:13:23 But not the new files created by the split 17:13:31 It really feels like git is conflating two things here... 17:13:46 You should be able to let it know a file exists without having it be marked as to-commit. 17:15:26 I was thinking loop { git stash -p, git stash, apply the -p'd one, tweak, commit, go back to where you were and apply the non-p'd one } 17:15:30 Alright, let's see here now 17:15:37 OK, I think that works 17:19:33 Deewiant: Thanks, this seems workable 17:20:01 No problem 17:21:33 error: patch failed: MC/Protocol/Fields.hs:10 17:21:33 error: MC/Protocol/Fields.hs: patch does not apply 17:21:33 Cannot remove worktree changes 17:21:34 Sigh 17:21:36 -!- sllide has quit (Ping timeout: 256 seconds). 17:22:12 Oh, there we go 17:23:20 elliott@katia:~/Code/mchost$ selectstash 17:23:20 MC/Protocol/Fields.hs: needs merge 17:23:20 MC/Protocol/Fields.hs: needs merge 17:23:20 MC/Protocol/Fields.hs: unmerged (5627f96b476d7f06ae983b63aad445fcef5ade68) 17:23:20 MC/Protocol/Fields.hs: unmerged (f1ce5a1d97eee533fbaaa16b9b9e2d611c9902ce) 17:23:20 MC/Protocol/Fields.hs: unmerged (859cf129e4554d3253ee71c6497d5794626c7662) 17:23:22 fatal: git-write-tree: error building trees 17:23:24 Cannot save the current index state 17:23:30 Deewiant: What the fuck do you do if you have a fucking merge conflict between a stash and a commit you just made 17:23:55 I fixed the conflict, now what 17:24:01 Obviously I can't commit it 17:24:04 Do I need to... restash it?? 17:24:06 I forget 17:24:07 Make a merge stash???? 17:24:09 Augh 17:24:45 Maybe you should keep a separate branch here instead of a stash :-P 17:25:00 That would be uglier since I'd get explicit merge commits I'd have to discard 17:25:12 I'll hack up a toolchain for this soon, it's not a difficult operation at its core really 17:25:19 Deewiant: What search terms would you use to unforget :P 17:26:08 git stash "needs merge" unmerged 17:26:55 Yay, I fixed it all 17:26:57 Kind of 17:28:45 stash@{0}: On master: Latest working tree 17:28:45 stash@{1}: On master: To apply 17:28:45 stash@{2}: On master: Latest working tree 17:28:46 Fuck 17:28:49 0 is latest right? 17:28:52 Yep 17:30:54 Deewiant: The merge conflicts I'm getting are great 17:31:05 It's because to remove the addition lines right next to other lines I don't want added I have to remove them entirely 17:31:07 Thus fucking up the context 17:31:09 The result: 17:31:12 <<<<<<< Updated upstream 17:31:12 ======= 17:31:12 , blockPos 17:31:12 , blockPosShortY 17:31:12 , blockPosIntY 17:31:13 , playerPos 17:31:15 , playerPosXSYZ 17:31:17 >>>>>>> Stashed changes 17:31:19 "I EXPECTED NOTHING HERE BUT THERE WAS NOTHING" 17:31:50 The solution is literally just to remove the merge conflict lines 17:32:41 Ooh, I know 17:32:45 I just need to remove the context below 17:32:49 haha, does the Norwegian alphabet really go A-Å? 17:32:51 that must be confusing 17:32:53 Darn, that doesn't work 17:33:06 ais523: Hi, I'm dealing with git 17:33:11 ouch 17:33:43 I'm happy that I managed to convince at least you that it was fundamentally broken 17:33:48 normally, I don't manage to convince anyone 17:33:57 ais523: How many people have you tried it on 17:34:06 more than you might expect 17:34:15 most people don't listen to the whole tihng 17:34:15 *thing 17:34:19 This isn't really git's fundamental brokenness showing, it's just lack of a decent UI for this 17:34:26 I know 17:34:30 Some merging issues but they'd be there with sg too, you could just avoid some of them with smarts 17:34:38 (Do you have the context of what I'm doing or are you just talking generally) 17:34:44 -!- ive has joined. 17:34:55 I almost have the context, but I'm not paying enough attention to see it as anything but a sequence of facts 17:35:57 ais523: Basically: For like a day, I was working hard on long, tedious, boring work on mchost which resulted in some fairly large restructuring of what little there is right now, and couldn't be bothered with version control in the slightest. Now I want to turn this huge working diff into a sensible set of atomic commits where each one in sequence builds and runs properly, etc. 17:36:18 Which means that I can't just select hunks to apply in succession; I'll need to tweak and test it afterwards. 17:36:27 The basic operation git is missing is selecting hunks from a stash which then rips out those hunks from the stash and applies them to the tree. 17:36:37 That would let me select which part to work on next, do my tweaks, commit, repeat. 17:36:39 in darcs, you could do that with a second repo and a pull 17:37:09 ais523: Even that's pretty inconvenient, because it'll have undesirable things like merge commits having the potential to get in. 17:37:14 yep, indeed 17:37:21 and the darcs method is far from certain 17:37:43 I basically want something "automatic" like bisecting is; you start the process, select some hunks, it does the obvious thing, you fix it up, make sure it builds, commits; then you resume, select more hunks, etc., until there aren't any left. 17:37:57 Automatic in that, you don't have to repeat anything, you just start / resume / resume until you're finished. 17:38:16 What's really annoying is that git refuses to split a hunk past a certain point. 17:38:29 Which makes e.g. selecting only one of five adjacent line additions to an import list annoying. 17:38:39 You have to manually edit the hunk, which changes the context, which creates bogus merge conflicts afterwards. 17:40:32 Saved working directory and index state On master: To apply 17:40:32 error: patch failed: MC/Protocol/Fields.hs:12 17:40:32 error: MC/Protocol/Fields.hs: patch does not apply 17:40:33 error: patch failed: MC/Protocol/Types.hs:112 17:40:33 error: MC/Protocol/Types.hs: patch does not apply 17:40:33 Cannot remove worktree changes 17:40:39 ais523: believe it or not, but this is what things look like when they're /working/ 17:40:53 heh 17:40:53 Congratulations git: my workflow now involves commands erroring out. 17:41:07 It literally exits with status 1 and all. 17:42:46 ais523: Here's what I'm doing, just so you can experience the absurdity: Apply the stash of "all changes not yet committed". Create a new stash interactively; select the hunks I want to work on this commit. Stash all changes (becoming the new "all changes not yet committed" stash); this leaves out the already-stashed selected changes, obviously. Apply the manually-selected stash. Tweak, tweak, commit. Repeat. 17:43:11 There's usually a merge conflict with the stashes at one point in this process because of hunk editing requirements. 17:43:16 Which involves some git reset HEAD stuff. 17:44:11 There exist at least two fairy chess piece notaqtions 17:49:59 ais523: I fear I may be taking fear of breaking the build a little too far 17:50:05 heh 17:50:12 I don't think a single commit to the repository doesn't compile so far 17:50:20 really, we need to invent a programming language that merges well 17:50:21 With no warnings 17:51:25 Holy crap, finally no merge conflicts with the stash 17:54:27 -!- derrik has joined. 18:10:00 ais523, will you continue my INTERCAL tutorial? 18:11:01 well, you keep running away from it a lot 18:11:31 I ran away once 18:11:39 twice 18:11:58 Okay, twice 18:13:39 Three times 18:13:40 Bye 18:13:41 -!- Ngevd has quit (Quit: Leaving). 18:14:08 … 18:16:49 ais523: I think you should: give up. 18:17:20 yes, I don't think that tutorial would go too well 18:17:34 So, what's the way to get git to assume I passed --color to everything by default; answering this will save me an ENTIRE WEB SEARCH. 18:17:37 ais523 can do it, so can I. 18:17:43 alias git = git --color 18:17:56 * ais523 runs 18:18:03 -!- derrik has left. 18:18:04 elliott@katia:~/Code/mchost$ git --color log --oneline 18:18:04 Unknown option: --color 18:18:04 usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] 18:18:04 [-p|--paginate|--no-pager] [--no-replace-objects] 18:18:04 [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] 18:18:04 [--help] COMMAND [ARGS] 18:18:10 ais523: You lose twofold 18:18:10 bleh, that's really stupid 18:18:26 git still has the legacy of being like a billion shell scripts underneath. :p 18:18:26 what happens if you pass --color to something that doesn't support --color? 18:18:40 elliott@katia:~/Code/mchost$ git fetch --color 18:18:40 error: unknown option `color' 18:18:50 * elliott_ just searches for it 18:18:56 I really need a nice verb form of Google that doesn't imply Google. 18:19:37 One thing I really like about git is that its little diagrams of the changed files and how much they were changed is pretty. :p 18:19:41 websearch? 18:19:51 Also the way it detects common paths in renames and the like and uses {foo,bar} syntax. 18:19:53 the major deficiency of Google is that it only searches the Web by default 18:20:03 if only it searched people's minds too, it'd be more useful 18:20:05 also a privacy nightmare 18:20:12 git has really rather aesthetically pleasing final output, it's just crappy at producing it. 18:20:12 ais523: heh 18:20:34 ais523: maybe we can get NeutrinoOverflow 18:20:50 ais523: basically, you ask your question, and if anyone ever answers it in the entire rest of the universe's lifespan, you get the answers back immediately 18:20:58 the main problem is that there's always thousands of them and huge flamewars over which is the best 18:21:11 whole threaded forums devoted to arguing the top two answers versus each other 18:21:22 millions of innocents killed in the name of using short options rather than GNU long options 18:21:35 but... I mean, you _do_ get an answer instantly, that's gotta count for something, right? 18:22:00 someone has to write that now, I would read the crap out of that short story 18:22:28 oh, git actually has command autocompletion 18:22:30 it'd be great, but I'd be no good at writing it 18:22:36 elliott_: *bash has command autocompletion for git 18:23:05 ais523: indeed, but "git st" is faster than "git status" 18:23:12 oh, darn, it has multiple options there 18:23:15 so it wouldn't work 18:23:25 (it's just an option to make git automatically run the suggested command if there's only one) 18:23:41 its autocompletion for darcs is pretty amazing, it does things like darcs add only lists files that aren't in the repo already 18:24:02 this isn't really a win for darcs over git in theory, only in practice 18:24:36 hmph, git has a bunch of colour options but there doesn't seem to be one way to set them all usefully at onc 18:24:37 e 18:25:25 color.ui 18:25:25 When set to always, always use colors in all git commands which are capable of colored output. When false (or never), never. When set to true or auto, use colors 18:25:25 only when the output is to the terminal. When more specific variables of color.* are set, they always take precedence over this setting. Defaults to false. 18:25:26 o 18:25:30 h 18:26:37 http://16oa3.tk (Yes, I used Tweak.tk :P ) ; this is almost assuredly trollery, but the answer is pretty hilarious. 18:27:21 do you think the question or answer was trolling? or both? 18:27:49 I'm going for question being trolling, answer calling them on it 18:28:23 "Okay. Wow, you're kind of ignorant. America was formed by the ENGLISH. They didn't copy us, we copied them. David Beckham is English too. Also, there is no such language as 'American'... I take it you're a blonde..." 18:28:43 Do holier-than-thou attitudes ever pay off, ever? 18:28:49 They are like the universal catalysts of irony. 18:28:53 probably /sometimes/ 18:29:03 ais523: there's absolutely no way at all ever ever ever to tell git I'm splitting a file into two new ones, right? :( 18:29:12 it's showing me as removing the whole file and then adding two ~COMPLETELY NEW FILES~ 18:29:19 even though it's almost literally just splitting the thing in two 18:29:21 I don't think so, but I don't know 18:29:27 :'( 18:30:43 I can't believe Pugs is still maintained 18:31:33 is that a Haskell impl or Perl 6 impl? I get them muddled 18:32:03 latter 18:32:04 in Haskell 18:32:07 # modified: MC/Protocol.hs 18:32:07 # new file: MC/Protocol/Client.hs 18:32:07 # renamed: MC/Protocol.hs -> MC/Protocol/Server.hs 18:32:07 ugh 18:32:11 don't just pick the bigger half, git... 18:32:57 elliott_: This is nothing but a presentation issue. 18:33:02 I don't care :-( 18:33:38 "show [] 18:33:38 Show the changes recorded in the stash as a diff between the stashed state and its original parent." 18:33:40 git is not actually storing a new file and a rename action in its commit. It's simply storing a whole new filesystem tree in its immutable data store. 18:33:45 Is there any way to show the diff between the stashed state and the current HEAD? 18:33:48 That would be very useful for me. 18:33:59 That git then tries to present things in a confusing way is just a shame... 18:34:46 Should be able to: each stash is either a tree or a commit (I don't remember which) 18:35:06 IIRC git stash show should actually show you the appropriate hash. 18:35:16 Ah, it's a commit. 18:36:14 Oh, hey, even better: each stash gets stuffed in refs/stash. So: git diff HEAD stash@{0} 18:36:19 Oh, great. Thanks. 18:39:11 wow, I think this commit will actually merge better if I squash it with the previous one 18:39:15 is that even possible in git? 18:39:25 for merging to be like that, I mean 18:39:34 you can probably do it via interactive rebase somehow 18:39:42 merge first, then squash the merge commit backwards 18:39:48 Sounds about right. 18:39:48 yes, I know that :) 18:39:49 I just mean 18:40:00 is it possible for squashing a commit with a previous one to make merging easier 18:40:44 I don't really think so; it's a fairly naive three-way merge, isn't it? 18:40:49 right 18:41:37 With the only thing making git's merging work notably better is that the standard DVCS workflow encouraging branches that don't diverge *widely*. 18:41:54 s/encouraging/encourages/ 18:42:20 but seriously... worst diff: http://sprunge.us/CVSb 18:43:01 Yeaaah, diff is moronic. 18:48:22 pikhq: Hmm... given a commit, is there a way to selectively apply its diff using the hunk selection screen? 18:55:08 -!- monqy has joined. 18:56:04 pikhq: I SEE 19:08:39 -!- asiekierka has quit (Remote host closed the connection). 19:10:36 pikhq: Is there a way to refer to the index with "git diff"> 19:10:36 ? 19:10:50 As in, "git diff stash@{0}". 19:11:58 -!- zzo38 has joined. 19:12:11 -!- Ngevd has joined. 19:12:18 Hello! 19:13:07 I think what I will do, is move examples of my program into a separate file and then \input it into the main file. The example file can then be loaded into GHCi to try things with it. 19:13:18 -!- KingOfKarlsruhe has joined. 19:14:22 pikhq: :'( 19:15:10 -!- Ngevd has quit (Client Quit). 19:16:25 Ah, diff-index seems to be it, possibly. 19:17:01 oh, git diff --cached does it 19:40:00 but seriously... worst diff: http://sprunge.us/CVSb <-- nice paste name... 19:40:13 Heh 19:40:15 Heh. 19:40:21 Tpyoes are the worst. 19:48:55 elliott_, oh and, I don't really see any alternative way to format it without adding some "copy from file" command to diff 19:49:32 So? 19:49:54 git doesn't exactly spit out stock git output most of the time. 19:50:05 stock diff you mean 19:50:13 Yes. 19:50:34 Every time I see "diff --git" I imagine that somehow Linus just got the option he needed for diffs added to diff itself because, well, he's Linus. 19:50:42 But no; 'tis a sham. 19:53:07 yeah, diff doesn't have --git 19:55:47 elliott_: like "ls --emacs"? 19:55:56 (I'm not sure if I've got the name exactly right there) 19:57:07 ais523: it's --dired 19:57:20 yep, I thought I'd got the name wrong 19:57:53 Vorpal: But GNU patch has support for "diff --git" output: http://git.savannah.gnu.org/cgit/patch.git/tree/NEWS second '*'. 19:58:09 Heh. 19:58:45 git is a pretty good immutable object store with support for tree objects that can be diffed and the like, I just wish people didn't mistake that for a VCS :D 20:04:21 In which and how many esolangs does it not matter the order of program lines? Which ones almost matter? Are there any with hex grids? 20:06:40 Two where the order does not matter are Whenever, and Strelnokoff. 20:14:38 I realize now, I think C-LONG also doesn't matter the order but for different reason (old BASIC interpreters also often reordered everything in order of line numbers) 20:17:40 Yes, I suppose with mandatory-unique line numbers the order will likely not matter. 20:17:54 Will anyone implement Ian's VAX Extensions? 20:18:36 Do you like games that scroll one way or both ways? 20:20:54 -!- Phantom_Hoover has changed nick to Notch. 20:24:21 -!- Vonlebio has joined. 20:26:39 -!- Notch has changed nick to Phantom_Hoover. 20:27:34 elliott_: maybe your diff would be more readable with git diff -M (rename detection) 20:27:57 olsner: Tried that, but it wasn't really 20:27:58 olsner: Tried that, but it wasn't really. 20:28:06 ok 20:31:38 -!- Vonlebio has quit (Quit: Leaving). 20:32:25 olsner: Tried that, but it wasn't really. 20:32:27 olsner: Tried that, but it wasn't really. 20:32:28 hi 20:33:26 hi 20:34:41 Vorpal: But GNU patch has support for "diff --git" output: http://git.savannah.gnu.org/cgit/patch.git/tree/NEWS second '*'. <-- huh, old version here then 20:35:23 diff --help | grep git turns up nothing here 20:37:12 since it's not prefixed by "Changes in version ..." in the changelog I think that list is for the next (i.e. unreleased) release 20:37:24 Do you like games that scroll one way or both ways? <-- I prefer games that scroll in all three dimensions, and in all directions there. 20:37:25 also, it's for patch, not diff 20:39:01 -!- pikhq_ has joined. 20:39:29 -!- pikhq has quit (Ping timeout: 260 seconds). 20:40:47 -!- copumpkin has quit (Remote host closed the connection). 20:41:41 -!- copumpkin has joined. 20:48:44 CakeProphet, are you still in that relationship with @vixen? 20:59:42 -!- pikhq has joined. 20:59:50 -!- pikhq_ has quit (Ping timeout: 245 seconds). 21:04:58 -!- elliott_ has quit (Ping timeout: 248 seconds). 21:07:06 -!- ive has quit (Ping timeout: 248 seconds). 21:19:48 -!- oerjan has joined. 21:22:59 You can have modules implicitly import other modules? 21:23:35 you can have a module explicitly export another module's definitions as its own, in which case it looks like that 21:25:09 makes it easy to make an api which doesn't depend on how you organize your modules internally 21:26:38 and then there are class instances, which _are_ imported implicitly, which sometimes creates trouble 21:27:35 (there's no way to hide them from a module which knows about both the types and the class 21:27:38 ) 21:29:40 ah elliott deficiency, i thought it was silent 21:35:18 What is this crap you can't even use FTL for straight time travel. 21:35:51 ftl only implies time travel if it is still independent of reference frame 21:35:59 oerjan, that too. 21:36:21 But what I meant was that you can't use it to shoot Hitler without shenanigans. 21:36:27 and if it is true that the speedup is 60 ns independent of the neutrino energy, then it probably is _not_ 21:37:09 i had another idea though - variant of my last 60 ns backwards in time thing. well, really just taking that to its conclusion. 21:38:03 if there is a jump which happens either at production or detection, then all we need for time travel is to get the accelerator and detector < ~ 20 m apart 21:38:52 hm i guess we'd want half that, to get an ordinary signal back in time 21:40:02 > 60e-9 * 300000000 21:40:03 18.0 21:40:30 < ~ 9 m, then 21:41:27 hm i guess at that distance it would be tricky to avoid all the _other_ particles generated by the accelerator :( 21:43:39 I think gravity goes FTL because it's spacetime magic. 21:44:03 dammit you realize this is a frequent question at any public physics forum? 21:45:14 (the answer, as you seem to have found, is that changes in gravitation propagate at light speed) 21:47:09 whether this means that gravity _itself_ propagates at light speed is hard to test because you cannot make a change that would note the difference without violating conservation laws or have something else move faster than light 21:47:35 *notice 21:47:59 well that's my impression of the discussions, anyway 21:48:32 O, nobody has beat me at "Month Name" and "Double quote" yet. Maybe later it will be. 21:49:26 "September" 21:49:37 yw 21:50:23 What about September? 21:50:44 -!- Patashu has joined. 21:51:04 it's the current month name. also i put it in double quotes. 21:51:38 I mean anagol. But it should not be too difficult to match me at those problems, I think. 21:52:08 (I noticed for "Month Name" that November is omitted) 21:52:22 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 6.0.2/20110902133214]). 21:55:53 Maybe I even missed something you can shorten it more. 22:03:33 17:32:49: haha, does the Norwegian alphabet really go A-Å? 22:03:33 17:32:51: that must be confusing 22:03:36 yes, and no. 22:04:17 Is there such a thing as Windows CE emulator that can run on Linux? 22:04:29 oerjan: hmm, how does your alphabet end? øæå? 22:04:39 Ours goes A..ZÅÄÖ. 22:04:40 æøå 22:04:46 oerjan: I'm thinking, when people leave off accents 22:04:56 ais523: well don't do that 22:04:59 how is å pronounced anyway? 22:05:10 approx. like aw in saw 22:05:21 ah, that's close enough for me to imagine it 22:05:47 The Finnish name for å is "swedish o". 22:06:08 although distinguishing all the back vowels in english is a little tricky for a norwegian. well this one, anyway. 22:06:33 i will assume we get it back with the front ones :P 22:07:01 "In Swedish, the long version represents IPA /oː/. In Danish and Norwegian, the long version is pronounced IPA /ɔː/." 22:08:17 see, i can barely think of that as a real difference :P 22:08:40 I read somewhere, someone invented a new letter of the English alphabet called "key" and which is always silent. 22:08:47 as an accent yes, but not as a different phoneme 22:09:48 We don't even officially have a ɔ at all; there's no "Finnish" listed on the occurrence list of that IPA sound in WP. 22:13:40 "The mid vowels are phonetically "true" mid, i.e. intermediate between close-mid ([e], [ø], [o]) and open-mid ([ɛ], [œ], [ɔ]).[3] However, since no language is known to phonemically distinguish all three of these levels of mouth opening, the International Phonetic Association (IPA) provides no separate symbols for mid vowel phones." 22:14:33 what language is this 22:15:08 Ours. 22:15:47 which reminds me, how is finnish ä pronounced 22:16:03 it's pronounced ä, silly 22:16:26 Front, unrounded, open; æ in other words. 22:17:48 it's the one sound in finnish where i keep looking at words and think, no, that cannot possibly be how it is pronounced. 22:18:05 (Where æ was the IPA æ.) 22:18:17 Which words are these? 22:19:13 whichever words :P 22:19:17 hmm, swedish ä is apparently pronounced ɛ 22:19:45 It's that sometimes, I believe. 22:20:49 and that's how my mind wants to pronounce the finnish ones too, i think. or something in between. 22:21:03 WP says it's æ in e.g. "päron", due to the r. 22:21:51 "/ɛː/, /ɛ/, /øː/, and /œ/ are lowered to [æ] and [œ̞], respectively, when preceding /r/.[5] In most Standard Swedish varieties, especially those spoken by younger speakers, [œ̞] is used in other contexts as well." (In Swedish.) 22:23:02 "The doctor orders" in Finnish: "lääkäri määrää". 22:24:27 hmm, swedish ä is apparently pronounced ɛ <-- is it? 22:24:33 such as in? 22:24:36 Vorpal: wikipedia said so 22:24:49 olsner, got any example words? 22:24:59 Vorpal: http://en.wikipedia.org/wiki/Swedish_phonology#Vowels 22:25:49 but I skipped the paragraph about sounds lowered to æ, that fizzie quoted, and just read the table first 22:26:29 I'm somewhat doubtful, I can't hear a difference between cases that it claims are pronounced ɛ and those it claims are pronounced æ 22:27:34 the case for ö is more obvious 22:31:31 -!- hagb4rd has joined. 22:33:52 -!- ive has joined. 22:37:04 ɛ should be rather different from æ; I mean, it could easily be closer to e. (Also: "In many central and eastern areas (including Stockholm), the contrast between /ɛ/ and /e/ is lost, especially the short variants[8] except before /r/[9] so that hetta ('heat') and hätta ('cap') and possibly even veta ('know') and väta ('moisten') are pronounced the same.") 22:38:11 fizzie, well veta and väta are spelled quite differently. The first two are pronounced only slightly differently 22:38:21 but I thought you meant when it is spelled with ä 22:39:06 I don't know what that means. I mean, ä is always spelled with ä; it's ä. 22:39:39 fizzie, I thought you meant above that ä was sometimes pronounced æ and sometimes ɛ 22:39:44 Yes. 22:40:05 we have a lot of scandinavian folks here 22:40:07 But a letter is by definition always spelled the same way. 22:40:40 fizzie, but all the examples above were using ä as one sound and e in the other case. So I haven't seen any examples of spelled ä pronounced ɛ yet? 22:40:53 is there any affinity between esolangs and scandinavia 22:41:08 hagb4rd, we have several people from UK too. And many from US. 22:41:16 yea 22:41:27 so? 22:41:41 väta min hätta 22:41:46 just breeding random thoughts 22:41:49 nooga, wtf 22:41:52 humpa! 22:41:57 Vorpal: what? 22:42:11 nooga, oh wait, you are washing your cap? 22:42:14 -!- augur has quit (Remote host closed the connection). 22:42:19 We also have at least two Canadians. 22:42:34 Vorpal: yep 22:42:35 how many from Australia? 22:42:49 or NZ 22:43:22 no one 22:43:28 Vorpal: What. It's (theoretically) pronounced as /ɛ/ in both hätta and väta; except according to that it can happen that what should be /ɛ/ and /e/ in 'hätta' and 'hetta', respectively, gets pronounced the same way. 22:43:31 they have no time for char 22:43:34 chat 22:43:55 And it's pronounced as /æ/ only before /r/, or some-such. 22:44:10 fizzie, hm, but issue is, it sounds the same in cases like ärt and väta to me. 22:44:17 So now I'm utterly confused 22:44:36 is this swedish? 22:44:42 -!- derdon has joined. 22:45:00 Technically those are supposed to be /æ/ and /ɛ/. But they are sort-of neighbouring sounds, so... 22:45:40 hagb4rd, yes 22:45:48 k, thx 22:46:14 but everything but finish sounds familiar in a way 22:47:36 dunno how this could happen, but finish is kind of extraterristic nature 22:48:04 its different 22:48:23 not wanting to bother anyone 22:49:38 no one <-- oh they do happen 22:50:06 my ex has gone to nz 22:50:28 see seems to be busy bunjeejumping and stuff 22:50:39 they're all happy in nz 22:50:52 keeping an eye on their sheep and stuff 22:51:13 Vorpal: Finnish only has /æ/ and /e̞/ (which is somewhere between /e/ and /ɛ/), so it's not very easy for a Finnish speaker to distinguish between all three of /e/, /ɛ/ and /æ/ either; it's just that I have a feeling often when they teach Swedish to Finnish-speaking folks, they just tell us to pronounce your ä as /e/ except when in front of /r/. 22:51:15 incidentally in norwegian, æ is mostly spelled e in front of r, but not always 22:51:35 Vorpal: Of course finlandssvenska is pretty far from real Swedish. :p 22:52:22 and is much rarer in front of other consonants 22:53:26 But for example 'nät' is something I'd pronounce rather /e/-ishly if for some reason someone would point a gun at me and tell me to start speaking Swedish. And I'd want to use that word. In that situation. Which sounds somewhat unlikely. 22:53:38 hm it may be short ær which is spelled er 22:54:07 (the word "er" would be an exception) 22:54:23 i know tolkien was inspired by finnish or at least some of its unique forms of pronouncing stuff 22:55:20 sindarin & quenya are related to finnish and greek 22:55:52 So they say. 22:55:55 erm i thought sindarin was related to welsh 22:55:56 yes 22:56:08 "Finnish, which I came across when I had first begun to construct a 'mythology' was a dominant influence, but that has been much reduced [now in late Quenya]. It survives in some features: such as the absence of any consonant combinations initially, the absence of the voiced stops b, d, g (except in mb, nd, ng, ld, rd, which are favoured) and the fondness for the ending -inen, -ainen, -oinen, also in some points of grammar, such as the inflexional endings -sse 22:56:09 (rest at or in), -nna (movement to, towards), and -llo (movement from); the personal possessives are also expressed by suffixes; there is no gender." 22:56:49 thx fizzie 22:57:53 Our inflection-suffixes for those are -lla, -lle and -lta (for external-locative; -ssa, -an/-en, -sta for internal), so it's not quite directly copied, just some styles. 22:58:18 lets call it influenced 22:59:00 -!- calamari has joined. 22:59:07 I wonder if our percentage of Quenya speakers is above the global mean, though. 22:59:14 Better ask Wolfram Alpha. 22:59:18 im sure 22:59:20 :D 23:00:00 "Fictional Things: Development of this topic is under investigation..." 23:00:04 Oh W|A, why must you fail me so. 23:01:48 "Petri Tikka comes from Finland or "Quenya-land". As a native Finnish speaker he is very well prepared to speak Quenya which is phonologically based on Finnish. Petri has translated a fragment of Kalevala into Quenya." 23:01:54 Uh-huh. 23:05:51 erm i thought sindarin was related to welsh 23:06:22 I was always suspicious of the whole elf/nature thing. 23:06:58 -!- hagb4rd2 has joined. 23:10:19 -!- hagb4rd has quit (Ping timeout: 248 seconds). 23:16:00 wikipedia agrees, anyway 23:19:06 "But then he discovered Finnish, and was filled with joy. Tolkien wrote, many years later: 'It was like discovering a complete wine-cellar filled with bottles of an amazing wine of a kind and flavour never tasted before. It quite intoxicated me.'" 23:19:10 Weird guy, Tolkien. 23:19:31 I speak Finnish almost every day and never get intoxicated. 23:19:38 At least not because of that. 23:20:21 It would, in fact, be rather difficult if. "Sorry, can't speak, need to be sober to drive home later." 23:20:29 He's like a Finland weeaboo. 23:25:51 -!- azaq23 has joined. 23:35:06 * Phantom_Hoover → sleep 23:35:08 -!- Phantom_Hoover has quit (Quit: Leaving). 23:36:42 -!- augur has joined. 23:41:05 -!- ais523 has quit (Remote host closed the connection). 23:45:01 -!- calamari_ has joined. 23:46:22 -!- nooga has quit (Ping timeout: 256 seconds). 23:46:48 -!- calamari has quit (Quit: Bye). 23:47:11 -!- calamari_ has changed nick to calamari. 23:51:33 It would, in fact, be rather difficult if. "Sorry, can't speak, need to be sober to drive home later." <-- written down on a paper I presume? 23:51:59 (because you would only get drunk while writing it presumably) 23:52:28 Well, I don't know if writing would help. Maybe just speaking in English only. 23:52:53 fizzie, but you would write it down once and then reuse the card that said that 23:53:41 Oh, of course. How practical. 23:55:57 fizzie, well apart from that the ailment is not very practical to begin with 23:56:02 well,* 23:56:27 (why do I *always* miss the comma after a line starting with "well,"?) 23:57:31 -!- DH____ has joined.