00:01:24 :t zapp 00:01:25 Not in scope: `zapp' 00:01:30 @hoogle zapp 00:01:31 No results found 00:01:35 @hoogle zap 00:01:35 No results found 00:01:57 i wonder how to write a software synthesizer 00:02:50 23:51 oerjan: who the hell is spoony anyway... 00:02:52 Siner. 00:03:03 what is a siner? 00:03:08 someone in sine. 00:03:19 oh. and what is that again. 00:03:22 a thing! 00:03:34 oh that secret club stuff 00:03:35 oerjan: you're a mathematician 00:03:38 don't you know about sine waves???? 00:03:51 lol for certain definitions of secret club 00:04:27 uhh 00:04:54 how about cosine waves? 00:05:13 only difference is the phase 00:05:36 cosine would be sine whereby the server is made of antimatter. 00:05:52 total bullshit 00:06:03 nooga: what? 00:08:05 > ("_-^"!!).truncate.(+3/2).sin<$>[0, 0.1 ..] 00:08:07 "------^^^^^^^^^^^^^^^^^^^^^----------_____________________-----------^^^^^... 00:08:08 -!- augur_ has quit (Read error: 104 (Connection reset by peer)). 00:08:11 -!- augur has joined. 00:08:14 -!- CESSMASTER has joined. 00:08:26 > ("_-^"!!).truncate.(+3/2).sin<$>[0, 0.3 ..] 00:08:28 "--^^^^^^^----_______---^^^^^^^----_______---^^^^^^^----_______---^^^^^^^--... 00:09:08 oerjan: That is... Pretty impressive, actually. 00:09:12 nooga: total what bullshit? 00:09:16 oerjan: lol! 00:09:34 you should try it with the unicode bocks :p 00:09:35 blocks 00:09:37 there's 8 of them 00:10:11 > "æøå" 00:10:13 "\230\248\229" 00:10:20 hm 00:10:33 > fun "æøå" :: Expr 00:10:36 æøå 00:10:58 > ("_,-'^"!!).truncate.(+3/2).sin<$>[0,0.3..[ 00:11:00 : parse error (possibly incorrect indentation) 00:11:00 > ("_,-'^"!!).truncate.(+3/2).sin<$>[0,0.3..] 00:11:02 ",,-------,,,,_______,,,-------,,,,_______,,,-------,,,,_______,,,-------,,... 00:11:07 (+3/2) 00:11:09 Not. Quite. 00:11:09 need to fix that 00:11:29 need rescaling too if you have more than 3 00:11:32 > ("_,-'^"!!).truncate.(+5/2).sin<$>[0,0.3..] 00:11:33 "--'''''''----,,,,,,,---'''''''----,,,,,,,---'''''''----,,,,,,,---'''''''--... 00:11:41 > ("_,-'^"!!).truncate.(+5/2).sin<$>[0,0.1..] 00:11:43 "------'''''''''''''''''''''----------,,,,,,,,,,,,,,,,,,,,,-----------'''''... 00:11:50 > (".:|"!!).truncate.(+3/2).sin<$>[0, 0.1 ..] 00:11:52 It's a fraction, yo 00:11:52 "::::::|||||||||||||||||||||::::::::::.....................:::::::::::|||||... 00:11:56 THINKING IS HARD. 00:12:01 > +3/2 00:12:02 uh ;] 00:12:03 : parse error on input `+' 00:12:06 > (+3/2) 00:12:08 Overlapping instances for GHC.Show.Show (a -> a) 00:12:08 arising from a use of `... 00:12:12 > (+3/2) <$> [0..] 00:12:13 [1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5,16.5,17.... 00:12:18 > (+5/2) <$> [0..] 00:12:19 [2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5,16.5,17.5,18... 00:12:25 > truncate . (+5/2) <$> [0..] 00:12:27 [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2... 00:12:28 > truncate . (+3/2) <$> [0..] 00:12:30 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 00:12:48 oerjan: err, so your thingy is actually just (+1) :P 00:12:52 > truncate . (+5/4) <$> [0..] 00:12:54 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 00:13:03 > ("_-^"!!).(+1).sin<$>[0, 0.3 ..] 00:13:04 No instance for (GHC.Float.Floating GHC.Types.Int) 00:13:04 arising from a use of... 00:13:07 or not. 00:13:10 > truncate . (+5/4) <$> [0,0.3..] 00:13:12 [1,1,1,2,2,2,3,3,3,3,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,9,9,10,10,10,11,11... 00:13:19 > ("_-^"!!).truncate.(+1).sin<$>[0, 0.3 ..] 00:13:19 ----,,,,_______,,,---- ehird, sine or cosine? 00:13:20 "-----------__________-----------__________-----------__________-----------... 00:13:22 > truncate . (+5/2) <$> [0,0.3..] 00:13:23 nooga: buttsine 00:13:24 [2,2,3,3,3,3,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,9,9,9,9,10,10,10,11,11,11,12,1... 00:13:31 > truncate . (+3/2) <$> [0,0.3..] 00:13:33 [1,1,2,2,2,2,3,3,3,4,4,4,5,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,11,11,1... 00:13:43 can't tell, it depends on window 00:13:45 * pikhq needs to think about this instead of just typing random shit. 00:14:23 > truncate . (+3/2) <$> [0,1..] 00:14:24 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 00:14:48 @check (\x -> (x+(3/2)) == ((+3/2) x)) 00:14:50 "OK, passed 500 tests." 00:16:40 i said you need a rescaling, that is, a multiplication 00:17:44 -1 .. 1 has length 2, which i divided in to 3 uneven parts so the tops would not be just single points 00:18:00 *into 00:18:59 where is my char table 00:19:25 That's called a "chair" hyuk hyuk 00:19:56 > ("_,-'^"!!).truncate.(+9/4).(*2).sin<$>[0, 0.3 ..] 00:19:58 "--''^^^'''-,,______,,--''^^^'''-,,______,,--''^^^'''-,,______,,--''^^^'''-... 00:20:20 hm not sure that was ideal 00:20:51 hm 00:20:55 unicode bitch 00:21:25 ehird: find characters bitch 00:21:37 > ("_,-'^"!!).truncate.(*2).(+5/4)sin<$>[0, 0.3 ..] 00:21:38 No instance for (GHC.Real.Fractional (a -> a)) 00:21:38 arising from a use of `GH... 00:21:43 sure thing bro 00:21:44 > ("_,-'^"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:21:46 "-''^^^^^''--,,_____,,-''^^^^^''--,,_____,,-''^^^^^''--,,_____,--''^^^^^''-... 00:22:18 oerjan: ▁▂▃▄▅▆▇█ 00:22:49 you can do unicode now right? 00:22:49 > ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:22:50 "\9603\9604\9604\9605\9605\9605\9605\9605\9604\9604\9603\9603\9602\9602\960... 00:22:52 i'm not unicode clean no 00:23:01 > text ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:23:03 Couldn't match expected type `GHC.Base.String' 00:23:04 > text $ ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:23:10 hmph 00:23:12 :t text 00:23:16 > ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:23:17 mueval-core: Prelude.read: no parse 00:23:17 mueval: ExitFailure 1 00:23:22 String -> Doc 00:23:22 "\9603\9604\9604\9605\9605\9605\9605\9605\9604\9604\9603\9603\9602\9602\960... 00:23:31 ;< 00:23:32 > length "▁▂▃▄▅▆▇█" 00:23:33 8 00:23:36 test "test" 00:23:37 oerjan: what's the code we need for 8 of 'em? 00:23:40 text "test" 00:23:45 argh 00:23:47 > text "test" 00:23:49 test 00:24:12 (*7).(+9/8) 00:24:15 i think 00:24:21 um wait 00:24:26 > text $ truncate 50 $ ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:24:27 (*4).(+9/8) 00:24:27 No instance for (GHC.Real.Integral 00:24:28 ([GHC.Types.Char] ->... 00:24:49 > text $ ("▁▂▃▄▅▆▇█"!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:24:56 mueval-core: Prelude.read: no parse 00:24:56 mueval: ExitFailure 1 00:25:01 unhot bitches. 00:25:09 oerjan: are you the sure 00:25:15 is it actually able to print unicode 00:25:21 i think so 00:25:25 > var $ ("▁▂▃▄▅▆▇█"!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:25:26 If it can't, it sucks. 00:25:29 > fun $ ("▁▂▃▄▅▆▇█"!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:25:29 Ambiguous occurrence `var' 00:25:29 It could refer to either `Data.Number.Symbolic.... 00:25:31 Add a type signature 00:25:33 LOTS OF FUN 00:25:36 > (fun $ ("▁▂▃▄▅▆▇█"!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..])::Expr 00:25:38 ▅▆▇█* Exception: Prelude.(!!): index too large 00:25:44 oerjan: aha! 00:25:46 you are at fault! 00:25:51 wait 00:26:00 could you please give the code point number 00:26:14 > map ord "▁▂▃▄▅▆▇█" 00:26:15 [9601,9602,9603,9604,9605,9606,9607,9608] 00:26:17 oerjan: yes. 00:26:20 ok 00:26:22 well that's not in hex 00:26:42 > text . map chr $ [9601,9602,9603,9604,9605,9606,9607,9608] 00:26:44 ▁▂▃▄▅▆▇█ 00:26:47 -!- Pthing has quit (Remote closed the connection). 00:26:52 ok so that works 00:27:08 * ehird sees someone with 2xXeon processors @ 2.66ghz totaling 8 cores, with ... WTF ... 1GB of ram. 00:27:12 > text "▁▂▃▄▅▆▇█" 00:27:14 ▁▂▃▄▅▆▇█ 00:27:42 ehird: ... I wouldn't recommend 1GB of RAM for most anyone these days. 00:27:48 2GB is like $25. 00:27:51 text $ (['\9601'..'\9608]!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:28:02 > text $ (['\9601'..'\9608]!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:28:03 : 00:28:04 lexical error in string/character literal at chara... 00:28:05 pikhq: actually it's a bit more complicated as DDR3 is what everyone uses now 00:28:06 but still 00:28:08 totally affordabl 00:28:08 e 00:28:12 > text $ (['\9601'..'\9608']!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] 00:28:19 mueval-core: Prelude.read: no parse 00:28:20 mueval: ExitFailure 1 00:28:28 ehird: Not what everyone uses. Still, yeah; RAM's cheap. 00:28:32 hm 00:28:40 pikhq: Oh yes it is. All Dell and Apple computers use DDR3 now. 00:28:43 No point getting a mere gig if you're getting 8 cores. 00:28:48 > text . cycle $ ['\9601'..'\9608'] 00:28:48 That's not everyone. 00:28:53 mueval-core: Prelude.read: no parse 00:28:53 mueval: ExitFailure 1 00:28:58 pikhq: That's a gigantic chunk of all consumer computers. 00:29:04 > text $ ['\9601'..'\9608'] 00:29:06 ▁▂▃▄▅▆▇█ 00:29:17 I'll bet that HP use DDR3 too. 00:29:27 > text $ drop 10 $ cycle ['\9601'..'\9608'] 00:29:31 text . repeat $ "a" 00:29:33 mueval-core: Prelude.read: no parse 00:29:33 mueval: ExitFailure 1 00:29:36 > text . repeat $ "a" 00:29:37 Couldn't match expected type `GHC.Types.Char' 00:29:41 Hmm, no. HP are still on DDR2. 00:29:43 Still. 00:29:45 > text . repeat $ 'a' 00:29:46 > text (drop 10 (cycle ['\9601'..'\9608'])) 00:29:50 mueval-core: Prelude.read: no parse 00:29:51 mueval: ExitFailure 1 00:29:52 mueval-core: Prelude.read: no parse 00:29:52 mueval: ExitFailure 1 00:29:52 Apple + Dell = an awful lot of computers. 00:29:56 aha! 00:30:05 text cannot take infinite strings 00:30:07 pikhq: Also, all modern Core 2s *support* DDR3. 00:30:11 > text (take 10 (cycle ['\9601'..'\9608'])) 00:30:13 ▁▂▃▄▅▆▇█▁▂ 00:30:14 XD 00:30:19 So we have an awful lot of people with DDR3 by default, and a whole lot more with DDR3 ability. 00:30:23 > text (take 50 (cycle ['\9601'..'\9608'])) 00:30:25 ▁▂▃▄▅▆▇█▁▂▃▄▅▆▇█▁▂▃▄▅▆▇█▁... 00:30:37 ehird: As do all modern AMD chips. 00:30:37 > fun . repeat $ 'a' :: Expr 00:30:39 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... 00:30:51 > fun $ (['\9601'..'\9608']!!).truncate.(*4).(+9/8).sin<$>[0, 0.3 ..] :: Expr 00:30:53 pikhq: are you sure? I'm fairly sure that I looked into AMD recently and there was nary a DDR3 support to be found. 00:30:53 ▅▆▇█* Exception: Prelude.(!!): index too large 00:30:57 darn 00:30:58 This was in Phenom IIs, I think. 00:31:00 I may be wron. 00:31:01 g 00:31:04 > text $ take 50 $ ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:31:07 ▃▄▄▅▅▅▅▅▄▄▃▃▂▂▁▁▁▁▁▂▂▃▄▄▅... 00:31:15 pikhq: Okay, Phenom IIs in AM3 sockets support DDR3. 00:31:20 But that's it. 00:31:20 ehird: Yes. 00:31:27 That's the point of AM3. 00:31:29 pikhq: So that's not "all modern AMD chips". 00:31:31 > map ((*4).(+9/8)) [-1, -0.9 .. 1] 00:31:33 [0.5,0.8999999999999999,1.2999999999999998,1.6999999999999997,2.09999999999... 00:31:43 aha 00:31:44 I'd bet like 90% of AMD sales are Athlons. 00:31:53 > map ((*4).(+9/8)) [-1, -0.5 .. 1] 00:31:54 ... Athlons? 00:31:55 [0.5,2.5,4.5,6.5,8.5] 00:31:56 !haskell text $ take 50 $ ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:31:56 Really. 00:32:02 That's 2 generations behind. 00:32:06 pikhq: No it's not, Athlons are current. 00:32:09 -!- BeholdMyGlory has quit (Remote closed the connection). 00:32:13 They're AMD's consumer line. 00:32:21 Phenom is the power-user line. 00:32:25 GregorR: you're going to need a heap of imports 00:32:30 Oh, whaddya know. It's the budget line. 00:32:38 pikhq: NO. 00:32:39 er 00:32:41 pikhq: No. 00:32:48 pikhq: It's the "most people" line. 00:32:56 And those support DDR3. 00:32:59 Do they? 00:33:00 Huh. 00:33:09 00:31 pikhq: > text $ take 50 $ ("▁▂▃▄▅▆▇█"!!).truncate.(*2).(+5/4).sin<$>[0, 0.3 ..] 00:33:10 00:31 lambdabot: ▃▄▄▅▅▅▅▅▄▄▃▃▂▂▁▁▁▁▁▂▂▃▄▄▅... 00:33:12 this doesn't utilize all the chars 00:33:37 Sorry, that's the "Athlon II" line which they started shipping... Now. 00:34:13 pikhq: So by "all modern AMD chips" you mean "all the brand-spanking new ones in brand-spanking new sockets". 00:34:19 Erm. June 2, 2009. 00:34:32 Allow me to claim that the current AMD userbase with DDR3 support is... minimal. 00:34:34 "Modern" as in "what they're shipping now". 00:34:35 :P 00:34:44 how to approximate sin() ? 00:34:45 ehird: Allow me to claim the same of Intel. 00:34:52 pikhq: Err. Dude. 00:34:55 They've not been doing DDR3 all that long either. ;) 00:34:57 > map ((*4).(+8/7)) [-1, -0.5 .. 1] 00:34:58 [0.5714285714285712,2.571428571428571,4.571428571428571,6.571428571428571,8... 00:35:00 pikhq: Core 2 has had DDR3 support for multiple generations. 00:35:04 And Core 2 is *huge*. 00:35:05 gah 00:35:14 > map ((*7).(+8/7)) [-1, -0.5 .. 1] 00:35:15 [0.9999999999999996,4.5,8.0,11.5,15.0] 00:35:21 ORLY? Thought they had only recently introduced DDR3. 00:35:36 pikhq: Well, it's not like the oldest thing ever, but it's not something new and surprising 00:35:40 Oh, wait. Intel had seperate memory controllers until recently. 00:35:58 Recently = until the ultra-enthusiast Core i7 line that isn't their only line :-P 00:36:05 > map ((*4).(+8/7)) [-1, 0 .. 1] 00:36:07 [0.5714285714285712,4.571428571428571,8.571428571428571] 00:36:08 well, nehalem, not just core i7 00:36:09 Yes. 00:36:20 Making DDR3 support trivial. 00:36:53 (that's the upside of seperate memory controllers: you can switch memory types without a new processor generation) 00:37:42 > map ((*7/2)) [-1, 0 .. 1] 00:37:44 The operator `GHC.Num.*' [infixl 7] of a section 00:37:44 must have lower prece... 00:37:45 i wish amd would get their act together and stop making their high-end cpus portable ovens that aren't competitive with intel's 00:37:50 i really want to like amd cpus 00:37:51 > map (*(7/2)) [-1, 0 .. 1] 00:37:53 [-3.5,0.0,3.5] 00:38:01 but i can't muster the blindness :p 00:38:36 (seriously wrt the portable oven thing — those things are *hot*) 00:39:18 * oerjan hates this faulty brain 00:39:39 Shame, too; AMD used to make cool chips. 00:39:50 yeah 00:39:55 pentium 4 was a total joke 00:40:07 but then core 2 happened and amd was unpreparec 00:40:09 unprepared 00:40:49 if you ever want to fry some eggs just start up your 3.8ghz p4 00:41:30 > map ((+4).(*3.5)) [-1, 0 .. 1] 00:41:32 [0.5,4.0,7.5] 00:41:44 About the only thing AMD still has going for it is in systems with more than 2 chips... 00:41:47 ok that looks about right 00:42:08 > fun $ (['\9601'..'\9608']!!).truncate.(+4).(*3.5).sin<$>[0, 0.3 ..] :: Expr 00:42:10 ▅▆▆▇████▇▆▅▄▃▂▁▁▁▁▂▃▄▅▆▇▇... 00:42:11 pikhq: two cases 00:42:20 And even that's not going to be an advantage for too much longer; Intel's finally stopping the "shared system bus" method of multiprocessor support. 00:42:24 pikhq: budget machines, and >2 chip machines that aren't a cluster for some weird reason 00:42:34 Right. 00:42:34 the latter being a vanishingly small market 00:42:39 but intel don't really have many cheap chips 00:42:50 The former is AMD's typical market. 00:42:59 And as always, they're rather strong there. 00:43:12 now that looks pretty weird in IE 00:43:15 amd *did* start out by making an almost 100% clone of the 386 :P 00:43:31 too bad lambdabot's cutoff considers utf-8 characters by number of bytes 00:43:35 ehird: No, they started by manufacturing 8086's. 00:43:45 pikhq: er right 00:44:04 (as part of the deal for the IBM PC to use an 8086, IBM required Intel to hand the design to other manufacturers -- no single-sourcing) 00:44:37 Not a mere clone, it *was* an 8086. ;) 00:44:51 i want a xerox alto 00:46:35 !haskell putStrLn ['\9601'..'\9608'] 00:46:36 00:46:42 darn 00:48:06 -!- Zuu has joined. 00:48:20 -!- game16 has joined. 00:48:35 anyone here know APL? 00:48:37 or J? 00:48:38 > iterate(const'u')'Z' 00:48:38 or K? 00:48:39 Not in scope: `const'u'' 00:48:44 > iterate(const 'u')'Z' 00:48:46 "Zuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu... 00:49:10 game16: fax knew K. 00:49:13 oklopol knows J. 00:49:13 * Zuu giggles ^^ 00:49:17 neither are here. 00:49:24 aww 00:49:36 oklopol is like leeching internet or something because he didn't pay the bills, fax disappeared from the internet entirely 00:49:44 i can hack j given many hours. 00:49:59 Well, thats about the same rate as I'm going 00:51:03 if you like dead channels that never talk try #jsoftware. 00:51:17 perfect for all your not-talking needs. 00:51:33 XD 00:52:26 * ehird reads someone claim hard drives are more reliable than SSDs, lols 00:52:36 -!- FireFly has quit ("Later"). 00:54:41 I think they last longer or something 00:54:47 there's been a bunch of stuff on /. about that 00:55:07 SSDs last forever and a day 00:55:11 and their failure mode is "you can't write" 00:55:12 maybe oklopol is Reiser in disguise 00:55:19 not "you can't read" 00:55:30 also, SSDs are of course way more reliable when you drop them 00:59:20 -!- amca has quit ("Farewell"). 01:02:53 yes, they are much stronger for abuse 01:03:03 * coppro tries to locate article 01:03:29 some crazy guy is implying that a gigantic RAID-0 somehow makes his drives seek faster than the 0 seek time of SSDs 01:04:29 Some people just dont think straight 01:05:02 like your mom! 01:05:05 don't sue me GregorR. 01:05:22 oh GregorR is here... :> 01:05:30 okay i have to ask who Zuu is 01:05:41 The Zuu is me 01:05:49 * Zuu points at self 01:05:59 Zuu: WHAT FOUL DEMON BROUGHT YOU HERE 01:06:05 ehird: He might be able to get a faster in-order read rate. 01:06:14 *Might*. 01:06:16 that would have been the Zuu 01:06:37 pikhq: He's saying seek time. 01:06:39 .. which in turn is me... so i suppose im the demon :/ 01:06:45 Zuu: soo how did you find this abode. 01:06:52 ehird: Which is retarded. 01:06:58 Retarted. 01:07:00 Tarted once more. 01:07:04 It will always have a non-zero seek time. 01:07:35 pikhq: Actually, if you use a drive with large platters, say a 2TB affair, and partition it so that only the first thingymabobforgetitsname is used, 01:07:37 0 seek time! 01:07:52 ehird, well i was helping game16 find a place he/she could get help on APL and for that purpose i used the spongy stuff between my ears 01:08:03 Zuu: ah. 01:08:13 i think apl programmers would object to your implicit classification :) 01:08:24 I know! 01:08:30 I don't. 01:08:41 Yet it turned out to be a success 01:08:51 theres like no obvious way to convert numbers into strings 01:08:51 :P 01:08:54 If it has *Unicode code points* allocated specifically for it, it definitely counts as esoteric. :P 01:09:19 Braaaaains..... 01:09:40 * pikhq notes that Perl is also esoteric, but not because of some mythical Perl Unicode block. ;p 01:09:59 Perl is esoteric because it is in the class of languages which cannot be implemented. ;) 01:10:14 * Zuu roffles 01:10:23 * oerjan woffles 01:10:25 pikhq: Sure it can be. 01:10:29 You just can't parse it separately. 01:10:31 * Zuu eats oerjan 01:10:48 eek 01:11:00 oh, sorry, i thought you were waffles-ing 01:11:09 easy mistake 01:11:10 Zuu: are you male? 01:11:17 ehird, maybe :) 01:11:17 let's say yes. this is further evidence that oerjan is gay 01:11:25 Hehe 01:11:27 sheesh 01:11:47 ehird has the hots for oerjan, but needs to rationalize it. Sad, really. 01:11:49 (a) is spoony, {spoony,Dylan} and (b) has engaged in public IRC sexual acts by member of same sex. 01:11:55 I QED my case. 01:12:00 GregorR: Clearly. :P 01:12:09 who is Dylan? 01:12:15 Different channel. 01:12:22 Comma space male person on a. 01:12:33 oerjan: spoony's husband (at least I think they're married) 01:12:45 if not, then PARDNER. Both (a) someone who pardens and (b) cowboy partner. 01:12:51 My logic is infallable. 01:12:53 "Celebrity steel cage monkey boxing" 01:12:58 Yes. 01:13:00 That would be Dylan. 01:13:09 oerjan: GregorR forgot to mention different network too, though. 01:13:10 ehird: Right, right. 01:13:19 hm 01:13:21 i think i got it actually 01:13:21 pikhq: Also, Haskell is clearly esoteric :P 01:13:49 Logo and LISP are clearly mainstream 01:13:59 lol wat 01:14:09 yeah it's like java schools, ... lisp schools ... 01:14:12 ... logo schools ... 01:14:14 ;_; i wish they were 01:14:24 my intro to comp sci class was taught in NetLogo and Scheme 01:14:29 Turtles!! 01:14:37 I like turtles. 01:14:48 "Written in Java NetLogo runs on MAC's, Windows, Linus and Unix." 01:14:54 tenage mutant ninja... ducks! 01:15:02 ehird: Haskell is taught somewhat often in universities, and is being used in industry. 01:15:04 it runs on linus 01:15:05 It runs on Media Access Control addresses and Linus Torvalds. 01:15:10 Wait. 01:15:12 And it doesn't have screwy semantics. 01:15:15 poor linus, ran over by a turtle 01:15:16 It runs on "Media Access Control addresses is". 01:15:22 Whatever the fuck that means. 01:15:30 Mind Access Control? 01:15:39 pikhq: I have to point out that Haskell industry mostly = Galois and Well-Typed 01:15:52 oh, and those iphone peeps 01:16:03 grrrrrr 01:16:15 nooga: you should use haskell on the iphone. 01:16:18 you'd complain less. 01:17:38 > fix.fun$"turtle"::Expr 01:17:40 hmm 01:17:40 turtle (turtle (turtle (turtle (turtle (turtle (turtle (turtle (turtle (tur... 01:17:41 ey 01:17:43 funny 01:17:54 i thought about that under shower while ago 01:17:55 isn't there some way to know how many digits are in a number 01:17:56 with logs? 01:17:57 ehird 01:17:58 nooga: it exists 01:18:03 nooga: ghc has been ported to the iphone 01:18:05 jhc can also compile to it 01:18:08 and work is going on for bindings 01:18:18 game16: sure, log base 10 01:18:35 nooga: ask in #haskell-iphone 01:18:36 you need precise logs though 01:19:24 > truncate.logBase 10<$>[13,1000,55,42,800000] 01:19:26 [1,2,1,1,5] 01:19:32 erm 01:19:42 +1 01:19:52 * ehird sees the SSD-hating idiot claim that a 9% chance of a two-drive RAID 0 failing only applies to some people - "The chances only apply to one in 10,000 users or so. So it it's a 5% chance of a one in 10,000 occurrence." 01:20:01 * ehird sees this as a compelling argument for eugenics. 01:21:17 "Retarded" could mean "slowed again", "slowed back", or, if it's derived from Spanish, "well-slowed". 01:21:21 * oerjan points at the latest xkcd 01:21:34 ceiling(log base 10) 01:21:57 game16: no, ceiling fails at exact powes 01:22:06 needs floor+1 01:22:18 ehird: do the SSD-hating idiot's claims make you happy? If not, do you think they make us happy? 01:22:23 *powers 01:22:33 Warrigal: Does your mom make you happy? 01:22:51 Yes, but I don't think that's pertinent. 01:22:57 > truncate.logBase 10.(10^)<$>[1..] 01:22:58 [1,2,2,4,5,5,7,8,8,10,11,11,12,14,14,16,17,17,19,20,20,22,22,23,25,25,26,28... 01:23:03 Warrigal: Perhaps not, but YOUR FACE is. 01:23:13 Oh, now it all makes sense. 01:23:17 ehird: rly? 01:23:24 but ghc requires gcc 01:23:24 nooga: yah 01:23:24 i see floating point makes exact powers unreliable anyway 01:24:31 the port targets iphone or runs on iphone? ;d 01:24:38 ehird: ... He's dumb. 01:24:43 ehird: And he has a *large* RAID 0? 01:24:49 pikhq: 3 or 4 drives, I forget 01:24:52 dumber than a brick 01:24:57 3 or 4 drives? 01:25:05 That's guaranteeing a disk failure. 01:25:53 he's now arguing that backups mean that disk longevity doesn't matter 01:26:43 ... 01:26:55 Actually, I shouldn't sarcastically express satisfaction, because you may irrationally interpret that as a reason to forget about my question. 01:26:58 He must not do backup restores often. 01:27:48 pikhq: well it's on a mac forum, if you're using time machine it should be pretty painless, but he's teh silly. 01:27:55 also that doesn't help when you lose your OS ofc 01:28:05 ehird: It's still time consuming. 01:28:08 Warrigal: Actually, I'm ignoring you so you get agitated about me not answering your question. 01:28:33 raid 5 01:29:57 Raid 5 has valid uses, and a 3 or 4 drives RAID doesn't mark you as an idiot. 01:31:52 * Warrigal gets agitated. 01:32:18 Warrigal: i guess you can't overcome my bias. it's a shame that we can't all be less wrong than I 01:32:23 instant rimshot dot com! 01:33:40 i had raid 5+0 @ 16 500GB drives 01:34:12 16‽ 01:34:18 and you can't afford a mac pro? 01:34:22 for porn ofc 01:34:35 * Zuu is suddently interrested 01:34:41 oh the toys weren't mine 01:34:47 ;] 01:37:55 I'm no longer agitated! :-D 01:40:18 ehird: i feel that my company can buy mac pro for me, i should work harder and complain that mb pro isn't enough 01:40:50 And An paper has the interesting property that you can get An+1 paper by cutting it in half. <--- err yeah? What's so special with that... 01:40:52 somehow i find it entirely unlikely that an mbp isn't sufficient for iphone development. 01:41:07 Considering that the thing's got a fuckin' ~600mhz ARM! 01:41:20 oerjan: I'm American. 01:41:30 oerjan: We don't have paper defined like that. 01:41:44 pikhq: i haven't commented yet 01:41:47 just quoted 01:41:57 oerjan: We have slightly smaller than A4, slightly larger than A4, and twice (slightly larger than A4). 01:42:00 damn <--- system 01:42:14 Oh, it was a quote from AnMaster. XD 01:42:24 ehird: true, but who cares when we can buy new toy 01:42:54 nooga: mac pros are expensive. unless you're a graphics designer or professional 3d renderer or movie editor, not happening. 01:42:57 AnMaster: if you add to that the fact that An+1 and An have the same relative proportions, the sqrt(2) ratio drops out 01:43:37 ehird: i use photoshop intensively, with large files 01:43:48 nooga: define large 01:43:59 like um, 900MB uncompressed 01:44:06 that's not lareg 01:44:09 *large 01:44:47 large enough to make it choppy experience 01:44:55 get more ram 01:44:56 "Currently SSD aren't for people that need huge storage but the added benefit is that they are silicon and therefore follow Moores Law." 01:45:01 Fun fact: Moore's Law is a law of physics 01:45:06 It applies only to silicon atoms 01:46:26 huh? 01:47:11 PING onet.pl (213.180.138.148): 56 data bytes 01:47:17 64 bytes from 213.180.138.148: icmp_seq=0 ttl=56 time=2797.510 ms 01:47:17 64 bytes from 213.180.138.148: icmp_seq=1 ttl=56 time=2986.018 ms 01:47:17 wtf 01:47:56 something about packets and space 01:50:24 ehird: carbon clearly uses a different base 01:54:59 -!- nooga_ has joined. 01:55:22 uh 01:55:24 yeah! 01:55:26 fix'd 01:57:39 intel are adding a 320gb ssd to their x25-m range in q4 01:57:44 prolly for the same price as current 160gbs 01:57:44 hawt 02:06:05 huh 02:06:21 my sine approximation in sadol seems not to work 02:06:43 sine qua non 02:06:58 prolly like 320gb $620, 160gb $310, 80gb $150 02:12:46 > (f, x::Expr, f x::Expr) 02:12:47 Add a type signature 02:13:03 oerjan: f is polymorphic 02:13:12 no it is not 02:13:19 or wait 02:13:21 darn 02:13:42 hm that is rather messed up... 02:13:50 > f (f::Expr) :: Expr 02:13:52 f f 02:18:11 :t f 02:18:13 forall a. (SimpleReflect.FromExpr a) => a 02:18:26 @type f 02:18:26 -!- nooga has quit (Success). 02:18:28 forall a. (SimpleReflect.FromExpr a) => a 02:18:28 ...oh. 02:19:08 > let g :: forall a. (SimpleReflect.FromExpr a) => a; g = f (f :: Expr) in g (g :: Expr) :: Expr 02:19:10 Not in scope: type constructor or class `SimpleReflect.FromExpr' 02:19:27 @#¤%&! 02:19:44 > let g :: forall a. (FromExpr a) => a; g = f (f :: Expr) in g (g :: Expr) :: Expr 02:20:00 ? 02:20:17 Unknown command, try @list 02:20:18 Not in scope: type constructor or class `FromExpr' 02:20:29 * oerjan swats lambdabot -----### 02:22:02 @hoogle FromExpr 02:22:02 No results found 02:24:01 ~s2(4 :x#_0:d#_1 ~p1(2:a#_0 ?>a0 *ap-a1 1 ?>d6 0 +*/^x+*2d1p+*2d1?=0%d2-011sx+d1 02:24:04 uncool 02:24:14 is that J? 02:24:24 ? 02:25:15 looks like j code. 02:25:22 plain SADOL 02:31:42 this whole haskell blows my mind 02:34:42 > [x*y | x <- [1,3...], y <- [1,-1...]] 02:34:44 A section must be enclosed in parentheses thus: (3 ...)Not in scope: `...'A... 02:35:00 > [x*y | x <- [1,3..], y <- [1,-1..]] 02:35:01 [1,-1,-3,-5,-7,-9,-11,-13,-15,-17,-19,-21,-23,-25,-27,-29,-31,-33,-35,-37,-... 02:35:09 > [x*y | x <- [1,3..], y <- [1,-1,1..]] 02:35:10 : parse error on input `..' 02:36:34 how to make [1,-1,1,-1,1...] list? 02:36:51 > cycle[1,-1] 02:36:53 [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1... 02:37:02 > [x*y | x <- [1,3..], y <- cycle [1,-1]] 02:37:04 [1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1... 02:37:19 ? 02:37:37 it never gets past x = 1 because the second list is infinite 02:37:50 oh 02:38:31 > zipWith (*) [1,3..] (cycle [1,-1]) 02:38:32 [1,-3,5,-7,9,-11,13,-15,17,-19,21,-23,25,-27,29,-31,33,-35,37,-39,41,-43,45... 02:39:24 > [1,2,3]/[6,7,8] 02:39:25 No instance for (GHC.Real.Fractional [t]) 02:39:25 arising from a use of `GHC.Rea... 02:41:11 !haskell instance Num a => Num [a] where (+) = zipWith (+); main = print $ [1,2,3]+[6,7,8] 02:41:19 dammit 02:41:47 how about n! ? 02:42:26 oh! 02:42:37 !haskell instance Num a => Num [a] where {(+) = zipWith (+)}; main = print $ [1,2,3]+[6,7,8] 02:43:06 dammit i didn't want a heap of warnings! 02:43:22 i know perfectly well i'm leaving out methods :( 02:43:27 oh well 02:43:31 what about n! ? 02:44:20 nooga_: 02:44:23 factorial 02:44:38 > product[1..10] 02:44:40 3628800 02:45:46 > (zipWith (\x y -> y*n^x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:45:48 [1 * n / (1 * 1),negate 1 * (n * n * n) / (1 * 1 * 2 * 3),1 * (n * n * (n *... 02:46:03 > (zipWith (\x y -> y*n^x/(product[1..x])) [1,3..] (cycle [1,-1])) where n = 3.14 02:46:04 : parse error on input `where' 02:46:10 > pi 02:46:12 3.141592653589793 02:46:24 > let n = pi in (zipWith (\x y -> y*n^x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:46:26 Add a type signature 02:46:31 where? 02:46:39 ^ needs integer base 02:46:42 try ** 02:46:51 > let n = pi in (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:46:53 [3.141592653589793,-5.167712780049969,2.550164039877345,-0.5992645293207919... 02:47:21 except i suspect that is wrong 02:47:35 er wait 02:47:40 i'm stupid 02:47:50 not that it hurts though 02:48:28 ah you had a mixture of integer and floating point 02:48:33 that's always annoying 02:48:44 :t fromIntegral 02:48:45 forall a b. (Integral a, Num b) => a -> b 02:48:46 now let's sum several first values 02:50:27 :t sum 02:50:29 forall a. (Num a) => [a] -> a 02:50:57 it's infinite 02:51:31 :t scanl1 (+) 02:51:33 forall a. (Num a) => [a] -> [a] 02:52:31 > scanl1 (+) [1..] 02:52:32 [1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,27... 02:53:19 > scanl1 (*) [1..] 02:53:21 [1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,8... 02:54:07 > let n = pi in (sum . take 5) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:54:08 6.925270707505135e-3 02:54:14 O_O 02:54:28 hm? 02:54:44 > let n = pi in (sum . take 15) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:54:45 3.3311654048890173e-16 02:55:24 that should approximate sin(n) 02:55:30 > let n = pi/2 in (sum . take 15) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:55:30 i know 02:55:32 1.0000000000000002 02:55:39 > let n = 1.0 in (sum . take 15) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:55:41 0.8414709848078965 02:55:53 for pi/2 and 1 it's good 02:56:12 > let n = pi/1.5 in (sum . take 15) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:56:14 0.8660254037844389 02:56:18 also for pi 02:56:33 aaaaah 02:56:43 didn't notice that e-16 02:56:56 -!- bsmntbombdood has joined. 02:57:38 let s n = (sum . take 15) (zipWith (\x y -> y*n**x/(product[1..x])) [1,3..] (cycle [1,-1])) 02:57:43 ~s2(4 :x#_0:d#_1 ~p1(2:a#_0 ?>a0 *ap-a1 1 ?>d6 0 +*/^x+*2d1p+*2d1?=0%d2-011sx+d1 02:57:49 damn! 02:57:55 sadol equivalent is longer 03:06:26 > let s n = sum . take 15 . scanl (\x y -> -x*n^2/y/(y+1)) n $ [3,5..] in s pi 03:06:28 1.273239544735162 03:06:42 * oerjan takes that as a "no" 03:07:04 oh wait 03:07:11 > let s n = sum . take 15 . scanl (\x y -> -x*n^2/y/(y+1)) n $ [2,4..] in s pi 03:07:12 2.474037845212555e-16 03:09:09 -!- oerjan has quit ("Later"). 03:59:03 T_T 03:59:08 the guy who know J, just left? 03:59:50 -!- coppro has changed nick to coppwo. 04:24:35 -!- coppwo has quit (Remote closed the connection). 04:25:35 -!- coppwo has joined. 04:25:43 -!- coppwo has changed nick to coppro. 04:55:57 -!- bsmntbombdood has changed nick to adriyel. 04:57:08 -!- adriyel has quit (Nick collision from services.). 04:57:37 -!- bsmntbombdood_ has joined. 04:57:51 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 05:07:21 -!- Halph has joined. 05:07:43 -!- coppro has quit (Read error: 104 (Connection reset by peer)). 05:07:54 -!- Halph has changed nick to coppro. 05:08:13 -!- fungebob_ has joined. 05:17:41 -!- calamari has joined. 05:24:19 -!- fungebob has quit (Read error: 110 (Connection timed out)). 05:29:45 -!- mtd has quit (Read error: 113 (No route to host)). 05:35:42 -!- oerjan has joined. 05:36:37 the guy who know J, just left? <-- if you mean oklopol, he isn't around these days, internet access problems 05:39:47 -!- mtd has joined. 06:36:09 -!- oerjan has quit ("leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:22:37 -!- KingOfKarlsruhe has joined. 08:39:09 -!- calamari has quit ("Leaving"). 08:43:18 -!- jix has joined. 09:01:15 -!- Ilari has quit (Read error: 60 (Operation timed out)). 09:01:27 -!- Ilari has joined. 09:10:16 > sum $ take 1000 $ (1/) $ filter (not . ('0' `elem`) . show) $ [1..] -- this will not do what it's supposed to do 09:10:17 No instance for (GHC.Real.Fractional [a]) 09:10:18 arising from a use of `GHC.Rea... 09:10:28 > sum $ take 1000 $ map (1/) $ filter (not . ('0' `elem`) . show) $ [1..] -- this will not do what it's supposed to do 09:10:34 mueval-core: Prelude.read: no parse 09:10:34 mueval: ExitFailure 1 09:10:47 > sum $ take 100 $ map (1/) $ filter (not . ('0' `elem`) . show) $ [1..] -- this will not do what it's supposed to do 09:10:53 mueval-core: Prelude.read: no parse 09:10:53 mueval: ExitFailure 1 09:11:51 > sum $ take 1000 $ map ((1/) . fromInteger) $ filter (not . ('0' `elem`) . show) $ [1..] 09:11:53 6.867857013863874 09:12:00 > sum $ take 10000 $ map ((1/) . fromInteger) $ filter (not . ('0' `elem`) . show) $ [1..] 09:12:01 8.56264904151542 09:12:09 > sum $ take 100000 $ map ((1/) . fromInteger) $ filter (not . ('0' `elem`) . show) $ [1..] 09:12:11 10.08165276921241 09:12:17 > sum $ take 1000000 $ map ((1/) . fromInteger) $ filter (not . ('0' `elem`) . show) $ [1..] 09:12:23 mueval-core: Prelude.read: no parse 09:12:24 mueval: ExitFailure 1 09:12:39 Clearly, a more efficient method is required. 09:21:19 -!- KingOfKarlsruhe has left (?). 09:22:38 -!- DarkPants has joined. 09:22:38 -!- GreaseMonkey has quit (Read error: 60 (Operation timed out)). 09:58:03 -!- zid has changed nick to Guest32046. 10:02:20 -!- game16 has left (?). 10:25:59 -!- FireFly has joined. 10:45:38 -!- Guest32046 has changed nick to zid. 10:58:12 -!- DarkPants has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 11:00:39 fizzie: I saw your name on a piece of paper near a door. 11:00:57 Huh, that's strange. Where? 11:02:07 Around rooms B300-330, I think. 11:02:17 (I'm not sure what the number is at that point) 11:02:43 It seemed to be next to a time saying 14:00 or 14:30 or something. 11:02:56 Of course, I saw this all in about 0.1 seconds so I'm not entirely certain. 11:03:44 I could go check but I'm not sure I feel like it. 11:04:44 Hm, yes. It was probably B322, the former CIS lab library. I guess it's ICS department library technically now. I "reserved" it for last Thursday (18.6.) 14:00-14:30 for a practice presentation thing to our speech people. 11:05:36 Yes, that was probably it. 11:06:19 Phew. I was starting to think I'd completely forgotten about some sort of thing. 11:07:01 Yes, I was hoping I'd see you run there in a panic. I should've told you at 13:55. 11:08:50 Yes. With that vague "B300-330" range, there'd've been quite a lot of rooms for me to barge in and go all "hey, am I supposed to be here now?" in. 11:10:07 Yes. 11:11:55 Well, you could've just looked for pieces of paper outside the doors and barge into the room whose paper contains your name. 11:14:31 Incidentally, I don't have my name in the place-for-names thing of this room I've been working in for about two years now. 11:15:09 Maybe that's why I don't get much visitors. 11:51:33 -!- BeholdMyGlory has joined. 12:04:26 fizzie: Deewiant: you're on the same university? 12:09:37 Yes. Well, in fact I have no clue what Deewiant's up to nowadays. At least he's still on the Laboratory for Theoretical Computer Science "Personnel" page, which quasi-recently was combinated with the Laboratory of Computer and Information Science, where I work. 12:10:00 oh 12:10:23 So possibly we're both in the Department of Information and Computer Science now. 12:10:32 do you teach? 12:11:58 Not really, no. At least I *still* haven't graduated yet, though according to the current schedule I should be getting my master's thesis thing done by September or something. (And I do take care of the programming project of our AI course, which involves one lecture, so...) 12:17:35 oh 12:17:53 wonder if oerjan teaches 13:08:45 fizzie: Yes, I'm still up to working here at least for the summer. 13:09:14 You go up to eleven. 13:09:42 No, that's usually when I have lunch. 13:09:55 I go up to sixteen typically. 13:11:30 Also, I think I'm creeping up on you; I guess you're somewhere in the A wing which probably means that my current B353-location is closer than last year's B333. 13:15:04 Actually I'm in C310; us speech people have gathered to this end of the building. 13:15:54 Did you happen to participate in the recent summer excursionary thing-thing? 13:16:16 Yep, that thing-thing on a tuesday a few weeks back. 13:19:49 -!- Hiato has joined. 13:23:58 Hello all 13:24:38 leHlo lal 13:25:08 Generally accepted accounting practices 13:25:09 Hale loll. 13:25:13 Deewiant: Oh. Well, in that case you might've even seen me there. 13:25:43 * Hiato figured no-one would try rotate that one 13:26:00 I was one of the people who was forced to stand up and introduce themselves due to being summer trainees 13:26:41 Oh. Strange that I didn't connect the name, then. 13:28:00 Were you one of the loudmouthed drunks in the sauna? They're mostly the ones whose faces stuck 13:28:34 I doubt that. 13:28:42 But you're not sure? 13:29:14 Well, I was in the sauna, and I think I said approximately three sentences there. 13:29:31 Then probably not. 13:29:43 The people in question spoke volumes. 13:31:08 -!- Pthing has joined. 13:35:15 A gently epic gel nut cicada racer's concept. (An anagram for that accounting practices thing.) 13:37:14 ah 13:37:22 right, you're Finnish 13:37:58 -!- MigoMipo has joined. 13:39:45 Gently epic? 13:40:57 Yes, it's not so irritatingly in-your-face epic as some other epic things. 13:41:19 Though truth to be told I'm not exactly sure a "gel nut cicada" is a real species. 13:41:25 I may have made it up. 13:50:18 13:53:28 Deewiant, has anyone yet written a minesweeper game in befunge? 13:54:11 (if not I'm probably going to make a simple one 13:54:26 -!- Sgeo has joined. 14:11:18 -!- game16 has joined. 14:12:14 -!- Hiato has quit ("Leaving"). 14:12:16 I can't think of anybody writing a minesweeper game in any esolang 14:22:38 Deewiant, right 14:23:32 * AnMaster writes a design document for a simple one 14:30:39 -!- BeholdMyGlory has quit (Remote closed the connection). 14:40:07 -!- Associat0r has joined. 15:14:48 -!- oerjan has joined. 15:15:49 -!- ais523 has joined. 15:24:42 Deewiant, hm any idea about what sort of algorithm would give the best distribution of the mines? 15:25:04 Maybe random number, then if we already have a mine on it, try again? 15:25:10 Just randomize and... yeah 15:26:17 Deewiant, the upper bound on that algorithm is horrible though 15:26:38 err, worst case I meant 15:27:06 Then just randomize in the range [0,number of empty spaces left) 15:27:17 The awesomeness with doing it in Befunge is the fact that you'll actually use the code grid as the game area (I suppose) 15:27:31 So that pos x,y actually IS pos x,y in the code 15:28:17 FireFly, well, yes, except I planned to label the columns a-z, otherwise rendering it for the user would be messy. 15:28:23 AnMaster: worst cases that are as likely as being hit by a meteorite aren't _really_ a concern, you know 15:28:36 oerjan, true 15:28:46 yes you could render it vertically. But that sounds like a pain in befunge 15:28:53 Ah, true, but still, having the actual gameplay represented with chars in the code.. I like that :D 15:29:23 oerjan: If the user requests 99 mines into a 10x10 grid it's not that unlikely 15:29:44 well ... yeah 15:29:52 interface planned is C X Y where C is a single letter command (like m for mark mine, r for reveal). X and Y are coordinates 15:30:14 in that case: place all the mines anywhere you want, then random reorder the field 15:30:14 I plan to use VT100 colour codes to make the output more readable 15:30:36 oerjan, random reorder is iirc tricky to get right? 15:30:47 I remember something about swapping cards and being careful with swapping it again 15:30:49 AnMaster: no, it's easy 15:30:51 or similar 15:30:53 yes, use knuth's algorithm 15:31:10 one trivial algorithm is to exchange a random card with the last card, then a random card other than the last with the penultimate card, and so on 15:31:29 oerjan: is that Knuth's algorithm? I discovered it myself, but it's so obvious it's bound to have been discovered before now 15:31:32 oerjan, googling for that gives something called "Knuth's Algorithm X". Is that the right one? 15:31:39 No, it's not. 15:32:02 http://en.wikipedia.org/wiki/Fisher-Yates_shuffle 15:32:02 ais523: um we are assuming an algorithm that gives all permutations with the same probablity 15:32:20 oerjan: mine does 15:32:29 "random card" can include the card it's swapping with 15:33:02 hm, that's probably equivalent to knuth then 15:33:42 Isn't that exactly it 15:33:42 oerjan: my version's explained lower down the page Deewiant linked to 15:33:55 it's basically equivalent, just saves a bit of moving things around in memory 15:34:15 yes 15:34:24 and so is an order of n faster 15:38:46 -!- Judofyr has joined. 15:40:40 ais523, Deewiant: how do you handle the "first click is never a mine" thingy 15:40:52 personally, I don't 15:41:01 but one trivial way to do it, if you want to, is to not randomize until after the first click 15:41:07 and just leave the square clicked on out of the randomization 15:41:18 meh too much work 15:41:30 (rewriting the design document that is) 15:41:45 Eh? Just have a bit somewhere that says whether the map has been written or not 15:41:59 hm ok... 15:42:05 * AnMaster reorganizes the code slightly 15:42:12 (code layout that is) 15:45:11 lets see what what global variables you need: 15:46:17 Size X, Size Y, Mine count, Number of flagged mines, the bit Deewiant mentioned, the mine field, a equally large block showing where player placed flags and what is revealed. 15:46:30 oh and time stamp from when you started 15:46:57 Number of flagged mines? Why? 15:47:15 Deewiant, to give that "number of mines left to flag" thingy that minesweeper shows 15:47:33 Oh, right. 15:47:38 AnMaster: why are you implementing Minesweeper anyway? 15:47:40 Well. 15:47:51 ais523, I was bored 15:47:53 AnMaster: Instead of mine count and number of flagged mines, why not just number of unflagged mines 15:47:57 fair enough 15:48:05 Deewiant, doesn't that boil down to the same thing? 15:48:11 yeah guess so 15:48:13 Yes, but it's one less variable 15:49:15 I never understood why mine sweepers have that question mark thingy tooo 15:49:17 too* 15:50:21 If you want to up the difficulty of coding it a notch, make sure that boards are always solvable without guessing 15:50:44 Deewiant, No non-esoteric minesweeper app I have seen does that 15:50:45 so meh 15:50:48 oh hi 15:50:55 hi 15:51:07 I wanna implement a minesweeper solver actually 15:51:11 give me an interface to press butons 15:51:12 and I'm pretty sure it's /possible/ to make a board that's always solvable without guessing 15:51:23 ais523: no 15:51:24 minesweeper infinity does that 15:51:31 the first click is always a guess 15:51:32 Deewiant, I usually play kmines 15:51:44 zid: AnMaster wanted to use the rule where the first click is never a mine 15:51:53 generate it after the first click? clever 15:52:07 you really need to know the actual location of the first click to make it always solvable without guessing, though 15:52:29 what about that "fast clear if number of mines around a number matches"? 15:52:32 should I have it 15:52:41 yes, definitely 15:52:48 Minesweeper's almost unplayable without it 15:52:49 right 15:52:53 ais523, agreed! 15:52:54 you can do that recursively 15:53:07 Also "mines" at http://www.chiark.greenend.org.uk/~sgtatham/puzzles/ claims to do it 15:53:15 just display the game board already done to mark all 0 squares imo :P 15:53:17 As a bonus, it has available source, unlike infinity 15:53:21 likewise, you want click/middleclick on a number to clear unmarked squares around it if the number of marked squares around it is equal to the number 15:53:24 ais523, I need the recursive one already for revealing when you hit a number-free cell 15:53:43 oh, I thought that's what you were talking about in the first place 15:54:00 you want both 15:54:05 ais523, no I meant "fast clear if number of mines around a number matches" 15:54:12 middle mouse button usually 15:54:12 well, ok 15:54:17 'net' looks cool 15:54:20 oh, java, cool 15:54:23 kmines actually uses the left mouse button 15:54:30 ais523, yes I use that 15:54:54 ais523, I tried both, and first mouse button saves a significant amount of time 15:55:05 I tend to both-click (left+right) anyway, it's a habit I formed back when I used Windows 15:55:19 whee, solved 'net' :P 15:55:39 since I seldom use the normal reveal except at the start and when you get a tricky one where you know "this one must be free, and one of those two next to it must have a mine, but I don't know which yet" 15:55:49 you bastards, i'm going to be playing these games all day now 15:56:06 http://svn.tartarus.org/*checkout*/sgt/puzzles/mines.c?content-type=text%2Fplain&rev=8402 has the src for the previously mentioned one. 15:56:06 zid, nah, write on in brainfuck instead! 15:56:08 I thought you were playing NetHack? 15:56:18 hm 15:56:23 mines as a mini-game in nethack 15:56:26 interesting idea 15:56:42 since there is already sokoban (sp?), why not 16:00:31 I think pre-calculating the numbers sounds like a good idea. 16:00:37 -!- GregorR-L has joined. 16:00:40 oh hey, black box 16:00:43 I like that game 16:00:46 I have it for X 16:01:01 Emacs has a version too, IIRC 16:01:33 I find that a detailed design document helps a lot when coding in befunge... 16:01:46 I like my X version better.. 16:01:55 I think there is one in kdegames 16:01:56 not sure 16:01:59 I kept adding new symbols to my befunge 16:02:13 * AnMaster decides on what fingerprints to use 16:02:13 I had graphics operations 16:02:25 zid, fingerprints you mean? 16:02:31 fingerwhatties? 16:02:40 loadable extensions in befunge-98 16:02:53 like FPSP for single-precision floating point stuff 16:03:35 In this mine sweeper I'm going to use FIXP for the randomness at least. Much better than a tree of ? trying to get an unbiased result... 16:03:56 zid: in Befunge-98, there are loadable extensions that let you choose what the capital letters do 16:04:04 it's a rather clever way to avoid running out of symbols 16:04:28 oh, cool I guess 16:04:34 I just hardcoded new ones 16:04:36 if I need more than FIXP I'm probably going to use FING too to reassign the symbols as needed. 16:04:50 I guess HRTI would be cool for the playing time bit 16:04:57 better than using y. 16:05:07 but that's because pretty much anything's better than using y 16:05:07 yay, microsecond precision timing 16:05:12 ais523, well yeah 16:05:18 ais523, it gives whole seconds resolution 16:05:21 anyone know of any decent befunge environments I can dick around with? 16:05:25 graphics/sockets/whatever would be nice 16:05:30 zid, CCBI and cfunge 16:05:33 graphics no 16:05:33 zid: cfunge and/or CCBI are your best bets at the moment 16:05:36 but sockets yes 16:05:40 that's in SOCK and SCKE 16:05:43 sockets will do 16:05:44 -!- Judofyr has quit (Remote closed the connection). 16:05:48 zid, note, cfunge needs a *nix. 16:05:53 if you use windows you are screwed 16:06:04 Linux yggdrasil 2.6.30 #2 SMP PREEMPT Sun Jun 21 06:33:47 BST 2009 x86_64 Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux 16:06:07 I got it covered 16:06:10 great :) 16:06:12 yggdrasil?!?!?!? 16:06:20 zid, oh and Deewiant is the author of CCBI, and I'm the author of cfunge 16:06:31 AnMaster: which one should I use then? :P 16:06:35 yggdrasil 2.6.30?!?!?!? 16:06:46 GregorR-L: go check what fields are what in uname 16:06:50 yggdrasil is the hostname 16:06:54 Oh X-D 16:06:59 zid, depends: ccbi has a debugger (but is a bit slow), cfunge doesn't, but is the fastest befunge-98 implementation currently 16:07:07 cfunge it is then 16:07:16 does it make binaries or is it just an interp? 16:07:21 just an interp 16:07:30 compiling Befunge is effectively a case of bundling an interp 16:07:35 fizzie was/is working on jitfunge 16:07:35 yea 16:07:40 unless you wanna spend years on it 16:07:59 A bit slow? 16:08:03 ais523: not if you thread it verry carefully 16:08:05 Deewiant, relatively! 16:08:22 my befunge 'compiler' was just a jump table program written in asm and the source concatted onto the end 16:08:25 :D 16:08:30 AnMaster: Language::Befunge is a bit slow 16:08:37 -!- oerjan has quit ("leaving"). 16:08:39 CCBI is relatively quite fast :-P 16:08:40 Deewiant, I mean, you can see the individual generations in that life.bf clearly when using ccbi. It is just a blur with cfunge 16:08:49 Language::Befunge supports arbitrary dimensions though, doesn't it? 16:08:54 Yay, one benchmark 16:08:56 ais523: Yep 16:08:59 how about storing the file in a quad linked list? 16:09:01 it is equally blurry with jitfunge, but that is only because the terminal limits the speed 16:09:04 ;P 16:09:09 zid: Forth-style programming is awesome and you know it. :) 16:09:13 zid: cfunge uses a static array and a hash table 16:09:17 and instructions in runs with no way to get to the middle could be compressed down 16:09:20 zid: stinkhorn does that 16:09:32 Not sure about the compression but it uses a quadtree 16:09:36 befunge dynarec, you know you want it 16:09:40 zid, any compiler is fucked up as soon as you use p to do self-modification 16:09:44 -!- BeholdMyGlory has joined. 16:09:50 AnMaster: Possibly 16:09:54 except jitcompilers 16:09:57 AnMaster: Forth-style compilation. 16:10:00 as long as you could blackbox it, you can figure out what it can touch 16:10:02 pikhq, threaded code? hm ok 16:10:20 Can I interface to libc or anything useful with cfunge? 16:10:24 zid: CCBI also supports more fingerprints if you want to dick around with the more esoteric stuff 16:10:36 I wanna write a befunge webserver or something stupid 16:10:40 zid, I did plan a FFI fingerprint, never finished the spec even for it though 16:10:40 zid: you can interface to INTERCAL, and to C that way 16:10:45 zid: There's a fingerprint for sockets 16:10:49 ah yes that... 16:10:51 the direct interface is unfinished, though 16:11:08 All I want is listen, bind, connect, select 16:11:11 if I have those, gg 16:11:14 accept 16:11:15 You do. 16:11:17 ais523, lack of interest and the issues with trying to handle structs made me give that idea up 16:11:22 SOCK is basically a binding into socket.h. 16:11:31 zid, both ccbi and cfunge has SOCK 16:11:38 what's 'bzr' ? 16:11:45 zid: version control system 16:11:49 maintained by Canonical 16:11:50 yea, what is it 16:11:50 CCBI comes in a zip for simplicity 16:11:54 all the cool people use git 16:11:54 ;-P 16:11:58 GNU took it over because their own VCS was rubbish 16:12:06 zid, the fingerprints in cfunge: http://pastebin.ca/1479605 16:12:11 CCBI uses git but that part isn't public yet 16:12:15 zid, you can download last release 16:12:20 ais523: They had either CVS or Arch. 16:12:23 and hg/bzr/darcs all have many of the advantages of git 16:12:25 I granned cfunge 0.4.1 from sf 16:12:32 pikhq: Arch, and you know how bad that is, if you've been listening to ehird 16:12:33 zid, yes, it uses cmake to build 16:12:36 see README 16:12:39 CVS is crufty, Arch is old. 16:12:44 And yes, I know how bad Arch is. 16:12:47 cvs can't merge 16:12:50 so it's useless 16:12:52 CVS is absurd. CVS is a joke. 16:13:01 AnMaster: Incidentally, I've been thinking about doing a Funge benchmark suite ("sometimes"), got any clever ideas? 16:13:04 Not useless, just pointless in this day and age. 16:13:08 GregorR, cvs is still better than rcs! 16:13:09 AnMaster: never used cmake 16:13:18 Deewiant, slowdown that doesn't fail for bignum 16:13:21 Since we're on the topic I might as well ask even though it's not timely 16:13:24 It had a time and place. Not any more. 16:13:24 AnMaster: *shudder* ... I've actually been involved in projects that still used RCS >_> 16:13:26 AnMaster: Impossible 16:13:35 GregorR-L: Eeeew. 16:13:38 zid, easy enough, the steps are described in the README 16:13:43 AnMaster: And anyway, that's not a benchmark. 16:13:52 Anyway, mercurial is the best and that's all there is to it. :P 16:13:53 just include a sh script that runs it :P 16:13:56 see section "Configuring" and "Compiling" below that 16:14:16 zid, err, it is just about as many steps as the ./configure thingy 16:14:18 cmake&&make&&make install, wasn't it? 16:14:23 cmake . 16:14:25 But yeah 16:14:28 Deewiant, no! 16:14:31 mkdir build; 16:14:32 cd build 16:14:33 I got told to mkdir build && cd build ** cmake .. 16:14:34 cmake .. 16:14:34 AnMaster: Yes. 16:14:36 definitely! 16:14:44 Nobody cares about out-of-tree builds if they just want to build, install, forget. 16:14:46 building in tree is untested 16:14:52 WFM. 16:15:03 Deewiant, gcc can't be built in-tree iirc 16:15:06 AnMaster: it isn't untested, you just haven't asked for results from the people who tested it 16:15:11 and gcc's build process is truly awful 16:15:21 agreed 16:15:29 hooray, I has a cfunge binary 16:15:30 ais523, correction: I haven't tested it myself for ages. 16:15:35 basically, imagine taking a decent build system like cmake, then editing the binary to make it do something it wasn't designed to do 16:15:38 GCC's build process is more-or-less an Autotools wrapper for crazy Make. 16:15:40 zid, :) 16:15:43 AnMaster: You should make an ebuild 16:15:47 gcc's build process is much the same thing, just with sh rather than binary 16:15:56 With too much M4. 16:15:58 zid, maybe... not sure any gentoo maintainer would care. 16:15:59 gcc can't be built in-tree, and building it in the tree root is possible but unsupported 16:16:04 * zid has ebuilds for gcc so doesn't care :P 16:16:06 AnMaster: become it 16:16:16 zid, no way 16:16:17 GCC needs another EGCS. 16:16:18 too much work 16:16:23 pikhq, oh? 16:16:30 I don't see why *shrugs* 16:16:35 AnMaster: too much work? all you have to do is make sure it doesn't break 16:16:49 zid, to become a gentoo package maintainer! 16:17:06 AnMaster: Or a concerted effort to decruftify the thing. 16:17:09 AnMaster: Impossible <-- why? 16:17:18 AnMaster: Got a file in test/ that uses sockets? 16:17:21 Deewiant, just check for -1 and then use some arbitrary upper limit 16:17:27 or these fingerprint things 16:17:29 zid, hm probably not. Mycology tests it. 16:17:31 AnMaster: It'll be arbitrary, which sucks. 16:17:43 zid, the stuff in tests is mostly regression tests 16:17:48 examples has a few basic ones 16:17:51 kk 16:17:57 but the most complex current befunge apps are probably 16:18:00 ^source 16:18:01 http://zem.fi/~fis/fungot.b98.txt 16:18:03 and mycology 16:18:04 whee, conway's life.. kinda 16:18:10 (check on Deewiant's website) 16:18:14 zid, yes :) 16:18:26 zid, it may scroll a bit too fast. But cfunge is rather optimised 16:18:26 wump, hah 16:18:45 no, it tears 16:19:56 AnMaster: tell me how to use SOCK quickly? 16:20:07 zid, hm... let me find the spec for SOCK 16:20:11 zid: http://www.rcfunge98.com/rcsfingers.html#SOCK 16:20:16 ah Deewiant was faster 16:20:36 is that one of the mkry fingerprints? 16:20:36 Deewiant, fixed the mycoege thing yet? 16:20:40 edge* 16:20:47 There is no thing to fix 16:20:54 if so, how bad's the spec? 16:20:55 Given that "mycoedge" does not exist 16:21:05 Deewiant, Well... Whatever you want to call it then 16:21:08 you know what I mean 16:21:12 ais523: The page is practically a text document, it is quite safe to view 16:21:28 Deewiant, :D 16:21:32 Deewiant: I know that 16:21:44 I meant in terms of having hardly any detail and being really ambiguous 16:21:47 AnMaster: /I/ mean that no such part of Mycology exists so there's nothing to "fix". It's not near the top of my TODO list. 16:22:00 ais523: You can't view it yourself? 16:22:00 ais523, the worst part of it is that the unix socket thing can't possibly work 16:22:17 Deewiant, but is ccbi still broken on it? 16:22:36 CCBI1 still is 16:22:42 CCBI2 isn't out yet 16:22:43 So yes :-P 16:22:56 Deewiant, shouldn't you add that test and update the mycology results page ;P 16:23:07 I'd rather finish CCBI2 16:23:22 At least to the point of finishing most of my CCBI todo list 16:23:29 Deewiant, it seems rather selfish to hold back a test for such a long time because your implementation would give a BAD :P 16:23:32 Not necessarily new fingerprints, etc 16:23:52 AnMaster: I'm one person. If you want to contribute a test, feel free. If it's quality, I'll accept it. 16:23:55 zid, http://users.tkk.fi/~mniemenm/befunge/mycology.html btw 16:24:03 Until then, I'm more interested in working on CCBI. 16:24:12 AnMaster: Please, use the permalinks. 16:24:13 http://iki.fi/matti.niemenmaa/befunge/mycology.html 16:24:30 Deewiant, I always copy from url field 16:24:41 if you don't use the one you want people to use up there, it isn't my fault 16:24:42 Then don't be angry at me when your links break. 16:24:51 AnMaster: It's not under my control. 16:25:06 Deewiant, ok... but why would it break 16:25:30 They're practically 100% guaranteed to break after some years when I graduate, since they're on the school's server. 16:25:53 Hopefully they'll break before that when I start self-hosting. 16:26:04 btw I probably need somewhere else to host cfunge web page soon... that web server is probably going down soon due to hosting company having serious financial issues... 16:26:07 Oh dear, AnMaster and Deewiant are ðe same color. 16:26:08 That's why there's a permalink provided, which won't break. 16:26:26 Warrigal: Fortunately ðey use different letters. 16:26:48 Ðe first time you turn on nick colors, ðey're kind of messed up. 16:26:48 Warrigal, everyone is for me. Since I prefer three colours: self/other/highlight 16:27:02 Warrigal, what is up with those symbols 16:27:02 ... 16:27:05 Yeah, irssi's default behavior. 16:27:17 And ðat of many oðer clients. 16:27:19 AnMaster: are you using UTF-8? 16:27:34 Warrigal, yes but I have no clue what those symbols are supposed to translate to 16:27:42 as in, what the hell they mean 16:27:52 "Th", or, if you're a "dh" geek, "dh". 16:27:52 looks Icelandic to me? 16:27:55 s/ð/th/g 16:28:04 Warrigal, "dh geek"? 16:28:05 wth is that 16:28:15 It is a letter used in Icelandic. 16:28:28 A "dh" geek is someone who really likes the digraφ "dh". 16:28:51 digrawhat? 16:29:03 * AnMaster writes a reverse filter for this 16:29:04 AnMaster: he inserted the Greek letter for ph there 16:29:05 Dhon't be a dhick, Warrigal. 16:30:04 AnMaster: it doesn't have select as far as I can see? 16:30:26 Hmm, you're right it doesn't. 16:30:31 Darn. 16:30:34 zid, SCKE has that for a single socket. But no, there isn't any async socket stuff in general... 16:30:42 select isn't async 16:30:48 Just spin-wait 16:30:50 I currently have ways to write all of ðe following letters: þ φ ŋ Þ Φ ə Ə ɚ Ŋ ψ Ψ Ŋ ð Ð ĉ Ĉ Χ χ ʃ Ʃ 16:30:53 select is sort-of the bridge between sync and async 16:30:55 zid, blame this on Mike Riley who speced the fingerprint 16:30:55 select blocks until a socket becomes ready to write/read 16:31:09 zid, he is well known for making inconsistent/incomplete/confusing fingerprints 16:31:17 he is also well known for making a lot of fingerprints 16:31:17 Can I make my own somehow? 16:31:24 yes, you can 16:31:29 All əf ðəm are usəbəl in Engliʃ. :-P 16:31:30 cfunge is extensible to new fingerprints 16:31:32 zid: Write a spec and hope people implement it. :-P 16:31:35 I'm kinda back to where I started actually, adding my own symbols to funge 93 :P 16:31:44 zid, sure, just make a text file and describe what each one does. Then publish it and hope someone implements it 16:31:46 oh and for cfunge yes 16:31:55 I think ais523 can describe it from a user viewpoint 16:31:58 better than me 16:32:14 (since I know the code so well, what with having written all of it) 16:32:25 see src/fingerprints/*.spec 16:32:26 I just wanna know how to write the glue 16:32:30 k 16:32:42 zid: it's basically a fingerprint description file, plus one C file that does the implementation 16:32:49 ais523: works for me 16:32:52 zid, these files are used to generate 1) a skeleton file for the fingerprint 2) the table of the fingerprints used when loading them 16:32:58 there are two scripts in tools/ for that 16:32:58 How is that any more extensible than any other interpreter 16:32:59 it just takes n ints and you cast them and call the right thing? 16:33:14 tools/gen_fingerprint.sh and tools/gen_fprint_list.sh 16:33:33 zid, for SOCK? Err the fd and the ID isn't an 1:1 mapping 16:33:40 I meant in general 16:33:42 I use a lookup table there. 16:33:46 how one goes from a befunge stack to a C call 16:34:05 zid, oh it doesn't work like that. It is an interpreter, not a compiler remember 16:34:14 doesn't have to be 16:34:16 rather you a passed an instruction pointer structure 16:34:31 which contains pointer to stack and such 16:34:41 see src/stack.h for functions to work on the stack 16:34:48 push/pop and so on 16:34:51 sounds a bit silly to me imo 16:34:57 zid, which bit? 16:35:01 the method 16:35:03 the instruction pointer bit? 16:35:06 Why 16:35:08 that is because you can have several of them 16:35:12 in concurrent befunge 16:35:14 I'd just pass an int * :P 16:35:25 zid, how would you know what the top was then... 16:35:25 There's more to the interp than a stack. 16:35:31 Er. 16:35:31 yeah a lot more 16:35:38 to the instruction pointer* 16:35:48 mine did just that, infact 16:35:55 -93, I take it. 16:36:02 stack is { size of allocated block of stack, current top element, pointer to the data block } 16:36:02 yea, I have no idea what 98 is 16:36:11 mine was literraly switch 'C': C(); 16:36:11 zid, 98 is a lot more complex 16:36:15 Yea, -93 is an order of magnitude or two simpler. 16:36:29 and C just had a protocol that correctly handled the ABI for popping/unpopping values 16:36:31 zid, and you can have a much larger funge-space 16:36:37 than 25x80 16:36:45 my 93 never stuck to that 16:36:52 * zid goes to read the wiki page 16:36:57 cfunge is either (2^32)x(2^32) or (2^64)x(2^64) 16:37:02 depending on compile time option 16:37:18 why is passing a pointer to the stack so unpossible? 16:37:29 Because more info is needed than just that stack. 16:37:41 yep 16:37:51 Is there something bad about passing a pointer to a structure which contains a stack? :-P 16:37:54 the current position of the IP, the current storage offset, loaded fingerprints, ... 16:38:00 oh and the stack-stack 16:38:02 you forgot that 16:38:12 I don't think anybody forgot anything 16:38:17 zid doesn't know about non-93 16:38:23 ah right 16:38:28 I just know the little symbols 16:38:32 if he didn't know, he couldn't forget 16:38:44 befunge-98 has a stack of stacks, normally you work with the top stack like in befunge-93 16:38:53 but you can push a new stack too 16:38:58 and pop the top stack 16:39:00 my operators were just C functions like I said 16:39:10 So are AnMaster's? 16:39:20 I mean literally just C functions 16:39:26 So are AnMaster's? 16:39:27 I use the program stack as befunge's stack 16:39:29 well, the simpler ones are inlined in the switch block 16:39:32 Ah 16:39:38 zid, how would you push on that stack...? 16:39:42 not using C+ 16:39:44 AnMaster: 'push' 16:39:45 s/+// 16:39:48 zid, oh asm... 16:39:49 right 16:40:06 there were only 2 opcodes that actually modified the stack afterall 16:40:11 zid, well, considering that the x86_64 calling convention is to pass arguments in the registers this would be messy 16:40:17 I'm not developing for only x86 16:40:25 in fact I hardly work on 32-bit x86 at all 16:40:28 you can use whatever calling convension you like 16:40:34 as long as you don't try to call libc with t 16:40:34 most of the time I work on either x86_64 or sparc 16:40:42 zid, it wouldn't be portable 16:40:46 SPARC? O_o 16:40:47 wouldn't work on, say, ppc 16:41:00 Deewiant, yes, I have ssh access to one. Useful to test for endianness issues 16:41:05 AnMaster: just trade your r15 or whatever the stack reg is out for the original 16:41:19 mine reloaded the stack register when needing to enter back into libc code 16:41:43 zid, I'm not doing asm in general! There is one place I do have a fast-track SSE version, with a C fallback if it isn't supported 16:41:45 but that is it 16:41:49 Micro-optimization <3 16:42:07 I also implemented an emulator using page faults 16:42:15 to service writes to IO ports the page fault handler did them 16:42:20 zid, talk with fizzie instead then :D 16:42:27 he is working on jitfunge after all 16:42:40 catching sigsegv to detect when he needs to grow the befunge stack 16:42:42 and what not 16:43:01 It's almsot entirely how NTVDM works actually 16:43:58 I've managed some pretty impressive crashes in NTVDM before now 16:44:15 so yea anyway, reloading rsp with a value returned by malloc and letting befunge opcodes use an x86 stack transparently is win 16:44:16 although even just running the DOS version tar causes it to crash when tar exits, for some reason 16:44:24 zid, anyway: http://catseye.tc/projects/funge98/doc/funge98.html 16:44:48 heh nice coordinate system 16:44:53 cartesian 16:45:00 hm? 16:45:03 with y flipped 16:45:12 well yes, but that is what befunge-93 has too iirc? 16:45:13 AnMaster: has 4 quadrents 16:45:16 no 16:45:17 for g and p 16:45:19 yes it is 16:45:22 befunge doesn't do negative coords 16:45:22 well 16:45:26 zid, true 16:45:33 but it is the same for the positive quadrant basically 16:45:41 yea, it just extends it 16:45:43 except limited to 25x80 16:46:07 I prefer 93 still so far 16:47:12 http://www.zachtronicsindustries.com/kohctpyktop/kohctpyktop.htm 16:47:14 Played that? 16:47:25 I had great fun learning to play it 16:47:57 I liked the earlier one about alchemy 16:48:01 AnMaster: Oh, can you fork() in 98? 16:48:05 that'd get round the need for select 16:48:11 Deewiant: that one was hard :/ 16:48:17 getting it all in sync was a pain in the ass 16:48:23 zid, there are *threads* but they are not OS level threads 16:48:25 I only got to like level 7 16:48:29 you could run with system() though 16:48:32 using = 16:48:36 I thought this one was much harder, maybe I just wasn't interested enough :-P 16:48:36 lame 16:48:37 I gues 16:48:38 guess* 16:48:48 ATHR not done yet, I take it. 16:48:48 zid, so spec an improved fingerprint 16:48:50 Deewiant: Harder for different values of hard 16:48:57 Deewiant, ATHR is mostly complete 16:49:02 Deewiant: frst one was just stupidly fiddly, this one is hard because I didn't know any EE 16:49:02 but it is efunge only 16:49:27 let's extend brainfuck with i/o ports yarr! 16:49:27 Deewiant, the actual fingerprint interface is missing, but almost all the core parts needed to support it are done. 16:49:28 I didn't find it fiddly 16:49:46 Deewiant, and, I haven't implemented SOCK for efunge yet. 16:49:48 ATHR would of course imply fork of a sort. 16:49:58 Deewiant, it does imply async threads though 16:50:09 That doesn't matter, you just need to finish ATHR so that CCBI can do it. :-P 16:50:12 or at least highly recommends. 16:50:24 Deewiant, yeah, but first the mine sweeper 16:50:42 You know, people seem to be pretty unanimously annoyed by my digraφ antics. 16:50:53 unicode funge? 16:50:54 * AnMaster writes in literate befunge 16:50:56 Deewiant, ^ 16:51:05 Warrigal: I'm not. 16:51:06 ßut it's so cool! 16:51:06 befunge is well suited to literate programming. 16:51:14 æverybody should use utf-8 16:51:15 zid, efunge uses unicode IO 16:51:15 zid: You're doing it wrong 16:51:17 just as well as TECO is 16:51:18 but not for file loading 16:51:23 Yay, someone's not annoyed! 16:51:46 MØØSE! 16:51:55 Warrigal, which ones? I extended the pikhq/GregorR-correction script to include your stuff too 16:52:03 oh, no one here does J i supposed? 16:52:04 so I don't notice it yet 16:52:07 Hmm, let me compile an alphabet. 16:52:10 s/yet/any more/ 16:52:20 game16, iirc ehird does 16:52:31 if you mean the programming language J 16:52:35 I should just extend 93 with sockets 16:52:36 yeah 16:52:44 zid, what is wrong with 98 in general? 16:52:46 well, no one in this room now 16:52:52 all you need is a better SOCK 16:52:58 something I have been working on too 16:53:00 but not finished 16:53:04 NSCK 16:53:10 was/is the planned name 16:53:14 a b c ĉ d ð e ə f g h i j k χ l m n ŋ o p φ ψ q r ɚ s ʃ t þ u v w x y z 16:53:15 it will support ipv6 too 16:53:17 AnMaster: I just like the idea of spatial programming, not funge* 16:53:40 I'd write my own character set but befunge's is adequate 16:53:42 36 letters, I think. 16:53:51 All of them have uppercase forms except ɚ. 16:53:54 zid, try trefunge? Though then I guess you are stuck with pyfunge and/or rc/funge 16:53:55 hm 16:54:03 lifthrasiir, does pyfunge handle trefunge yet? 16:54:05 I don't remember 16:54:11 My friend implemented trefunge 16:54:27 zid, that is a part of funge-98 16:54:33 Trefunge-93, I take it 16:54:36 une/be/tre are described there 16:54:40 Deewiant, hm that exists? 16:54:42 Deewiant: yea 16:54:52 AnMaster: Not officially, but it's not exactly unobvious 16:54:56 * zid writes a fungeoid 16:58:45 would it be sane to limit mine count to X*Y-1? 16:59:05 X*Y, at least. 16:59:11 Deewiant, that would mean all mines 16:59:25 which would make the "initial not a mine" impossible 16:59:40 I'd limit it to x*y/x+y 16:59:46 err? 16:59:48 why 16:59:53 For luls? 17:00:06 I assume that parses at ((x*y)/x)+y ? 17:00:12 no 17:00:23 (x*y)/(x+y) 17:00:24 zid, then you were missing some parentheses 17:00:26 :P 17:00:36 That's a quite anal limitation 17:00:37 Correct 17:00:50 x y * x y + / 17:00:53 maybe 17:00:54 :P 17:01:00 polish notation? 17:01:05 reverse such yes 17:01:15 I never did get that, but also, i've never tried 17:01:16 zid, same as dc 17:01:26 or do you use bc to calculate stuff with? 17:01:27 And, incidentally, valid Befunge code 17:01:38 If x and y are digits 0-9 17:01:58 FireFly, valid befunge-98 code too, but x and y there aren't going to do what you want 17:02:17 assuming that is the whole program it will freeze on the x 17:02:23 since you just set the delta to 0,0 17:02:37 Well, if x and y were digits, it'd do the same equation 17:03:11 someone got a test file I can use? 17:03:15 my funge interp is ready to roll 17:04:06 93 or 98? 17:04:13 try Mycology, it can test both, although it's designed for 98 17:07:36 93, which file? 17:07:48 the .bf ones? 17:07:57 zid, same file, the 93 area is the first 25x80 17:08:02 so it assumes you follow that 17:08:08 otherwise you can just cut out that bit 17:08:12 and save it to another file 17:08:23 the *.bf are used for it to 17:08:25 too* 17:08:47 I just want a little file that uses all the operators 17:08:52 ... 17:08:59 +-*/@ 17:09:00 There you go 17:09:04 ta :P 17:09:05 hah 17:09:05 If it doesn't crash, you're fully compliant 17:09:31 Now I have to get sidetracked writing funge! oh noes 17:09:42 If you want a proper test, get Mycology as mentioned. 17:09:50 that tests 98 17:10:00 It also tests 93. 17:10:22 let's try 17:10:24 An essentially full Befunge-93 test suite fits in 80*23 IIRC. 17:10:33 (Might've been 80*24) 17:10:45 Including relatively verbose messages and error handling, of course. 17:14:38 > show "ŋ" 17:14:38 -!- augur has quit (Read error: 104 (Connection reset by peer)). 17:14:40 "\"\\331\"" 17:14:47 Deewiant, about ATHR, remember efunge is the reference implementation there. ;) 17:14:52 > "ŋ" 17:14:53 "\331" 17:14:54 -!- augur has joined. 17:16:44 Firefox 3.5 comes out today. Whoo. 17:16:51 s/comes out/came out/ 17:16:56 pikhq, ah... 17:17:07 so that is why the internet is so slow :P 17:17:18 ~ 17:17:37 does it? 17:17:38 Hmm 17:17:45 I might have to stop using minefield 17:18:54 never! 17:21:51 Not in portage *quite* yet. 17:22:25 (mozilla-firefox-bin-3.5 is there, but hardmasked; mozilla-firefox-3.5 and xulrunner-1.5 aren't up yet) 17:26:02 when talking about a graph, do you say "axes" or "axises"? 17:26:06 or something else 17:26:09 for the plural form 17:26:16 Axes. 17:26:51 Axen. 17:26:55 Long "e", BTW. 17:33:54 pikhq, ? 17:34:07 is it different from plural of axe? 17:34:19 Yes, it's pronounced differently. 17:34:32 pikhq, not sure what you mean with long e 17:34:36 example of other such word 17:34:46 Cheese. 17:34:57 ah 17:35:23 Ok, I think I invented a fully literate befunge programming style... 17:35:26 interesting 17:38:54 Befunge is quite easy to do literate programming in... 17:39:02 possibly even easier than TECO 17:39:13 It's easy in TECO? 17:39:19 (when using comments that don't look like label names, ! in TECO is effectively toggle-comment) 17:48:15 when coding C or a similar language would you write: if ((x > MINVAL) && (MAXVAL > x)) or if ((x > MINVAL) && (x < MAXVAL)) 17:48:19 or some other varaint 17:48:22 variant* 17:48:44 Deewiant, ais523 ^ 17:49:07 The latter 17:49:14 Deewiant, what do you think of this: 17:49:16 ^ < < 17:49:16 v> 001-g : 3 w> fb+\ w> 17:49:16 >v^ >^ >^ 17:49:35 the arrow at the top goes to error handing code 17:49:40 I don't know, what should I think 17:49:47 Looks like Befunge to me :-P 17:49:50 Deewiant, I like the reversing bit :P 17:49:54 swapping* 17:50:10 Deewiant, makes the code flow a look a lot nicer than having to handle w going off the other way 17:50:15 in the second test 17:50:30 Yes, \ can make the results of w easier to deal with 17:50:43 Deewiant, prettier in this case 17:51:30 Deewiant, btw, assuming some befunge without ` and w, how would you test for "greater than" then 17:51:35 I assume it is possible 17:51:39 just can't think of how 17:52:06 Loop which does "1-" up to some maximum time, with a :#v_ -style test to break the loop if the result is 0. 17:52:06 method should work for both negative an positive integers 17:52:07 Bit math works if you can sacrifice portability 17:52:13 fizzie, fails for negative? 17:52:29 AnMaster: Negatives wrap. 17:52:30 assume user provided both integers 17:52:46 (and you somehow can't know if it is negative or positive) 17:52:56 Deewiant, only if you don't have a bignum befunge 17:53:14 With a bignum interpreter I don't think it's possible 17:53:20 hm 17:53:24 Since bit math would presumably not work either. 17:53:56 Deewiant, those are in fingerprints only iirc 17:54:04 Keep on dividing by 2, if x-1 is 0 it was positive if x+1 is 0 it was negative? 17:54:15 AnMaster: Bit math can be done with / and %. 17:54:18 Deewiant, that could work 17:54:24 in a bignum one too right? 17:54:35 Yes, that's what I was going for 17:54:47 Deewiant, then why " Since bit math would presumably not work either." 17:54:50 Just ask the user to input the smaller (or larger) number first. Impolite users get infinite loops, but that's their own fault. 17:54:58 fizzie, hehe 17:55:00 AnMaster: Why what? 17:55:10 Deewiant, why wouldn't bit math work? 17:55:25 Because we can't assume that we can get at the sign bit eventually 17:55:33 Since there probably isn't one in the traditional sense. 17:55:52 But I guess that's essentially what my above solution does. 17:55:59 Deewiant, oh you are assuming two-complement? 17:56:03 Yes. 17:56:17 Deewiant, is that signed or unsigned div/mod? 17:56:22 because afaik befunge only has signed ones 17:56:26 Signed, of course. 17:56:39 Or you meant for the bit math? 17:56:46 Given that Befunge-93 was supposed to ask the user for the result in case of 0/, I rather like any "ask the user" solutions. 17:56:54 Deewiant, for bit math 17:57:08 Then it has to be unsigned, true. 17:57:31 Deewiant, so that method won't work in any sort of befunge then with no fingerprints 17:57:43 Yep. 17:57:52 was that "yep it will"? 17:58:13 Yep, it won't. 17:58:22 It'd work for positives only. 18:03:25 Deewiant, who made FIXP? 18:03:33 Mike. 18:03:45 Deewiant, oh right, that fingerprint listing isn't alphabetical 18:03:47 that explains it 18:04:01 FPSP FIXP FRTH 18:05:55 Too bad k behaviour is not defined for negative arguments. If it were specced so that "k ignores the instruction if the count is <= 0" you could use that for negativity-testing. 18:06:24 I think you can still (ab)use { for that, as long as you don't mind pushing |n| numbers on the stack. 18:07:41 y pushes the full sysinfo given <= 0 18:07:54 So that works too 18:07:57 you'd need to use the stack stack to plausibly get rid of it again 18:08:12 k$ works as well 18:08:13 fizzie, cfunge reflects on negative argument to k iirc 18:08:45 Deewiant, some may do abs(Count) iterations iirc 18:08:49 for k 18:08:54 so wouldn't work 18:09:08 None do that I know of, it's just a possible message in Mycology 18:09:13 Deewiant, ah 18:09:22 Deewiant, I think very early revisions of cfunge did that 18:09:25 In any case, it was in reply to ais523, not as a negative number test. 18:09:38 AnMaster: I seem to recall you complaining that nothing does that so why is the test there :-P 18:09:39 why would you need k$ 18:09:41 just use n 18:10:00 AnMaster: Now your `-workaround has the side effect of clearing the whole stack :-P 18:10:02 Deewiant, maybe I misremember there 18:10:14 Deewiant, `-? 18:10:26 AnMaster: "greater than instruction"- 18:10:31 ah 18:10:41 that ` yeah 18:10:52 Deewiant, I hardly ever use `, w is often a lot simpler 18:10:54 wish C had it 18:11:16 that would be a three-way if or something 18:11:25 I hardly ever use w, because ` is often a lot simpler. (Generally I have just two cases, and I dislike the goes-three-ways thing.) 18:11:27 without any else block 18:12:03 With ` I never remember which way it compares, with w it's more obvious to me 18:12:45 I just like #v_ since it's "forward or down"; with w (entering from left) there always needs to be something above the line too. 18:14:57 Deewiant, hm TOYS: "S ('chicane') pops two vectors off the stack, then a cell, then fills that area of Funge-Space homogenously with that cell's value. " 18:15:14 you interpret it as first vector Position, second is width/height? 18:15:16 right? 18:15:20 I was outside! 18:15:24 Yes, IIRC. 18:15:27 Deewiant, however I think that is unclear 18:15:30 And yes, it's not well specified. 18:15:33 from that description 18:15:50 If Fortran had Perl's <=> operator, you could write "GO TO (1,2,3), 1 + (A <=> B)" to get a w-like thing; it goes to line 1, 2 or 3 if A is (respectively) smaller than, equal to or greater than B. (But it doesn't have that operator. You can define a comparison function, though.) 18:16:14 Computed goto? Sweet. 18:16:23 Deewiant, so what will taking that as two (storage offset relative) positions in funge space and then filling the block inside them do in mycology? 18:16:30 Deewiant, I guess it handles it and does UNDEF? 18:16:31 ;P 18:16:35 I used the computed-goto in my Fortran Befunge-93 interpreter. :p 18:16:48 I guess it says BAD, not sure. Why don't you run it and see if it says GOOD now? 18:16:52 If it says GOOD now, it expects that. 18:16:59 Deewiant, I don't implement it that way 18:17:02 I don't think there are any cases which can be both GOOD and UNDEF. 18:17:05 I was just considering, "what if" 18:17:16 Where's my medal? 18:17:21 AnMaster: Yes, I know, and that's what I assumed as well. 18:17:34 fizzie, what does <=> do in perl 18:17:38 If you'll read what I said, I did mean running it with what you've currently got that works (cfunge) 18:17:44 Deewiant: http://pastebin.com/m585c7f7e 18:17:44 AnMaster: sign of difference 18:17:47 ah 18:17:51 AnMaster: Returns -1, 0 or 1. 18:17:58 fizzie: :-) 18:18:03 Deewiant, ah right 18:18:44 -!- nooga_ has quit (Remote closed the connection). 18:18:51 Deewiant, GOOD: S works 18:19:01 So then it'll say BAD for the other. 18:19:05 right 18:19:12 Deewiant, might be better to keep it that way 18:19:27 The second GOTO is possibly even sillier. "GOTO FOO, (1,2,3,4)" is an assignable goto; you can write "ASSIGN 2 TO LMOV" after which it will do "GOTO 2"; but you can only assign one of the possible numbers listed there. 18:19:43 Deewiant, or we will soon end up with almost everything UNDEF 18:19:43 Er, "ASSIGN 2 TO FOO". (LMOV was the name in the paste.) 18:19:47 :-) 18:20:20 fizzie, is there an "any target" variant? 18:20:40 I think just "GOTO FOO" without the list is like that. 18:20:51 heh 18:20:54 But! There *is* a built-in three-way IF in fortran. 18:21:01 fizzie, there is? 18:21:13 "IF (numerical_expression) snr1, snr2, snr3" will jump to snr1 if the expression is negative, snr2 if zero, snr3 if positive. 18:21:15 if (a) {} else {} else {} 18:21:20 * zid likes the ? operator 18:21:30 a ? x : y : z 18:21:46 that would be nice 18:21:53 a quaternary operator right? 18:21:59 AnMaster: just use two ? operators :P 18:22:06 macro + two ? = quad 18:22:25 zid, the whole discussion was about "wish we had befunge-98 w in C or similar" 18:22:28 so that's irrelevant 18:22:50 of course you can write it differently 18:26:04 W() 18:26:06 there ya go 18:26:19 It's tricky to write that W macro so that it wouldn't evaluate the test twice. 18:26:34 this is true 18:26:37 Or alternatively potentially conflict with some name. 18:26:41 use {int r = } 18:26:48 make a new block 18:27:01 That still breaks if your expression uses a variable "r". 18:27:06 hm I should make my minesweaper depend on nested k 18:27:08 or not? 18:27:13 In a sensible language you could just... 18:27:14 > (define-syntax compare (syntax-rules () ((_ exp neg zero pos) (let ((e exp)) (cond ((< e 0) neg) ((= e 0) zero) (else pos)))))) 18:27:14 > (compare (- 4 6) 'is-negative 'is-zero 'is-positive) 18:27:14 is-negative 18:27:16 : parse error on input `=' 18:27:16 : 18:27:16 lexical error in string/character literal at chara... 18:27:29 lambdabot: It was a bit of Scheme, I wasn't talking to you. 18:27:51 fizzie, clean macros? 18:27:58 fizzie: use an UPPER_CASE_VARIABLE I guess 18:28:11 zid, wouldn't work for nesting the macro 18:28:12 Yes. The macro system does the necessary magic so that the "e" there does not conflict with anything. 18:28:35 fizzie, ah, I only used the old style scheme macros 18:28:42 schemeeing buggers 18:28:45 There you can usually gensym, then. 18:28:56 fizzie, yeah, but the clean ones look a lot nicer 18:29:30 hm... We need a "befunctional" just to annoy zid :D 18:29:37 I don't know how it would work 18:29:41 haven't worked out the details 18:30:43 meh 18:30:45 brb 18:30:46 A bit nicer, anyway. It's not that horrible with gensym either. (define-macro compare (lambda (exp neg zero pos) (let ((t (gensym))) `(let ((,t ,exp)) (cond ((< ,t 0) ,neg) ((= ,t 0) ,zero) (else ,pos)))))) 18:30:58 (For Gambit-C's define-macro, anyway.) 18:31:28 Have to prepare some food now though. 18:31:39 grasshoppers on toast 18:32:08 FYI #proglangdesign #ltu 18:34:08 Associat0r, uh? who are you talking to 18:34:29 moon people 18:40:41 -!- augur_ has joined. 18:40:41 -!- augur has quit (Read error: 104 (Connection reset by peer)). 18:55:45 MOOOON PEOPLE 18:55:49 MOON MOON MOON MOON PEOPLE 18:56:12 we had a moon person in here a while ago 18:56:18 at least, someone who thought they were 18:56:53 * pikhq wants to move to the moon 18:57:06 -!- jix has quit (Read error: 113 (No route to host)). 19:03:37 -!- kar8nga has joined. 19:21:26 -!- kar8nga has quit (Read error: 60 (Operation timed out)). 19:22:39 -!- kar8nga has joined. 19:27:20 hm 19:27:30 should I use SUBR or not in that minesweaper 19:27:33 sweeper* 19:27:44 it does feel a bit like cheating, yet it is a lot simpler 19:27:48 what do you think Deewiant 19:28:19 actually, it will mess up my storage offset. Not a good idea. 19:30:13 * AnMaster invents call lanes, on the call highway. 19:30:23 err 19:30:38 * AnMaster invents call lanes, on the befunge highway. 19:30:40 is what I meant 19:33:11 or I guess you could call it control flow bus 19:48:44 Deewiant, about SUBR... is "Vectors in this function work directly on the IP and not through funge-space, therefore the IP storage offset does not apply to these vectors. " a new addition by Mike? 19:48:47 and wth does that mean 19:48:59 which one 19:49:19 No idea, neither Mycology nor CCBI have been updated to reflect that 19:49:33 It was a result of your discussion with him about SUBR's offset-interestedness 19:49:54 Deewiant, tha absolute/relative O/A was your "fault" iirc 19:50:00 Deewiant, oh it might be that return address being pushed absolute 19:50:03 I think 19:50:08 which is what cfunge does anyway 19:50:17 since it doesn't make sense to have that relative ever 19:50:30 (since that would mess up return if storage offset was changed) 19:50:43 (and it makes sense to have a sub routine for changing storage offset IMO) 19:51:06 No matter how it's done, some sequence of changing/not changing storage offsets will cause it to subtly break. 19:51:32 Deewiant, pretty sure it that is not the case 19:51:45 for return 19:51:58 Deewiant, just using the absolute mode solves it 19:52:00 I meant all of SUBR. 19:52:14 Deewiant, just use the absolute mode for the calls... 19:52:37 AnMaster: So now that code isn't position-independent. 19:52:49 Deewiant, it wasn't size independent before 19:53:05 Size? What? 19:53:06 Deewiant, and anyway I have fixed data relative my storage offset here 19:53:51 Deewiant, if a SUBR function grows and you need to move something else, you need to adjust the calls to use the new position and such 19:54:19 unless you use some SUBR/call lanes hybrid 19:54:32 that is calling a global table and following arrows from there to the real function 19:54:39 But that's all your own code. Something like slowdown.b98, which can't know what it gets, will break SUBR. 19:55:00 Deewiant, sure. But slowdown will always break stuff 19:55:17 Deewiant, I change my storage offset early on here to be 0,-27 19:55:23 It breaks stuff that relies on an initial (0,0) offset 19:55:29 Or absolute addressing 19:55:53 Deewiant, I think it is perfectly sensible to rely on that in most befunge-programs 19:56:42 On an initial (0,0) offset, yes. Relying on absolute addressing to work is inviting trouble if your program grows a lot. 19:56:45 Deewiant, my idea was this: http://pastebin.ca/index.php 19:56:52 but then I realised it won't work well for returns 19:57:00 index.php, really 19:57:03 err 19:57:07 Deewiant, copy fail 19:57:16 http://pastebin.ca/1479852 19:57:18 was what I meant 19:57:57 Deewiant, those are modules, there will only be one entry point 19:58:09 but some modules may be called from several places 19:58:17 and that is where it breaks 19:58:40 so new idea is same, but at the top have some row like: vvvvvv 19:58:46 and then absolute SUBR jump to there 19:58:54 and let SUBR handle the return stuff 19:59:01 Deewiant, does that seem sane to you? 19:59:08 Sure, why not 19:59:22 Deewiant, how would you solve it 19:59:59 Why not SUBR directly? 20:00:16 Deewiant, because the position you should jump to will change as the code grows 20:00:32 it doesn't matter if you use relative or absolute 20:00:38 but the y coord will grow 20:01:21 Relative works if it's relative to some point above all the functions 20:01:48 Deewiant, what happens to the functions after when one of the function grows some 20 new lines? 20:02:32 Deewiant, as far as I can see the coordinate will have to change for them then 20:02:34 Well yeah, you can't hard-code it, true enough 20:03:10 Deewiant, so I don't know about this "PIC" bit for it. PIC enough for slowdown maybe. But not PIC enough to actually be useful. 20:05:33 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 20:06:05 -!- zid has changed nick to Guest2400. 20:07:53 Deewiant, oh and this is why adding new stuff like that A/O for SUBR is bad. I'm using FING to pick from various fingerprints. 20:08:16 Deewiant, adding new instructions to existing fingerprints can easily break that. 20:08:24 iirc fungot does that too 20:08:25 AnMaster: on the outer bindings. i think it got those from. 20:08:42 ^style 20:08:43 Available: agora alice c64 darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 20:09:15 There are many valid reasons for why it's bad; I debunk them all by saying that since the users are all here anyway, it really doesn't matter. Besides, changelogs exist for that sort of thing. 20:10:07 Deewiant, Is Mike here? Not a lot 20:10:41 He isn't a user, he's an implementer. 20:11:07 Besides, we know of him so it's the same thing. 20:11:08 ... 20:11:15 sigh 20:11:19 I'm a doctor, not an elevator! 20:11:35 fizzie: style? 20:11:36 ;P 20:11:55 It's a Star Trek reference; I'm not sure if that particular "not a" has been said, though. 20:12:13 ah 20:12:19 -!- nooga has joined. 20:12:20 Seriously, when you have a language with approximately 10 users and if you're capable of writing in your changelog "THIS BREAKS PROGRAMS THAT ASSUMED SUBR DOESN'T HAVE X", it really makes no difference at all what you do. 20:12:26 -!- Guest2400 has changed nick to zid. 20:12:28 fizzie, wasn't it "I'm a doctor, not a mechanic"? 20:12:37 AnMaster: Not just that. http://memory-alpha.org/en/wiki/I'm_a_doctor,_not_a... 20:12:53 huh 20:12:54 "Escalator" has been used; I may have been remembering that one. 20:13:14 so much for smart link clicking... it thought the last . was "end of sentence" one. 20:13:15 :D 20:13:35 "..." isn't probably very common in URLs. 20:14:02 indeed 20:14:19 http://www.google.com/search?q=inurl%3A... 20:15:12 meeow 20:15:17 I got really really sidetracked 20:15:18 Deewiant, no matches it says 20:15:35 Deewiant, but then it might do some mangling messing up here 20:15:50 I am a bit suspicious of that. inurl:foo.bar seems to find "foobar" and "foo-bar" and "foo/bar" even if I add quotes. It's definitely not just substring-matching there. 20:15:50 it is like trying to google after something containing literal " 20:15:54 you just can't 20:16:24 zid, oh? 20:25:41 I was supposed to be writing an interpreter 20:26:17 I wrote exactly up to the point where it was supposed to format the input for the grid, and got distracted 20:28:59 -!- sebbu has joined. 20:34:56 -!- sebbu2 has quit (Connection timed out). 20:35:37 what grid? 20:38:54 the matrix 20:39:08 (the identity matrix can be represented as a grid!) 20:44:36 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 20:45:50 -!- ais523 has joined. 20:48:01 There, funge loader finished 20:48:57 zid, 93 or 98? 20:49:41 took me 10 mins when I actually sat down and did it, like most of the code I write 20:49:51 AnMaster: both, kinda, it will support 98 when it needs to 20:50:07 atm it's capable of reading mycology.b98 and only reading the 80x25 chunk out 20:50:30 zid, there are plenty of implementations capable of both 93 and 98 20:50:35 pyfunge for example 20:50:41 python? 20:50:49 it's coded in python yes, why? 20:50:50 PYTHON? 20:50:56 what? 20:51:08 I just threw up in my mouth a little bit :( 20:51:22 cfunge has a compatiblity mode for 93 that changes the spacing rule, which tends to work well for most programs (but not all) 20:51:26 Java also provokes the same reation 20:51:30 I'm probably going to drop that 20:51:45 and ruby and visual basic 20:51:48 zid, java I can see, python isn't that bad 20:51:53 java and vb yes 20:51:53 zid: ... What languages do you know, and what OS do you use? 20:52:15 pikhq: I use mainly C, I run linux on my desktop 20:52:26 Lemme answer that: Windows RG and JavaScript 20:52:33 windows RG rules 20:52:37 ^^ 20:52:41 and windows CeMeNT 20:52:44 Yeah 20:52:47 C is awful. Except for all the other systems programming languages out there. :P 20:52:58 what is windows rg? 20:53:01 and who is zuu 20:53:03 really good edition 20:53:14 it's an implementation of windows in flash 20:53:16 AnMaster, it's the Really Good edition :) 20:53:19 it just crashes when you click things 20:53:31 Zuu! 20:53:34 Wtf are you doing here :-P 20:53:37 AnMaster, And im me... as strange as it sounds :) 20:53:40 he followed someone 20:53:43 Zuu, new here? 20:53:46 put the birdy down 20:53:53 Deewiant, dunno :) 20:53:59 anyway 20:54:08 zid, not exacly 20:54:17 pikhq, C is good for when you need the low level stuff and/or the speed. 20:54:20 AnMaster, you can say that 20:54:31 but yeah I tend to prefer other languages than C nowdays 20:54:38 http://spoonybard.org/fanlisting/dawn/zuu.jpg 20:54:42 Erlang and Scheme mostly nowdays 20:54:44 zid, it's more like i led someone here, and decided to stay myself 20:54:45 I see you're still banned at #d 20:54:46 AnMaster: Like I said. It's awful, but all other systems programming languages are worse. 20:54:47 ;) 20:54:50 AnMaster: I code for fun not to be in with crowds 20:54:53 pikhq, what other ones? 20:55:00 zid, ? 20:55:04 take haskell, i'm sure it's great 20:55:09 Hrm. There's none that are in common use. 20:55:11 if you like to masturbate to language design 20:55:12 I plan to learn it when I get some time 20:55:21 zid: Haskell is fun. 20:55:28 but is it.. useful? 20:55:30 And mind-bending. 20:55:34 Highly. 20:55:38 Deewiant, oh! Well even if i werent i wouldnt come back till someone has removed JimPanic :) 20:55:39 pikhq, C mixed with some asm is what is used for kernels mostly 20:55:49 AnMaster: Yeah. 20:55:52 I've never seen anything written in haskhell, just people teling me how awesome something would be when written in haskell 20:55:52 zid, i get that a lot (the birdie) 20:56:16 Zuu: Still? :-P 20:56:28 Deewiant, still? 20:56:32 is that thing a bird 20:56:38 looks like a blur to me 20:56:42 I mean, the ban was years ago 20:57:00 Deewiant, that long? Sneaky 20:57:01 well, blur with unsharp mask filter 20:57:06 Zuu: Wasn't it? :-P 20:57:08 zid: It's ridiculously nice to program in and has a very nice FFI. 20:57:16 I'm going to call that 'useful'. 20:57:16 Deewiant, i dont really remember :) 20:57:23 Oh, and GHC is a rather speedy compiler. 20:57:31 Zuu/zid what is that bird supposed to be 20:57:33 Erm. s/speedy/good/ 20:57:44 I guess this is some popular culture reference I'm missing again... 20:57:47 Also, infinite lists. 20:57:51 Deewiant, but there does exist a channel in which i have been banned for 3 years with even less reason than from #D :P 20:58:05 Zuu: Go to #c++. 20:58:11 AnMaster: It's.. a zuu 20:58:17 AnMaster, apparently its a monster called Zuu (from some game) 20:58:23 Zuu, ah I see 20:58:26 what game? 20:58:36 * Zuu doesnt know 20:58:39 any using monsters from mythology 20:58:47 pikhq, i dont want to :) 20:58:51 they're in a half dozen rpg games, final fantasy has them in a few 20:58:57 zid, um, I played plenty of rpgs with no "zuu"s 20:59:00 Zuu: Good choice. 20:59:19 (fantasy rpgs I mean) 20:59:34 AnMaster: I doubt it, you probably just didn't notice them because they're not a major boss or something. 20:59:36 never final fantasy though 20:59:55 it's a GregorR! 20:59:58 GregorR-L, depends on what sort of rpg. Ever played avernum? I had it on my old mac. 21:00:04 Nope 21:00:07 unusual fantasy rpg/adventure mix 21:00:09 very very good 21:00:23 I am thinking it might be related to http://en.wikipedia.org/wiki/Zu_(mythology) which is a bit different spelling. 21:00:25 graphics were simple isomeric, but it really excelled in depth of the game play 21:00:27 GregorR is a monster from.... erhm, real life! 21:00:32 Gwar 21:00:36 and a very very extensive game world 21:00:45 BTW I'm going to Italy at the end of this week whooooooooh 21:00:54 Oh hey, anybody here Italian? Genova area? 21:00:55 oh and not the old dwarfs/elves, but completely custom replacements 21:01:14 Is Avernum related to that Exile stuff? It seems so. 21:01:20 fizzie, yes! 21:01:39 fizzie, avernum is much better than exile (I played both) 21:01:53 a remake yes, but very good 21:02:05 fizzie, you played exile? 21:02:43 At least one of them. I don't really remember any details, though. 21:02:55 fizzie, there has been several computer games named exile though 21:03:09 http://en.wikipedia.org/wiki/Exile_(video_game_series) is the relevant ones in this case 21:03:16 Yes, one of those. 21:03:53 fizzie, to begin with avernum looks much better and has a easier to use interface. http://en.wikipedia.org/wiki/File:Avernum3_Screenshot.PNG 21:04:26 -!- kar8nga has quit (Remote closed the connection). 21:04:32 * AnMaster hasn't played avernum 4 and later 21:05:12 Universe of bear hatchery says Hello. World!. 21:05:14 I don't think I played more than just the unregistered sharewarey parts of the Exile thing. 21:05:39 It powers the marshy things; 21:05:41 fizzie, ah, I played the full ones after that. 21:05:44 :) 21:05:51 the power of the snowmelt overrides. 21:07:11 pikhq, what the hell are you talking about 21:07:22 Google points to http://scienceblogs.com/goodmath/2007/01/programs_as_poetry_fishy_progr.php 21:07:33 AnMaster: I'm talking about the reproductive behavior of salmon. 21:07:44 pikhq, homerun? 21:07:50 HOMESPRING. 21:07:54 ah that was it 21:08:28 fizzie, there was this "blades of avernum"/"blades of exile" thingy, where you created your own scenarios... I implemented game of life in blades of avernum (blades of exile was way too primitive for that) 21:08:34 "Homespring, alternatively HOtMEfSPRIbNG, ..." The alternative abbreviation does not seem too pleasant. 21:08:38 I still has that somewhere if anyone is interested... 21:09:20 FireFly, the alt one seems like nonsense to me? 21:09:36 apart from the bit "hot" 21:09:44 It's from the full name. "Hatchery Oblivion through Marshy Energy from Snowmelt Powers Rapids Insulated but Not Great." 21:09:59 uhu 21:17:39 hm 21:17:42 interesting: 21:17:57 $ echo $(( 2 + 2 )) 21:17:57 4 21:17:58 $ echo $(( 2 + 2 ) ) 21:17:58 bash: 2: command not found 21:18:04 I wonder what this means for parsing 21:18:14 ais523, ^ 21:18:24 long lookahead right? 21:18:41 could be 21:18:43 why not check the source? 21:19:03 ais523, bash is in K&R/ANSI C... 21:19:07 as in, no prototypes 21:19:16 and K&R style argument list 21:19:18 and so on 21:19:26 ais523, it is really quite messy code 21:19:30 I'd rather not 21:19:51 ZSH FTW. 21:20:14 pikhq, why not just use emacs instead if you are going in that direction anyway 21:20:15 :P 21:22:29 I use Emacs and Zsh. 21:22:44 Emacs is the Emacs of editors, and Zsh the Emacs of shells. 21:28:32 yope 21:28:59 -!- mercibeaucul has joined. 21:30:26 -!- mercibeaucul has left (?). 21:32:22 pikhq, yeah I like it for editor, but for shell? nah 21:32:30 bash 4 has the stuff I was missing 21:32:38 (associative arrays) 21:32:43 so now I'm happy 21:34:14 -!- GregorR-L has quit (Read error: 110 (Connection timed out)). 21:34:52 -!- comex has quit (Remote closed the connection). 21:36:44 hm 21:36:56 Deewiant, what would you think about an extended SUBR? 21:37:04 it would include first class functions 21:37:29 Call it λ 21:37:37 Deewiant, so you could for example implement mapping a function over a funge-space block with this 21:37:47 Deewiant, that's a bit tricky to load 21:38:04 Why is it tricky to load 21:38:06 what are the 4 letter code for that utf-8 or unicode 21:38:10 s/are/is/ 21:38:24 Codepoint 0x3bb, encoded as 0xce 0xbb in UTF-8 21:38:40 Deewiant, a bit tricky to work with in the editor at least 21:38:49 since stuff won't line up 21:39:04 if you interpret it as 8 bit chars 21:39:10 Just edit in non-UTF-8 mode :-P 21:39:20 Deewiant, those aren't printable ones? 21:39:35 "Printable ones"? 21:39:38 chars 21:39:41 I mean 21:39:43 can't be 21:39:46 -!- jix has joined. 21:39:54 Pick an arbitrary encoding, they're bound to be printable in one 21:39:59 hah 21:39:59 It really doesn't matter 21:40:06 Deewiant, ISO-whaterver 21:40:10 that normal ISO one 21:40:11 in Europe 21:40:17 ISO-8859-1 21:40:20 right 21:40:21 that's it 21:40:26 wait, isn't that the cd one? 21:40:34 -!- KingOfKarlsruhe has joined. 21:40:42 λ is what you'd get there 21:40:50 Perfectly printable 21:41:05 hm 21:42:23 or, apparently, in whatever code page my windows console is in, ╬╗ 21:48:12 Asztal, that's not ISO-8859-1 21:48:32 -!- jix has quit ("leaving"). 21:48:33 Deewiant, what about in ASCII? 21:48:35 ;P 21:48:43 -!- jix has joined. 21:49:14 ais523, did you ever implement that convikt 7 bit ASCII encoding that stored it as packed 7 bytes sections? 21:49:16 ASCII is 7-bit so that is not ASCII. 21:49:17 if you remember 21:50:33 that minesweeper will take a few days I think heh 21:50:46 so far setup code and parts of input parsing is done 21:53:34 strange I haven't seen ehird all day 22:01:34 -!- coppro has quit (Read error: 110 (Connection timed out)). 22:07:13 Gawd. 22:08:37 -!- coppro has joined. 22:08:52 ehird, gah 22:08:59 What? 22:09:05 ehird, btw how goes that befunge implementation you were working on 22:09:24 "gah" what? 22:09:36 ehird, " strange I haven't seen ehird all day Gawd. ehird, gah" 22:09:43 gah = "oh no" 22:09:44 Right... 22:09:52 Well fuck you too... 22:09:53 :p 22:09:54 -!- augur_ has quit (Read error: 104 (Connection reset by peer)). 22:09:57 indeed 22:10:01 I was ill yesterday, anyway, and today got the fallout from it. 22:10:08 ouch 22:10:12 -!- augur has joined. 22:10:15 Meanwhile, the answer to your other question is the same as it's been for months. 22:10:29 ehird, I haven't asked it for weeks 22:10:43 Correct. 22:10:47 But the answer has been constant for months. 22:10:54 ehird, and I forgot the answer by now 22:11:04 I'm sure you can guess... 22:11:12 21:36:37 the guy who know J, just left? <-- if you mean oklopol, he isn't around these days, internet access problems 22:11:13 ehird, you gave up because it was too hard? 22:11:15 maybe he means me 22:11:22 AnMaster: no, I gave up because I got distracted by ooh shiny. 22:11:30 I can always return to it. 22:11:32 ehird, what was that shiny thing? 22:11:42 It was a metafour. 22:11:46 ah 22:11:50 you said that again 22:11:58 game16: Said what? 22:12:06 (5:10:52 PM) ehird: 21:36:37 the guy who know J, just left? <-- if you mean oklopol, he isn't around these days, internet access problems 22:12:36 Note the "" part; I was replying to him. 22:12:39 22:11 ehird: maybe he means me 22:40:27 08:06:12 yggdrasil?!?!?!? 22:40:28 Yeah, I jumped 22:40:43 08:07:07 cfunge it is then 22:40:47 Noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 22:40:48 oooooooooooooooooooooooooooooooooo 22:40:50 oooooooo 22:40:51 o 22:40:54 . 22:40:56 22:42:56 08:12:23 and hg/bzr/darcs all have many of the advantages of git 22:42:59 * ehird growls at ais523. 22:43:07 Don't make me rip off your head. 22:43:52 08:13:08 GregorR, cvs is still better than rcs! 22:43:55 ehird: He neglected to mention that of the two, only Hg and Darcs are usable. :P 22:43:58 But CVS is just multi-file RCS, literally... 22:44:23 pikhq: have you ever used darcs on a big project? 22:44:30 it's no speed demon. 22:44:36 git makes me swoon 22:44:54 Well, yeah. Darcs, IIRC, is written *entirely* in Haskell. 22:45:03 pikhq: it is, but it doesn't need to be slow 22:45:10 its algorithms, while clever in theory, suck shit in practice 22:45:20 and the code just makes no effort not to suck. 22:46:14 Writing it entirely in Haskell implies no effort to speed up at all. If there were efforts to do so, you'd expect good algorithms and at least efforts to make a *few* things be written in C for the sake of speed. 22:46:45 pikhq: Stop it, you're making me want to stab you. Haskell has, IIRC, beaten C in the Language Shootout. 22:46:55 With only a sprinkling of bang-patterns and IIRC no unsafeness. 22:46:58 Oh, right. I forgot. 22:47:08 GHC is a *very good* compiler. 22:47:12 Sure, if darcs was running tiny operations in a gigantic tightloop... 22:47:33 And darcs has other evidence to suggest that it's written poorly. 22:47:48 (namely, it is the bitchiness to work with) 22:47:52 Physicists don't make excellent authors of practical programs :P 22:48:03 (Without other qualifications as a programmer) 22:48:04 I know this very well. 22:48:09 Astronomers don't, either. 22:48:32 * Zuu wonders if even programmers does... 22:48:40 *do 22:48:47 08:15:06 AnMaster: it isn't untested, you just haven't asked for results from the people who tested it 22:48:51 drepper-style development 22:48:53 Some programmers do. 22:49:13 Astronomers are really insanely awful, though. 22:51:06 08:22:00 ais523: You can't view it yourself? 22:51:18 i think ais523 is boycotting the web so it goes out of business. 22:51:58 * Zuu is boycotting the business so it goes out of web 22:52:38 ehird: Which makes him even more crazy about the web than RMS. 22:53:00 (who has written a daemon that he can email URLs to and it wgets the page and emails it back) 22:53:15 pikhq: but, but, some pages on the web have ADVERTS! sure, he blocks them with adblock, but man, man, he can *feel* them! 22:53:17 Nice 22:53:32 pikhq: actually, it lynx -dumps it, I think 22:53:34 although I don't recall 22:53:45 Eh. 22:54:01 Bit eccentric, but an interesting setup. 22:54:20 maybe he treats his terminal the same way, emails back and forth :P 22:54:51 And it makes sense given that he travels a lot and doesn't always have Internet. 22:54:56 emacs over email 22:55:05 pikhq: actually, he does it while emailing in real-time 22:55:24 So he can send off interesting URLs sent to him in his email and read them later... 22:55:29 i don't know why, file under "Crazy Shit RMS Does Like That Video Where He Picks Stuff From His Feet And Then Eats It" 22:55:43 ("While Giving A Talk") 22:56:12 The email browser seems quite reasonable, if eccentric. ... Picking stuff from his feet and then eating it is just WTF. 22:56:33 actually i would find the latter more sane 22:56:46 even while giving a talk :P 22:57:14 ... Odd software choice vs. fucking eating stuff from your feet. 22:57:25 08:30:55 zid, blame this on Mike Riley who speced the fingerprint 08:31:09 zid, he is well known for making inconsistent/incomplete/confusing fingerprints 22:57:34 Deewiant doesn't appear to have many problems implementing them. 22:57:49 pikhq: Err... having intercourse with things from your feet that are eating? 22:57:56 Dude, I wouldn't got hat far. 22:57:58 *go that 22:58:01 I haven't seen him do _that_. 22:58:29 Oh _that_ he only does in secrecy 22:58:47 ehird: No, but he does have nasal plant sex. 22:59:59 Indeed — and after sourcing the exact quote again — 23:00:00 [["One of them said he was upset when you talked about nasal sex with plants." I had actually demonstrated this perverse act with the bouquet on the table, at dinner the night before I was sent home. The plants were dead, although well preserved, so I was performing rhinophytonecrophilia on them.]] 23:00:14 Truly, he is an edgy man that transcends social boundaries... 23:00:33 Transcends? No, not quite the right term. 23:00:40 Poops on. 23:00:47 incidentally, I am obligated to write a book titled "Cadaeic Lipogram". 23:00:47 "Is ignorant of them", perhaps. 23:00:48 That too. 23:01:06 Using the word-lettering scheme from Cadaeic Cadenza, and without the letter "e". 23:01:19 ehird: but Cadaeic has an e in 23:01:20 It's like various crazy hobos you see who clearly have no grasp on reality -- except with more contributions to society. 23:01:31 ais523: A title is not part of the text. 23:01:43 ais523: Just as much as "Elliott" would not be. 23:01:47 ehird: the section titles were, in Cadaeic Candenza 23:01:52 although not the title of the whole thing 23:01:56 pikhq: Sure, but that's after the intro. 23:02:16 Hah. 23:02:43 …and a farm, a track: "Unununium" 23:02:50 ↑ this should be the start of the book 23:04:31 haskell 23:17:50 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 23:22:53 -!- ais523 has quit (Remote closed the connection). 23:30:17 :> 23:31:03 -!- pikhq has quit ("Gxis la"). 23:34:40 uh huh 23:34:48 Another World downloaded 23:42:25 08:30:55 zid, blame this on Mike Riley who speced the fingerprint 08:31:09 zid, he is well known for making inconsistent/incomplete/confusing fingerprints <-- you fail at reading 23:42:34 we were talking about how stuff was missing in SOCk 23:42:37 SOCK* 23:42:39 and broken 23:42:40 yes, and I agree 23:42:51 oh and Deewiant had to reverse engineer several times he said himself before 23:50:57 Think I should put expert IRC idlers on my CV? 23:51:18 YES 23:51:31 What about my GCSE in wanking? 23:51:39 TMI for a CV? 23:51:44 zid: Both; then you'll have more jobless time to improve your wanking and IRC skills. 23:51:59 ehird: BEST - LOGIC - EVER 23:52:02 I've only been jobless for 19 years, bit longer can't help 23:52:03 ^_^ 23:52:05 err hurt 23:52:20 zid: Freudian slip hur hur 23:52:29 help it is 23:52:35 I couldn't agree more 23:54:21 -!- Pthing has quit (Remote closed the connection). 23:57:38 -!- coppro has quit (Read error: 104 (Connection reset by peer)).