←2007-01-28 2007-01-29 2007-01-30→ ↑2007 ↑all
00:01:34 <bsmntbombdood> sigh
00:03:10 <bsmntbombdood> ~quit
00:03:11 -!- bsmnt_bot has quit.
00:03:14 -!- bsmnt_bot has joined.
00:03:14 <bsmntbombdood> ~quit
00:03:15 -!- bsmnt_bot has quit (Client Quit).
00:03:15 <bsmntbombdood> ~quit
00:03:17 -!- bsmnt_bot has joined.
00:03:46 <bsmntbombdood> k
00:04:30 <bsmntbombdood> ~exec self.raw("QUIT")
00:04:31 -!- bsmnt_bot has quit (Client Quit).
00:04:33 -!- bsmnt_bot has joined.
00:04:37 <bsmntbombdood> sweet
00:06:04 <ihope> ~exec self = 3
00:06:11 <bsmntbombdood> .
00:06:19 <bsmntbombdood> you fail
00:06:23 <bsmntbombdood> immutability
00:06:29 <ihope> Right, that.
00:06:44 <ihope> ~exec self.do_quit = 3; self.exec_execer = 3
00:06:52 <ihope> ~exec self.raw("QUIT")
00:07:06 <bsmntbombdood> heh
00:07:18 <ihope> ~exec self = 3
00:07:22 <ihope> Just for good measure, eh?
00:07:30 <bsmntbombdood> that didn't get executed
00:08:37 <bsmntbombdood> ~quit
00:08:37 -!- bsmnt_bot has quit (Client Quit).
00:08:39 -!- bsmnt_bot has joined.
00:08:50 <bsmntbombdood> haHA!
00:08:58 <ihope> Aww.
00:09:06 <bsmntbombdood> ~exec self.do_quit = 2
00:09:13 <bsmntbombdood> ~exec self.print_callbacks()
00:10:08 <bsmntbombdood> ~exec for i in self.raw_regex_queue: "~quit" not in i[0].pattern or sys.stdout(i[1])
00:10:09 <bsmnt_bot> <bound method IRCbot.do_quit of <__main__.IRCbot instance at 0xb7c0206c>>
00:10:24 <bsmntbombdood> ~exec for i in self.raw_regex_queue: "~quit" not in i[0].pattern or sys.stdout(type(i[1]))
00:10:25 <bsmnt_bot> <type 'instancemethod'>
00:10:28 <bsmntbombdood> weird
00:10:31 <bsmntbombdood> heh
00:10:58 <ihope> What's this or stuff?
00:11:06 <bsmntbombdood> ?
00:11:09 <ihope> Rather, this "or" stuff.
00:11:19 <bsmntbombdood> boolean or...
00:11:33 <ihope> Short-circuited?
00:11:37 <bsmntbombdood> yeah
00:11:41 <ihope> Fun.
00:12:27 <bsmntbombdood> ~exec ["~quit" not in i[0].pattern or sys.stdout(i[1]) for i in self.raw_regex_queue]
00:12:28 <bsmnt_bot> <bound method IRCbot.do_quit of <__main__.IRCbot instance at 0xb7c0206c>>
00:12:37 <bsmntbombdood> without the for loop
00:13:05 <bsmntbombdood> ~exec ["~quit" not in i[0].pattern or i[1]=3 for i in self.raw_regex_queue]
00:13:17 <bsmntbombdood> ohright
00:13:44 <bsmntbombdood> ~exec for i in self.raw_regex_queue: "~quit" not in i[0].pattern or i[1]=3
00:13:55 <bsmntbombdood> ~exec for i in self.raw_regex_queue: "~quit" not in i[0].pattern or sys.stdout(i[1])
00:13:57 <bsmnt_bot> <bound method IRCbot.do_quit of <__main__.IRCbot instance at 0xb7c0206c>>
00:14:00 <bsmntbombdood> hmmm
00:14:03 <bsmntbombdood> weird
00:14:34 <bsmntbombdood> ~exec self.register_raw(".*", lambda x: True)
00:14:52 <bsmntbombdood> ~exec self.register_raw(".*", lambda x: True)
00:14:53 -!- bsmnt_bot has quit ("Disconnected.").
00:14:54 <ihope> ~exec 3
00:14:55 -!- bsmnt_bot has joined.
00:15:06 <bsmntbombdood> ~exec self.register_raw(".*", lambda x: True)
00:15:07 <ihope> ~exec 3
00:15:07 -!- bsmnt_bot has quit (Client Quit).
00:15:09 -!- bsmnt_bot has joined.
00:15:13 <bsmntbombdood> heh
00:15:19 <ihope> ~exec 3
00:15:49 <ihope> That wasn't me that was doing that, then, was it?
00:15:54 <ihope> ~exec self.register_raw(".*", lambda x: True)
00:15:57 <bsmntbombdood> no it was me
00:15:58 -!- bsmnt_bot has quit (Client Quit).
00:15:59 -!- bsmnt_bot has joined.
00:16:03 <ihope> Fun.
00:16:10 <ihope> ~exec True
00:16:20 <bsmntbombdood> only works for callbacks
00:16:38 <ihope> ~exec while True: self.register_raw(".*", lambda x: print x)
00:16:47 <ihope> Aww.
00:16:53 <bsmntbombdood> print is a statement
00:16:54 * ihope does something to print
00:17:19 <bsmntbombdood> sys.stdout
00:17:23 <ihope> ~exec while True: self.register_raw(".*", lambda x: sys.stdout(x))
00:17:44 <bsmntbombdood> except no
00:17:44 <bsmnt_bot> :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :except no
00:17:45 -!- bsmnt_bot has quit (Excess Flood).
00:17:47 -!- bsmnt_bot has joined.
00:17:53 * ihope giggles slightly and/or cackles evilly
00:17:54 <bsmntbombdood> hmm
00:18:05 <bsmntbombdood> weird
00:18:10 <ihope> ~exec self.register_raw(".*", lambda x: sys.stdout(x))
00:18:20 <ihope> Always fun, I'm sure, eh?
00:18:20 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Always fun, I'm sure, eh?
00:18:33 <ihope> Except now my client beeps every time I say something.
00:18:34 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Except now my client beeps every time I say something.
00:18:36 <bsmntbombdood> heh
00:18:37 <bsmnt_bot> :bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG #esoteric :heh
00:18:50 <ihope> Quick! Get another bsmnt_bot!
00:18:51 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :Quick! Get another bsmnt_bot!
00:19:10 <SevenInchBread> drfg
00:19:10 <bsmnt_bot> :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :drfg
00:19:19 * SevenInchBread AAAAAAAAAAAH
00:19:19 <bsmnt_bot> :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :<CTCP>ACTION AAAAAAAAAAAH<CTCP>
00:19:26 <SevenInchBread> AHA
00:19:26 <bsmnt_bot> :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :AHA
00:19:31 <SevenInchBread> PWNT
00:19:31 <bsmnt_bot> :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :PWNT
00:19:42 <ihope> ~exec self.raw("QUIT")
00:19:42 <SevenInchBread> ah
00:19:42 <bsmnt_bot> :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah
00:19:43 <bsmnt_bot> :ihope!n=ihope@tapthru/resident/ihope PRIVMSG #esoteric :~exec self.raw("QUIT")
00:19:43 -!- bsmnt_bot has quit (Client Quit).
00:19:45 -!- bsmnt_bot has joined.
00:19:48 <ihope> Fun.
00:20:26 <ihope> ~exec self.grah = lambda: self.register_raw(".*", lambda x: sys.stdout(x))
00:20:44 <bsmntbombdood> ...?
00:20:46 <ihope> Now wait a minute...
00:21:01 <ihope> self.register_raw(".*", lambda x: self.grah)
00:21:08 <ihope> Whoops.
00:21:14 <bsmntbombdood> ...
00:21:17 <ihope> ~exec self.register_raw(".*", lambda x: self.grah())
00:21:20 <ihope> Better.
00:21:21 -!- bsmnt_bot has quit (Remote closed the connection).
00:21:23 -!- bsmnt_bot has joined.
00:21:26 <ihope> Or not.
00:24:01 <ihope> Hmm...
00:24:39 <ihope> ~exec sys.stdout(os.system("bash"))
00:24:40 <bsmnt_bot> 32512
00:24:44 <ihope> Hmm.
00:24:52 <ihope> That won't work, now, will it?
00:25:12 <bsmntbombdood> nope
00:25:31 <bsmntbombdood> if you write a wrapper around os.popen with sockets, then you could get a shell
00:25:50 <bsmntbombdood> ei you netcat in
00:30:51 <bsmntbombdood> ~exec self.fd = os.popen("bash")
00:30:59 <bsmntbombdood> ~exec sys.stdout(self.fd)
00:31:00 <bsmnt_bot> <open file 'bash', mode 'r' at 0xb7c2e0f8>
00:31:08 <bsmntbombdood> ~exec sys.stdout(self.fd.read())
00:31:14 <bsmntbombdood> ...
00:31:18 <bsmntbombdood> ~ps
00:31:19 <bsmnt_bot> None
00:31:33 <bsmntbombdood> ~exec self.fd.write("echo *")
00:31:36 <bsmntbombdood> ~ps
00:31:36 <bsmnt_bot> None
00:31:40 <bsmntbombdood> ~exec sys.stdout(self.fd.read())
00:31:49 <bsmntbombdood> hmmm
00:32:17 <bsmntbombdood> ~exec sys.stdout(self.fd)
00:32:17 <bsmnt_bot> <open file 'bash', mode 'r' at 0xb7c2e0f8>
00:32:21 <bsmntbombdood> oh right
00:32:27 <bsmntbombdood> ~exec sys.stdout(self.fd.close())
00:32:28 <bsmnt_bot> 32512
00:32:44 <ihope> Let's just sys.stdout everything...
00:32:54 <bsmntbombdood> ~exec self.fd = os.popen("bash", "rw")
00:33:04 <bsmntbombdood> ihope: I dunno how to get a return value from an exec
00:33:12 <bsmntbombdood> ~exec sys.stdout(self.fd)
00:33:13 <bsmnt_bot> <closed file 'bash', mode 'r' at 0xb7c2e0f8>
00:33:20 <bsmntbombdood> hrm
00:33:23 <bsmntbombdood> ~exec self.fd = os.popen("bash", "rw")
00:33:26 <bsmntbombdood> ~exec sys.stdout(self.fd)
00:33:27 <bsmnt_bot> <closed file 'bash', mode 'r' at 0xb7c2e0f8>
00:33:32 <bsmntbombdood> that ain't cool
00:33:59 <bsmntbombdood> ~exec self.fd = __import__("popen2").popen2("bash")
00:34:05 <bsmntbombdood> ~exec sys.stdout(self.fd)
00:34:06 <bsmnt_bot> (<open file '<fdopen>', mode 'r' at 0xb7c2ead0>, <open file '<fdopen>', mode 'w' at 0xb7c2e9f8>)
00:34:10 <bsmntbombdood> k
00:34:31 <bsmntbombdood> ~exec sys.stdout( self.fd[1].write("echo *") )
00:34:32 <bsmnt_bot> None
00:34:38 -!- calamari has joined.
00:34:44 <bsmntbombdood> ~exec sys.stdout( self.fd[0].read(10) )
00:34:50 <bsmntbombdood> ~ps
00:34:51 <bsmnt_bot> None
00:34:54 <bsmntbombdood> :/
00:34:57 <bsmntbombdood> ~exec sys.stdout( self.fd[0].read(10) )
00:35:03 <bsmntbombdood> ~exec sys.stdout( self.fd[0].read() )
00:35:06 <bsmntbombdood> ~ps
00:35:07 <bsmnt_bot> None
00:35:14 <bsmntbombdood> ~exec sys.stdout( self.fd )
00:35:14 <bsmnt_bot> (<open file '<fdopen>', mode 'r' at 0xb7c2ead0>, <open file '<fdopen>', mode 'w' at 0xb7c2e9f8>)
00:35:43 <bsmntbombdood> hmmm
00:35:58 <bsmntbombdood> ~exec self.fd = __import__("popen2").popen2("bash -i")
00:36:06 <bsmntbombdood> ~exec sys.stdout( self.fd )
00:36:07 <bsmnt_bot> (<open file '<fdopen>', mode 'r' at 0xb7c2eb18>, <open file '<fdopen>', mode 'w' at 0xb7c2e9b0>)
00:36:13 <bsmntbombdood> ~exec sys.stdout( self.fd[0].read(10) )
00:36:22 <bsmntbombdood> ~exec sys.stdout( self.fd[1].write("echo *") )
00:36:23 <bsmnt_bot> None
00:36:25 <bsmntbombdood> ~exec sys.stdout( self.fd[0].read(10) )
00:36:29 <bsmntbombdood> gah
00:36:35 <bsmntbombdood> ~ps
00:36:36 <bsmnt_bot> None
00:38:03 <bsmntbombdood> weird
00:44:40 <oerjan> Maybe the file descriptor is set to non-blocking or something?
00:48:51 -!- na[zZz]gjunk has quit (Read error: 54 (Connection reset by peer)).
00:49:14 -!- nazgjunk has joined.
01:02:31 <bsmntbombdood> foo
01:02:41 <bsmnt_bot> foo
01:08:17 -!- calamari has quit ("Leaving").
01:19:22 <oerjan> foo
01:19:26 <bsmntbombdood> foo
01:23:30 <bsmntbombdood>
01:25:30 <bsmntbombdood> foo
01:25:31 <bsmntbombdood> foo
01:26:26 <ihope> foo
01:26:42 <ihope> Mmh?
01:42:10 <bsmntbombdood> nevar!
01:46:09 <oerjan> ein neve, neven, nevar, nevane
01:46:20 <oerjan> (nynorsk)
01:48:29 -!- nazgjunk has quit (Success).
01:48:52 -!- nazgjunk has joined.
01:54:27 <lament> i think he meant "to snow"
01:54:31 <lament> nieva
01:55:54 * oerjan likes Google maps.
01:56:20 <oerjan> I am looking at individual _cars_ on the Golden Gate bridge ...
01:56:33 <bsmntbombdood> sswweett
01:56:55 <bsmntbombdood> there's nekkid people on google earth
01:58:04 <oerjan> It's a bit less resolution outside North America or so, alas. And some countries don't have maps at all.
01:58:11 -!- ihope has quit (Read error: 110 (Connection timed out)).
01:58:39 <oerjan> But the Eiffel tower and Taj Mahal looked good.
01:58:45 <SevenInchBread> Google sign to a partnership with some astronomy people to build a big telescope.
01:58:54 <SevenInchBread> we could be seeing Google Universe next.
02:00:42 <oerjan> Alas there is little hope of zooming to uncharted places.
02:01:24 <oerjan> Got to go with what astronomers are interested in. Not that that would be a bad thing.
02:01:49 <bsmntbombdood> too big
02:03:41 <oerjan> But you could probably get a good view of the Andromeda galaxy.
02:49:02 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
02:49:10 -!- nazgjunk has joined.
03:17:04 -!- calamari has joined.
03:18:05 -!- SevenInchBread has quit ("haaaaaaaaaa").
03:18:59 * bsmntbombdood feels leet
03:20:25 <bsmntbombdood> http://paste.lisp.org/display/36038
03:30:19 -!- ihope has joined.
03:34:29 * bsmntbombdood thinks that's pretty clever
03:39:15 * bsmntbombdood calculates sqrt(2) to within 1/1000000000000000000000000000000
03:49:22 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
03:49:40 -!- nazgjunk has joined.
03:54:55 <calamari> bsmntbombdood: algorithm?
03:56:13 <bsmntbombdood> (newtons-method (lambda (x) (- (square x) 2)) 1 1/1000000000000000000000000000000)
03:57:34 <bsmntbombdood> newtons-method being defined in that paste
04:02:10 <oerjan> As long as tolerance is not so small that you get serious rounding off errors...
04:05:07 <oerjan> In which case using a larger dx than tolerance might be a good idea.
04:05:47 <bsmntbombdood> there are no rounding off errors
04:05:57 <bsmntbombdood> It stays as a rational
04:07:08 <oerjan> All right then.
04:12:04 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:35:20 -!- calamari has quit ("Leaving").
05:55:02 -!- nazgjunk has quit ("rawr. And, also: Bi-la Kaifa").
06:04:08 -!- anonfunc has joined.
06:08:44 -!- oerjan has quit ("Eeek").
06:11:46 -!- Sgeo has quit (Remote closed the connection).
06:16:28 <bsmntbombdood> hooray for built in rationals
06:34:16 -!- sp3tt has joined.
07:03:47 -!- Jessie has joined.
07:22:41 -!- Jessie has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]").
07:24:14 -!- anonfunc has quit.
07:26:01 -!- anonfunc has joined.
07:48:05 <mtve> sorry, i don't following this chan, so perhaps a dup: http://scienceblogs.com/goodmath/2007/01/a_pathological_challenge_prime.php
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:21:02 -!- lament has changed nick to lt.
08:22:07 -!- lt has changed nick to lament.
09:29:44 -!- terjek has joined.
09:33:42 -!- terjek has left (?).
10:15:46 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
10:40:38 -!- puzzlet has joined.
11:48:16 -!- anonfunc has quit.
13:24:33 -!- nazgjunk has joined.
14:15:41 -!- calamari has joined.
14:25:30 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
14:25:48 -!- nazgjunk has joined.
14:32:14 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
14:32:45 -!- nazgjunk has joined.
15:49:15 -!- RodgerTheGreat has joined.
15:49:33 <RodgerTheGreat> hello
15:51:07 <nazgjunk> hey
15:51:33 * RodgerTheGreat tips his hat
15:52:56 <calamari> hi RodgerTheGreat
15:53:12 <RodgerTheGreat> what's up, calamari?
15:53:32 <calamari> hmm.. good question
15:54:58 -!- puzzlet has quit (Read error: 54 (Connection reset by peer)).
15:55:06 -!- puzzlet has joined.
15:55:12 <calamari> not exactly sure how to put it into words
15:55:48 <RodgerTheGreat> sounds like it'll be either fascinating or pointless
15:55:52 <calamari> but, take all gravitational force vectors, find the net force on the object in question.. draw a vector opposite that, should be up
15:56:05 <RodgerTheGreat> ah, physics
15:56:23 <RodgerTheGreat> you're finding the normal force?
15:56:35 <calamari> thanks, that's probably how to say it
15:56:40 <calamari> been a while
16:29:46 -!- jix__ has joined.
16:31:31 <RodgerTheGreat> bbl
16:31:38 -!- RodgerTheGreat has quit.
16:35:52 <GregorR> *ahem*: Up is the direction indicated by the vector opposite of that vector which represents the sum of all gravitational forces at a given location.
16:35:58 <GregorR> I use that one all the time.
16:50:10 -!- FabioNET has joined.
17:06:03 -!- digital_me has joined.
17:31:59 -!- nazgjunk has quit (Read error: 54 (Connection reset by peer)).
17:32:31 -!- nazgjunk has joined.
18:18:01 -!- sebbu has joined.
18:32:21 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
18:32:24 <bsmntbombdood> oooh, NULL
18:32:26 <bsmntbombdood> fun
19:02:09 <oklopol> yeah, it's my favorite too
19:08:26 -!- cmeme has quit (Connection reset by peer).
19:13:36 -!- cmeme has joined.
19:58:44 -!- digital_me_ has joined.
20:04:07 -!- sebbu2 has joined.
20:09:28 -!- digital_me has quit (Read error: 110 (Connection timed out)).
20:11:40 -!- sebbu has quit (Read error: 60 (Operation timed out)).
20:16:57 -!- sebbu2 has changed nick to sebbu.
20:38:55 -!- ihope has joined.
20:48:17 <ihope> Now, really. Everybody says "publicly" is in fact spelled "publicly", but many other words don't follow that rule. And I'm not talking about things like "musically".
20:48:57 <ihope> "Basically" is one example.
20:51:04 <SimonRC> bsmntbombdood: "NULL"?
20:51:21 <SimonRC> There was a young hacker from Hull...
20:52:14 <SimonRC> Whose brain had a temporary lull...
20:53:00 <SimonRC> His program was crashed...
20:53:07 <SimonRC> And his data was trashed...
20:53:22 <SimonRC> When malloc() returned a NULL.
20:53:35 <SimonRC> heh, spontaneous lymeric
20:53:48 <ihope> Under what conditions does malloc() return a NULL?
20:53:55 <SimonRC> actually, that should be...
20:54:06 <ihope> What if the memory allocated actually starts at address 0? :-P
20:54:11 <SimonRC> "... 'Cause he didn;t check malloc() for NULL."
20:54:26 <SimonRC> nonono, malloc returns null if it is out of space
20:54:36 <ihope> That's the only time it does that?
20:54:49 <SimonRC> Or there is some other problem
20:54:53 <ihope> And all it returns is a pointer?
20:54:57 <SimonRC> yes
20:55:28 <SimonRC> in C++, the new keyword throws an exception instead, but I'm not sure about malloc().
20:55:29 <ihope> How are you supposed to tell why it failed, then?
20:55:37 <SimonRC> you aren't
20:55:54 <ihope> Write your own function to use instead of malloc()?
20:56:59 <ihope> I mean, surely malloc() was written.
20:58:39 <SimonRC> Indeed, it is quite possible to write malloc() in C.
20:58:52 <SimonRC> I would demonstrate, but I haven't the time :-(
21:01:38 <ihope> It might need a bit of system calling, of course.
21:01:42 <ihope> I mean, wouldn't it?
21:03:36 <SimonRC> not necessarily.
21:04:13 <SimonRC> If you want a fixed amount of space available for allocation, you can just have a large static array to hold it.
21:04:40 <ihope> Yeah, you could do that.
21:04:48 <SimonRC> If you want to be able to ask the OS, use os-specific calls to extend your address space
21:04:50 <ihope> What would you do if you ran out of memory, though?
21:05:00 <SimonRC> panic?
21:05:29 <SimonRC> I recall that the Z-machine's malloc used a large fixed-size array.
21:05:46 <SimonRC> The glulx machine probably doe mamory-expansion, though
21:05:49 <SimonRC> lol!
21:05:56 <SimonRC> s/memory/memory/
21:08:00 <SimonRC> erm
21:08:04 <SimonRC> s/mamory/memory/
21:08:46 <ihope> You can achieve the same effect by first doing s/memory/memory/ then doing s/memory/mamory/. :-)
21:26:23 -!- Sgeo has joined.
21:54:02 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:28:14 -!- SevenInchBread has joined.
22:30:43 -!- FabioNET has quit ("goood night").
22:32:02 <bsmntbombdood> SimonRC: some esolang
22:32:27 <bsmntbombdood> ihope: errno
22:33:09 <bsmntbombdood> and see sbrk(2)
22:34:32 <bsmntbombdood> C's method of reporting failures is the global errno variable
22:35:04 <bsmntbombdood> malloc sets errno to ENOMEM if it runs out of memory
22:36:15 <SevenInchBread> hmmm
22:36:17 <SevenInchBread> so...
22:36:20 <SevenInchBread> vim and emacs both suck.
22:36:27 <SevenInchBread> ...and I need to find a new text editor.
22:36:33 <GregorR> j
22:36:43 <SevenInchBread> j sucks too...
22:36:47 <SevenInchBread> :)
22:36:49 <GregorR> j is awesome.
22:36:55 <bsmntbombdood> SevenInchBread: emacs doesn't suck
22:36:56 <GregorR> It's also unfortunately in Java :(
22:36:57 <SevenInchBread> I just want like...
22:37:07 <SevenInchBread> IDLE with tabs... or a buffer list.
22:37:28 <bsmntbombdood> emacs
22:38:02 <SevenInchBread> emacs is IDLE with a buffer list, annoying key combinations, and torturous configuration.
22:38:16 <bsmntbombdood> tortuous
22:38:17 <bsmntbombdood> ?
22:38:26 <bsmntbombdood> you have a whole scripting language on your hands
22:38:52 <SevenInchBread> ...oh dear...
22:39:07 <SevenInchBread> yeah, that's too much... I want... IDLE with tabs.
22:39:16 <SevenInchBread> not a whole scripting language that I have to learn.
22:43:55 <SevenInchBread> ugh, we're worse than religious advocates, I swear.
22:44:13 <ihope> SevenInchBread: I hear /usr/bin/env python > is a good editor.
22:44:15 <ihope> :-P
22:45:06 * SevenInchBread loves programming, but hates the fanaticism it forms...
22:46:42 <ihope> Use Haskell. I don't see how you can survive with that mind-bending dynamic typing.
22:47:01 <ihope> And no currying! Sheesh!
22:48:27 <SevenInchBread> :P
22:49:08 <ihope> (Of course I'm ignoring the fact that it's perfectly possible to do currying in Python, though a little annoying.
22:49:09 <SevenInchBread> pfft, but how the hell could I possibly use monads... and static typing is like wearing a straightjacket.
22:49:13 <ihope> )
22:49:23 <SevenInchBread> I actually don't know what currying -is-...
22:49:26 * SevenInchBread reads up on it.
22:49:30 <bsmntbombdood> dynamic typing is great
22:49:34 <bsmntbombdood> i can't stand static
22:49:42 <ihope> Oh, now you *want* to add functions together to get a string?
22:49:54 <bsmntbombdood> nooo
22:50:05 <bsmntbombdood> functions don't have a __add__ method
22:50:06 <bsmntbombdood> duh
22:50:41 <ihope> Pff, I bet Python doesn't even have typeclasses.
22:51:15 * SevenInchBread is working on his own Smalltalk-like language at the moment.
22:51:39 <ihope> Smalltalk-like, eh?
22:51:40 <bsmntbombdood> What's a typeclass?
22:51:53 <SevenInchBread> Yeah ,smalltalk looks cool.
22:52:12 <ihope> bsmntbombdood: it's interfaces from object-oriented stuff, except better.
22:52:14 <SevenInchBread> I've never -used- it... but it's Lispy enough that I can get basically how it works at least in spirit.
23:14:28 -!- calamari has quit ("Leaving").
23:15:48 <SevenInchBread> so currying is just...
23:15:54 <SevenInchBread> partial functions?
23:16:09 -!- sebbu has quit ("@+").
23:17:08 <SevenInchBread> pppph
23:17:10 <SevenInchBread> ..
23:17:12 <SevenInchBread> oooh
23:17:31 <bsmntbombdood> hhho
23:17:33 <SevenInchBread> yeah okay, I see... you split the function into individual one-argument functions?
23:32:24 -!- digital_me_ has quit ("Lost terminal").
23:35:09 -!- nazgjunk has quit ("rawr. And, also: Bi-la Kaifa").
23:41:46 <ihope> SevenInchBread: pretty much.
23:46:21 -!- oerjan has joined.
23:52:14 <SevenInchBread> ihope, hmmm... it would be good for delaying a functions execution...
23:52:22 <SevenInchBread> and... optional arguments... to a certain extent.
23:53:54 <bsmntbombdood> no
23:54:05 <bsmntbombdood> optional arguments doesn't work with currying
23:55:29 <oerjan> yeah, Ocaml has both and has to disallow currying when you use optional arguments
23:56:47 <bsmntbombdood> hooray for scheme
23:57:24 <oerjan> scheme doesn't have implicit currying.
23:58:27 <bsmntbombdood> (define (curry f . x) (lambda (a . rest) (apply f (append x (cons a rest)))))
←2007-01-28 2007-01-29 2007-01-30→ ↑2007 ↑all