2011-10-01: 00:00:37 pikhq: what's up with mplayer/mplayer2 00:00:56 elliott: Fuck if I know. 00:01:15 thx super helpful :P 00:01:25 people should really stop naming forks such misleading things 00:02:02 -!- derdon has quit (Remote host closed the connection). 00:08:38 spearing utensil 00:13:38 xD 00:14:03 braincursion is the best because it has nothing to do with recursion. 00:15:30 * CakeProphet makes the best esolangs. 00:15:46 best is the best word. 00:16:13 But does Braincursion perform in incursion? 00:17:03 what is that? 00:17:09 oh nevermind 00:17:34 uh, no. 00:17:43 braincursion should be more like brainloop or something. 00:22:32 -!- tiffany has quit (Quit: ZNC - http://znc.sourceforge.net). 00:24:35 -!- ive has joined. 00:53:59 hi 00:57:59 What is "some" and "many" commands for Control.Applicative.Alternative supposed to mean? The description just says "One or more" and "Zero or more". 00:59:10 @src some 00:59:10 some v = some_v 00:59:10 where many_v = some_v <|> pure [] 00:59:10 some_v = (:) <$> v <*> many_v 00:59:24 @src many 00:59:24 Source not found. 01:00:55 > some [1,2] 01:00:59 mueval-core: Time limit exceeded 01:01:02 eek 01:01:13 :t some [1,2] 01:01:14 forall t. (Num t) => [[t]] 01:01:18 I tried that. Using some or many on nonempty lists doesn't stop. 01:01:29 > take 5 $ some [1,2] 01:01:32 mueval-core: Time limit exceeded 01:01:36 > take 1 $ some [1,2] 01:01:40 mueval-core: Time limit exceeded 01:01:44 not at all, it seems 01:02:14 > take 1 $ many [1,2] 01:02:18 mueval-core: Time limit exceeded 01:02:21 :t many 01:02:22 forall (f :: * -> *) a. (Alternative f) => f a -> f [a] 01:03:00 hm it may seem like it gives the empty list _last_ 01:03:23 i suspect it's meant for parser-like things 01:03:52 if used in Parsec, many would probably mean the same as Parsec's many 01:04:13 oerjan: Parsec has an Alternative instance nowadays 01:04:24 it just defines+exports its own identically-named equivalents because 01:04:25 yeah so it may use it directly 01:04:34 I did looked and found the "many" command in Parsec. 01:04:42 oerjan: I suspect it overrides some = ourSum and many = ourMany 01:04:46 since they're part of Alternative 01:04:55 ok 01:05:17 except: it doesn't 01:06:30 monqy: ? 01:06:40 it doesn't put its many in the applicative instance 01:06:46 its many still exists and gets exported though 01:06:55 ok 01:06:58 silly 01:07:15 any instead of some it has many1 01:07:31 Does the Applicative many still work though? 01:07:32 s/any/and/ 01:07:43 right 01:12:25 Using the Control.Applicative.many with Parsec does seem to work just as well as far as I can tell. 01:12:32 -!- tiffany has joined. 01:14:43 elliott: wow bitshifts are great 01:14:47 for music. 01:15:04 ok 01:21:33 > let default = 1 in default 01:21:34 : parse error on input `default' 01:21:44 what is that a keyword for again 01:22:29 I always forget 01:23:11 oerjan: clsases 01:23:12 classes 01:23:16 its 01:23:17 the worst keyword 01:23:33 as in 01:23:37 default (Double) 01:23:38 or whatever 01:23:43 oh that one 01:23:45 by default (ha) it's "default (Integer, Double)" 01:23:47 it's only for Num 01:23:49 it is therefore 01:23:50 The Worst 01:24:03 well ghc extends it 01:24:32 100*sin((t>>2)+(t>>7)+(t>>(7*sin(t/450|t|t>>5)))) 01:24:37 suddenly I am a master of 8-bit noise music. 01:24:50 but right now it is ruining my variable naming 01:27:06 oerjan: you're coding? :D 01:27:09 SHOCK HORROR 01:27:30 well someone had the bad sense of suggesting Geom isn't TC 01:29:19 > let forall x = x in forall 0 01:29:20 0 01:29:22 nice 01:30:40 -!- Vorpal has quit (Ping timeout: 258 seconds). 01:31:32 oerjan: btw http://www.haskell.org/haskellwiki/Keywords 01:31:58 hey if i wanted to actually look it up i would have done so already :P 01:32:26 CakeProphet: what does that sound like 01:32:38 http://www.bemmu.com/music/index.html 01:33:01 Patashu: note you may want to turn your volume down 01:33:04 if it's at full. 01:33:16 it's like 8bit breakcore 01:33:18 or adjust the first 100 to 75 01:33:21 your choice. 01:33:42 Patashu: play around with some of the numbers 01:33:43 it's fun. 01:35:01 -!- augur has quit (Remote host closed the connection). 01:35:09 100*sin((t>>2)+(t>>7)+(t>>(7*sin(t/450|t|t>>5)))) 01:35:12 this is reasonably interesting 01:36:24 75*sin((t>>2)+(t>>7)+(t>>(63*sin(t/1000|t|t>>5)))) 01:36:30 slight variation. a bit slower. 01:36:51 -!- ive has quit (Quit: leaving). 01:37:28 ((t>>8)&(t>>12))+sin(t) sounds like a telegraph 01:37:47 CakeProphet: 100*sin(t^Math.sqrt(t)) 01:37:49 Patashu: try using some odd numbers. 01:37:55 elliott: uh oh 01:37:58 you will not regret it 01:38:20 that one is awesome 01:38:26 awww yeah 01:38:34 sqrt, good call. 01:38:36 yeah i'm amazed how awesome that turned out 01:38:40 gets slower. 01:38:40 CakeProphet: XOR on sqrt 01:38:43 so it doesn't even make any sense 01:38:47 it relies on the float representation 01:39:33 100*sin(t^Math.sqrt(t/50)) 01:39:38 slows it down 01:40:11 CakeProphet: Patashu: 100*sin(Math.log(10*t)^Math.sqrt(10*(t%1024))<<8) 01:40:54 CakeProphet: Patashu: 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<8) 01:40:55 haha nice 01:40:55 What the fuck 01:40:57 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<8) 01:40:59 How are you coming up with these so fast 01:40:59 this one is even better 01:41:04 maths 01:41:05 Patashu: i'm just fucking with shit 01:41:07 leet maths 01:41:09 Yeah so am I 01:41:12 But I come up with useless shit 01:41:14 Yours are so good 01:41:24 lol this is complete coincidence I assure you 01:41:27 better at fucking with shit than you is his middle name 01:41:28 bahahaha 01:41:30 second one is great. 01:41:31 the genius there was using modulo to get something vaguely repetable 01:41:37 yes. 01:41:44 I hadn't consider using modulo 01:41:50 +ed 01:41:56 I've been using weird bitshift patterns 01:41:59 to get complex rhythms. 01:41:59 oh man 01:41:59 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 01:42:03 modulo is something more regular. 01:42:23 damn that is so good 01:42:28 bahahaha 01:42:30 Patashu: i'm as surprised as you are, let me assure you 01:42:59 | and ^ are very similar 01:43:02 in tonal quality 01:43:03 there. 01:43:17 100*sin(Math.sqrt(t)^Math.sqrt(10*(t%1024))<<(t/1024)) <-- this is a good beat 01:43:20 think I'll lay something on top of this 01:44:05 it's very difficult to time these things in unison. 01:44:19 you don't need the Math.sqrt(t)^ part 01:44:23 it's entirely the second part doing it 01:44:26 Patashu: oh neat 01:44:38 it's a bit different like that, but I like it more 01:45:14 (t*((t>>8|t>>9)+(t>>10)&27)*100) 01:45:25 100*sin(Math.log(100*(t%1024))<<(t/1024)) is kind of cool 01:45:26 change the 27 to any odd number for similar melodies but with new elements 01:46:05 so in an actual song for example you could start at 2 01:46:09 then 3, then 7, and so on 01:46:35 but using an even number produces a different rhythm and is kind of abrupt. 01:46:42 so odd is good to keep the continuity. 01:47:16 (128*sin(Math.sqrt(10*(t%1024))<<(t/1024)))/cos(t>>9) 01:47:44 elliott is good at the beats, lol 01:47:51 I'm just modifying this existing one :P 01:47:54 yours is nice 01:48:19 also throwing in oscillators everywhere is good 01:48:24 100*sin(Math.log(100*(t%1024))<<(t/1024))+50*cos(Math.sqrt(100*(t%1024))<<(t/1024)) 01:48:25 breakcore track 01:49:03 lol 01:49:07 i like it 01:51:07 tan(Math.sqrt(t%65536))*100 01:52:03 this WILL break your speakers: tan(Math.sqrt(t%65536)+t)^Math.sqrt(t) 01:52:38 (128*sin(Math.sqrt(10*(t%1024))<<(t/(1024*tan(t/1500>>7)))))/cos(t>>9) 01:53:08 can you use ?: in this? 01:53:13 yes 01:53:15 but it's probably cheating :) 01:53:17 awesome 01:53:17 brb 01:53:24 throw some | or & in there for good measuer 01:53:25 (128*sin(Math.sqrt(10*(t%1024))<<(t/(1024*tan(t/1500>>7|8)))))/cos(t>>9) 01:53:28 lol 01:53:48 with no regard for precedence of course. 01:54:21 example of ?: usage 01:54:21 sin((t%8192)>4096?tan(Math.sqrt(t%4096)):Math.sqrt(10*(t%1024))<<(t/1024))*100 01:54:43 -!- augur has joined. 01:54:51 * elliott drops a dope-ass minimal track: (Math.sqrt(t%(t^~2))^Math.sqrt(t/~27))*100 01:54:52 Have I uh 01:54:55 Have I got my "lingo" correct 01:55:03 Patashu: i like this 01:55:20 your dope ass hurts my ears ow 01:55:34 so much pitch 01:55:38 elliott: minimalist 8-bit dark ambient 01:55:40 or something. 01:56:13 (128*sin(Math.sqrt(10*(t%1024))<<(t/(1024*tan(t/1500>>7|8)))))/cos(t>>9) 01:56:24 I like how everyone is just progressively remixing my thing into an unrecognisable fuzz 01:57:34 it's only slightly fuzzy 01:59:59 CakeProphet: Patashu: ((t%2048)*Math.sqrt(t/9))+(t*t*t*t) 02:00:06 -!- tiffany has quit (Quit: ZNC - http://znc.sourceforge.net). 02:02:31 hmm 02:02:42 CakeProphet: Patashu: you guys gotta produce something for me to remix, I'm having a writer's block :P 02:03:20 ok 02:03:21 sec 02:03:56 HOLY SFUCKING SHIT 02:04:15 Patashu: CakeProphet: TURN DONWN YOUR FUCKING SPEAKERS: sin(t/Math.E)*2048 02:04:30 why not just *100 instead 02:04:39 because 02:04:39 i was 02:04:40 foolish 02:05:04 lol 02:05:10 (128*sin(Math.sqrt(10*(t%1024))<<(t/(1024*sin(Math.sqrt(10*(t%512))&(t>>8|t>>9)/5000)))))/cos(t>>9) 02:05:13 more remix 02:05:15 less fuzz 02:05:22 challenge 02:05:25 successfully use Math.random 02:05:28 in a way that doesn't just add some noise 02:05:31 CakeProphet: also that's great 02:05:33 I was about to say 02:05:36 and note that Math.random 02:05:37 that's pretty much what random does 02:05:39 is white noise 02:05:39 will change every single frame 02:05:45 unless you use it as a control signal 02:05:45 CakeProphet: well yes but you can easily use randomness to like 02:05:50 and then it's still probably going to sound like noise. 02:05:50 generate random beats 02:05:57 it's just a matter of doing it in this tiny a system 02:06:32 -!- MDude has changed nick to MSleep. 02:06:35 well you can modulo random and number on the right-hand side of >> maybe 02:06:45 gogogogogo do it 02:06:53 * elliott is working on new stuff 02:07:13 GONNA DROP A RELEASE 02:07:15 OR SO THEY SAY 02:07:16 IN THE HOOD 02:08:07 elliott: I like how changing the cos() part of that one you made makes it sound completely different. 02:08:20 changing the bitshift amount 02:08:20 it's cos of the cos 02:08:24 ... 02:09:07 I wonder what happens on zero divide 02:09:11 when cos(blah) = 0 02:09:23 infinity 02:09:23 probably 02:09:25 it's floating point 02:09:33 t/0 seems to come out as silence 02:09:40 makes sense. 02:11:28 hmm 02:11:30 function f(n){r=1;while(n)r*=n--;return r} 02:11:34 does this factorial look right to everyone? 02:13:22 I think so. 02:13:54 lol, I hung my browser with factorial :/ 02:14:15 50*sin(Math.sqrt(100*(t%1024))<<(t/768))+((t%8192)>4096?50*sin(Math.sqrt(100*((t)%1024)<<(t/1024))):0) this is sick 02:14:38 50*sin((t>>3^t)+(t>>6)+(t>>Math.random(63))) 02:14:41 all glory to the hypnotoad 02:14:43 Patashu: I can verify that this is indeed in desperate need of professional medical attention 02:14:48 XD 02:14:57 CakeProphet: oe 02:14:57 wo 02:14:58 ow 02:15:38 what's the common approximation to factorial? 02:15:40 I forget 02:15:43 look it up 02:15:53 :'( 02:15:59 I was under the impression we were ``bros'' 02:16:00 :'( 02:16:02 :'( 02:16:21 http://en.wikipedia.org/wiki/Stirling's_approximation 02:16:32 right 02:17:24 elliott: challenge accepted: 50*sin((t>>5^Math.sqrt(t))&(t>>6)&(t>>Math.random(63))) 02:17:27 not noise 02:17:36 ...by someone's definition. 02:17:38 slight variation 50*sin(Math.sqrt(100*(t%1024))<<(t/768))+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t/2048))):0) 02:18:04 sin(Math.pow(1.61803399,t)/Math.sqrt(5))*100 02:18:05 lame 02:18:11 CakeProphet: I like it 02:18:34 I think I made the Alternative instance for barrier monads. I think it is following the rule correctly, although it is not following the rule for MonadPlus, so it isn't MonadPlus. 02:18:44 Patashu: I like 02:18:52 50*sin(Math.sqrt(100*(t%1024)<<(t/2048))) this is the new part by itself 02:18:55 slight variation 50*sin(Math.sqrt(100*(t%1024))<<(t/768))+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t/2048))):0) 02:18:59 I like this a lot because it has such a clean sound 02:18:59 it goes doof doof doof doof then wobble wobble wobble then puretone puretone puretone 02:19:02 instance Alternative (Barrier f b) where { empty = Fail []; Unit x <|> _ = Unit x; Fail y <|> x = annotateFail y x; Barrier a c <|> x = Barrier a $ \y -> (c y <|> x); }; 02:19:06 like it was recorded on cassette 02:19:07 not mud 02:19:24 zzo38: what are the rules and how are they not followeing 02:19:26 annotateFail :: String -> Barrier f b t -> Barrier f b t; annotateFail [] x = x; annotateFail y (Fail []) = Fail y; annotateFail y (Fail x) = Fail $ y ++ "\RS" ++ x; annotateFail y (Unit x) = Unit x; annotateFail y (Barrier a c) = Barrier a $ annotateFail y . c; 02:19:30 "\RS"? 02:19:41 I am sceptical of that being a good idea? 02:19:41 "\RS" is the ASCII record separator code. 02:19:44 having Fail at all is bizarre 02:19:59 fail too 02:20:13 CakeProphet: Patashu: So who's going to ruin this fun diversion by making some dubstep 02:20:24 I don't know how to make dubstep from first principles 02:20:32 Thank god 02:21:03 It says that <|> is associative and empty is identity of <|> and I think it follows that with what I have. 02:21:19 elliott: dubstep is very unlikely 02:21:20 MonadPlus has addition rules which I do not think barrier monads have. 02:21:23 as that would require a filter of some kind. 02:21:26 50*sin(Math.sqrt(100*(t%1024))+(t/768))+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t/2048))):Math.random(1000)) 02:21:30 however by changing some stuff in Patashus 02:21:38 we now have 8-bit psytrance 02:22:06 Do you think I am correct about this things? 02:22:08 the Math.random(1000) doesn't seem to do anything 02:22:12 nope 02:22:28 it probably doesn't happen enough to be noticable. 02:22:41 *noticeable 02:22:43 stupid English 02:22:47 no it like 02:22:49 literally does nothing 02:22:49 XD 02:23:01 right... I just explained why that could be.. 02:23:09 Are those sound effect in JavaScript? 02:23:16 yes, with http://www.bemmu.com/music/index.html 02:23:23 a remix of Patashu: (51|((t%80000)>>9))*sin(Math.sqrt(161.8*(t%2048)<<(t/1024))) 02:23:49 CakeProphet: I really like that 02:25:13 zzo38: the additional rules being mzero>>=f=mzero and v>>mzero=mzero ? 02:25:21 elliott: let me know when you come up with a distortion function and a variable-frequency lowpass filter connected to a LFO input. 02:25:21 remix of CakeProphet 50*sin(Math.sqrt(100*(t%8192))+t)+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t>>9))):Math.random(1000)) 02:25:26 and then we can make some dubstep 02:25:28 To me doesn't seem good way, it doesn't even work very well, it doesn't play/stop properly, etc. You can use SoX for sound effect. If you need to, you can use ImageMagick -fx command to specify and output raw sound pipe to SoX input raw 02:25:31 monqy: Yes. 02:25:37 CakeProphet: dude you need none of that 02:25:48 sure you do 02:25:54 like 02:25:54 What I want to figure out 02:25:57 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 02:26:01 CakeProphet: do you see any multitracking here 02:26:04 any filters 02:26:07 Is how to take a beat like sin(Math.sqrt(10*(t%1024))<<8) and apply it to a conditional that creates a rhythm out of it 02:26:10 no, you just see something which happens to sound perfect 02:26:11 like xx.xx.x. 02:26:19 we don't need to create dubstep from first principles 02:26:24 we just need to accidentally fall onto a pile of dubstep 02:26:32 ....not going to happen. 02:26:41 Is how to take a beat like sin(Math.sqrt(10*(t%1024))<<8) and apply it to a conditional that creates a rhythm out of it 02:26:43 this is not much of a beat 02:26:51 CakeProphet: come on we just need something that sounds vaguely like wub 02:26:51 it isn't? 02:27:02 noep 02:27:08 we're in time domain, dawgs. 02:27:08 Patashu: play it 02:27:52 also I'm not going to lie I do enjoy things that are dubstep-influenced 02:27:57 but find dubstep itself to be very very boring. 02:28:13 i call this one "poop machine": (sin(t%9999)*(t>>9)) &~ t 02:28:17 oh no. 02:28:21 kind of industrialesque 02:28:23 by which i mean 02:28:24 it sounds like shit 02:28:42 remix of CakeProphet 50*sin(Math.sqrt(100*(t%8192))+t)+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t>>9))):Math.random(1000)) 02:28:45 CakeProphet: did you like this i think it is: great 02:28:51 Hmm 02:28:54 I grabbed the wrong thing 02:29:02 Oh I know 02:29:04 I forgot the 100* 02:29:06 Lol 02:29:23 elliott: I found the high-pitched beat kind of annoying >_> 02:29:34 * CakeProphet is a tough customer 02:29:35 CakeProphet: Dude, my ears are practically bleeding. live the music. 02:29:52 poop machine is good though 02:29:59 (t%2048>1024)||(t%4096>1024)?100*sin(Math.sqrt(10*(t%1024))<<8):0 here's an example 02:30:04 it goes doofdoofdoofpausedoofdoofdoofpause 02:30:15 monqy: If I did MonadPlus, the empty that I defined for Alternative, it follows the first rule of MonadPlus but not the second one. At least, I think it is. 02:30:33 Patashu: I find 75 or 50 to be a good number for amplitude 02:30:34 zzo38: oh. I don't know how Barrier works, so 02:30:35 Patashu: (t%4096<999)?0:(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:30:36 100 is usually too loud. 02:30:40 turn your sperakers down then 02:30:43 I do. 02:30:54 elliot: o 02:31:04 ?: is totally cheating. 02:31:04 Maybe you meant: . ? @ v 02:31:09 no it isn't 02:31:10 it's useufl 02:31:11 somehow 02:32:32 (Math.round(sin(t/500)))?0:(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:32:34 vaguely house like 02:33:00 and now suddenly 02:33:01 (Math.round(sin(t/250)))?0:(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:33:03 not sounding like shit 02:33:43 Patashu: ((t%(4096+(t>>9))<999)?(t%9999)/9999:1)*(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:34:16 ((t%(4096+(t>>9))<999)?(t%9999)/9999:(t/99999))*(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:34:49 ((t%(4096+(t>>9))<999)?(t%9999)/9000:(Math.log(t)/999))*(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:35:04 CakeProphet: I like those 02:37:26 Patashu: Math.round(sin(t/(250+(t>>9)))*(t%9999)/999)?0:(100*sin(Math.sqrt(10*(t%1024))<<8)) 02:37:28 monqy: Unit x >>= f = f x; Fail x >>= f = Fail x; Barrier a c >>= f = Barrier a $ c >=> f; So if you did mzero = Fail [] like I have empty = Fail [] then the first law is obviously by the definition but the second one doesn't go. 02:37:39 New breakcore track 100*sin(Math.sqrt(10*(t%1024))<<((t/512)%1024)) 02:38:19 I think a primary problem here is the fact that they essentially have to be three second soundbites :P 02:38:23 And I don't think there can be other definitions of mzero and mplus for barrier monad that satisfies the definition either. 02:38:24 Or else just degenerate into huge messes 02:39:00 CakeProphet: Patashu: Challenge: Beat with no trig 02:39:16 I can approximate sin using a taylor expansion 02:39:17 Your move 02:39:26 Patashu: Without cheating 02:40:14 halp no trig 02:40:16 (Math.round(sin(t/250)))?0.1*Math.random()|t:(100*sin((Math.sqrt(10*(t%1024))<<8)+(t>>7|t>>9))) 02:40:19 have some more psytrance 02:40:39 hmm 02:40:39 http://www.youtube.com/watch?v=GtQdIYUtAHg 02:40:42 we need to do some of these 02:40:53 CakeProphet: are you doing it? :P 02:40:54 holy shit they're good 02:40:59 Patashu: I think we've surpassed most of them tbh 02:41:02 the ones in the second video are better 02:41:03 idk 02:41:05 second one is awesome 02:41:12 well ok my multitrack thing surpassed 'em :D 02:42:10 CakeProphet: Patashu: basically the problem with trig is that your tracks end up repeating very rapidly... 02:42:12 because of the oscillation 02:42:18 it's cool to have stuff that changes slightly over time 02:43:32 elliott: 50*Math.round(t>>7&t>>9)*Math.exp(t%200,2) no trig 02:43:59 CakeProphet: j'approuve 02:44:21 oh you meant just for the rhythm? 02:44:22 zzo38: i think the second law is considered somewhat optional, as many monads don't follow it 02:44:25 50*Math.round(t>>7&t>>9)*Math.exp(t%2000,2) this is catchy 02:44:44 elliott: ...lol 02:44:44 CakeProphet: well I mean 02:44:54 CakeProphet: it'd be nice to have beats with less trig so that they evolve over time 02:45:14 wait am I even using exp correctly 02:45:22 you're squaring 02:45:27 okay good. 02:45:32 Math.PI*99*Math.round(t>>7&t>>9)*Math.exp(t%20,2) 02:45:35 * CakeProphet doesn't know JS 02:46:10 why PI? 02:46:24 wow 02:46:25 t*(t>>8&t>>12) 02:46:28 this one is so simple and so interesting 02:46:40 wow 02:46:45 did you invent that one? 02:47:11 a lot of the ones in the video resemble that. 02:47:13 yeah 02:47:16 I'm trying out ones like in the video 02:48:18 CakeProphet: Patashu: Math.pow(Math.log(t),(t>>8&t>>12)) 02:48:23 academic music for serious people 02:49:45 i think i will remix something next, so i'll just WAIT HERE 02:50:03 t * ((t>>12|t>>8)&63&t>>4) 02:50:40 elliott: so prestiguous 02:50:43 your music sir. 02:50:57 so yeah this one appeared in my clipboard I don't think I made it. 02:51:03 CakeProphet: I don't even release CDs any more, I just publish it in journals. 02:52:04 CakeProphet: t * ((t>>12|t>>8)&&t>>4) 02:52:11 (sin(t/20)*((t>>8|t>>9)|(t>>10|t>>9))+(t>>12)*100) 02:52:20 99 * ((t>>12|t>>9)&&t>>4) 02:52:20 eerie 02:52:40 CakeProphet: it's like a toy piano from hell 02:52:49 elliott: spooooky ekrkwierjijij AahH 02:53:02 rip 02:53:30 (sin(t/90)*((t>>0|t>>9)|(t>>10|t>>99))+(t>>1)*10) 02:53:35 i call it "mud" 02:55:07 changing the | to + is interesting: (sin(t/20)*((t>>8|t>>9)+(t>>10|t>>9))+(t>>12)*100) 02:55:10 makes it much noisier 02:55:13 but same melody 02:55:37 elliott: I've made something very similar to this before 02:55:40 well + is just like | with more interference 02:55:43 while fucking around with other things. 02:55:59 yes that's what I've gathred so far 02:56:08 if I use + instead of | I get more noise. 02:56:31 also what the hell does t >> 0 even do 02:56:34 it's obvious if you realise that | is bitwise saturation arithmetic 02:56:36 t >> 0 = t 02:56:36 nothing 02:56:37 :p 02:57:18 http://en.wikipedia.org/wiki/Kellogg%E2%80%93Briand_Pact 02:57:22 War is illegal in the US. 02:57:29 (and many other nations) 02:57:37 "except in matters of self-defense" 02:57:59 Still fucks up many US actions. 02:58:20 e.g. every single one since then but the Japanese front of WWII. 02:58:22 CakeProphet: Patashu: challenge: a beat with more than one actual beat 02:58:30 as in 02:58:31 two beat sounds 02:58:34 elliott: evil mud monster the remix: (sin(t/90)*((t>>0|t>>9)>>(t>>10|t>>99))>>(t>>1)*10) 02:58:42 oh dear, why not remix something good 02:58:54 lower the 99 for different sounds 03:00:08 I think it's finally time for me to start remixing myself. 03:00:25 (sin(t/90)*((t>>1|t>>9)>>(t>>11|t>>99))>>(t>>1)*10) 03:00:31 this one is a bit more suspenseful 03:00:35 and sounds more like an evil monster. 03:00:51 no idea how it's reverbing but I think it had to do with millions of >> everywhere 03:01:05 I should name 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)), it's totally my masterpiece so far 03:01:28 yes it's great. 03:01:59 I think you should do, make it not JavaScript or web-browser, and allow you to include MML as well as the mathematical formulas. 03:02:22 CakeProphet: Patashu: 90*cos(Math.log(9*(t%9))^Math.sqrt(9*(t%4201))<<(t/1024)) 03:02:29 -!- DHeadshot has quit (Read error: Connection reset by peer). 03:02:47 -!- DH____ has joined. 03:03:38 altering the %9 leads to interesting results 03:03:54 90*sin(Math.sqrt(9*(t%4201))<<(t/1024)) 03:04:28 oh neat. 03:05:37 CakeProphet: Patashu: 90*sin(Math.sqrt(9*(t%4201))<<(t/9999)) 03:05:48 at twenty-one seconds in 03:05:49 strays 03:05:50 KIND OF 03:05:54 close 03:05:55 to something that might 03:05:56 VAGUELY 03:05:58 be described 03:05:59 as RELATED 03:06:06 to SOMETHING THAT SOUNDS REMOTELY LIKEdubstep 03:06:16 sorry twenty-two 03:06:19 ...only in that it has a slow half-time-like rhythm 03:06:24 also: 90*sin(Math.sqrt(9*(t%4201))<<(t/1024))+35*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 03:06:26 IT ALSO SOUNDS SORT OF LIKE "WUB" MAN 03:06:38 Cakeprophet's shitty remix of elliott's grand opus that's actually just adding the two together and changing volume. 03:06:50 CakeProphet: I like how the beat is totally broken 03:07:00 only a little 03:07:14 that's why I made one really soft 03:07:16 so that didn't clash 03:07:17 Patashu hasn't released anything in a while. 03:07:54 90*sin(Math.sqrt(9*(t%4201))<<(t/1024))+50*Math.random()*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 03:07:57 for best results 03:07:58 free vinyl crackle. 03:08:03 true hipster music. 03:09:04 CakeProphet: beautiful. :p 03:09:04 well maybe if you made the modulos share common factors... 03:09:10 then it would sync the beats more? 03:09:25 er, not share common factors. 03:09:29 one be a multiple of the other 03:09:31 help better wordage. 03:10:06 do you think one day people will like 03:10:09 post comments on youtube: 03:10:52 Today's teens listen to SHIT like sin(t)/99 and Math.log(Math.PI)|4201. Thumbs up if you remember REAL music. You say t<<9>>0, we say CAKEPROPHET! 03:11:18 rare eight-bit PCM pressings of the innovative thirty-second compositions that founded the genre of shitcore 03:11:24 yes we are clearly masters of our craft. 03:11:28 also 03:11:36 you know this means we totally need to write something for Haskell. 03:11:45 We're like Delia Derbyshire, if Delia Derbyshire was a talentless hack 03:12:32 so that you can combine things like this, sequence them, insert certain parameters for a number of measures and then switch to different parameters, etc. 03:12:43 Why would you want to tarnish the beautiful purity 03:12:53 for science! 03:13:16 I didn't realize bitshift was pure and floating point hacks was pure. 03:13:36 dfgodfieo49w4oi4j4to4to94t9otuw94ut9wu4tuuuuuuuuu9tw9utwu9twutwu9tw 03:13:49 Would Reddit be better off without r/jailbait, r/picsofdeadbabies, etc? What do you honestly think? (self.AskReddit) 03:13:52 CakeProphet: what 03:14:07 a dead baby is fine. 03:14:29 jailbait is fine. 03:14:33 both good things for the world. 03:14:38 thus good enough for reddit. 03:15:04 http://www.anencephalie-info.org/e/advice.php 03:15:09 advice on taking dead baby pics. 03:15:36 A picture can even be the only tangible memory of what your baby looked like. For siblings who weren’t been born or were too young at the moment of the baby’s death, it’s important to be able to show them a picture saying : "this was your brother, your sister." 03:15:47 -!- hagb4rd has quit (Ping timeout: 248 seconds). 03:16:01 "this was your brother as his entire body shut down from " 03:16:11 good family moments. 03:16:57 "It is with this in mind that we have made the choice to share the stories of the brief, but wonderful lives of babies with anencephaly." 03:16:58 ah. 03:17:09 If your baby is stillborn 03:17:10 Take pictures nevertheless ! 03:17:17 good advice 03:17:27 excellent material for r/picsofdeadbabies 03:21:45 it seems that no what you do with random() 03:21:49 it just introduces noise. 03:22:06 even as a conditional 03:25:48 CakeProphet: well the important thing to remember is that it changes every t 03:29:05 yay i think mchost can get multiplayer support soon 03:29:12 CakeProphet: Patashu: CONTRACTUALLY OBLIGATED CLAPPING PLS 03:30:10 elliott: clap clap clap t*(Math.round(sin(t/45))?Math.exp(sin((t>>63)/4000), 2):(t>>3)>>(t>>9)) 03:30:18 best clap 03:30:38 i was expecting clap noises 03:31:00 nope 03:31:05 you get psychedelic clapping 03:31:14 it's similar but more like acid. 03:33:40 -!- tiffany has joined. 03:36:56 -!- SgeoN1 has quit (Read error: Connection reset by peer). 03:36:59 -!- SgeoN2 has joined. 03:46:39 guess the song: wobwobwobWOBWOBWOBwobwobwobWOBWOBWOBW 03:47:33 theme from titanic 03:47:47 close 03:48:13 thriller? 03:48:52 thrieller DUBSTEP REMIX. 03:49:39 I remember when only cool kids knew about dubstep. 03:49:43 http://www.youtube.com/watch?v=YhjnKnFp1Cs 03:49:44 art. 03:49:46 like me. 03:50:12 I enjoy the song Genesis by Justice 03:50:14 set to Thriller 03:50:14 http://www.youtube.com/watch?v=IWuPd0fHdyc 03:50:16 there's a video of such 03:50:17 omg this is so bad. 03:50:31 YOU KNOW IT'S KNOW IT'S KNOW IT'S KNOW IT'S KNOW IT'S KNOW IT'S THRILLER NIGHT 03:50:37 this is impressively bad 03:50:49 this definitely isn't dubstep style as the person claims. 03:50:58 dubstep, n. anything bad 03:51:01 okay now it is. 03:52:31 Noisia's new stuff is an example of something that dubstep-influenced but also not shit. 03:52:36 *this is 03:53:31 also Pretty Lights 03:56:21 -!- Patashu has quit (Ping timeout: 244 seconds). 03:57:17 http://www.youtube.com/watch?v=GTG7TPlvpMI 03:57:24 listen to ze dubstep-esqueness in the middle 04:02:51 -!- Patashu has joined. 04:05:41 sup 04:08:23 hello 04:12:00 I can figure out things about relation between list monad and barrier monad when using collect to convert from barrier monad to list monad. Such as, (x : y) corresponds to (yield x >> y) and (=<<) corresponds to (rebind) and (map) corresponds to (flip convert id) 04:14:26 And (join . repeat) corresponds to (many) although the former runs faster (at least in GHCi) 04:15:36 Do you understand that? What are these things would be in the mathematical point of view? 04:20:12 What would they be called in mathematics? 04:26:22 homomorphisms? probably not. 04:27:38 isomorphisms? 04:28:08 -!- tiffany has quit (Remote host closed the connection). 04:28:39 It is not really isomorphic because of some differences such as the working of the return type of barrier monads. While the collect operation does not use the return type, it can still be used in other operations. 04:29:39 But it work if you never care about the return type, I guess. You could have uncollect to do the reverse operation too, I think; but still these things are missing, so, I think that means it is forgetful operations 04:31:44 Is that it? 04:32:16 maybe you have a monomorphism from lists to barriers then. 04:32:25 injective but not bijective. 04:32:43 OK. 04:33:24 And they are both monads. Does that also called something else specific in mathematics? 04:35:00 no clue. 04:36:37 Instead of (or as well as) saying (x : y) to (yield x >> y) you could also say (return) to (yield) and (++) to (>>) 04:36:45 http://en.wikipedia.org/wiki/Natural_transformation 04:36:47 this looks relevant. 04:37:05 The barrier monad program is a literate program, so it is also a report about it. That mean, I should also have these kind of things about the mathematics mentioned in the report! 04:39:34 you more or less have a morphism from an endofunctor to another endofunctor. 04:40:26 wait why am I pretending to know anything about category theory. 04:41:34 Is the eta described there the same as or related to the eta for monads? 04:42:12 no I don't think it's the exact same thing. 04:42:31 it's just that the eta for monads is a natural transformation. 04:42:45 Yes that is what I thought. 04:43:33 I suppose I can even include commutative diagrams in the report; the TeXbook does describe how to make them. 04:43:43 (That is, would I need commutative diagrams.) 04:43:45 everything in category theory seems really simple 04:43:54 it's just that there's a lot of terminology. 04:45:15 That is probably because there is a lot of things that can be done with category theory. 04:47:36 -!- itidus20 has left ("Leaving"). 04:48:20 Is that why? 04:50:02 no clue. 04:50:24 the only thing I know of that's been "done" with category theory is Haskell. 04:50:31 ... 04:50:35 elliott: :) 04:51:09 it's interesting to note 04:51:14 that I am not actually aware of all things. 04:51:22 this may be surprising. 05:19:56 http://oerjan.nvg.org/esoteric/GeomTM.hs 05:20:09 not _really_ tested 05:21:36 -!- zzo38 has quit (Remote host closed the connection). 05:32:45 -!- augur has quit (Remote host closed the connection). 05:33:00 now linked from wiki 05:34:54 It's sad when languages' power don't even come from their gimmicks :( 05:35:01 but rather something boring 05:35:02 -!- aloril has quit (Ping timeout: 276 seconds). 05:35:18 oh 05:35:45 :'( 05:36:55 well it is _possible_ you could use the geometric points more usefully. unfortunately i don't quite understand that part of the spec, there seems to be parts missing. 05:38:59 and besides the floating point scares me away a bit :P 05:48:47 -!- aloril has joined. 05:50:06 oerjan: redundant dollar sign 05:50:13 swapBlocks m n = unwords $ [cmd ++ show i | 05:50:41 also, one day I will figure out how you decide when to put a type signature or not, and if so how many blank lines go between the signature and the definition :D 05:51:50 oerjan: this is me appreciating your code btw 05:55:25 oerjan: IM APEICEAITNG 05:57:31 monqy: tell oerjan rude not talk 05:59:53 oerjan: rude not talk 06:00:02 elliott: oh right, that $ got left over from a more pointless version :P 06:00:09 monqy: wow it work 06:00:16 i was making food 06:00:17 -!- derrik has joined. 06:00:19 no 06:00:22 it was definitely monqy 06:00:43 but seriously, also, one day I will figure out how you decide when to put a type signature or not, and if so how many blank lines go between the signature and the definition :D 06:00:45 how do you do it :P 06:00:50 pls. don't say it's just arbitrary 06:00:52 i would sads 06:01:32 i guess there are occasions when silence is better. 06:01:52 oh no 06:02:18 ?undo f m n = unwords [if i == m then "t" else "nil" | i <- [1 .. n-1]] 06:02:19 f m n = unwords concatMap (\ i -> [if i == m then "t" else "nil"]) [1 .. n - 1] 06:02:24 lambdabot... 06:02:41 ?pl f m n = unwords (map (\ i -> if i == m then "t" else "nil") [1 .. n - 1]) 06:02:41 f = (unwords .) . (. (enumFromTo 1 . subtract 1)) . map . flip flip "nil" . flip flip "t" . (if' .) . (==) 06:02:42 i guess i just forgot outOf, and the final tests were later and i don't think they need any 06:02:46 ?pl f m n = map (\ i -> if i == m then "t" else "nil") [1 .. n - 1] 06:02:46 f = (. (enumFromTo 1 . subtract 1)) . map . flip flip "nil" . flip flip "t" . (if' .) . (==) 06:02:50 ?pl f n m = map (\ i -> if i == m then "t" else "nil") [1 .. n - 1] 06:02:51 f = flip (map . flip flip "nil" . flip flip "t" . (if' .) . (==)) . enumFromTo 1 . subtract 1 06:03:09 ?pl f n m = map (== m) [1 .. n - 1] 06:03:09 f = flip (map . (==)) . enumFromTo 1 . subtract 1 06:03:10 and i got so involved in how much space to put around _comments_ that i forgot about the signatures. 06:04:01 m `outOf` n 06:04:01 | m >= 0 && m < n = unwords . map (bool "t" "nil" . (== m)) $ [1 .. n-1] 06:04:01 | otherwise = error "Bit position out of range" 06:04:02 oerjan: hth :P 06:05:03 elliott: also it was never _quite_ that pointless :P 06:05:16 oerjan: I was improving an entirely different function >:( 06:05:23 bool really needs to be in Data.Bool 06:05:46 i actually decided not to make it too advanced 06:06:27 oerjan: i am not being serious :P 06:06:33 list comprehensions are really nice tbh 06:06:45 I keep meaning to try and use an idiom I saw in Glasgow source in my code 06:06:56 which is using case on list comprehensions to do various searches and the like 06:07:30 case [x | x <- xs, x > 4, x `mod` m == 0] of [x] -> ...; [x,y] -> ...; _ -> error ... 06:08:35 elliott: i changed a few things :P 06:08:52 oerjan: in-place? without keeping a copy of the old one available? :( 06:08:55 WAIT IT IS ON MY HARD DRIVE 06:08:59 ANYONE WHO WANTS THE "REAL SHIT" ... 06:09:00 CONTACT ME ; ) 06:09:04 (i am referring to drug) 06:10:16 oerjan: too old-school for branch patterns, I see 06:10:17 yeah that vcs stuff never got a hold on me 06:10:26 branch patterns? 06:10:28 erm 06:10:29 bang patterns 06:10:34 the function was named branch :'( 06:10:36 im tire 06:10:39 -!- augur has joined. 06:10:41 heh 06:10:42 (im a slep son) 06:10:52 i didn't want to add any extensions 06:11:05 hey oerjan 06:11:06 encodeTM table initialState runOffLeftEnd paddingValue input 06:11:06 = unlines $ [ 06:11:21 [oerjan's blood boils, becomes soup; soup is fed to children, tastes delightful] 06:11:58 argh that $ was introduced when i tried to find out how to avoid a double newline before right_end 06:12:39 gefixt 06:13:03 oh you use null here..........i want to eliminate this call to null.... 06:13:06 death to booleans 06:13:34 i'm afraid that may not make it any nicer inside a lambda 06:13:46 oerjan: i don't mean just turning it into the obvious pattern match 06:13:54 I mean making it so that you don't have to specifically check for the null case :P 06:14:21 but i _added_ the null case in order not to have to pass a halting_states parameter 06:14:28 heh 06:14:30 ok then :P 06:15:01 i note that you inconsistently use camelcase and _s (it isn't the glasgow globalName and local_name) 06:15:09 (believe it or not, i like this code) 06:15:36 i thought i used camelcase for the haskell and _ for the Geom 06:15:49 well ok 06:15:56 i guess that is a convention of sorts :P 06:16:28 the first two program lines are snatched from another Geom program on the wiki 06:16:47 heh 06:17:18 since i didn't understand the geometry part, i needed neq as an easy way to get a nil :P 06:18:13 and the drop was useful otherwise as well 06:20:00 * oerjan adds a comment about that 06:21:59 oh right, i used _ for the haskell functions which defined geom commands of the same name 06:21:59 heh http://www.haskell.org/ghc/survey2005-summary 06:22:06 oerjan: that's what I interpreted your sentence as 06:22:14 "Until now, we considered GHC's error messages to be rather good" 06:22:15 r u srs 06:22:36 I think GHC might have the worst error reporting of any "mainstream" language 06:22:42 's main implementation 06:22:54 "mainstream" 06:23:18 well Haskell is not really mainstream mainsteram. 06:23:22 mainstream 06:23:31 but it's certainly popular. 06:23:33 g++ compile errors are bad right? it's been a long time since I've seen them though 06:23:41 oh, that's true 06:23:49 that's mostly the STL's fault though :P 06:24:11 Gregor: Resident D Expert (Sufferer): Why the hell is D so high on TIOBE? I know TIOBE is complete bullshit, but nobody fucking uses D. 06:24:31 I guess it IS behind RPG and Ada though :P 06:26:24 monqy: oerjan: have you ever looked at the ghc source btw, i did yesterday and it's utterly terrifying 06:26:40 they have their own string type implemented with ForeignPtr that stores a hash of itself so equality is fast... so weird... 06:27:01 I kind of did yesterday but not really at all 06:27:36 i think the closest i've been was some ghc api modules 06:27:49 I like how they have their own mini-mtl 06:28:02 well ok it's just ID and MonadIO but still 06:28:16 ooh they have their own generic exception monad typeclass 06:28:21 ~fancy~ 06:28:51 oh my good lord 06:28:58 monqy: oerjan: ok no wait FastString isn't the worst 06:28:59 they have 06:29:00 wait for it 06:29:02 FastBool 06:29:09 type FastBool = Int# 06:29:09 fastBool True = 1# 06:29:09 fastBool False = 0# 06:29:10 O_o 06:29:16 isFastTrue 1# = True 06:29:16 isFastTrue 0# = False 06:29:16 isFastTrue _ = panic "FastTypes: isFastTrue" 06:29:36 the literal fastest boolean type 06:29:37 what 06:29:47 the fastest boolean type in the west 06:29:54 type FastInt = Int# 06:29:58 OMG GUYS STOP THIS IS SILLY 06:30:01 how does this work 06:30:07 monqy: how does what work 06:30:08 FastBool? 06:30:11 yes 06:30:11 it's just an unboxed int 06:30:14 used like C booleans 06:30:41 and fastBool and isFastTrue are used where 06:30:52 in code that uses FastBool 06:30:53 one presumes 06:30:55 inlined? 06:31:07 FastFunctions -- i was hoping this would be an unboxed function type 06:31:20 but it's just a bunch of terrifying functions 06:31:48 oh my good fuck 06:31:54 data FastMutInt = FastMutInt (MutableByteArray# RealWorld) 06:31:54 newFastMutInt = IO $ \s -> 06:31:54 case newByteArray# size s of { (# s, arr #) -> 06:31:54 (# s, FastMutInt arr #) } 06:31:54 where !(I# size) = SIZEOF_HSINT 06:32:02 it burns 06:32:19 -- hey, no harm inlining it, :-P 06:32:19 {-# INLINE inlinePerformIO #-} 06:32:19 inlinePerformIO :: IO a -> a 06:32:19 inlinePerformIO = unsafePerformIO 06:32:20 good 06:32:27 that's in the non-ghc section 06:32:32 oh 06:32:33 (thus explaining the comment) 06:32:38 instance Monad (IOEnv m) where 06:32:38 (>>=) = thenM 06:32:38 (>>) = thenM_ 06:32:38 return = returnM 06:32:38 fail _ = failM -- Ignore the string 06:32:42 DUDE IT'S A TRANSFORMER OVER IO 06:32:45 WHY WOULD YOU MAKE FAIL USELESS 06:33:08 im secretly trying to find the parts that have their own monads 06:33:39 -!- oerjan has quit (Quit: Good night). 06:33:56 oerjan 06:33:57 run away 06:33:58 from 06:34:00 the hakel 06:34:19 ./main/CmdLineParser.hs:-- EwM (short for "errors and warnings monad") is a 06:34:19 ew 06:34:20 (m) 06:34:31 checkeng out GhcMonad.hs now 06:34:57 oh no 06:36:09 utils/Bag.lhs... hepl... 06:36:39 -- This module implements intervals over the integer line and sets of 06:36:39 -- disjoint intervals. 06:36:42 sure is compiler code 06:36:49 augh 06:36:56 monqy: dont look at utils/State.hs 06:37:03 now i want to...... 06:37:09 do 06:37:10 nt 06:37:21 {- XXX hack -} 06:37:32 a Good Start 06:38:06 so much unboxed tuples 06:38:39 whats in MonadUtils..... 06:38:43 Relative to John's original paper, there are the following new features: 06:38:43 1. There's an empty document, "empty". It's a left and right unit for 06:38:43 both <> and $$, and anywhere in the argument list for 06:38:43 sep, hcat, hsep, vcat, fcat etc. 06:38:43 It is Really Useful in practice. 06:38:44 Really Useful 06:38:50 monqy: its mini mtl "the baby version" 06:39:03 liftIO4 = (((.).(.)).((.).(.))) liftIO 06:39:04 Good 06:39:40 wow is that 06:39:41 wow 06:40:17 all these monads functions 06:40:27 more like 06:40:28 GONADS, 06:40:32 snap!! 06:40:50 waht 06:40:59 oh, 06:41:07 ??????////// 06:41:09 i wonder where they use 06:41:13 waht 06:41:13 mapAndUnzip4M 06:41:14 snap??? 06:41:16 oh 06:41:22 waht is sanp 06:41:26 as in oh snap but without the oh................................ 06:41:28 thats a 06:41:30 thing 06:41:31 right 06:41:32 oh....................... 06:41:39 ..........but.....snap means "i asaid that, 06:41:41 at the same time, 06:41:43 you said the same thing," 06:41:44 oh 06:41:47 it am like 06:41:54 o i am write cod 06:41:55 i was not, aaware it was thas sepcific 06:41:58 ha ha cod is fish 06:42:02 cod? isnt that a FUSH 06:42:09 snap!!!!!!!!! snep 06:42:13 snorp........... 06:42:19 now we are all wizards........ 06:42:27 wizards are good 06:42:34 ........of death 06:42:39 death wiazards 06:42:45 eadjieatnaeti wiazskrjzlrds 06:42:50 wow it polish wizardry 06:42:59 take that.... jk "just kidding" rowling 06:43:03 infixl 3 `snocBag` 06:43:13 (alias "j r r" "just rolling rabbits" tolkein) 06:43:34 wow all of these bag functions 06:43:40 bunctions 06:43:41 mapAccumBagLM 06:43:47 flatMapBagPairM 06:44:07 im a flat map bag pair 06:44:46 -- This is how gcc does it, so it can't be that bad: 06:44:46 let 06:44:46 const | FF32 <- sz = CmmInt 0x80000000 W32 06:44:46 | otherwise = CmmInt 0x8000000000000000 W64 06:45:55 oh god 06:45:56 "const" 06:45:56 nice 06:45:58 shadwowing 06:46:53 monqy: osmeone needs to.... make ghc...not horible to read 06:47:21 -!- elliott has left ("Leaving"). 06:47:25 -!- elliott has joined. 06:47:30 monqy: there is only one place left to hide... 06:48:08 wher,e,, 06:48:16 is the other compilers...better 06:48:19 to read 06:48:21 monqy: we must 06:48:25 delve into 06:48:26 http://repetae.net/dist/jhc-0.7.7.tar.gz 06:48:52 hopeing for good 06:49:27 check out Util/RWS.hs 06:49:47 :') 06:49:48 god bless 06:49:56 i dont relaly get RWS 06:49:57 like 06:49:57 ok 06:49:59 reader and state 06:50:00 thats reasonable 06:50:02 read only state 06:50:03 and rw state 06:50:05 but writer is like 06:50:08 kinda orthogonal to those 06:50:15 i can't imagine that much fits the writer part of it?? 06:50:21 like a compiler isn't going to be just linearly outputting 06:50:23 i dunno 06:50:46 ooh a Perhaps Monoid 06:51:00 haha nice 06:51:17 -- this point of this module is not only to share the 'size' syntax, but to 06:51:17 -- provide optimally lazy versions of size comparasin functions when dealing 06:51:17 -- with lazy structures. This is especially useful when having to compare the 06:51:17 -- size of possibly long lists. 06:51:17 -- it is up to each instance to decide what 'size' means 06:51:25 a personal voyage of discovery to find out what size means 06:51:39 this reminds me I should put something up on hackage for efficient length comparisons sometime 06:51:55 monqy: Util/GMap.hs... MODERN... 06:52:02 gmap 06:52:04 ize is a measurement of surface, no? 06:52:10 hi derrik 06:52:26 hi monqy 06:52:29 *size 06:52:52 I personally find the size/wheelchair distinction quite arbitrary. 06:53:11 you don't say 06:53:27 jhc is disappointingly low on ohrrifying right now 06:53:30 readHFile :: FilePath -> IO (FilePath,HoHeader,forall a . Binary a => ChunkType -> a) 06:53:32 what 06:53:43 promising 06:53:56 normally people think that location is a dot, but in reality it never is 06:54:03 it's a surface 06:54:12 what 06:54:12 or an amount of space 06:54:16 what 06:54:32 monqy: I like how Name/Prim.hs has do not edit warnings on every single type 06:54:44 aaaaaaaaaa 06:54:48 waht 06:54:56 this file 06:55:12 noinline / do not edit / ACTUAL LINE OF CODE / ...repeat.... 06:55:47 monqy: wellat least it is genrated 06:55:59 yes... 06:56:47 i like how ther'es RWS and also a ReaderWriter 06:57:30 -!- derrik has left. 06:57:34 bye derrik 06:57:48 did 06:57:50 did it work... 06:58:20 perhAps>.. 06:59:02 im going to a slep in wonder of jhc code 06:59:07 whoa C/Generate.hs las a hong esxport list... 06:59:10 makes me want to write a compiler... 06:59:19 monqy: oh that reminds me of 06:59:20 one of my files 06:59:38 monqy: https://github.com/ehird/mchost/blob/master/MC/Protocol/Types.hs 06:59:43 monqy: behold exprot list... 06:59:54 mmmm, export list 07:00:31 farewell young girafes... 07:00:36 bye.......... 07:00:40 and glodsped....... 07:00:52 are gerafes fast 07:01:27 i 07:01:29 cry 07:01:30 hepl 07:01:39 https://github.com/ghc/ghc/commit/7bfc28d4a1c7c20714bfc11acc072e2f16927d80 07:01:40 so cish 07:02:10 cish 07:07:14 -!- elliott has quit (Ping timeout: 258 seconds). 07:15:16 -!- Sgeo|web has joined. 07:15:23 There exists something called OfficeIRC 07:15:34 IRCX server + XMPP gateway and some other stuff 07:15:47 What IRCX is, I'm not entirely sure 07:36:29 It's Microsoft's own IRC protocol! 07:36:51 Actually, it looks pretty cool 08:05:26 There's also Comic Chat. :) 08:13:00 -!- Phantom_Hoover has joined. 08:22:55 -!- copumpkin has quit (Ping timeout: 260 seconds). 08:23:19 -!- copumpkin has joined. 08:51:57 who here knew japanese? 08:52:01 -!- monqy has quit (Quit: hello). 08:52:32 i'm reading a haskell tutorial in that language, i understand everything but not if the author states copyright 08:52:40 this one: http://d.hatena.ne.jp/itchyny/20110902/1314965062 09:47:23 -!- hagb4rd has joined. 09:59:53 -!- sebbu2 has joined. 09:59:53 -!- sebbu2 has quit (Changing host). 09:59:53 -!- sebbu2 has joined. 10:01:08 -!- sebbu has quit (Ping timeout: 248 seconds). 10:01:13 -!- Ngevd has joined. 10:03:36 Hello! 10:07:01 I can't decide between playing DDR and having a nap 10:07:02 Woe is me 10:08:38 The official Microsoft solution nowadays is that Microsoft Lync (formerly Office Communicator) thing, which is built on SIP and can do federation stuff to speak with any external XMPP nets. 10:12:32 (Actually, if you happen to know about this stuff: I have a person who'd like to have me in Office Communicator to avoid running the silly Messenger thing; they have federation for MSN/Live activated on the server, and we were able to get it working if I ran the real Live Messenger too, but if I use some more reasonable client (tried bitlbee, Telepathy, Pidgin) the connection-from-Lync (it shows "Network: Microsoft Lync" instead of "Network: Microsoft Live" in 10:12:32 the real messenger) doesn't appear on contact lists at all. It is listed in the web-messenger thing, but there's no "send IM" option for it, only email.) 10:13:48 (Googling has mostly found me people who'd like to connect to an actual Office Communicator -ish environment with other clients, which doesn't really help.) 10:21:37 -!- aloril has quit (Ping timeout: 240 seconds). 10:24:17 -!- aloril has joined. 10:25:18 -!- sebbu2 has changed nick to sebbu. 10:38:57 -!- Ngevd has quit (Ping timeout: 252 seconds). 10:43:58 -!- derdon has joined. 10:53:13 -!- pikhq has quit (Ping timeout: 240 seconds). 10:53:27 -!- pikhq has joined. 11:31:32 -!- copumpkin has quit (Ping timeout: 244 seconds). 11:31:57 -!- copumpkin has joined. 11:33:19 -!- MSleep has changed nick to MDude. 11:34:04 Well cool, I got somrthing that doens't sound noisy. 11:34:05 -!- derdon has quit (Remote host closed the connection). 11:34:05 ((sin(t>>12)) * t) % 16 11:37:18 This reminds me of. 11:37:20 Just a moment. 11:37:25 someone on a different forum posted this: ((t>>8|t>>4)+sin(t)|t+cos(t*0.7)|t)&240 11:37:56 It mostly reminded me of the example program you make int he Chuck tutorial. 11:39:16 C-oneliner music: http://p.zem.fi/o3r6 11:39:38 Oh, fizzie 11:39:42 You weren't here when we played around with http://www.bemmu.com/music/index.html 11:40:11 Well, no; the above came from another #channel. 11:40:50 We came up with some sick beats 11:40:57 Given that it links to "viznut's video", seems like it's the same people to blame. 11:41:07 Yep 11:41:19 Me elliot and CakeProphet came up with these (I posted them on the tasvideos forums) http://tasvideos.org/forum/viewtopic.php?p=289101 11:41:24 Aways for nows. 12:01:58 Patashu, you were playing with the music thing without me? 12:02:08 You weren't on 12:02:14 :( 12:02:24 elliott started btw 12:12:05 DAMN HIM 12:17:51 -!- Ngevd has joined. 12:18:05 Hello! 12:23:57 -!- Vorpal has joined. 12:24:39 -!- Ngevd has quit (Remote host closed the connection). 12:29:25 -!- Ngevd has joined. 12:29:25 -!- Ngevd has quit (Read error: Connection reset by peer). 13:08:06 typeracer thinks I'm pro 13:08:07 Speed:168 wpm 13:08:07 Accuracy:100% 13:08:07 Congratulations! You are now certified as able to type 168 wpm! 13:09:55 -!- tiffany has joined. 13:35:01 Patashu: didn't we start playing with it a lot after I showed something? 13:35:13 also 168 is insane u used h4x 13:36:37 oh 13:36:38 it might have been you 13:36:40 Phantom_Hoover: in any case, you may blame me. 13:36:41 also 13:36:48 I got 168 once and 166 once in about a half hour sesson 13:36:52 Cake "the WORST" Prophet 13:36:58 168 is my 'absolutely no errors' speed 13:37:01 Patashu: isn't that kind of approaching the world record? 13:37:07 I'm sure it's not 13:37:08 let me check 13:38:05 keep in mind 168 is my PEAK not my average 13:38:38 http://rcranger.mysite.syr.edu/famhist/blackburn.htm 13:39:04 oh 13:40:31 Patashu: yeah it is. 13:40:32 this guy is pretty cool http://www.youtube.com/watch?v=M9lpqG9ZvGY&feature=related 13:40:51 it's like brrt brrt brrt 13:40:53 you are roughly tied with a former record folter. 13:41:04 nope sorry 13:41:05 so that puts you at "close" to the current record sort of. 13:41:10 the record is for 150 for 50 minutes sustained 13:41:14 sustained I can only get 125ish 13:41:39 Patashu: these jokes are so bad. 13:41:43 yep 13:42:17 he doesn't even look like he's typing anything. 13:43:07 that's weird that they type numbers. 13:43:23 well it makes sense to me 13:43:26 -!- azaq23 has joined. 13:43:33 wpm is very dependent on what type of text you're typing 13:43:37 numbers, not so much 13:48:10 -!- DH____ has quit (Read error: Connection reset by peer). 14:07:29 -!- oklopol has joined. 14:07:42 so did you hear the news 14:07:54 Is Finland at war. 14:07:55 \N doesn't exist 14:08:03 and 14:08:05 by 14:08:07 \N 14:08:10 i mean naturals 14:08:27 Oh also elliott tells me he told you about that gravity thing but couldn't find the link because he is stupid and weak. 14:08:41 right, i'd still like to see that 14:08:56 anyway this guy proved peano axioms are inconsistent 14:09:03 Ask and ye shall receive: matthen.com/javascript/gravity.html 14:09:07 oklopol, um really? 14:09:10 we scrapped all our articles and i'm going to 14:09:14 become like a 14:09:18 i dunno waiter maybe 14:09:37 404 14:09:37 I am highly... not sceptical; oklosceptical, perhaps. 14:09:44 oops 14:09:53 i did errored copypaste 14:10:47 if you rearrange the letters you get klop loo 14:10:54 and both mean toilet! 14:11:06 Crowding of teeth is recognized as an affliction that stems in part from a modern western lifestyle.[citation needed] It is unknown whether it is due to the consistency of western diets,[citation needed] a result of mouthbreathing;[citation needed] or the result of an early loss of deciduous (milk, baby) teeth[citation needed] due to decay. 14:11:07 these look like orbits to me! sorcery. 14:11:11 lolwat 14:11:15 can i see multiple planets tho 14:11:22 how does mouthbreathing make your teeth crowded. 14:11:49 CakeProphet: what is teeth crowding? 14:11:51 CakeProphet, I doubt it does, what with {{fact}} every other word. 14:12:06 is that when wisdom teeth push your teeth together? 14:12:08 cheater: exactly what it sounds like. 14:12:11 no 14:12:15 it occurs when you lose your baby teeth. 14:12:19 ok 14:12:35 and the permanent ones erupt but don't have enough room because of other teeth in the way etc 14:12:39 results in crooked teeth. 14:12:41 ah ok that 14:13:29 mouth breathing means your teeth are mostly apart rather than pushing against each other 14:13:38 also Phantom_Hoover yes really, but i doubt it has passed peer review of any kind 14:13:41 so they might be more prone to going wrong places 14:13:48 oklopol, ah. 14:13:48 but it doesn't look completely crackpotty 14:14:05 writing a curses tutorial for haskell 14:14:07 who wants 14:14:12 (I thought Peano was pretty solid as far as inconsistency goes anyway.) 14:14:24 it's basically a list of 1000 or so simple little things he proves, and the punch line is BOOM math is gone 14:14:50 i think i may have heard of it 14:14:53 who is that oklopol 14:14:58 well actually he also proves you can still do pretty much everything you were able to do before 14:15:25 with another set of axioms that replaces induction with every number has a successor 14:15:32 except 0 14:16:02 cheater: don't remember 14:16:38 damn you 14:17:06 also why would 0 not have a successor 14:21:36 His wife never bore him a son, duh. 14:22:23 is inconsistent being used in the sense of "does not contain a contradiction" here? 14:24:31 http://www.freak-search.com/en/thread/889644/peanos_axioms_are_inconsistent -- heheehe 14:24:34 not that one :DS 14:24:43 cheater: sorry i meant predecessor 14:24:59 http://en.wikipedia.org/wiki/Jaffa_Cakes#Cake_or_biscuit.3F 14:25:04 CakeProphet: no, in the sense "contains a contradiction" 14:25:17 McVities defended its classification of Jaffa Cakes as cakes in court, producing a 12" (30 cm) Jaffa Cake to illustrate that its Jaffa Cakes were simply miniature cakes. McVities argued that a distinction between cakes and biscuits is, among other things, that biscuits would normally be expected to go soft when stale, whereas cakes would normally be expected to go hard. 14:25:26 Sounds like an enthralling case. 14:25:29 oklopol: er, right. 14:25:52 oklopol: so what was the punchline with Peano (aka the contradiction) 14:26:08 that they are inconsistent 14:26:13 oh 14:26:15 .. 14:26:17 lol 14:26:20 i have no idea, it's hundreds of pages 14:26:34 ah okay 14:26:34 well 120 something 14:26:51 that's still hundreds 14:26:53 one hundred to be exact. 14:26:56 CakeProphet, I assume it was being fought for tax reasons. 14:26:59 and it's just a list of lemmas, more than 10 a page 14:27:04 Phantom_Hoover: yes that's what the article explains. 14:27:34 oklopol: ok that's better 14:27:41 just imagine someone in court, presenting a Jaffa Cake in court and arguing for its cakeness. 14:28:18 :D 14:29:13 peano arithmetic is inconsistent when you lose your baby teeth. 14:29:29 presenting a Jaffa Cake in court and arguing that peano arithmetic is inconsistent 14:29:34 * Patashu is a markov chain bot 14:31:51 Losing your baby teeth to a Jaffa Cake. 14:32:01 Or Tel Aviv Cakes as they're known nowadays. 14:32:25 -!- pikhq_ has joined. 14:32:36 -!- pikhq has quit (Ping timeout: 248 seconds). 14:32:50 I think the best way to determine if a Jaffa Cake is indeed a cake 14:33:02 is to ask: would you use it as a birthday cake? 14:33:27 You might use a big one. 14:33:34 i don't celebrate birthdays 14:33:48 hey guys I have a keyboard idea 14:33:51 of course now I must look up birthday cakes, and learn about their history. 14:34:08 shift keys that turn themselves off if you press two letters in a row 14:34:13 (just before you press the second) 14:34:16 GEnius 14:34:29 it'll only slow you down for entirely capitalized words which are rare 14:34:31 oh you mean like windows lets you do since 1930 14:34:35 how about a keyboard with a huge array of common words? 14:34:39 oklopol: really? damn 14:34:40 where? 14:34:46 i don't recall, i don't use it 14:34:47 cakeprophet: woah woah now 14:34:53 but you can switch that on 14:35:20 I NEVER HOLD SHIFT WHILE TYPING 14:35:22 NOT EVERY 14:35:25 -Y 14:35:35 CAPS LOCK IS FOR CHUMPOS 14:35:54 oklopol, I just checked the obvious spot (keyboard and accessibility) and don't see such a setting 14:36:05 huh. 14:36:19 also, I just realized how awkward typing full capitalized words would be 14:36:22 try the motion 14:36:25 it's called sticky keys 14:36:29 it's like shift letter release all shift letter release all 14:36:30 press shift 5 times 14:36:49 Patashu: it's not awkward when you type like I do 14:36:55 (read: completely non-standard) 14:37:06 Stickykeys doesn't do what I said 14:37:08 SEE? 14:37:13 one finger for letters, penis smash for space 14:37:17 I CAN TYPE HOLDING DOWN SHIFT AND IT STILL CAPITALIZES EVERYTHING. 14:37:23 oh. 14:37:28 that's what you meant 14:37:38 i don't see what additional use yours would be 14:37:47 typing faster without making mistakes 14:37:52 I was on typeracer earlier 14:37:54 eh 14:37:56 Well I occasionally do ACcidentally CApitalize words. 14:37:56 a common mistake was capitalizing two letters 14:38:02 which typeracer considers an error I have to backspace and fix 14:38:04 breaks your flow 14:38:05 sticky keys would get rid of that 14:38:16 because you cannot accidentally hold it too long 14:38:25 Patashu: so wait you're on windows? 14:38:29 what's wrong with you 14:38:29 yep 14:38:44 oo 14:38:46 I see what it does 14:38:47 let me try that 14:39:08 Terminator 14:39:08 wow 14:39:10 that's pretty cool 14:39:57 in CakeFuck there are no lexemes. All components of CakeFuck grammar are composed of blasphemes. 14:39:57 I don't think it would help though 14:40:11 since if you're still holding shift stickykeys doesn't lift it up 14:40:16 it's STICKY keys after all 14:42:23 why would you hold it 14:43:08 I don't hold it 14:43:15 it just remains held for a fraction of a second longer than it needs to be 14:43:23 because of how my hands happen to move 14:44:14 well dunno i don't use capitals much so never even tried sticky keys 14:44:30 you need to use capitals if you type on typeracer 14:44:34 it considers ANY error a typo 14:44:38 also i hate them before even trying them because five shift hits brings them up 14:44:38 and won't let you move on until you fix it 14:44:49 you can turn that off btw 14:45:00 yeah but this computer is somewhat newish 14:45:38 doesn't stop you from turning it off............... 14:46:12 no, but certainly stops me from having turned them off 14:46:15 Capitals are the Best 14:46:21 I love to use Capital Letters. 14:46:36 Me Too 14:46:44 aaaaAAAAAAAAAAAAAAAAAAaaaaaaaaaAAAAAAAAAAAaaaaaAAaaaAAAaaaaAAAaaaaaaaaaAAAAAAAAAAAAAAAaaaaaaaaAAAAAAAAAAAAAaaaaaaaAAaaaAAAaaaaAAAaaaAAAaaaaAAAAaaa 14:46:56 holding down and then press shift on and off is fun. 14:47:00 *down a 14:47:49 doesn't work for me 14:47:55 the repeat stops when I press anything even shift 14:47:58 that's because Windows is evil. 14:48:02 doesn't work on my cupboard either 14:48:19 huh, weird. 14:48:29 are you also unsing vindoes? 14:48:37 he must be 14:48:39 yes, of course 14:48:40 he complained about stickykeys 14:48:49 i never use anything else 14:48:59 fuckin' veirdoes 14:49:08 if I made my own programming language it would look like this: http://aperture.physibots.info/p/2c 14:49:09 well i've used ubuntu briefly but this is so much better 14:50:17 shameful. 14:50:35 hehe 14:50:38 sticky keys on windows 14:51:03 it's especially annoying when you're playing a game like spore that crashes when you defullscreen it :p 14:51:38 I wonder what a Victorian era person would think about the phrase "sticky keys on windows" 14:51:43 :D 14:51:50 lol 14:52:03 tiffany: i hear you can turn that shit off 14:52:16 I tried it once on xp and it didn't 14:52:17 yes there's this magical checkbox 14:52:34 when it asks to make your keys sticky (awwww yeah) 14:52:39 tiffany, the correct response is to stop playing Spore already. 14:52:50 I don't play spore anymore, or use windows 14:52:50 :s 14:52:52 but Spore is so good. 14:52:55 oh okay. 14:53:08 okay one thing about windows that almost made me switch to ubuntu foreverly is that 3am restarts. you can turn them off but just the fact they made that is so incredibly idiotic i just want to burn everyone who ever worked at microsoft. 14:53:20 heh 14:53:21 tiffany, I note also that you have committed the cardinal sin of building a language around syntax. 14:53:28 CakeProphet, excuse me no it isn't. 14:53:30 3am.... restart? 14:53:30 wat? 14:53:36 It's the shadow of a game that would have been good. 14:53:44 is Windows intolerant of nocturnal people? ignorant of their ways? 14:53:47 windows is a microkernel and should never need to restart 14:53:55 linux is a monolithic kernel and should need to restart all the time 14:54:04 wat 14:54:08 Windows isn't a microkernal. 14:54:15 I have been lied to then :I 14:54:17 anyway 14:54:21 windows reboots for the smallest of things 14:54:31 CakeProphet: updates need restarts, and the default is that it automatically restarts at 3am 14:54:34 every night 14:54:39 oklopol: oh right. 14:54:41 and then you never reboot unless kernel updates on linux, and even then you can get around it 14:54:42 http://funcorner.eu/wp-content/uploads/2011/03/computer_update.jpg 14:54:42 yes that was always annoying. 14:55:02 I do have to reboot occasionally as my computer tends to freeze when coming out of sleep. 14:55:05 so everyone who has used windows has probably lost a few hours of unsaved work because of that 14:55:12 but I'll go weeks at a time without turning off my laptop. 14:55:18 I save compulsively 14:55:25 What is even with university websites being designed around the principle that nobody will try to use them when applying. 14:55:28 that little asterisk next to unsaved files is the bane of my existence 14:55:33 i don't save running programs though 14:56:01 sometimes I hit ctrl+s faster than gedit can write the file to disk 14:56:16 gedit? 14:56:24 tiny little editor that I use for things 14:56:40 I know; the name is short for "get a proper text editor". 14:56:47 :| 14:56:48 I'm almost positive Phantom_Hoover kno-- okay good. 14:56:50 I have code::blocks 14:56:52 and emacs 14:57:06 I use code::blocks for C/C++ and don't really like emacs 14:57:13 lol oh man 14:57:16 I used gedit a lot until I switched to emacs. 14:57:17 tiffany: yeah i rape ctrl+s all the time as well, but older browsers would lose your open pages, then there's running games, searches you're running, etc 14:57:22 I want to read more finitism/constructivism crackpottery 14:57:23 I must have more 14:57:24 give me more 14:57:28 "older browsers" 14:57:34 * CakeProphet rapes C-x C-s 14:57:38 firefox doesn't save tabs unless you hunt down that stupid option 14:57:39 Patashu, read everything Zeilberger has ever written. 14:58:35 * tiffany resists complaining about such a major hop (6.0.2 -> 7.0.0) had very little feature updates... 15:02:12 -!- Ngevd has joined. 15:02:18 -!- Ngevd_ has joined. 15:02:27 -!- Ngevd_ has left. 15:06:58 " firefox doesn't save tabs unless you hunt down that stupid option" --- i only use ie and chrome 15:07:18 last I checked chrome doesn't save my tabs :s 15:07:25 it does 15:07:29 -!- ais523 has joined. 15:07:36 maybe it doesn't like you 15:08:06 I don't think any of my browsers like me 15:08:09 they all crash regularly 15:08:20 opera, firefox, chromium, midori :| 15:08:55 Chrome saves your tabs but you have to open them manually 15:08:55 -!- SgeoN2 has quit (Read error: Connection reset by peer). 15:09:13 You click "6 new tabs" or whatever at the bottom of the new tab page 15:09:14 -!- SgeoN1 has joined. 15:11:21 why don't you use ie, that's the best browser 15:11:53 * tiffany drops oklopol into a sea of trojans 15:12:06 heh 15:12:19 ie is unsafe? 15:12:26 that's not what i've heard 15:12:27 one of my friends found this thing called 99 000 trojans, it installs 99 000 trojans on any windows/mac OS 15:14:03 99,000 unique trojans? 15:14:07 i thought trojans and viruses were extinct 15:14:18 trojans by definition can't become extinct 15:14:28 ^ 15:14:34 sort of not 15:14:44 Well, anyone with a decent classical education knows that the Trojans were wiped out in the Trojan War, although a small band of them purportedly became the Romans. 15:14:58 but as long as there are people with computers, there will be malware 15:15:06 actually 15:15:15 probably as longa s there are antivirus companies 15:15:20 lOL 15:15:32 hospitals don't want to cure your cancer, man! 15:15:34 end the fed! 15:15:41 no autism vacinnes! 15:16:23 everyone just needs to use common sense! 15:16:45 common sense - so rare it's a superpower 15:17:09 protip: just because you start your argument with 'it's common sense that' doesn't make it right 15:17:21 the lesser known fact is that common sense is often not sense 15:18:06 but as long as there are people with computers, there will be malware 15:18:19 not once @ comes along 15:18:22 :shades: 15:18:24 inb4 Not with @! 15:18:28 Patashu, damn you! 15:18:30 o.o 15:18:44 No, @.@ 15:21:18 Madoka-Kaname, ^ note feature request. 15:22:25 * tiffany clings to madoka-kaname 15:30:44 -!- hagb4rd has quit (Ping timeout: 248 seconds). 15:32:36 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 15:34:44 -!- Ngevd has quit (Remote host closed the connection). 15:35:23 -!- Ngevd has joined. 15:40:53 * Madoka-Kaname snuggles tiffany ^^ 15:44:14 -!- Ngevd has quit (Remote host closed the connection). 15:51:48 * tiffany snuggles ^^ 16:23:37 IBM have just overtaken Microsoft in market cap? that's surprising 16:28:06 I think I like ibm more than microsoft 16:28:43 -!- plycke has joined. 16:28:48 https://www.ibm.com/developerworks/ ~ 16:28:50 -!- plycke has quit (Excess Flood). 16:31:38 -!- monqy has joined. 16:50:16 -!- azaq23 has quit (Ping timeout: 258 seconds). 17:07:23 -!- elliott has joined. 17:10:23 11:34:05: ((sin(t>>12)) * t) % 16 17:10:23 heh 17:10:32 11:39:16: C-oneliner music: http://p.zem.fi/o3r6 17:10:39 fizzie: those are from http://www.youtube.com/watch?v=GtQdIYUtAHg 17:10:42 linked from http://www.bemmu.com/music/index.html 17:10:50 11:40:57: Given that it links to "viznut's video", seems like it's the same people to blame. 17:10:51 right 17:11:43 11:41:19: Me elliot and CakeProphet came up with these (I posted them on the tasvideos forums) http://tasvideos.org/forum/viewtopic.php?p=289101 17:11:51 I can't recognise which one is my masterpiece X-D 17:12:44 oh, it's 17:12:45 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 17:15:55 can you hear those somewhere 17:16:12 oklopol: http://www.bemmu.com/music/index.html 17:16:22 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) 17:16:22 and 17:16:23 100*sin(Math.sqrt(t)^Math.sqrt(10*(t%1024))<<(t/1024)) 17:16:28 are pretty good ones made by me 17:16:28 well 17:16:30 at least mostly by me 17:16:33 it was kind of incestuous 17:17:01 wo - fucking w that's awesome :D 17:17:11 i like patashu's 50*sin(Math.sqrt(100*(t%1024))+(t/768))+((t%8192)>4096?50*sin(Math.sqrt(100*(t%1024)<<(t/2048))):0) 17:17:32 oklopol: that first one was basically complete luck so don't go worshipping me :P 17:18:02 yeeah right 17:18:04 14:08:56: anyway this guy proved peano axioms are inconsistent 17:18:04 14:09:07: oklopol, um really? 17:18:08 Phantom_Hoover: Dude we discussed this in-channel. 17:18:22 I DIDN'T SEE 17:18:26 Yes, you did. 17:18:29 It's the Nelson guy. 17:18:30 i like the farts in patashu's 17:19:04 t*(t>>8&t>>12) is still great 17:19:29 :O 17:20:21 08:51:57: who here knew japanese? 17:20:21 08:52:32: i'm reading a haskell tutorial in that language, i understand everything but not if the author states copyright 17:20:21 08:52:40: this one: http://d.hatena.ne.jp/itchyny/20110902/1314965062 17:20:21 14:14:05: writing a curses tutorial for haskell 17:20:22 14:14:07: who wants 17:20:24 hmm, cheater sure has been pioneering the form of "get information entirely from other people then restate it to create my very own blogspam" 17:20:27 lately 17:20:40 it certainly makes sense that bitshifts awesome it up, but this is just ridiculously great 17:21:47 14:31:51: Losing your baby teeth to a Jaffa Cake. 17:21:47 14:32:01: Or Tel Aviv Cakes as they're known nowadays. 17:21:48 Phantom_Hoover: :DDD 17:22:07 14:32:50: I think the best way to determine if a Jaffa Cake is indeed a cake 17:22:07 14:33:02: is to ask: would you use it as a birthday cake? 17:22:07 As a fan of Tel Aviv cakes I can confirm that I wouldn't eat a cake-sized one. 17:22:35 i would so 17:23:13 Sorry no Tel Aviv Cakes are the worst. 17:24:08 -- Phantom_Hoover, worst person 17:24:38 How can I be worst, I don't like Tel Aviv Cakes. 17:25:13 14:53:47: windows is a microkernel and should never need to restart 17:25:13 14:53:55: linux is a monolithic kernel and should need to restart all the time 17:25:17 tiffany: ............................................ 17:25:22 :s 17:25:46 tiffany: u a girl right 17:25:50 14:54:04: wat 17:25:50 14:54:08: Windows isn't a microkernal. 17:25:50 NT is a pseudo-microkernel. 17:25:54 But that has nothing to do with restarts. 17:26:14 elliott: why don't you find someone else to be pesky to? 17:26:23 everything says that by design it's harder to update a running monolithic kernel than a microkernel 17:26:32 except for elliotts 17:27:20 cheater: Do you intentionally use ridiculous stereotypically-British terms when firing out that stock phrase? 17:27:47 But seriously, no, I'm impressed; while directly copying a Japanese tutorial is not very difficult, I would have bet against anyone being able to rope #haskell into writing a tutorial for them over the course of a whole day. 17:29:01 Also I didn't actually address you at all in that message, so I'm hardly being pesky to you; it's not my fault if your IRC client bugs you whenever anyone talks /about/ you. 17:29:20 14:56:16: gedit? 17:29:21 14:56:40: I know; the name is short for "get a proper text editor". 17:29:23 you're talking shit about me 17:29:24 Phantom_Hoover: I use gedit sometimes. 17:29:48 cheater: Did I say anything untrue? 17:29:48 cheater: only behind your back 17:29:52 yes. 17:29:54 so what are you complaining about 17:29:58 cheater: What, then? 17:30:05 I can hardly rectify it if I don't know what I said. 17:30:16 riiiight 17:30:26 who is supposed to buy you playing dumb? 17:30:39 hey, you two, calm down, this conversation isn't going anywhere 17:30:41 maybe only you believe someone will actually go for this idiotic performance 17:31:02 ais523: hopefully it will go in the direction of elliott leaving me alone 17:31:03 while it's true it's annoying when elliott plays dumb, i can assure you it's more annoying when he tries to play smart 17:31:26 ais523: I'm perfectly calm, cheater is loudly accusing me of lying and I'm asking him to tell me what I did. But really I don't care. 17:31:48 well, OK, but you're rather inciting the conversation 17:31:55 if you think cheater is a troll, you might want to stop feeding him 17:31:58 lying is one thing, libel is another 17:32:00 and if you don't, why are you responding like that? 17:32:16 ais523: having incite is a GOOD quality 17:32:25 ais523: Are you seriously saying asking for clarification is something you'd only do to a troll?? 17:32:50 no; but asking for clarification the way you are looks like goading 17:32:58 oklopol: you aren't oerjan, stop making puns that bad 17:33:11 mwahaha 17:33:15 where's oerjan 17:33:17 ais523: Shrug, I tend to like to know what someone is referring to when they apparently accuse me of libel 17:34:00 as if anyone is buying that you don't know 17:34:18 you could at least not insult the intelligence of other people in here 17:34:30 but apparently you don't give a shit about that either 17:34:41 Well, I'm certainly buying it. But I won't respond any further, if you're just going to refuse to answer because it's "obvious". 17:34:58 * Phantom_Hoover pops some popcorn. 17:35:34 the only obvious thing here is that you've yet again denigrated me, got called out on it, and are pretending you didn't make the stink 17:36:31 maybe you aren't experienced enough to realize people don't fall for this sort of thing, but you're definitely not dumb enough not to know when you insult someone. 17:36:52 cheater, I'm dumb enough to fall for it. 17:37:05 well done, blog about it 17:37:17 now, back to what i was doing 17:37:34 i wonder how many eyes i could eat before realizing that's not what eyes are for 17:38:04 oklopol: at least this many ꙮ 17:38:11 sorry i can't read that 17:38:14 what is it 17:38:21 it's the Multiocular O. 17:38:27 wow. 17:38:47 the glyph is a drawing of 7 eyes 17:39:09 :o 17:41:32 You can see an image of it at http://www.fileformat.info/info/unicode/char/a66e/index.htm -- and of course at the code chart, but those are unwieldy. 17:41:52 that's incredibly cute and beautiful and awesome 17:41:57 wow. 17:41:58 i think the wikipedia page had a graphical image 17:42:08 -!- sllide has joined. 17:42:10 ꙮklꙮpꙮl 17:42:26 :( 17:42:34 o 17:42:42 it's funny because ok- is a prefix from the word that means "eye" 17:42:47 or "eyes" 17:42:53 so it kinda fits. 17:43:15 your nick is a tarpit of inspiration, oklopol 17:43:41 yes! 17:43:47 i did not come up with it. 17:43:53 who has? 17:44:21 this dude from #vjn 17:44:57 what is that place about? 17:45:30 let me show you the last three lines 17:45:34 [20:22:01] <@oklofok> o 17:45:34 [20:22:01] <@oklofok> o 17:45:34 [20:22:01] <@oklofok> o 17:45:57 I played some Trauma.... Wtf. 17:45:59 so strange 17:46:14 oklopol: sounds interesting 17:46:26 oklopol: what does vjn stand for? :D 17:46:52 well you don't know finnish so 17:47:06 o 17:47:13 it's a scouting term, i used to be a scout 17:47:15 how do you guess :| 17:47:24 * Phantom_Hoover ponders a topological language. 17:47:26 maybe i DO know finnish 17:47:29 maybe 17:47:32 who knows 17:47:35 Just 17:47:40 Phantom_Hoover: Topolanguage? 17:47:42 Like, it's a fungoid, and the only control structure is setting the wrapping behaviour. 17:47:53 Phantom_Hoover: That reminds me of eodeodmeomdoeeroermdrome in a way. 17:47:59 Like, if the actual space is fixed. 17:48:03 But you just control the wrapping. 17:48:11 Space as in the contents, instructions whatever. 17:48:42 Phantom_Hoover: more interesting if you can control the size of the field too 17:49:21 i wonder if SpaceChem is a fungoid 17:49:46 pikhq_: I miiiiiiiiight end up working on Kitten again. 17:51:53 Topological kitten. 17:52:05 Topitten. 17:52:09 Kittological. 17:52:12 Wow this doesn't work. 17:52:19 you are not by any change talking about mathematical topologies 17:52:30 Topolitten 17:52:54 oklopol: By any change? 17:52:59 :DD 17:53:02 chance 17:53:06 Deewiant: Verily 17:53:37 Kipologitten. 17:54:27 topology is beautiful 17:55:13 so i kind of feel like punching through a wall 17:55:15 is that normal 17:57:01 oklopol, what is the topology of a kitten. 17:57:26 Phantom_Hoover: Beautiful. 17:58:18 Gregor: Oh man, the Node guy is having an existential crisis for inflicting it on the world. 18:00:04 oh?? 18:00:15 https://plus.google.com/115094562986465477143/posts/Di6RwCNKCrf 18:00:19 a poem: 18:00:20 my tears 18:00:22 are red 18:00:23 like blood 18:00:25 i forced 18:00:26 the world 18:00:28 to write 18:00:30 network code 18:00:33 in continuation passing style 18:00:36 fuck life 18:01:17 "The entire system is broken - all the languages and all the operating systems. It will all need to be replaced." 18:01:22 he is going to produce something much much worse than @ 18:05:18 he's right at least, everything is shit 18:12:30 Some things more so than others. 18:12:51 I think initialisation from the BIOS is the most shitty thing. 18:13:37 elliott, so he's arguing for the removal of abstractaion? 18:13:40 abstractation* 18:13:41 w/e 18:13:51 For... the user's sake? 18:13:57 What? 18:14:28 Believe you me, you *want* to abstract some things. 18:15:15 > text $ reverse "...sgniht fo tol a rO" 18:15:16 Or a lot of things... 18:15:32 Repeat after me: modern hardware is the only thing that sucks worse than modern software. 18:15:51 Well, software can kinda patch over the hardware problem, so... 18:16:07 It doesn't make the hardware suck less. 18:16:14 It just increases the software suck a bit. 18:16:17 =p 18:16:39 an 18:16:53 anyone* understand what the game Trauma is about, really 18:17:18 You're presuming it's about anything. 18:17:26 obviously extremely pretentious artsy. I mean, compared to this Braid doesn't seem pretentious at all… 18:17:37 You're presuming it's about anything. 18:17:46 For an example of something that sucks: SSDs. Now, yes, they're pretty sweet and all, but is there any *reason* to have a disk controller in there to let everything else pretend that it's a spinning disk? 18:17:56 "More an experimental piece of interactive storytelling than a game, Trauma involves a young woman who wakes up in hospital having survived a car crash that killed both her parents. The player assumes the role of a psychologist, exploring four separate dreams constructed from real-world photographs mixed with strange, mildly hallucinatory images." 18:17:58 Instead of a particular form of RAM, that is. 18:18:02 That's about as detailed as you're gonna get. 18:18:30 pikhq_, backward compatibility 18:18:42 Vorpal: Is the bane of good design. 18:18:56 Obviously, it's about convinving the girl to take the death of her parents as a sign that she needs to be a superhero. 18:18:56 pikhq_, you said reason, not justification 18:19:04 See: Win32, UNIX. 18:19:27 MDude: obviousl 18:19:28 y 18:19:55 pikhq_, I agree. But it still is the reason. Oh and it is block oriented because of erase block size. Impractical to make it on anything but block level 18:20:35 SSDs should probably expose themselves as write-once interfaces. 18:20:37 Not RAM. 18:20:45 Vorpal: ATA is still the *wrong* interface. 18:20:50 pikhq_, that is true 18:21:07 pikhq_, I never claimed it was the right interface. I was just trying to come up with a reason. NOT with a justification 18:21:13 Vorpal: True, true. 18:23:10 why don't i own a basketball?!?!?!?!? 18:23:14 fuck i'm leaving 18:23:30 pikhq_, I think too many people confuse reason and justification, sure they are related but they are different 18:25:41 lojban has 4 words for "because" 18:25:48 Also, fuck BIOS. Just fuck BIOS. 18:31:23 \ 18:33:51 pikhq_: I wonder if I could use a pointer-bumping RAM-allocator for @ 18:34:01 I don't think so, because that would basically require a copying GC for RAM 18:34:31 Hmm 18:34:35 I could do a compacting algorithm 18:38:18 pikhq_: THX FOUR HELP 18:39:28 Either galculator only deals with reals, or its definition of abs() is wrong 18:39:47 It tells me that the square root of -1 is -nan, so I'll go with the former 18:39:58 Galculator can compute with the entire reals? Wow. 18:40:46 "Only dealing with reals" does not imply that it deals with all reals. 18:40:56 Sgeo|web, joke killer. 18:42:03 I have this calculator here; it can work with the numbers zero or one. So, sure, it only deals with arbitrary sets, but... 18:44:03 -!- zzo38 has joined. 18:45:30 Do you know that? 18:45:40 no 18:45:53 Do you know if there are drivers for FreeDOS to access USB printers? 18:46:34 Do you know if there are drivers for BBL/Abundance to print on fax machines? 18:47:27 hi 18:47:43 monqy: did you find...scary... in jhc... 18:48:11 ih havent been loiiingk 18:48:14 lookgin 18:48:16 look ing 18:48:21 lsgoidkfnj 18:48:24 elliott: what's your opinion on what happened to http://esolangs.org/wiki/Brainlove? 18:48:33 as in, it was renamed to [[Elog]] which is a completely different language 18:48:37 and the page content just replaced 18:48:42 it's sort-of the opposite of a copy-and-paste 18:48:43 http://esolangs.org/w/index.php?title=Brainlove&action=history 18:48:44 elliott: Well, copying GC *is* a compacting algorithm... :) 18:48:46 umm, where are the previous revisions? 18:48:48 oh, moved 18:48:54 ais523: I think we should revert it 18:48:56 it's a move-and-replace delete, I think 18:49:06 move Elog back to Brainlove, copy-and-paste-move the actual Elog language to [[Elog]] 18:49:16 nah, it should be a history split 18:49:17 and add a note to Brainlove about the creator considering Elog the successor, or something 18:49:21 I haven't done one of these in /years/ 18:49:22 let me try 18:49:25 ais523: I was thinking in terms of something a non-admin could do, but yes 18:49:48 wow, it really is completely differen 18:49:48 t 18:49:59 ais523: hmm... wait 18:50:07 this might be our one chance at destroying a BF derivative 18:50:10 I suggest we do nothing :P 18:50:15 bah 18:50:19 *nah 18:50:22 although "bah" also fits 18:52:10 ais523: http://esolangs.org/wiki/Talk:Elog 18:52:12 not quite... 18:52:20 elliott: I'm still doing the split 18:52:22 oh :P 18:52:33 * elliott reverts the latest change to [[Talk:Brainlove]], anyway 18:52:37 which is unrelated to the split 18:52:51 oh, too late 18:52:55 ais523: YOU ARE TOO FAST 18:53:09 that was the noisiest recent changes action I've ever seen 18:53:37 I've never done one of those ever, I think, except once in my own userspace in Wikipedia for practice 18:53:45 Did Elog have any real history of its own? 18:53:50 they don't come up very often, and normally are used to revert mistaken history merges 18:53:55 Sgeo|web: it did have a bit 18:53:59 two revisions 18:54:16 you might want to tell Aptennap why you did it before they see it and get upset :P 18:54:38 [[Elog]] needs categorisation, anyway 18:55:15 If Brainlove was moved to Elog, how is that even possible, if Elog had stuff there? 18:55:16 done, at least partially 18:55:44 And in recent changes, I don't see any revisions after the move 18:55:48 * Sgeo|web may be a bit confused 18:56:38 you know, I have no idea what a history split looks like in recent changes 18:56:41 this may be a rare opportunity to see 18:56:47 (you can't really in Wikipedia because recent changes moves too fast) 18:57:33 oh dear, a git problem that sg doesn't inherently avoid 18:57:37 ais523: Like I said: noisy 18:58:18 "You're doing it wrong. You shouldn't pull to merge; or rather, you should commit before you pull. Then you can't lose anything - because all your changes are committed." 18:58:19 Yawn 18:58:31 They don't even have a printer yet, but I would like to know about these kind of driver for FreeDOS and BBL/Abundance and that stuff, so that I can know what to tell them. 18:58:32 hmm, git pull should stash before pulling, and then try and pop the stash 19:01:27 I think that's a VCS workflow problem in general 19:02:00 at least darcs can pull with working version changes, though 19:02:22 so can svn but then it is not a dvcs 19:02:34 and its behaviour is pretty much equivalent to stash/pull/stash, with conflicts just leaving the repo in a conflicted state and the next commit on the conflicted files counting as resolving the conflict 19:02:49 Vorpal: distributedness shouldn't matter for this issue 19:02:55 indeed 19:03:08 but it means it is same as up with changed files 19:03:46 I'm occasionally overcome by a desire to switch to a really oddball VCS 19:03:57 Monotone or arch or Fossil or something 19:04:01 It usually passes pretty quickly though 19:04:16 You should be using ais523's VCS 19:04:29 Sgeo|web: hey, elliott's actually been developing that 19:04:46 Huh, cool 19:04:49 ais523: well, ostensibly 19:04:51 oddball VCSes wouldn't be "because it's better" but "because I'm being weird for no good reason" 19:05:06 Ah 19:05:08 hmm, there should be a POSIX standard VCS that nobody ever actually uses 19:05:17 Monotone is kind of interesting, but I can't shake the feeling it was designed in an alternative universe where development is totally different. 19:05:21 that works vaguely like CVS but is incompatible for no obvious reason 19:05:23 ais523, rcs maybe? 19:05:24 ais523: svnhgit? 19:05:30 I guess it's because it's really old -- it only postdates darcs by a year 19:05:38 But it's still alien 19:05:44 darcs is really old? 19:05:50 ais523: 2002 19:05:54 ais523: one of the first open-source DVCSes 19:05:59 that's not really old 19:05:59 (the first was arch, 2001) 19:06:06 ais523: yes it is, in terms of DVCSes 19:06:10 ais523, in this context it is old 19:06:14 well, OK, but not in terms of VCSes in general 19:06:30 but then that wasn't the context either 19:06:42 TeamWare (1990s) → Code Co-op (1997) → BitKeeper (1998) → arch (2001) → darcs (2002) 19:06:55 ais523: Things predating DVCSes are just eeew, though. 19:06:55 it took until 2005 for anyone to actually start caring, with git and mercurial 19:07:01 never heard of teamware 19:07:06 Vorpal: it's some sun crap 19:07:11 ah 19:07:13 but it inspired bitkeeper apparently 19:07:14 when does VSS date from? 19:07:20 * Vorpal forces elliott to use Visual SorceSafe 19:07:21 ais523: 1994 19:07:30 hmm, not as bad as I'd thought 19:07:32 -!- zzo38 has left. 19:07:35 ais523, VSS? 19:07:39 it'd have been hilarious if it was 2006 or something 19:07:39 wow, VCSes were very stagnant to start with 19:07:41 which one is that 19:07:42 Vorpal: * Vorpal forces elliott to use Visual SorceSafe 19:07:43 Visual SourceSafe. 19:07:46 SCCS was 1972 19:07:47 ah 19:07:50 and then 19:07:51 Vorpal: that's the most amazing failure to expand an acronym I've seen 19:07:53 there was no other VCS 19:07:56 given that you used its expansion a few lines ago 19:07:56 until RCS in 1982 19:08:04 well... there was "CA Software Change Manager" 19:08:04 heh 19:08:12 "CCC was designed to manage all the components that went into an aircraft engine, and seeing as the same engine was used by both the U.S. Air Force and U.S. Navy (for the F-14 Tomcat and F-15 Eagle) it required robust and reliable parallel development." 19:08:15 VSS also makes RCS look decent. 19:08:32 At least RCS didn't pretend to handle multiple users. 19:08:56 Though, CVS did. :( 19:09:04 oh, wow, does anyone remember when that guy had to quit developing Mercurial because he used BitKeeper at work? 19:09:12 it was Bryan O'Sullivan (of Haskell fame) 19:09:44 pikhq_: RCS is better at what it claims to do than VSS is at what /it/ claims to do, though 19:09:58 at least RCS actually works when used for its intended purpose 19:10:02 RCS is fairly decent, really 19:10:07 oh, wow, does anyone remember when that guy had to quit developing Mercurial because he used BitKeeper at work? <-- sounds familiar 19:10:09 it's even sort of distributed 19:10:14 in that, there's only one repository, but it's kept with the files 19:10:28 well 19:10:28 file 19:10:34 I think you can actually use RCS distributed 19:10:37 if you really wanted to 19:10:43 sounds like a horrible idea 19:10:53 It's a bit issue-filled, but sure, RCS does what it damned well claims. 19:10:54 Vorpal: better than svn 19:11:12 It stores the history of a file. Nice and simple. 19:11:32 really, darcs is quite astonishing, history-wise 19:11:49 for being one of the first DVCSes ever, it resembles the current user-interfaces of DVCSes 19:11:49 like 19:11:55 arch, darcs, monotone, svk 19:12:05 all have wildly different, mostly extremely weird interfaces 19:12:08 its interface is better than most current DVCSes by default, IMO 19:12:13 elliott, yeah only VSS is worse than svn really 19:12:14 ais523: indeed, but my point is like 19:12:18 if you renamed record to commit 19:12:21 and whatsnew to log or whatever 19:12:32 you'd have something surprisingly close to "current" DVCSes 19:12:40 most old DVCSes had really silly interfaces, whereas darcs' is not amazingly difficult from hg/git/bzr? 19:12:43 somehow they got it pretty right first time 19:12:48 ais523: yeah 19:12:50 elliott, oh god, wasn't svk some thing on top of svn? 19:12:55 Vorpal: Yes. 19:12:58 Vorpal: yes, it's great :D 19:13:01 ugh 19:13:26 poll time: you have to use CVS or svn; which 19:13:51 I make tarballs on a regular basis. 19:14:03 that's not using CVS or svn 19:14:08 Precisely. 19:14:20 elliott, svn because with cvs if someone is committing while you are pulling you can get a inconsistent checkout. 19:14:32 neither is good 19:14:33 Vorpal: how high-traffic is your repository? 19:14:44 that's like not using git because of the patch-ordering consistency issue 19:14:45 elliott, assume something like freebsd ports 19:14:54 like, is that really the best objection you can come up with 19:14:58 Vorpal: you work on freebsd ports? 19:15:06 cfunge: "freebsd ports" 19:15:09 elliott, no, but in your scenario I am 19:15:10 :P 19:15:24 speaking of ports 19:15:30 CVSup is a really weird piece of software 19:15:30 CVS has a *lot* of really, really bad ideas that even SVN doesn't follow. 19:15:31 Lapro V. is sekret man. 19:15:37 elliott, well yes 19:15:37 it's written in fucking Modula-3 19:15:40 MOUDLA-3 19:15:41 is it!? 19:15:43 why 19:15:53 BECAUSE THE GUY LIKES MODULA-3??? 19:15:54 it even has its like 19:15:54 Modula is the best. 19:15:57 elliott, I forgot what cvsup actually does 19:15:57 modules. 19:15:59 own bindings to all the system interfaces it needs 19:16:03 written in Modula-3 19:16:05 and 19:16:08 Vorpal: this is the best part 19:16:16 For instance, a CVS tag does not have to correspond to a single changeset, because CVS doesn't know what a "changeset" is. 19:16:16 Vorpal: the guy wrote his own Modula-3 for it 19:16:20 lol 19:16:22 because nobody could find a working Modula-3 compiler to compile it with 19:16:26 so he wrote his own 19:16:28 pikhq_, yes 19:16:35 elliott: wow 19:16:45 Really, CVS not knowing what a "changeset" is is itself a major dealbreaker. 19:16:46 elliott, what did cvsup do? 19:16:48 I forgot 19:16:56 Vorpal: rsync 19:17:02 elliott, oh but with cvs? 19:17:12 Vorpal: I don't think it even uses CVS 19:17:20 elliott, so the name? 19:17:21 oh 19:17:22 "CVSup, when it recognizes a CVS file, will adapt its algorithm to take advantage of this and reduce the amount of data transferred." 19:17:28 Vorpal: well it was intended to keep cvs repos in sync 19:17:28 ah 19:17:33 right 19:18:15 anyway, yes cvsup on ports was always faster than emerge --sync (which used rsync) 19:18:27 mostly due to not needing to read all the local files to compare 19:18:35 I think 19:22:08 I really hate how git makes me say something as scary as "git reset HEAD foo" 19:22:10 just to unstage something 19:22:53 There's a serious mismatch between the git UI and everything else. 19:23:02 Just... Bleh. 19:23:59 Am I an evil person for overhearing a conversation about where to find hg hosting and mentioning bitbucket? 19:24:22 YES 19:24:24 SO EVIIIIIIIIIIL 19:24:55 I mean, I've heard people here say bad things about BitBucket before, but I have 0 experience with BitBucket, so don't know either way 19:25:18 bleh, where the hell should I put this showConcatMap function? 19:25:30 I suppose I could just inline it where I use it 19:25:41 doesn't Google Code host hg? 19:25:46 google code is an abomination 19:25:50 well, right. 19:26:02 I have heard exactly one person in my entire life say they like Google Code's UI, and they were terrible :P 19:27:09 ?hoogle (a -> ShowS) -> [a] -> ShowS 19:27:09 Text.Show showListWith :: (a -> ShowS) -> [a] -> ShowS 19:27:09 Numeric showSigned :: Real a => (a -> ShowS) -> Int -> a -> ShowS 19:27:20 ?hoogle (a -> b -> b) -> [a] -> b -> b 19:27:21 Prelude foldr :: (a -> b -> b) -> b -> [a] -> b 19:27:21 Data.List foldr :: (a -> b -> b) -> b -> [a] -> b 19:27:21 Prelude scanr :: (a -> b -> b) -> b -> [a] -> [b] 19:27:24 Text.Show showListWith :: (a -> ShowS) -> [a] -> ShowS 19:27:24 oh 19:27:25 :DDD 19:27:31 I knew a BitBucket guy, he wanted (and got) us to use it in our group project on some course. 19:27:54 Here "BitBucket guy" just means "likes it", not "is officially involved it in any way". 19:37:00 -!- oerjan has joined. 19:39:04 fizzie, surely s/any/some/ there? 19:39:20 brb 19:41:19 any and some, the great scandinavian shibboleths 19:42:56 Vorpal, what? 19:43:02 He didn't say 'any'... 19:43:40 Here "BitBucket guy" just means "likes it", not "is officially involved it in any way". 19:44:03 Oh. 19:46:53 is there a haskell package for doing matrix multiplication in efficient ways? 19:47:05 for large matrices 19:47:13 say, > 100x100 19:47:30 there's a binding to ...lapack, iirc 19:47:53 oerjan, ah. I forgot, what was blas relation to lapack? An implementation? 19:48:50 i don't know, it's just lapack is what istr people mentioning as a frequently used linear algebra package (in C i think?) 19:49:00 (it 19:49:04 fortran too 19:49:07 's in the acronym of course) 19:49:11 Vorpal: hmatrix 19:49:16 yeah it _would_ be one of those two :P 19:49:18 elliott, thanks 19:49:21 Vorpal: repa may interest you, it can automatically parallelise this stuff 19:49:23 and is more hip than hmatrix 19:49:34 hm okay 19:49:42 Vorpal: and there's http://hackage.haskell.org/package/repa-algorithms 19:49:50 http://hackage.haskell.org/packages/archive/repa-algorithms/2.2.0.1/doc/html/Data-Array-Repa-Algorithms-Matrix.html is matrix-matrix multiplication 19:49:59 but it's definitely not lapack fast :P 19:50:07 hm that thing recommends looking at hvector 19:50:23 oh but there is no hvector 19:50:25 so i guess it means hmatrix 19:50:40 elliott, lapack fast is kind of what I need 19:50:49 so hmatrix it is then 19:51:09 Vorpal: what are you doing 19:51:11 oerjan, I think lapack is both for fortran and C. That was my point 19:51:18 elliott, my own secret project. 19:51:29 Vorpal: you are not interesting like ais523, you don't get to have secrets 19:52:05 elliott, whatever 19:53:05 elliott, hm does hmatrix support parallelism too? 19:53:18 because lapack with parallelism would be ideal here 19:53:22 i'll tell you if you tell me what you are doing :p 19:54:18 Vorpal: HMPH 19:54:35 Vorpal: The answer is yes and no, anyway. 19:54:58 oh thanks, I was writing out a short desc as you answered, guess I wouldn't have needed that 19:55:16 Vorpal: I'll answer properly if you give that. :p 19:55:17 you saved me the work of writing out the whole thing, for that I'm grateful. 19:55:23 Helpfully, even! 19:55:37 elliott: Vorpal could have a secret project to conquer the world with dictatorial mundaneness 19:56:14 elliott, sure, optimisation problem on physical measurements using least squares. There. Boring. 19:56:30 elliott, no answer helpfully 19:56:37 ok, I won't 19:56:41 since you asked so kindly 19:56:47 I will no answer helpfully 19:56:49 ... 19:57:01 elliott, come on. I guess I'll just use fortran otherwise. 19:57:05 XD 19:57:22 Vorpal: the answer is that no, to my knowledge hmatrix does no automatic parallelisation, though I guess your lapack, blas, gsl libraries could do so internally 19:57:28 but you can always use the parallel package 19:57:31 hm right 19:57:37 fairly easy still 19:57:41 (GHC's concurrency support is irrelevant, because your matrix computations are almost certainly pure) 19:57:41 probably 19:57:50 which part is probably 19:57:57 if you have a tight loop that does IO, you don't have a tight loop 19:57:58 elliott, "fairly easily" 19:58:00 oh 19:58:28 I just need to read in the hundreds of measurements from a file, they are already measured. 19:58:28 -!- sllide has quit (Ping timeout: 248 seconds). 19:58:41 Vorpal: you will want to read http://ghcmutterings.wordpress.com/2009/10/06/parallelism-concurrency/ and the documentation at http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/doc/html/Control-Parallel-Strategies.html for parallel information 19:58:51 hm 19:59:00 thanks 20:01:50 :t showListWith 20:01:51 Not in scope: `showListWith' 20:01:58 :t Text.Show.showListWith 20:01:59 forall a. (a -> ShowS) -> [a] -> String -> String 20:02:01 oerjan: I blame y- oh 20:02:07 > Text.Show.showListWith shows [9,0,9] "" 20:02:08 Not in scope: `Text.Show.showListWith' 20:02:11 ......... 20:02:52 ais523: pikhq_: gah, how do I undo "git commit"? 20:04:33 elliott: git reset --soft 20:04:43 elliott: git reset --soft 'HEAD^' 20:05:11 I think that's about right 20:05:39 Deewiant: Thanks 20:05:48 Now I just need to figure out where to put showConcatMap = foldr . flip 20:08:37 elliott, hm given the amount of data I have doing this on the GPU might be more efficient, in which case C + opencl is probably less headache inducing than doing it from haskell 20:09:05 Vorpal: I invite ais523 to shatter your illusions 20:09:22 elliott, oh? I thought matrix multiplication on GPU was fairly efficient 20:09:25 it is 20:09:32 It probably is, but I'm sure there's some catch to your problem 20:09:34 but the GPU toolchain takes a bit of getting used to 20:09:36 then what is elliott talking about 20:09:45 elliott: matrix multiplication, GPUs are pretty much perfect for 20:09:54 computer graphics is mostly matrix multiplication, among other things 20:10:00 ais523: I'm sure Vorpal is doing something more than just multiplying a billion matrices and doing nothing else 20:10:09 elliott, I'm transposing them too 20:10:14 t*(t>>6&t>>(7*sin(t/4000))) 20:10:17 this one is really cool. 20:10:18 Vorpal: Anyway, the time it'll take you to deal with the OpenCL API's unforgivable terribleness is not worth it IMO 20:10:28 elliott, possibly 20:10:34 Vorpal: Unless it'll save you over two days of computation time, I'd stick to hmatrix 20:10:42 Because it'll definitely cost you two days of coding time :P 20:10:47 *or*, I could just shove it into mathematica and wait a few days. 20:11:02 ais523: haha, look at Vorpal, he thinks Mathematica would complete his problem in days 20:11:08 elliott, no 20:11:12 he must not have heard of the hip new unit of time, decades 20:11:16 elliott, months would be more like it 20:11:20 maybe decades. Maybe 20:11:50 elliott, anyway I have about 200 GB data. 20:12:17 I guess I'll try hmatrix on a subset and extrapolate the time it would take on the whole. 20:13:27 Vorpal: You'll probably fuck up the Haskell and cause it to take about fifteen times longer than it should. (I would. Most people would.) 20:13:37 elliott, true... 20:13:42 elliott, so then, C? 20:13:53 Vorpal: No, just don't give up on Haskell before you've proved it's not your own fault. 20:13:53 and then add opencl if it takes forever 20:14:06 elliott, I don't have a lot of time to waste on this. 20:14:25 Vorpal: You're considering using C for the problem. You're considering using C with OpenCL for the problem. 20:14:29 You definitely have enough time to waste. 20:15:08 elliott, anyway this is quite trivial in C with lapack. The APIs don't seem too insane for it 20:15:34 Shrug, hurt yourself if you wish 20:15:59 numpy is probably your best choice. 20:16:06 elliott, it suffers the general numerical C function explosion though 20:16:11 elliott, same as gmp 20:16:20 Now I just need to figure out where to put showConcatMap = foldr . flip <-- istr flip . foldr, also maybe composeMap would be a more generic name? 20:17:22 Er yes, flip . foldr 20:17:25 And possibly 20:17:26 Hmm 20:17:41 It's (ala Endo foldMap . map f), isn't it? 20:17:49 Where (ala Endo foldMap) is what mconcat SHOULD be on functions :) 20:17:55 Hmm 20:18:04 I guess it can't be because that'd leave out (a -> b) for a ~/~ b 20:18:37 do modern machines have a circular bitshift operation? 20:18:48 CakeProphet, why numpy? Python is slow... 20:18:58 Vorpal: dude but it's eeregunt 20:19:00 Vorpal: numpy is written in C. 20:19:06 elliott, "eeregunt"? 20:19:08 errr 20:19:09 It's obviously not your best choice, because it'd involve coding Python. 20:19:09 CakeProphet, ^ 20:19:12 wtf is "eeregunt" 20:19:14 But numpy is certainly fast. 20:19:18 By virtue of being written in C. 20:19:19 elliott, hm 20:19:22 right 20:19:27 (Hint: You don't write loops with numpy, you call pre-existing loops.) 20:19:32 Vorpal: "elegant" 20:19:44 Deewiant, maaaybe 20:19:50 a bit too typoed for that 20:19:54 I think Vorpal was taking my suggestion as serious advice. 20:20:06 Vorpal: Deewiant is right. 20:20:07 I do believe it was intentional, not a typo 20:20:09 CakeProphet, you were joking? okay 20:20:15 I am the expert in interpreting people. 20:20:26 yes elliott is our people person 20:20:31 otherwise we are all daft fools. 20:20:32 Not even remotely the same thing. 20:20:46 "people person" in the sense of understanding people. 20:20:49 I used to get really irritated at PEOPLE ON THE INTERNET for not being able to get what a completely incoherent rambler was trying to say. :p 20:20:52 :t flip . foldr 20:20:53 forall b a. (a -> b -> b) -> [a] -> b -> b 20:20:54 ~~SOCIAL SKILLS~~ 20:20:56 not as in "la de da de da I love oscialising" 20:21:02 I love oscialising. 20:21:22 hm oh dear 20:21:29 -!- pikhq has joined. 20:21:33 I bet oerjan knows if there's a way to log thread creation and destruction with GHC 20:21:37 -!- pikhq_ has quit (Ping timeout: 256 seconds). 20:21:38 * CakeProphet is an expert in incoherent rambling. 20:21:38 If not him then DEFINITELY Deewiant 20:21:43 TOGETHER WE CREATE A CONVERSATION. 20:22:15 elliott: er, thread creation? couldn't you just track that yourself? Or are you talking about parallel? 20:22:18 elliott: istr one uses MVars or so to communicate from threads that want to tell about it... 20:22:27 Destruction is more important than creation 20:22:29 -!- Ngevd has joined. 20:22:31 And I'm talking about forkIO threads 20:22:32 ah yes 20:22:49 Hello! 20:22:49 Basically the problem is: 20:22:50 well you /could/ put a putStr at the end of the thread, but that's probably not, uh, fool-proof. 20:22:56 My logging things kept logging empty data lists coming in 20:22:58 Even after disconnect 20:23:03 And I'm like 20:23:04 okay 20:23:05 but it's at EOF 20:23:07 so why are you still running 20:23:12 I switched data0I → dataI 20:23:17 so now it throws an exception on EOF like it should 20:23:23 and the iterIO library SHOULD exit 20:23:27 and the thread SHOULD therefore die 20:23:30 but I want to make sure it actually is dying 20:23:37 otherwise I have like, a thread leak 20:23:48 you could catch the exception and print, right? 20:23:56 >_> 20:24:07 definitely too easy because you would have though of that. 20:24:07 iterIO exceptions are not exceptions in that sense. 20:24:11 Well, they are, but no, Iter.run catches EOF. 20:24:13 ah okay. 20:24:32 Throwing an EOF exception is expected termination behaviour in iterIO. 20:25:06 16:18 < CakeProphet> do modern machines have a circular bitshift operation? 20:25:23 is there a circular bitshift anywhere? 20:25:48 y = (x >> shift) | (x << (32 - shift)); 20:25:48 * oerjan vaguely recalls the 6502 ROT 20:25:54 oh look I found a circular bitshift idiom in C 20:25:59 hurray Wikipedia. 20:26:22 ....wow that's really obvious. 20:26:26 CakeProphet, you mean roll? 20:26:34 uh, maybe? 20:26:36 So many extra parens 20:26:50 Deewiant: Thank god 20:26:56 CakeProphet, if you mean the top bit is put in the bottom bit 20:26:58 Nobody uses bitwise operations, nobody knows what precedence bitwise operations are :P 20:27:00 then there is rol I guess 20:27:01 some people are afraid of bitwise operator precedence. 20:27:04 on x86 20:27:05 such as myself. 20:27:15 Vorpal: its a bitshift 20:27:17 and its circular 20:27:21 pretty self-explanitory. 20:27:32 an operator precedence bitwised my sister 20:27:38 CakeProphet, you mean moving top bit to bottom bit or vice versa? 20:27:47 .... 20:27:53 not just top and bottom I assume. 20:28:06 CakeProphet, more than one bit at once? Sure 20:28:22 I would think that's opssible, yes. 20:28:39 -!- zzo38 has joined. 20:29:10 also for a 64-bit system 32 would most likely need to be 64 in the above expression. 20:29:29 CakeProphet, yeah use stdint.h and int32_t or int64_t 20:29:40 ah didn't know that was a thing. 20:29:42 * CakeProphet is a C noob. 20:29:50 CakeProphet, it is C99 20:29:57 CakeProphet: What are you doing? 20:30:07 elliott: ...reading Wikipedia and being curious. :P 20:30:12 CakeProphet, won't work in C++ nor C89 20:30:31 well if I ever time travel into the past that might be an issue. 20:30:57 on the plus side I get to invent CakeScript and revolutionize computing or something. 20:31:03 probably not. 20:31:22 probably not indeed 20:31:23 unless I go back a really long time. 20:31:32 like the 1950s? 20:31:49 and then I can spend like 20 years making what is essentially a Perl/Haskell hybrid, back when Algo is still around. 20:31:52 yes. 20:31:56 +l 20:32:31 CakeProphet, problem with perl/haskell: won't run on the computers back then 20:32:36 that's fine 20:32:46 I'll just develop it, publish it, and then wait for it to catch on. 20:32:48 >_> 20:32:54 CakeProphet, -_- 20:33:16 or maybe I'll make C but with more Haskell. 20:33:21 and MAKE COMPUTING BETTER FOREVER. 20:33:34 Vorpal: I'm sure a Haskell compiler would have been practical as soon as Algol was 20:33:34 Why not just make Haskell? 20:33:53 Ngevd: He's trying to ruin computing, not save it. 20:33:53 elliott, maybe but the GC and so on 20:33:59 not really realistic back then 20:34:00 Vorpal: Region inference 20:34:08 Incremental GC 20:34:10 then someone named iverson will investigate it and extract its essence into a language called apl 20:34:20 elliott, not sure the code for those could fit on the computers back then 20:34:31 Vorpal: Executable packers? :p 20:35:04 elliott, I meant in ram 20:35:17 well "make Haskell" would actually require that I know something about compilers 20:35:21 just compress the program and decompress the gc every gc cycle 20:35:23 elliott, or core memory rather 20:35:25 I suppose making computing better also would. 20:35:26 and vice versa 20:35:29 elliott, remember. CORE MEMORY 20:35:33 if you were LUCKY 20:35:42 I am: joking. 20:35:47 right 20:35:56 you forgot the indicator 20:35:58 :P 20:36:31 :P is either "I'm joking" or "haha fuck off" 20:36:51 best not to collapse that wavefunction 20:36:55 your best bet would be to bet on horses instead, put it in a number bank account overseas 20:37:18 is a number where you go to deposit and withdraw numbers? 20:37:22 *number bank 20:37:28 core memory should be perfect for ghc core, right 20:37:35 do they accept irrational numbers? 20:37:39 CakeProphet, should be parsed as "number (bank account)" 20:37:47 CakeProphet, like they don't know who you are 20:37:54 you just have a number to access the account 20:38:22 traditionally Swiss accounts 20:38:38 Vorpal: ah so a Swedish bank, as it would be referred to in the states. 20:38:49 CakeProphet, Swiss 20:38:50 er, yes Sqiss 20:38:51 not Swedish 20:38:52 lol 20:39:05 I forget who has awesome banks. 20:39:19 huh godel's lost letter is making a post on that claimed peano inconsistency proof 20:40:09 swedish bank 20:40:11 no, laptop, this is not the right time to start thrashing 20:40:12 Sqitzerland is the best. 20:40:15 oerjan, "gödel's lost letter", what is that 20:40:24 swedish banks are neutral on the matter of secrecy. 20:40:41 Vorpal: a blog, one of the best, about theoretical computer science, in particular complexity theory 20:41:22 the full title is "Gödel's lost letter and P = NP" 20:41:37 I love prestigious blags. 20:41:49 good for the world. 20:42:19 http://rjlipton.wordpress.com/2011/10/01/what-if-peano-is-inconsistent/ although i am just starting to read it myself 20:45:55 Re: The Inconsistency of Arithmetic 20:45:56 You are quite right, and my original response was wrong. Thank you for spotting my error. 20:45:56 I withdraw my claim. 20:45:56 Posted by: Edward Nelson on October 1, 2011 1:39 PM | Permalink | Reply to this 20:46:08 that seems a bit, um, sudden, if the guy is writing a book about it 20:46:45 at least it's up front :P 20:46:59 I'm wondering if he means some sub-claim or something 20:47:05 yes I think so 20:47:25 I believe he's talking about a specific point in a discussion 20:47:32 ...points I don't understand.. 20:47:51 I agree with all your comments up to (3). But I don’t use (3). I use the Chaitin machine, or proof verifier, for the fixed theory Q_0^* 20:47:55 weird emoticin. 20:47:59 *o 20:48:45 :t text 20:48:46 String -> Doc 20:48:55 Madoka-Kaname: http://hackage.haskell.org/packages/archive/pretty/1.1.0.0/doc/html/Text-PrettyPrint-HughesPJ.html 20:49:19 > text $ fix ("]["++) 20:49:27 -!- augur has quit (Remote host closed the connection). 20:49:32 > text $ take 1000 $ fix ("]["++) 20:49:34 ][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]... 20:49:34 thread killed 20:49:43 text isn't lazy. :( 20:50:34 -!- ive has joined. 20:50:45 -!- derdon has joined. 20:51:20 -rw-r--r-- 1 lifthrasiir staff 131183666 10 2 05:46 lostkng.b.wrl 20:51:21 -rw-r--r-- 1 lifthrasiir staff 176209 10 2 05:46 lostkng.b.wrl.bz2 20:51:23 text s = case length s of {sl -> textBeside_ (Str s) sl Empty} 20:51:23 low entropy! 20:51:32 lifthrasiir: LostKng is full of lots of noise 20:51:38 if you ran it through a BF optimiser that might help 20:51:45 I don't know it's kind of ambiguous as to which claim he is withdrawing. 20:51:47 but it's still essentially repetitive thanks to the bad compiler 20:51:47 maybe if I knew more maths. 20:52:00 hm wait 20:52:01 :t val 20:52:01 forall a. Dif a -> a 20:52:03 oerjan: text s = case length s of {sl -> textBeside_ (Str s) sl Empty} 20:52:04 :t var 20:52:05 forall a. String -> Sym a 20:52:07 elliott: well, but it has ran through bf2whirl so it has even more noise 20:52:08 that doesn't necessarily force length s right? 20:52:11 lifthrasiir: haha 20:52:20 > var $ fix ("]["++) 20:52:22 ][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]... 20:52:26 Madoka-Kaname: that one is 20:52:29 textBeside_ :: TextDetails -> Int -> RDoc -> RDoc 20:52:29 textBeside_ s sl p = TextBeside s sl p 20:52:37 oerjan: I guess something forces the length on output, then 20:52:39 anyway it would be the biggest ever Whirl program (131MB) 20:52:53 yeah 20:52:55 even esotope chokes while using lots of memory 20:53:03 lifthrasiir: yikes 20:53:13 (even though it uses compressed format to reduce memory! :S) 20:53:18 oerjan: anyway re: 20:53:18 Now I just need to figure out where to put showConcatMap = foldr . flip <-- istr flip . foldr, also maybe composeMap would be a more generic name? 20:53:25 the genericity doesn't help, I still have no idea where to put it :D 20:53:31 MC.Protocol does /not/ seem the place 20:53:48 lifthrasiir: Has esotope-bfc been updated to the new system? 20:53:55 in progress. 20:54:43 cool 20:54:50 that doesn't necessarily force length s right? <-- i wouldn't think so, probably textBeside_ does then 20:54:59 oerjan: it's just a constructor, so no 20:55:02 it's the rendering function that forces it 20:55:06 because of line width etc. 20:56:18 the genericity doesn't help, I still have no idea where to put it :D <-- Data.Function or Data.List? 20:56:29 oerjan: I don't own the base package :P 20:57:31 no, but if people keep reinventing it... 20:57:44 :t compose 20:57:45 Not in scope: `compose' 20:57:49 @hoogle compose 20:57:49 No results found 20:58:13 it would seem natural in relation to things like max/maximum 20:58:23 elliott: the problem with these bitshift DSP things is that there's no apparently sane way to compose them together.. 20:58:36 maybe if you actually understood what was going on..? then you could sync times? 20:58:58 @hoogle [a b b] -> a b b 20:58:58 Data.Map unions :: Ord k => [Map k a] -> Map k a 20:58:58 Data.Graph.Inductive.Internal.Heap mergeAll :: Ord a => [Heap a b] -> Heap a b 20:58:58 Data.Graph.Inductive.Basic grev :: DynGraph gr => gr a b -> gr a b 20:59:15 @hoogle [b -> b] -> b -> b 20:59:16 Data.Generics.Schemes everywhere :: (a -> a) -> a -> a 20:59:16 Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a 20:59:16 Prelude until :: (a -> Bool) -> (a -> a) -> a -> a 20:59:38 i guess we've done that search before 21:00:25 yeah :P 21:00:25 also, I made THE REAL poop machine: t*(t>>6&t>>(1000*sin(t/4000))) 21:00:47 oerjan: meanwhile, I am inventing The Best Sequence Structure 21:01:55 :t foldl ($) 21:01:56 Occurs check: cannot construct the infinite type: b = b1 -> b 21:01:56 Probable cause: `$' is applied to too many arguments 21:01:56 In the first argument of `foldl', namely `($)' 21:02:10 :t flip foldl $ ($) 21:02:11 forall b a b1. (((a -> b1) -> a -> b1) -> b -> (a -> b1) -> a -> b1) -> [b] -> (a -> b1) -> a -> b1 21:02:17 :t foldl 21:02:17 forall a b. (a -> b -> a) -> a -> [b] -> a 21:02:34 :t ($) 21:02:35 forall a b. (a -> b) -> a -> b 21:03:05 I want to see if I can understand contravariant. Are barrier monads contravariant with respect to the back types? Since we have convert :: (f -> f') -> (b' -> b) -> Barrier f b t -> Barrier f' b' t; I looked up something about contravariant and this function seem similar with back type but I am unsure I don't know much about it, really 21:03:06 :t (.) 21:03:07 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 21:03:28 @ty flip foldl $ flip ($) 21:03:29 forall b a b1. ((a -> (a -> b1) -> b1) -> b -> a -> (a -> b1) -> b1) -> [b] -> a -> (a -> b1) -> b1 21:03:34 :t flip $ foldl (.) 21:03:35 forall a b. [a -> a] -> (a -> b) -> a -> b 21:03:59 Vorpal: In case this wasn't answered, BLAS is the thing that does Basic Linear Algebra Somethings; vector-vector, vector-matrix and matrix-matrix operations, mostly. And then LAPACK builds on top of those to do more complicated linear algebra things. 21:04:06 :t (flip $ foldl (.)) id 21:04:06 Couldn't match expected type `[a -> a]' 21:04:07 against inferred type `a1 -> a1' 21:04:07 In the first argument of `(flip $ foldl (.))', namely `id' 21:04:14 :t foldl (.) id 21:04:15 forall a. [a -> a] -> a -> a 21:04:36 :t foldl (.) id [+1,+2,+3,+4,+5) 0 21:04:37 parse error on input `)' 21:04:38 :t foldl (.) id [+1,+2,+3,+4,+5] 0 21:04:39 A section must be enclosed in parentheses thus: (+ 1) 21:04:40 A section must be enclosed in parentheses thus: (+ 2) 21:04:40 A section must be enclosed in parentheses thus: (+ 3) 21:04:52 :t foldl (.) id [(+1),(+2),(+3),(+4),(+5)] 0 21:04:52 forall a. (Num a) => a 21:04:57 > foldl (.) id [(+1),(+2),(+3),(+4),(+5)] 0 21:04:58 15 21:05:05 * Madoka-Kaname pokes oerjan 21:05:25 Poerjan. 21:07:37 Madoka-Kaname: that's the obvious implementation, yes 21:08:37 [...] Are barrier monads contravariant with respect to the back types? [...] <-- i think so yes 21:09:00 :t wee l a = wee (tail l) $ head l $ a 21:09:01 parse error on input `=' 21:09:06 * Madoka-Kaname hides 21:09:24 @pl wee l a = wee (tail l) $ head l $ a 21:09:25 wee = fix ((`ap` head) . ((.) .) . (. tail)) 21:09:31 oerjan: oh no, my perfect structure is not so perfect 21:09:40 AIM spambots are amusing 21:09:43 :t fix ((`ap`head).((.).).(.tail)) 21:09:44 forall a b. [a -> a] -> a -> b 21:09:51 Kyu? 21:10:07 @pl wee l a = wee (tail l) $ (head l) a 21:10:07 wee = fix ((`ap` head) . ((.) .) . (. tail)) 21:10:23 oerjan: head... is O(n)... 21:10:29 Kyuubey? 21:10:29 fancy. 21:11:08 oerjan: :'( 21:11:14 oerjan: do you want to know what it was................................... 21:11:27 Madoka-Kaname: why foldl? i think it's going to be worse than foldr there in practice. 21:11:40 @pl wee l a = if' (length l == 0) a (wee (tail l) $ (head l) a) 21:11:40 wee = fix (ap (ap . if' . (0 ==) . length) . (`ap` head) . ((.) .) . (. tail)) 21:11:42 > (flip . foldr) [(+1),(+2),(+3),(+4),(+5)] 0 21:11:42 Couldn't match expected type `a -> b -> b' 21:11:42 against inferred type `[... 21:11:58 wat 21:12:04 :t fix(ap(ap.if'.(0==).length).(`ap`head).((.).).(.tail)) 21:12:05 Not in scope: `if'' 21:12:06 oh right 21:12:12 oerjan: :'( 21:12:12 :t fix(ap(ap.if' .(0==).length).(`ap`head).((.).).(.tail)) 21:12:13 Not in scope: `if'' 21:12:15 > (flip . foldr) id [(+1),(+2),(+3),(+4),(+5)] 0 21:12:17 15 21:12:35 :t foldr 21:12:36 forall a b. (a -> b -> b) -> b -> [a] -> b 21:12:45 monqy: tell oerjan not nice not talk 21:13:03 Madoka-Kaname: /人◕ ‿‿ ◕人\ Contract? 21:13:10 Sgeo|web, nthx 21:13:16 Try again tomorrow 21:13:16 what happened 21:13:21 is oerjan not niceing 21:13:25 monqy: oerjan not talking 21:13:32 elliott: do you want to tell about it 21:13:43 oerjan: if only.. to provide laughter...of how... 21:13:45 dumbi was :'( 21:13:59 :'( 21:14:26 oerjan: it was... 21:14:28 oerjan: a difference list zipper 21:14:37 @pl wee l a = if (length l == 0) then a else (wee (tail l) $ (head l) a) 21:14:37 wee = fix (ap (ap . if' . (0 ==) . length) . (`ap` head) . ((.) .) . (. tail)) 21:14:40 -!- augur has joined. 21:14:44 i was thinking that since zippers were basically functional doubly linked lists... and difference lists had O(one) append... 21:14:47 combine... to get perfect structure? 21:14:53 :t if' 21:14:54 Not in scope: `if'' 21:15:30 Madoka-Kaname: length is a very good way of ruining any chance of working on infinite lists 21:15:53 i.e., please use pattern matching. 21:16:00 oh no use of head and tail and length 21:16:02 and even 21:16:05 length l == 0 instead of null l 21:16:06 but even then 21:16:07 no 21:16:08 adbad 21:16:10 person :( 21:16:19 well you could use null. but still, use pattern matching instead. 21:16:23 oerjan, an infinite list of functions is never going to return anyways. 21:16:24 =p 21:16:31 um 21:16:36 @_@ 21:16:40 methinks Madoka-Kaname is not very experienced with lazy evaluation. 21:16:52 :t if' 21:16:53 > take 5 $ [1..] 21:16:53 Not in scope: `if'' 21:16:54 [1,2,3,4,5] 21:16:56 > foldr (.) id (cycle [(0:),(9:)]) [] 21:16:57 [0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,... 21:16:59 Madoka-Kaname: behold 21:17:06 Uh. 21:17:07 what is this if' thing in the @pl output 21:17:08 > length (cycle [(0:),(9:)]) 21:17:09 ^^; 21:17:16 Okey, you win. 21:17:23 okey spelled with e 21:17:24 thread killed 21:17:30 > foldr (.) id [id..] 0 21:17:31 No instance for (GHC.Enum.Enum (b -> b)) 21:17:31 arising from a use of `e_10' at... 21:17:32 lambdabot is suitably mortified. 21:17:39 > foldr (.) id (repeat id) 0 21:17:42 mueval-core: Time limit exceeded 21:17:42 monqy: it's just for @pl's internal use for if then else. if' b t e = if b then t else e 21:17:52 why did i put a $ there 21:17:56 > take 5 [1..] 21:17:57 [1,2,3,4,5] 21:18:10 if onley: points fre patren matcheing 21:19:17 -!- augur has quit (Remote host closed the connection). 21:19:46 (t*((t>>16|t>>8)+(t>>23)&63&t>>(3+3*sin(t/10000)))*4) 21:19:47 bahahahaha 21:19:49 insane. 21:19:56 What does that do 21:20:07 http://www.bemmu.com/music/index.html 21:20:45 CakeProphet: this is not very listenable 21:20:52 .....oh, it's not? 21:20:58 Madoka-Kaname: the difference here is that (0:) and (9:) are lazy functions while id is a strict function. this means that composing an infinite list of the former can still give a useful function, since they don't need to always look at their argument, while id does. 21:20:59 well 21:21:02 don't get me wrong 21:21:03 it's genius 21:21:07 just not very tuneful :D 21:21:14 * CakeProphet listens to noise music. 21:21:21 maybe I'm just desensitized to that. 21:21:33 i like it, i'm just saying 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) is way better. 21:21:33 :| 21:21:58 CakeProphet: the beat in yours is interesting though. 21:22:22 I've noticed that changing the multiplier there (the *4 in this case) tends to decrease the intensity 21:22:23 Madoka-Kaname: basically foldr (.) id (repeat f) whatever = fix f 21:22:30 I've basically been playing with this one expression but plugging in different parameters. 21:24:18 -!- pikhq_ has joined. 21:25:06 it's based off the original one I posted to this channel: (t*((t>>8|t>>9)+(t>>10)&27)*100) 21:25:37 so then I made a similar one but with more distortion: (t*((t>>9|t>>8)+(t>>10)&27&t>>4)*100) 21:25:40 yeah I recognised it as an obvious remix :P 21:25:43 and now I've gotten to this craziness. 21:26:22 changing the 4 to a 3 also yields interesting results. 21:26:28 actually this pattern is awesome and does all sorts of shit. 21:27:01 -!- pikhq has quit (Ping timeout: 248 seconds). 21:28:17 CakeProphet: 100*sin(Math.log(t%9)^Math.sqrt((9+(t>>8))*(t%1024))<<(t/1024)) 21:28:19 elliott: 100*sin(Math.log(10*(t%9))^Math.sqrt(10*(t%1024))<<(t/1024)) is pretty awesome... 21:28:23 not going to lie 21:28:35 BUT NOW I AM EVOLVING IT 21:28:40 this one has LASER SOUNDS 21:28:41 nice. 21:28:57 it has long-term evolution which is nice 21:29:03 still a small but committed fanbase will prefer my more avant garde style. :P 21:29:25 I like to add really low frequency oscillators to evolve things. I'm not really sure where this one evolves. 21:29:29 t*Math.random() <-- avant garde 21:29:30 sqrt? 21:29:43 CakeProphet, what does that function return? 21:29:49 ...sqrt? or? 21:29:55 The input. 21:29:58 t? 21:30:05 what are you talking about. 21:30:19 What are those equations supposed to be outputting. 21:30:23 pcm samples 21:30:24 numbers 21:30:28 yes that. 21:30:34 also numbers. 21:30:35 eight-bit ones. 21:30:37 floating point 21:30:39 er 21:30:43 floating point as well right? 21:30:44 eight thousand of them per second 21:30:51 CakeProphet: well, yes, but that'll get rounded off when converting to audio i think 21:30:56 ah okay. 21:30:58 var sample = (f(t)) & 0xff; 21:30:59 sample *= 256; 21:30:59 if (sample < 0) sample = 0; 21:30:59 if (sample > 65535) sample = 65535; 21:30:59 yeah 21:31:07 fsvo rounded off, bitmasked :P 21:31:07 that's why it's so deliciously 8-bit 21:31:12 all of this stuff would sound weird with a higher sample rate. 21:31:37 not that it doesn't already sound weird. 21:31:50 Madoka-Kaname: are you familiar with how signal processing at all? 21:31:58 Kinda not really. 21:31:58 or, like, sinusoids, or pcm or.... 21:32:34 CakeProphet: http://wurstcaptures.untergrund.net/music/?oneliner=100*sin(Math.log(10*(t%259))%5EMath.sqrt(10*(t%251024))%3C%3C(t%2F1024))&rate=22050 21:32:38 case in point re: sample rate :P 21:32:55 yeah I tried using that site with different sample rates. doesn't sound the same. 21:33:14 oh man 21:33:17 CakeProphet: http://wurstcaptures.untergrund.net/music/?oneliner=100*sin(Math.log(10*((t%2F5.5125)%259))%5EMath.sqrt(10*((t%2F5.5125)%251024))%3C%3C((t%2F5.5125)%2F1024))&rate=22050 21:33:17 the 8-bit deliciousness is important. 21:33:20 to the deliciousness. 21:33:20 that scales for the difference in sample rate 21:33:25 in my original amazing masterpiece 21:33:39 it actually sounds pretty cool 21:33:43 it's amazing how fleshed out the beat is 21:33:51 elliott: it's all like... high resolution though. 21:33:56 yeah but still :P 21:34:05 oh wait i got the sample rate wrong 21:34:13 omg 21:34:15 CakeProphet: http://wurstcaptures.untergrund.net/music/?oneliner=100*sin(Math.log(10*((t%2F5.5125)%259))%5EMath.sqrt(10*((t%2F5.5125)%251024))%3C%3C((t%2F5.5125)%2F1024))&rate=44100 21:34:26 it just sounds like a CD version of my original masterpiece :D 21:34:29 oh yeah 44.1k is much better 21:34:40 yeah i just got the sample rate wrong for the scale factor 21:34:44 and also standard sample rate of a lot of things. 21:35:26 48k has claimed quite a lot of market share from 44.1k lately. 21:35:37 FSVO quite a lot 21:35:45 http://wurstcaptures.untergrund.net/music/?oneliner=(t*((t%3E%3E8%7Ct%3E%3E9)%2B(t%3E%3E10)%2627)*100)&rate=44100 21:35:48 my original masterpiece 21:35:57 now sounds like a purring glass machine gun. 21:36:28 http://wurstcaptures.untergrund.net/music/?oneliner=100*sin(Math.sqrt(t%2F5.5125)%5EMath.sqrt(10*((t%2F5.5125)%251024))%3C%3C((t%2F5.5125)%2F1024))&rate=44100 21:36:31 this is also pretty cool 21:36:36 CakeProphet: just change t → t/5.5125 21:36:38 to upsample it 21:36:50 ....I wonder if I can reassign it. 21:36:59 to be lazy 21:37:03 probably 21:37:05 t=foo,expr 21:37:09 it still sounds like shit though 21:37:36 ((t/=5.5125)*((t>>8|t>>9)+(t>>10)&27)*100) 21:37:39 loses its 8-bit charm. :P 21:37:58 i prefer the eight bit version on the whole but my two masterpieces sound pretty good in CD hz :P 21:38:03 lol 21:39:10 100*sin(Math.log(t)^Math.sqrt((9+(t>>8))*(t%1024))<<(t/1024)) 21:39:17 oh 21:39:19 i prefer 21:39:19 109*sin(Math.log(t)^Math.sqrt((9+(t>>8))*(t%1024))<<(t/1024)) 21:39:22 o_o 21:40:22 Madoka-Kaname: okay so the most basic kind of signal would be like A*sin(f*t + p) where A = amplitude, f = frequency (usually constant but doesn't need to be (for example with frequency modultion)), t = time (just think of some infinitely rising number in seconds) p = phase 21:40:33 CakeProphet: Dude. 21:40:37 The values of "quite a lot" that include most DVD and digital TV streams, I believe. (And with 96k, blu-ray. 48k, 96k and 192k are the only things allowed for the primary soundtrack on Blü-ray.) 21:40:41 Madoka-Kaname: sin or cos, only difference is the phase. These are the "purest" tones in that all other can be composed of a series of sinusoids. 21:40:41 You don't need to know any of that shit to produce TUNEZ on this. :p 21:40:45 fizzie: But almost no music. 21:40:50 elliott: it certainly helps. 21:41:07 CakeProphet: I know almost no signal processing, and I am sooooo good at this. 21:41:27 just that tiny bit of information helps for example, if you want to apply a LFO into your signal. 21:41:30 to modulate some parameter. 21:41:37 to create a slowly evolving melody. 21:41:49 elliott: Well, uh... DVD-audio. Anyway, quite a lot of sound is associated with a picture. 21:41:59 fizzie: YouTube. :p 21:42:07 CakeProphet: 109*sin(Math.log(t)^Math.sqrt((t>>9)*(t%1029))<<(t/1024)) 21:42:33 oh man 21:42:33 109*sin(Math.log(t>>4)^Math.sqrt((t>>9)*(t%1029))<<(t/1024)) 21:42:34 this is better 21:42:42 I wish I could manipulate these signals in the frequency domain. needs moar fft 21:43:23 elliott: oh that's nice. what are you adjusting to get the gradual evolution? 21:43:29 is it the sqrt? 21:43:34 I think it's the << 21:43:39 ahhhh 21:43:46 yes that would do it. 21:43:47 It's still limited because the whole thing is in a sin call though, I think I'll try doing some stuff outside it 21:44:00 it's interesting that it actually doesn't limit it that much. 21:44:20 basically what you're doing is very very complex frequency modulation. 21:44:27 well... that's what you would be doing if you added a t* to the beginning. 21:44:34 fsvo very complex 21:44:49 ...yes 21:45:28 actually I should try some frequency modulation 21:45:32 lets see if I remember anything. 21:45:46 should be possible to emulate vocal sounds. 21:46:06 * CakeProphet needs to find His Notes(tm) 21:46:53 http://wurstcaptures.untergrund.net/music/?oneliner=t%2F%3D5.5125%2C(109*sin(Math.log(t%3E%3E4)%5EMath.sqrt((t%3E%3E9)*(t%251029))%3C%3C(t%2F1024)))&rate=44100 21:46:57 and you call yourself the avant garde one :P 21:47:49 this is lame pop bullshit bra 21:48:43 oerjan: he;lp where do i put showconcatmap 21:48:53 I don't want to have an MC.Utils so soon :( 21:51:00 elliott: sin(t/20)*((t>>8|t>>9)|(t>>10|t>>9))+(t>>4)*100 21:51:05 bam suddenyl I am noise music master. 21:51:43 CakeProphet: Well, it certainly does sound like noise. 21:52:33 yes that's the goal. 21:53:27 You could do "old-fashioned" vocal sounds with a cascade of a few placed-at-the-formants IIR resonators (and e.g. half-wave-rectified sine or something for the voiced source), but that oneliner format doesn't let you refer to previous samples. 21:53:27 I hear oerjan whispering... just make an MC.Utils... 21:53:53 fizzie: Yes it does. 21:53:56 It's just JS code. 21:54:00 It would be cheating though. 21:54:56 Well, okay; "does not really have a simple way for it", then. 21:54:57 referring to old sample values would allow you to write things like delays. 21:55:24 fizzie: Just transform x into hist[t]=x. 21:55:34 I guess you might need an "if hist is undef hist=[]" before that. 21:55:36 Absolutely not expecting something to use