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