←2007-02 2007-03 2007-04→ ↑2007 ↑all
2007-03-01
00:05:16 -!- _D6Gregor1RFeZi has changed nick to GregorR.
00:24:07 -!- nazgjunk has joined.
00:35:57 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
00:36:08 -!- UpTheDownstair has joined.
00:37:44 -!- UpTheDownstair has quit (Client Quit).
00:38:06 -!- digital_me has quit ("Lost terminal").
00:38:36 -!- digital_me has joined.
00:43:12 -!- digital_me has quit (Client Quit).
00:47:20 -!- digital_me has joined.
01:12:03 -!- nazgjunk has joined.
01:20:49 -!- crathman has joined.
01:26:24 -!- digital_me has quit ("leaving").
01:27:27 -!- wooby has quit.
01:29:49 -!- nazgjunk has quit ("Leaving").
01:58:23 -!- digital_me has joined.
02:18:02 -!- tgwizard has quit (Remote closed the connection).
03:01:12 -!- SevenInchBread has joined.
03:23:46 -!- wooby has joined.
03:33:01 -!- digital_me has quit ("leaving").
03:38:22 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
03:38:31 -!- SevenInchBread_ has joined.
03:39:36 -!- SevenInchBread_ has changed nick to SevenInchBread.
04:02:16 -!- crathman has quit (Read error: 104 (Connection reset by peer)).
04:02:38 -!- crathman has joined.
04:18:43 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.2/2007021917]").
04:22:28 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
05:15:54 -!- ShadowHntr has joined.
05:24:05 -!- ShadowHntr has quit ("End of line.").
05:27:58 -!- ShadowHntr has joined.
06:17:04 -!- RodgerTheGreat has quit.
06:17:21 -!- oerjan has quit ("leaving").
06:35:40 -!- GreaseMonkey has joined.
06:44:36 -!- ShadowHntr has quit ("End of line.").
07:30:16 -!- wooby has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:14:15 -!- GreaseMonkey has quit ("gnight0r").
08:20:53 -!- anonfunc has quit (Read error: 145 (Connection timed out)).
08:22:41 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
08:31:37 -!- Sukoshi` has joined.
08:32:31 -!- kxspxr has joined.
08:34:27 -!- kxspxr has quit (Client Quit).
08:34:32 -!- kxspxr has joined.
08:34:38 -!- kxspxr has quit (Remote closed the connection).
08:50:33 -!- oklofok has joined.
09:00:01 -!- oklopol has quit (Read error: 110 (Connection timed out)).
09:01:38 -!- AfterDeath has quit (Read error: 104 (Connection reset by peer)).
09:02:35 -!- AfterDeath has joined.
09:31:15 -!- sebbu has joined.
10:07:12 -!- Sukoshi` has quit ("Neh.").
10:13:17 -!- AfterDeath has quit (Read error: 104 (Connection reset by peer)).
10:14:24 -!- AfterDeath has joined.
10:14:50 -!- nazgjunk has joined.
10:35:08 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
10:35:25 -!- pgimeno has joined.
10:43:08 -!- jix__ has joined.
10:52:40 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
10:53:01 -!- nazgjunk has joined.
10:57:21 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
10:57:51 -!- nazgjunk has joined.
11:20:33 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
11:20:57 -!- nazgjunk has joined.
12:34:16 -!- tgwizard has joined.
13:39:39 -!- goban has joined.
14:00:24 -!- jix__ has quit (Read error: 110 (Connection timed out)).
14:00:43 -!- jix__ has joined.
14:27:46 -!- oerjan has joined.
14:37:01 -!- goban has quit (Connection timed out).
14:37:11 -!- goban has joined.
15:40:15 -!- goban has quit (Connection timed out).
15:52:18 -!- crathman has joined.
16:01:19 -!- sebbu2 has joined.
16:20:00 -!- sebbu has quit (Read error: 110 (Connection timed out)).
16:20:00 -!- sebbu2 has changed nick to sebbu.
17:08:49 -!- RodgerTheGreat has joined.
17:09:03 <RodgerTheGreat> hi everyone
17:10:20 <oerjan> hi
17:11:15 <RodgerTheGreat> how goes it, oerjan?
17:11:31 <oerjan> writing a Forte interpreter
17:11:40 <RodgerTheGreat> cool
17:11:50 <RodgerTheGreat> what language are you coding it in?
17:11:54 <oerjan> Haskell
17:13:05 <oerjan> using a purely functional parsing library to parse an interactive interpreter with continuation lines has its, ahem, issues.
17:13:17 <RodgerTheGreat> heheh
17:13:34 <RodgerTheGreat> well, that's why this is #Esoteric
17:13:47 <RodgerTheGreat> it wouldn't be proper if it wasn't a challenge
17:14:31 <oerjan> well - there are many esoteric languages that are much easier to implement than to use.
17:16:56 <RodgerTheGreat> like bitwise cyclic tag.
17:16:59 * RodgerTheGreat shudders
17:19:56 <helios24> !help
17:19:59 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
17:20:01 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
17:33:09 -!- oerjan has quit ("leaving").
17:55:32 -!- goban has joined.
19:13:43 -!- ShadowHntr has joined.
19:24:03 -!- UpTheDownstair has joined.
19:24:16 -!- UpTheDownstair has quit (Client Quit).
19:41:55 -!- ShadowHntr has quit (Client Quit).
19:45:03 -!- Arrogant has joined.
19:57:01 -!- nazgjunk has quit (Connection reset by peer).
19:57:07 -!- UpTheDownstair has joined.
19:57:59 -!- UpTheDownstair has changed nick to nazgjunk.
20:04:04 -!- Arrogant_ has joined.
20:12:04 -!- goban has quit (Read error: 104 (Connection reset by peer)).
20:12:25 -!- goban has joined.
20:21:33 -!- UpTheDownstair has joined.
20:21:52 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
20:23:17 -!- goban has quit (Read error: 104 (Connection reset by peer)).
20:23:36 -!- goban has joined.
20:25:39 -!- Arrogant has quit (Read error: 113 (No route to host)).
20:35:27 -!- UpTheDownstair has quit ("Leaving").
21:19:52 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:20:04 -!- goban has joined.
21:23:00 -!- Arrogant_ has quit ("Leaving").
21:27:24 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:27:39 -!- goban has joined.
21:32:55 -!- oerjan has joined.
21:35:07 -!- nazgjunk has joined.
21:40:11 -!- wooby has joined.
21:44:28 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:47:12 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:47:27 -!- goban has joined.
22:23:37 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:23:49 -!- goban has joined.
22:41:30 -!- goban has quit (Connection timed out).
22:44:11 -!- nazgjunk has quit ("sleep :/").
22:44:58 -!- goban has joined.
23:17:37 -!- goban has quit (Connection timed out).
23:17:55 -!- goban has joined.
23:25:29 -!- sebbu has quit ("@+").
23:29:29 -!- crathman has quit (Read error: 113 (No route to host)).
23:36:27 -!- tgwizard has quit (Read error: 110 (Connection timed out)).
23:59:38 -!- crathman has joined.
2007-03-02
00:04:13 -!- crathman has quit (Read error: 104 (Connection reset by peer)).
01:00:10 -!- lament has joined.
01:00:14 <lament> |
01:00:35 <RodgerTheGreat> _
01:00:56 <oerjan> \
01:02:30 <fizzie> I guess I'm left with /, then.
01:03:50 <lament> .
01:05:24 <oerjan> :
01:06:25 <fizzie>
01:06:30 <lament>
01:06:44 <oerjan> oh no, Unicode
01:07:32 <fizzie> I hope my character was a correct U+205D TRICOLON (also called "Epidaurean acrophonic symbol three"); it looks correct elsewhere but not in this terminal. :/
01:08:44 <oerjan> i'm afraid even on second attempt I just got the usual square...
01:13:06 <bsmntbombdood> hi
01:14:57 <oerjan> 'lo
01:40:34 <bsmntbombdood> I wonder how to simplify things like ``SKx
01:41:03 <bsmntbombdood> exstentionaly
01:42:19 <oerjan> well it's simple in lambda calculus, but i don't know about SKI.
01:43:16 <bsmntbombdood> yeah
01:53:21 <bsmntbombdood> ok i've got it to do one variable to I and K
01:54:18 <bsmntbombdood> ``SKx ==> I
01:54:47 <bsmntbombdood> ``S`Kx`Ky ==> `K`xy
01:58:59 <oerjan> and of course ``S`KxI = x
02:01:02 <bsmntbombdood> ?
02:03:57 <bsmntbombdood> can't do ``S`KKI = K yet
02:05:21 <oerjan> why not?
02:05:41 <bsmntbombdood> It's possible, but the algorithm doesn't
02:05:51 <bsmntbombdood> aah, there
02:08:43 -!- SevenInchBread has joined.
02:08:58 <bsmntbombdood> now for multiple variables....
02:09:05 <SevenInchBread> hmmm... this is interesting...
02:09:41 <SevenInchBread> I accidentally created an algorithm that produces (I think) a circle or maybe an ellipsis (I could only see half of it because the turtle window wasn't big enough)
02:10:01 <SevenInchBread> I'll pastebin it so someone can explain the math behind it.
02:10:26 <bsmntbombdood> fun
02:11:52 <SevenInchBread> http://deadbeefbabe.org/paste/3839
02:12:05 * SevenInchBread is messing around with fractals, thue, and turtles :)
02:14:49 <bsmntbombdood> what are some multiple argument extensional simplifications?
02:15:35 <SevenInchBread> ....uh, what?
02:15:42 * SevenInchBread doesn't understand your lingo.
02:16:11 <bsmntbombdood> ``SKK is extensionaly equal to I
02:16:23 <bsmntbombdood> because ```SKKx = x
02:16:26 <oerjan> i think it may be simpler to convert to lambda calculus, eta-reduce, then convert back.
02:17:01 <bsmntbombdood> I don't understand eta reduction
02:17:24 <oerjan> \x.fx = f where f does not contain x
02:17:59 <bsmntbombdood> oh
02:18:20 <bsmntbombdood> you mean Kf
02:18:33 <oerjan> plus some beta-reductions too, i guess.
02:18:37 <SevenInchBread> so... any clue why the numbers behave in such a way to create a circle(like) shape?
02:18:46 <oerjan> no.
02:19:48 <bsmntbombdood> But a SKI interpreter shouldn't need a lambda calculus interpreter
02:19:50 <SevenInchBread> hmm... changing the right() method call to left() simply makes a smaller circle... weird
02:20:18 <oerjan> let's see.
02:20:38 <oerjan> the only changing parameter is dist.
02:20:52 <SevenInchBread> it just flips back and forth from what I can tell.
02:21:00 <SevenInchBread> to True and False for that condition.
02:21:23 * SevenInchBread breadcrumbs to find out for sure.
02:21:24 <bsmntbombdood> ooh, it does ``S`KxI now
02:22:06 <oerjan> i think i understand.
02:22:09 <SevenInchBread> yup... it just goes back and forth betwen true and false.
02:22:56 <oerjan> essentially dict just fluctuates in some interval.
02:23:38 <SevenInchBread> just... minute enough to... draw a circlish thing?
02:24:18 <SevenInchBread> I looks almost like a perfect circle to me... although it could be oblongated mathematically.
02:24:54 <oerjan> _anything_ that goes through a lot of identical small turtle movements must create a circle.
02:25:30 <oerjan> because each cycle will move by the same amount, then turn the same amount.
02:25:39 <bsmntbombdood> ``S``S`KSK`KI
02:25:46 <bsmntbombdood> is equal to I
02:26:20 <SevenInchBread> ah... yeah that makes sense.
02:26:38 <SevenInchBread> darn... I thought I might have found some weird mathematical pattern.
02:27:10 <oerjan> alas
02:27:11 <SevenInchBread> ... 8, 3, and 5 (the only numbers I used other than phi) are all heavily related with phi.
02:27:28 <SevenInchBread> ...I picked them mainly because they're a few of my favorite numbers.
02:27:57 <oerjan> i believe any change in the constants which doesn't cause dist to diverge will still produce a circle.
02:28:51 <SevenInchBread> until then I just got freaky scribble patterns... for an unrelated alg using a bunch of randomly pieced together computations.
02:29:11 <oerjan> you might change dist by functions that don't match quite as well as *= prod and /= prod
02:29:51 <SevenInchBread> **= and /= maybe :)
02:29:56 <oerjan> then dist could change in a more complicated pattern.
02:30:40 <SevenInchBread> hmmm..
02:31:09 <SevenInchBread> changing it to exponentiation makes the circle spin in a very tight spiral to the right... like the original except veering to the right very slightly each loop.
02:31:37 <oerjan> oh.
02:31:50 <SevenInchBread> still a cyclic interval though... the distance is simply being gradually altered.
02:32:35 <oerjan> i think that must be roundoff errors in the Turtle graphics. It they were perfect you couldn't go in a particular direction.
02:32:43 <oerjan> *If
02:33:01 <SevenInchBread> could be floating point?
02:33:07 <oerjan> yeah
02:33:16 * SevenInchBread uses Python's decimal format thing.
02:33:21 <SevenInchBread> just to see.
02:33:28 -!- crathman has joined.
02:36:40 <SevenInchBread> hmm... switching to decimal representation made exponentiation no longer work with phi as the exponent.
02:38:13 <SevenInchBread> decimal.InvalidOperation: x ** (non-integer)
02:40:08 <bsmntbombdood> yessss it works now
02:40:55 <bsmntbombdood> ``S``S`KSK`KI ==> I
02:42:20 <SevenInchBread> bah... using Decimal just makes the floating point math done in the turtle module screw up.
02:42:20 <bsmntbombdood> sweet
02:43:41 <bsmntbombdood> It's noticably slower now though
02:44:37 <bsmntbombdood> `x`x`x`x`x`xx takes like 1.5 seconds
02:44:44 <SevenInchBread> hmmm... is decimal arithmetic considerably slower than good ol' floating point?
02:45:44 * bsmntbombdood disappears
03:08:29 <SevenInchBread> I was thinking for Sophia I could automatically convert between floating point, long intergers, short integers, and decimally-represented numbers without having to worry about it.
03:09:21 <SevenInchBread> ...as long as there's a way to predict which floating point operations won't be accurate... you could convert to decimal format for the operations.
03:10:10 <bsmntbombdood> ...huh?
03:11:41 <SevenInchBread> decimal format... instead of binary floating point.
03:12:04 <SevenInchBread> it basically mimics "schoolhouse" algorithms for doing math... so it's more accurate but takes more time
03:12:25 <oerjan> decimal format is not that much better.
03:13:00 <oerjan> you'll have to round off eventually, in any case.
03:15:11 <oerjan> adding more bits increases accuracy just as much as adding more decimals.
03:15:37 <bsmntbombdood> rationals for the win
03:15:43 <SevenInchBread> It's mostly used in nitpicky computations... like finance and science...
03:15:53 <oerjan> yeah, but even they only work for arithmetic
03:16:03 <oerjan> just finance, i think.
03:16:14 <SevenInchBread> yeah... mostly finance.
03:16:29 <oerjan> and that's not really because decimals are more accurate.
03:16:39 <SevenInchBread> more... precise? or something like that?
03:17:01 <bsmntbombdood> because .1 has to be 1/10
03:17:22 <oerjan> it's because financial calculations are strictly defined by old traditions from before there were binary computers.
03:18:00 <bsmntbombdood> this simplifier is sloow now
03:19:05 <SevenInchBread> aaah.... legal standardization more so than any gains in accuracy.
03:19:30 <bsmntbombdood> ``````````aaaaaaaaaaa takes like 5 minutes to return
03:19:44 <oerjan> the more simplifications you try to catch the closer you get to having to solve the halting problem :)
03:19:54 <bsmntbombdood> heh
03:20:15 <oerjan> although that does sound like maybe you need a better algorithm
03:20:22 <oerjan> or maybe you have bugs.
03:20:27 <bsmntbombdood> maybe
03:20:34 * SevenInchBread is reading up on number representations.
03:20:43 <oerjan> as in, repeating work bugs
03:21:10 <bsmntbombdood> yeah, there is one
03:23:50 <bsmntbombdood> http://pastebin.ca/377911
03:40:05 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
04:04:08 -!- oerjan has quit ("Good night").
04:46:05 -!- crathman has quit (Read error: 131 (Connection reset by peer)).
04:47:21 -!- crathman has joined.
04:51:34 -!- crathman has quit (Client Quit).
04:59:03 -!- Arrogant has joined.
06:18:45 -!- anonfunc has joined.
06:19:05 -!- ShadowHntr has joined.
06:19:06 -!- anonfunc has quit (Remote closed the connection).
07:32:34 -!- goban has quit (Remote closed the connection).
07:33:12 -!- goban has joined.
07:34:55 -!- wooby has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:29 -!- Sukoshi` has joined.
08:04:42 -!- Sukoshi has changed nick to Sukoshi``.
08:04:47 -!- Sukoshi` has changed nick to Sukoshi.
08:08:48 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
09:20:20 -!- Sukoshi has quit ("Bleh. Go time.").
09:21:24 -!- sebbu has joined.
10:18:18 -!- Arrogant has quit ("Leaving").
10:27:16 -!- ShadowHntr has joined.
10:59:51 -!- ShadowHntr has quit ("End of line.").
13:21:03 -!- clog has joined.
13:21:03 -!- clog has joined.
13:30:48 -!- sebbu2 has joined.
13:36:24 -!- sebbu has quit (Nick collision from services.).
13:37:07 -!- sebbu2 has changed nick to sebbu.
13:50:28 -!- goban has quit (Read error: 104 (Connection reset by peer)).
13:50:31 -!- goban has joined.
13:59:54 <EgoBot> 42
14:11:10 -!- ais523 has quit.
14:29:00 <oklofok> -1
14:29:04 -!- oklofok has changed nick to oklopol.
14:39:51 -!- nazgjunk has joined.
15:17:14 -!- goban has quit (Read error: 110 (Connection timed out)).
15:17:26 -!- goban has joined.
15:37:16 -!- goban has quit (Connection timed out).
15:38:01 -!- goban has joined.
15:44:24 -!- UpTheDownstair has joined.
15:45:56 -!- nazgjunk has quit (Read error: 110 (Connection timed out)).
15:46:36 -!- UpTheDownstair has changed nick to nazgjunk.
16:53:20 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:53:50 -!- nazgjunk has joined.
18:53:32 -!- clog has joined.
18:53:32 -!- clog has joined.
19:18:12 -!- nazgjunk has quit ("Leaving").
19:37:52 -!- ShadowHntr has joined.
20:29:05 -!- ShadowHntr has quit ("End of line.").
21:00:32 -!- jix__ has joined.
21:09:33 -!- jix has quit (Read error: 113 (No route to host)).
21:49:47 -!- ShadowHntr has joined.
22:39:06 -!- ShadowHntr has quit (Client Quit).
22:54:36 -!- wooby has joined.
23:00:18 <GregorR> I wrote a runtime ELF loader 8-D
23:00:35 <GregorR> It segfaults mysteriously >_> ... but only after the program has finished.
23:04:01 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:08:31 -!- kxspxr has joined.
23:32:06 -!- sebbu2 has joined.
23:34:18 -!- kxspxr has quit.
23:39:34 -!- sebbu has quit (Read error: 145 (Connection timed out)).
23:40:48 -!- wooby has quit.
2007-03-03
00:46:17 -!- tgwizard has quit (Remote closed the connection).
00:56:51 -!- sebbu2 has quit ("@+").
01:41:13 -!- nazgjunk has joined.
01:46:34 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
01:46:34 -!- tokigun has quit (calvino.freenode.net irc.freenode.net).
01:46:34 -!- Sukoshi`` has quit (calvino.freenode.net irc.freenode.net).
01:46:34 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
01:46:35 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
01:46:35 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
01:46:35 -!- NK` has quit (calvino.freenode.net irc.freenode.net).
01:46:35 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
01:46:37 -!- nooga has quit (calvino.freenode.net irc.freenode.net).
01:46:37 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
01:46:55 -!- wooby has joined.
01:47:12 -!- SimonRC has joined.
01:47:12 -!- NK` has joined.
01:47:12 -!- sekhmet has joined.
01:47:12 -!- oklopol has joined.
01:47:12 -!- GregorR has joined.
01:47:12 -!- EgoBot has joined.
01:47:12 -!- tokigun has joined.
01:47:12 -!- Sukoshi`` has joined.
01:47:12 -!- nooga has joined.
01:47:12 -!- mtve has joined.
02:02:51 -!- nazgjunk has quit ("Leaving").
03:14:21 -!- nooga_ has joined.
03:22:59 -!- nooga has quit (Read error: 110 (Connection timed out)).
03:31:38 -!- ShadowHntr has joined.
04:35:50 -!- oerjan has quit ("Good night").
05:17:10 -!- Remi__ has joined.
05:20:03 -!- Remi__ has quit ("Ex-Chat").
07:56:03 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:35:44 -!- jix__ has joined.
08:51:38 -!- jix__ has quit (Read error: 104 (Connection reset by peer)).
08:52:06 -!- jix__ has joined.
09:02:56 -!- sebbu has joined.
10:11:45 -!- wooby has quit.
11:19:39 -!- goban has joined.
12:01:45 -!- UnrelatedToQaz has joined.
12:02:12 <UnrelatedToQaz> !help
12:02:15 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
12:02:18 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
12:06:44 <UnrelatedToQaz> !help funge93
12:06:48 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
12:07:18 <UnrelatedToQaz> !help bf
12:07:21 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
12:07:52 <UnrelatedToQaz> funge93 "h".@
12:08:02 <UnrelatedToQaz> didn't think so
12:08:17 -!- UnrelatedToQaz has left (?).
12:39:00 -!- tgwizard has joined.
12:56:00 -!- sebbu2 has joined.
13:14:36 -!- sebbu has quit (Read error: 110 (Connection timed out)).
13:16:32 -!- nazgjunk has joined.
14:30:33 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
14:33:58 -!- nazgjunk has joined.
14:46:23 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
14:46:54 -!- nazgjunk has joined.
15:04:52 -!- goban has quit (Read error: 110 (Connection timed out)).
15:05:06 -!- goban has joined.
15:10:15 -!- nazgjunk has quit ("Leaving").
15:15:06 <nooga_> yo yo yyo
15:22:14 -!- goban has quit (Read error: 104 (Connection reset by peer)).
15:22:28 -!- goban has joined.
15:35:38 -!- nooga_ has quit ("leaving").
15:39:36 -!- goban has quit (Connection timed out).
15:42:50 -!- goban has joined.
15:59:51 -!- helios24 has quit (Read error: 60 (Operation timed out)).
16:13:58 -!- nazgjunk has joined.
16:22:02 -!- goban has quit (Success).
16:22:37 -!- oerjan has joined.
16:35:58 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:41:30 -!- goban has joined.
16:43:37 -!- nazgjunk has joined.
16:58:07 -!- nazgjunk has quit (Connection reset by peer).
17:00:52 -!- goban has quit (Connection timed out).
17:00:54 -!- goban has joined.
17:04:49 -!- UpTheDownstair has joined.
17:04:51 -!- UpTheDownstair has quit (Client Quit).
17:18:17 -!- wooby has joined.
17:22:11 -!- wooby has quit (Client Quit).
17:22:32 -!- nazgjunk has joined.
17:33:18 -!- UpTheDownstair has joined.
17:33:26 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
17:34:07 -!- goban has quit (Connection timed out).
17:44:41 -!- goban has joined.
17:56:43 -!- UpTheDownstair has changed nick to nazgjunk.
18:49:32 -!- nazgjunk has quit ("Leaving").
19:00:48 -!- oerjan has quit ("leaving").
19:03:27 -!- nazgjunk has joined.
19:32:53 <bsmntbombdood> An ELF loader, eh?
19:32:57 <bsmntbombdood> how does that work?
19:34:28 <bsmntbombdood> Can that be just a user program?
19:34:32 <bsmntbombdood> GregorR: ^
19:56:59 -!- tgwizard has quit (Remote closed the connection).
20:04:31 * GregorR reappears.
20:04:37 <GregorR> bsmntbombdood: Well, there's a nasty trick to it.
20:04:56 <GregorR> bsmntbombdood: The only place that you can count on /not/ clobbering while loading a program is the stack.
20:05:09 <GregorR> bsmntbombdood: So ... I copy all the code I need to the stack before loading ^^
20:05:46 <GregorR> bsmntbombdood: The threat of stack-smashing arbitrary code execution is moot, since the purpose of a binary loader is to execute arbitrary code *shrugs*
20:07:02 <bsmntbombdood> hmm
20:07:38 <bsmntbombdood> How do you load the program?
20:08:18 <GregorR> mmap is your friend - it allows you to map anonymous memory /anywhere/, including areas inhabited by the text or data segment.
20:13:56 -!- SevenInchBread has joined.
20:24:49 -!- UpTheDownstair has joined.
20:24:50 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:25:04 -!- UpTheDownstair has changed nick to nazgjunk.
20:52:45 <SevenInchBread> hmmm...
20:52:52 <SevenInchBread> so...
20:53:09 <SevenInchBread> I've come to a problem with Sophia.
20:53:18 <SevenInchBread> I'm not sure what specifies one "statement" from another..
20:53:34 <SevenInchBread> I don't want to use newlines... but I don't want semicolons either.
20:53:55 <SevenInchBread> I was kind of hoping something could just implicitly separate lines.
20:59:14 -!- jix__ has quit (Read error: 145 (Connection timed out)).
20:59:45 -!- jix__ has joined.
21:06:00 <SevenInchBread> Lisp using parenthesis to know when to split from the expression yeah?
21:06:11 <SevenInchBread> but... I don't think that will work with this.
21:08:59 <SevenInchBread> you've got expression := "(" expression* ")" | word | StringLiteral | NumberLiteral
21:09:05 <SevenInchBread> ...which is a lot like lisp
21:09:53 <SevenInchBread> but it's OO... instead of (func arg1 arg2 ...) you've got (object message arg)
21:11:53 <bsmntbombdood> ...
21:13:01 <SevenInchBread> ...
21:13:01 <bsmntbombdood> ...
21:13:01 <SevenInchBread> YOU THERE
21:13:01 <SevenInchBread> HELP ME OUT WITH THIS... IT'LL BE FUN.
21:13:01 <SevenInchBread> It's my Lisp/Erlang/Smalltalk thing.
21:13:27 <SevenInchBread> OH
21:13:28 <SevenInchBread> I KNOW
21:13:49 <SevenInchBread> I'll do the implicit-line-continuation-on-parenthesis thing... like Python.
21:34:28 -!- SevenInchBread has quit ("haaaaaaaaaa").
21:34:53 -!- SevenInchBread has joined.
21:47:26 <SevenInchBread> bsmntbombdood, aaaaah
22:18:45 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
22:18:47 -!- sekhmet has joined.
22:24:14 <bsmntbombdood> what?
22:24:44 <bsmntbombdood> SevenInchBread:
22:25:14 <SevenInchBread> >.>
22:25:18 <SevenInchBread> nothing. :)
22:25:44 <bsmntbombdood> <SevenInchBread> I'll do the implicit-line-continuation-on-parenthesis thing... like Python.
22:25:47 <bsmntbombdood> ?
22:25:59 <bsmntbombdood> I don't know of a lisp that doesn't
22:26:14 <bsmntbombdood> lisps don't have a concept of lines
22:27:06 <SevenInchBread> well... lisp uses -only- parenthesis... where I'll be using newlines-but-only-if-no-parenthesis-are-open.
22:27:16 <SevenInchBread> because my syntax doesn't play nice with that.
22:28:10 <bsmntbombdood> hmm
22:29:18 <bsmntbombdood> so everything on a line would be one sexp?
22:29:34 <bsmntbombdood> "foo bar baz\n" is (foo bar baz)?
22:31:11 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
22:31:28 -!- SevenInchBread has joined.
22:31:47 <bsmntbombdood> ?
22:33:15 <bsmntbombdood> You see what I said?
22:34:05 <bsmntbombdood> that's not going to work well
22:35:35 <bsmntbombdood> better to keep the syntax nice and regular
22:44:26 <SevenInchBread> well see...
22:45:16 <SevenInchBread> method calls sort of skew the syntax away from being Lispable.
22:45:36 <SevenInchBread> (SophiaObject method 2) + 2
22:47:04 <SevenInchBread> parenthesis don't signify the start and end of an expression.
22:47:18 -!- GreaseMonkey has joined.
22:47:35 <bsmntbombdood> huh?
22:49:07 <SevenInchBread> >.>
22:49:09 <SevenInchBread> well...
22:49:20 <SevenInchBread> ...
22:49:31 <bsmntbombdood> (send object 'method)?
22:51:46 <bsmntbombdood> or (object 'method), same thing
22:52:13 <SimonRC> ooh @ moon
22:56:56 -!- Rugxulo has joined.
22:57:05 -!- Rugxulo has quit (Remote closed the connection).
22:57:47 * bsmntbombdood went out and howled last night
22:59:18 <SevenInchBread> hmmm...
22:59:29 <SevenInchBread> see.... parenthesis don't signify a call in Sophia... they just group expressions.
22:59:41 <SevenInchBread> so that can't be used to separate lines.
23:00:32 <SevenInchBread> I like just using newlines unless there's an open parenthesis
23:01:38 <SevenInchBread> or I could change the syntax to object (message arg ...) and say that each line is a message to the module. :)
23:02:45 <bsmntbombdood> or you could change the syntax to object.message(arg) and just use python
23:03:29 <SevenInchBread> nope... the semantics are totally different from Python. :P
23:03:54 <SevenInchBread> it's a bastard mix of Lisp, Smalltalk, and my own doing.
23:04:11 <bsmntbombdood> ok then, (method object arg) and use CLOS
23:05:10 -!- ShadowHntr has joined.
23:09:03 <SimonRC> bsmntbombdood: No you twallock I was talking about the eclipse.
23:09:15 <bsmntbombdood> eclipse?
23:09:27 <SimonRC> duh
23:09:47 <SimonRC> http://news.bbc.co.uk/1/hi/sci/tech/6411991.stm
23:11:07 <bsmntbombdood> fun
23:20:41 -!- sebbu has joined.
23:20:52 <SimonRC> sebbu: have you been watching?
23:21:02 <bsmntbombdood> ~raw PRIVMSG #esoteric :bsmntbombdood
23:21:25 -!- bsmnt_bot has joined.
23:21:30 <bsmntbombdood> wtf?
23:22:21 <bsmntbombdood> ~raw PRIVMSG #esoteric :bsmntbombdood
23:22:21 <bsmnt_bot> bsmntbombdood
23:39:20 -!- sebbu2 has quit (Connection timed out).
2007-03-04
00:05:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
00:05:36 -!- UpTheDownstair has joined.
00:05:46 -!- UpTheDownstair has changed nick to nazgjunk.
00:27:46 <bsmntbombdood> I have a great urge to do something incredibly esoteric with pointers right now
00:28:54 <bsmntbombdood> And I need your help to fulfil this urge
00:28:58 <bsmntbombdood> Ideas please.
00:29:17 * GreaseMonkey points: (::'''
00:30:01 <bsmntbombdood> ?
00:30:41 <SevenInchBread> not much you can do with an integer pointer to make it esoteric... floating point, imaginary, rational?
00:31:00 <SevenInchBread> ...quaternion?
00:31:05 <bsmntbombdood> The actual pointer doesn't have to be esoteric, just its use
00:31:21 <SevenInchBread> ...make it point to a pointer.
00:31:31 <bsmntbombdood> boring
00:31:38 <SevenInchBread> that points to an integer, which becomes to pointers new value.
00:31:51 <sebbu> SimonRC, watching what ?
00:31:56 <bsmntbombdood> what for?
00:32:22 <SevenInchBread> well... it gives you some moderate form of control flow.
00:32:44 <SimonRC> sebbu: the moon
00:32:52 <SimonRC> the eclipse is nearly over now
00:33:43 <SimonRC> bsmntbombdood: you can use pointers as your only primitive type?
00:33:55 <bsmntbombdood> sure
00:33:56 <SimonRC> actually, make that cons cells as your only primitive type
00:34:07 <bsmntbombdood> ...
00:34:11 <SimonRC> nil is a cons cell that points to itself twice
00:34:17 <SevenInchBread> hahaha... lists with nothing to put in them :)
00:35:13 <bsmntbombdood> more lists
00:35:23 <SimonRC> a number might become a listy-kinda thing
00:35:49 <SimonRC> with clever sharing, a number could easily be a tree with NILs at the leaves
00:35:55 <SevenInchBread> yeah.
00:35:56 <SimonRC> in log-space
00:36:05 <bsmntbombdood> how?
00:36:08 <SevenInchBread> so then concatenation of the trees would be like addition.
00:36:22 <SimonRC> well, you have 0 = nil...
00:36:32 <SimonRC> ah, wait, no...
00:36:38 <SimonRC> oh, yes
00:36:41 <SimonRC> 0 = NIL
00:36:50 <SimonRC> 1 = a pair of differnt NILs
00:36:55 <SimonRC> or maybe that would be 1 and 2
00:37:10 <SimonRC> 2 would be two pointers to the same copy of 1
00:37:21 <SimonRC> 3 would be a pointer to one and 2
00:37:26 <bsmntbombdood> oh
00:37:30 <SimonRC> I am sure you can think of a way
00:37:52 <SevenInchBread> (cons (cons (cons (cons (cons nil))))) ...5, and then use the properties of lists to do arithmetic.
00:38:14 <bsmntbombdood> SevenInchBread: cons takes two arguments
00:38:26 <SevenInchBread> ... just assume all of those have nill on them or whatever :P
00:38:42 <SevenInchBread> basically what simon said
00:38:49 <SimonRC> nil = (nil . nil), BTW
00:38:56 <SimonRC> because all pointer have to be valid
00:39:15 <SimonRC> actually, you can do this a better way...
00:39:16 <bsmntbombdood> nil = NULL
00:39:27 * SimonRC searches for the thing he needs
00:39:31 <SimonRC> bsmntbombdood: nonono
00:39:35 <SimonRC> or maybe yes
00:39:58 <SevenInchBread> yeah, I'm pretty sure nil is a null pointer by itself.
00:40:11 <bsmntbombdood> 1 doesn't make sense
00:40:20 <SevenInchBread> not a pointer to nils... that's a recursive definition and you'd never be able to end a list. :)
00:40:32 <bsmntbombdood> if the value of a node is the sum of its children...
00:40:58 <SevenInchBread> 1 = (nil nil)
00:41:01 <SimonRC> here we go: http://www.cs.st-andrews.ac.uk/~eb/writings/bignums.ps
00:41:07 <SimonRC> "Every Number Has At Most Two Digits"
00:41:09 <SevenInchBread> you basically making a base-1 nuimeral system.
00:41:10 <SimonRC> just what we need
00:41:20 <SimonRC> and it works in log-space
00:41:29 <bsmntbombdood> bah, ps
00:41:52 <bsmntbombdood> and sideways
00:42:16 <SimonRC> for me it is upside-down
00:42:26 <SimonRC> just tell your viewer to turn it the right way up
00:42:34 <SevenInchBread> 0 = nil 1 = (0 nil) 2 = (1 nil) 3 = (2 nil) 4 = (3 nil) etc
00:43:29 <bsmntbombdood> there
00:43:46 <bsmntbombdood> xpdf renders it nicely
00:44:15 -!- thematrixeatsyou has joined.
00:44:37 -!- GreaseMonkey has quit (Nick collision from services.).
00:44:44 -!- thematrixeatsyou has changed nick to GreaseMonkey.
00:45:57 <SimonRC> bsmntbombdood: basically, a number is either: all zero or first half zero + second half non-zero, or first half non-zero + second half anything.
00:46:13 <bsmntbombdood> I don't understand the notation though
00:46:34 <bsmntbombdood> page 5
00:47:10 <SimonRC> ah, that's the magic type theory notation
00:47:21 <SimonRC> it comes from the types-as-proof-specifications thingy
00:47:58 <SimonRC> the things on top are the data and types you start off with, and the bit at the bottom is the data or type that you can construct
00:48:19 <SimonRC> it's not really much beyond Haskell's GADTs
00:48:55 <SevenInchBread> I really wish OSes had some easy way for languages to easily communicate without whole processes.
00:49:04 <SimonRC> if we represent a zero in either half as a pointer to the cons cell itself, we have a high-efficiency representation not only for small numbers, but also for sparse bit vectors (if we are clever when the first half is non-zero and the second half is zero).
00:49:43 <SimonRC> If we are not clever in that latter case, we get an efficient notation for small numbers but not for all sparse ones
00:49:59 <SimonRC> SevenInchBread: it's called "threads"
00:50:10 -!- oerjan has joined.
00:50:19 <SevenInchBread> ...I've never actually figured out what threads are...
00:50:32 <SimonRC> like processes, but they share an address space
00:50:33 <bsmntbombdood> lightweight proceses
00:50:49 <bsmntbombdood> http://en.wikipedia.org/wiki/Image:PM1%2B1%3D2lemma.jpg
00:50:52 <SevenInchBread> eh... so then you'd communicate solely by address?
00:50:58 <bsmntbombdood> that's some dense notation right there
00:51:24 <SimonRC> SevenInchBread: eh?
00:51:36 <SimonRC> nonono, I mean they share a heap and globals between them
00:52:17 <SevenInchBread> yeah... they share a heap... so in order to communicate they need to alter data on the heap yeah?
00:53:00 <bsmntbombdood> yeah
00:53:02 <SimonRC> of course, properly you should not share address space without a proper shared-address-space system. Channels from Erlang are good, STM from Haskell is good, even though they got it from the database world, and locks and monitors suck with a suckage of several Lovelace.
00:53:14 -!- sebbu has quit (Client Quit).
00:53:45 <SimonRC> Channels are good if you know how the data will flow, and STM (transactions) is good if you don't care much about the exact order updates happen.
00:54:29 <SimonRC> STM has a horrible overhead sometimes, but it is still a win if it lets you use 8 cores rather than 1.
00:54:34 <SevenInchBread> How do you make a thread exactly?
00:56:23 <SimonRC> you start by RTFM
00:56:26 <bsmntbombdood> pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
00:56:34 <bsmntbombdood> like that
00:56:49 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:57:21 <SimonRC> Then you give up and write it in a language with some actual concurrency *support* rather than a concurrency *burden*.
00:59:17 <bsmntbombdood> Then you remember that it was implemented in C
01:00:04 <SimonRC> like I said, C=bad for this
01:00:35 * oerjan wonders if you could do reverse pointers - like COME FROM.
01:00:58 <bsmntbombdood> I've seen COME FROM somewhere
01:01:06 <SimonRC> you might be able to do some dreadful hashing trick
01:01:07 <GreaseMonkey> um, with an instruction trap perhaps?
01:01:15 <oerjan> in INTERCAL, but that is for program flow.
01:01:15 <SimonRC> bsmntbombdood: INTERCAL
01:01:24 <bsmntbombdood> ph
01:01:27 <bsmntbombdood> oh
01:01:34 <oerjan> i meant for data.
01:01:37 <SimonRC> some Fortrans had an "AT", which was like a COME FROM
01:01:54 <SimonRC> and of course COME FROM is back in fasion with the emergence of AOP.
01:05:44 <SevenInchBread> ...reverse pointers... like...
01:05:59 <SevenInchBread> ...
01:06:02 <SevenInchBread> hmmm...
01:06:11 <fizzie> FORTRAN's DO loop is somewhat come-from-y, since you just give the line number where the loop ends, and there's nothing at that line marking the end of the loop. (Most people would probably stick a CONTINUE statement there, though.)
01:06:35 * SimonRC lols at the "reverse-find" algorithm
01:06:56 <SevenInchBread> ...what would a reverse pointer do? Point to itself?
01:07:23 <SimonRC> It's complexity bound has possibly the world's slowest-growing function that tends to infinity and is yet useful for something.
01:07:41 <SimonRC> it contains the inverse of the ackermann function
01:09:28 <oerjan> hm... googling reverse-find + ackermann gives me nothing
01:09:55 <oerjan> or more precisely, one page in Hebrew.
01:10:11 <oerjan> which is about equivalent. :)
01:11:22 -!- ihope_ has joined.
01:11:34 <ihope_> ~ctcp #esoteric ACTION ACTION ACTION
01:11:35 * bsmnt_bot ACTION ACTION
01:11:46 <ihope_> Mm-hmm.
01:11:51 <oerjan> SimonRC: That was supposed to be a hint to get a URL, btw :)
01:12:01 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION ACTION\001")
01:12:02 * bsmnt_bot ACTION
01:12:06 <SimonRC> ah...
01:12:10 <SimonRC> http://www.scottaaronson.com/writings/bignumbers.html
01:12:21 <ihope_> ...Never mind?
01:12:25 <SimonRC> I meant "union-find"
01:12:26 <oerjan> thank you.
01:17:29 <ihope_> Oh, huh.
01:17:36 <ihope_> ~exec self.raw("PRIVMSG #esoteric :Foobar\001")
01:17:36 <bsmnt_bot> Foobar<CTCP>
01:17:48 <ihope_> ~exec self.raw("PRIVMSG #esoteric :Foo\001ACTION bar\001")
01:17:48 <bsmnt_bot> Foo<CTCP>ACTION bar<CTCP>
01:17:57 <oerjan> hm...
01:18:19 <ihope_> My client failed to display that one.
01:18:40 <oerjan> Mine too. Not quite RFC-compliant.
01:19:07 <oerjan> But then the RFC doesn't seem very useful in this case.
01:20:07 <oerjan> did anyone see it properly?
01:20:35 <oerjan> (I.e. Foo and bar on separate lines, the last as an emote)
01:22:26 <ihope_> Is it supposed to do that?
01:22:34 <ihope_> Mine didn't show it at all.
01:22:42 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION bar\001"Foo)
01:22:42 <bsmnt_bot> SyntaxError: invalid syntax
01:22:50 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION bar\001Foo")
01:22:50 <bsmnt_bot> <CTCP>ACTION bar<CTCP>Foo
01:22:59 <ihope_> Didn't see that either.
01:23:27 <oerjan> That one came out as an emote to me, but with an \A inside.
01:23:30 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001bar\001\r\nPRIVMSG #esoteric :\001bar\001foo")
01:23:30 <bsmnt_bot> foo<CTCP>bar<CTCP>
01:23:30 <bsmnt_bot> <CTCP>bar<CTCP>foo
01:23:45 <ihope_> I didn't see anything there either.
01:24:06 <oerjan> you mean you saw absolutely nothing?
01:24:20 <ihope_> Absolutely nothing.
01:24:30 <ihope_> I didn't realize bsmnt_bot replied at all until I read the logs.
01:25:00 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001\001bar")
01:25:00 <bsmnt_bot> foo<CTCP><CTCP>bar
01:25:07 <ihope_> ~exec self.raw("PRIVMSG #esoteric :foo\001\001")
01:25:08 <bsmnt_bot> foo<CTCP><CTCP>
01:25:15 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001bar")
01:25:16 <bsmnt_bot> <CTCP><CTCP>bar
01:25:32 <ihope_> ...wait a minute...
01:25:34 -!- ihope_ has quit ("Reconnecting...").
01:25:48 -!- ihope_ has joined.
01:25:59 <oerjan> it seems my client uses the first character to decide whether it is an emote, but then ignores anything inside.
01:26:05 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001bar")
01:26:06 <bsmnt_bot> <CTCP><CTCP>bar
01:26:35 <oerjan> bsmnt_bot [i=gavin@abacus.kwzs.be] requested unknown CTCP Abar from #esoteric:
01:26:45 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001")
01:26:45 <bsmnt_bot> <CTCP><CTCP>
01:26:52 <oerjan> *A=\A
01:27:10 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001ACTION throws a \001 at ihope_\001")
01:27:10 * bsmnt_bot throws a <CTCP> at ihope_
01:27:19 <ihope_> ~exec self.raw("PRIVMSG #esoteric :\001\001\001")
01:27:20 <bsmnt_bot> <CTCP><CTCP><CTCP>
01:27:53 <oerjan> unknown CTCP \A
01:28:06 <oerjan> (I am using \A for inverted A on my screen)
01:28:18 <ihope_> === Unknown CTCP [\0x01] () from bsmnt_bot
01:28:41 <oerjan> that seems standard-compliant, at least.
01:28:49 <oerjan> or, wait.
01:28:57 <oerjan> not quite.
01:29:27 <oerjan> it should have been unknown CTCP "" followed by a single \A in a message, I think.
01:29:58 <ihope_> All so very weird.
01:30:03 <oerjan> anyhow, the conclusion is that you can count on \A working only at the ends of messages.
01:30:21 <oerjan> *beginning and end
01:30:43 <ihope_> It looks to me that if there's more than one \1 in a message, it fails to show.
01:30:52 <ihope_> Naturally, our clients are different...
01:30:57 -!- GreaseMonkey has quit (Read error: 60 (Operation timed out)).
01:31:22 <ihope_> Do most clients implement CTCP as "if it starts with \1 and ends with \1 then the first word of what's in between is the command and everything else is the parameters"?
01:31:40 <oerjan> mine seems to only look at "starts with \1"
01:32:22 <oerjan> (irssi)
01:32:24 <ihope_> Maybe #tapthru would be a better place to ask...
01:32:53 <oerjan> probably
01:34:12 <oerjan> it occurs to me that it is reasonable to ignore multiple CTCPs, since they could be used to flood your screen.
01:45:45 <bsmntbombdood> ackerman function is funny
01:47:37 <bsmntbombdood> gah
01:47:45 * bsmntbombdood wants to understand that bignums paper
01:48:14 <oerjan> anything in particular?
01:48:40 <bsmntbombdood> the notation
01:49:10 <bsmntbombdood> I'm lost after page 3
01:49:38 <oerjan> eh, the pages aren't numbered
01:50:02 <bsmntbombdood> "Representation of natural numbers" is page 3
01:51:00 <oerjan> oh. i don't think we are reading the same URL...
01:51:16 <bsmntbombdood> http://www.cs.st-andrews.ac.uk/~eb/writings/bignums.ps
01:51:56 -!- manveru has left (?).
02:16:43 -!- nazgjunk has quit ("Leaving").
02:23:52 -!- GreaseMonkey has joined.
02:28:52 -!- ihope_ has changed nick to ihope^.
02:32:13 -!- ihope^ has changed nick to ihope_.
02:41:05 <SevenInchBread> mmm... parsers are very easy to make messy. :)
02:43:37 <SimonRC> the solution is the Use a parser-generator or a monadic parsing library
02:43:42 <SimonRC> *to use
02:44:11 <SimonRC> the latter give you unbelievably awful code but you never have to look at it.
02:44:15 <SimonRC> *former
02:44:38 <SimonRC> the latter give you nice lear code, though it might be fiddly to use sometimes
02:49:45 <SevenInchBread> I'm just using a... class-with-some-event-methods approach.
02:52:38 <oerjan> hm... do the methods correspond to tokens of the grammar?
02:53:34 <oerjan> otherwise you might indeed end up messy, if you try to make it input-driven rather than grammar-driven.
02:55:20 <oerjan> but recursive descent can be simple if the grammar is suitable for it.
02:57:59 <SimonRC> predictive is trivial even in Pascal
03:03:50 <SevenInchBread> well... I see it happening in "stages" so to speak...
03:04:18 <SevenInchBread> this part of it is building the AST by just finding literal characters and reacting to them.
03:04:45 <SevenInchBread> so far I've managed to keep it fairly clean.
03:08:29 <SevenInchBread> What's the... uh.. typical way to do it?
03:09:14 -!- GreaseMonkey has quit (Nick collision from services.).
03:09:20 -!- thematrixeatsyou has joined.
03:13:54 <oerjan> the typical way is to make the parser call the input routines rather than the other way around.
03:14:25 <oerjan> and to let the parser branch and do recursive calls to sub-parsers based on what was read.
03:15:07 <SevenInchBread> oooh... I've got a really good way to implement that...
03:15:14 <SevenInchBread> I made it for a different purpose...
03:15:21 <SevenInchBread> but... it would work great for parsing.
03:15:59 <oerjan> (sometimes it would be useful to recurse even before anything was read)
03:16:15 <oerjan> like with operator precedence.
03:16:27 <SimonRC> SevenInchBread: do tell
03:16:39 <SevenInchBread> let me see if I can find it...
03:17:06 <oerjan> oh, and usually you need lookahead for input, since sub-parsers and post-parsers may need to look at a token again.
03:17:31 <SevenInchBread> yeah... I used that... having a readuntil() makes things way less messy. :)
03:19:00 <SevenInchBread> http://deadbeefbabe.org/paste/3859
03:19:34 <SevenInchBread> _read will be the most relevant
03:19:35 <oerjan> incidentally the parser generators mentioned before are input-driven, and as SimonRC said, the resulting code is horribly messy (but efficient)
03:20:50 <SevenInchBread> well... that's a bad demostration of it... since it just shows thei internals... lemme find where I used it.
03:21:02 <oerjan> being based around a constructed finite automaton which few would want to create by hand.
03:22:18 <SevenInchBread> basically you give it a coroutine that yields output and will be sent input.
03:23:06 <SevenInchBread> if it yields a string, the string if outputted... if it yields another coroutine, it'll make that coroutine the "sub-reader" for as long as its active..
03:23:53 <SevenInchBread> ...
03:24:14 <SevenInchBread> you'd need to modify the concept some... but it could effectively be the basis for a parser.
03:24:59 <oerjan> except that it is the coroutine that is the real parser.
03:25:51 <SevenInchBread> you could have the parser do an event-based call thing... and take the return value of the callback as its yield.
03:25:54 <SevenInchBread> or something.
03:26:07 <oerjan> so this is exactly the opposite of what i suggested.
03:26:18 <SevenInchBread> ...probably
03:26:26 <oerjan> if you let the parser do the calling, you don't need coroutines.
03:26:42 <SevenInchBread> ...it does
03:26:51 <SevenInchBread> that's what I'm doing right now...
03:28:06 <oerjan> ok to be more precise: if you let the parser do the calling and let the result be passed as the return value of the call.
03:30:44 <SevenInchBread> that's what Im... doing? :)
03:31:13 <oerjan> ok then
03:31:19 -!- calamari has joined.
03:31:24 <calamari> hi
03:34:42 <ihope_> I suddenly want to see the results of one of those "uptime games" in this channel.
03:34:52 <ihope_> Voice everybody, see who stays voiced the longest.
03:35:09 <ihope_> And hope the network doesn't catastrophic(al)ly fail.
03:35:15 <calamari> wouldn't be me.. I shut down every night
03:35:19 <SimonRC> I will last weeks usually
03:35:46 <ihope_> Who'd last the longest?
03:35:49 <ihope_> clog?
03:35:52 <ihope_> :-P
04:01:34 -!- GreaseMonkey has joined.
04:01:50 -!- thematrixeatsyou has quit (Nick collision from services.).
04:29:58 * SimonRC goes to bed
04:31:28 <bsmntbombdood> 9:28PM up 83 days, 4:38, 1 user, load averages: 0.10, 0.09, 0.08
04:31:54 <bsmntbombdood> Irssi uptime: 39d 2h 31m 20s
04:31:55 <bsmntbombdood> :)
04:32:09 <ihope_> Who's that, now?
04:32:16 <bsmntbombdood> me
04:32:23 <ihope_> 39 days?
04:32:32 <ihope_> Not bad :-)
04:33:00 <bsmntbombdood> that's actually not running on one of my boxes
04:33:04 <bsmntbombdood> but the 83 days is
04:37:54 -!- oerjan has quit ("leaving").
04:52:15 -!- GreaseMonkey has quit (Nick collision from services.).
04:52:33 -!- GreaseMonkey has joined.
05:44:17 -!- ihope_ has changed nick to ihope.
06:18:43 -!- calamari has quit ("Leaving").
07:43:48 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
07:50:35 -!- RodgerTheGreat has quit.
07:55:22 -!- RodgerTheGreat has joined.
07:55:34 -!- RodgerTheGreat has quit (Client Quit).
07:56:32 -!- RodgerTheGreat has joined.
07:56:44 -!- RodgerTheGreat has quit (Client Quit).
07:57:15 -!- RodgerTheGreat has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:35 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)).
08:15:06 -!- helios24 has joined.
09:13:24 -!- wooby has joined.
09:22:30 -!- Sukoshi has joined.
09:28:14 -!- sebbu has joined.
09:45:10 -!- sebbu2 has joined.
10:04:18 -!- sebbu has quit (Connection timed out).
10:13:58 -!- ShadowHntr has joined.
10:22:37 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
10:29:04 -!- wooby has quit.
10:42:05 -!- ihope_ has joined.
10:45:45 -!- nazgjunk has joined.
10:47:15 -!- cmeme has quit (Remote closed the connection).
10:59:39 -!- ihope has quit (Read error: 110 (Connection timed out)).
11:06:56 -!- cmeme has joined.
12:03:18 -!- ShadowHntr has quit ("End of line.").
12:12:22 -!- jix__ has joined.
12:43:16 -!- Sukoshi`` has quit (Read error: 110 (Connection timed out)).
12:46:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:46:43 -!- nazgjunk has joined.
13:04:16 -!- jix__ has changed nick to jix.
13:08:43 -!- tgwizard has joined.
13:12:01 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:28:28 -!- nazgjunk has joined.
13:31:49 -!- sebbu has joined.
13:47:10 -!- nazgjunk has quit ("Leaving").
13:51:13 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
14:22:57 -!- ihope_ has quit (Connection timed out).
14:28:02 -!- nazgjunk has joined.
15:01:10 -!- nazgjunk has quit ("Leaving").
15:02:18 -!- helios24 has quit ("Leaving").
15:15:19 -!- nazgjunk has joined.
15:34:41 -!- oerjan has joined.
16:11:45 -!- tgwizard has quit (Connection timed out).
16:12:15 -!- tgwizard has joined.
16:15:24 <oklopol> hmmmm
16:15:25 <oklopol> ....
16:15:32 <oklopol> this window is broken.
16:16:03 <oerjan> you better get it changed then.
16:25:45 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
16:27:52 -!- nazgjunk has joined.
16:28:19 <oklopol> yeah... just had to read the logs first
16:28:25 <oklopol> here goes!
16:28:27 -!- oklopol has left (?).
16:28:31 -!- oklopol has joined.
16:28:52 * oklopol enjoys his brand new window <3
16:31:01 <oerjan> is it made with Glass?
16:31:22 <oklopol> i doubt it
16:31:25 <oerjan> indeed, why doesn't Glass have a window system?
16:31:33 <oklopol> yep, wondering the same thing
16:31:35 <oerjan> it's illogical!
16:31:49 <oklopol> it should have a lot of inbuilt window stuff
16:32:00 <oklopol> class W to be precise
16:33:10 <RodgerTheGreat> it'd be poor object-oriented design. Windows should extend glass, adding special properties, while Glass is a more general case, also extended by classes like PetriDish and MagnifyingGlass
16:34:07 <oerjan> the windows system has to be made out of Glass, not just written in C++.
16:36:21 <RodgerTheGreat> something like fluidic logic?
16:36:43 <RodgerTheGreat> it'd be difficult to make anything mechanical entirely out of glass
16:39:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
16:39:44 -!- nazgjunk has joined.
16:39:57 <RodgerTheGreat> I guess there's always optical computing as well
16:41:09 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
16:41:17 <oerjan> right... we need an F class for fibers.
16:41:56 -!- nazgjunk has joined.
16:49:28 <oklopol> are fibers just faster threads?
16:49:56 <RodgerTheGreat> they also have less overhead, I believe, unless that's what you mean by "faster"
16:50:31 <oklopol> i meant better
16:52:12 -!- UpTheDownstair has joined.
16:53:00 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:06:08 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
17:06:47 -!- UpTheDownstair has joined.
17:07:49 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
17:08:14 -!- UpTheDownstair has joined.
17:11:11 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
17:16:06 -!- nazgjunk has joined.
17:38:13 -!- digital_me has joined.
17:59:18 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
18:11:05 -!- digital_me has quit ("Lost terminal").
18:26:03 -!- helios24 has joined.
18:32:58 -!- ShadowHntr has joined.
18:39:24 -!- goban has quit (Read error: 104 (Connection reset by peer)).
18:39:39 -!- goban has joined.
18:45:34 -!- helios24 has quit ("Leaving").
18:48:42 -!- helios24 has joined.
18:56:01 -!- jix__ has joined.
18:59:54 -!- jix has quit (Nick collision from services.).
18:59:56 -!- jix__ has changed nick to jix.
19:23:28 -!- kxspxr has joined.
19:24:27 -!- kxspxr has quit (Client Quit).
19:27:00 -!- pgimeno has left (?).
19:35:45 -!- ihope has joined.
19:35:53 <ihope> ~ctcp #esoteric Foo
19:36:03 <ihope> Eh.
19:37:25 <jix> ~ctcp #esoteric Version
19:37:42 <jix> ~ctcp #ruby-de Version
19:37:44 <ihope> Heh.
19:38:56 <ihope> ...I could have just used /names, eh?
19:39:24 <jix> hm?
19:39:33 <jix> yeah
19:45:05 * bsmntbombdood writes a VM
19:45:10 <bsmntbombdood> register machine
19:47:21 <bsmntbombdood> for no particular reason
19:48:43 <ihope> Minsky?
19:50:23 <bsmntbombdood> no
19:53:04 <bsmntbombdood> Segmentation fault (core dumped)
19:53:25 <bsmntbombdood> wtf.
19:54:21 <bsmntbombdood> hmmm
19:54:38 <bsmntbombdood> that's odd
19:54:46 <oerjan> off-by-one error?
19:55:27 <oerjan> hint: add bounds checks
19:55:30 <bsmntbombdood> it segfaults at cur = code[state.pc], saying "Cannot access memory at address &cur"
19:55:39 * SimonRC sends oerjan to get the keys to the spin-lock.
19:55:52 <oerjan> ???
19:56:31 <oerjan> now that does sound strange
19:56:50 <oerjan> maybe cur is the result of a cast?
19:56:59 <SimonRC> And while you're there, could you kill the idle process?
19:57:02 <SimonRC> :-P
19:57:11 <bsmntbombdood> nope
19:57:16 <bsmntbombdood> struct instruction cur;
19:57:41 <oerjan> is it a global?
19:57:46 <SimonRC> Sorry, I've just been reading about fictional objects and tasks that noobs are sent to fetch/do.
19:57:51 <bsmntbombdood> no, local
19:58:09 <SimonRC> bsmntbombdood: some architectures pass structs by reference in C.
19:58:15 <SimonRC> I have read about such things.
19:58:27 -!- SevenInchBread has joined.
19:58:43 <SimonRC> But you'd only be able to break that by writing an ill-typed program.
19:58:58 <bsmntbombdood> other locals are broken too
19:59:04 <SimonRC> :-S
19:59:20 <oerjan> is cur a parameter?
19:59:36 <bsmntbombdood> no
19:59:58 <bsmntbombdood> stack is undereferenceable too
20:00:17 <ihope> Wait... is this Python or no?
20:00:22 * SimonRC asks bsmntbombdood to find out the password for the root window.
20:00:42 * bsmntbombdood laughs at ihope
20:00:47 <oerjan> have you set any strange options?
20:01:02 <bsmntbombdood> nope
20:01:04 <bsmntbombdood> gcc -g
20:01:31 <SimonRC> (The root window in X Windows is "root" in the graph theory sense, not like the "root user".)
20:01:58 <bsmntbombdood> mmm hmmm
20:02:04 * SimonRC asks ihope to fetch an optical mouse ball from the cupboard.
20:02:13 <bsmntbombdood> heh
20:02:17 <SimonRC> sorry, i am having an attack of silly creativity.
20:02:29 * ihope does so
20:02:42 <oerjan> :D
20:03:10 <bsmntbombdood> this is weird
20:03:32 <oerjan> what other variables are broken?
20:03:47 <bsmntbombdood> stack, an array
20:03:49 <SevenInchBread> hmmm... bugSophia actuallys looks pretty fun... I should implement it.
20:04:06 <bsmntbombdood> of struct state s
20:04:33 <SimonRC> maybe your linker fucked up
20:05:04 <bsmntbombdood> It's all one file
20:05:19 <oerjan> pastebin
20:06:07 <bsmntbombdood> http://pastebin.ca/381344
20:06:32 <bsmntbombdood> line 17 is where is segfaults
20:08:47 <oerjan> immediately, or does it go throught the loop?
20:09:40 <bsmntbombdood> immediatly
20:09:42 <oerjan> what happens if you make cur global?
20:11:05 <bsmntbombdood> segfaults on line 18
20:11:39 -!- ShadowHntr has quit ("End of line.").
20:12:39 -!- helios24 has quit ("Leaving").
20:14:11 <oerjan> well i give up
20:25:34 -!- oerjan has quit ("leaving").
20:26:35 <bsmntbombdood> this is weird
20:28:06 * jix is writing a compiler
20:28:13 <jix> but it's for a non esoteric language
20:28:17 <jix> so it's a bit offtopic
20:28:37 <bsmntbombdood> we don't care
20:28:38 <oklopol> i just coded a working game ai in python
20:28:43 <oklopol> took about 3 hours
20:28:47 <oklopol> ...and now it's gone
20:28:56 <jix> how could that happen?!
20:29:03 <oklopol> i have no idea.
20:29:13 <oklopol> i opened the file and it loaded a 4 hour old version
20:29:14 <oklopol> :)
20:29:28 <oklopol> maybe python doesn't save on alt-f-s
20:29:31 <oklopol> like notepad
20:29:41 <oklopol> i just do thatit does
20:29:44 <oklopol> *it does
20:29:52 <oklopol> so... no idea
20:30:08 <oklopol> hmm... maybe i'll rewrite it... what could be more fun
20:30:17 <jix> uhm how could python save?
20:30:22 <oklopol> pyidle
20:30:30 <jix> hmm
20:30:31 <jix> dunno
20:30:46 <oklopol> idle is the name i think
20:30:51 <oklopol> an ide for python
20:30:51 -!- sebbu2 has joined.
20:31:27 <jix> i'm writing my compiler using test driven development
20:31:55 <oklopol> i don't really feel like coding anymore... i'll go kill myself or something ->
20:32:04 <jix> oklopol: nah don't do that
20:32:26 <jix> oh and i don't have a girlfriend anymore!
20:32:32 <oklopol> and i do!
20:32:40 <oklopol> just got one
20:32:41 <jix> oklopol: you have one?
20:32:44 <oklopol> yeah
20:32:47 <jix> i got one a month ago
20:32:53 <oklopol> :D
20:33:08 <jix> so you know what will happen to you in a month
20:33:10 <oklopol> i don't agree with your "prefer spending time with her over programming" though
20:33:15 <oklopol> what?
20:33:42 <ihope> oklopol: you'll turn into jix, of course.
20:33:45 <ihope> You know German, right?
20:33:54 <lament> If not, you have a month to learn it.
20:34:00 <ihope> Aye.
20:34:05 <ihope> And to move to Germany.
20:34:16 <ihope> Or at least proxy through Germany, or something.
20:34:29 <jix> oklopol: no i don't hope those things will happen to me... i got really depressed and everything before we decided to uhm ... "break up" (sais my dictionary)
20:34:30 <oklopol> hmm... i'm not sure if that's what jix was about to say
20:34:46 <SevenInchBread> ....business programming always makes me nauseas...
20:35:05 <ihope> SevenInchBread: is it always done in COBOL?
20:35:06 <jix> *will happen to you
20:35:22 <oklopol> jix i'm not that social... i think i'll manage a break-up
20:35:33 <jix> oklopol: no the break-up wasn't the problem
20:35:46 <SevenInchBread> but... taking 3 hours to type out the (truncated) 99 bottles of beer song in a language that doesn't even have an implementation... is the kind that gets me excited.
20:35:47 <jix> the time before that
20:35:50 <oklopol> :P
20:35:57 <jix> 1.5 weeks before that
20:36:15 <lament> one would think being social makes it _easier_ to manage a break-up
20:36:31 <oklopol> hmm... social is not the word
20:36:34 <oklopol> human
20:36:36 <oklopol> maybe
20:39:34 <jix> well but now i have time to code :)
20:40:41 <oklopol> i'm pretty furious now, fuck this
20:40:49 <oklopol> python
20:40:52 <oklopol> i'll strangle it
20:40:59 <lament> python is nice.
20:41:13 <bsmntbombdood> WHY YOU SEGFAULT!
20:41:14 <oklopol> python is mean
20:43:29 -!- sebbu3 has joined.
20:50:26 -!- sebbu has quit (Connection timed out).
21:02:02 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
21:07:24 <bsmntbombdood> ok, figured it out
21:07:35 <bsmntbombdood> I was requesting too much memory from the stack
21:32:01 <bsmntbombdood> I am confused
21:34:32 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:34:37 -!- goban has joined.
21:42:47 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:43:02 -!- goban has joined.
21:48:45 <bsmntbombdood> ok my vm fails
21:50:04 <SevenInchBread> mmm... http://esolangs.org/wiki/BugSophia#99_bottles_of_beer_.28truncated_lytics.29 <--coolest looking 99BoB ever.
21:50:32 <bsmntbombdood> heh
21:51:59 <bsmntbombdood> I thought I had a good idea but I didn't
21:53:58 <SevenInchBread> >.>
21:54:37 <bsmntbombdood> Can't figure out how to return values from subroutines
21:55:23 <SevenInchBread> in?
21:55:47 <bsmntbombdood> This little vm I was writing
21:56:19 <SevenInchBread> I've never figured out what a vm was other than some kind of abstract-assembly type thing.
21:56:26 <bsmntbombdood> yeah
21:57:09 <SevenInchBread> either way... your system architecture needs to be able to work with the vm... so I don't get how it's any better than without it. :P
21:57:49 <bsmntbombdood> ?
21:58:45 <SevenInchBread> that's supposed to be the advantage of a VM right? You don't need to be compatable with the architecture underneath.
21:58:51 <bsmntbombdood> yeah
21:59:34 <SevenInchBread> hmmm.... once I make a bS interpreter... I should give it a count mode so that it'll keep track of how many "threads" were created during execution.
21:59:53 <SevenInchBread> the 99 BoB would be at least a hundred.
22:00:37 <SevenInchBread> they're not really threads to the OS... but they work concurrently...
22:04:07 <oklopol> i remade the ai :DDDDDDDDDDDDDDDDDD
22:04:16 <oklopol> was a 20 min job on the second attempt :P
22:04:20 <oklopol> okay, 30
22:04:23 <oklopol> maybe 40
22:04:26 <oklopol> but you get the point
22:04:32 <SevenInchBread> bsmntbombdood, but doesn't the VM have to be compatable with the architecture?
22:04:45 <SevenInchBread> -nod- things are way easier once you know how you're going to do them. :)
22:05:24 <SevenInchBread> let's see.... the minimum amount of threads the 99 bottles program would create is....
22:06:32 <bsmntbombdood> SevenInchBread: The point of a vm is to play with it's assembly language
22:06:44 <bsmntbombdood> It's nothing more than an implementation of a language
22:08:00 <SevenInchBread> (25 * 99) for the strings.... 1 for the counter... and 1 + (27 * 99) for the main loop
22:08:11 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:09:29 <SevenInchBread> 2 + (52 * 99) ...mmm, -opens up Python to do the next bit-
22:09:50 <SevenInchBread> 5150
22:11:31 <bsmntbombdood> zomg, that's the sum of all numbers below 100, + 200
22:13:30 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:13:39 -!- goban has joined.
22:13:42 <SevenInchBread> ...wow... what a coincidence?
22:16:37 <bsmntbombdood> indeed
22:20:36 <SevenInchBread> oklopol, What kind of ai? I admit I'm a little curious... I wouldn't know where to begin with ai.
22:20:51 -!- sebbu has joined.
22:21:25 <oklopol> a brute force ai :)
22:21:46 <oklopol> the game's rules are somewhat complicated... i took the short road
22:22:27 <oklopol> just a board game by me and a friend... would have rules online, but once again in finnish
22:22:28 <SevenInchBread> brute force... that's where the ai simply simulate every possible situation that could occur and determine which is best?
22:22:35 <oklopol> yes
22:22:57 <SevenInchBread> How far do you go with each of them?
22:23:12 <oklopol> you can specify it for the
22:23:13 <oklopol> ai
22:23:32 <oklopol> but, the problem is never depth, it's width
22:23:35 <oklopol> bredth
22:23:37 <oklopol> whatever
22:24:15 <SevenInchBread> O think a fun game to play would be like "befunge hockey chess"... where you have two goals and take turns placing befunge characters on the field inbetween instruction ticks or something.
22:24:45 <oklopol> because a human will easily recognize it does not matter in which order he does some 20 moves... while it's very hard to make the computer do the same
22:24:54 <SevenInchBread> and try to be the first to complete the specified object and output the results to your output stream. :)
22:25:27 <oklopol> the game is kinda sick, every turn means putting a piece on the board and doing a lot of recursive jumping...
22:25:40 <oklopol> hmm, sounds like fun :D
22:25:53 <oklopol> i wish i had irl friends who could program befunge...
22:26:15 <bsmntbombdood> heh
22:26:25 <SevenInchBread> could rig up some over-the-network thing with a basic GUI
22:26:38 <oklopol> yeah, actually not that hard
22:26:43 <SevenInchBread> IN TKINTER.
22:26:45 <oklopol> do it and well have fun together ;D
22:26:45 <SevenInchBread> :)
22:26:51 <SevenInchBread> ...suuure
22:26:53 <oklopol> *we'll
22:27:21 <SevenInchBread> ...I really don't want to have to swap IP addresses... not for security or anything... I'm just really lazy
22:29:10 <bsmntbombdood> http://freedns.afraid.org/
22:29:47 <SevenInchBread> ....sweet. :)
22:31:46 <SevenInchBread> ...will they spam your email? :)
22:34:14 -!- UpTheDownstair has joined.
22:34:35 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:35:30 -!- UpTheDownstair has changed nick to nazgjunk.
22:37:44 <bsmntbombdood> no
22:40:12 -!- sebbu3 has quit (Connection timed out).
22:41:37 <bsmntbombdood> (am bored i)
22:41:55 <oklopol> okay... anybody wanna explain something to me
22:41:59 <oklopol> (wait, i'll tell)
22:42:27 <oklopol> i made a timeout for my algo, it only does 300000 iterations before terminating
22:42:41 <bsmntbombdood> heh
22:42:46 <oklopol> this way i get 35 moves (the algo tries to find the longest combo)
22:43:49 <oklopol> okay, i have no idea why, but i put if iterations>100000 and random.random()<0.1: return combo << a short termination randomly in every 10th recursive call
22:44:23 <oklopol> and suddenly it finds length 50 combos
22:44:58 <oklopol> (i have manually archieved a 15 combo from that starting point :P)
22:45:48 <bsmntbombdood> It's a sign from the jeebus
22:46:27 <SevenInchBread> hmm... alright.
22:46:37 * SevenInchBread got a subdomain... now just needs to figure out how to access it.
22:46:41 <oklopol> actually... it of course does the 300000 iterations anyway, because i just increase the counter when i call the function... so it won't be increased when short terminating
22:46:56 <SevenInchBread> aah.. wait nevermind.
22:47:05 <SevenInchBread> duh... it just goes to my IP address. :P
22:47:25 <oklopol> you gotta love it when you get a feeling you should do something no matter if it seems not to make sence... and it doubles the capability of your program
22:48:55 <SevenInchBread> hmm... now I need to find a decent befunge interpret that works incrementally instead of all at once.
22:49:01 <SevenInchBread> otherwise I'll just make my own.
22:51:08 <oklopol> make your own!
22:51:30 * oklopol loves torturing his computer
22:52:11 <SevenInchBread> ...I wonder how terrible of a server my computer makes. :)
22:52:22 * SevenInchBread has the cheapest Dell he could have bought.
22:53:31 -!- tgwizard has quit (Remote closed the connection).
22:53:43 <oklopol> muahaha! two million iterations!
22:54:01 <SevenInchBread> hmmm... usually servers are designed to have a lot of storage space and RAM right?
22:54:09 <oklopol> i don't know
22:54:17 <oklopol> i don't play with hardware
22:54:21 <oklopol> never seen a computer naked
22:54:35 <SevenInchBread> I doubt you'd design one with high-end graphics cards. ;)
22:54:51 <oklopol> huh?
22:54:56 <oklopol> server you mean?
22:55:02 <oklopol> ah yeah
22:55:10 <oklopol> true, might be kinda redundant
22:56:41 <oklopol> i've done 3 semesters of cisco ccna... but i have no idea how to set up a server
22:57:02 <bsmntbombdood> and proccessor...and bus speed...
22:58:56 <bsmntbombdood> and 1337n355
23:02:36 <SevenInchBread> it would depend on what you're using it for though.
23:03:25 <SevenInchBread> a large website would want a lot of disk space... while a search engine would want massive massive hoards of anything good.
23:14:35 <oklopol> kay... a combo of 901 moves... record move is 35 from last night...
23:14:57 <oklopol> i don't think this is such a good training opponent after all -______-
23:25:54 * SimonRC procedes to write a program with a runtime that explodes like ackermann's function.
23:26:11 <SimonRC> It is only for the purpose of writing a proof, though.
23:26:20 <SimonRC> I just need to show something is copmputable.
23:26:37 <oklopol> 1+1 is pretty computable
23:26:48 <oklopol> doesn't explode though
23:27:03 <SimonRC> nonono, a particular thing
23:27:36 <oklopol> i misread your typo, sorry
23:27:37 <oklopol> :P
23:27:46 <oklopol> hmm
23:27:49 <oklopol> there was no typo
23:27:56 <oklopol> yes there was
23:34:13 <SevenInchBread> ....this is basically just an echo server.
23:34:28 <SevenInchBread> takes input and shouts it out to everyone.
23:38:32 <SevenInchBread> ...with a number next to it.
23:38:53 <bsmntbombdood> what's the point of ackermann's function
23:39:20 -!- oerjan has joined.
23:39:50 -!- nazgjunk has quit ("Leaving").
23:53:03 -!- Asztal has joined.
23:56:02 <oerjan> bsmntbombdood: in general, or in SimonRC's program?
23:56:17 <bsmntbombdood> in general
23:56:56 <oerjan> it was invented in order to show that there are functions that can be computed with general recursion but not with primitive recursion.
23:57:15 <SevenInchBread> yaaay... got the server done..
23:57:39 <SevenInchBread> now I just need to flesh out the GUI and an interpreter thing.
23:58:17 <oerjan> in order to do this, it had to grow at a whopping speed.
23:58:18 -!- RobHu has joined.
23:58:19 <SevenInchBread> in the meantime... I shall turn my domain name into AN AWESOME WEBSITE.
23:58:31 <SevenInchBread> where's a lazy-to-use HTML server program I could use.
23:58:40 <SevenInchBread> er...
23:58:42 <SevenInchBread> HTTP
23:59:09 <Asztal> camping!
23:59:16 <SevenInchBread> ...heh, I'll just write one... while I'm at it.
23:59:37 <oerjan> Asztal: Here? And did you bring a tent?
2007-03-05
00:05:22 <Asztal> well, actually, camping is a nice little 4kB framework on top of acres of other code ¬_¬
00:05:22 -!- lupine_85 has joined.
00:05:22 <Asztal> http://code.whytheluckystiff.net/camping/browser/trunk/lib/camping.rb <- that's pretty much why I like it
00:05:22 <RobHu> please print the sequence 1 to 10
00:05:22 <Asztal> 1..10
00:05:22 <SevenInchBread> link?
00:05:22 <RobHu> lol
00:05:22 <oerjan> 1 2 3 4 5 6 7 8 9 10
00:05:22 <RobHu> lupine_85: http://esoteric.voxelperfect.net/wiki/IRP
00:05:22 <RobHu> thank you :-)
00:05:22 <SevenInchBread> ....that's the whole program?
00:05:22 <Asztal> that's most of the code, there's a bit more to run it as a standalone server (via Mongrel, FastCGI or Webrick) :P
00:05:22 <SevenInchBread> ...is there a lazier way to get it?
00:05:22 <Asztal> it's more of a joke framework, I think, but I love it
00:05:22 <Asztal> through rubygems
00:05:22 <RobHu> people write real stuff in camping
00:05:22 <SevenInchBread> ....pardon?
00:05:22 <Asztal> Do you know any Ruby? That would be a nice start.
00:05:22 <lupine_85> RobHu: ah...
00:05:22 <lupine_85> sleep(lupine_85);
00:05:22 <SevenInchBread> ...nope
00:05:34 * SevenInchBread is on Windows... probably doesn't have a Ruby interpreter thing.
00:05:52 <bsmntbombdood> Please output the proof that P=NP.
00:05:53 <SevenInchBread> BUT I SHALL GET IT
00:06:53 <oerjan> bsmntbombdood: Sorry, that question is undecidable. Of course that cannot be proved.
00:07:29 <bsmntbombdood> x^2 - x^2 = x^2 - x^2
00:07:41 <bsmntbombdood> x(x - x) = (x + x)(x - x)
00:07:48 <bsmntbombdood> x = x + x
00:07:50 <bsmntbombdood> 1 = 2
00:07:52 <oerjan> BZZT!!!! wrong!
00:08:29 <bsmntbombdood> I know, I know
00:08:39 <oklopol> bsmntbombdood no you don't
00:08:52 <oerjan> U R ZEH IGNORANT
00:09:10 <bsmntbombdood> I DIVIDE BY ZERO ALL THE TIME!
00:09:43 <lupine_85> mm, me too
00:09:51 <SevenInchBread> I'M DIVIDING SOMETHING INTO ZERO PARTS ALL THE TIME.
00:10:15 <SevenInchBread> hmmm... I wonder if you could use division by zero to do computations.
00:10:17 <SimonRC> It's ok to divide by zero if you are working in an appropriately defined superset of Q or R.
00:11:53 <SevenInchBread> lol tk is the best GUI toolkit evar
00:12:10 <lament> use curses
00:12:18 <SimonRC> It's also possible (with the right flags set) to divide by zero in F, though F is not a ring, field, or anything nice like that.
00:12:35 <oerjan> what is F?
00:12:36 <bsmntbombdood> ha, rings
00:12:42 <SimonRC> F being the set and operations of IEEE floating point numbers.
00:12:45 <bsmntbombdood> I tried to understand GNFS once
00:12:51 <SimonRC> ??
00:13:01 <SimonRC> generalised normal forms?
00:13:18 <bsmntbombdood> general number field sieve
00:13:29 <bsmntbombdood> fast(est) factoring algorithm
00:14:04 <SimonRC> BTW, you know that primality-testing is in P, right?
00:14:18 <SimonRC> it was proven a few years ago, with a rather simple algorithm.
00:14:37 <bsmntbombdood> oh?
00:14:55 <bsmntbombdood> I just know of the probabalistic primality testing algorithms
00:15:48 <SimonRC> just because it's in P doesn't mean it's fast.
00:16:17 <SimonRC> The probabilistic ones are actually fast, rather than just being in P.
00:16:34 <SimonRC> I am, of course, considering the length of teh prime, not its value.
00:16:38 <bsmntbombdood> what's the algorithm?
00:19:10 <oklopol> someday i'll understand p/np
00:19:27 <SevenInchBread> yaay... I'm getting Ruby.
00:19:43 <oklopol> rube all over you
00:19:44 * SevenInchBread has been procrastinating geting other language interpreters... now he'll have more incentive to try out Ruby.
00:19:49 <oerjan> someday the world might understand p/np.
00:20:25 <oklopol> oerjan i don't even understand what's there to understand
00:20:30 <oklopol> well said...
00:21:35 * SevenInchBread should make an EsoUI toolkit.
00:21:37 <oerjan> well p/np is about _how_ much harder it is to check a solution than to find it in the first place.
00:21:50 <oerjan> eh, the other way around.
00:22:59 <Asztal> Ruby is OK, as long as you don't try to interop with it. It's C API is so horribly mangled...
00:23:42 <SevenInchBread> It looks a lot less conservative than Python... which is kinda good... I'm starting to get bored with Python.
00:23:48 <SevenInchBread> It's -too- consistent. :P
00:26:41 <SevenInchBread> ...wow... rubygems is the easiest thing I've used ever.
00:27:54 <oklopol> oerjan i know it's something like that... but is it just that?
00:30:26 <SevenInchBread> hmmm... so... I'll need to brush up on some Ruby to use camping nyah?
00:30:36 <lament> doesn't ruby kinda suck?
00:31:53 <oerjan> well you have to define it precisely mathematically of course. And then there are the NP-complete problems, which are the hardest among those that have easy to check solutions.
00:33:11 <Asztal> how so, lament? I'd say the C side of things does suffer from quite a bit of suckage, but the language ideas seem quite nice.
00:35:16 <SevenInchBread> heh... if Ruby sucks the tuitorial reading sure shows some convincing examples.
00:36:20 <SimonRC> Does ruby have an interactive prompt?
00:36:25 <Asztal> irb
00:36:39 <bsmntbombdood> yes
00:36:50 <oerjan> in a sense the most fundamental NP-complete problem is this: Given a Turing-machine with input, does it halt in a "yes" state after a polynomially bounded number of steps?
00:37:02 <bsmntbombdood> heh
00:37:52 <oerjan> *nondeterministic
00:37:59 <oerjan> always that.
00:38:19 <lament> Asztal: Perl heritage.
00:39:28 <Asztal> It's a lot more usable than Perl, if you ask me (which for me, was the main problem)
00:39:39 <Asztal> %@$£@£x means what exactly?
00:40:00 <SevenInchBread> I always thought Ruby inherited a lot from Smalltalk and Eiffel?
00:40:08 <SevenInchBread> It doesn't really seem all that Perly.
00:40:13 <oerjan> or maybe an other equivalent definition: Given a Turing-machine with _part_ of its input specified, is there an assignment for the rest of its input that makes it halt yadda yadda.
00:40:18 <lament> Asztal: sure it's more usable, but i'm talking about the heritage.
00:40:34 <SevenInchBread> ...what does that have to do with anything then?
00:40:34 <lament> Asztal: the conscious decision on the part of the language designers to borrow from Perl.
00:40:45 <SevenInchBread> ...Perl isn't all bad.
00:40:50 <lament> Asztal: that is a sign of deep brain damage
00:41:03 <bsmntbombdood> heh
00:42:01 <oerjan> And then Cook's theorem shows that you can reduce all that to the much simpler SAT problem.
00:42:29 <Asztal> I'd agree that many parts of Perl (esp. its syntax and reference semantics) are brain damaging, but it wasn't all bad, was it?
00:49:20 <SevenInchBread> Nothing special, but nothing terrible either.
00:50:09 <SevenInchBread> Ruby looks cool so far... I like the non-symboly syntax so far... but the "end" thing might be annoying. :P
00:54:23 <Asztal> I wish they wouldn't use => for hashes though. That's so annoying to type!
00:55:45 <SevenInchBread> I would use like -> or something.
00:56:01 <lament> I would use :
00:56:06 <Asztal> I'd just use : like normal people :)
00:56:16 <SevenInchBread> pfft.. normal people.
00:56:51 <bsmntbombdood> like python
00:57:36 <SevenInchBread> It's pretty rare that you use that syntax unless you're just making a really simple lookup table.
00:57:47 <oklopol> a is for apple, b is for banana
00:58:02 <oklopol> that's what i'd use
00:58:30 <SevenInchBread> and I'd use string keys by default...
00:58:42 <SevenInchBread> ...the quotes get kind of tiring when you're a lazy bastard.
00:59:15 <SevenInchBread> well... nevermind
00:59:19 <SevenInchBread> it could be a variable. :P
00:59:40 <bsmntbombdood> yeah
01:01:39 <SevenInchBread> I like the ! and ? convients too... with Python you just have to know from experience.
01:01:43 <SevenInchBread> conventions
01:02:57 <oklopol> why do i have my greatest programming urges at 3 o'clock in the morning?!?! :<
01:03:04 <oklopol> i gotta sleep... -------->
01:06:48 <Asztal> this ruby code is valid:
01:06:50 <Asztal> wazup?!!!?!??1:!
01:06:50 <SevenInchBread> ...I like the range syntax.
01:07:03 <Asztal> wait, that wasn't all of it, wazup?!!!?!??1:!!??
01:10:29 <lament> the strange range syntax?
01:13:12 <oerjan> better than deranged syntax.
01:16:58 <bsmntbombdood> Asztal: what does that mean?
01:18:03 <Asztal> wazup? is a function name, ?? is equal to the character literal '?' (so !!?? == 1), I don't know about the rest, I'm very sleepy >_<
01:18:53 -!- sebbu2 has joined.
01:24:57 <lament> what do ? and ! do?
01:26:17 <Asztal> here, they do different things in different places :/
01:27:22 <Asztal> it calls wazup?(true), eventually
01:29:38 <SevenInchBread> I thought they were just naming conventions
01:30:27 <Asztal> oh, you mean inside the name, yes, they are
01:31:27 <Asztal> ! is generally applied to mutator methods,, and ? to question-like methods ( "flibble".empty?() )
01:31:29 <EgoBot> Huh?
01:32:55 -!- Asztal has quit ("+++ Insufficient cheese error +++").
01:37:19 -!- sebbu has quit (Connection timed out).
01:37:25 <oerjan> a convention borrowed from scheme.
01:39:50 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
01:42:05 <lament> both conventions are fairly easy to actually enforce
01:42:30 -!- pikhq has joined.
01:45:50 <bsmntbombdood> the predicate one?
01:46:08 * pikhq returns, not wishing to declare his ressurection. . .
02:01:33 * oerjan stealthily calls the pope.
02:03:44 * pikhq stealthily calls protestantism
02:04:54 * oerjan stealthily calls the Russian patriarch.
02:05:11 * SimonRC sealthily calls main()
02:05:38 <bsmntbombdood> 973,694,665,856,161
02:05:40 * pikhq stealthily calls in the Chewbacca Defense
02:05:59 <SimonRC> bsmntbombdood: ???
02:06:04 <bsmntbombdood> the pope is the biggest cardinal
02:06:10 <bsmntbombdood> but every pope has a successor
02:06:21 <SevenInchBread> hmmm...
02:06:31 <SevenInchBread> which way do you guys like to work?
02:06:32 <bsmntbombdood> SimonRC: a charmicheal number
02:06:38 <SevenInchBread> top-to-bottom or bottom-to-top?
02:07:12 <SevenInchBread> I find it easier to play with the glue before I make the parts... I'll call a bunch of methods I haven't defined yet.
02:08:02 <oerjan> with this Forte interpreter I started bottom-up but now i am doing top-down.
02:08:18 <SevenInchBread> hmmm... actually I do that a lot too.
02:08:40 <SevenInchBread> I'll make a few little parts to begin with... but later on I start going the other way..
02:08:52 <SevenInchBread> heh... so I guess I "meet in the middle" when I'm done.
02:11:03 <SimonRC> bsmntbombdood: define
02:13:23 <bsmntbombdood> n is a charmicheal number iff n is not prime and a^(n-1) cong 1 (mod n) for-all integers a that are relatively prime to n
02:14:39 <SimonRC> Ah, they are to do with a quick test for primality that occasionally flags a composite as prime, right?
02:14:59 <bsmntbombdood> fermat primality test, yes
02:15:47 <SimonRC> I guessed that from "n is not prime" and the fact the the number you named was so large
02:16:21 <bsmntbombdood> there's small charmicheal numbers too
02:16:33 <bsmntbombdood> http://www.research.att.com/~njas/sequences/?q=id%3aA002997&p=1&n=10&hl=0
02:30:17 * ihope stealthily and unexpectedly calls the Spanish Inquisition
02:30:46 <oerjan> that second part is redundant, ihope.
02:32:18 <ihope> Aww.
02:32:24 <pikhq> NOBODY expects the Spanish Inquisition!
02:45:24 <SevenInchBread> ...so...
02:45:53 <pikhq> Yes. We're a bunch of geeks who need lives. . .
02:45:58 <bsmntbombdood> yes.
02:46:04 <bsmntbombdood> ooh fun
02:46:31 <pikhq> Why else would we know what the hell an infinite tape allows us to do?
02:47:50 <bsmntbombdood> n is a fibonacci number if the intersection of [phi*n - 1/n, phi*n + 1/n] and the set of positive integers is not empty
02:48:04 <bsmntbombdood> s/if/iff/
02:48:40 <pikhq> And that demonstrates what I'm talking about quite well. :)
02:49:07 <bsmntbombdood> that is, the interval contains a positive integer
02:50:01 <oerjan> what if you take negative integers? do you get the continuation of fibonacci numbers to the left?
02:50:59 <bsmntbombdood> a few trials say yes
02:51:04 <oerjan> hm, somewhat dubious ...,8,-5,3,-2,1,-1,0,1,1,
02:51:25 <oerjan> eh wait.
02:51:31 <oerjan> that -1 is an error.
02:52:28 <oerjan> not much better ...,-8,5,-3,2,-1,1,0,1,1,
02:52:47 <bsmntbombdood> what?
02:53:27 <oerjan> every number is the sum of the two left ones.
02:53:37 <oerjan> *to the left
02:54:05 <bsmntbombdood> oh
02:54:16 <oerjan> so the continuation is not quite the same as the negatives.
02:54:27 <bsmntbombdood> but the test is
02:54:32 <oerjan> yep
02:54:36 <pikhq> I'm rather positive that one couldn't extend the fibonacci sequence purely to the negatives. . .
02:54:43 <pikhq> It'd be a different sequence.
02:54:52 <pikhq> 0,-1,-1,-2,-3...
02:56:16 <oerjan> another sequence of the form a*phi^n + b/phi^n.
02:56:23 * SimonRC goes to bed.
02:59:33 <oerjan> eh, a*phi^n + b/(-phi)^n, I think.
03:03:00 * bsmntbombdood watches 2 2 18^^p scroll by in dc
03:04:09 <bsmntbombdood> 2 2 20^^p, even better
03:07:34 <pikhq> 2 2 20^^p20^p20^p20^p20^p20^p is better still.
03:07:42 <pikhq> More abuse of RPN! MORE!!!
03:08:22 <bsmntbombdood> dc is pretty esoteric
03:09:12 <pikhq> No it's not. Seems pretty clean to me unless you try to use it as a Turing machine. :p
03:09:41 <bsmntbombdood> it's esoteric
03:11:57 <bsmntbombdood> 0[2 2 12^^plax]salax
03:13:07 <bsmntbombdood> oops i mean 0[2 2 12^^+plax]salax
03:14:56 <bsmntbombdood> prints 2^(2^12), 2^(2^12)*2, 2^(2^12)*3...
03:20:04 <bsmntbombdood> and it can pretty easily be used as a turing machine
03:20:15 <bsmntbombdood> it has 257 stacks
03:26:27 <bsmntbombdood> hahahaa
03:26:30 <bsmntbombdood> 1000k26o2vp
03:28:45 <bsmntbombdood> print 1000 decimal places of sqrt(2) in base 36
03:28:59 <bsmntbombdood> s/36/26/
03:30:11 <bsmntbombdood> dc will be my sole language from now on
03:30:32 <bsmntbombdood> it's functional too!
03:30:51 <pikhq> Now implement regexps in it.
03:31:06 <bsmntbombdood> I've never done that in a real language
03:32:57 <bsmntbombdood> too bad it doesn't optimize tail recursion
03:33:06 <bsmntbombdood> [7aPlax]salax segfaults
03:33:59 <bsmntbombdood> oooh
03:34:05 <bsmntbombdood> the openbsd version doesn't
03:35:11 <bsmntbombdood> looks like it optimizes tail recursion!
03:35:53 <pikhq> Or else it has infinite storage.
03:36:20 <bsmntbombdood> Maybe.
03:36:20 <bsmntbombdood> :P
03:36:50 <bsmntbombdood> up to a million tail calls...
03:40:09 <bsmntbombdood> brainfuck:
03:40:14 <bsmntbombdood> + is 1+
03:40:18 <bsmntbombdood> - is 1-
03:40:23 <bsmntbombdood> > is Sa
03:40:27 <bsmntbombdood> < is La
03:40:42 <bsmntbombdood> . is daP
03:43:36 <pikhq> Input's a bitch.
03:44:39 <bsmntbombdood> so is []
03:46:08 <bsmntbombdood> oh cool it's got arrays too
03:48:29 -!- GreaseMonkey has joined.
03:48:34 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
03:54:25 -!- oerjan has quit ("leaving").
03:54:58 <bsmntbombdood> hrm
03:55:30 <bsmntbombdood> do this: if pop() is zero, push 1, else 0
03:55:30 <bsmntbombdood> ?
03:55:45 <bsmntbombdood> I only see if, not if-then-else
04:16:43 <bsmntbombdood> doing macros through registers in = is annoying
04:16:50 <bsmntbombdood> why not just take it off the stack?
04:24:43 <bsmntbombdood> 0sa1sb20sl[lalb+stlbsaltsblbpll1-dsl0!=c]sclcx
04:24:51 <bsmntbombdood> ^^ print the first 20 fibonacci numbers
04:25:14 <GreaseMonkey> uh, what lang is this?
04:26:00 <bsmntbombdood> dc
04:26:08 <bsmntbombdood> sweet, eh?
04:26:33 <GreaseMonkey> is it under development?
04:26:37 <bsmntbombdood> no
04:26:40 <bsmntbombdood> see dc(1)
04:29:33 <bsmntbombdood> how sweet is that
04:30:22 -!- chuckfromchan has joined.
04:30:28 -!- chuckfromchan has left (?).
04:30:38 <GreaseMonkey> he must've seen me
04:30:46 -!- pikhq has quit (Read error: 110 (Connection timed out)).
04:37:23 <bsmntbombdood> can't figure out drop either
04:38:10 <GreaseMonkey> wait, where's the dc reference?
04:38:20 <bsmntbombdood> dc(1)
04:38:35 <GreaseMonkey> at?
04:38:49 <GreaseMonkey> i looked at man 1 dc, nothing came up
04:38:52 <bsmntbombdood> /usr/share/man
04:38:59 <bsmntbombdood> one sec
04:39:03 <bsmntbombdood> http://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html
05:02:51 <bsmntbombdood> gah
05:02:55 <bsmntbombdood> how to do drop?
05:03:44 <bsmntbombdood> [SaSbScLaLcLbdSa+LarSaSbScLbLaLc1-d0!=f]sf
05:03:53 <bsmntbombdood> does fibonacci numbers nicer
05:04:03 <bsmntbombdood> without using registers for storage
05:04:53 <bsmntbombdood> funny how long it took for me to come up with those few characters
06:06:44 <AfterDeath> heh
06:11:41 <GreaseMonkey> afk food
06:43:36 <GreaseMonkey> back
07:12:07 <GreaseMonkey> ~help
07:18:11 -!- GreaseMonkey has changed nick to ^_`.
07:50:11 -!- RodgerTheGreat has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:25:21 -!- Sukoshi` has joined.
08:34:39 -!- Sukoshi has joined.
08:35:02 -!- ^_` has quit ("gtg gnight").
08:35:40 -!- RodgerTheGreat has joined.
08:45:50 -!- jix has joined.
08:55:53 -!- ome has joined.
08:56:19 -!- ome has quit (Client Quit).
09:01:29 -!- helios24 has joined.
09:21:23 -!- nazgjunk has joined.
09:35:42 -!- sebbu has joined.
09:37:36 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
09:42:43 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
09:48:11 -!- nazgjunk has joined.
09:50:45 -!- anonfunc has joined.
09:52:36 -!- nazgjunk has quit (Client Quit).
10:09:33 -!- sebbu2 has joined.
10:28:44 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:30:30 -!- Sukoshi` has quit (Read error: 110 (Connection timed out)).
10:42:20 -!- ihope_ has joined.
10:59:26 -!- ihope has quit (Read error: 110 (Connection timed out)).
11:04:05 -!- oerjan has joined.
12:55:01 -!- nazgjunk has joined.
13:16:04 -!- pikhq has joined.
13:29:46 -!- oerjan has quit ("leaving").
13:49:37 -!- sebbu2 has changed nick to sebbu.
14:04:13 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:58:32 -!- Asztal has joined.
16:04:29 -!- anonfunc has quit.
16:21:19 -!- Asztal has quit (Remote closed the connection).
16:28:24 -!- goban has quit (Read error: 104 (Connection reset by peer)).
16:28:42 -!- goban has joined.
16:54:36 -!- crathman has joined.
17:32:16 -!- goban has quit (Read error: 104 (Connection reset by peer)).
17:32:47 -!- goban has joined.
17:45:38 -!- goban has quit (Read error: 104 (Connection reset by peer)).
17:45:51 -!- goban has joined.
17:49:58 -!- goban has quit (Remote closed the connection).
17:50:14 -!- goban has joined.
17:50:37 * SimonRC fwaps goban
17:53:02 -!- goban has quit (Read error: 104 (Connection reset by peer)).
17:53:28 -!- goban has joined.
17:58:27 -!- goban has quit (Read error: 104 (Connection reset by peer)).
17:58:41 -!- goban has joined.
18:29:54 -!- tgwizard has joined.
18:30:23 <lament> goban: get a better ISP!
18:35:38 <goban> lament: i will :( comcast discconnects me all the time
18:37:39 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.2/2007021917]").
18:47:07 * lament throws stones at goban
18:47:28 <lament> e2e4!
18:47:41 -!- jix__ has joined.
18:49:05 <goban> c7c5!
18:53:41 <lament> e4xe8#!!
18:57:41 -!- sebbu2 has joined.
19:01:34 -!- kxspxr has joined.
19:02:23 -!- kxspxr has quit (Client Quit).
19:03:52 <goban> oh noes!~
19:04:27 <lament> that's why i don't like chess
19:04:29 <lament> it's too easy :)
19:04:49 -!- jix has quit (Read error: 110 (Connection timed out)).
19:04:55 <goban> yeah, thats why computers are better than humans now
19:05:41 <goban> hey i just had an idea for a really pathological language
19:06:16 <goban> make it so each of the tokens have to be moves in a legal chess game!
19:16:48 -!- sebbu has quit (Connection timed out).
19:20:18 <lament> goban: ouch
19:20:45 <lament> goban: i suppose it's not that bad if we waive the 50-turn rule or whatever it is
19:21:14 <lament> goban: then we can get into the endgame with just a couple pieces left and hope that the moves of those pieces are enough for TC
19:23:09 <goban> lament: go would be SOOO Much easier!
19:23:28 <lament> eh
19:23:31 <lament> you mean harder
19:23:47 <goban> well there are many more possible moves, and captures make more space
19:23:53 <lament> in chess, once you have a few pieces left, it's very easy to move the remaining ones forever without ever interfering
19:24:15 <goban> you have to worry about the same position existing 3 times in chess
19:24:19 <goban> no unbounded memory
19:24:34 <goban> same with go, but its 19x19 so much more :)
19:29:22 <goban> you could have the chess game terminate with checkmate (or a drawn position) too :)
19:52:19 -!- crathman has joined.
21:18:20 -!- nazgjunk has joined.
21:23:05 -!- GreaseMonkey has joined.
21:28:21 -!- Rugxulo has joined.
21:29:02 -!- Rugxulo has left (?).
21:29:13 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:31:35 -!- nazgjunk has quit ("Leaving").
22:13:25 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:13:40 -!- goban has joined.
22:32:08 <bsmntbombdood> 0 1[dSa+Larplbx]dsbx
22:32:10 <bsmntbombdood> :D
22:32:41 <bsmntbombdood> prints all the fibonacci numbers
22:34:49 -!- sebbu has joined.
22:41:44 -!- sebbu2 has quit (Read error: 145 (Connection timed out)).
22:42:01 -!- goban has quit (Read error: 104 (Connection reset by peer)).
22:42:13 -!- goban has joined.
23:06:45 <bsmntbombdood> hmm that's dissapointing
23:06:54 <bsmntbombdood> using the stack is slower than using registers in dc
23:07:14 <lament> how is that disappointing?
23:07:30 <bsmntbombdood> because it's supposed to be stack based
23:07:39 <bsmntbombdood> the stack should be fast
23:08:26 <bsmntbombdood> time dc -e "10 4^3*sc 0 1[dSa+Lar lc1-dsc 1!=b]dsbx"
23:08:35 <bsmntbombdood> real 0m4.118s
23:08:44 <bsmntbombdood> time dc -e "10 4^3*sa 0sb 1sc [lb d lc + sb sc la1-dsa0!=f]dsfx"
23:08:52 <bsmntbombdood> real 0m1.963s
23:09:22 <bsmntbombdood> both of those calculate the 30000 fibonacci number, the first with the stack and the second with registers
23:10:09 <bsmntbombdood> ooh that's interesting
23:10:19 <bsmntbombdood> those times were with the implementation that came with openbsd
23:10:38 <bsmntbombdood> the gnu implementation running on a faster box takes 2s for both
23:22:44 -!- goban has quit (Read error: 104 (Connection reset by peer)).
23:22:50 -!- goban has joined.
23:26:38 -!- ShadowHntr has joined.
23:45:06 <bsmntbombdood> gah
23:45:10 <bsmntbombdood> I need drop
23:46:11 <bsmntbombdood> I guess for numbers only it could be d-+
23:46:28 <SimonRC> I thought there was a drop or discard command
23:46:37 <bsmntbombdood> not that i could find
23:51:00 <bsmntbombdood> d-+ is good enough
23:58:03 -!- crathman has quit (Read error: 148 (No route to host)).
2007-03-06
00:03:16 -!- goban has quit (Read error: 104 (Connection reset by peer)).
00:03:27 -!- goban has joined.
00:43:45 -!- sebbu2 has joined.
00:45:34 -!- pikhq has quit (Remote closed the connection).
01:02:56 -!- sebbu has quit (Read error: 110 (Connection timed out)).
01:06:08 -!- lament has quit ("I lost an eye in a drunken ko fight!").
01:13:34 -!- crathman has joined.
01:13:49 -!- crathman has quit (Remote closed the connection).
01:15:22 <bsmntbombdood> I'd write a brainfuck interpreter in dc if its string manipulations weren't so crappy
01:15:29 -!- tgwizard has quit (Remote closed the connection).
01:19:08 <SimonRC> bsmntbombdood: just tokenise everything as numbers and use a few register-stacks.
01:19:34 <bsmntbombdood> not good enoough
01:20:03 <bsmntbombdood> I'll just figure out conversions
01:23:36 <bsmntbombdood> ok
01:25:14 <bsmntbombdood> i think [<code>] goes to [<code> LrdSr 0!=f] Sf LrdSr 0!=f LfSz
01:25:34 <bsmntbombdood> assuming l and r are used as the tape, and z is only used to throw away values
01:27:09 <bsmntbombdood> Sz should be sz
01:29:07 <bsmntbombdood> aaaand it works
01:29:27 <bsmntbombdood> all the other conversions are obvious
01:30:16 <bsmntbombdood> except input
01:31:12 <bsmntbombdood>
01:31:44 -!- oerjan has joined.
01:42:25 -!- sebbu2 has quit ("Leaving").
01:47:23 <oerjan> aha.
01:47:42 <oerjan> darn.
01:47:49 <bsmntbombdood> ahoo
01:48:05 <oerjan> i see how to pop a string in dc but only if what's below is a number.
01:48:32 <bsmntbombdood> 1r
01:48:37 <bsmntbombdood> pop = drop?
01:48:41 <oerjan> yes
01:48:45 <bsmntbombdood> how?
01:49:18 <oerjan> use Z to turn anything into a length
01:49:39 <bsmntbombdood> oh right
01:51:44 <bsmntbombdood> well, storing in an un used register works
01:51:47 <oerjan> hm, and then you can use something like d>r I think.
01:51:55 <oerjan> Zd>r should pop.
01:52:33 <bsmntbombdood> what's in r?
01:52:49 <oerjan> any register name. it is not used, since the test always fails.
01:54:06 <bsmntbombdood> clever
01:54:15 * oerjan bows
01:56:37 <oerjan> But input still looks like a bitch. I guess you do need to convert characters to numbers on I/O.
02:02:35 <bsmntbombdood> arrr
02:02:43 <bsmntbombdood> loading an empty stack isn't 0
02:03:03 <oerjan> indeed not?
02:03:36 <bsmntbombdood> lr is, Lr isn't
02:03:50 <bsmntbombdood> that complicates things
02:05:14 <oerjan> Indeed. Also, it looks like only the main stack has a depth command.
02:05:24 <bsmntbombdood> yep
02:05:58 <oerjan> Although that is OK if you use an array that is only infinite to the right.
02:06:27 <oerjan> Which is enough for TC brainfuck.
02:06:36 <bsmntbombdood> ?
02:06:43 <oerjan> turing-complete
02:06:54 <bsmntbombdood> not that
02:07:04 <oerjan> what?
02:07:05 <bsmntbombdood> how do you make the array infinite
02:07:25 <oerjan> by using the main stack for the right part.
02:07:40 <bsmntbombdood> hmm
02:07:50 <bsmntbombdood> and check depth
02:07:55 <oerjan> right.
02:10:35 <oerjan> you could make it twosided with more work, if you are willing to add flags to the stacks.
02:11:05 <oerjan> or rather, keep track of the depth yourself.
02:11:48 <bsmntbombdood> or fill it with zeros 30000st [0Sr lt 1- d st 0!=f]dsfx
02:12:50 <oerjan> well if you want fixed size it would be easier to use arrays, wouldn't it? I don't know how big they are. Or the stacks for that matter.
02:13:03 <bsmntbombdood> arrays are 2048 long
02:14:18 <oerjan> A bit small.
02:23:03 <bsmntbombdood> bah
02:23:06 <bsmntbombdood> still doesn't work
02:23:31 <bsmntbombdood> http://pastebin.ca/383054
02:31:22 <oerjan> I presume a contains [0].
02:31:41 <bsmntbombdood> yeah
02:31:46 <oerjan> You need to invoke it at the beginning of the program too.
02:31:57 <bsmntbombdood> [0]sa0 goes at the beginning
02:32:05 <oerjan> Right.
02:32:38 <oerjan> So I assume it is ] that isn't working, then?
02:33:31 <bsmntbombdood> yeah
02:35:33 <bsmntbombdood> oops
02:35:43 <bsmntbombdood> there was a problem in the translation file
02:36:35 <bsmntbombdood> - wasn't getting recognized
02:36:36 <oerjan> oh. because what you pasted seems right to me.
02:36:43 <bsmntbombdood> it is, to a human
02:38:11 <bsmntbombdood> hello world prints hello world, after a few "stack empty" errors
02:38:36 <oerjan> hm.
02:38:45 <oerjan> so it is still buggy?
02:38:49 <bsmntbombdood> yeah
02:39:04 <bsmntbombdood> oh
02:39:55 <oerjan> did you forget the prefix [0]sa0?
02:40:04 <bsmntbombdood> no
02:41:10 <bsmntbombdood> I was thinking that the ] rule needed some z0=a, but that doesn't change anything
02:41:28 <oerjan> It shouldn't.
02:41:47 <bsmntbombdood> why not?
02:41:54 <bsmntbombdood> it takes from the stack
02:42:01 <oerjan> The main stack should never be empty.
02:42:44 <bsmntbombdood> yeah
02:42:51 <bsmntbombdood> after a > on an empty stack
02:42:52 <oerjan> oh wait.
02:43:05 <oerjan> right. > is slightly wrong.
02:43:19 <oerjan> It should be Sr first.
02:43:32 <bsmntbombdood> z0=a Sr z0=a
02:43:43 <bsmntbombdood> that too
02:43:44 <oerjan> You don't need the first z0=a
02:43:54 <bsmntbombdood> it works
02:44:04 <oerjan> Of course, but it is redundant.
02:44:12 <bsmntbombdood> it works to the whole thing
02:44:13 <oerjan> It will never be triggered.
02:45:01 <bsmntbombdood> hooray
02:45:43 * oerjan plays a fanfare.
02:50:29 <bsmntbombdood> http://pastebin.ca/383081
02:51:28 <oerjan> i don't think you need z0=a in .
02:51:32 <bsmntbombdood> oops, . is wrong too
02:52:09 <bsmntbombdood> right
02:58:04 -!- SevenInchBread has joined.
03:07:07 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
03:07:21 -!- SevenInchBread has joined.
03:10:45 <oklopol> fell asleep in my armchair and woke up now... 10 hours later
03:11:13 <bsmntbombdood> heh
03:11:49 <oerjan> sounds like you are ready for a new day :)
03:13:25 <oklopol> it's 5 am
03:13:31 <oklopol> and my back hurts like hell
03:34:33 <SimonRC> :-S !!! http://en.wikipedia.org/wiki/House_of_Leaves#Format
03:34:34 * SimonRC goes to bed
03:48:51 <bsmntbombdood> SimonRC: neat
04:01:45 -!- lament has joined.
04:09:40 -!- ShadowHntr has quit ("End of line.").
04:17:50 <bsmntbombdood> [1Sa [d La*Sa 1- d 0<f]dSfx Zd>r La]sf
04:17:52 <bsmntbombdood> factorial
04:20:15 <lament> in what language?
04:20:19 <bsmntbombdood> dc
04:20:51 <AfterDeath> I think i'm going to get a new screen name and say I got a "gnu screen name"
04:23:01 <GreaseMonkey> =D
04:23:52 <oerjan> Ha. BTW do you know that all GNU programs must terminate?
04:25:11 <AfterDeath> huh?
04:25:37 <oerjan> Because they are antiloops.
04:27:36 <bsmntbombdood> haha
04:42:14 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
04:48:02 <oklopol> i'm very disappointed, my ai just discovered eternal loops were possible in the game
04:49:04 <oklopol> i spent an hour figuring out how it did it... quite trivial but requires a lot of moves before the loop can be done
04:50:19 <oerjan> there is only one possibility - turn your game into a Turing-complete esoteric language!
04:50:41 <oklopol> i've been thinking about that
04:51:12 <oklopol> it's just you can always choose which triggers to use and in which order... that has to be dropped
04:51:43 <oklopol> plus it should still be playable by humans in situation created with humans playing
04:52:03 <oklopol> or it kinda loses the coolness of being a turing complete game
04:52:10 <oklopol> *situations
04:52:46 <oklopol> because first i thought threads for each trigger..... it's kinda impossible to actually use
04:52:47 <oklopol> :)
05:27:48 -!- ShadowHntr has joined.
05:30:41 <bsmntbombdood> too many esolangs are turing tarpits
05:34:02 <oerjan> nah
05:34:39 <oerjan> too many esolangs are minor variations on the same plot.
05:35:28 <GregorR> Not enough esolangs are Perl.
05:37:31 <GreaseMonkey> perl is an esolang in itself
05:38:00 <GreaseMonkey> oh, the other way is to have as many instructions as you can ;D
05:38:05 <oerjan> nah perl is at _least_ two esolangs.
05:38:45 <GregorR> At least three I'd say.
05:40:50 <oerjan> the third way would be having an unusual basic concept.
06:03:01 <GreaseMonkey> ok guys, afk
06:25:23 <GreaseMonkey> back
06:32:04 -!- RodgerTheGreat has quit.
06:33:52 -!- RodgerTheGreat has joined.
06:46:04 <GreaseMonkey> hey guys, are any of you in an aware state when the mention of esoteric english is presented?
06:46:26 <oerjan> NO PARSE
06:47:07 <GreaseMonkey> that's a sentence in eso-english, which is the more esoteric side of english
06:47:56 <oerjan> well in that case it looks like a kind of buzzword speak.
07:01:30 <lament> tarpits are cool.
07:06:11 <GreaseMonkey> there is a high degree of the cool factor which tarpits are allocated
07:28:06 -!- ShadowHntr has quit ("End of line.").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:31:31 <GreaseMonkey> ok, gtg, gnight
08:33:01 -!- GreaseMonkey has quit ("Site updated, and a blog post: http://greasemonkey.nonlogic.org").
08:52:55 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
08:56:22 -!- oklofok has joined.
09:13:03 -!- Sukoshi has joined.
09:37:45 -!- sebbu has joined.
09:42:54 <Sukoshi> No.
09:55:48 -!- jix has joined.
09:58:05 -!- nazgjunk has joined.
10:00:38 -!- jix has quit (Client Quit).
10:19:08 -!- Sukoshi has quit (Read error: 110 (Connection timed out)).
10:19:36 -!- ihope__ has joined.
10:21:55 -!- jix has joined.
10:37:07 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
10:39:01 -!- jix has quit ("This computer has gone to sleep").
11:03:39 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
11:06:15 -!- oklopol has joined.
11:18:52 -!- jix has joined.
11:35:54 -!- ihope__ has quit (Client Quit).
12:02:01 -!- jix has quit ("This computer has gone to sleep").
12:34:36 -!- jix has joined.
12:47:12 -!- UpTheDownstair has joined.
13:00:48 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
13:01:57 -!- UpTheDownstair has joined.
13:04:07 -!- nazgjunk has quit (Connection timed out).
13:09:04 -!- UpTheDownstair has changed nick to nazgjunk.
14:43:03 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
14:43:04 -!- UpTheDownstair has joined.
14:44:23 -!- UpTheDownstair has changed nick to nazgjunk.
15:23:03 -!- oerjan has quit ("leaving").
15:34:30 -!- tgwizard has joined.
15:38:50 -!- UpTheDownstair has joined.
15:39:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:51:32 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
15:52:01 -!- nazgjunk has joined.
16:05:06 -!- goban has quit (Read error: 104 (Connection reset by peer)).
16:05:21 -!- goban has joined.
17:03:41 -!- UpTheDownstair has joined.
17:04:48 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
17:06:09 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:36:31 -!- nazgjunk has joined.
17:37:10 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
17:39:31 -!- nazgjunk has joined.
17:48:59 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
17:48:59 -!- UpTheDownstair has joined.
17:49:51 -!- UpTheDownstair has changed nick to nazgjunk.
18:19:22 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
18:22:53 -!- nazgjunk has joined.
18:30:37 -!- Black_Phoenix has joined.
18:40:15 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
18:40:32 -!- UpTheDownstair has joined.
18:45:14 -!- UpTheDownstair has changed nick to nazgjunk.
18:47:38 <Black_Phoenix> Hello
18:53:58 <Black_Phoenix> I have an idea for a language
18:55:17 <lament> hello
19:00:00 <Black_Phoenix> I will prepare something and show you later
19:00:02 -!- Black_Phoenix has left (?).
19:16:08 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:48:20 -!- nazgjunk has joined.
20:25:15 -!- Arrogant has joined.
20:59:48 -!- Arrogant has quit ("Leaving").
21:06:05 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
21:08:16 -!- nazgjunk has joined.
21:47:21 -!- goban has quit (Read error: 104 (Connection reset by peer)).
21:48:17 -!- lupine_85 has quit (Remote closed the connection).
21:59:27 -!- tgwizard has quit (Remote closed the connection).
22:00:40 -!- kxspxr has joined.
22:00:59 -!- kxspxr has quit (Client Quit).
22:21:57 -!- expose has joined.
22:22:40 -!- expose has left (?).
22:39:13 -!- nazgjunk has quit (Connection reset by peer).
22:40:02 -!- sebbu2 has joined.
22:48:27 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:59:15 -!- sebbu has quit (Connection timed out).
23:48:57 -!- sebbu2 has quit ("Leaving").
2007-03-07
00:07:24 * bsmntbombdood wonders what "Bitte waehlen Sie eine Beerdigungnachricht" means
01:04:37 -!- oerjan has joined.
01:06:01 <oerjan> It means "Please select a funeral message".
01:12:36 * oerjan wonders what kind of government a hypocracy is. :)
01:13:00 <oerjan> Rule by stupid people who cannot spell?
01:14:52 <GregorR> Rule by doctors [joke no one will get].
01:21:35 <oerjan> Well it is a bit dated, given the computer revolution in medicine.
01:23:05 <oerjan> or maybe that _is_ the modern version. hm.
01:24:57 <bsmntbombdood> dirty little logreader
01:24:58 <bsmntbombdood> :P
01:26:35 <oerjan> oh and the "hypocracy" was not from the logs. i just read it once again on the web.
01:27:15 <oerjan> i mean when a word is used that often it's got to mean something, right?
01:30:10 -!- crathman has joined.
01:41:49 <SimonRC> :-S
02:28:21 -!- ShadowHntr has joined.
02:44:21 <bsmntbombdood> nooo they be takin my bucket
02:46:15 -!- GreaseMonkey has joined.
03:07:06 <oerjan> Argh! Which complete imbecile decided to put a uniform RealFloat constraint on Haskell Complex numbers?
03:07:17 <SimonRC> hehehe
03:07:31 <SimonRC> Haskell numeric classes are a bloody mess.
03:07:43 <bsmntbombdood> square the circle, man!
03:08:12 <oerjan> i want Complex Rational!
03:08:33 <oerjan> and i might sometime want Gaussian integers too.
03:09:35 <SimonRC> have you looked at the definition of Real
03:09:48 <SimonRC> Me thinks computer science is not math
03:10:16 <SimonRC> Acoording tp haskell typeclasses, the definig property of real numbers is that you can convert them to fractions
03:10:20 <SimonRC> duhbdbdbdbdd
03:11:47 <bsmntbombdood> rationals for the wi
03:11:48 <bsmntbombdood> n
03:11:59 <oerjan> well well. i guess i'll just have to define complex multiplication explicitly.
03:14:26 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.2/2007021917]").
03:21:21 <GreaseMonkey> According<incomplete-verb to<verb-modifier haskell<noun-as-adjective typeclasses<noun, the<object-as-noun-converter defining<adjective property<object of<verb-extender real<adjective numbers<noun is<verb(primary) that<adjective-to-verb-modifier you<noun can<verb-condition-modifier convert<verb them<reference-noun to<verb-extender fractions<noun
03:21:29 <GreaseMonkey> that is indeed a statement
03:21:50 <GreaseMonkey> because it follows the "noun, verb" format
03:22:02 <GreaseMonkey> with quite a few modifiers
03:22:32 <bsmntbombdood> i'm in ur $location $verbing (your|my) $noun
03:23:11 <GreaseMonkey> that is a *statement*.
03:23:36 <GreaseMonkey> i believe that most sentences spoken in english are statements, including this sentence.
03:24:39 <GregorR> No.
03:24:47 <oerjan> Yes!
03:24:57 * oerjan is feeling paradoxical.
03:26:27 <SimonRC> hm
03:27:16 <oerjan> well?
03:28:07 <GreaseMonkey> the verb "is" can accept a verb as an adjective.
03:28:36 <GreaseMonkey> "No." and "Yes!" are expressions.
03:28:56 <GreaseMonkey> "well?" is an incomplete query
03:29:48 <GregorR> The verb 'is' cannot accept a verb as an adjective X_X
03:29:51 <GregorR> He is eat?
03:29:58 <GregorR> -ing turns a verb into an adjective.
03:30:10 <GreaseMonkey> yah
03:30:27 <GregorR> So does -ed IIRC
03:30:45 <GreaseMonkey> sometimes requires -ed to be -en
03:30:53 <GreaseMonkey> sometimes IT requires -ed to be -en
03:30:57 <GregorR> I live in a happy universe where things are consistent ;)
03:32:14 <oerjan> Wow, can I have your interdimensional communication technology?
03:32:58 <GregorR> Sorry, it can only exist in my universe.
03:46:17 <GreaseMonkey> ^expression tagged onto a statement
03:46:39 <GreaseMonkey> you can tie types of sentences together
03:47:20 <GreaseMonkey> eg: "i'm a fag, so are you?" <- statement + incomplete query
03:47:31 <GreaseMonkey> (i'm straight though)
03:48:37 <bsmntbombdood> taylor series are the shit
03:52:05 <oerjan> Darn I just realized why Complex needs at least Floating. That stupid abs operation in Num requires square root for complex extension! :(
04:37:55 * bsmntbombdood calculates e and sqrt(e)
04:42:44 <bsmntbombdood> http://pastebin.ca/384562
04:42:48 <bsmntbombdood> for no particular reason
04:48:24 <oerjan> wow, that actually crashed Hugs.
05:00:46 <bsmntbombdood> O.o
05:01:05 <bsmntbombdood> that approxamation of e is accurate to within 3/(799!)
05:02:29 <oerjan> Naturally. The exp taylor series converges fast.
05:03:57 <bsmntbombdood> yeah
05:04:37 <oerjan> I would expect (1+x)/(799!) where x ~ 1/800
05:13:25 -!- anonfunc has joined.
05:36:36 <GreaseMonkey> afk food
06:00:27 -!- oerjan_ has joined.
06:01:05 -!- oerjan_ has quit (Client Quit).
06:01:16 -!- oerjan has quit (Remote closed the connection).
06:01:23 -!- oerjan has joined.
06:02:24 <GreaseMonkey> back
06:25:19 -!- ShadowHntr has quit ("End of line.").
06:55:29 -!- oerjan has quit ("leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:36:36 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
09:25:31 -!- sebbu has joined.
09:30:37 -!- nazgjunk has joined.
09:41:10 -!- kxspxr has joined.
09:41:25 -!- kxspxr has quit (Client Quit).
10:06:59 -!- UpTheDownstair has joined.
10:07:02 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:08:27 -!- UpTheDownstair has changed nick to nazgjunk.
10:19:13 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:22:26 -!- nazgjunk has joined.
10:52:45 -!- UpTheDownstair has joined.
10:52:49 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:58:21 -!- UpTheDownstair has changed nick to nazgjunk.
11:18:25 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
11:18:34 -!- UpTheDownstair has joined.
11:20:34 -!- anonfunc has quit.
11:28:35 -!- UpTheDownstair has changed nick to nazgjunk.
12:08:06 -!- UpTheDownstair has joined.
12:08:30 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:08:40 -!- UpTheDownstair has changed nick to nazgjunk.
12:54:00 -!- jix has joined.
13:24:30 -!- nazgjunk has quit ("really really need to study now").
13:53:42 -!- nazgjunk has joined.
14:21:56 -!- UpTheDownstair has joined.
14:22:21 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
14:22:30 -!- UpTheDownstair has changed nick to nazgjunk.
14:24:01 -!- tgwizard has joined.
14:54:18 -!- nazgjunk has quit ("lunch + voting + work, bbl +- 10 CET").
14:58:25 -!- nazgjunk has joined.
15:00:02 -!- nazgjunk has quit (Connection reset by peer).
15:00:08 -!- UpTheDownstair has joined.
15:02:01 -!- UpTheDownstair has changed nick to nazgjunk.
15:17:40 -!- nazgjunk has quit ("Leaving").
17:45:19 -!- jix has quit (Read error: 113 (No route to host)).
19:31:07 -!- dddh has joined.
19:32:33 -!- dddh has left (?).
20:02:16 -!- crathman has joined.
20:24:12 -!- nazgjunk has joined.
20:33:39 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:33:56 -!- nazgjunk has joined.
20:41:26 -!- UpTheDownstair has joined.
20:41:42 -!- nazgjunk has quit (Connection reset by peer).
20:51:06 -!- crathman has quit (Remote closed the connection).
20:57:26 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
20:59:21 -!- nazgjunk has joined.
20:59:45 -!- jix__ has joined.
21:15:37 -!- UpTheDownstair has joined.
21:16:26 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:40:37 -!- Arrogant has joined.
21:42:48 -!- UpTheDownstair has changed nick to nazgjunk.
21:48:51 -!- UpTheDownstair has joined.
21:50:09 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:53:09 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:55:47 -!- UpTheDownstair has changed nick to nazgjunk.
22:04:37 -!- Arrogant has quit ("Leaving").
22:05:43 -!- UpTheDownstair has joined.
22:10:34 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:12:40 -!- nazgjunk has joined.
22:20:16 -!- nazgjunk has quit (Connection reset by peer).
22:22:58 -!- UpTheDownstair has quit (Connection timed out).
22:23:25 -!- UpTheDownstair has joined.
22:30:54 -!- sebbu2 has joined.
22:34:22 -!- Sgeo has joined.
22:38:33 -!- nazgjunk has joined.
22:39:41 -!- nazgjunk has quit (Connection reset by peer).
22:39:48 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
22:46:14 -!- nazgjunk has joined.
22:49:36 -!- sebbu has quit (Connection timed out).
22:55:09 -!- tgwizard has quit (Read error: 110 (Connection timed out)).
23:03:54 -!- crathman has joined.
23:09:49 -!- UpTheDownstair has joined.
23:25:26 -!- nazgjunk has quit (Success).
23:35:39 -!- UpTheDownstair has quit (Success).
23:51:05 -!- crathman has quit (Read error: 113 (No route to host)).
2007-03-08
00:13:01 -!- sebbu2 has quit (Client Quit).
00:40:05 <bsmntbombdood> ell
00:49:54 <RodgerTheGreat> o?
00:50:02 <RodgerTheGreat> or as in "bloody ell"
00:50:05 <RodgerTheGreat> ?
00:54:33 <bsmntbombdood> Unspecified
00:57:08 <bsmntbombdood> yay, recursion without using registers
00:57:25 <bsmntbombdood> 1[r 2*p r dx]dx
01:24:28 <RodgerTheGreat> neato
01:26:11 <bsmntbombdood> dc is sweet
01:37:25 -!- crathman_ has joined.
01:37:49 -!- crathman_ has changed nick to crathman.
01:37:52 -!- crathman has quit (Remote closed the connection).
01:39:59 -!- graue has joined.
02:55:43 -!- calamari has joined.
02:57:45 -!- GreaseMonkey has joined.
04:51:14 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
05:02:42 -!- goban has joined.
05:08:29 -!- cmeme has quit ("Client terminated by server").
05:08:39 -!- cmeme has joined.
05:15:25 <SimonRC> hi
05:18:42 <GreaseMonkey> hi
05:18:49 <GreaseMonkey> im working on an IRC bot :D
05:19:44 <lament> how exciting.
05:19:50 <lament> *yawn*
05:27:47 <GregorR> Anybody got an Intel OS X box that wants to help me port crosslibc?
05:28:37 <GregorR> My suspicion is that it works as-is, since OS X uses the same syscall format as the rest of the BSD family.
05:30:34 -!- GreaseBot has joined.
05:30:56 <GreaseBot> Hehe, I'm only a slavebot for now :D
05:31:12 <GreaseMonkey> #PRIVMSG #esoteric :test
05:31:13 <GreaseBot> test
05:31:29 <GreaseMonkey> ok, so i now have a bot. cool?
05:31:31 <GregorR> #QUIT Hahaha
05:31:39 <GregorR> :(
05:31:40 <GreaseMonkey> nice try
05:31:47 <GreaseMonkey> but it's nick-dependent
05:32:00 <GreaseMonkey> #QUIT :OK GregorR, I give up
05:32:00 -!- GreaseBot has quit (Client Quit).
05:32:21 <GreaseMonkey> wtf? why didn't i get a quit message?
05:32:40 <GregorR> Go look it up on the freenode FAQ.
05:32:47 <GregorR> Everybody asks that the first time they write a bot :P
05:33:41 <GreaseMonkey> do i have to register to get a quit message?
05:33:58 <GregorR> Go look it up on the freenode FAQ.
05:33:59 <GregorR> Everybody asks that the first time they write a bot :P
05:35:51 <GreaseMonkey> i can't find the question :(
05:39:12 <GregorR> IIR, basically: If you're not registered, you need to be on for a few minutes before it will allow quit messages, and also certain activities cause it to penalize that time.
05:41:31 <GregorR> *IIRC
05:41:35 <GregorR> I hate this keyboard X_X
05:48:49 <RodgerTheGreat> GregorR: I have an intel-based mac
05:49:32 <GregorR> RodgerTheGreat: If you'd like to help, one of two options: Either compile a few things for me and see if they run, or give me SSH so I can do the same.
05:50:23 <RodgerTheGreat> hand me a tar and I'll take a crack at compiling its contents
05:53:02 <GregorR> [uploading]
05:53:22 <GregorR> http://www.codu.org/rtload-r10.tar.bz2
05:53:41 <GregorR> Just 'make' to compile rtload, then: ./rtload test-xlibc.elf
05:53:47 <GregorR> Should say Hello, world 1! I believe.
05:53:57 <RodgerTheGreat> alright, one sec
05:54:09 <GregorR> [If it segfaults after that, don't worry about it, rtload is still a bit funky :P ]
05:55:17 <RodgerTheGreat> hrm..
05:55:19 <RodgerTheGreat> wads-5-232-13:~/Desktop/rtload-r10 Rodger$ make
05:55:19 <RodgerTheGreat> gcc -g -DRTLOAD_STATICELF -DRTLOAD_AOUT -c rtload.c -o rtload.o
05:55:20 <RodgerTheGreat> gcc -g -DRTLOAD_STATICELF -DRTLOAD_AOUT -c ldrs.c -o ldrs.o
05:55:20 <RodgerTheGreat> gcc -g -DRTLOAD_STATICELF -DRTLOAD_AOUT -c bbuffer.c -o bbuffer.o
05:55:20 <RodgerTheGreat> bbuffer.c: In function 'bbuffer':
05:55:20 <RodgerTheGreat> bbuffer.c:143: error: PIC register 'ebx' clobbered in 'asm'
05:55:21 <RodgerTheGreat> make: *** [bbuffer.o] Error 1
05:55:43 <GregorR> Hm, apparently Mac OS X does all code as PiC ...
05:55:45 <GregorR> I can fix that.
05:56:57 <GregorR> Whoops - hahaha, it doesn't even actually clobber it, it just claims to :P
05:57:17 <RodgerTheGreat> ... meaning?
05:57:33 <GregorR> In bbuffer.c, on line 118, remove: , "ebx"
05:58:21 <RodgerTheGreat> so the line is just
05:58:22 <RodgerTheGreat> : "eax",); \
05:58:24 <RodgerTheGreat> ?
05:58:31 <GregorR> No comma ther
05:58:38 <RodgerTheGreat> ah, alright
05:58:46 <RodgerTheGreat> that's what I was about to ask
05:59:03 <GregorR> I did put a comma in what I told you to remove ;)
05:59:10 <RodgerTheGreat> oh
05:59:32 <RodgerTheGreat> it builds cleanly now, but then I get this:
05:59:33 <RodgerTheGreat> wads-5-232-13:~/Desktop/rtload-r10 Rodger$ ./rtload test-xlibc.elfBus error
05:59:47 <GregorR> Bus error ... always a nice one :P
05:59:49 <RodgerTheGreat> there's a newline in there somewhere...
06:00:03 <RodgerTheGreat> what next, chief?
06:01:15 <GregorR> I'll be back in a few minutes ;)
06:01:21 <RodgerTheGreat> ok
06:01:29 <GregorR> Unfortunately, debugging rtload and crosslibc is about as big of a PITA as there is >_>
06:01:39 <RodgerTheGreat> I can only imagine
06:03:27 <RodgerTheGreat> wow- not a bad deal: http://www.woot.com/
06:04:29 <RodgerTheGreat> pop some more ram and a video card in that thing and it'd be a damn decent machine
06:05:04 <RodgerTheGreat> and considering the parts, it wouldn't be easier to build one for cheaper
06:05:12 <RodgerTheGreat> *easy
06:10:54 <GreaseMonkey> afk, food
06:12:52 -!- Arrogant has joined.
06:12:55 * GregorR reappears.
06:14:18 <GregorR> RodgerTheGreat: Do you want to be indoctrinated into the crosslibc cult [help debug where that error is]?
06:14:52 <RodgerTheGreat> erm... well, I'm no C-coder myself- I'm not sure how much of a help I could be
06:15:22 <GregorR> You could give me SSH ;)
06:15:56 <RodgerTheGreat> nothing personal, dude, but I'm not in the habit of giving random people from the internet shell access to my machine
06:16:07 <RodgerTheGreat> if I still had my backup box, I'd say have at it
06:16:40 <RodgerTheGreat> but one of my roommate's friends gave that computer a bath, and it has mysteriously ceased working
06:16:44 <RodgerTheGreat> if you get my meaning
06:16:49 <GregorR> Heh
06:35:15 -!- calamari has quit ("Leaving").
06:38:08 <GreaseMonkey> back
06:54:47 <RodgerTheGreat> 'night all- GregorR: if you need anything done, I'll be here most of tomorrow
07:10:13 -!- oerjan has joined.
07:40:17 -!- Arrogant has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:53 <GreaseMonkey> my bot works
08:10:06 <GreaseMonkey> and it's pretty cool
08:10:09 <GreaseMonkey> wanna see?
08:16:01 -!- jix__ has joined.
08:23:42 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
08:25:13 <GreaseMonkey> night everyone
08:26:46 -!- GreaseMonkey has quit ("I should make more bots. It's fun. Roger_The_Bum, nice try, but you use SupyBot. And that's generic. Generic bots are kinda g).
08:47:37 -!- helios_ has joined.
09:05:03 <SimonRC> Well, I think I am finished writing obscenely inefficient programs. My computability theory homework is finished.
09:06:19 <SimonRC> I really do mean obscenely inefficient. How about f(n,n) runtimes where f(0,y) = y and f(x+1,y) = 2^f(x,y) ?
09:06:26 <oerjan> on purpose, I assume. :)
09:06:52 <SimonRC> no, it's just that they don't matter, so we ignore the runtime
09:06:58 <SimonRC> all that matters is computability
09:07:06 <oerjan> oh.
09:07:18 <oerjan> that's not even Ackermann.
09:07:58 <SimonRC> I think there are some ackerman runtimes around too.
09:08:34 <oerjan> i suppose if you do complexity theory you might have to do it again.
09:08:44 <SimonRC> Want to recurse? Just make your program a quine and include a universal interpreter whereever recursion is required.
09:08:52 <SimonRC> he
09:08:52 <SimonRC> heh
09:09:26 <oerjan> and then it _definitely_ would be on purpose.
09:09:34 <SimonRC> see here for example: http://www.dur.ac.uk/s.s.dantchev/Teaching/ATC-CT/
09:09:55 <SimonRC> want to make a datastructure? well the only type available is Nat, but that's ok...
09:10:33 <oerjan> and the only operation is Succ? :)
09:10:39 <SimonRC> you just do <x,y> = 2^x*(2*y + 1) - 1
09:10:50 <SimonRC> oerjan: no, you have limited predecessor too
09:11:01 <SimonRC> also JNZ
09:11:26 <SimonRC> and a clever macro system that is not too bad at replacing subroutines
09:11:28 <oerjan> Minsky machines
09:12:10 <SimonRC> no indexing of course
09:12:30 * SimonRC goes to breakfast
09:38:22 -!- jix__ has joined.
09:41:57 -!- sebbu has joined.
10:16:59 -!- helios_ has quit ("Leaving").
10:21:29 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
10:35:04 -!- goban has quit (Remote closed the connection).
10:41:58 -!- nazgjunk has joined.
10:53:01 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:53:15 -!- UpTheDownstair has joined.
10:53:37 -!- UpTheDownstair has changed nick to nazgjunl.
10:53:41 -!- nazgjunl has changed nick to nazgjunk.
11:24:00 -!- UpTheDownstair has joined.
11:28:28 -!- nazgjunk has quit (Read error: 145 (Connection timed out)).
11:38:01 -!- nazgjunk has joined.
11:38:57 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
11:50:09 -!- oerjan has quit (Read error: 104 (Connection reset by peer)).
12:04:26 -!- nazgjunk has quit (Client Quit).
13:41:01 -!- calamari has joined.
14:22:23 -!- jix__ has joined.
14:35:10 -!- calamari has quit ("Leaving").
14:36:25 -!- Arrogant has joined.
14:55:51 -!- jix__ has changed nick to jix.
16:21:03 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
16:23:50 -!- jix has joined.
17:18:28 <oklopol> hmm
17:18:43 <oklopol> can i find the list of argument a function need somehow?
17:18:43 <oklopol> eh
17:18:46 <oklopol> in python
17:18:48 <oklopol> *arguments
17:18:53 <oklopol> at runtime of course
17:19:04 <oklopol> *needs
17:45:02 <lament> there's foo.func_code_co_argcount
17:45:26 <lament> and foo.func_code.co_varnames
17:51:34 <oklopol> __import__("pydoc").inspect.getargspec(my_funx) was what #python told me
17:51:41 <oklopol> that seems to work fine
17:52:25 <lament> that thing probably uses the fields i mentioned :)
17:56:31 -!- nazgjunk has joined.
17:59:19 -!- RodgerTheGreat has quit.
18:03:49 <oklopol> yeah, i thought that might be the case :P
18:04:10 <oklopol> but it's not important, as long as it works
18:40:45 -!- UpTheDownstair has joined.
18:42:46 -!- nazgjunk has quit (Nick collision from services.).
18:42:50 -!- UpTheDownstair has changed nick to nazgjunk.
18:54:36 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
18:54:47 -!- UpTheDownstair has joined.
18:58:56 -!- nazgjunk has joined.
18:59:49 -!- UpTheDownstair has quit (Connection reset by peer).
19:11:26 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:11:47 -!- nazgjunk has joined.
19:13:20 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:14:25 -!- nazgjunk has joined.
19:19:41 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:20:07 -!- nazgjunk has joined.
19:29:36 -!- UpTheDownstair has joined.
19:30:36 -!- nazgjunk has quit (Connection reset by peer).
19:30:55 -!- UpTheDownstair has changed nick to nazgjunk.
19:32:27 -!- ShadowHntr has joined.
19:41:24 -!- sebbu2 has joined.
19:57:31 -!- UpTheDownstair has joined.
19:58:11 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:59:41 -!- UpTheDownstair has changed nick to nazgjunk.
20:06:24 -!- sebbu has quit (Connection reset by peer).
20:17:32 -!- UpTheDownstair has joined.
20:18:31 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:18:51 -!- UpTheDownstair has changed nick to nazgjunk.
20:37:03 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:49:11 -!- RobHu has quit ("leaving").
20:56:55 <oklopol> i think hq9 should archive turing completeness with X so that X prevents execution of h, q and 9 but h still returns "hw" in the stream and 9 returns the number 9, q somehow applies two thing together so that it is possible to combine hello worlds and 9's into something sensible
20:57:09 <oklopol> i'm sure i soon get an idea how to do this :\
20:57:20 <oklopol> *thigs
20:57:22 <oklopol> *things
20:57:49 <oklopol> X would thus be the opposite of unlambda's ` (maybe)
21:14:45 <bsmntbombdood> what's the opposite of application?
21:15:06 <Arrogant> displication
21:17:21 <oklopol> well, in application you give the function some arguments... so in displication you make (\a -> f) where f is the function to be displicated
21:17:23 <oklopol> i'd say
21:18:14 <oklopol> so H will not be executed since it is now required to get an argument before outputting Hello, world
21:19:14 <oklopol> X9 -> (\a->9)
21:19:14 <oklopol> XXH -> (\a->(\a->H))
21:19:22 <oklopol> i still have no idea what you can do with this
21:19:26 <oklopol> :)
21:21:41 <bsmntbombdood> so, delay
21:21:53 <oklopol> maybe.
21:26:39 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:39:07 -!- Rugxulo has joined.
21:39:37 -!- Rugxulo has left (?).
21:44:21 -!- nazgjunk has joined.
21:52:39 -!- Sgeo has joined.
22:17:47 -!- sebbu2 has changed nick to sebbu.
22:28:11 -!- Arrogant_ has joined.
22:30:37 -!- Arrogant_ has quit (Client Quit).
22:36:42 -!- nazgjunk has quit ("Leaving").
22:43:10 -!- sebbu2 has joined.
22:53:10 -!- Arrogant has quit (Read error: 113 (No route to host)).
23:01:31 -!- Sgeo has quit ("Leaving").
23:01:44 -!- sebbu has quit (Connection timed out).
23:14:51 -!- sebbu2 has quit ("@+").
23:27:52 <bsmntbombdood> hmmm
23:27:54 <bsmntbombdood> http://en.wikipedia.org/wiki/Lagrange_inversion_theorem
2007-03-09
01:18:24 -!- Insineratehymn has joined.
01:18:36 <Insineratehymn> hey EgoBot
01:19:28 -!- Insineratehymn has quit (Client Quit).
01:20:10 <EgoBot> :( Aw, I thought I had a friend.
01:22:53 <graue> you did
01:22:57 <graue> just not anymore
01:24:03 <bsmntbombdood> heh
01:24:25 <bsmnt_bot> I have lots of friends!
01:44:21 <bsmntbombdood> a prize of infinite money!!
01:44:38 <bsmntbombdood> $1 the first day, 1/2 the next, 1/3, 1/4...
01:44:41 <bsmntbombdood> :P
02:08:05 <graue> how did you win that?
02:08:43 <bsmntbombdood> i didn't
02:08:45 <bsmntbombdood> it was a joke
02:10:24 -!- SevenInchBread has joined.
02:12:03 <lament> i wonder for how much money you could sell that prize
02:12:09 <lament> quite a lot, probably
02:13:25 <lament> or maybe not
02:13:32 <lament> you get 6 bucks the first year
02:13:52 <lament> then only 70 cents the next year
02:14:48 <lament> that's not all that great
02:15:00 <lament> (as compared with the market)
02:17:33 <bsmntbombdood> yeah
02:19:09 <lament> the market gets you infinite money faster :)
02:27:46 <graue> isn't 11.7% interest pretty good?
02:28:41 <lament> it is
02:28:53 <lament> but it's not real 11.7% interestt
02:28:59 <lament> it's only like that the first year :)
02:29:37 <graue> how much do you get the third year?
02:29:41 <lament> real interest would correspond to a sequence with increasing terms. The market even outperforms some of those.
02:29:48 <lament> about 30 cents.
02:30:17 <bsmntbombdood> after the 3rd year you have $7.575
02:30:51 <fizzie> And if you live 70 years, you almost but not quite get to $11. Yay.
02:31:01 <bsmntbombdood> after 20 years it's 9.4728
02:31:20 <bsmntbombdood> 100 years, $11
02:32:22 <lament> even if the prize was a dollar a day, it would still be outperformed by a small initial investment
02:32:32 <bsmntbombdood> 1000 years, $13
02:33:38 <lament> therefore the "value" of the prize is smaller than the value of the investment
02:33:52 <bsmntbombdood> 10,000 years, $15.6
02:34:31 <lament> we can actually calculate how much the "prize" is worth
02:34:50 <lament> under specific market conditions
02:34:50 <bsmntbombdood> what do you mean?
02:35:09 <lament> how much money would it make sense to pay for it
02:35:16 <lament> as opposed to just invest that money
02:35:31 <bsmntbombdood> ...it wouldn't
02:36:20 <lament> well no
02:36:25 <lament> it's clearly worth more than a dollar
02:36:45 <lament> i mean no
02:36:53 <lament> nevermind
02:36:59 <lament> i mean it's not :)
02:37:10 <graue> sure it is
02:37:28 <graue> pay a dollar for it and you'd have $1.50 the next day, that's worth it
02:39:29 <bsmntbombdood> http://www.mathbin.net/8782
02:39:41 <bsmntbombdood> where x is the amount worth it to pay
02:41:55 <bsmntbombdood> or something link that
02:41:57 <lament> graue: oh yeah, that's true
02:42:26 <lament> graue: if you can do that repeatedly, and buy unlimited prizes a day, that outperforms the market easily :)
02:42:40 <graue> yeah, there you go
02:49:23 <bsmntbombdood> after 2 days, the prize is worth $1.49
02:49:36 <bsmntbombdood> at 10% per year
02:50:17 <bsmntbombdood> after 1 year, it's worth $5.86
02:53:00 <bsmntbombdood> hmm
02:53:08 <bsmntbombdood> 5 years only $4.9
02:56:30 <lament> hehehe
02:56:33 <lament> find the peak price
02:56:59 <bsmntbombdood> somewhere between 2 and 5 years
02:57:34 <lament> i'm surprised it ever gets to more than 5 bucks
02:58:45 -!- Sgeo has joined.
03:03:24 <bsmntbombdood> looks like 2 years
03:03:26 <bsmntbombdood> about
03:03:58 <bsmntbombdood> i'm just trying random stuff here
03:04:47 <lament> maybe it's e years :)
03:05:51 <bsmntbombdood> nope
03:05:58 -!- GreaseMonkey has joined.
03:06:00 <bsmntbombdood> e years is $5.69
03:06:14 <bsmntbombdood> 2 years is $5.87
03:06:47 <GreaseMonkey> 2*$5.87=e*5.69
03:06:54 <GreaseMonkey> 2*$5.87/5.69=e
03:07:05 <GreaseMonkey> solved
03:07:18 <lament> thanks
03:07:21 <lament> you're a genius
03:07:33 <GreaseMonkey> ah whoops
03:07:39 <GreaseMonkey> 2*5.69/5.87=e
03:07:43 <bsmntbombdood> except, no
03:07:58 <GreaseMonkey> 1.938671209540034 years
03:08:05 <GreaseMonkey> what was it for?
03:08:27 <lament> GreaseMonkey: 'e' is Euler's constant :)
03:08:43 <lament> GreaseMonkey: and the relationship is highly non-linear
03:08:51 <bsmntbombdood> GreaseMonkey: a harmonic series prize
03:08:54 <GreaseMonkey> k
03:08:59 <bsmntbombdood> GreaseMonkey: compared to investing the money
03:09:21 <GreaseMonkey> you never know, it might come in handy
03:09:38 <GreaseMonkey> just in case you have something that says $5.87 for 2 years
03:09:53 <GreaseMonkey> and you only want 1.938671209540034 years
03:10:01 <GreaseMonkey> so you know it's $5.69
03:12:45 <bsmntbombdood> uuuuh
03:25:35 <bsmntbombdood> I'm going to make a killing selling these for 6 dollars
03:29:48 <lament> assuming you can actually invest at 10%
03:30:53 <bsmntbombdood> yeah :P
03:31:53 <lament> (for the rest of eternity)
03:33:49 <bsmntbombdood> ooh
03:33:53 <bsmntbombdood> mistake
03:34:01 <bsmntbombdood> we have to invest the return
03:36:00 <bsmntbombdood> the 1, 1/2, 1/3...
03:36:06 <bsmntbombdood> dunno how to do that
04:01:56 * Sgeo created http://uncyclopedia.org/wiki/SpySheriff
04:02:14 <GreaseMonkey> oh, you like uncyc, huh?
04:02:25 <Sgeo> yep
04:04:55 <GreaseMonkey> that's a good article, made me lol
04:05:08 <Sgeo> ty
04:22:32 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
05:09:57 <bsmntbombdood> \sum_{n=1}^{x} 1/x is pretty well aproximated by .79 + .95*ln(x)
05:11:32 <GreaseMonkey> hey, what lang should i use for adding custom bot messages to GreaseBot
05:12:05 <bsmntbombdood> what language is it written in?
05:22:11 <bsmntbombdood> actually, it's pretty far off for big numbers
05:22:22 <bsmntbombdood> guess it grows a little faster than ln
05:25:11 <bsmntbombdood> ha
05:25:21 <bsmntbombdood> off by x/c
05:26:29 <GreaseMonkey> um, GreaseBot is coded in C
05:26:50 <bsmntbombdood> logfuck
05:27:24 <bsmntbombdood> dc
05:27:25 <GreaseMonkey> hmm, i'll look into it
05:27:49 <GreaseMonkey> ah, yes, good idea, VERY good idea
05:28:02 <bsmntbombdood> what?
05:29:28 <GreaseMonkey> dc
05:30:17 <bsmntbombdood> dc rocks
05:31:16 <GreaseMonkey> i cud build my own lang tho
05:31:39 <GreaseMonkey> like miniscript but using single-symbol stuff and more strin-oriented
05:32:51 <GreaseMonkey> Apparently, %-1% gives it %1%% at %2%
05:32:55 <GreaseMonkey> stuff like that
05:33:11 <GreaseMonkey> say = %1%
05:33:46 <GreaseMonkey> act = $01ACTION %1%$01
05:33:56 <GreaseMonkey> wait
05:34:14 <GreaseMonkey> act = PRIVMSG %-1% $01ACTION %1%$01
05:34:17 <GreaseMonkey> better
06:27:35 <GreaseMonkey> afk, food, pulling GreaseBot offline
06:44:54 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
06:45:09 -!- GreaseMonkey has joined.
07:19:04 -!- helios24 has quit (Remote closed the connection).
07:19:40 -!- helios24 has joined.
07:25:12 -!- jix has joined.
07:30:31 -!- Sgeo has quit ("Leaving").
07:54:52 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:44 -!- ShadowHntr has joined.
08:29:38 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
08:54:19 -!- ShadowHntr has quit ("End of line.").
08:59:42 <GreaseMonkey> gnight
09:01:44 -!- GreaseMonkey has quit ("Goodnight everyone. (Ahh, I love my bot :D)").
09:56:04 -!- sebbu has joined.
11:45:46 * sebbu search the apprentice, from lewis libby
12:35:21 -!- ais523 has joined.
13:06:41 <ais523> !ps d
13:06:43 <EgoBot> 1 ais523: daemon ul bf
13:06:46 <EgoBot> 2 ais523: daemon deadfish funge93
13:06:48 <EgoBot> 3 ais523: ps
13:07:26 <ais523> !help
13:07:29 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
13:07:32 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
13:10:50 <ais523> EgoBot needs an HQ9+ interpreter
13:12:36 * ais523 googles HQ9+
13:12:42 <ais523> Hey, there's a language called HQ9+-
13:12:57 <ais523> - causes a different error depending on which command it's adjacent to
13:14:07 -!- jix has joined.
13:15:08 <ais523> and checking http://99-bottles-of-beer.net it seems that there's a language that can do 99 bottles of beer in even fewer characters than HQ9+
13:17:55 <oklopol> yeah in 99 the empty program does that iirc
13:18:57 <ais523> as does every other program
13:19:43 <ais523> What's confusing me now is there seems to be quite a bit of HQ9+ discussion in news:perl.perl6.internals
13:22:42 <oklopol> :D
13:23:09 <oklopol> are they going to add HQ9 capabilities in perl?
13:25:26 <ais523> It's not entirely clear from the newsgroup messages
14:06:27 * ais523 has just written an HQ9+ interpreter in Thutu
14:06:42 <ais523> because I couldn't find enough HQ9+ interpreters in esoteric programming languages
14:06:56 <ais523> http://pastebin.ca/raw/387587
14:07:45 <ais523> I even made sure it had a genuine accumulator (although not one that does anything useful, naturally)
14:08:23 <ais523> but I'd really prefer an HQ9+ interpreter in a language that Egobot has
14:08:30 <ais523> so that we can daemon it
14:16:30 -!- ais523 has quit ("So as to be not logged in when leaving the computer").
14:25:03 -!- ais523 has joined.
14:44:28 -!- crathman has joined.
15:01:35 -!- crathman_ has joined.
15:12:25 -!- nazgjunk has joined.
15:12:34 -!- helios24 has quit ("Leaving").
15:17:38 -!- crathman has quit (Read error: 110 (Connection timed out)).
15:22:48 -!- UpTheDownstair has joined.
15:25:01 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
15:25:28 -!- UpTheDownstair has joined.
15:31:00 -!- grmbla has joined.
15:32:09 -!- nazgjunk has quit (Nick collision from services.).
15:32:24 -!- grmbla has changed nick to nazgjunk.
15:35:43 -!- UpTheDownstair has quit (Read error: 145 (Connection timed out)).
15:41:16 -!- UpTheDownstair has joined.
15:42:29 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:43:14 -!- oerjan has joined.
15:51:53 -!- nazgjunk has joined.
15:54:18 -!- UpTheDownstair has quit (Read error: 145 (Connection timed out)).
15:54:51 * ais523 has written a Forte interpreter that seems to handle LET properly
15:55:02 <ais523> I haven't programmed any of the other commands yet, though
15:55:10 <ais523> nor tested it with tricky things like continuation lines
15:55:39 <oerjan> right... i'm still bogged down in parsing, it seems.
15:55:57 <ais523> My interpreter doesn't really parse the input at all
15:56:18 <ais523> I wrote it by extending Thutu to have arithmetic built-in, and then using the new language
15:56:39 <ais523> so it uses regexps to parse commands on-the-fly at the last possible moment
15:57:00 <ais523> q
15:57:10 <oerjan> how do you keep track of assigned numbers?
15:57:24 <ais523> I use a list of redefinition pairs
15:57:34 <ais523> the clever part is that the list can redefine later in the list
15:57:47 <ais523> so for instance, (10)(8) means that 10 is redefined to 8
15:58:07 <ais523> and if later 8 is redefined to 12, I have (8)(12),(10)(8)
15:58:17 <ais523> which the program automatically changes to (8)(12),(10)(12)
15:58:57 <ais523> Except, as it's Thutu, I use a % sign in front of every punctuation mark to avoid ambiguities, so it looks like %(8%)%(12%)%,%(10%)%(12%)
15:59:10 <ais523> which is much the same but harder to read in the Perl debugger I'm using to test this
16:03:00 -!- UpTheDownstair has joined.
16:03:15 <ais523> Argh! When I test a line with a colon in, the length of the memory increases exponentially with lots of duplicates of the program
16:03:19 <ais523> I'm sure that's not meant to happen
16:03:39 <oerjan> i should think not.
16:04:23 <oerjan> i noticed a discussion in the logs about a $1/n prize...
16:04:40 <ais523> I was reading that in the logs too
16:05:30 <ais523> It's related to a similar problem I was wondering about: how much money would you pay for a St. Petersburg return?
16:06:05 <oerjan> I believe that to find the current value given interest p, you need to sum 1/n * 1/(1+p/100)^n
16:06:17 <ais523> (Flip a coin. If you flip tails, you win $2. Otherwise, flip again; with tails you get $4, with heads flip again, then you get $8 for tails on the third flip, $16 for tails on the fourth flip, etc.)
16:06:37 <oerjan> which is a tailor series.
16:06:48 <oerjan> eh, i'm still talking about the log problem.
16:07:20 <ais523> crossed messages can be a problem in IRC
16:07:29 <ais523> even though they're delivered so fast
16:07:34 <ais523> because you have to spend time typing
16:09:35 <oerjan> sum x^n/n = integral of sum x^(n-1) = integral of 1/(1-x) = -log|1-x|, with some fixing of indices.
16:10:32 * ais523 has found and fixed the problem
16:10:48 <oerjan> ah.
16:10:50 <ais523> Thutu's so conducive to writing multithreaded programs in, it's even possible to do it by accident
16:10:59 <oerjan> heh
16:11:13 <ais523> I managed to create a forkbomb by mistake
16:11:51 <oerjan> that st petersburg return obviously has infinite expectation in dollars.
16:12:21 <ais523> yep, but you wouldn't pay $1000000 to get the St. Petersburg payoff in return, would you?
16:13:11 <ais523> partly because there's no chance that the person offering you the bet would own enough dollars to pay you off if you flipped 1000000 heads in a row
16:13:28 <ais523> and if they can't afford it, the expectation would be less than $1000000
16:13:41 <oerjan> Assuming they could afford it:
16:14:00 <oerjan> you need to take into account that money itself has diminishing value.
16:14:43 <ais523> I agree; the payoff, even though it's potentially very large, isn't really worth all that much
16:14:55 <oerjan> the inflation would be immense.
16:15:18 <ais523> s
16:15:36 <ais523> (Sorry, I keep sending debugger commands to my IRC client rather than my Perl debugger by mistake)
16:16:47 -!- grahza has joined.
16:17:05 -!- nazgjunk has quit (Nick collision from services.).
16:17:14 -!- grahza has quit (Read error: 104 (Connection reset by peer)).
16:21:03 <oerjan> Wow, Mark C Carroll is showing Thutu as this week's pathological language!
16:21:14 <jix> ais523: i just sent svn commands into irc (different channel)
16:21:44 -!- UpTheDownstair has quit (Connection timed out).
16:23:04 <graue> i guess i need to catch up on the thutu craze
16:27:42 <oerjan> graue: you need to fix the logo on the esolang wiki.
16:28:32 <ais523> graue: the logo, and the 'public domain' image, have gone wrong during the upgrade. The other thing that changed during the upgrade was the syntax for enlarging images, but I've fixed that myself.
16:33:50 <ais523> oerjan: Thanks for pointing me to that Mark C Carroll page! I don't think I'd have found it otherwise.
16:35:58 <oerjan> you're welcome
16:51:55 <graue> hey ais523: i couldn't find anything on mediawiki.org about the captchas you say are in mediawiki 1.9
16:52:41 <ais523> I know they're implementable somehow; after all, I've come across those capchas before (on Wiktionary as it happens).
16:52:51 * ais523 looks for the MediaWiki CAPCHAs
16:54:10 <ais523> It seems to be a well-supported extension originally in 1.6, but it was updated recently
16:54:37 <ais523> Look on Meta rather than mediawiki.org: http://meta.wikimedia.org/wiki/ConfirmEdit_extension
16:56:13 <ais523> yep, I've just tested it. It's definitely ConfirmEdit that's being used on the Wikimedia sites, and it's set to trigger when an anon adds an external link
16:56:38 <graue> cool, thanks
16:58:41 <ais523> the description of the extension's _meant_ to be on mediawiki.org, but they haven't got round to moving it yet
17:03:07 <oerjan> ais523: i see no mention anywhere of that multithreading you mentioned...
17:03:23 <ais523> No, it's not a language feature, it sort of comes out from the way the language works
17:03:42 <oerjan> ?
17:03:50 <ais523> The most practical way to program is to use markers (%% is one I often use, because % has no regexp meaning) to mark what you're doing
17:04:06 <ais523> but if the marker accidentally gets duplicated, the program starts acting from both points
17:04:17 <oerjan> ah
17:04:33 <ais523> and often, the behaviour from the markers ends up more-or-less interleaved, like it does in a multithread program
17:05:12 <ais523> Because Thue is non-deterministic, duplicating the data string in Thue would always lead to an effectively multithread program
17:05:27 <ais523> In Thutu, which is deterministic, it just _usually/
17:05:35 <ais523> leads to an effectively multithread program
17:05:45 * ais523 wonders why they had to put newline next to backspace
17:06:06 <oerjan> pure evil
17:07:07 <oerjan> btw, does I/O happen in the main loop if you use < and replacement, or if you use > or step-off-end?
17:09:32 <oerjan> ais523: ^
17:09:32 <ais523> < doesn't cause I/O to happen if used in the main loop (like a replacement, it steps back to the top). > does.
17:10:28 <oerjan> right. It is a bit confusing between iterations of the main loop and iterations of the program.
17:10:41 <ais523> The main loop is the program, pretty much
17:10:59 <oerjan> no.
17:11:13 <oerjan> that's exactly the point where they are different.
17:11:54 <oerjan> the I/O loop is _not_ the same as the main @ loop, but contains it.
17:12:10 <ais523> The I/O is sort of an extra line outside the program
17:12:13 <ais523> that you never see
17:12:54 <ais523> oerjan: I see what you mean now when you say the main loop isn't the program
17:13:05 <oerjan> the reason i'm mentioning this is because i suspect Mark CC misunderstood it.
17:13:09 <ais523> The input program is in its' own implied @ loop
17:13:26 <ais523> but the I/O is outside that in some other loop (a /=9/! loop?)
17:14:07 <oerjan> right.
17:15:16 <oerjan> (or at least he made it even more ambiguous.)
17:18:16 <ais523> This sort of thing makes me glad I defined Thutu in terms of a reference interpreter
17:40:40 -!- nazgjunk has joined.
18:29:19 -!- UpTheDownstair has joined.
18:29:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
18:35:10 -!- digital_me has joined.
18:35:38 <ais523> Yay, Esolang now has CAPCHAs to help against the spam. Thanks, graue!
18:39:59 <UpTheDownstair> hah
18:40:06 -!- UpTheDownstair has changed nick to nazgjunk.
18:55:32 -!- ais523 has quit ("I have utterly failed to leave this space intentionally blank").
19:01:18 -!- crathman_ has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.2/2007021917]").
19:48:39 -!- ShadowHntr has joined.
20:43:12 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:43:45 -!- nazgjunk has joined.
21:38:14 -!- oerjan has quit ("leaving").
22:01:24 -!- ShadowHntr has quit (Client Quit).
22:29:42 -!- Rugxulo has joined.
22:30:12 -!- Rugxulo has left (?).
22:31:04 -!- Rugxulo has joined.
22:31:50 -!- Rugxulo has quit (Client Quit).
22:32:01 -!- Rugxulo has joined.
22:32:59 -!- Rugxulo has left (?).
22:48:33 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
22:55:05 -!- Sgeo has joined.
23:01:33 <sebbu> durée 12h43m07s, cpu time 54min53s <-- pour défrag 134go
23:08:24 <lament> suuure.
23:14:09 -!- sebbu has quit ("@+").
23:32:24 -!- jix__ has joined.
23:40:43 -!- jix has quit (Read error: 110 (Connection timed out)).
23:47:41 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
2007-03-10
00:21:21 <SimonRC> bah
00:27:06 -!- ShadowHntr has joined.
00:30:52 -!- RodgerTheGreat has joined.
00:30:59 <RodgerTheGreat> hi everyone
00:32:59 <bsmntbombdood> i
00:54:48 <bsmntbombdood> http://www.cs.duke.edu/~rodger/baking/cs030327.html
00:58:54 <RodgerTheGreat> hunh
00:59:06 <RodgerTheGreat> Original, I guess
01:32:45 <graue> edible turing machines, eh?
01:35:03 <graue> if you could execute the program by eating the muffins, that would make it better
01:35:45 <RodgerTheGreat> like, a muffin could be an unpunched cell on a tape
01:36:09 <RodgerTheGreat> bitwise cyclic tag would be awesome with an infinite series of muffins extending to the right
01:37:18 <graue> no, not infinite, remember, just unbounded
01:37:41 <RodgerTheGreat> haha- true, true
02:18:14 -!- GreaseMonkey has joined.
03:03:36 <bsmntbombdood> what's the difference?
03:03:58 <graue> infinite muffins is too expensive and nobody can afford it
03:04:08 <graue> but unbounded muffins just means you have to be ready to go out and buy another one if need be
03:04:24 <graue> in reality, there has to be a bound, but you can fake it
03:05:06 <GreaseMonkey> what lang is this?
03:06:47 <graue> i believe it's a turing machine
03:06:59 <bsmntbombdood> yeah
03:40:28 -!- GreaseMonkey has changed nick to ^_`.
03:53:08 -!- calamari has joined.
03:54:06 -!- GregorR_ has joined.
03:55:21 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
03:55:21 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
03:55:21 -!- NK` has quit (calvino.freenode.net irc.freenode.net).
03:55:21 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
03:55:21 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
03:55:41 -!- ^_` has quit (Killed by ballard.freenode.net (Nick collision)).
03:55:42 -!- oklopol has joined.
03:55:42 -!- sekhmet has joined.
03:55:42 -!- GregorR has joined.
03:55:42 -!- NK` has joined.
03:55:42 -!- SimonRC has joined.
03:55:45 -!- GregorR has quit (Nick collision from services.).
03:56:13 -!- thematrixeatsyou has joined.
03:56:14 -!- GregorR_ has changed nick to GregorR.
03:56:57 -!- thematrixeatsyou has changed nick to GreaseMonkey.
04:07:42 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
04:07:42 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
04:07:42 -!- NK` has quit (calvino.freenode.net irc.freenode.net).
04:07:42 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
04:09:12 -!- oklopol has joined.
04:09:12 -!- sekhmet has joined.
04:09:12 -!- NK` has joined.
04:09:12 -!- SimonRC has joined.
04:11:22 <RodgerTheGreat> good night everyone
04:11:46 -!- RodgerTheGreat has quit.
04:35:38 <graue> the wiki db backups were messed up for a few days
04:35:48 <graue> i think they're good now
05:03:06 -!- Sgeo has quit ("Leaving").
05:30:37 -!- Arrogant has joined.
05:41:23 <GreaseMonkey> afk food
05:50:32 -!- digital_me has quit (Read error: 110 (Connection timed out)).
05:52:39 -!- calamari has quit (Remote closed the connection).
05:58:36 <GreaseMonkey> back
06:10:56 -!- ShadowHntr has quit ("End of line.").
06:50:28 -!- anonfunc has joined.
07:28:45 <GreaseMonkey> getting off now, cya
07:30:01 -!- GreaseMonkey has quit ("There's always another bug to fix").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:18:46 -!- anonfunc has quit.
08:19:39 -!- anonfunc has joined.
08:20:38 -!- anonfunc has quit (Client Quit).
08:21:51 -!- anonfunc has joined.
08:54:43 -!- Arrogant has quit ("Leaving").
09:03:04 -!- anonfunc has quit.
09:15:46 -!- sebbu has joined.
10:27:32 -!- jix has joined.
10:37:13 -!- nazgjunk has joined.
11:32:11 -!- jix__ has joined.
11:40:36 -!- jix has quit (Read error: 110 (Connection timed out)).
11:45:17 -!- jix__ has changed nick to jix.
12:25:02 -!- tgwizard has joined.
12:27:18 -!- UpTheDownstair has joined.
12:28:05 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
12:30:29 -!- UpTheDownstair has changed nick to nazgjunk.
12:43:30 -!- nazgjunk has quit ("Leaving").
15:33:51 -!- mike_the_person has joined.
15:36:12 <mike_the_person> !help
15:36:15 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
15:36:17 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
15:45:25 -!- mike_the_person has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.10/2007021601]").
15:52:41 -!- oerjan has joined.
17:04:28 -!- sekhmet_ has joined.
17:05:04 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
17:09:59 -!- sekhmet_ has changed nick to sekhmet.
18:43:33 -!- twice11 has joined.
18:44:05 -!- Sgeo has joined.
18:51:20 <twice11> On the wiki, it says 0x29A is turing complete. Are there any references supporting that claim?
18:57:49 <oerjan> it seems to contain combinator calculus as a subset, by using the sk~ commands.
18:58:48 <twice11> I did not succeed in finding out how to create a function on the stack that increments the accumulator by to when executed (getting passed enough arguments to start running).
19:00:18 <twice11> And I am quite lost in finding out how to do anything useful if i can't somehow save the accumulator to the stack (in form of a function).
19:00:23 <oerjan> (+(+x)y)y
19:00:27 <oerjan> i think
19:01:02 <twice11> You mean ++x~y~~y~?
19:01:49 <oerjan> eh...
19:01:58 <twice11> That does not work, because (+x)y gets already executed when I try to build the function.
19:02:06 <oerjan> oh.
19:03:18 <oerjan> use the abstraction elimination of \z. +(+xy)y
19:05:14 <twice11> Sorry, I can't follow you on that.
19:05:34 -!- tgwizard has quit (Remote closed the connection).
19:06:05 <oerjan> let me use Unlambda notation.
19:06:34 <oerjan> \z. ``+``+xyy =
19:06:58 <oerjan> ``s``s`k+``s``s`k+`kx`ky`ky
19:08:11 <twice11> I am not used to unlambda, but you apply the s combinator to (k+). I already tried that
19:08:49 <twice11> It does not work, because (((s(k+))x)y) gets converted to (((k+)x)y)
19:09:16 <twice11> This does not get anything, because the k combinator is too deep inside the parens to match any of the reduction rules.
19:09:22 <oerjan> you mean (+x)y
19:10:00 <oerjan> oh?
19:10:14 <twice11> My implementation of 0x29A does *not* to the step from (((k+)x)y) to ((+x)y)
19:10:36 <twice11> I think this is according to the documentation.
19:11:05 <oerjan> well then you mean (((k+)y)(xy)
19:11:07 <twice11> Oops. It should do the step from (((k+)x)y) to (+x), of course...
19:11:25 <twice11> Sorry, yes.
19:12:04 <twice11> To put it right. I meant (((s(k+)x)y) gets (((k+)y)(xy)), and this gets stuck.
19:13:09 <twice11> You get stuck as soon as the "x" in (((sx)y)z) is anything but a k-like combinator (k,+-.,) or s, maybe applied to something.
19:13:14 <oerjan> i see. so there is an error in the embedding of combinator calculus into 0x29a.
19:14:09 <twice11> I admit to have overlooked in my search for a possibility of doing something useful what happens if x in (((sx)y)z) is is of the form (sx).
19:16:50 <oerjan> right. it evaluates only the top level of the function, if you take the description literally.
19:17:58 <oerjan> seems like a bug in the language description to me.
19:18:24 <twice11> Might be.
19:18:45 <twice11> I think I suceeded in writing a +2 function.
19:19:14 <twice11> (((s(sa))b)c) with a=(+), b=(+x) and c=y
19:19:33 <twice11> [where x, y are don't care functions]
19:20:57 <twice11> Yes, I tried it. It works.
19:20:58 <oerjan> =sac(bc) = a(bc)(c(bc))
19:22:02 <oerjan> = ++r, bc = ++r, ++r, x
19:22:21 <oerjan> looks good
19:23:07 <twice11> See http://pastebin.ca/389482.
19:24:56 <twice11> The haskell 0x29A interpreter is at http://pastebin.ca/389491
19:31:26 <oerjan> there seems to be no way to duplicate values on the stack.
19:31:55 <oerjan> so a function can only be evaluated once.
19:32:23 <twice11> Yes. This is also a problem.
19:33:15 <twice11> But I did not yet prove whether it is impossible to create a function that runs the function and returns the function on the stack.
19:33:22 <twice11> This would solve the problem.
19:34:02 <oerjan> i was pondering whether you could make a pair of functions simulate a brainfuck tape.
19:35:07 <twice11> I got lost at simulating the tape when I found out that there is no way to access anything but top-of-stack and next-to-top-of-stack.
19:36:00 -!- twice11 has quit ("taking a break.").
19:41:33 -!- RodgerTheGreat has joined.
19:43:50 <RodgerTheGreat> hi, everyone
19:44:01 <oerjan> hi
20:07:31 -!- bsmntbombdood has changed nick to xor.
20:21:09 -!- ShadowHntr has joined.
21:18:28 -!- twice11 has joined.
21:18:48 <oerjan> hi, i think i solved the tape implementation
21:19:33 <oerjan> i put a description on the wiki.
21:20:23 <twice11> I think I also have an idea. You use two functions as stack.
21:20:38 <twice11> One for the values before current, one for values after currents.
21:20:51 <oerjan> that was my idea too :)
21:21:12 <twice11> I will try to implement it on my own, just as an exercise.
21:21:37 <twice11> But this has the problem that brainfucks + and - operations get O(N).
21:21:53 <twice11> I don't see a way around it.
21:22:00 <oerjan> eh, i save the _current_ cell in the register.
21:22:28 <oerjan> maybe you mean > and < ?
21:22:39 <twice11> Oh, sorry. Yes, of course.
21:23:14 <oerjan> actually not O(N), but with a possible constant factor <= 256.
21:23:33 <oerjan> so still technically O(1).
21:23:54 <twice11> OK, I used to use 16 or 32 bit cells on brainfuck with numeric I/O
21:24:16 <twice11> So I am used to cells containing 5-figure numbers.
21:24:28 <oerjan> 0x29A has byte registers.
21:24:44 <oerjan> *register
21:25:21 <twice11> Yes :-). So it seems like emulating byte-brainfuck with ascii-code I/O is the simplest thing.
21:26:24 <twice11> BTW, is there literature on doing binary arithmetic in bf where cells are used as bits, to get O(logN) addition.
21:26:39 <twice11> That was a strange idea I had some year ago.
21:27:03 <twice11> This kind of bf use seems to translate into 0x29A without too high performance penalties.
21:27:18 <oerjan> i think i've seen it mentioned. Try looking at boolfuck.
21:28:03 <oerjan> or similar variants.
21:29:50 <twice11> Yes, the translation they offer is mainly the same idea.
21:31:05 <twice11> But the problem with boolfuck compared to my brainfuck-with-binary approach
21:31:19 <twice11> is that I can't detect carries in boolfuck.
21:31:46 <twice11> And of course, performance is complete gone after translation from boolfuck to brainfuck.
21:35:24 <oerjan> heh, i wonder...
21:36:01 <oerjan> maybe the broken S combinators work if you use continuation passing style.
21:36:20 <oerjan> because that corresponds to always staying at the top expression.
21:36:40 <twice11> The whole language seems to work only with CPS.
21:37:05 <twice11> And I currently think about the k-style combinators (+-,.) just as
21:37:20 <twice11> operators that get a continuation and a "start-now" flag as parameters.
21:37:52 <twice11> I am still puzzled about how to write a +3 function, but don't tell me. I will find out on my own.
21:38:15 <twice11> I seem to have run into the "broken S combinators" on my first attempt.
21:38:25 <oerjan> don't look at the wiki then because i have exactly that as the example
21:38:50 <twice11> I just plugged the +2 function into the +2 function. Probably I should have changed the other + to +2.
21:38:52 <oerjan> essentially.
21:41:09 -!- twice11 has quit ("tearing down dial-up line. back later. reading logs.").
22:21:08 -!- twice11 has joined.
22:21:36 <twice11> oerjan: I got the same results as you.
22:22:15 <twice11> I use "ss+~~%~" to add one to the result of the function currently on the stack
22:22:33 <twice11> and "k%~" to separate to functions.
22:22:34 <oerjan> by coincidence? although i did start with that +2 function you mentioned earlier.
22:23:11 <oerjan> well then it simply has to work :)
22:23:22 <twice11> And I got the idea for the two-functions-make-a-tape by your comment from 11:34:02
22:23:31 <twice11> "i was pondering whether you could make a pair of functions simulate a brainfuck tape."
22:24:00 <twice11> I fell into the trap that i did not remember that ] does not
22:24:15 <twice11> decrement the register, so my first attempt for the reg-to-stack loop
22:24:20 <twice11> got an endless loop.
22:24:42 <twice11> The second attempt showed that my 0x29A parser (a real hack)
22:25:01 <twice11> stops parsing after the first looped. After fixing, it worked.
22:25:36 <twice11> run "+%~k~+%~k~+%~k~ k%~[ss+~~%~-%~k~] k~"
22:26:00 <twice11> puts the number 3 into the register (first part), saves it into a function (second part)
22:26:07 <twice11> and executes it (third part).
22:26:40 <twice11> As output is destructive, I still have to develop a clone-value
22:26:59 <oerjan> right
22:27:08 <twice11> function (so of course a run function with itself as continuation function)
22:27:34 <twice11> But currently I think it should be possible using the s combinator somehow.
22:27:35 <oerjan> btw i suggest applying to i to execute the function.
22:28:04 <oerjan> because then i works also as the end of tape
22:28:46 <twice11> The function applied to execute gets omitted by the k-like combinators.
22:28:58 <twice11> I don't think it matters at all, which one I use.
22:29:12 <oerjan> it matters if you want the tape to expand automatically.
22:30:17 <oerjan> unless you manage to make the unlambda v combinator.
22:32:32 <oerjan> for the output value cloning it may be simpler to make the loop build two independent functions.
22:33:13 <twice11> You are right. Applying k to the end of tape puts k to the stack. Putting i there is better.
22:35:03 <oerjan> hm, wait...
22:35:17 <oerjan> it actually doesn't matter that much.
22:35:38 <oerjan> applying to k just make you flip between k and (kk).
22:35:40 <twice11> Building two functions in the loop works.
22:35:45 <oerjan> and is shorter.
22:36:00 <oerjan> *makes
22:36:43 <twice11> To build two functions, the loop looks like k%~k%~ [ss+~~%~%ss+~~%~ -%~k~]
22:42:39 <twice11> There is a catch: one should start the function (at least the later-executed one) with i
22:42:49 <twice11> to get completely rid of it with %~
22:43:53 <oerjan> right
22:50:01 <twice11> A working translation for bf "." is:
22:50:06 <twice11> sk~s~ sk~s~ [ss+~~%~%ss+~~%~ -%~k~] k~.%~ %~
22:54:38 <oerjan> i'm not sure that last %~ is quite right. Remember that . loses its second argument.
22:54:55 <oerjan> eh wait
22:56:37 <twice11> Oops, there is a fault. The working (tested) version has
22:57:13 <twice11> (sk~s~)~.%~k~ ~ %~ past the loop
23:00:05 <oerjan> somehow i suspect it can be done shorter somehow with just k's than with sk~s~
23:02:42 <oerjan> note that a final drop can also be done with %k%~%~
23:06:23 <twice11> Yes. Independent of the start value. You are right.
23:10:07 -!- graue has quit ("Leaving").
23:12:43 -!- graue has joined.
23:15:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:16:45 -!- SevenInchBread has joined.
23:17:45 <twice11> Except for ".", where I seem to have something messed up by simplification, my bf->0x29A seems to work now.
23:17:58 <twice11> s/by/on/
23:18:25 <oerjan> cool
23:18:54 <twice11> I will put it to the pastebin when it's ready.
23:19:29 -!- graue has quit ("Leaving").
23:19:56 * SevenInchBread is looking at ways to encrypt information so that it can't be censored or subject to copyright law.
23:19:59 <oerjan> some links on the wiki would be nice too
23:20:11 <SevenInchBread> mainly steganography, anonymous proxies and stuff.
23:20:27 <twice11> How permanent is the pastebin? Can I link to there?
23:21:03 <SevenInchBread> LOL CRYPTO-ANARCHISM
23:25:11 <SimonRC> http://www.cs.duke.edu/~rodger/baking/cs.html
23:25:29 <SimonRC> Actually, I just got that from here, didn't I?
23:25:32 <SimonRC> D'oh.
23:25:32 <xor> SimonRC: old
23:26:01 <xor> haha
23:26:06 <xor> CompSci 4: Alice Programming Language"
23:26:14 <xor> "CompSci 6: Introduction to Java"
23:26:45 * xor screams about misuse of CS
23:28:15 <SimonRC> indeed
23:28:22 <oerjan> twice11: you could submit it to one of the maintainers of the esolangs archive.
23:28:27 <SimonRC> they shouldn't be teaching languages
23:28:33 <SimonRC> They should be teaching paradigms
23:29:09 <twice11> I put the brainfuck -> 0x29A translation to the wiki. It's short.
23:29:27 <oerjan> that too :)
23:29:38 <twice11> The 0x29A interpreter needs some polishing, it's worst WFM quality.
23:29:54 <twice11> I will put it to some webspace I own and link it from the wiki.
23:46:06 <twice11> The translation is on the wiki now.
2007-03-11
00:04:23 <oerjan> Well, good night.
00:04:43 -!- oerjan has quit ("All in a good day's play").
00:18:00 -!- twice11 has quit (Read error: 113 (No route to host)).
00:26:23 -!- ShadowHntr has quit ("End of line.").
00:48:06 -!- GreaseMonkey has joined.
00:58:17 -!- nazgjunk has joined.
01:29:58 -!- nazgjunk has quit (Connection reset by peer).
01:30:17 -!- nazgjunk has joined.
01:36:54 -!- sebbu has quit ("Leaving").
01:46:29 -!- nazgjunk has quit ("Leaving").
03:04:00 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
03:13:17 -!- oklopol has joined.
04:49:14 -!- xor has changed nick to bsmntbombdood.
04:52:38 <GreaseMonkey> hello bsmnt
04:52:44 <bsmntbombdood> hi
04:53:04 <GreaseMonkey> hey, are you gonna set your bot up to return a CTCP VERSION request?
04:53:34 <bsmntbombdood> no
04:53:36 <GreaseMonkey> like: :Host PRIVMSG chanOrNick \1VERSION\1
04:53:38 <GreaseMonkey> k
04:53:42 <GreaseMonkey> my bot does that
04:53:44 <bsmntbombdood> why?
04:55:25 <GreaseMonkey> it's always a nice feature
04:56:02 -!- GreaseBot has joined.
05:07:56 <GreaseMonkey> afk, getting a life
05:08:58 <GreaseBot> If anyone abuses me, please kick me.
05:33:34 -!- RodgerTheGreat has quit.
05:35:49 -!- RodgerTheGreat has joined.
05:36:22 <RodgerTheGreat> 'night, all
05:36:43 -!- RodgerTheGreat has quit (Client Quit).
05:55:36 -!- SevenInchBread has quit (No route to host).
06:04:44 -!- anonfunc has joined.
06:33:38 -!- Arrogant has joined.
07:05:16 -!- GreaseBot has quit ("recompiling").
07:12:36 -!- Sgeo has quit ("Leaving").
07:15:46 -!- GreaseBot has joined.
07:16:45 -!- ShadowHntr has joined.
07:23:15 -!- helios24 has joined.
07:45:51 -!- oerjan has joined.
07:47:37 -!- nazgjunk has joined.
07:48:22 -!- maverickbna has joined.
07:48:43 -!- maverickbna has quit (Read error: 131 (Connection reset by peer)).
07:51:48 -!- GreaseMonkey has changed nick to thematrixeatsyou.
07:51:55 -!- thematrixeatsyou has changed nick to GreaseMonkey.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:28 -!- ShadowHntr has quit (Connection timed out).
08:26:22 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
08:27:03 -!- nazgjunk has joined.
08:31:06 -!- UpTheDownstair has joined.
08:31:12 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
08:31:35 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
08:32:03 -!- nazgjunk has joined.
08:32:20 <GreaseMonkey> ok, i'm going to bed, gnight
08:33:25 -!- GreaseMonkey has quit ("It was fun writing - Our own haikus in #haiku - But now it's bedtime.").
08:33:47 -!- GreaseBot has quit ("Gnight.").
08:52:11 -!- Arrogant has quit ("Leaving").
09:12:06 -!- sebbu has joined.
09:30:19 <oklopol> i had the idea to make brainfuck addition logn by binary arithmetic too
09:30:28 <oklopol> O(logn)
09:31:12 <oklopol> it's nice since you can then easily translate any assembly code into brainfuck
09:31:14 <oklopol> ...
09:43:05 <oklopol> hmm in python how do i check if something is an integer? 0.__class__ is wrong :\
09:44:06 <oklopol> a.__class__==''.__class__ is how i check for string :P
09:44:22 <oklopol> numbers aren't objects in python then i guess
11:44:35 <tokigun> oklopol, isinstance(0, int).
11:45:03 <tokigun> 0.__class__ is tokenized as 0. and __class__, so you have to write as (0).__class__.
11:46:55 <oklopol> well, indeed, quite obvious
11:47:17 <oklopol> maybe i subconsciously wanted to believe in such inconsistency because i don't like python
11:47:41 <oklopol> well, dunno if that's be inconsistency, it'd suck though
12:13:04 -!- jix__ has joined.
12:14:32 -!- jix__ has changed nick to jix.
12:22:10 -!- tgwizard has joined.
12:24:37 -!- jix__ has joined.
12:24:45 -!- jix has quit (Nick collision from services.).
12:24:57 -!- jix__ has changed nick to jix.
16:10:44 -!- SevenInchBread has joined.
16:11:26 -!- Sgeo has joined.
16:36:20 -!- crathman has joined.
16:43:07 -!- crathman has quit (Read error: 104 (Connection reset by peer)).
16:43:22 -!- crathman_ has joined.
16:43:26 -!- crathman_ has changed nick to crathman.
16:44:15 -!- crathman has quit (Remote closed the connection).
16:57:38 -!- oerjan has quit ("leaving").
16:57:41 -!- graue has joined.
17:08:54 -!- UpTheDownstair has joined.
17:09:47 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
17:52:09 -!- Arrogant has joined.
17:54:49 -!- nazgjunk has joined.
17:55:16 <SevenInchBread> A PROGRAMMING LANGUAGE CONSISTING ENTIRELY OF HEX PHRASES.
17:56:01 <SevenInchBread> DEAD BEEF C0FFEE BABE CAFE FADE
18:11:33 -!- UpTheDownstair has quit (Connection timed out).
19:01:36 -!- RodgerTheGreat has joined.
19:01:44 <RodgerTheGreat> howdy, folks
19:44:56 -!- twice11 has joined.
19:46:19 -!- twice11 has quit (Client Quit).
19:48:24 <nazgjunk> SevenInchBread, lovely idea.
19:55:06 -!- twice11 has joined.
19:55:58 <twice11> Announce: I wrote a 0x29A implementation, so this language is no longer unimplemented.
19:56:15 <twice11> It is currently online at http://userpage.fu-berlin.de/~mkarcher/0x29A
19:56:54 <twice11> I would like to see it included in the esoteric file archives, if appropriate.
19:57:16 <nazgjunk> rofl
19:57:29 <twice11> Currently, it is BSD licensed, but I am open to other licenses if needed.
19:58:31 <twice11> Also the brainfuck-to-0x29A converter discussed yesterday is online.
19:59:00 -!- helios24 has quit ("Leaving").
19:59:07 <twice11> It has been tested with some brainfuck examples from Daniel Cristofani.
19:59:17 <twice11> It works, except for the terrible performance.
20:06:17 <RodgerTheGreat> I would expect an optimizing BF->0x29A translator to be exceedingly nontrivial
20:07:44 <bsmntbombdood> wiki down?
20:10:11 <twice11> http://esolangs.org/wiki works here.
20:10:21 <bsmntbombdood> nevermind
20:12:58 <bsmntbombdood> dc for the win
20:17:26 -!- twice11 has quit ("Leaving").
21:10:32 -!- nazgjunk has quit ("Leaving").
21:32:56 -!- Arrogant has quit (Read error: 113 (No route to host)).
21:42:00 -!- AfterDeath has left (?).
21:56:19 -!- nazgjunk has joined.
21:59:41 -!- graue has quit ("Leaving").
22:08:19 -!- bsmntbombdood has changed nick to xor.
22:19:54 -!- nazgjunk has quit ("Leaving").
22:33:56 -!- xor has changed nick to bsmntbombdood.
22:38:21 <bsmntbombdood> ok
22:39:38 -!- sebbu has quit ("@+").
22:39:38 <bsmntbombdood> ~exec globals()["popen2"] = __import__("popen2")
22:41:13 <bsmntbombdood> ~exec self.ev_dc = lambda x: popen2.popen2("dc -e '%s'" % x)[0].read()
22:41:25 <bsmntbombdood> ~exec sys.stdout(self.ev_dc("1p"))
22:41:40 <bsmntbombdood> ~exec sys.stdout("foo")
22:41:40 <bsmnt_bot> foo
22:42:24 <bsmntbombdood> ~exec self.ev_dc = lambda x: popen2.popen2("/usr/bin/dc -e '%s'" % x)[0].read()
22:42:34 <bsmntbombdood> ~exec sys.stdout(self.ev_dc("1p"))
22:42:40 <bsmntbombdood> grar
22:43:14 <bsmntbombdood> ~exec sys.stdout( popen2.popen2("/usr/bin/dc -e '%s'" % "1p")[0].read() )
22:43:19 <bsmntbombdood> ~ps
22:43:19 <bsmnt_bot> None
22:44:12 <bsmntbombdood> ~exec sys.stdout( popen2.popen2("/usr/bin/dc -e '%s'" % "1p") )
22:44:12 <bsmnt_bot> (<open file '<fdopen>', mode 'r' at 0xb7cacb18>, <open file '<fdopen>', mode 'w' at 0xb7cac140>)
22:44:21 <bsmntbombdood> ~exec sys.stdout( popen2.popen2("/usr/bin/dc -e '%s'" % "1p")[0] )
22:44:21 <bsmnt_bot> <open file '<fdopen>', mode 'r' at 0xb7cac140>
22:44:26 <bsmntbombdood> ~exec sys.stdout( popen2.popen2("/usr/bin/dc -e '%s'" % "1p")[0].read )
22:44:27 <bsmnt_bot> <built-in method read of file object at 0xb7cacb18>
22:44:29 -!- nazgjunk has joined.
22:44:42 <bsmntbombdood> ~exec self.x = popen2.popen2("/usr/bin/dc -e '%s'" % "1p")[0].read
22:44:52 <bsmntbombdood> ~exec sys.stdout(x)
22:44:53 <bsmnt_bot> NameError: name 'x' is not defined
22:44:56 <bsmntbombdood> ~exec sys.stdout(self.x)
22:44:56 <bsmnt_bot> <built-in method read of file object at 0xb7cac140>
22:45:10 <bsmntbombdood> ~exec self.foo = self.x()
22:45:21 <bsmntbombdood> ~exec sys.stdout(self.foo)
22:45:28 <bsmntbombdood> ~exec sys.stdout(type(self.foo))
22:45:28 <bsmnt_bot> <type 'str'>
22:45:38 <bsmntbombdood> ~exec sys.stdout(len(self.foo))
22:45:38 <bsmnt_bot> 0
22:45:41 <bsmntbombdood> arghh
22:45:43 <nazgjunk> hehe
22:46:25 <bsmntbombdood> ~exec sys.stdout(self.x())
22:46:39 <bsmntbombdood> wtf
22:46:58 <nazgjunk> o.O
22:47:20 <bsmntbombdood> ~exec self.x = popen2.popen2("/usr/bin/dc -e '1p')[0].read()
22:47:20 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
22:47:25 <bsmntbombdood> ~exec self.x = popen2.popen2("/usr/bin/dc -e '1p'")[0].read()
22:47:35 <bsmntbombdood> ~exec sys.stdout(self.x)
22:47:40 <nazgjunk> ..
22:47:45 <bsmntbombdood> ~exec sys.stdout(len(self.x))
22:47:45 <bsmnt_bot> 0
22:47:48 <bsmntbombdood> gah!
22:48:14 <bsmntbombdood> ~exec os.system("/usr/bin/dc -e '[hello, world]p'")
22:48:37 <bsmntbombdood> weird
22:49:02 <bsmntbombdood> ~exec sys.stdout(os.system("/usr/bin/dc -e '[hello, world]p'"))
22:49:02 <bsmnt_bot> 32512
22:50:03 <bsmntbombdood> ~exec self.x = popen2.popen2("/usr/bin/THIS_COMMAND_IS_NOT_THERE -e '1p'")[0].read()
22:50:12 <bsmntbombdood> great.
22:50:24 <bsmntbombdood> ~exec sys.stdout(type(self.x))
22:50:24 <bsmnt_bot> <type 'str'>
22:50:30 <bsmntbombdood> ~exec sys.stdout(len(self.x))
22:50:30 <bsmnt_bot> 0
22:51:41 <bsmntbombdood> ~exec self.x = popen2.popen2(["/usr/bin/dc", "-e", "1p"])[0].read()
22:51:50 <bsmntbombdood> ~exec self.x = popen2.popen2(["/usr/bin/THIS_COMMAND", "-e", "1p"])[0].read()
22:52:12 <bsmntbombdood> how is that not an exception
22:53:27 <bsmntbombdood> ~exec self.x = os.popen("/usr/bin/dc -e '1p'", "r")
22:53:38 <bsmntbombdood> ~exec sys.stdout(self.x)
22:53:39 <bsmnt_bot> <open file '/usr/bin/dc -e '1p'', mode 'r' at 0xb7cacc38>
22:53:44 <bsmntbombdood> ~exec sys.stdout(self.x.read())
22:53:49 <bsmntbombdood> oh come on
22:53:54 <bsmntbombdood> ~exec sys.stdout(self.x.read())
22:56:00 <bsmntbombdood> that works fine in my python repl
22:56:33 <bsmntbombdood> hmm
22:56:39 <bsmntbombdood> not in a chrooted repl though
22:59:56 <bsmntbombdood> ~exec sys.stderr(os.environ)
23:03:06 -!- oerjan has joined.
23:10:59 -!- ShadowHntr has joined.
23:17:29 -!- twice11 has joined.
23:34:27 -!- twice11 has quit ("Leaving").
23:46:02 -!- calamari has joined.
23:48:52 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:52:34 -!- ShadowHntr has quit (Read error: 104 (Connection reset by peer)).
2007-03-12
00:07:11 -!- nazgjunk has quit ("Leaving").
00:16:59 -!- bsmntbombdood has changed nick to Zorpon.
00:32:55 <Zorpon> hmm
00:32:59 <Zorpon> I should learn smalltalk
00:38:11 -!- Zorpon has changed nick to Zorpon_.
00:38:53 -!- Zorpon_ has changed nick to Zorpon.
00:43:20 <SimonRC> Zorpon: yes
00:43:39 * Zorpon makes it so
00:43:43 <SimonRC> It's a *real* OO language, unlike Java
00:48:04 <Zorpon> eww java
01:02:32 <Zorpon> what's with the : on the end of messages
01:03:36 <oerjan> it distinguishes them from variables
01:03:42 <oerjan> if i remember correctly.
01:12:18 <SevenInchBread> yeah smalltalk is nifty.
01:12:27 <SevenInchBread> it's just the call syntax.
01:12:54 * SevenInchBread is basing his Sophia language partially on Smalltalk.
01:15:26 <Zorpon> I think it has something to do with arguments
01:16:04 <oerjan> well, each : part is followed by an argument, if that's what you mean.
01:18:38 <lament> i love smalltalk syntx
01:19:44 <SimonRC> I like the fuck-around-with-ability of it
01:20:09 <SimonRC> you can re-define classes and all instances will immediately start using the new version
01:20:25 <Zorpon> reminds me of ruby
01:20:31 <Zorpon> 1 to: 20 do: [:x| x printNl ] !
01:21:17 <SimonRC> Haskell: mapM_ print [1..20]
01:21:25 <SimonRC> That's about as good as you can get
01:21:42 <SimonRC> Haskell: also the world's best imperative language.
01:21:44 <SimonRC> :-P
01:22:25 <SimonRC> I don't see any others with such elegant rules for handling first-class code blocks
01:22:54 <SimonRC> especially the issue of creating new variables versus using existing ones.
01:27:47 <Zorpon> This tutorial isn't too good
01:28:09 <SimonRC> I liked the Dolphin Smalltalk tutorial.
01:34:05 <SevenInchBread> Ruby was partially based off of Smalltalk
01:36:41 <GregorR> !ps d
01:36:43 <EgoBot> 1 ais523: daemon ul bf
01:36:45 <EgoBot> 2 ais523: daemon deadfish funge93
01:36:47 <EgoBot> 3 GregorR: ps
01:47:21 <Zorpon> interesting at the use of lambda for if
01:55:46 -!- tgwizard has quit (Remote closed the connection).
02:04:50 -!- ShadowHntr has joined.
02:32:11 -!- calamari has quit ("Leaving").
02:56:04 -!- Sukoshi has joined.
02:56:08 <Sukoshi> Java users home?
02:56:18 <Sukoshi> (I'm sorry, I'm in a big hurry.)
03:03:27 <Zorpon> eew java
03:09:52 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
03:13:25 -!- calamari has joined.
03:26:35 <RodgerTheGreat> haha! Nonlogic has absorbed yet another denizen of #Esoteric!
03:26:43 * RodgerTheGreat cackles maniacally.
03:37:12 <oerjan> Someone could make a movie about an evil Internet entity which absorbs people.
03:37:22 <oerjan> They could call it The Blog.
03:37:39 <RodgerTheGreat> heheh
03:43:09 -!- oerjan has quit ("Good night").
03:50:19 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
04:11:14 <RodgerTheGreat> good night, guys
04:11:31 -!- RodgerTheGreat has quit.
04:17:44 -!- ShadowHntr has quit ("End of line.").
04:58:46 -!- Zorpon has changed nick to bsmntbombdood.
06:00:42 -!- ShadowHntr has joined.
06:08:30 -!- Arrogant has joined.
06:11:58 -!- calamari has quit ("Leaving").
06:14:37 -!- GreaseMonkey has joined.
06:29:12 -!- ShadowHntr has quit ("End of line.").
06:36:56 <GreaseMonkey> afk food
06:56:15 <GreaseMonkey> back
07:10:58 -!- anonfunc_ has joined.
07:11:22 -!- anonfunc has quit (Read error: 104 (Connection reset by peer)).
07:13:37 -!- anonfunc_ has quit (Read error: 104 (Connection reset by peer)).
07:15:04 -!- anonfunc has joined.
07:18:35 -!- anonfunc has quit (Read error: 104 (Connection reset by peer)).
07:19:34 -!- anonfunc_ has joined.
07:20:08 -!- anonfunc_ has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:04:58 -!- clog has joined.
08:04:58 -!- Arrogant has quit ("Leaving").
08:10:25 -!- Sgeo has quit ("Leaving").
09:19:31 -!- Sukoshi has joined.
09:27:25 -!- GreaseMonkey has quit (Remote closed the connection).
09:28:44 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
09:31:00 -!- jix__ has joined.
09:31:58 -!- jix__ has changed nick to jix.
09:44:58 -!- oerjan has joined.
12:06:35 -!- oerjan has quit ("leaving").
12:23:03 -!- ais523 has joined.
12:32:52 -!- jix__ has joined.
12:33:16 * ais523 has written one of the slowest 99 bottles of beer programs in history
12:33:45 <ais523> because Forte is an order of n slower than every other language
12:33:56 <ais523> so bottles-of-beer programs are O(n^2)
12:34:21 <ais523> and on top of that, it's running on an inefficient implementation
12:43:01 -!- jix has quit (Read error: 110 (Connection timed out)).
12:49:10 <ais523> I was wondering whether C was, in fact, Turing-complete
12:49:29 <ais523> traditionally it's been said to be bounded-storage because sizeof(void*) has to be finite
12:49:54 <ais523> but I think it's a push-down automaton, due to the possibility of using register variables (which don't have to have addresses) and recursion
13:01:34 <ais523> ~exec eval("for n in [1,2,3,4]:\n sys.stdout(n)\n")
13:01:35 <bsmnt_bot> SyntaxError: invalid syntax
13:02:36 <ais523> ~exec eval("for n in count(4):\n sys.stdout(n)\n")
13:02:36 <bsmnt_bot> SyntaxError: invalid syntax
13:02:47 <ais523> ~exec eval("sys.stdout(4)")
13:02:48 <bsmnt_bot> 4
13:02:54 <ais523> ~exec eval("sys.stdout(4)\n")
13:02:55 <bsmnt_bot> 4
13:03:07 <ais523> ~exec eval("sys.stdout(n)\n")
13:03:08 <bsmnt_bot> NameError: name 'n' is not defined
13:03:23 <ais523> ~exec eval("for n in (count(4)):\n sys.stdout(n)\n")
13:03:24 <bsmnt_bot> SyntaxError: invalid syntax
13:04:49 <ais523> ~exec eval("for n in [1, 2, 3]:\n sys.stdout(n)\n")
13:04:49 <bsmnt_bot> SyntaxError: invalid syntax
13:06:06 <ais523> ~exec eval("for n in [1, 2, 3]:\n sys.stdout(n)\nsys.stdout('Finished.')\n")
13:06:06 <bsmnt_bot> SyntaxError: invalid syntax
13:06:43 <ais523> ~exec eval("sys.stdout(1)\nsys.stdout(2)")
13:06:43 <bsmnt_bot> SyntaxError: invalid syntax
13:06:59 <ais523> so eval seems not to accept multi-line strings
13:07:12 <ais523> ~exec eval("sys.stdout(1)\rsys.stdout(2)")
13:07:13 <bsmnt_bot> SyntaxError: invalid syntax
13:07:26 <ais523> ~exec sys.stdout(1)\nsys.stdout(2)
13:07:26 <bsmnt_bot> SyntaxError: invalid token
13:07:32 <ais523> ~exec sys.stdout(1)\n sys.stdout(2)
13:07:38 <bsmnt_bot> SyntaxError: invalid syntax
13:09:35 <ais523> ~exec eval('''sys.stdout(1)\nsys.stdout(2)''')
13:09:35 <bsmnt_bot> SyntaxError: invalid syntax
13:09:46 <ais523> ~exec sys.stdout("1\n2")
13:09:46 <bsmnt_bot> 1
13:09:46 <bsmnt_bot> 2
13:09:53 <ais523> ~exec sys.stdout("1\r2")
13:09:53 <bsmnt_bot> 1
13:10:02 <ais523> ~exec sys.stdout("1\t2")
13:10:02 <bsmnt_bot> 12
13:11:10 <ais523> ~exec sys.stdout("for n in [1, 2, 3]: sys.stdout(n)")
13:11:11 <bsmnt_bot> for n in [1, 2, 3]: sys.stdout(n)
13:11:18 <ais523> ~exec eval("for n in [1, 2, 3]: sys.stdout(n)")
13:11:18 <bsmnt_bot> SyntaxError: invalid syntax
13:11:24 <ais523> ~exec exec("for n in [1, 2, 3]: sys.stdout(n)")
13:11:27 <bsmnt_bot> 1
13:11:29 <bsmnt_bot> 2
13:11:31 <bsmnt_bot> 3
13:11:39 <ais523> ~exec sys.stdout("for n in [1, 2, 3]:\n sys.stdout(n)")
13:11:40 <bsmnt_bot> for n in [1, 2, 3]:
13:11:40 <bsmnt_bot> sys.stdout(n)
13:11:52 <ais523> ~exec exec("for n in [1, 2, 3]:\n sys.stdout(n)")
13:11:53 <bsmnt_bot> 1
13:11:53 <bsmnt_bot> 2
13:11:53 <bsmnt_bot> 3
13:13:14 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(t)")
13:13:15 <bsmnt_bot> NameError: name 't' is not defined
13:13:20 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t)")
13:13:21 <bsmnt_bot> Hello, world!
13:13:30 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t.length)")
13:13:30 <bsmnt_bot> AttributeError: 'str' object has no attribute 'length'
13:13:39 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t.size)")
13:13:39 <bsmnt_bot> AttributeError: 'str' object has no attribute 'size'
13:14:03 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t[0])")
13:14:03 <bsmnt_bot> H
13:14:17 <ais523> ~exec exec("self.t='Hello, world!'\nsys.stdout(self.t[13])")
13:14:17 <bsmnt_bot> IndexError: string index out of range
13:14:27 <SimonRC> ais523: actually, I think you'll find that the program could be re-run form the beginning with a bigger word size every time it ran out of memory, if you wanted.
13:14:52 <ais523> I'm just trying to use bsmnt_bot to learn Python
13:15:22 <SimonRC> "< ais523> I was wondering whether C was, in fact, Turing-complete"
13:15:22 <ais523> SimonRC: wait a moment, what context was your last comment in?
13:15:38 <SimonRC> you thought not
13:15:56 <ais523> I don't think an implementation's allowed to dynamically change sizeof(void*)
13:16:10 <ais523> although maybe that isn't against the rules if the program never asks what it is
13:16:34 <SimonRC> I mean: if you run out of address space, re-compile for a bigger architecture.
13:16:42 <SimonRC> then re-run
13:16:59 <SimonRC> assuming the usual strict-function-style TC.
13:17:02 <ais523> but you can do that in MISC, and it isn't Turing-complete
13:17:35 <SimonRC> yeah, but you now have no reason for C not to be Turing-complete
13:18:38 <ais523> ~exec exec("self.n=4\nwhile self.n>0:\n sys.stdout(n)\n n=n-1\nsys.stdout('Finished!')")
13:18:39 <bsmnt_bot> NameError: name 'n' is not defined
13:18:48 <ais523> ~exec exec("self.n=4\nwhile self.n>0:\n sys.stdout(self.n)\n self.n=self.n-1\nsys.stdout('Finished!')")
13:18:48 <bsmnt_bot> 4
13:18:48 <bsmnt_bot> 3
13:18:48 <bsmnt_bot> 2
13:18:50 <bsmnt_bot> 1
13:18:52 <bsmnt_bot> Finished!
13:19:02 <ais523> I don't see why that makes C TC
13:19:24 <ais523> because recompiling for a bigger architecture and rerunning isn't something you're necessarily allowed to do from within the language
13:19:38 <ais523> unless you're suggesting something like #pragma make_me_Turing_Complete
13:20:29 <ais523> ~exec exec("self.tape=0\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])")
13:20:29 <bsmnt_bot> TypeError: unsubscriptable object
13:20:40 <ais523> ~exec exec("self.tape=[]\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])")
13:20:40 <bsmnt_bot> IndexError: list index out of range
13:20:56 <ais523> ~exec exec("self.tape=[0]*30000\nself.tape[10]=self.tape[10]+5\nsys.stdout(self.tape[10])")
13:20:57 <bsmnt_bot> 5
13:23:24 <SimonRC> ais523: Ok, the language is Turing-complete, but no implementation can be.
13:23:42 <ais523> ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+': self.t[self.l]++\n if self.p[self.i]=='.': sys.stdout(self.t[self.l])")
13:23:42 <bsmnt_bot> SyntaxError: invalid syntax
13:23:55 <SimonRC> You could port C to the Turing machine will a little work, then it really *could* be TC.
13:24:08 <ais523> no, because even the Turing machine couldn't access an infinite store of memory
13:24:22 <ais523> because the sizeof operator exists, there has to be a hard limit on every data type
13:25:11 <ais523> ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]++\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1")
13:25:12 <bsmnt_bot> SyntaxError: invalid syntax
13:25:36 <ais523> ~exec sys.stdout(1==2)
13:25:36 <bsmnt_bot> False
13:25:39 <ais523> ~exec sys.stdout(1!=2)
13:25:39 <bsmnt_bot> True
13:25:45 <SimonRC> ais523: hmm
13:25:52 <SimonRC> I wonder...
13:26:11 <ais523> At least, what I've been arguing is what I've come to believe the conventional wisdom is
13:26:15 <ais523> but I wonder too
13:26:32 <SimonRC> so, a subset of C is Turing-complete, but the whole of C isn't.
13:26:33 <SimonRC> weird
13:26:45 <ais523> I think it's at least a PDA, because register variables need not have addresses and you can get an infinite number of them using recursion
13:27:25 <ais523> ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1")
13:27:25 <bsmnt_bot> 5
13:28:27 <ais523> ~exec exec("self.t=[0]*30000\nself.p='+++++.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='-':\n self.t[self.l]=self.t[self.l]-1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1")
13:28:28 <bsmnt_bot> 5
13:30:00 <ais523> ~exec exec("self.t=[0]*30000\nself.p='++>--<+++.>.!'\nself.i=0\nself.l=0\nwhile self.p[self.i]!='!':\n if self.p[self.i]=='+':\n self.t[self.l]=self.t[self.l]+1\n if self.p[self.i]=='-':\n self.t[self.l]=self.t[self.l]-1\n if self.p[self.i]=='<':\n self.l=self.l-1\n if self.p[self.i]=='>':\n self.l=self.l+1\n if self.p[self.i]=='.':\n sys.stdout(self.t[self.l])\n self.i=self.i+1")
13:30:00 <bsmnt_bot> 5
13:30:00 <bsmnt_bot> -2
13:33:53 <ais523> ~exec exec("self.bf=lambda(p): t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1")
13:33:54 <bsmnt_bot> SyntaxError: invalid syntax
13:34:27 <ais523> ~exec exec("self.bf=lambda(p):\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1")
13:34:28 <bsmnt_bot> SyntaxError: invalid syntax
13:34:47 <ais523> ~exec exec("self.test=lambda(x):\n sys.stdout(x)")
13:34:47 <bsmnt_bot> SyntaxError: invalid syntax
13:34:57 <ais523> ~exec exec("self.test=def test(x):\n sys.stdout(x)")
13:34:58 <bsmnt_bot> SyntaxError: invalid syntax
13:35:06 <ais523> ~exec exec("def test(x):\n sys.stdout(x)")
13:35:11 <ais523> ~exec self.test("Hello, world")
13:35:14 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'test'
13:35:21 <ais523> ~exec test("Hello, world")
13:35:26 <bsmnt_bot> NameError: name 'test' is not defined
13:35:46 <ais523> ~exec exec("def test(x):\n sys.stdout(x)\nself.test=test")
13:35:52 <ais523> ~exec self.test("Hello, world")
13:35:53 <bsmnt_bot> Hello, world
13:36:21 <ais523> ~exec exec("def bf(p):\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf")
13:36:37 <ais523> ~exec self.bf("++>+++.<.!")
13:36:37 <bsmnt_bot> 3
13:36:37 <bsmnt_bot> 2
13:36:56 <ais523> ~exec exec("def bf(p):\n p=p+"!"\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf")
13:36:57 <bsmnt_bot> SyntaxError: invalid syntax
13:37:23 <ais523> ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sys.stdout(t[l])\n i=i+1\nself.bf=bf")
13:37:37 <ais523> ~exec self.bf("++++>----<.>.<.")
13:37:37 <bsmnt_bot> 4
13:37:37 <bsmnt_bot> -4
13:37:37 <bsmnt_bot> 4
13:38:55 <ais523> ~exec sys.stdout(true or false)
13:38:55 <bsmnt_bot> NameError: name 'true' is not defined
13:39:02 <ais523> ~exec sys.stdout(True or False)
13:39:02 <bsmnt_bot> True
13:41:39 <ais523> ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n sy
13:41:40 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
13:42:34 <ais523> ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='\[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='\[': c=c+1\n if p[i]=='\]': c=c-1\n if p[i]=='\]' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]=='\]': c=c+1\n if p[i]=='\[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\
13:42:34 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
13:43:47 <ais523> ~exec exec("""def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+':\n t[l]=t[l]+1\n if p[i]=='-':\n t[l]=t[l]-1\n if p[i]=='<':\n l=l-1\n if p[i]=='>':\n l=l+1\n if p[i]=='.':\n
13:43:48 <bsmnt_bot> SyntaxError: EOF while scanning triple-quoted string
13:45:20 <ais523> ~exec exec("def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(t[l])\n i=
13:45:20 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
13:45:56 <ais523> I seem to have exceeded some sort of maximum input length for bsmnt_bot
13:46:33 <ais523> ~exec self.bf1="def bf(p):\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
13:46:40 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(t[l])\n i=i+1\nself.bf=bf"
13:46:51 <ais523> ~exec exec(self.bf1+self.bf2)
13:47:14 <ais523> ~exec self.bf("+++[->++<]>.")
13:47:15 <bsmnt_bot> 6
13:47:20 <ais523> yay!
13:47:30 <ais523> !bf_txtgen Hello, world!
13:48:16 <EgoBot> 121 ++++++++++++++[>+++++>+++++++>+++><<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+. [609]
13:49:39 <ais523> ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.")
13:49:40 <bsmnt_bot> 72
13:49:40 <bsmnt_bot> 101
13:49:40 <bsmnt_bot> 108
13:49:40 <bsmnt_bot> 108
13:49:40 <bsmnt_bot> 111
13:49:40 <bsmnt_bot> 44
13:49:42 <bsmnt_bot> 32
13:49:44 <bsmnt_bot> 119
13:49:46 <bsmnt_bot> 111
13:49:48 <bsmnt_bot> 114
13:49:50 <bsmnt_bot> 108
13:49:52 <bsmnt_bot> 100
13:49:54 <bsmnt_bot> 33
13:54:43 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': sys.stdout(unichr(t[l]))\n i=i+1\nself.bf=bf"
13:54:51 <ais523> ~exec exec(self.bf1+self.bf2)
13:55:02 <ais523> ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.")
13:55:02 <bsmnt_bot> H
13:55:03 <bsmnt_bot> e
13:55:03 <bsmnt_bot> l
13:55:03 <bsmnt_bot> l
13:55:03 <bsmnt_bot> o
13:55:03 <bsmnt_bot> ,
13:55:05 <bsmnt_bot> w
13:55:07 <bsmnt_bot> o
13:55:09 <bsmnt_bot> r
13:55:11 <bsmnt_bot> l
13:55:13 <bsmnt_bot> d
13:55:15 <bsmnt_bot> !
13:55:18 <EgoBot> Huh?
13:55:55 <ais523> ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
13:56:05 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf"
13:56:13 <ais523> ~exec exec(self.bf1+self.bf2)
13:56:17 <ais523> ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.")
13:56:30 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf\nsys.stdout(o)"
13:56:33 <ais523> ~exec exec(self.bf1+self.bf2)
13:56:33 <bsmnt_bot> NameError: name 'o' is not defined
13:56:42 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\nself.bf=bf\n sys.stdout(o)"
13:56:47 <ais523> ~exec exec(self.bf1+self.bf2)
13:56:47 <bsmnt_bot> SyntaxError: invalid syntax
13:57:34 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf"
13:57:37 <ais523> ~exec exec(self.bf1+self.bf2)
13:57:43 <ais523> ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.")
13:57:43 <bsmnt_bot> Hello, world!
14:02:24 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2))")
14:02:25 <bsmnt_bot> SyntaxError: EOL while scanning single-quoted string
14:02:30 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2)))
14:02:45 <ais523> ~bf ++++++[->++++++<].
14:02:45 -!- bsmnt_bot has quit (Remote closed the connection).
14:02:50 -!- bsmnt_bot has joined.
14:04:09 <ais523> ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:04:14 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf"
14:04:24 <ais523> ~exec exec(self.bf1+self.bf2)
14:04:39 <ais523> ~exec self.bf("+++++[->+++++<]>.")
14:04:40 <bsmnt_bot>
14:04:47 <ais523> ~exec self.bf("++++++[->++++++<]>.")
14:04:47 <bsmnt_bot> $
14:05:06 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf(.*)", lambda x,y: self.bf(y.group(2)))
14:05:17 <ais523> ~bf ++++++[->++++++<]>.
14:05:17 -!- bsmnt_bot has quit (Remote closed the connection).
14:05:20 -!- bsmnt_bot has joined.
14:05:26 <ais523> ~bf ++++++[->++++++<]>.
14:05:33 <ais523> ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:05:35 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf"
14:05:46 <ais523> ~exec exec(self.bf1+self.bf2)
14:05:59 <ais523> ~exec self.bf(" ++++++[->++++++<]>.")
14:06:00 <bsmnt_bot> $
14:06:22 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat(.*)", lambda x,y: sys.stdout(y.group(2)))
14:06:27 <ais523> ~cat Hello, world!
14:06:27 <bsmnt_bot> Hello, world!
14:06:39 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catv(.*)", lambda x,y: sys.stdout(y.group(2)))
14:06:43 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat (.*)", lambda x,y: sys.stdout(y.group(2)))
14:06:47 <ais523> ~cat Hello, world!
14:06:48 <bsmnt_bot> Hello, world!
14:06:48 <bsmnt_bot> Hello, world!
14:06:57 <ais523> ~exec self.pop_raw_regex_queue()
14:06:57 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'pop_raw_regex_queue'
14:06:58 <ais523> ~exec self.pop_raw_regex_queue()
14:07:00 <bsmnt_bot> AttributeError: IRCbot instance has no attribute 'pop_raw_regex_queue'
14:07:24 <ais523> ~exec self.raw_regex_queue().pop()
14:07:24 <bsmnt_bot> TypeError: 'list' object is not callable
14:07:28 <ais523> ~exec self.raw_regex_queue.pop()
14:07:31 <ais523> ~exec self.raw_regex_queue.pop()
14:07:32 <ais523> ~exec self.raw_regex_queue.pop()
14:07:37 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~cat (.*)", lambda x,y: sys.stdout(y.group(2)))
14:07:41 <ais523> ~cat Hello, world!
14:07:41 <bsmnt_bot> Hello, world!
14:08:10 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catrepr (.*)", lambda x,y: sys.stdout(repr(y.group(2))))
14:08:15 <ais523> ~catrepr Hello, world!
14:08:16 <bsmnt_bot> 'Hello, world!'
14:08:48 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: self.bf(y.group(2)))
14:09:02 <ais523> ~bf ++++++[>++++++<-]>.
14:09:02 -!- bsmnt_bot has quit (Remote closed the connection).
14:09:05 -!- bsmnt_bot has joined.
14:09:19 <ais523> ~exec self.bf1="def bf(p):\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:09:25 <ais523> ~exec self.bf2=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.bf=bf"
14:09:31 <ais523> ~exec exec(self.bf1+self.bf2)
14:09:56 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~catrepr (.*)", lambda x,y: sys.stdout(repr(y.group(2))))
14:10:04 <ais523> ~catrepr ++++++[>++++++<-]>.
14:10:05 <bsmnt_bot> '++++++[>++++++<-]>.'
14:10:17 <SimonRC> gah! get a loca python interpreter!
14:10:28 <SimonRC> There are ones for windows too, you know.
14:10:35 <ais523> Sorry! I was trying to get bsmnt_bot to do Brainfuck
14:10:47 <SimonRC> ah, ok
14:10:48 <ais523> it works, but I can't get it to respond to commands of the form ~bf
14:11:08 <ais523> ~exec self.bf("++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.")
14:11:09 <bsmnt_bot> Hello, world!
14:11:12 <SimonRC> Sorry, I thought you were still learning python.
14:11:27 * SimonRC goesr
14:11:28 <ais523> Like this? It wouldn't be very good
14:11:28 * SimonRC goes
14:13:48 <ais523> bsmntbombdood: I've got bsmnt_bot to do Brainfuck, but I can't get it to work properly on the raw regex queue (for some reason, it just quits whenever I try)
14:16:18 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: sys.stdout("!ul (~exec self.bf("+y.group(2)+"))S"))
14:16:28 <ais523> ~bf ++++++[>+++++++<-]>.
14:16:28 <bsmnt_bot> !ul (~exec self.bf(++++++[>+++++++<-]>.))S
14:16:32 <EgoBot> ~exec self.bf(++++++[>+++++++<-]>.)
14:16:32 <bsmnt_bot> SyntaxError: invalid syntax
14:16:46 <ais523> ~exec self.raw_regex_queue.pop()
14:17:01 <ais523> ~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~bf (.*)", lambda x,y: sys.stdout("!ul (~exec self.bf(\'\'\'"+y.group(2)+"\'\'\'))S"))
14:17:06 <ais523> ~bf ++++++[>+++++++<-]>.
14:17:06 <bsmnt_bot> !ul (~exec self.bf('''++++++[>+++++++<-]>.'''))S
14:17:10 <EgoBot> ~exec self.bf('''++++++[>+++++++<-]>.''')
14:17:11 <bsmnt_bot> *
14:17:21 <ais523> There's always a way....
14:17:41 <ais523> ~bf ++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.
14:17:42 <bsmnt_bot> !ul (~exec self.bf('''++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.'''))S
14:17:46 <EgoBot> ~exec self.bf('''++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.''')
14:17:47 <bsmnt_bot> Hello, world!
14:20:35 <ais523> You know you've spent too much time programming when, like I just did, you try to save a directory after renaming a file
14:21:48 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:23:07 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)',bfarg)"
14:23:13 <ais523> ~exec self.raw_regex_queue.pop()
14:23:23 <ais523> ~exec exec(self.bf3+self.bf4)
14:23:34 <ais523> ~bf ++++++[->++++++<]>.
14:23:34 <bsmnt_bot> $
14:23:45 <ais523> yay again!
14:25:20 <ais523> ~bf ++++++++++++++[>+++++>+++++++>+++<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+.
14:25:20 <bsmnt_bot> Hello, world!
14:33:14 <ais523> ~exec sys.stdout("Hello, world!"[1:])
14:33:15 <bsmnt_bot> ello, world!
14:35:26 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(y.group(4)[0])\n y.group(4)=y.group(4)[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg)"
14:35:39 <ais523> ~exec self.raw_regex_queue.pop()
14:35:42 <ais523> ~exec exec(self.bf3+self.bf4)
14:35:42 <bsmnt_bot> SyntaxError: can't assign to function call (<string>, line 28)
14:36:03 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(4)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:36:30 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg)"
14:36:34 <ais523> ~exec exec(self.bf3+self.bf4)
14:36:52 <ais523> ~bf ,>,>,.<.<.!abc
14:37:27 <ais523> ~bf ++++++[->++++++<]>.
14:37:34 <ais523> ~bf ++++++[->++++++<]>.!
14:38:03 <ais523> ~exec self.raw_regex_queue.pop()
14:38:04 <ais523> ~exec self.raw_regex_queue.pop()
14:38:10 <ais523> ~exec exec(self.bf3+self.bf4)
14:38:26 <ais523> ~exec sys.stdout(repr(self.raw_regex_queue))
14:38:26 <bsmnt_bot> [(<_sre.SRE_Pattern object at 0xb7cc1c98>, <bound method IRCbot.pong of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d2290>, <bound method IRCbot.do_quit of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d24c8>, <bound method IRCbot.do_raw of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object
14:38:27 <bsmnt_bot> at 0x80d1cc0>, <bound method IRCbot.do_ctcp of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d26e0>, <bound method IRCbot.do_exec of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d2918>, <bound method IRCbot.do_exec of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80c1010>, <bound me
14:38:27 <bsmnt_bot> thod IRCbot.do_ps of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d2b80>, <bound method IRCbot.do_kill of <__main__.IRCbot instance at 0xb7c2e16c>>), (<_sre.SRE_Pattern object at 0x80d6980>, <function bfarg at 0xb7c3064c>)]
14:38:55 <ais523> ~ps
14:38:56 <bsmnt_bot> None
14:39:12 <ais523> ~exec sys.stdout(self.bf4)
14:39:13 <bsmnt_bot> if p[i]=='+': t[l]=t[l]+1
14:39:13 <bsmnt_bot> if p[i]=='-': t[l]=t[l]-1
14:39:13 <bsmnt_bot> if p[i]=='<': l=l-1
14:39:13 <bsmnt_bot> if p[i]=='>': l=l+1
14:39:14 <bsmnt_bot> if p[i]=='.': o=o+unichr(t[l])
14:39:15 <bsmnt_bot> if p[i]==',':
14:39:16 <bsmnt_bot> t[l]=ord(a[0])
14:39:18 <bsmnt_bot> a=a[1:]
14:39:19 <bsmnt_bot> i=i+1
14:39:21 <bsmnt_bot> sys.stdout(o)
14:39:23 <bsmnt_bot> self.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)(!(.*))?',bfarg)
14:39:50 <ais523> ~quit
14:40:04 <ais523> ~exec exec(self.bf3+self.bf4)
14:40:12 <ais523> ~bf ,.!a
14:40:40 <ais523> ~exec sys.stdout(repr(self.raw_regex_queue.pop()))
14:40:40 <bsmnt_bot> (<_sre.SRE_Pattern object at 0x80d6980>, <function bfarg at 0xb7c3079c>)
14:41:25 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:41:44 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf (.*)!(.*)',bfarg)"
14:41:50 <ais523> ~exec exec(self.bf3+self.bf4)
14:41:56 <ais523> ~bf ,.!a
14:41:56 <bsmnt_bot> a
14:42:29 <ais523> ~exec self.raw_regex_queue.pop()
14:43:12 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf ([^!]*)!?(.*)',bfarg)"
14:43:17 <ais523> ~bf ,.!a
14:43:28 <ais523> ~exec exec(self.bf3+self.bf4)
14:43:29 <ais523> ~bf ,.!a
14:43:30 <bsmnt_bot> a
14:43:38 <ais523> ~bf ++++++[->++++++<]>.
14:43:38 <bsmnt_bot> $
14:45:09 <ais523> ~bf ,[.,]!Hello, world!
14:45:10 -!- bsmnt_bot has quit (Remote closed the connection).
14:45:13 -!- bsmnt_bot has joined.
14:45:29 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:45:48 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)+unichr(0)\n o=''\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:45:54 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\n sys.stdout(o)\nself.register_raw(r'\S+ PRIVMSG (\S+) :~bf ([^!]*)!?(.*)',bfarg)"
14:45:57 <ais523> ~exec exec(self.bf3+self.bf4)
14:46:04 <ais523> ~bf ,[.,]!Hello, world!
14:46:05 <bsmnt_bot> Hello, world!
14:46:59 <ais523> ~bf ,[.,]!This implementation returns 0 on EOL.
14:47:00 <bsmnt_bot> This implementation returns 0 on EOL.
14:48:05 <ais523> ~bf ++++++++++++++++[->++++++++<]>-[.-]
14:48:05 <bsmnt_bot> ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
14:48:06 <bsmnt_bot> <CTCP>
15:13:05 <ais523> ~bf >,[>,]<.[<.]!Hello, world!
15:13:05 <bsmnt_bot> !dlrow ,olleH
15:13:09 <EgoBot> Huh?
15:19:45 <ais523> !bf >,[>,]<.[<.]
15:19:53 <ais523> !i 1 Hello, world!
15:20:02 <ais523> !i 3 Hello, world!
15:20:04 <ais523> !eof 3
15:20:07 <EgoBot> !dlrow ,olleH
15:20:19 <ais523> !ul (I haven't broken this, have I?)S
15:20:21 <EgoBot> I haven't broken this, have I?
15:26:56 -!- nazgjunk has joined.
15:27:48 <ais523> ~bf ,[.,]!Hello, nazgjunk!
15:27:50 <bsmnt_bot> Hello, nazgjunk!
15:27:57 <nazgjunk> !
15:27:59 <nazgjunk> hi
15:28:01 <EgoBot> Huh?
15:28:22 <ais523> I spent ages trying to get bsmnt_bot to do Brainfuck
15:28:30 <ais523> * brainfuck
15:38:56 -!- UpTheDownstair has joined.
15:44:15 -!- fushd has joined.
15:44:29 -!- nazgjunk has quit (Nick collision from services.).
15:46:05 -!- fushd has changed nick to nazgjunk.
15:54:48 -!- jix__ has changed nick to jix.
15:59:07 -!- UpTheDownstair has quit (Connection timed out).
16:02:05 -!- oerjan has joined.
16:02:22 <ais523> ~bf ,[.,]!Hello, oerjan!
16:02:23 <bsmnt_bot> Hello, oerjan!
16:17:15 <oerjan> hello
16:17:32 <oerjan> i don't see why Forte has to be O(n^2).
16:17:55 <ais523> Basically, because you need to keep generating new line numbers for lines
16:18:06 <ais523> so when you do a loop, the redefinition table grows at O(n)
16:18:13 <ais523> * as
16:18:37 <ais523> but I suppose it might be possible to do the redefinition table more efficiently
16:19:52 <oerjan> Trees.
16:20:45 <ais523> So, let me put it this way: 99 bottles of beer written in Forte written in Thutu is probably O(99^2) minimum
16:20:59 <ais523> (and yes, I did test it with other values of 99)
16:22:23 <ais523> it's at least going to be O(n) in space when it should be O(1), with any language used to write the interpreter
16:22:40 <ais523> (but if it were O(n) in space before, it may still be O(n) in space after Forteisation)
16:22:55 <oerjan> Yeah, space is hard to keep down.
16:30:21 <ais523> By the way, the compiled version of my interpreter is http://pastebin.ca/391947
16:30:53 <ais523> (I hacked the Thutu interpreter to support arithmetic and a few string operations natively, so if I gave the Thutu source code you couldn't run it anyway)
16:31:47 * ais523 wonders why Perl syntax-highlighters never seem to be able to handle regexps correctly
16:33:44 <oerjan> that leads to the obvious question: can Perl regexps parse Perl regexps?
16:34:18 <ais523> No. You can't do nested brackets with regexps (it's a computational class thing)
16:34:42 <oerjan> yeah, that old pumping lemma
16:34:52 <ais523> to handle nested brackets in Thutu, the easiest way is to change them to some other sort of bracket from the inside out, in pairs
17:04:28 -!- kxspxr has joined.
17:04:40 -!- kxspxr has quit (Client Quit).
17:10:05 -!- tgwizard has joined.
17:51:31 <ais523> What do people think of the idea of using a separate pastebin (e.g. esoteric.pastebin.ca) instead of the main pastebin.ca pastebin?
17:52:02 <ais523> Advantages: our stuff is separated from people using the pastebin for other things.
17:52:39 <ais523> Disadvantages: slightly extra hassle to get it set up, slightly longer URL, we would need at least one post every 3 months (which is easy enough to manage) to keep the pastebin active
17:54:08 -!- digital_me has joined.
17:57:29 <lament> "meh"
17:58:00 <GregorR> la "meh" nt
18:11:25 <nazgjunk> ais523, sounds like a plan
18:12:27 <ais523> I'll go and set up esoteric.pastebin.ca, then, if there are no objections soon
18:13:04 <lament> i have an objection!
18:13:19 <ais523> what is it?
18:13:31 <lament> "why"
18:13:36 <GregorR> Second.
18:14:00 <ais523> The idea would be that if #esoteric's posts were separated, then we could look back through them in the future
18:14:11 <ais523> it would sort of reduce the attrition rate of esolang-related material
18:14:20 <lament> would it.
18:14:36 <GregorR> Public pastebins die after 3mo.
18:14:44 <GregorR> (Of unuse)
18:15:29 <ais523> 3 months of disuse, yes. I listed that as a potential disadvantage.
18:15:38 <ais523> what are the chances of that happening?
18:16:02 <oerjan> almost 100%
18:16:38 <ais523> Oh well, in that case we can just use the main one
18:16:44 <ais523> and use clog to find all the relevant post numbers
18:16:54 <oerjan> it depends on your time frame, of course :)
18:17:09 <ais523> I guessed your answer would be in that sense
18:28:10 <ais523> but people here are right, it's likely that our pastebin archiving services are good enough already
18:30:38 <GregorR> Now, if somebody wrote a custom esoteric pastebin with highlighting for Brainfuck and Befunge ... :P
18:33:07 <ais523> I already have a brainfuck-mode on Emacs
18:33:16 <bsmntbombdood> someone was having fun with bsmnt_bot ...
18:33:17 * ais523 looks into their own filesystem
18:33:24 <GregorR> !ps d
18:33:25 <EgoBot> 1 ais523: daemon ul bf
18:33:25 <ais523> ~bf ,[.,]!that was me
18:33:26 <bsmnt_bot> that was me
18:33:27 <EgoBot> 2 ais523: daemon deadfish funge93
18:33:29 <EgoBot> 3 GregorR: ps
18:35:09 <ais523> bsmntbombdood: anyway, I don't see why bsmnt_bot shouldn't have a BF interpreter too
18:35:23 <bsmntbombdood> because EgoBot has one?
18:36:27 <ais523> that's like saying "no need to make any more esolangs, INTERCAL is Turing-complete"
18:36:41 <bsmntbombdood> heh
18:36:44 <bsmntbombdood> go ahead
18:36:54 <ais523> No, I've done it already
18:37:14 <ais523> ~bf ,[.,]!This is a complete Brainfuck interpreter (EOF = 0)
18:37:15 <bsmnt_bot> This is a complete Brainfuck interpreter (EOF = 0)
18:37:27 <bsmntbombdood> fun
18:37:31 <ais523> and ! separates program from input (can be omitted if you don't want input)
18:37:49 <ais523> I can set it up in 3 commands, too
18:38:03 <ais523> (It would be 1 but that exceeds the maximum line length I can send)
18:38:52 <ais523> !bf_txtgen bsmnt_bot does Brainfuck!
18:39:57 <EgoBot> 208 ++++++++++++++[>+++++++>++++++++>++++++++>++<<<<-]>.>+++.>---.+.<+.<---.+++.>>+.<.>>++++.<<<++.>>.----------.<-.>>.<<<----------------------------------.>-.>----.++++++++.+++++.--------.<+++.>---.++++++++.>+. [409]
18:40:09 <ais523> ~bf ++++++++++++++[>+++++++>++++++++>++++++++>++<<<<-]>.>+++.>---.+.<+.<---.+++.>>+.<.>>++++.<<<++.>>.----------.<-.>>.<<<----------------------------------.>-.>----.++++++++.+++++.--------.<+++.>---.++++++++.>+.
18:40:09 <bsmnt_bot> bsmnt_bot does Brainfuck!
18:41:08 <ais523> come to think of it, I haven't tested it with nested square brackets yet
18:42:00 <ais523> ~bf >,[>,]<[.[-]<[.<]>[-]>[.>]<]!123456789
18:42:00 <bsmnt_bot> 98765432123456788765432345677654345665455
18:42:36 <ais523> ~bf >,[>,]<[.<[.<]>[-]>[.>]<[-]<]!123456789
18:42:37 <bsmnt_bot> 987654321234567898765432345678765434567654565
18:43:08 <ais523> ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!123456789
18:43:08 <bsmnt_bot> 9876543212345678765432345676543456545
18:43:15 <ais523> that's what I was aiming for
18:47:45 <ais523> ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!_,.-'^
18:47:46 <bsmnt_bot> ^'-.,_,.-'-.,.-.
18:48:21 <ais523> ~bf >,[>,]<.[-]<[.<[.<]>[-]>[.>]<[-]<]!<({[|]})>
18:48:21 <bsmnt_bot> >)}]|[{(<({[|]})}]|[{({[|]}]|[{[|]|[|
18:49:36 <GregorR> My brain hurts.
18:50:59 <ais523> why are you in #esoteric, then?
18:51:11 <ais523> I can see why it would make your brain hurt,
18:51:25 <ais523> but it isn't a very good place for soothing a brain that's already been hurt
18:51:37 <GregorR> :P
18:52:32 <lament> yes, one's brain does hurt when it is repeatedly fucked.
19:16:01 -!- ais523 has quit.
19:32:05 -!- sebbu has joined.
20:22:18 -!- sebbu2 has joined.
20:23:14 -!- calamari has joined.
20:30:01 -!- sebbu has quit (Read error: 60 (Operation timed out)).
20:37:40 -!- sebbu2 has changed nick to sebbu.
20:42:31 -!- Sgeo has joined.
20:47:41 -!- graue has joined.
20:55:51 -!- UpTheDownstair has joined.
20:59:07 -!- kxspxr has joined.
21:00:23 -!- kxspxr has quit (Client Quit).
21:01:26 -!- calamari has quit ("Leaving").
21:04:44 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:05:29 -!- nazgjunk has joined.
21:16:39 -!- oerjan has quit ("leaving").
21:22:32 -!- UpTheDownstair has quit (Connection timed out).
21:38:41 -!- calamari has joined.
21:55:48 -!- oerjan has joined.
22:22:07 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:31:01 -!- calamari has quit ("Leaving").
23:25:31 -!- kxspxr has joined.
23:25:50 -!- kxspxr has quit (Client Quit).
23:33:56 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
23:34:32 -!- nazgjunk has joined.
2007-03-13
00:11:52 -!- oerjan has quit (calvino.freenode.net irc.freenode.net).
00:12:05 -!- oerjan has joined.
00:18:31 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
00:25:21 -!- calamari has joined.
00:34:52 -!- calamari has quit ("Leaving").
00:41:50 -!- oerjan has quit ("leaving").
00:48:25 -!- NK`_ has joined.
00:51:26 -!- NK` has quit (Read error: 111 (Connection refused)).
00:59:09 -!- NK`_ has quit (Read error: 145 (Connection timed out)).
01:01:11 -!- NK` has joined.
01:36:45 -!- SevenInchBread has joined.
01:41:01 -!- calamari has joined.
02:24:40 -!- tgwizard has quit (Remote closed the connection).
02:25:54 -!- sebbu has quit ("Leaving").
02:47:55 -!- SevenInchBread has changed nick to CakeProphet.
03:15:06 -!- CakeProphet has changed nick to SevenInchBread.
04:04:56 -!- GreaseMonkey has joined.
04:34:56 <bsmntbombdood> oh joy
05:08:11 -!- Sgeo has quit ("Leaving").
05:08:12 -!- SevenInchBread has quit (Read error: 113 (No route to host)).
05:17:26 -!- Arrogant has joined.
05:17:29 -!- ShadowHntr has joined.
05:28:28 -!- maverickbna has joined.
05:28:37 -!- ShadowHntr has quit (Nick collision from services.).
05:28:45 -!- maverickbna has changed nick to ShadowHntr.
05:39:38 -!- digital_me has quit (Read error: 110 (Connection timed out)).
05:42:37 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
05:55:06 -!- Arrogant has quit ("Leaving").
06:11:52 -!- lament has quit (calvino.freenode.net irc.freenode.net).
06:12:09 -!- lament has joined.
06:12:49 -!- lament_ has joined.
06:15:00 -!- lament has quit (Remote closed the connection).
06:46:16 -!- lament_ has changed nick to lament.
07:00:46 <GreaseMonkey> afk food
07:16:09 <GreaseMonkey> back
07:59:23 -!- jix__ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:35 -!- jix__ has quit (Client Quit).
08:00:48 -!- jix__ has joined.
08:23:57 -!- calamari has quit ("Leaving").
08:38:19 -!- ShadowHntr has joined.
09:17:47 -!- thematrixeatsyou has joined.
09:19:45 -!- thematrixeatsyou has quit (Client Quit).
09:20:18 -!- jix__ has quit (Read error: 110 (Connection timed out)).
09:21:46 -!- GreaseMonkey has quit (Read error: 110 (Connection timed out)).
09:40:25 -!- ShadowHntr has quit (Read error: 145 (Connection timed out)).
10:21:54 -!- oerjan has joined.
12:04:35 -!- jix__ has joined.
12:05:01 -!- jix__ has changed nick to jix.
12:56:44 -!- oerjan has quit ("leaving").
15:57:39 -!- nazgjunk has joined.
16:15:29 -!- UpTheDownstair has joined.
16:17:05 -!- nazgjunk has quit (Nick collision from services.).
16:17:09 -!- UpTheDownstair has changed nick to nazgjunk.
16:22:19 -!- puzzlet has quit (Read error: 131 (Connection reset by peer)).
16:22:58 -!- jix has quit ("This computer has gone to sleep").
17:04:08 -!- puzzlet has joined.
17:22:32 -!- jix__ has joined.
19:34:10 -!- clog has joined.
19:34:10 -!- clog has joined.
19:56:18 -!- crathman has quit (Read error: 145 (Connection timed out)).
21:01:15 -!- tgwizard has joined.
21:05:41 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:05:43 -!- sebbu2 has joined.
21:05:50 -!- UpTheDownstair has joined.
21:06:12 -!- UpTheDownstair has changed nick to nazgjunk.
21:06:36 -!- nazgjunk has quit (Connection reset by peer).
21:10:21 -!- ShadowHntr has joined.
21:15:01 <bsmntbombdood> Reading books that require concentration has proven to be ineffective after taking the CSAP
21:22:46 <RodgerTheGreat> CSAP?
21:24:30 -!- sebbu has quit (Connection timed out).
21:27:02 <bsmntbombdood> required standardized tests in colorado
21:27:34 <bsmntbombdood> http://en.wikipedia.org/wiki/CSAP
21:27:58 <bsmntbombdood> it fuckin sucks
21:30:00 <RodgerTheGreat> hm. reminds me of the MEAP we use in Michigan
21:30:49 <bsmntbombdood> At least this is the last year I have to take it
21:39:26 -!- oerjan has joined.
21:41:22 -!- Arrogant has quit ("Leaving").
21:51:57 -!- nazgjunk has joined.
22:10:06 <graue> bsmntbombdood: link to the research in question?
22:10:17 <graue> or were you just extrapolating from personal experience?
22:20:07 <RodgerTheGreat> if anyone's into game theory, this is really neat: http://www.connectfour.net/Files/connect4.pdf
22:30:36 <graue> i thought connect 4 was a draw
22:30:50 <graue> i also seem to remember the checkers in connect 4 as being red and black, not white
22:33:27 -!- UpTheDownstair has joined.
22:33:41 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
22:37:41 <RodgerTheGreat> yeah
22:37:53 <RodgerTheGreat> the paper describes them as normally being yellow and red
22:39:23 <graue> the colors must differ in the dutch market; every set i've seen has had them red and black
22:43:47 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
22:44:01 -!- UpTheDownstair has joined.
22:44:54 -!- sebbu2 has changed nick to sebbu.
22:48:24 -!- nazgjunk has joined.
22:48:39 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
22:50:10 <RodgerTheGreat> graue: in american markets, the game is similarly played with red and black game pieces.
22:54:58 <lament> the dutch get htem in standard tulip colors.
22:57:05 <graue> i'm in an american market. i meant because the authors of that paper are dutch
23:02:09 -!- tgwizard has quit (Remote closed the connection).
23:05:00 -!- UpTheDownstair has joined.
23:06:32 -!- Sgeo has joined.
23:12:59 <bsmntbombdood> graue: huh?
23:15:02 <bsmntbombdood> graue: what research?
23:15:29 -!- foekd has joined.
23:15:51 -!- nazgjunk has quit (Nick collision from services.).
23:16:01 -!- foekd has changed nick to nazgjunk.
23:25:41 -!- UpTheDownstair has quit (Connection timed out).
23:27:53 -!- sebbu has quit ("@+").
23:36:59 -!- RodgerTheGreat has quit.
23:47:51 -!- RodgerTheGreat has joined.
2007-03-14
00:05:53 <oklopol> made my board game ai into an irc bot
00:05:54 <oklopol> [01:02:13] <sujomilo> Human 48 - computer 2644
00:05:59 <oklopol> :P
00:09:58 <oklopol> i lasted for like 10 rounds though!
00:23:59 <lament> what board game?
00:30:51 <oklopol> sujomilo... my own
00:31:01 <lament> sounds esperantoish
00:31:04 <graue> bsmntbombdood: research to support the thesis that you can't concentrate on reading books after taking that test
00:31:19 <bsmntbombdood> graue: oh, that's just my own experience
00:32:10 <oklopol> it doesn't mean anything though
01:05:27 -!- nazgjunk has quit (Read error: 110 (Connection timed out)).
01:13:12 -!- nazgjunk has joined.
01:48:45 -!- nazgjunk has quit ("Leaving").
02:05:53 -!- Caphi has joined.
02:11:49 <Caphi> Will someone please say a random number between 1 and 20, inclusive?
02:12:23 <oerjan> 14
02:12:29 <Caphi> Thank you.
02:12:55 <oerjan> You're welcome.
02:13:02 <Caphi> \[\]=a
02:13:07 <Caphi> 0
02:13:22 <Caphi> Sorry. Someone else tried to take my computer.
02:17:07 <bsmntbombdood> 56`1
02:20:58 <RodgerTheGreat> oerjan: 17 has been proven to be more random than 14
02:21:01 <RodgerTheGreat> :D
02:22:10 <oerjan> Hey, you think I'll give away my best random number for free?
02:23:25 <Caphi> I like the number 17.
02:23:48 <oerjan> 14 is a good random number. Half perfect, in fact.
02:24:49 <Caphi> Quite so.
02:25:05 <bsmntbombdood> man
02:25:15 <bsmntbombdood> prefix application makes parsing so easy
02:25:21 <bsmntbombdood> (unlambda style)
02:25:26 <Caphi> I just realized, I didn't actually specify an integer.
02:26:07 <Caphi> Or indeed a rational number.
02:26:35 <bsmntbombdood> e^pi - pi
02:27:10 <oerjan> OK, try e*sqrt 2 - pi/omega
02:27:33 <oerjan> just to be completely surreal
02:27:47 <Caphi> Omega? I'm not familiar with that constant.
02:28:14 <oerjan> probably because it isn't a real number.
02:28:58 <bsmntbombdood> BB(144)
02:29:03 <Caphi> By which you mean that it's complex or that it's undefined?
02:29:10 <oerjan> it is perfectly well ordered though.
02:29:18 <oerjan> nope :)
02:29:30 <Caphi> So it's complex?
02:29:34 <oerjan> nope
02:29:49 <oerjan> it's surreal
02:29:54 <bsmntbombdood> defined, but uncomputable
02:30:19 <oerjan> oh that too. omega means too many different things.
02:30:25 <Caphi> Oo. I learned stuff today.
02:30:36 <oerjan> although the uncomputable number is still real
02:30:48 <Caphi> Out of curiosity
02:30:54 <Caphi> What's the definition for it
02:31:37 <oerjan> i can never remember the correct notation for surreals.
02:32:03 <oerjan> but something like (0,1,2,... | )
02:32:21 <oerjan> the simplest infinite surreal.
02:32:35 <RodgerTheGreat> Caphi: for what purpose do you request this number?
02:32:42 <Caphi> Just curious.
02:33:01 <RodgerTheGreat> so am I, that's my point. :)
02:33:11 <Caphi> No other reason. Oerjan mentioned it.
02:33:25 <oerjan> on the other hand, omega comes from the ordinal numbers as well.
02:33:53 <oerjan> the ordinal numbers can be considered a subset of the surreals.
02:34:33 <oerjan> those with empty right parts, i believe
02:49:35 <bsmntbombdood> hmm, that's interesting
02:50:09 <bsmntbombdood> my combinator iterpreter fails to simplify ``S``S`KS``S`KK``S`KS``S``S`KS``S`KKI`KI`K``S``S`KS``S`KKI`KI
02:50:36 <bsmntbombdood> (extensionally equal to S)
02:52:15 <bsmntbombdood> I'm writing an abstraction eliminator
02:54:22 <bsmntbombdood> oh man
02:54:25 <bsmntbombdood> ``S``S`KS``S`KK``S`KS``S`K`S`KS``S`K`S`KK``S``S`KS``S`KKI`KI`K``S``S`KS``S`K`S`KS``S`K`S`KK``S``S`KS``S`KKI`KI`K`KI
02:54:39 <bsmntbombdood> church numeral addition
02:56:01 <bsmntbombdood> my simplifier completely fails to do anything with that, even though there are obvious simplifications
02:57:32 <oerjan> that ``S`KKI inside is pretty severe.
03:00:04 <oerjan> ``S`KxI -> x is the most trivial case of eta reduction.
03:01:06 <bsmntbombdood> yeah :/
03:02:28 <bsmntbombdood> wonder why it doesn't reduce it
03:02:52 <bsmntbombdood> oh
03:03:30 <bsmntbombdood> When reducing extensionally, it only works with the whole expression
03:06:18 <bsmntbombdood> ahh, now it at least does something
03:06:36 <bsmntbombdood> and ``S``S`KS``S`KK``S`KS``S``S`KS``S`KKI`KI`K``S``S`KS``S`KKI`KI is reduced to S
03:11:36 -!- oerjan has quit ("Good night").
03:24:04 <bsmntbombdood> dummy variables are annoying
04:14:36 -!- GreaseMonkey has joined.
04:27:57 <RodgerTheGreat> good night, guys
04:28:47 -!- RodgerTheGreat has quit.
05:05:41 -!- Sgeo has quit ("Leaving").
05:54:02 -!- GreaseMonkey has quit ("gtg guys, cya").
07:17:11 -!- ShadowHntr has quit ("End of line.").
07:44:53 <Caphi> Will someone please produce two random numbers between 1 and 10, inclusive, and tell me their sum?
07:46:48 <Caphi> Never mind. I was trying to demonstrate to someone, but that person left.
07:47:36 <tokigun> 18.
07:59:52 <oklopol> Request noted. Minding disabled.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:45:13 -!- Caphi has quit ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org").
10:04:04 -!- oerjan has joined.
11:02:17 -!- jix has joined.
14:31:11 -!- oerjan has quit ("leaving").
16:03:38 -!- nooga has joined.
16:03:41 <nooga> y0
16:05:16 -!- graue has quit ("Leaving").
16:13:13 <nooga> SADOL.com wtf?!?!?!?
16:36:31 -!- jix__ has joined.
16:36:37 -!- jix has quit (Nick collision from services.).
16:36:45 -!- jix__ has changed nick to jix.
16:38:33 -!- RodgerTheGreat has joined.
16:38:47 <RodgerTheGreat> hi everybody
17:39:55 -!- Robdgreat has joined.
17:47:30 -!- oerjan has joined.
17:54:50 -!- tgwizard has joined.
18:07:18 -!- Robdgreat has quit.
19:01:41 -!- jix has quit ("This computer has gone to sleep").
19:30:20 -!- oerjan has quit ("leaving").
19:31:05 -!- oerjan has joined.
19:38:12 -!- sebbu has joined.
20:34:24 -!- nazgjunk has joined.
20:37:01 -!- jix has joined.
21:06:02 -!- sebbu2 has joined.
21:24:48 -!- sebbu has quit (Read error: 110 (Connection timed out)).
21:35:10 -!- sebbu has joined.
21:45:09 -!- UpTheDownstair has joined.
21:46:30 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
21:48:40 -!- tgwizard_ has joined.
21:52:51 -!- UpTheDownstair has changed nick to nazgjunk.
21:54:51 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
22:00:10 -!- tgwizard has quit (Read error: 110 (Connection timed out)).
22:07:23 -!- Caphi has joined.
23:02:20 -!- jix has quit ("This computer has gone to sleep").
23:20:08 <bsmntbombdood> ooh fun
23:20:20 <bsmntbombdood> the max shifts function solves the halting problem
23:30:01 <RodgerTheGreat> wha?
23:32:23 <bsmntbombdood> The value of the max shifts function is uncomputable
23:33:33 <bsmntbombdood> But given the value of S(n), you can solve the halting problem on an n state turing machine
23:35:16 <oerjan> This gave me an idea which I don't know if I've seen the answer to:
23:35:19 <RodgerTheGreat> ah, I see
23:35:41 <bsmntbombdood> hmm
23:35:41 <oerjan> Are there uncomputable problems strictly weaker than the halting problem?
23:35:58 <lament> sounds unlikely
23:36:02 <bsmntbombdood> S(4) on a 2 symbol machine is known
23:36:26 <bsmntbombdood> so on a 4 state, 2 symbol turing machines, the halting problem is solvable
23:38:03 <oerjan> it is analogous to how there are, if P!=NP, problems strictly between them.
23:39:18 <oerjan> (that is, problems which are neither in P nor NP-complete)
23:39:31 <lament> what's strictly weaker anyway
23:39:59 <RodgerTheGreat> is it trivial to map one type of turing machine to another via any well-understood algorithm?
23:40:00 <lament> is the problem of sorting apples strictly weaker than the problem of sorting oranges?
23:40:02 <oerjan> say you have a problem which you can solve if you have a halting oracle, but not vice versa
23:40:50 <oerjan> I mean by "strictly weaker" that you have a reduction one way but not the other.
23:41:19 <lament> oerjan: is the problem of deciding the halting of a program equipped with a halting oracle strictly stronger than just the regular halting problem?
23:41:33 <oerjan> yes.
23:41:41 <RodgerTheGreat> one would assume so
23:42:07 <oerjan> in fact that is the premise of one of the languages on the wiki.
23:43:08 <oerjan> actually two: Banana Scheme and Brainhype.
23:43:16 <RodgerTheGreat> hm
23:43:21 <RodgerTheGreat> interesting
23:43:54 -!- nazgjunk has quit ("Leaving").
23:44:58 <lament> brainhype doesn't really care
23:45:20 <oerjan> but going downward in strength (while still being uncomputable) seems harder.
23:45:45 <lament> (banana scheme mostly appeared exactly because it was unclear what could interpret brainhype)
23:56:18 <lament> hm, this /// lang seems cool
23:56:30 <lament> i totally missed it
2007-03-15
00:18:54 -!- RodgerTheGreat has quit.
00:20:05 -!- RodgerTheGreat has joined.
00:23:06 <RodgerTheGreat> #$@% cars
00:23:10 <RodgerTheGreat> *cats
00:25:37 -!- Sgeo has joined.
00:28:57 -!- oerjan has quit ("leaving").
00:29:30 <bsmntbombdood> sweet
00:29:37 <bsmntbombdood> my dad got me a pocket protector
00:29:39 <bsmntbombdood> :P
00:29:51 <RodgerTheGreat> ooh, neat
00:30:07 <bsmntbombdood> indeed
00:30:30 <RodgerTheGreat> if I had shirts with pockets, I'd wear one all the time
00:30:54 <bsmntbombdood> me too
00:31:13 -!- oerjan has joined.
00:31:19 <bsmntbombdood> I can see myself using a pocket protector, if I wore shirts with pockets
00:31:56 <RodgerTheGreat> what logo does your pocket protector have on it?
00:32:02 -!- tgwizard_ has quit (Remote closed the connection).
00:32:26 <bsmntbombdood> a very small "JM" imprint
00:32:43 <bsmntbombdood> nothing else
00:33:04 <RodgerTheGreat> classy
00:48:54 -!- cmeme has quit (Read error: 104 (Connection reset by peer)).
00:49:09 -!- cmeme has joined.
00:52:15 <lament> holy crap
00:52:15 <lament> http://mathforum.org/kb/message.jspa?messageID=1375971&tstart=0
00:56:48 <RodgerTheGreat> is that written by *the* John Conway?
00:57:06 -!- sebbu has quit (Client Quit).
00:57:07 <bsmntbombdood> I know pi to 51 decimal places
00:57:43 <RodgerTheGreat> I never find myself needing more than the first seven- I've never really tried memorizing them
01:00:18 <lament> RodgerTheGreat: yes
01:00:28 <RodgerTheGreat> cool
01:00:36 <lament> that's what impressed me
01:00:50 <RodgerTheGreat> cellular automata and memorizing pi.
01:00:53 <lament> although his technique is pretty nice too
01:00:57 <RodgerTheGreat> I agree
01:01:11 <lament> bsmntbombdood: how did you memorize it?
01:01:16 <RodgerTheGreat> it's often easy to memorize sequences of numbers by their spoken "beat"
01:01:48 <RodgerTheGreat> sine-cosine-cosine-sine-three-point-one-four-one-five-nine and the like
01:02:49 <lament> this is probably made easier if you combine some groups of 2 digits into one number
01:03:07 <lament> three fourteen fifteen etc
01:03:48 <RodgerTheGreat> what's interesting about John Conway is that among this crowd, he's a celebrity, whereas most places nobody would bat an eyelash at the name
01:06:22 <RodgerTheGreat> lament: yeah- chunking numbers is another extremely effective way of reducing the difficulty of memorizing things
01:10:03 <bsmntbombdood> lament: couple boring days in middle school math
01:10:16 <RodgerTheGreat> haha
01:10:36 <bsmntbombdood> it breaks itself up into easily memorizable pieces
01:11:58 <bsmntbombdood> 1415 92 653 5897 9323 846264 3383...
01:12:54 <RodgerTheGreat> another way to "memorize" it could be to memorize an algorithm for finding successive places....
01:13:12 <RodgerTheGreat> slower in recall, but at least as useful
01:13:32 <bsmntbombdood> that would be terrible difficult
01:14:41 <RodgerTheGreat> before you've played with esolangs, something like BF is difficult to wrap your head around. Now, it comes naturally to all of us.
01:19:22 <bsmntbombdood> that's true
01:22:25 <RodgerTheGreat> one of the reasons I like esolangs is the fact that they have a way of liberating one's mind with respect to programming.
01:22:59 <RodgerTheGreat> I feel sad for people who only think of programming in terms of C++ and Java
01:23:16 <bsmntbombdood> concur
02:08:00 -!- oerjan has quit ("Good night").
03:06:07 <Sgeo> Today is (ln -1)/i day!
03:06:55 <RodgerTheGreat> cool
03:07:11 <RodgerTheGreat> we need to do something special at 1:59
03:07:23 <Sgeo> Whose 1:59?
03:07:34 <bsmntbombdood> mmm, pi
03:10:08 <RodgerTheGreat> Sgeo: good question
03:10:29 <Sgeo> GMT-92 ?
03:10:41 <Sgeo> Whatever that turns out to be equivelent to?
03:10:51 <RodgerTheGreat> sounds equitable
03:11:09 <RodgerTheGreat> what would be an appropriate celebration?
03:31:23 <lament> bsmntbombdood: i like conway's division more than yours :)
03:31:41 * lament memorized pi to 30 places with conway's thing
03:31:56 <bsmntbombdood> hmm
03:32:27 <lament> his is almost like a poem
03:33:22 <lament> "1415 9265 35" - rhymes
03:33:53 <bsmntbombdood> reading it doesn't make any sense
03:35:07 <lament> 8979 (rhyme) 3238 (rhyme the other way) 4626 (rhyme) 4338 (rhymes with the second quadruplet)
03:36:12 <RodgerTheGreat> just express rhymes like you would if you were analyzing poetry: ABAB
03:36:31 <RodgerTheGreat> at last, taking AP English seems worthwhile
03:36:57 <bsmntbombdood> Next time I have to write some poetry for class I'm just going to mark v. shaney some poe
03:42:05 <RodgerTheGreat> 1233564- quoth the constant, nevermore.
03:43:18 <RodgerTheGreat> it would be interesting writing a program that would translate a sentence into a series of numbers that had the same rythm when read
03:44:01 <RodgerTheGreat> it might be as simple as assigning numbers based on rhyme pairs
03:44:13 <RodgerTheGreat> but I'm not certain that would always work
03:46:29 -!- GreaseMonkey has joined.
03:46:31 -!- thematrixeatsyou has joined.
03:46:46 <RodgerTheGreat> howdy GreaseMonkey, thematrixeatsyou
03:47:12 -!- thematrixeatsyou has left (?).
03:48:04 <GreaseMonkey> sorry bout that, accidentally connected twice D:
03:48:31 <RodgerTheGreat> I was wondering if it was you and your bot or something
03:50:24 <RodgerTheGreat> GreaseMonkey: how do you think we should celebrate the upcoming pi day?
03:50:24 <GreaseMonkey> i accidentally opened two server tabs
03:50:33 <bsmntbombdood> \sum_{i=1}^\infty{10^{-i}i}
03:50:39 <GreaseMonkey> hmm....
03:50:46 <GreaseMonkey> what's the formula for pi again?
03:50:50 <GreaseMonkey> i can never remember it
03:50:53 <bsmntbombdood> lots
03:51:06 <GreaseMonkey> there's a couple of tangents in it
03:51:12 <bsmntbombdood> 1/1 - 1/3 + 1/5 + 1/7...
03:51:15 <bsmntbombdood> is one
03:51:35 <bsmntbombdood> converges very slowly though
03:52:32 <RodgerTheGreat> should that second + be a -?
03:52:53 <GreaseMonkey> i think so
03:52:56 <RodgerTheGreat> terms usually alternate in a mclaurin series (which that vaguely resembles) or stay constant
03:53:06 <RodgerTheGreat> if you get my meaning
03:53:30 <lament> the upcoming pi day?
03:53:46 <bsmntbombdood> yeah
03:53:49 <bsmntbombdood> typed wrong
03:53:52 <bsmntbombdood> lament: today
03:54:14 <RodgerTheGreat> I'm defining the official celebration as 1:59, GMT
03:54:19 <RodgerTheGreat> because that makes sense
03:54:20 <bsmntbombdood> and that's actually pi/4
03:54:53 <bsmntbombdood> why GMT?
03:55:00 <bsmntbombdood> it should be GMT-pi
03:55:55 <bsmntbombdood> http://en.wikipedia.org/wiki/Leibniz_formula_for_pi
03:56:24 <RodgerTheGreat> that sounds clumsy to calculate, unless we use metric time or something
04:02:28 <RodgerTheGreat> we should write a "pidaydaemon" that interrupts whatever you're doing with the terminal at the precise moment of pi day and encourages you to celebrate
04:02:54 <bsmntbombdood> impossible.
04:02:56 <lament> pidaymon
04:04:23 <RodgerTheGreat> lament: brilliant!
04:04:55 <RodgerTheGreat> #EsoMon: gotta appt-get 'em all!
04:27:13 <RodgerTheGreat> good night, folks
04:27:23 -!- RodgerTheGreat has quit.
04:30:17 -!- ShadowHntr has joined.
04:40:29 -!- ShadowHntr has quit (zelazny.freenode.net irc.freenode.net).
04:40:29 -!- Caphi has quit (zelazny.freenode.net irc.freenode.net).
04:40:29 -!- bsmnt_bot has quit (zelazny.freenode.net irc.freenode.net).
05:43:18 -!- Sgeo has quit ("Leaving").
06:49:22 -!- ShadowHntr has joined.
06:59:15 <GreaseMonkey> afk, food
07:19:44 <GreaseMonkey> back
07:50:05 -!- maverickbna has joined.
07:50:22 -!- maverickbna has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:08:56 -!- ShadowHntr has quit (Connection timed out).
08:29:48 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)).
08:34:04 -!- sekhmet has joined.
08:40:04 -!- sebbu has joined.
09:09:43 -!- jix has joined.
09:16:52 -!- ShadowHntr has joined.
10:05:18 <GreaseMonkey> gtg, gnight
10:07:19 -!- GreaseMonkey has quit ("gnight - avoid encyclopediadramatica at all costs.").
10:29:19 -!- ShadowHntr has quit ("End of line.").
11:57:05 -!- jix__ has joined.
12:06:13 -!- jix has quit (Read error: 113 (No route to host)).
12:46:32 -!- oerjan has joined.
12:55:47 <oerjan> all this talk about celebrating pi at 3/14 1:59 (GMT/GMT-pi) and none of the Americans noticed that those times had long since passed.
13:35:03 -!- oerjan has quit (zelazny.freenode.net irc.freenode.net).
13:35:24 -!- oerjan has joined.
13:45:35 -!- jix__ has changed nick to jix.
14:13:34 -!- helios24 has joined.
15:56:10 -!- crathman has joined.
16:12:52 -!- RodgerTheGreat has joined.
16:13:06 <RodgerTheGreat> hello everyone
17:26:57 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.2/2007021917]").
18:00:10 -!- oerjan has quit ("leaving").
18:25:46 -!- tgwizard has joined.
19:11:47 -!- nazgjunk has joined.
19:13:07 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
19:16:48 -!- nazgjunk has joined.
19:54:50 -!- UpTheDownstair has joined.
19:55:06 -!- nazgjunk has quit (Read error: 131 (Connection reset by peer)).
19:55:33 -!- UpTheDownstair has changed nick to nazgjunk.
19:58:18 -!- jix has quit ("This computer has gone to sleep").
21:29:16 -!- UpTheDownstair has joined.
21:32:02 -!- nazgjunk has quit (Read error: 145 (Connection timed out)).
21:36:19 -!- sebbu2 has joined.
21:43:14 -!- sebbu has quit (Read error: 60 (Operation timed out)).
22:23:42 <bsmntbombdood> haha
22:23:56 <bsmntbombdood> C is a sad language, because most lines end with );
22:24:03 <lament> );
22:28:38 <RodgerTheGreat> haha
22:29:24 <RodgerTheGreat> even worse, all those curly brackets make fun of people with cleft palates- :{
22:30:09 <RodgerTheGreat> 'course, that exact combination doesn't happen very often that I can think of...
22:36:50 -!- oerjan has joined.
22:38:40 <oerjan> is :{ possible in C at all?
22:39:31 <oerjan> can an expression begin with just { ?
22:40:29 <RodgerTheGreat> hm
22:40:36 <RodgerTheGreat> a good question
22:41:24 <GregorR> Plof has a lot of });
22:41:31 <RodgerTheGreat> I know one way it's *possible*, but not in a functional expression
22:41:43 <GregorR> A static struct.
22:41:57 <RodgerTheGreat> there you go
22:41:58 <GregorR> struct foo a = { b:{stuff in a.b} };
22:42:10 <oerjan> ah
22:42:16 <GregorR> I haven't used that syntax in a while, I may be a bit off ;)
22:43:06 <oerjan> indeed it seems a bit weird to have that inner { }
22:43:41 <GregorR> Well, that much I know is legit :)
22:43:51 <GregorR> If a struct contains a struct, and you're declaring one statically, that's how you do it.
22:44:06 <oerjan> ok
22:45:49 <bsmntbombdood> huh?
22:45:52 <bsmntbombdood> :{ ?
22:50:53 <oerjan> found a BNF for C at http://www.cs.man.ac.uk/~pjj/bnf/c_syntax.bnf
22:51:02 <bsmntbombdood> i don't think you can have that
22:51:10 <oerjan> however, i cannot make your suggestion parse with it.
22:51:34 <oerjan> first, it's = not : but that is not so important.
22:52:04 <oerjan> worse is that the part to the right of = cannot contain a nested struct.
22:53:09 <oerjan> oh wait.
22:53:21 <oerjan> the _outer_ ={ still works.
22:53:24 -!- nazgjunk has joined.
22:53:49 -!- UpTheDownstair has quit (Read error: 104 (Connection reset by peer)).
22:54:03 <lament> ={
22:54:05 <oerjan> it could of course be an erroneous BNF.
22:57:13 <oerjan> oh, and label :{ block } works.
22:59:09 <oerjan> or, less goto-tainted: case const :{ block }
22:59:45 <oerjan> which looks like it could actually be used.
23:01:51 <GregorR> *snaps*
23:01:59 <GregorR> Oh, heheh, the syntax I gave was D :P
23:03:24 <oerjan> I guess it is probably also available in modern C compilers, being an obvious gap in the original language.
23:05:13 <oklopol> oerjan do you know C?
23:05:49 <oerjan> a bit
23:06:12 <bsmntbombdood> C is fun
23:06:23 <oklopol> quite
23:06:38 <GregorR> C is my native language. It was difficult learning an ... unstructured language like English when I was a boy.
23:06:45 <oerjan> :D
23:06:47 <fizzie> struct foo a = { .b = initializer_for_field_b }; is C99 (and a GCC extension for other modes).
23:08:43 <fizzie> Same goes for arrays; int array[256] = { [42] = 1, [69] = 1 }; works if you want to initialize few elements to 1 and keep the rest as 0.
23:09:23 <bsmntbombdood> fizzie: wtf?
23:09:29 <bsmntbombdood> I've never seen that syntax
23:10:07 <fizzie> Well, full C99-compliant compilers aren't anywhere yet, so I'm not sure it's sensible to use in published code. Perhaps in GCC-specific projects, though.
23:10:59 <bsmntbombdood> busy beaver!
23:11:48 <oerjan> hm... you could extend that to function memoing.
23:12:12 <fizzie> See chapter 6.7.8 Initialization in your friendly ISO/IEC 9899:1999 standard; the syntax is "initializer-list: designation_opt initializer --" and a designator can be either "[ constant-expression ]" or ". identifier".
23:12:33 <bsmntbombdood> http://eden.dei.uc.pt/~machado/research/bb/BB.html
23:12:56 <oerjan> int fib(int n) { return (fib(n) = fib(n-1)+ fib(n-2)); } = { (0) = 0, (1) = 1 };
23:13:35 <fizzie> That might be a "bit" too high-level to exactly be very C-like.
23:13:51 <oerjan> hey, i'm just generalizing :)
23:15:52 <bsmntbombdood> I want a turing machine interpreter
23:16:13 -!- sebbu has joined.
23:17:13 <oerjan> i saw mention of one with a good graphical interface, perhaps at Good Math/Bad Math.
23:17:34 <fizzie> I had a Turing machine interpreter written in Befunge and syntax-highlighted in the great "messy HTML table with a dozen different background colors for various functional regions" fashion, but I lost it. :/
23:17:42 <fizzie> The "user interface" wasn't very friendly, though.
23:18:16 <fizzie> abA!6!0!a!1!A!R!0!b!5!b!R!1!a!1!a!R!1!b!2!b!R!2!a!2!a!R!2!A!3!A!L!2!!!3!!
23:18:24 <fizzie> Ngah, borken copypaste.
23:18:53 <oerjan> oh and Mark CC wrote an interpreter himself too
23:18:53 <fizzie> Well, you just fed it a string a bit like that, except that it's not supposed to cut off there, the example I was trying to copypaste continues for a while.
23:19:49 -!- nazgjunk has quit ("Leaving").
23:19:49 <oerjan> http://scienceblogs.com/goodmath/2007/02/basics_the_turing_machine_with_1.php
23:20:44 <oerjan> a bit verbose syntax though
23:21:05 <lament> it is a shame that one of the most historically important esoteric languages is not even recognized as such
23:21:16 <lament> all because Turing used a different terminology
23:22:10 <bsmntbombdood> what, turing machines?
23:22:57 <oerjan> the JFLAP mentioned in the same thread was the good one i was thinking of.
23:23:00 <lament> turing machines are programs in this language
23:23:25 <oerjan> (not that i have tested it myself)
23:23:28 <lament> the language does not have a name or syntax. I find that to be a shame. :)
23:23:49 <oerjan> you could say the same about combinatory logic.
23:23:51 <bsmntbombdood> There's just more than one
23:24:05 <oerjan> except that does have a name and syntax
23:24:11 <lament> oerjan: ... :)
23:24:44 <lament> it makes sense to talk of a "combinatory logic" language, in which something like "s k" is a program
23:25:34 <lament> no issues there...
23:25:40 <oerjan> among turing tarpits, the distinction between "computational model" and "esoteric language" is mainly based on the apparent seriousness of the inventor.
23:26:07 <lament> yes, yes, and yet, combinatory logic and lambda calculus are both easily accepted as languages
23:26:18 <bsmntbombdood> hmph
23:26:23 <fizzie> I think the automagical homework checking eggine in one of our courses was JFLAP-based.
23:26:24 <lament> and turing machines aren't because the terminology used by the inventor is just too bizarre
23:26:28 <bsmntbombdood> With a halting oracle, the max-shifts function is computable
23:26:35 <bsmntbombdood> what about the busy beaver function?
23:26:43 <bsmntbombdood> oh, it is
23:27:06 <bsmntbombdood> generate all n-state turing machines, remove ones that don't halt, then run them all
23:29:29 <oklopol> i could do that standing on my head
23:30:10 <RodgerTheGreat> haha
23:30:35 <lament> your MOM doesn't halt!
23:32:54 <bsmntbombdood> I know, she just bitches forever
23:33:11 <lament> loop(bitch)
23:34:59 -!- sebbu2 has quit (Connection timed out).
23:50:00 -!- sebbu has quit ("@+").
2007-03-16
00:11:06 <bsmntbombdood> (Y (lambda (f) (cons 'bitch (f)))
00:12:07 -!- ShadowHntr has joined.
00:13:39 <RodgerTheGreat> heh
00:14:03 <oerjan> that seems a bit too strict. You need lazy evaluation for any conses to actually happen.
00:14:30 <oerjan> let f = Bitch:f in f
00:15:05 <oerjan> or you could do it in reverse:
00:16:15 <bsmntbombdood> yeah
00:16:33 <RodgerTheGreat> 10:BITCH:GOTO 10
00:16:41 <oerjan> ((Y (lambda (f) (lambda (l) (f (cons 'bitch l))))) '())
00:17:24 <RodgerTheGreat> RUN
00:18:22 <oerjan> sequence_ $ repeat $ bitch
00:18:27 <bsmntbombdood> I don't think a Y combinator is even possible in scheme
00:18:57 <oerjan> yeah, that might need lazy evaluation too
00:19:31 <oerjan> ok then:
00:20:16 <bsmntbombdood> SII is simpler anyway
00:20:36 <oerjan> ((lambda (f l) (f f l)) (lambda (f l) (f f (cons 'bitch l))) '())
00:21:10 <bsmntbombdood> ((lambda (x) (x x)) (lambda (f) (cons 'bitch (f f)))))
00:21:28 <oerjan> no, that won't work.
00:22:04 <bsmntbombdood> ?
00:22:15 <oerjan> without lazy evaluation, you cannot apply (f f) without another intervening lambda.
00:22:45 <bsmntbombdood> yeah you can
00:22:49 <bsmntbombdood> it just doesn't halt
00:22:58 <oerjan> it never bitches either
00:23:19 <oerjan> because it doesn't get to that part
00:23:34 <bsmntbombdood> yeah it does
00:23:54 <bsmntbombdood> ((lambda (f) (cons 'bitch (f f))) (lambda (f) (cons 'bitch (f f))))
00:23:56 -!- tgwizard has quit (Remote closed the connection).
00:24:25 <bsmntbombdood> (cons 'bitch ((lambda (f) (cons 'bitch (f f))) (lambda (f) (cons 'bitch (f f)))))
00:24:30 <bsmntbombdood> and so on
00:24:32 <oerjan> ok it evaluates 'bitch, perhaps. but it never conses.
00:25:36 <oerjan> ((lambda (x) (x x)) (lambda (f) (bitch) (f f)))
00:25:45 <oerjan> that should satisfy all camps :)
00:26:31 <oerjan> it's even tail recursive
00:26:42 <bsmntbombdood> but not functional
00:28:11 <bsmntbombdood> I guess bitching does have side effects, though
00:28:17 <oerjan> you bet
00:28:31 <oerjan> in fact it has nothing _but_ side effects :)
00:30:35 <bsmntbombdood> ((lambda (x) (x x)) (lambda (f) (cons-stream 'bitch (f f)))))
00:32:26 <oerjan> bah, you got lazy and used a macro ;)
01:18:44 <bsmntbombdood> dummy variables are no fun
01:23:38 <bsmntbombdood> that's probably not the right word
01:24:25 <oerjan> fix (bitch>>)
01:24:57 <bsmntbombdood> what?
01:25:45 <oerjan> your comment made me think about how to remove all dummy variable names from that bitch recursion :)
01:26:38 <oerjan> on the downside, it requires an import Control.Monad.Fix
01:27:48 <oerjan> what kind of variables were you thinking of?
01:28:24 <bsmntbombdood> the x in \x.E
01:28:55 <bsmntbombdood> or \forall x.E
01:28:57 <bsmntbombdood> and so on
01:30:42 <oerjan> you mean unused variables?
01:31:40 <oerjan> in Haskell/ML, you use _ for those.
01:32:25 <bsmntbombdood> no, x can be used in E
01:33:08 <oerjan> so it's actually basic lambda calculus abstraction you don't like? :)
01:33:16 <bsmntbombdood> yeah
01:33:24 <bsmntbombdood> combinatory logic for the win!
01:33:50 <oerjan> there is also pointfree (pointless) style in Haskell
01:34:01 <oerjan> like my fix (bitch>>) above
01:34:57 <oerjan> and the whole Forth/Joy style of languages
01:36:00 <bsmntbombdood> ooh, I didn't think about a stack
02:34:06 <bsmntbombdood> interesting, disjunct types
02:50:08 -!- RodgerTheGreat has quit.
02:51:22 -!- RodgerTheGreat has joined.
03:34:51 -!- ShadowHntr has quit ("End of line.").
03:41:57 <RodgerTheGreat> 'night everyone
03:42:18 -!- RodgerTheGreat has quit.
03:51:24 -!- GreaseMonkey has joined.
04:08:31 -!- bsmntbombdood has quit (Read error: 54 (Connection reset by peer)).
04:21:36 -!- oerjan has quit ("Good night").
04:43:21 -!- bsmntbombdood has joined.
04:46:35 -!- bsmnt_bot has joined.
04:48:02 <bsmntbombdood> what are the input symbols of a turing machine?
04:55:37 <bsmntbombdood> hmmm
04:56:00 <bsmntbombdood> I read that the halting problem is solvable on machines that have finite memory
04:57:06 <bsmntbombdood> so the number of steps needed before a repition occurs is known
04:57:11 -!- Arrogant has joined.
04:59:10 <bsmntbombdood> which means it is solvable on real computers
05:00:45 <bsmntbombdood> if it doesn't halt after 2**(number of bits in memory), it doesn't halt at all
05:01:30 <bsmntbombdood> 2**(number of bits in memory) steps, that is
05:05:19 <GreaseMonkey> i reckon that turing machines should have more than one tape
05:20:36 <lament> bsmntbombdood: that would be true if "real computers" performed no IO of any kind.
05:21:58 -!- ShadowHntr has joined.
05:22:00 <lament> as it is, a simple +[,] stumps every oracle
05:34:48 <bsmntbombdood> lament: IO is included in the input
05:35:03 <bsmntbombdood> The halting function is given the program and its input
05:39:22 <bsmntbombdood> goodnight
05:51:10 <GreaseMonkey> gnight
05:51:29 <GreaseMonkey> sleep tight dood, even though there's bombs in your bsmnt
06:46:58 -!- NK` has quit (Read error: 54 (Connection reset by peer)).
06:50:19 -!- ShadowHntr has quit ("End of line.").
07:07:07 -!- Arrogant has quit (Read error: 104 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:30:39 <GreaseMonkey> !bf-txtgen all your base aare belong to me!
08:30:42 <EgoBot> Huh?
08:30:50 <GreaseMonkey> !help
08:30:52 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
08:30:54 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
08:31:38 <lament> for guitar players: http://users.adelphia.net/~cygnusx_1/equal_temperament.html
08:52:06 -!- nazgjunk has joined.
08:59:17 <helios24> !ps
08:59:20 <EgoBot> 3 helios24: ps
09:03:41 <GreaseMonkey> !ps d
09:03:44 <EgoBot> 1 ais523: daemon ul bf
09:03:46 <EgoBot> 2 ais523: daemon deadfish funge93
09:03:48 <EgoBot> 3 GreaseMonkey: ps
09:04:02 <GreaseMonkey> !ul testing
09:04:11 <GreaseMonkey> !ul sfda
09:04:14 <GreaseMonkey> !ul
09:44:40 <GreaseMonkey> gtg, gnight
09:45:16 -!- GreaseMonkey has quit ("gnight").
10:18:19 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
10:18:46 -!- nazgjunk has joined.
10:23:36 -!- jix__ has joined.
10:26:16 -!- UpTheDownstair has joined.
10:35:42 -!- UpTheDownstair has quit (Connection reset by peer).
10:38:37 -!- nazgjunk has quit (Read error: 110 (Connection timed out)).
10:53:14 -!- nazgjunk has joined.
11:04:42 -!- nazgjunk has quit ("Leaving").
11:24:58 -!- jix__ has quit ("This computer has gone to sleep").
11:26:35 -!- nazgjunk has joined.
11:27:58 -!- UpTheDownstair has joined.
11:31:56 -!- UpTheDownstair has quit (Read error: 54 (Connection reset by peer)).
11:32:56 -!- nazgjunk has quit (Connection reset by peer).
11:43:11 -!- nazgjunk has joined.
12:32:08 -!- UpTheDownstair has joined.
12:32:22 -!- UpTheDownstair has quit (Client Quit).
12:39:09 -!- nazgjunk has quit (Read error: 145 (Connection timed out)).
12:41:13 -!- nazgjunk has joined.
13:02:52 -!- oerjan has joined.
13:17:30 -!- jix__ has joined.
13:55:46 -!- jix__ has quit ("This computer has gone to sleep").
14:08:58 -!- helios24 has quit (Read error: 60 (Operation timed out)).
14:09:14 -!- fizzie has quit (Read error: 60 (Operation timed out)).
14:11:33 -!- helios24 has joined.
14:13:30 -!- fizzie has joined.
14:41:09 -!- ais523 has joined.
14:41:36 <ais523> ~bf ,[.,]!Is this still working?
14:42:49 <ais523> ~exec self.bf3="def bfarg(x,y):\n p=y.group(2)\n a=y.group(3)+unichr(0)\n o=?\n p=p+'!'\n t=[0]*30000\n i=0\n l=0\n while p[i]!='!':\n if p[i]=='[' and t[l]==0:\n c=1\n while c>0:\n i=i+1\n if p[i]=='[': c=c+1\n if p[i]==']': c=c-1\n if p[i]==']' and t[l]!=0:\n c=1\n while c>0:\n i=i-1\n if p[i]==']': c=c+1\n if p[i]=='[': c=c-1\n"
14:43:03 <ais523> ~exec self.bf4=" if p[i]=='+': t[l]=t[l]+1\n if p[i]=='-': t[l]=t[l]-1\n if p[i]=='<': l=l-1\n if p[i]=='>': l=l+1\n if p[i]=='.': o=o+unichr(t[l])\n if p[i]==',':\n t[l]=ord(a[0])\n a=a[1:]\n i=i+1\nsys.stdout(o)\nself. register_raw(r'\S+ PRIVMSG (\S+) :~bf ([^!]*)!?(.*)',bfarg)"
14:43:06 <oerjan> bsmnt_bot needs a better persistence system.
14:43:10 <ais523> ~exec exec(self.bf3+self.bf4)
14:43:11 <bsmnt_bot> SyntaxError: invali