00:00:36 -!- oepy has joined. 00:00:39 *epy set(b=set(a=2)) 00:00:40 ('b', ('a', 2)) 00:00:47 oops 00:00:52 -!- oepy has quit (Remote closed the connection). 00:01:02 -!- oepy has joined. 00:01:03 *epy set(a=set(b=2)) 00:01:04 2 00:01:08 *epy get(a) 00:01:08 NameError: name 'a' is not defined 00:01:11 *epy get('a') 00:01:12 2 00:01:13 *epy get('b') 00:01:14 2 00:01:17 *epy look('ehird') 00:01:18 {'a': 2, 'b': 2} 00:01:23 *epy look('ehird').__setitem__('b', 3) 00:01:24 AttributeError: 'user-view' object has no attribute '__setitem__' 00:01:30 Hooray. 00:01:32 *epy math 00:01:33 00:01:38 lulz os x paths 00:01:41 *epy dir(math) 00:01:42 ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] 00:01:46 Oh, damn: 00:01:49 *epy globals() 00:01:50 {'__builtins__': {'IndexError': , 'all': , 'help': Type help() for interactive help, or help(object) for help about object., 'vars': , 'SyntaxError': , 'unicode': , 'UnicodeDecodeError': , 'isinstance': , 'copyright': Copyright (c) 2001-2006 Python Software Foundation. 00:01:57 *epy __builtins__ 00:01:57 {'IndexError': , 'all': , 'help': Type help() for interactive help, or help(object) for help about object., 'vars': , 'SyntaxError': , 'unicode': , 'UnicodeDecodeError': , 'isinstance': , 'copyright': Copyright (c) 2001-2006 Python Software Foundation. 00:02:05 Hm 00:02:08 Neat. 00:02:16 * epy math.sqrt(3497234) 00:02:18 *epy math.sqrt(3497234) 00:02:19 1870.0893026804897 00:02:22 ehird, what did you say "oh damn" for? 00:02:40 *epy __builtins__.__import__ 00:02:40 *epy math.pow(3497234,37863827648) 00:02:40 AttributeError: 'dict' object has no attribute 'no_import' 00:02:41 OverflowError: math range error 00:02:43 AnMaster: I thought there was a security hole. 00:02:44 *epy math.pow(3497234,378637648) 00:02:45 OverflowError: math range error 00:02:45 AnMaster: Anyway, give it a spin. 00:02:47 blergh 00:02:53 *epy math.pow(3497234, 378637648) 00:02:53 OverflowError: math range error 00:02:55 *epy math.pow(3497234, 3786376) 00:02:56 OverflowError: math range error 00:02:59 stupid 00:02:59 SHUT UP AnMaster 00:03:00 *epy 3497234**378637648 00:03:05 ehird, ah 00:03:13 math.pow is for floats 00:03:15 however 00:03:17 ehird, so it doesn't like inf? 00:03:20 the above just locked up oepy i think 00:03:21 which would have been the valid number 00:03:22 *epy 00:03:24 *epy 2 00:03:26 yah 00:03:28 -!- oepy has quit (Remote closed the connection). 00:03:28 ehird, yep 00:03:33 don't do that 00:03:33 :P 00:03:40 -!- oepy has joined. 00:03:45 ehird, but in a C program that pow produces inf after a few seconds 00:03:48 so that is very strange 00:03:50 but it hurts when i don't do that 00:03:51 AnMaster: no 00:03:53 that just means it uses bignums 00:03:56 pyhton 00:03:59 ehird, err floats 00:04:01 so it tries to get the full answer 00:04:02 AnMaster: no 00:04:05 x**y is integer in python 00:04:08 but it uses bignums 00:04:10 so it just sits there 00:04:10 ehird, for math.pow it would be floats 00:04:12 happily calculating it 00:04:13 forever. 00:04:15 ehird, so it should be inf 00:04:18 not math error 00:04:24 just positive inf 00:04:30 AnMaster. 00:04:34 MATH.POW IN PYTHON TAKES FLOATS 00:04:37 IT ERRORED BECAUSE YOU GAVE IT INTS 00:04:39 ehird, ah 00:04:46 so it doesn't cast implicitly? 00:04:46 like I _said the first time_ 00:04:57 no, because pow is BUILT IN TO THE LANGUAGE for ints 00:05:00 *epy 2**3 00:05:00 8 00:05:12 *epy help(math.pow) 00:05:15 oops 00:05:15 ehird, well C would cast it implicitly 00:05:16 so 00:05:17 that displayed on my console 00:05:18 lmao 00:05:21 anyway 00:05:21 AnMaster: 00:05:24 you don't understand 00:05:30 math.pow is there for when you want range errors 00:05:34 instead of infinite hang 00:05:35 ehird, how should I know I need to do (float)874384 00:05:35 as with ** 00:05:36 None 00:05:43 ehird, and when I want inf? 00:05:46 instead of either 00:05:47 AnMaster 00:05:54 stop talking because you're talking nonsense. 00:05:56 :\ 00:06:09 ehird, no I'm not. If I work with double that should return inf 00:06:17 AnMaster 00:06:18 shut up 00:06:21 if the floating point confirms to IEEE 00:06:31 YOU WEREN'T DOING FLOATING POINTS 00:06:34 YOU HAD NO .0 ANYWHERE 00:06:37 YOU PASSED INTEGERS 00:06:40 SO IT TREATED THEM AS INTEGERS 00:06:43 *epy math.pow(3497234.0, 3786376.0) 00:06:43 OverflowError: math range error 00:06:44 BECAUSE YOU GAVE IT INTEGERS 00:06:45 is that better? 00:06:48 YES 00:06:54 it gives same error though 00:06:56 instead of inf 00:06:57 :/ 00:06:58 AnMaster: BECAUSE 00:06:59 MATH 00:07:00 .POW 00:07:00 IS 00:07:01 FOR 00:07:01 WHEN 00:07:02 YOU 00:07:03 EXPLICITLY 00:07:04 WANT 00:07:06 OVERFLOWS 00:07:08 OTHERWISE 00:07:10 YOU 00:07:12 USE 00:07:14 ** 00:07:16 LIKE 00:07:16 ehird, and when I want explicit inf I should use ** 00:07:17 ah 00:07:17 ok 00:07:18 I 00:07:22 HAVE 00:07:24 SAID 00:07:24 so not just for integers 00:07:26 5 00:07:28 GAJILLION 00:07:29 like you seemed to say 00:07:30 TIMES 00:07:32 THE 00:07:34 END 00:07:36 5 gajillion and 1th time lucky 00:07:52 *epy 497234.0 ** 3786376.0 00:07:53 OverflowError: (34, 'Result too large') 00:07:56 um 00:08:01 :/??? 00:08:20 ehird, care to enlighten me why that didn't give inf then? :/ 00:08:21 hi ehird 00:08:36 hi comex 00:08:48 *epy 1.0 / 0.0 00:08:48 ZeroDivisionError: float division 00:08:50 *epy set(a=3) 00:08:50 3 00:08:52 ok 00:08:57 that should have been NaN iirc 00:09:00 comex: plz do '*epy get('a', user='ehird')' 00:09:08 ehird, How do I get a floating point NaN in python? 00:09:13 since division with 0 didn't 00:09:34 You don't. 00:09:48 ehird, it doesn't support it? instead throwing an exception 00:09:49 ? 00:09:51 Well: 00:09:56 *epy 1e300**2 00:09:56 OverflowError: (34, 'Result too large') 00:09:59 Sounds like Erlang then 00:10:00 Hm. 00:10:00 Ah. 00:10:04 *epy float('nan') 00:10:05 nan 00:10:11 *epy float('inf') 00:10:12 inf 00:10:13 *epy float('-inf') 00:10:14 -inf 00:10:20 ehird, well, That still means it isn't IEEE 754 00:10:26 AnMaster: So what. 00:10:49 Incidentally: 00:10:53 ehird, meaning implementing FPDP in a python implemented befunge would be a pain in the arse for example 00:10:55 [[Sorry, it has not. Providing a consistent 754 story across platforms is a 00:10:55 pain in the ass, because none of this behavior is covered by C89, and every 00:10:55 vendor does it a different way. So it requires a large pile of platform 00:10:55 #ifdef'ed code, and platform experts to write and contribute that stuff. But 00:10:55 so far, nobody has volunteered any actual work (talk, yes; code, no).]] -- Tim Peters, 2001 00:11:21 ehird, well problem solved, C99 got a macro to check for it 00:11:44 AnMaster: "C99" != "problem solved". 00:11:51 ehird, also it could use a close mapping to hardware, so that if the platform had it, then it could just use it 00:12:00 AnMaster: Python is a very-high-level-language. 00:12:03 if it didn't, it would use whatever else the platform have 00:12:08 "close mapping to hardware" == no. 00:12:18 ehird, But does it need to abstract everything? 00:12:36 sometimes yes 00:12:38 other times: no 00:12:43 yes. 00:12:45 Meanwhile. 00:12:47 *epy Infinity 00:12:47 NameError: name 'Infinity' is not defined 00:12:51 *epy Infinity/Infinity 00:12:52 NameError: name 'Infinity' is not defined 00:12:53 (lag...) 00:12:58 ah 00:12:59 no lag 00:13:06 I love it when ehird says something for the first time followed by "like I have said 5 gajillion times". Maybe. 00:13:15 hm 00:13:16 I didn't say it for the first time, thanks.) 00:13:24 oepy, says "hi" on ctcp ping 00:13:24 hi AnMaster 00:13:26 interesting 00:13:28 ah well 00:13:33 oepy says hi on all /msg. 00:13:34 hi ehird 00:13:37 ehird, ah right 00:14:15 -!- oepy has quit (Remote closed the connection). 00:14:23 * ehird pastes current oepy code 00:14:27 -!- oepy has joined. 00:14:38 *epy math.exp(1000) 00:14:39 OverflowError: math range error 00:14:41 http://rafb.net/p/P3Zfd898.html 00:14:44 http://docs.python.org/library/fpectl.html 00:14:49 ehird, that says it should be Inf 00:14:50 Things needed: actual persistence, etc. 00:14:56 but it seems oepy disagree? 00:14:56 hi AnMaster 00:14:57 AnMaster: that's 2.6 00:15:00 ehird, ah ok 00:15:18 ehird, nice and readable code btw 00:15:24 unusually readable for python 00:15:25 Hardly. 00:15:36 It's pretty-looking, but very unreadable shite. 00:15:41 ehird, kind of lisp-like 00:15:42 Tracking down bugs is a nightmare. 00:15:52 AnMaster: It's only pretty if you can't actually read it (say if you don't know python). 00:15:54 but with mixed notation 00:16:09 If you can read it, it's awful to try and understand & write. 00:16:15 'echo': (lambda s, *a: s(' '.join(a))),seems pretty clear to me 00:16:22 it echos it's argument 00:16:32 *echo foo 00:16:33 foo 00:16:38 AnMaster: Hoorah! One line is readable! Therefore the whole program is readable! 00:16:44 ehird, of course not 00:16:52 some parts is actually a bit hard to read 00:17:07 Now if you'll excuse me I have to try and _write code in this thing_. Which is not easy. Because it's ugly. 00:17:13 (match(r':([^!]+)\S* PRIVMSG ((oepy) .*|(#esoteric) :.*oepy.*)', txt), (lambda a, _, b, c: 00:17:13 (lambda x: socket.send('PRIVMSG %s :%s\r\n' % x))( 00:17:13 {'oepy': (a, 'hi'), '#esoteric': ('#esoteric', 'hi '+a)}[b or c] 00:17:13 ) 00:17:13 )), 00:17:14 hi AnMaster 00:17:15 for example 00:17:38 AnMaster: Or how about how variables and their definitions are about 20 lines apart due to the lambda hack I use. 00:17:59 ehird, not very hard 00:18:00 Or the useless use of map and such because it's the shortest way to write it as such with such constraints. 00:18:16 Unless you know python just don't even start to say it's pretty. 00:18:31 ehird, I think it is pretty lispy/schemish code 00:18:34 if you see what I mean 00:18:48 in the general structure 00:18:49 It takes the same kind of structure out of neccessity. It has none of the elegance. 00:19:02 ehird, it is less elegant I agree 00:19:08 but it is better than plain python 00:19:09 ;P 00:19:11 night 00:21:35 ehird, why aren't you using python 2.6? It was released October 1 it seems 00:21:47 Ain't broke, don't fix. 00:21:54 i'll upgrade when i need to. 00:21:57 ehird, ok, valid 00:23:42 ehird, "Alternate syntax for catching exceptions: except TypeError as exc." 00:23:46 sounds like no block? 00:23:47 or? 00:23:50 no. 00:24:06 Ok, sorry then 00:24:15 * ehird gets idea 00:24:25 it was 2.6 anyway 00:25:52 -!- oepy has quit (Remote closed the connection). 00:26:02 -!- oepy has joined. 00:26:12 *epy set(test=lambda *a: 'hi') 00:26:13 at 0xd13b0> 00:26:19 *cmd test 00:26:20 -!- oepy has quit (Remote closed the connection). 00:26:22 oops 00:26:26 Python 2.6 introduces a convention for user-specific site directories. The directory varies depending on the platform: 00:26:26 * Unix and Mac OS X: ~/.local/ 00:26:27 ugh 00:26:32 that is used for something else here 00:26:36 by another program 00:26:45 I think ~/.local/ is a generic dir. 00:27:06 ehird, yes it seems to contain trash for example 00:27:15 but I hope the use some subdir 00:27:31 Within this directory, there will be version-specific subdirectories, such as lib/python2.6/site-packages on Unix/Mac OS and Python26/site-packages on Windows. 00:27:32 ah 00:27:33 good 00:28:14 -!- oepy has joined. 00:28:20 *epy set(test=lambda *a: 'hi') 00:28:21 at 0xd13b0> 00:28:24 *cmd test test 00:28:28 *test 00:28:32 f. 00:31:14 -!- oepy has quit (Remote closed the connection). 00:31:25 -!- oepy has joined. 00:31:26 *epy set(test=lambda *a: 'hi') 00:31:27 at 0xd13b0> 00:31:29 *cmd test test 00:31:30 *test 00:31:37 bumwrap. 00:31:47 Bumwrap I say. 00:32:07 -!- oepy has quit (Remote closed the connection). 00:32:18 -!- oepy has joined. 00:32:41 *epy set(test=lambda *a: 'hi') 00:32:42 at 0xd13b0> 00:32:43 *cmd test test 00:32:45 Stupid lagbot. 00:32:49 d 00:32:51 Yay. 00:32:53 *test 00:32:53 -!- oepy has quit (Remote closed the connection). 00:33:04 -!- oepy has joined. 00:33:07 *epy set(test=lambda *a: 'hi') 00:33:08 at 0xd13b0> 00:33:11 *cmd test test 00:33:14 *test 00:33:15 'hi' 00:33:20 kickin rad 00:34:57 -!- oepy has quit (Remote closed the connection). 00:35:08 -!- oepy has joined. 00:35:11 *epy set(test=lambda *a: pr('Hello, world!')) 00:35:11 at 0xd1270> 00:35:13 *cmd test test 00:35:16 *test 00:35:16 NameError: global name 'pr' is not defined 00:35:24 -!- oepy has quit (Remote closed the connection). 00:35:34 -!- oepy has joined. 00:35:38 *epy set(test=lambda *a: pr('Hello, world!')) 00:35:38 at 0xd12b0> 00:36:01 *cmd test test 00:36:04 *test 00:36:05 NameError: global name 'setitem' is not defined 00:36:12 -!- oepy has quit (Remote closed the connection). 00:36:22 -!- oepy has joined. 00:36:24 *epy set(test=lambda *a: pr('Hello, world!')) 00:36:25 at 0xd12b0> 00:36:34 *cmd test test 00:36:38 *test 00:36:39 'Hello, world!' 00:36:43 oops 00:37:00 -!- oepy has quit (Remote closed the connection). 00:37:10 -!- oepy has joined. 00:37:11 *epy set(test=lambda a: pr('Hello, '+a+'!')) 00:37:12 at 0xd12f0> 00:37:14 *cmd test test 00:37:16 *test 00:37:16 TypeError: () takes exactly 1 argument (0 given) 00:37:27 *epy set(test=lambda x='world', *a: pr('Hello, '+x+'!')) 00:37:28 at 0xd1270> 00:37:30 *cmd test test 00:37:32 *test 00:37:32 Hello, world! 00:37:35 *test a 00:37:35 Hello, a! 00:37:37 *test a b c 00:37:37 Hello, a! 00:37:46 *epy set(test=lambda *a: pr('Hello, '+' '.join(a)+'!')) 00:37:46 at 0xd13b0> 00:37:48 *cmd test test 00:37:50 *test a b c 00:37:50 Hello, a b c! 00:37:53 AnMaster: Discuss. 00:37:59 fizzie: Mr botter #2, discuss. 00:38:00 discuss what? 00:38:18 AnMaster: The workage of the above. 00:39:02 ehird, what exact aspect? 00:39:07 All'fit. 00:39:08 storing first class functions yes 00:39:11 nice that it works 00:39:18 No. 00:39:20 no idea if it persists across sessions 00:39:22 The 'command defining' aspect. 00:39:23 :-P 00:39:34 *test a b c 00:39:35 Hello, a b c! 00:39:42 ehird, it is global for all users? 00:39:48 yes. 00:39:50 what if I define my own colliding one? 00:39:55 what one will be used 00:40:01 Yours. 00:40:06 or is set no longer local to user? 00:40:07 Just like fungot. 00:40:07 ehird: oh weh mir will bei meiner fnord sein 00:40:17 ehird, ? 00:40:22 ^help 00:40:23 ^ ; ^def ; ^show [command]; lang=bf, code=text/str:N; ^str 0-9 get/set/add [text] 00:40:31 ^def test bf ,[.,] 00:40:31 Defined. 00:40:32 *epy set(test=lambda *a: pr('Hi, '+' '.join(a)+'!')) 00:40:32 ^test hi 00:40:33 hi 00:40:33 at 0xd1270> 00:40:34 fungot: ich weiss nicht, was soll es bedeuten 00:40:35 oerjan: rsa gives 200k for getting the first instruction ( byte 0), ( n+n/ fnord/ fnord 00:40:35 ^def test fb 00:40:35 Usage: ^def 00:40:38 ^def test bf 00:40:38 Usage: ^def 00:40:40 ^def test bf . 00:40:40 Defined. 00:40:40 *cmd test test 00:40:41 ^test a 00:40:41 . 00:40:43 *test 00:40:43 Hello, ! 00:40:45 *cmd test test 00:40:46 *test 00:40:47 Hi, ! 00:40:49 ah 00:40:50 right 00:41:03 *cmd test foo 00:41:05 *foo 00:41:09 err? 00:41:13 *cmd foo test 00:41:15 *foo 00:41:16 Hi, ! 00:41:18 ah 00:41:23 *cmd cmd test 00:41:25 *foo 00:41:25 *cmd 00:41:25 Hi, ! 00:41:27 yay 00:41:32 *foo 00:41:32 Hi, ! 00:41:33 ehird, you may want to prevent that 00:41:34 *cmd 00:41:37 hm 00:41:38 wait? 00:41:46 *cmd epy test 00:41:48 *epy 00:41:49 SyntaxError: unexpected EOF while parsing (, line 0) 00:41:52 oh well 00:41:54 worth a try 00:42:13 ehird, very nice 00:42:24 ehird, question: How do I unset a value 00:42:41 :p 00:42:43 *epy get('foo') 00:42:44 KeyError: 'foo' 00:42:45 Hmm. 00:42:47 Ah. 00:42:49 Well. 00:42:50 ehird, test 00:42:51 You don't. 00:42:52 an unsettling question 00:42:52 would be it 00:42:58 *epy get('test') 00:42:58 at 0xd1270> 00:43:02 *epy remove('test') 00:43:03 NameError: name 'remove' is not defined 00:43:04 AnMaster: Just set it to None. 00:43:05 :-P 00:43:16 *epy set(test=None) 00:43:17 None 00:43:18 *test 00:43:19 KeyError: 'foo' 00:43:21 hehe 00:43:24 *foo 00:43:25 TypeError: 'NoneType' object is not callable 00:43:26 ah 00:43:36 -!- oepy has quit (Remote closed the connection). 00:43:42 ehird, is it possible to make a command that maps to some other user's function? 00:43:46 AnMaster: Yes. 00:43:54 *epy set(thing=get('thing', user='otherguy')) 00:43:58 *cmd thing thing 00:44:07 ehird, that maps indirectly 00:44:11 Yes it does. 00:44:14 -!- oepy has joined. 00:44:17 and would it really work if the original user changed thing 00:44:20 ? 00:44:24 Then: *epy set(thing=lambda *a: get('thing', user='otherguy')(*a)) 00:44:31 ah right 00:45:07 ehird, can you use lambda to make an accumulator like in scheme? 00:45:08 *epy set(a=2) 00:45:09 2 00:45:13 *epy unset(a) 00:45:13 NameError: name 'unset' is not defined 00:45:19 oh./ 00:45:32 -!- oepy has quit (Remote closed the connection). 00:45:34 ehird, that is some local stuff like define and set! 00:45:40 AnMaster: yes, with a hack 00:45:43 -!- oepy has joined. 00:45:44 ehird, oh? 00:45:59 Sec. 00:46:30 (lambda n: (lambda x: (lambda i: (x.__setitem__(0,x[0]+i), x[0])[1]))([n])) 00:46:32 Should do it. 00:46:37 *epy set(accgen=(lambda n: (lambda x: (lambda i: (x.__setitem__(0,x[0]+i), x[0])[1]))([n]))) 00:46:38 at 0xd1270> 00:46:44 *epy set(myacc=accgen(5)) 00:46:44 NameError: name 'accgen' is not defined 00:46:49 *epy set(myacc=get('accgen')(5)) 00:46:49 at 0xd1770> 00:46:55 *epy myacc 00:46:56 NameError: name 'myacc' is not defined 00:46:59 *epy get('myacc') 00:46:59 at 0xd1770> 00:47:00 why array? 00:47:03 *epy get('myacc')(5) 00:47:03 10 00:47:05 *epy get('myacc')(5) 00:47:06 15 00:47:11 ehird, nice! 00:47:14 AnMaster: No explicit way to access a var from the specific scope. 00:47:15 but horrible syntax for it 00:47:22 ehird, ah hm 00:47:22 ok 00:47:26 And yes, well, lambda is discouraged 00:47:28 Python is imperative. 00:47:33 ehird, which is sad IMO 00:47:45 AnMaster: Python is an imperative languag. 00:47:47 Why is that sad? 00:47:58 It just happens to have a few functional features which I abuse by using for everything. 00:48:01 It's just a novelty. 00:48:05 ehird, well it had great potential for being a good mix of functional and imperative 00:48:09 no 00:48:10 it really didn't 00:48:12 throwing away that is sad 00:48:18 it didn't 00:48:27 *epy unset('myacc') 00:48:28 None 00:48:29 *epy get('myacc') 00:48:30 KeyError: 'myacc' 00:49:13 ehird, nice 00:49:16 now you need uncommand 00:49:24 Nah. 00:49:24 and then some way to persist across sessions 00:49:44 ehird, can you serialise python into sqlite db or something? 00:50:01 I can serialize the code by saving it as a string and then pickle the lists, sure. 00:50:10 *epy set(reverse=lambda *a: pr(' '.join(a)[::-1])) 00:50:10 at 0xd1530> 00:50:13 *cmd reverse reverse 00:50:14 ehird, ok that sounds horrible 00:50:18 *reverse abcd efg hi 00:50:19 ih gfe dcba 00:50:20 AnMaster: Not really. 00:50:32 ehird, it will work for " at 0xd1530>" too? 00:50:35 and similiar 00:50:39 similar* 00:50:54 AnMaster: no, which is why i'd save the code as a string 00:51:07 ehird, ah you mean store it originally as a string too? 00:51:09 right 00:51:18 yeah. 00:51:21 well this have been most interesting, but now I really really need to sleep 00:51:29 AnMaster: shall i paste the code first? 00:51:34 I hope this bot will have a bright future 00:51:36 ehird, yes thanks 00:51:40 http://rafb.net/p/8g7uKm57.html 00:51:43 I like to scare python fans with it! 00:51:54 also, i'll probably get it running sufficiently and then consider it finished save for bugfixes :-P 00:51:59 maybe write a bot I can actually maintain 00:52:07 still, i'm proud of what i have 00:52:41 hmm 00:52:43 should I paste that into #python 00:52:48 ehird, you are right to be proud 00:52:49 :) 00:52:56 * ehird shows #python it 00:53:01 ehird, you put the fun back in python 00:53:02 ! 00:53:16 pyfun 00:53:59 ehird: awesome 00:53:59 Storlek: Awesome heart attacks! 00:54:01 err 00:54:04 ehird: no more LISP for you! :p 00:54:09 ehird: no more LISP for you! :p 00:54:10 omfg 00:54:11 oh 00:54:12 you're in there 00:54:13 XD 00:54:14 was what I menat to paste yes 00:54:18 ehird, I joined before 00:54:31 when you talked about asking that channel first time 00:54:35 ehird, to see reactions 00:54:42 hee 00:54:47 ehird, I don't normally idle there 00:55:00 ehird, eh. 00:55:00 unfortunately it'll only survive for about 1000 lines 00:55:00 due to the recursion loop :( 00:55:01 huh? 00:55:01 Surprise surprise 00:55:06 really? 00:55:11 AnMaster: look at the this(this,persisted,extra_cmds) 00:55:16 it calls it recursively for every line 00:55:18 + small stack = ... 00:55:20 ehird, you mean python doesn't have tail recursion? 00:55:43 no. 00:55:47 it's an imperative language. 00:56:40 ehird, but even some C compilers optimise tail recursion 00:56:44 I'm pretty sure of that 00:56:54 gcc does, yes. 00:56:56 ehird, and C is much much more imperative than python 00:56:57 But no sane program relies on it. 00:57:06 ehird, iirc MSVC does too 00:57:10 but not sure about that 00:57:19 ehird, possibly also icc 00:57:57 maybe there is some other way to iterate within an expression? 00:58:21 yes 00:58:26 habnabit_: map(f, iter(lambda: True, False)) 00:58:33 or i could add a tailcall trampoline 00:58:55 ehird, um that is serious python-fu 00:59:05 Yes. 00:59:07 so it went over my head 00:59:29 of python understanding 00:59:35 ehird, explain please :) 00:59:42 map is a map function. 00:59:49 iter on a lambda makes an iterator 00:59:57 -!- slereah has joined. 01:00:10 returning (value,is_at_end) 01:00:16 so that yields true 01:00:16 always 01:00:18 then maps over it 01:00:18 always 01:00:50 haha 01:00:52 one problem though: doesn't it try to collect the results? 01:00:54 at that last comment 01:01:05 -!- Slereah_ has quit (Read error: 113 (No route to host)). 01:01:29 oerjan, it should, meaning non-tail recursion 01:01:33 oerjan: yes, so? 01:01:43 well a little memory leak 01:01:52 no 01:01:56 map would return an iterator 01:02:05 which would throw away its value whenever it yield 01:02:06 s 01:02:06 also 01:02:07 Storlek: I don't see any reason to be proud of achieving a goal that isn't worth accomplishing. 01:02:10 ^ boring fuck 01:02:12 ehird, where's the bot? I can circumvent that security easily enough. 01:02:14 interesting 01:02:39 RUN, RUN AWAY 01:03:07 -!- habnabit_ has joined. 01:03:14 oh no 01:03:19 *epy 2 + 2 01:03:19 4 01:03:30 ehird is screwed :D 01:03:33 oepy: Say hi. 01:03:34 hi ehird 01:03:36 yes I think so too 01:03:37 No. To habnabit_. 01:03:43 ehird, you forgot to code that 01:03:44 *epy type(unset) 01:03:45 01:03:51 *epy unset.func_globals 01:03:52 {'__builtins__': , '__name__': '__main__', '__file__': 'onelineesobot.py', '__doc__': None} 01:04:00 (Originally it was one line...) 01:04:10 *epy unset.func_globals['__builtins__'].__import__('os').fork 01:04:11 AttributeError: 'module' object has no attribute 'no_import' 01:04:16 Hmm. 01:04:17 Ha. 01:04:22 *epy unset.func_globals['__builtins__'].__import__ 01:04:23 AttributeError: 'module' object has no attribute 'no_import' 01:04:26 hehehe 01:04:29 :) 01:04:32 *epy vars(unset.func_globals['__builtins__']) 01:04:32 {'IndexError': , 'all': , 'help': Type help() for interactive help, or help(object) for help about object., 'vars': , 'SyntaxError': , 'unicode': , 'UnicodeDecodeError': , 'isinstance': , 'copyright': Copyright (c) 2001-2006 Python Software Foundation. 01:04:36 ok not _that_ screwed :D 01:04:40 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 01:04:40 01:04:41 er 01:04:44 oh. 01:04:47 oh dear. 01:04:47 hah 01:04:58 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__')('sys').stdout.write('Hmm. I wonder how to fix this.') 01:04:59 None 01:05:16 habnabit_: I don't suppose you have any bright ideas? :-P 01:05:32 I think python need something like that sandbox thingy perl have 01:05:34 Sure. Don't use eval. 01:05:37 would be useful to ehird 01:06:01 habnabit_: You have a better suggestion? :-P 01:06:16 i'd quite like the wonderful people of this place to experience the insanity that single-expression python gives. 01:06:17 ehird, writing a python interpreter in lambda-style python? 01:06:20 Make a FORTRAN interpreter instead. 01:06:24 AnMaster: Harsh, man. Harsh. 01:06:25 Or s-expression. 01:06:31 ehird, sorry 01:06:35 habnabit_: Pfft. :-P 01:06:40 I could try pypy. 01:06:42 Errrr. 01:06:45 Not FORTRAN. 01:06:50 ehird, embed pypy? 01:06:52 What's it called? The stack-based language. 01:06:56 FORTH 01:06:59 ehird, written as single line lambda? 01:07:11 habnabit_: Or anything on http://esolangs.org/wiki/Language_list... 01:07:12 FORTH probably is what you mean indeed 01:07:12 Yes. FORTH. 01:07:19 or what ehird said 01:07:20 after all 01:07:25 ^bf ++++++++++++++++++++++. 01:07:25 . 01:07:39 (fungot happens to be written in befunge.) 01:07:39 ehird: except you have to 01:07:41 ^bf ++++[>++++<-]>. 01:07:41 . 01:07:44 hm? 01:07:52 (but that is brainfuck.) 01:07:56 yes it is 01:07:59 I was just wondering 01:08:01 FORTH would be a pain in python, though. 01:08:02 ^bf +++++[>++++<-]>. 01:08:02 . 01:08:05 It can directly access the memory. 01:08:06 ^bf +++++[>++++++<-]>. 01:08:06 . 01:08:17 ^bf +++++[>++++++<-]>++++. 01:08:17 Just make some FORTH-like language. 01:08:18 " 01:08:19 ahh 01:08:24 ^bf +++++[>++++++++<-]>++++. 01:08:24 , 01:08:24 Stack-based things are really easy to implement. 01:08:26 ^bf +++++[>++++++++<-]>+++. 01:08:26 + 01:08:28 yay 01:08:29 :) 01:08:51 Just like how an RPN calculator is much easier to implement than some infix thing. 01:08:52 habnabit_: Sure, thutubot is written in a string-rewriting language and does underload. 01:08:55 habnabit_, don't you realise we are all slightly insane by your standards in here? :) 01:09:06 AnMaster, what standards? 01:09:06 But I think I'll hack at it to make it do one-expr python reasonably safely. 01:09:06 ^ul (Y)S 01:09:08 Y 01:09:15 habnabit_: #python's I guess he means. 01:09:16 habnabit_, not sure, but basically we think doing things in obscure ways is fun 01:09:21 ehird, it already does one-expression python. 01:09:25 But yeah, considering we're a community based entirely around esoteric programming languages... 01:09:30 habnabit_: But with security holes. 01:09:31 habnabit_, like obfuscated c is sane compared with some things in here ;P 01:09:35 eval can *only* evaluate one expression. 01:10:19 habnabit_, http://zem.fi/~fis/fungot.b98.txt 01:10:20 AnMaster: i have been creating some pages 01:10:23 that is the code for fungot 01:10:24 AnMaster: gambit does transparent nonblocking io of course. can't perform the ritual. and lo and behold 01:10:33 Oh hey, befunge. 01:10:37 habnabit_, yes :) 01:11:26 habnabit_, oh and ais523 (who is afk) maintains one of the INTERCAL implementations 01:12:02 I'm sure you know what intercal is, but if you don't, you probably don't *want* to know 01:12:42 habnabit_, in fact I consider ehird's one expression python code beautiful, though I admit I don't know python well. I prefer C, Erlang and Scheme 01:12:56 (and befunge) 01:13:13 (though fizzie wrote fungot) 01:13:14 AnMaster: i paid 25 eur for my nokia communicator 9110 01:13:19 Sure. But it's not really one expression. 01:13:22 He cheats. 01:13:25 habnabit_: AnMaster hates Python because of whitespace indentation, I think it's safe to say his opinion on Python code is a bit silly. 01:13:29 Also, it is so one expression. 01:13:33 lambda *lists: (lambda iters: (reduce(lambda (ll, res), l: (l, res if ll is None else (res and ll == l)), reduce(lambda ds, elems: map(lambda d, elem: d.__setitem__(elem, d.get(elem, 0) + 1) or d, ds, elems) or ds, zip(*iters), [{} for x in xrange(len(lists))]), (None, True)))[-1] and not (lambda l: map(lambda it: list((itt.next(), l.append(True)) for itt in (it,)), iters) and bool(l))([]))(map(iter, lists)) if lists else True 01:13:39 I wrote that! 01:13:40 I do think whitespace indention have lots of issues yes 01:14:04 I prefer either brances, or erlang style 01:14:16 See. I'm cool too. :( 01:14:34 erlang use . to end a function , to separate expressions in a function and ; to end a function clause 01:14:34 habnabit_: embrace your dark side >:D 01:14:40 as statement separators 01:14:50 I have a bunch more python oneliners I've written. 01:14:51 oerjan is a published mathematician who wrote an unlambda interpreter in intercal. 01:14:54 it have none of the drawbacks of {} or indention based 01:14:55 :) 01:15:09 and habnabit_: Nice 01:15:22 not being a big python fan I admit I can't figure out what it does 01:15:35 not enough clues in the code really 01:15:40 It's the same as sorted(L1) == sorted(L2) == sorted(L3) == ... 01:15:54 sorted would check if a list is sorted I assume? 01:16:10 no 01:16:13 no? 01:16:14 sorted returns a sorted version 01:16:16 No, it returns a sorted copy of a list. 01:16:17 of its argument 01:16:20 that should be sort 01:16:22 IMO 01:16:24 no it should not 01:16:28 sort is an imperative 01:16:32 .sort is an inplace method of lists. 01:16:34 thus should mutate 01:16:37 err 01:16:38 right 01:16:39 but sorted describes the transition 01:16:47 So you have list.sort(), which is faster because it sorts in place. 01:16:56 And then there's sorted, which returns a sorted list from any iterable. 01:17:00 habnabit_, Single Assignment make so much more sense! :P 01:17:14 What's that have to do with sorting lists? 01:17:23 well for a start you would always get a new copy 01:17:28 and not modify in place 01:17:34 habnabit_: AnMaster actually only knows 3 languages, C, Bash (which he uses for big projects like his 'modular irc bot') and Erlang, but he likes to show off that he knows Erlang nowadays. 01:17:36 I'm leaving now. Bye. 01:17:46 ehird, now you are exagerating 01:18:07 I already wrote some scheme programs including a simple befunge93 interpreter 01:18:11 it got a few bugs still 01:18:23 once it is fully finished to handle IO correctly I will publish it 01:18:30 and I'm heading to bed too 01:18:46 02:18 in the night, really need to change that sleep pattern 01:19:09 habnabit_, oh and in case you want to see my insane modular irc bot in bash: http://envbot.kuonet.org 01:19:23 and it is somewhat like ehird's one-expression 01:19:23 DNS resolution error! 01:19:32 huh 01:19:42 Oh, there it goes. 01:19:48 But it can't connect on HTTP. 01:20:14 habnabit_, well that is different 01:20:23 * AnMaster ssh in to the freebsd jail it runs in 01:21:29 habnabit_, ok some upgrade broke it 01:21:34 trac to be exact 01:21:41 probably because that is coded in python 01:21:49 (just kidding) 01:21:53 >_< 01:21:58 Traceback (most recent call last): 01:21:58 File "/usr/local/share/trac/cgi-bin/trac.fcgi", line 19, in 01:21:58 from trac.web import fcgi_frontend 01:21:58 ImportError: No module named trac.web 01:22:01 * AnMaster considers this 01:23:27 habnabit_, happen to have any bright ideas? 01:23:47 ah works better 01:23:48 Never used trac. 01:23:50 another error 01:24:03 I wouldn't recommend using fcgi, though. 01:24:31 habnabit_, I use lighttpd 01:24:34 so no mod_python 01:24:39 Bahahaha. 01:24:41 mod_python is shit. 01:24:50 mod_wsgi works well with trac. 01:24:53 habnabit_, then what do you suggest? I need to server bzr branches 01:24:58 and apache is shit 01:24:58 :P 01:25:12 I would disagree. 01:25:50 habnabit_, should work now 01:25:53 the website 01:26:06 just had to reinstall trac 01:26:07 no idea why 01:26:12 It's going. 01:26:18 habnabit_, hm? 01:26:23 It worked. 01:26:25 ah 01:26:31 well I'm not a native speaker 01:26:35 so that confused me 01:26:41 going would mean "going away" to me 01:26:53 Looks like mod_wsgi works with bzr, too. 01:27:08 habnabit_, not really what I meant, I server them statically 01:27:18 since bzr can work on plain web server 01:27:31 and I use bzr+ssh for pushing 01:27:37 anyway envbot is semi-dead really 01:27:39 it works well 01:27:46 but is hard to maintain 01:27:54 however I'm proud over what I managed 01:29:09 habnabit_, I hope you will stay here :) 01:29:29 RIght now isn't prime time, many of the most active people live in Europe 01:29:32 Right* 01:29:43 So like me, they are heading to bed. 01:29:45 Cya! 01:29:46 I see. 01:29:52 (Sweden to be exact) 01:31:19 -!- olsner has joined. 01:35:00 * comex tries to compile pypy, and fails 01:35:41 -!- puzzlet has quit (Remote closed the connection). 01:35:45 -!- puzzlet has joined. 01:37:29 -!- oepy has quit (Read error: 113 (No route to host)). 01:41:02 if this actually works ... 01:41:24 well, it's the first 1.0 software tbqh that I've had to fix a bug to get compile 01:41:52 Mmmmmmmmmmmoxie. 01:41:57 Moxie is so much better than all other soda. 01:42:21 -!- slereah has quit (Read error: 113 (No route to host)). 01:55:54 -!- puzzlet has quit (Success). 02:00:57 -!- puzzlet has joined. 02:10:53 -!- olsner has quit ("Leaving"). 02:21:17 -!- ab5tract has joined. 02:40:21 I've never had moxie. 02:40:24 I mean, Moxie. 02:45:21 -!- habnabit_ has quit (Read error: 110 (Connection timed out)). 02:46:13 ihope: It's effectively limited to one state :P 02:46:57 What state is that? 02:47:03 And why can't it be found elsewhere? 02:47:05 Maine. 02:47:14 Because they don't sell it elsewhere :P 02:47:37 Can you buy it in Maine, take it somewhere else, and sell it there? 02:48:05 Sure. 02:48:23 There are a few places that sell it in Oregon. 02:48:27 But I'm in Indiana now. 02:48:29 "USED: Six cans of MOXIE soft drink. No visible damage. Still factory sealed." 02:48:51 That's scary :P 02:48:57 But yuh, I bought mine online. 02:49:28 I think we shall have to liberate Maine and relieve them of these WMDs... 02:49:53 How did you get your hands on Moxie in Indiana? 02:50:27 Via the intarwebs. 02:50:38 (Had a bunch of it shipped) 03:07:05 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Y = SII, so. 03:09:38 -!- GreaseMonkey has joined. 03:13:07 -!- habnabit_ has joined. 03:28:14 -!- ab5tract has quit. 03:36:18 http://www.thinkin-lincoln.com/index.php?strip_id=1 03:37:46 (made me laugh, that one) 03:43:05 http://www.thinkin-lincoln.com/index.php?strip_id=8 03:43:21 maybe i'm getting tired like oklopol 04:17:05 who highlighted me 04:18:37 i think bsmntbombdood did one statement python 04:19:02 -!- ENKI-][ has quit (Read error: 104 (Connection reset by peer)). 05:13:03 -!- edwardk has joined. 05:13:16 * edwardk waves hello. 05:17:11 hello 05:17:37 how goes? 05:18:03 I finally figured out how to make kata views efficient =) 05:18:33 what are kata views? 05:18:38 i realize uttering the word 'efficient' around here is grounds for a beating, but hey 05:18:49 kata is my more or less untyped haskell-alike 05:18:59 i use wadler style views in it rather than typeclasses 05:19:10 ic 05:19:27 where a view is defined as a sort of hybrid between a haskell data type and a open function definition 05:20:23 so in a wadler-style view. you'd say define a view Nat on integers that took 0 to the constructor Z and then took any other integer n to S (n -1) 05:20:32 then you could use S and Z or the more traditional integers 05:21:29 in kata-style views, you also say what constructors the view consists of, but the view itself is a function and you define the function as you would normally. any attempt to pattern match on a constructor that is part of a view applies the appropriate view function 05:21:52 so given constructors && and ||: 05:22:17 bool :: view True | False; bool (True && b) = bool b; bool (False && _) = False 05:23:19 a view is automatically idempotent and is an identity function on its own constructors, and in this case is defined on the additional && constructor, but when applied there it first applies the boolean view to the first argument of the && constructor, and case matches appropriately from there. 05:23:48 the problem is basically i wound up building up these free magmas of structures 1 + (2 + 3) didn't build a thunk chain it built a data structure. 05:24:10 and then applying the 'int' view to that was like 'walking an evaluation function' down a tree 05:24:27 so i finally figured out a way to cache the result of applying certain views to different data structures 05:24:35 which lets me recover haskell like efficiency 05:24:53 hm 05:24:57 if that makes any sense 05:25:41 more or less 05:26:01 basically i had to steal a trick from a chess program 05:26:36 crafty had this trick for doing lockless caching of best move calculations in its transposition tables 05:27:40 in the ghc spineless tagless g-machine you store a tag and a fwding pointer along with the data, in kata you store the tag, a forwarding pointer and a 'view' that derived that forwarding pointer. unfortunately. if you aren't careful that leads to a race condition, because without a lock 05:27:54 -!- ihope_ has joined. 05:28:03 you would read one fwding pointer, then someone could come along and write in another fwding pointer and view before you got to the view. 05:29:29 right 05:29:32 so instead i store the fwding pointer xored with the view instead. then to see if a view has already been applied to a thunk i check to see if fwd ^ fwd ^ the-view-i-read = the-view-i-want if so then fwd points to the answer, if not either the wrong view was stored or someone is racing me and its inconsistent 05:30:46 its always safe (if inefficient) to recompute a view, so it takes it to a conservative case for the rare (1-in-a-million)^2 kinda case where we both happen to be evaluating the same datastructure and i read it right as you overwrite it 05:31:00 which then just does the right thing 05:31:08 and no locks need enter into it 05:31:22 so its kinda like the blackholing tricks used by ghc 05:33:30 anyways it made me happy =) 05:33:59 good 05:34:29 unfortunately it plays hell with my garbage collector which heretofore didn't have to worry about writes changing the set of pointers visible from the local dataset into itself (i had some tricks that let me garbage collect separately per processor) 05:34:35 so i have a ways to go 05:36:55 * oerjan discovers he's very tired 05:37:16 (previously other threads didn't have to care if another thread was garbage collecting, any object that could be shared had a root pinned to keep it from oving, before copy collecting, propagate the pins transitively and don't move anything pinned) unfortunately since any thread can 'view' any other thread's data that fails here, since now you run into the traditional garbage collector/mutator race conditions that plague most concurrent col 05:37:47 * edwardk discovers he is blathering on 05:37:48 ;) 05:38:28 well, see you 05:38:55 -!- oerjan has quit ("Bed"). 05:45:47 -!- ihope has quit (Read error: 110 (Connection timed out)). 05:49:11 -!- moozilla has quit (Read error: 110 (Connection timed out)). 05:54:32 -!- oc2k1 has quit (Remote closed the connection). 06:23:28 It's hard to find good test cases for a garbage collector. 06:24:10 I wrote up a quick-n-dirty generational GC, but my test cases are pathologically bad (tons of object churn with bad natural locality) so the GC is actually going faster than the non-GC version. 06:24:15 Bulllllll shfott. 06:31:49 back 06:31:51 yeah 06:33:29 in this case i've been using a per-processor copy-collector, where i allocate objects in garbage collected regions, inter-region links are pinned so they don't move, so anything with inter-region (hence all inter-processor) links can't be copy collected, they get globally mark/swept and ultimately mark/compacted. 06:34:10 it lets me get rid of most of my garbage without any inter-thread communication, but forces some constraints on how i can use objects or pass pointers around 06:36:21 unfortunately the view stuff i was rambling on above invalidates one of the central invariants of my gc model which is that an inter-region link could only be evaluated by another process to a value that it could reach transitively from a reference it had been handed (and it a reference is ever handed out it is pinned, and pins are propagated before sweeping) 06:38:31 so if i'm not the process that owns a region i don't have to care about the state of anything not transitively reachable from a pinned root, and since before copy collecting i propagate the pins (its just a mark pass, pins are the initial grey set) and hence any garbage collection done by the other processor is invisible to me. but if i want to collect pinned stuff i have to eventually give in and run a global collection 06:58:35 http://wellnowwhat.net/comic/mathematicians.jpg 07:00:02 lol 07:00:13 :D 07:00:14 you like? 07:00:21 Yeah 07:00:29 :DDDDDDDDDDDDDDDDDDDDDDDDD 07:00:33 <3 mathematical jokes 07:00:44 -!- asiekierka has joined. 07:00:53 Although it could be a bit bigger and easier to read 07:00:59 Hi 07:01:02 yeah i know shush :P 07:01:16 xkcd ftw :) 07:01:21 actually 07:01:23 is not xkcd 07:01:27 I know 07:01:30 just xkcd style 07:01:34 Yeah 07:01:42 what xkcd style? 07:01:44 tho stick figures arent really anyones 'style' :P 07:01:50 nor are geeky jokes 07:01:50 I did this style 07:01:52 26 of these comics 07:01:58 And have 6 more waiting to upload 07:02:10 Yeah, xkcd puts them together well 07:02:22 What xkcd style comic? 07:02:44 xkcd's style is: stick figures + geek humor 07:02:48 yeah 07:03:12 Screebles style is: stick figures + school-bored-lesson-like drawing + nonsense 07:03:37 On that note I need to go to bed, I have to be at a math tournament in 7 hours... 07:03:55 cyanide and happiness is stick figures + faces + torsos + black humor 07:05:06 Cyanide and happiness is a bit in the gutter 07:05:19 i like it 07:05:24 i like their tiny-people style 07:05:27 not the tall people style 07:05:31 http://www.explosm.net/comics/862/ 07:05:32 like so 07:05:45 http://wellnowwhat.net/comic/mathematicians.jpg - this comic... lacks a good punchline. 07:05:46 lol 07:06:08 And to whoever made it: "Make the guys look like they're laughing when they are" 07:06:25 ey? 07:06:34 im not sure how to make stick figures look like they're laughing :( 07:06:37 im not that good yet! :| 07:06:44 Draw him a laughing mouth 07:06:51 it's possible even in MS *bleeping* PAINT! 07:06:54 but then it wouldn't be xkcd style! 07:07:04 xkcd has no facial expressions 07:07:13 Oh 07:07:21 maybe i'll do Someone style 07:07:21 Also, i must finally upload screebles 26-32 soon 07:07:28 27-32* 07:07:31 since Someone's art has facial expressions 07:07:36 I uploaded 26 of them... 07:07:38 made 6 more... 07:07:42 and never bothered to upload them 07:07:58 I'll get it on my old server tho. 07:08:11 The one with constant 500's. Since i don't feel like re-uploading the whole script 07:08:21 but brb now 07:08:27 -!- moozilla has joined. 07:08:36 or wait 07:08:38 i'll do it now 07:08:50 Oh 07:09:08 so there are a total of 32 screebles AND 6 animated screebles AND 5 animated whiteboard screebles 07:09:14 for a total of 43! 07:09:15 AUGH! 07:09:22 Wait 07:09:26 or no 07:09:27 nothing 07:09:53 brb, then upping 07:15:23 oki 07:15:38 in the meanwhile, i'll connect my VCR and finally copy that megaman nt warrior final eps 07:21:50 megaman nt warrior? 07:21:54 that show is awesome 07:21:59 was* 07:22:44 yeah 07:22:48 And it's still airing in poland 07:23:00 the final half of axess got aired here 2 months ago 07:26:41 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 07:26:56 -!- asiekierka has joined. 07:27:00 adding screebles! :D 07:29:36 27, 28 done 07:29:37 uping 29 07:29:40 then 30, 31, 32 07:29:44 then giving you the link(s) 07:30:38 #32 left 07:30:51 wtf 07:30:58 My comics 07:31:05 that were xkcd influenced, but slowly branched 07:31:07 branched away 07:31:08 ok 07:31:11 give 07:31:15 to asiekierkism, OR, my way of nonsense 07:31:42 http://asiekierka.boot-land.net/screebles 07:31:44 here you go 07:32:09 Yes, i did #27-#32 in school 07:32:11 so when you say XKCD inspired 07:32:26 you mean "chaotic and painful to look at" 07:32:27 :P 07:33:03 nope 07:33:06 It was first XKCD inspired 07:33:10 by the ideas 07:33:16 then it slowly branched away to my nonsense 07:33:21 Also, i didn't do anything in MS paint 07:33:26 except graphical fixes in #13 and #30 07:33:29 or text adding in some 07:34:47 Any ideas to improve? 07:34:54 Except "don't draw on this little paper" 07:35:11 or "draw on better paper" 07:37:28 hmm? 07:43:59 write legibly 07:44:15 i can't tell what most of them say :-/ 07:44:57 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 07:45:12 -!- asiekierka has joined. 07:45:17 Heh, i hardly can too 07:45:32 But i can't write better on such a small notebook! 07:45:38 paper notebook 07:45:39 ofcoz 07:59:03 -!- Mony has joined. 07:59:24 -!- habnabit_ has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:02:11 -!- habnabit has joined. 08:02:24 plop 08:05:38 No, it's called "Plof" 08:09:09 PLoP is a predicate logic formula evaluator used for the homework in our logic course. (Nowadays; it used to use otter, the theorem-prover.) 08:10:03 hmm 08:10:22 flooders è_é 08:10:23 Anyone knows why Taxi doesn't work with NetCat 08:10:43 ^show 08:10:43 echo reverb rev bf rot13 hi rev2 fib wc xaa enctst copy badrot13 chtopic top topiccode compat_cat trulyawfulrot13 rot26 me echochohoo lolercakes echo_cho_ho_o baddoubles ul test 08:11:03 ^echo optbot 08:11:03 asiekierka: but e.g. sam ruby uses it so he can embed svg and mathml 08:11:03 optbot optbot 08:11:03 fungot: that is clever 08:11:04 optbot: does not compute. 08:11:04 fungot: SICP IS A POLYGAMISRT 08:11:04 optbot: it's a paper on prescheme, right? 08:11:04 fungot: I had two open 08:11:04 optbot: ( and i know this 08:11:04 fungot: hehe 08:11:05 optbot: too true, actually. haskell is computing ack(4,2)... over and over 08:11:05 fungot: harbl? no! :| 08:14:59 ^save 08:14:59 OK. 08:15:22 ^code 002aaa***99++p 08:15:23 ^show 08:15:24 echo reverb rev bf rot13 hi rev2 fib wc 08:15:31 fizzie: Plof > PLoP. 08:15:36 That was entirely too many senseless commands. 08:17:03 Although I guess the ul command was kinda nice, even though it only was capable of outputting like three things, and useless with thutubot here. 08:17:10 ^def ul bf str:5 08:17:10 Defined. 08:17:15 ^ul (x)S 08:17:18 x 08:17:32 ^save 08:17:32 OK. 08:21:36 ^ul (:^):^ 08:21:43 ...out of time! 08:21:45 la lalalala--oh... wait 08:21:46 i forgot 08:21:58 (:^p) 08:22:19 ^ul (:^D)D:^ 08:23:05 It goes "out of time" with any nontrivial programs. Concatenation is about the only thing that works. 08:23:15 ^ul (:)(])*S 08:23:19 :] 08:23:55 ^ul (as)(ie)(ki)(er)(ka)!**!S 08:24:02 ...out of time! 08:24:38 You should program Underload normally 08:24:44 You have a stack, so it's easier 08:28:53 ^code >< 08:28:55 ^show 08:28:55 echo reverb rev bf rot13 hi rev2 fib wc ul 08:28:58 Augh 08:34:05 Yes, a Funge-98 underload interp is on my to-do list. 08:35:31 Getting Taxi to cooperate with netcat is on my priority list 08:35:35 as the first entry 08:35:36 :P 08:35:38 Taxi works 08:35:39 Netcat works 08:35:42 Netcat+Taxi fail 08:59:25 morning 08:59:30 asiekierka, how is that? 08:59:35 you just need two fifos 08:59:46 I use something similar in my irc bot in bash 08:59:57 asiekierka, also maybe socat would work better then 09:00:06 Ok 09:00:10 lemme check if cygwin has socat 09:00:20 or if there's a native windows binary of it 09:01:02 asiekierka, from man page http://rafb.net/p/FNQWQX80.html 09:01:17 you could do something similar for stdin/stdout (1 and 2) 09:01:19 err 09:01:21 0 and 1 09:01:23 I meant 09:01:31 I know Taxi uses cout to output 09:01:42 and getline for input 09:01:48 well 0 is stdin and 1 stdout 09:02:35 I'm not sure if taxi does output to stdout 09:02:38 Taxi in CMD.EXE works 09:02:42 Netcat alone with echo works 09:02:48 Netcat+Taxi (with the -e command) FAIL 09:02:51 asiekierka, did you compile taxi under cygwin? 09:02:55 yes 09:03:01 ok, so not mingw then? 09:03:05 nope 09:03:12 i did it earlier but i recompiled it (thx ehird) 09:03:17 in cygwin 09:03:23 But that didn't help 09:03:35 asiekierka, try 2>/dev/null, do you still get output from taxi? 09:03:46 if not, it uses stderr for output 09:03:49 where shall i try 2>/dev/null? 09:03:55 just type 09:04:00 taxi yourprogram 2>/dev/null 09:04:02 taxi.exe tst.txt 2>/dev/null in Windows!? 09:04:07 asiekierka, in cygwin 09:04:10 ok 09:04:58 well, i do get output 09:05:10 If i replace 2> with 1> i do not 09:05:12 but wait a minute 09:05:25 asiekierka, so it use stdout then 09:05:43 I must retry netcat 09:05:53 oh wait 09:05:55 i use 09:05:58 asiekierka, well I'm not sure fifos work under cygwin 09:06:04 ./nc -v -v -e ./exec.sh irc.freenode.net 6667 09:06:10 #!/bin/sh 09:06:10 ./taxi.exe tst.txt 09:06:13 and this is exec.sh 09:06:19 um 09:06:26 nc = netcat 09:07:05 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | english is easier than Polish, Korean, Chineese, Finnish, Hungarian, Russian, Nyjorsk, Dannish... and some other ;;p. 09:07:22 If i run taxi.exe directly, as in, -e "./taxi.exe tst.txt", it quits after a short while 09:07:25 asiekierka, I'm not sure how nc works with that option 09:07:42 -e prog program to exec after connect [dangerous!!] 09:07:44 asiekierka, can you pastebin the code for your program? Maybe it got a bug? 09:07:51 what 09:07:53 the taxi program 09:07:58 or the default taxi interpreter 09:08:00 asiekierka, yes but I'm unsure it does what you want, the -e option 09:08:07 asiekierka, the program tst.txt 09:08:08 i'm not sure either 09:08:21 but when i run -e ./foo.sh (foo.sh echos hello world and blah by normal bash) it works 09:08:24 tested with ehird 09:08:28 So it's directly taxi.exe 09:08:51 http://www.bigzaphod.org/taxi/taxi.cpp - the taxi interpreter src 09:09:38 asiekierka, I meant the source for your program written in taxi 09:10:02 ah 09:10:02 ok 09:10:36 http://rafb.net/p/llFj7Y75.html 09:10:56 it doesn't work with freenoder 09:10:58 freenode* 09:11:04 sends nothing to itself (localhost, nc listening) 09:11:27 $ ./taxi taxibot.txt 09:11:27 Welcome to Taxi! 09:11:27 Let the journey begin... 09:11:27 NICK asiebot 09:11:27 USER asiebot asiebot asiebot :AsieBot! 09:11:27 JOIN #esoteric 09:11:29 hm 09:11:34 i modified the code 09:11:34 those two first lines? 09:11:39 so it doesn't show the first two lines 09:11:45 and the last line (that the program ended) 09:11:52 So ignore these 09:12:42 -!- asiebot has joined. 09:12:44 Heh 09:12:51 USER asiebot asiebot asiebot :AsieBot! 09:12:52 i inputted the first two lines first manually 09:12:56 that is wrong I think 09:12:57 Yes 09:13:00 It works! 09:13:03 > 2008-10-04 11:43:37 USER rfc3092 0 * :ietf.org/rfc/rfc3092 09:13:06 my bot sends that 09:13:10 bot in bash that is 09:13:21 from it's log 09:13:22 Here you go, you see, it works! I just typed it manually! 09:13:26 heh 09:13:31 asiebot, using netcat directly? 09:13:40 Yes. 09:13:46 yes. 09:14:41 Also, there's one problem. Namely, :asiekierka!n=asiekier@xx.xxx.xxx.x shows before the true command 09:14:47 And that may pwn the whole string handling in Taxi. 09:14:56 err that isn't odd 09:14:59 it shows sender 09:15:05 uh, yes 09:15:23 But one sad thing is that i can't split the string into pieces! 09:15:28 Only into separate chars! 09:15:30 But wait 09:15:36 then the Post Office works as a... STACK. 09:15:38 Brilliant! 09:15:41 no wait 09:15:43 not the post office 09:16:03 it was Chop Suey 09:16:06 Then it works as a stack 09:16:16 Hopefully Chop Suey and KonKat's are close together 09:16:27 So it takes ~1 mile to drive from one of these to another 09:16:34 doesn't your irc client have a raw log feature? 09:16:42 I'm not sure, 09:16:44 >> :asiekierka!n=asiekier@89.108.200.4 PRIVMSG #esoteric :+So it takes ~1 mile to drive from one of these to another 09:16:56 as an example from my raw log 09:17:08 mIRC - unsure 09:17:11 netcat - what else!? :D 09:17:20 Returning to Taxi 09:17:22 << PING LAG1223663021092674 09:17:22 >> :calvino.freenode.net PONG calvino.freenode.net :LAG1223663021092674 09:17:24 So i can KonKat 27 chars together on one gallon :) 09:17:45 this i don't get 09:17:50 asiebot, hm one thing maybe, does taxi buffer output? 09:17:51 I just got PING :clarke.freenode.net in netcat 09:17:55 and I think -e may be wrong 09:18:00 not sure about that though' 09:18:06 AnMaster: How else you do it on Linux? 09:18:12 Also, buffering output? I'm not sure 09:18:24 i know it uses getline for input and cout for output 09:18:36 And i output the whole string at once 09:18:41 -!- jix has quit (Nick collision from services.). 09:18:42 lemme check something 09:18:43 -!- asiebot has quit (Read error: 104 (Connection reset by peer)). 09:18:48 netcat irc.freenode.net 6667 < out-fifo > in-fifo & 09:18:50 and 09:18:51 -!- jix has joined. 09:18:52 the fifos: 09:19:00 mkfifo out-fifo 09:19:03 mkfifo in-fifo 09:19:08 both before the netcat command 09:19:15 then: 09:19:28 hmm? 09:19:32 taxi foo.txt < in-fifo > out-fifo 09:19:47 reversing order of the fifos compared with in nethack command 09:19:55 asiekierka, fifios are special files 09:19:59 fifos* 09:20:07 first in, first out 09:20:08 is the & at the end necessary in netcat 09:20:18 asiekierka, no you could start it in a different terminal 09:20:34 & just puts it in background 09:21:02 asiekierka, anyway I don't know if cygwin have fifos 09:21:15 -!- olsner has joined. 09:21:23 cygwin has fifos 09:21:52 asiekierka, anyway another possibility is that some buffering is going on somewhere 09:22:35 ok, testing 09:22:50 asiekierka, maybe add cout.flush(); at the end of post_office_arrive(), that should handle buffering I think 09:23:00 not 100% sure, more used to C 09:23:05 where you use fflush() 09:23:30 fflush()? 09:23:44 this is not my code 09:23:46 but lemme check 09:23:51 asiekierka, that is for C not C++ 09:23:56 ok 09:23:58 in C++ I think it is cout.flush(); 09:23:58 added cout.flush 09:24:15 don't forget to recompile 09:24:20 After the while loop, right? 09:24:24 yes 09:24:42 oki 09:24:43 recompiling 09:25:00 giving it 30 seconds 09:25:10 to identify, join this channel 09:25:10 and stuff 09:25:21 using -e to netcat still? 09:25:25 nope 09:25:29 using FIFOs 09:25:37 ok 09:25:43 it didn't do it, as we see 09:25:50 I wonder if i should add a 3-second delay in the program 09:27:25 no 09:27:26 2-second 09:28:21 ok 09:28:23 testing 09:29:07 asiekierka, I set up a local listening netcat and tried to connect to it with your program 09:29:15 and? 09:29:16 I should have gotten output from the listen nethack 09:29:17 I didn'rt 09:29:19 didn't* 09:29:23 the same here 09:29:31 I think it's the taxi.cpp that is broken 09:29:35 or cout itself, even 09:29:44 not sure 09:30:04 Or maybe netcat doesn't use stdin/stdout, but that'd be wrong, as netcat works with foo.sh's echo, even with -e 09:30:09 wait wrong 09:30:26 what 09:30:33 $ netcat -vv -l 09:30:34 Listening on any address 51972 09:30:34 Connection from 127.0.0.1:37495 09:30:38 and 09:30:39 $ netcat 127.0.0.1 51972 -e "./taxiwrap.sh" 09:30:47 And? 09:30:47 -e doesn't work I suspect 09:30:52 Try with FIFOs 09:31:12 * AnMaster does so 09:32:29 With fifos, it worked here! 09:32:31 weird 09:32:34 really? didn't here 09:32:42 I ran this: 09:32:49 nc -v -v -l -p 3200 localhost in a cmd box 09:33:07 and in the cygwin box, do.sh which set the fifos if needed, ran nc to localhost -p 3200 and taxi 09:33:22 Hey, so it does work 09:33:48 what you mean two levels? 09:33:55 2 levels? 09:33:55 yes 09:33:58 -v -v == -vv 09:34:07 no 09:34:14 wait nm 09:34:43 yes, it seems to work with localhost(age) 09:35:30 Tried with cygwin 09:35:48 So it's a problem with the connection process 09:36:10 taxi.cpp modded by me waits 2 seconds before processing 09:36:51 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 09:37:07 -!- asiekierka has joined. 09:37:24 Nngh 09:37:35 Still seems to fail 09:37:47 I'm not sure what is up with netcat 09:37:52 It's not with netcat 09:37:57 It's with the connection process 09:38:11 So the problem is at this end 09:38:15 :P 09:38:21 At least a piece of good news 09:38:27 err hm 09:38:36 yes 09:39:17 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 09:39:22 bye 09:39:33 -!- asiekierka has joined. 09:39:35 wb 09:39:48 ... 09:39:51 So it's weird 09:39:53 ....... 09:40:00 so what's the subject? 09:40:06 lemme solve all your mortal problems 09:40:10 Netcat+Taxi+Freenode woes 09:40:14 that's the subject 09:40:22 i'm not sure what netcat and taxi are 09:40:22 We FINALLY got Netcat to cooperate with Taxi 09:40:28 but we must now get them to cooperate with Freenode 09:40:33 but i have a faint idea about freenode 09:40:41 asiekierka, ah found it 09:40:43 wait no 09:40:43 it is one of the continents of irc 09:40:52 AnMaster: what 09:41:20 asiekierka, I need to read once after sending the first line 09:41:24 huh 09:41:37 before connection is opened 09:41:47 what happens 09:41:58 I already added a 7second delay before code execution in Taxi.cpp! 09:42:26 asiekierka, no it seems odd blocking things happen 09:42:32 asiekierka, if you have socat, use it instead 09:42:59 Cygwin doesn't have socat 09:43:17 I can compile it tho 09:43:29 no idea if it works on windows/cygwin 09:43:38 Oh 09:43:43 and what syntax would i use THEN 09:45:05 hmm 09:45:37 socat EXEC:"./taxi taxibot.txt",fdin=0,fdout=1 TCP4:irc.freenode.net:6667,crnl 09:45:38 maybe 09:45:40 * AnMaster waits 09:45:42 -!- asiebot has joined. 09:45:45 yep 09:45:46 huh 09:45:47 -!- asiebot has quit (Remote closed the connection). 09:45:50 worked 09:45:53 it... it WORKED!? 09:45:57 asiekierka, yes 09:46:00 using said line 09:46:01 yay for socat! 09:46:09 :D 09:46:12 asiekierka, no idea if reading works 09:46:14 Now configuring the make for socat 09:46:19 We'll check later 09:46:40 By... sending a message! 09:46:45 And quitting by itself 09:46:55 augh, configure is taking forever 09:46:58 asiekierka, err crnl may be wrong 09:47:02 just fyi 09:47:02 -!- edwardk1 has joined. 09:47:05 ok 09:47:09 thx anyway 09:47:15 asiekierka, you may have to read man page 09:47:16 AnMaster, without you, there wouldn't be a Taxibot 09:47:18 socat is very complex 09:47:22 yes 09:47:27 If i'll have problems, i may 09:47:33 asiekierka, and configure would take forever on cygwin 09:47:39 ok, doing make on socat 09:47:39 since it is written in shell script 09:47:43 and that is slow on windows 09:47:44 very fast on xio 09:47:48 because it uses fork() 09:47:53 oh 09:48:01 Compiling is VERY fast though 09:48:03 which cygwin have to emulate 09:48:03 it just did it 09:48:07 asiekierka, ok 09:48:08 for 10 seconds, and done! 09:48:34 crnl Converts the default line termination character NL ('\n', 0x0a) to/from CRNL ("\r\n", 0x0d0a) when writing/reading on this channel 09:48:34 (example). Note: socat simply strips all CR characters. 09:48:39 that could cause a headache 09:48:41 not sure 09:48:49 Oh, yeah, i use \r\n 09:48:59 :) 09:49:03 asiekierka, might not be needed then 09:49:09 Yeah 09:49:12 i'll change it to just \n 09:49:15 and strip crnl 09:49:26 err just \n and *use* crnl you mean? 09:49:27 or? 09:49:38 nope, just \n and DO NOT use crnl 09:49:44 IRC servers work with \n 09:49:45 right? 09:49:53 with \r\n iirc 09:49:54 but oh well 09:50:06 pretty sure irc use CRLF 09:50:30 crlf == crnl seems 09:50:35 yes 09:50:35 Is there something like %1 in shell scripts? 09:50:38 err 09:50:43 asiekierka, what would %1 do? 09:50:45 %1 and %2 09:50:48 %1 = taxi.exe 09:50:52 %2 = tst.txt 09:50:57 In case i want to test a diff script 09:50:59 i could just do 09:51:07 ./do.sh taxi.exe test2.txt 09:51:08 Oh well 09:51:09 maybe not 09:51:13 asiekierka, $1 is first command line parameter $2 is second one 09:51:19 $@ is an array of all 09:51:33 "$@" would expand to "taxi.exe" "test2.exe" 09:51:34 err 09:51:36 "$@" would expand to "taxi.exe" "test2.txt" 09:51:39 in your example 09:51:54 asiekierka, shell scripts are way more powerful than *.bat 09:52:14 Testing socat on my pc 09:52:15 -!- asiebot has joined. 09:52:18 Yay 09:52:19 :D :D :D 09:52:20 -!- asiebot has quit (Remote closed the connection). 09:52:45 asiekierka, irc lines are terminated with CRLF 09:52:46 Now let me tinker around 09:52:53 according to http://www.irchelp.org/irchelp/rfc/chapter2.html#c2_3 09:53:04 http://www.irchelp.org/irchelp/rfc/chapter2.html#c2_3_1 to be specific 09:54:42 Wait, FIFO works like this: 09:54:44 I put a, then b 09:54:45 I get a, then b 09:54:47 right? 09:54:52 as in 09:54:55 i first put 09:54:58 then after putting a and b 09:55:07 i get two numbers, a and b 09:59:20 -!- kar8nga has joined. 10:02:22 I'm nearly done 10:03:21 Hmm 10:04:58 Hmm 10:05:11 oki, it terminates after a while with socat in the new version of my taxi script 10:05:45 http://rafb.net/p/1LPnJM86.html 10:05:46 Huh 10:07:02 "Making Taxi programs is just like playing with ROB the Robot. You must plan out EVERYTHING." 10:07:13 -!- edwardk has quit (Connection timed out). 10:07:45 Hmm? 10:07:54 It may prove that input fails 10:08:05 oh 10:08:06 i see 10:08:10 i forgot about the infiniloop 10:08:51 -!- asiekierka has quit (Read error: 54 (Connection reset by peer)). 10:09:09 -!- asiekierka has joined. 10:09:23 -!- taxibot has joined. 10:09:23 NOTICE AUTH :*** Looking up your hostname... - test no. 1 10:09:24 tick tock 10:09:28 YAAAY 10:09:32 yay, it WORKED! 10:09:35 yes yes, it worked 10:09:44 -!- taxibot has quit (Remote closed the connection). 10:10:38 -!- taxibot has joined. 10:10:38 NOTICE AUTH :*** Looking up your hostname... - test no. 1 10:10:38 -!- taxibot has quit (Client Quit). 10:10:43 Hooray 10:12:52 Now the one thing i need to do is comparisons. 10:14:25 -!- edwardk1 has quit (Read error: 110 (Connection timed out)). 10:14:54 -!- taxibot has joined. 10:14:54 NOTICE AUTH :*** Looking up your hostname... - test no. 1 10:14:54 -!- taxibot has quit (Client Quit). 10:14:59 Nope 10:15:01 oh well 10:15:08 lemme get to comparisons... finally 10:16:21 I'd need to ride to the gas station once and then though 10:27:35 -!- asiebot has joined. 10:27:37 TEST 10:27:52 Yayz. I just need to check for a uppercase P. 10:28:48 in PING? 10:29:02 asiekierka, I think there may be other data starting with P 10:29:05 like PRIVMSG 10:35:07 -!- GreaseMonkey has quit ("So, how much do you love noodles?"). 10:41:22 Oh, right. 10:41:38 But i'll then check for my header 10:41:39 By the way I notice that Taxi is a language where everything is calculated using side effects 10:41:40 or rather 10:41:44 the whole command: #hello 10:41:54 :P 10:42:12 A ping wouldn't have #hello 18 chars after "P"! 10:42:44 :P 10:43:00 also 10:43:04 an uppercase P in PRIVMSG 10:43:15 About pings, i don't need to worry yet 10:44:04 The thing i need to worry about is gas. 10:44:38 I'll throw PONGs in later 10:50:00 Haha 10:50:08 i rode a total of 386.91 miles on a message 10:50:24 asiekierka rocks PRIVMSG #esoteric : 10:50:26 asiekierka, you can easily handle fuel, just take two different numbers from Starchild, go to equals corner 10:50:33 it is a very short distance 10:50:48 or something similar 10:50:49 But i must convert the Chop Suey character to a number then 10:50:50 :( 10:51:01 asiekierka, err? 10:51:03 And Chop Suey is in the near-exact opposite corner of the city! 10:51:09 Nope 10:51:14 i need to parse the string with Chop Suey 10:51:17 Also 10:51:22 i handle gas by going to the Zoom Zoom 10:51:37 the distance from the Cyclone (where i am at one point) to the Zoom Zoom is one mile 10:51:41 The Underground 10:51:51 is near Chop Suey 10:52:00 Well, yes 10:52:02 it can discard ppl 10:52:14 Oh, right 10:52:19 Collator Express can discard too 10:52:33 Oh well 10:52:37 i don't need this by far 10:52:40 and that is near cyclone 10:52:50 But i'm not discarding at this point 10:52:53 and writers depot 10:53:01 I handle gas by going to the Zoom Zoom 10:53:20 since after one loop, i have ~18.5 gas and ~3 credits. 10:53:25 And this is enough to fill it 10:53:50 After the char processing (so where the message comes), i have 18.48 gas and 4.55 credits. 10:53:53 :) 10:54:06 And someone said yesterday that 0.07 credits/mile may not be enoguh 10:54:07 asiekierka, at writers depot make "b" and "a" , go to Collator Express 10:54:08 enough* 10:54:13 that should give some money 10:54:20 and result in no return 10:54:27 I'm not worrying about it 10:54:42 Konkating an 18-char string from Chop Suey already gives me a bit of money 10:54:49 and then i... throw it off at riverview bridge 10:55:02 asiekierka, that gives no money 10:55:05 I know 10:55:07 And i don't care 10:55:17 By handling gas i meant "tanking" 10:55:23 yes I know 10:55:29 And i don't care 10:55:36 asiekierka, I just suggested a money making scheme ;P 10:55:40 Yeah 10:55:47 that is close to zoom zoom 10:56:10 Well, also, it's at the point where i'd need to ride to Writer's Depot anyway 10:56:11 you can make similar schemes near go more too 10:56:19 so i can ride there for "#hello" 10:56:25 go to Zoom Zoom (by the way) 10:56:33 asiekierka, Writer's depot is close to Collectors express too 10:56:35 And do another konkat-chop suey ride to make moneyz 10:56:36 and close to Zoom 10:56:40 But i don't need to drop anyone then 10:56:44 ... Oh wait. 10:56:48 I... I see. 10:56:54 I see how this can work. 10:58:20 Going to Writer's Depot, pick up "#hello" and "a", go to Collator Express, put down my 18-char string then a, then go to Zoom Zoom, then go to Chop Suey, KonKat the 6 next letters, compare it at Crime Lab, if they're equal go to Writer's Depot for the output message, output it, and i'm going back to the loop. 11:01:02 yes, the plan worked 11:01:13 and made me ~0.62 credits 11:01:21 And now, for the final code stuff 11:01:37 And then, i may show the world the first Taxi bo 11:01:37 t 11:01:45 hm? 11:02:11 Yes, the first bot written in Taxi. 11:02:20 Which will just be able to say "Hello, World!" 11:02:21 but still 11:02:26 and only on #esoteric 11:02:29 and no ping responses 11:02:32 so it only works _HERE_ 11:02:36 but oh well 11:02:45 asiekierka, you want ping too 11:02:47 and so on 11:03:02 and several backup money making schemes depending on where in the city you are 11:04:20 asiekierka, really just making it say hello world isn't worth it 11:04:27 Not just saying 11:04:27 it needs to do two things: 11:04:30 saying it on command 11:04:32 1) PING PONG 11:04:32 As in 11:04:35 you say #hello 11:04:41 and it says Hello, World! 11:04:47 asiekierka, ok and it will need to check every line for that 11:05:03 what if you write a lot of short lines? 11:05:04 It checks every char for "P". I'd just need to make it check for "I" 11:05:22 If it doesn't find any char left, it waits for another string and splits it 11:05:25 chars* 11:06:58 charizard, matkaan! 11:07:12 I already lost interest in the Taxibot though 11:07:20 It's way too boring to make it work 11:07:25 But i'll complete it 11:08:12 asiekierka, next one: in RUBE? 11:08:28 augh, i don't want BPG 11:08:33 (irc)Bot Platform Games 11:08:37 haha 11:08:43 asiebot, warehouse paradigm 11:08:44 you mean 11:08:55 stop referring to me as asiebot 11:09:04 asiekierka, sorry, tab completion 11:09:29 -!- asiebot has changed nick to notasiebot. 11:09:35 whew 11:09:39 Now it should work 11:09:46 asiekierka, how did you do that? 11:09:52 i typed NICK notasiebot 11:10:07 asiekierka, where? Isn't STDIN connected to irc? 11:10:16 Yes it is 11:10:18 and in my nc console 11:10:26 nc? you mean socat? 11:10:32 Nope 11:10:33 Netcat 11:10:35 socat is for taxi 11:10:36 ah well 11:10:49 It just doesn't want to work on my machine a while later. I also noticed i must send anything in order to keep alive. Wait 11:10:52 asiekierka, you use both at once? 11:10:58 Can i pong irc.freenode.net "out of nothing"? 11:11:00 Just pong? 11:11:12 AnMaster, asiebot idles and i write taxibot 11:11:31 asiekierka, PONG foo.freenode.net where foo is current server name 11:11:44 oh 11:11:45 I seem to be on calvino.freenode.net for example 11:11:55 asiekierka, anyway that hack will still only work on freenode 11:11:58 Yes 11:12:03 most other ircds want you to do it properly 11:12:07 But #esoteric is only on freenode 11:12:14 and i already lost interest in adding PING/PONG 11:12:15 asiekierka, and so will freenode sometime soon 11:12:29 I lost interest in Taxibot. I said. 11:12:30 since they plan changing ircd 11:12:33 asiekierka, oh well 11:12:34 :( 11:12:36 So i'm just doing it for "doing it" 11:12:41 And i'll up the source 11:12:44 WARNING: it's already a mess 11:12:46 asiekierka, and RUBE irc bot would be fun 11:12:50 yeah 11:12:51 maybe 11:12:53 asiekierka, it *should* be a mess 11:12:56 -!- KingOfKarlsruhe has joined. 11:13:08 asiekierka, you would need to invent your own string handling though 11:14:01 I'd like char handling now 11:14:06 I don't want to think about string handling 11:14:07 NEVER! 11:14:17 I'd like char handling more at this point 11:14:38 Also 11:14:42 my code now loops forever 11:14:52 And now, Hello World Helloplentation. 11:20:54 Ok 11:20:58 One more bug to be fixed, possibly 11:22:33 Well, uh 11:22:40 it crashes on any other message than #hello 11:22:59 except if it's exactly 6 chars 11:23:19 No, that's it. 11:23:24 I'm putting it up for anyone to explore 11:23:45 http://rafb.net/p/xPsyiH46.html 11:23:47 MESS warnin 11:23:48 g 11:23:57 i'm not doing anything on it, i'm bored with it 11:24:58 Also unlike a real cellular automaton, RUBE supports rudimentary output functionality; input was planned, but has never been implemented. 11:24:59 Uh oh 11:25:02 no input...? 11:27:12 AnMaster? 11:27:18 ? 11:27:24 RUBE have input block iirc 11:27:40 RUBE II 11:27:45 RUBE II does 11:27:51 RUBE original has it marked as "planned" 11:28:00 ah rube II was what I meant then 11:28:21 Oh 11:28:25 i may make a RUBE II bot 11:28:27 RUBEot 11:28:30 Rubeot :D 11:28:37 just like fungot 11:28:38 asiekierka: fluid-let behaves the same as on-disk, but dammit, if it isn't 11:29:50 Now lemme try compiling it 11:30:10 -!- notasiebot has quit (Read error: 104 (Connection reset by peer)). 11:30:30 wow 11:30:32 it worked 11:30:32 :) 11:30:33 13:24:30 asiekierka: Also unlike a real cellular automaton, RUBE supports rudimentary output functionality; input was planned, but has never been implemented. <<< a real cellular automaton has output functionality?? 11:30:35 *-? 11:30:41 Nope 11:30:45 oh 11:30:47 *supports* 11:30:54 a real cellular automation is meant to be outputing by viewing it 11:30:54 :P 11:30:56 somehow i managed to read that as lacks. 11:32:37 oki 11:32:51 So now i can went on and make a rubeot 11:33:04 Wait, rube uses nybbles, right? 11:35:39 Also, lemme check PIET :) 11:35:56 PaIntEr's Tool 11:36:31 what io does pit have? 11:36:46 piet? 11:36:52 In/Out Number/Char 11:36:56 And it only has a stack 11:37:08 oksy 11:37:15 i must check other stuff 11:37:17 and find the best 11:37:17 would be fun if you could draw with it 11:37:20 graphical quine 11:37:47 yeah 11:38:06 But you can quine by outputting a PNG/BMP/RAW file which is equal to the contents of the piet program 11:38:38 yes but that's slightly less col. 11:38:40 *cool 11:39:16 Self-modifying Piet would be fun 11:48:39 -!- Slereah_ has joined. 11:50:46 -!- oepy has joined. 11:51:34 -!- oepy has quit (Read error: 104 (Connection reset by peer)). 12:01:01 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 12:01:14 -!- bsmntbombdood_ has joined. 12:07:10 asiekierka, hm... RUBE II should be fun to make a bot in 12:07:13 hellish hard yes 12:14:01 -!- jix has quit ("CommandQ"). 12:25:22 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 12:38:43 Hm considering we seem to get more and more CPU cores I think cellular automatons will be the programming languages that dominate in the future 12:39:24 after all a properly designed cellular automaton would be extremely easy to parallelise 12:40:33 not rube, since it is a bully automaton 12:40:39 but ones like game of life... 12:41:13 -!- bsmntbombdood_ has quit (Read error: 113 (No route to host)). 13:12:22 -!- oerjan has joined. 13:12:46 _Nyjorsk_? 13:12:55 * oerjan swats optbot ----### 13:12:56 oerjan: ... 13:13:26 the chinese and danish may do their own swatting 13:21:30 oerjan, when did it say "Nyjorsk"? 13:21:46 in the topic 13:22:08 oerjan: 'j' is the new 'n' 13:23:17 not in nynorsk it isn't 13:23:54 (but there is probably _some_ word where bokmål has n where nynorsk has j) 13:24:40 at least nynorsk tends to have more j's 13:28:51 I lost interest in Taxibot. I said. 13:28:57 how long of an attention span does that guy have?!?!??! 13:29:17 could you repeat that? 13:30:20 ehird: insufficient context... 13:30:32 what 13:30:42 i get oerjan's joke 13:30:42 but olsner what 13:31:21 olsner: context = just about all of today's logs, i think 13:31:35 basically 13:31:36 well, without knowing when he gained interest there's no telling what kind of attention span we're talking about 13:31:37 yesterday 13:31:45 he was all hyped up about a box written in Taxi 13:31:48 and spent ages on it blabbering 13:31:49 then 13:31:50 recently 13:31:51 today 13:31:59 well, that's longer than my average attention span 13:31:59 he spent hours asking AnMaster all about what he needed to know to make it and such 13:32:03 then just declared that he'd given up 13:32:07 right in the middle of asking AnMaster questions 13:32:15 with no justification 13:32:37 ehird: you mean you _don't_ have ADD? get thee out of #esoteric 13:32:42 ADD? 13:32:46 i do, probably 13:32:48 but 13:32:51 attention deficit disorder 13:32:54 asie doesn't just get bored quickly 13:32:58 oerjan, is that like ADHD? 13:32:59 asie blabs on for ages about how his idea is jesus 13:33:02 and bugs everyone 13:33:03 forever 13:33:03 or is it different? 13:33:03 usually attention dies with the realization that the problem is trivial (since you have asked enough to know how to do it, it's now become trivial...) which means it's boring 13:33:04 about it 13:33:06 and then immediately 13:33:07 out of the blue 13:33:10 says he's abandoned it 13:33:43 AnMaster: i don't know i guess ADHD contains ADD 13:33:49 oerjan, hm ok 13:33:56 no-one knows exactly what's what 13:34:24 seems it's a family of related similar problems 13:35:06 hm 13:35:18 just generally anything related to "bad" attention management (too much of it, too little of it, and usually in the wrong place) 13:35:29 And I usually can stay on one project for at least a week or two 13:35:33 And longer 13:35:42 problem is that I try to do too much at once 13:35:50 having too many current projects 13:36:23 I don't know what that would be called 13:37:07 -!- g0bl1n has joined. 13:37:28 hi, need some brainfuck help 13:37:40 :-P 13:37:41 hi 13:37:46 :) 13:37:57 then this should be the right place 13:38:09 userfriendly today was really funny heh 13:38:15 well, if on average you get 1/n work done on n projects I'd say you don't really have a problem 13:38:32 ++++++++++[>++++++++>+++++++++++>+++>+++++>++++++<<<<<-]>+++.>>>>+++++.<<<<---.-.>>++.>>++.<<<+.-----------.+.---.+++++++.+++++++++++.-.>.>.--..++++++++. 13:38:38 olsner, well, long term average yes 13:38:40 i think #(#)brainfuck is dead, isn't it? don't think i ever been there myself 13:38:44 i have this... is there anyway to optimize it ? 13:38:44 i usually get 1/n^2 work done on all project. 13:38:47 *projects 13:38:51 ^bf ++++++++++[>++++++++>+++++++++++>+++>+++++>++++++<<<<<-]>+++.>>>>+++++.<<<<---.-.>>++.>>++.<<<+.-----------.+.---.+++++++.+++++++++++.-.>.>.--..++++++++. 13:38:52 SAPO Codebits 2008 13:38:55 yes 13:38:59 which is when i put some of them in my todo list 13:39:09 wow, lots of conversations at once here 13:39:14 oklopol, so you have a huge todo list ? :) 13:39:16 I'm probably at 1/2^n or something like that 13:39:34 g0bl1n: yes, in which case i usually buy a new computer and erase the old todo list! :D 13:39:37 1/ackermann(n) here 13:39:46 oerjan, hehe 13:39:55 oerjan, except that takes 2 parameters iirc? 13:39:58 maybe wrong 13:40:01 oklopol, but if the todo list is in the cloud... pc may even burn... 13:40:09 you are the mathematician after all 13:40:15 AnMaster: sometimes 2, sometimes 3, so why not 1 13:40:24 oerjan, fair point 13:40:37 g0bl1n: there are lots of bf textgens 13:40:40 oerjan, so how do you define the one parameter version? 13:40:56 g0bl1n, optimise brainfuck? heh 13:41:12 -!- slereah has joined. 13:41:18 AnMaster, no, not that geezzz :) 13:41:20 g0bl1n: btw that brainfuck looks like the output of old egobot's txt2bf 13:41:21 -!- Slereah_ has quit (Read error: 113 (No route to host)). 13:41:29 time complexities in esoteric languages is an interesting subject, AnMaster 13:42:01 oklopol, well. yes. 13:42:03 which used a java genetic program 13:42:21 oklopol, can you direct me to some of those textgens ? 13:42:23 oerjan: most bf textgens use that exact same output style 13:42:46 g0bl1n: i'll just encourage you to do it yourself :D 13:42:50 g0bl1n, you could probably turn some of the longer ++++++ into loops 13:43:00 like ++[>++<-] 13:43:01 i doubt you could 13:43:04 AnMaster 13:43:04 AnMaster, that's precisely what i was pretending 13:43:05 or possibly m time spent on n projects, where m has no relation whatsoever to n 13:43:07 doesn't work 13:43:11 all cells are in use 13:43:13 g0bl1n: that one can be run longer as a standalone program, giving somewhat better optimization 13:43:19 iirc 13:43:27 if they weren't, all <'s and >'s would be <> 13:43:29 time is not an issue 13:44:04 g0bl1n, also some (most?) bf compilers optimise the code. Such as turning ++++ into "add 4" and similiar. 13:44:45 oklopol, also you could rearrange cells to get another one to do it 13:45:19 AnMaster, wouldn't that increase chars used, in this case ? 13:45:36 AnMaster: s/n/n,n/ in my ackermann i guess 13:45:50 oerjan, ah 13:46:28 g0bl1n, you mean memory? Yes 13:46:43 +++++++++++ = [-]+++[>+++<-]> Assuming you can destroy current cell and next cell. 13:46:50 ++[>++<-] increments 4 in that cell, right ? 13:47:13 g0bl1n, well it will use two cells, assuming the first one is 0 at the start it will end up with 4 in the cell after 13:47:24 yes 13:47:44 that is assuming both cells are 0 to start with 13:47:53 that's not shorter 13:47:56 exact same length 13:47:59 :) 13:48:05 oklopol, true, but for higher numbers it can be shorter 13:48:17 yes, but there are no higher numbers :) 13:48:22 maybe i can try using less cells, and more loops ? 13:48:49 g0bl1n, another idea that may be worth checking. How about wrapping downwards? Is that a shorter or longer path 13:49:01 considering you have wrapping unsigned 8-bit cells in bf 13:49:08 AnMaster, sorry, didnt understand 13:49:28 a single - is the same as 255 + after each other 13:49:48 in all major bf implementations at least 13:50:26 g0bl1n, see what I mean? 13:50:56 AnMaster: all the chars output are < 128 so i doubt wrapping will help here 13:51:02 oerjan, ah true 13:51:07 since most all of my used ascii codes are under 100, would it be good ? 13:51:13 g0bl1n, nop 13:51:19 :) 13:51:52 bf is great for brain_fucking !! great :) 13:51:56 real bf :) 13:52:54 g0bl1n, Sure there is nothing more you could move into initial loop? 13:53:32 like ? 13:53:41 apart from that It seems all +++++ or ----- sequences would be longer written as loops 13:53:52 i wonder if switching around the order of the cells might give a shorter program, because the text contains all upper case, then all lower case, then all numbers 13:53:58 seems so , doesnt it ? 13:54:16 good idea 13:54:20 and the >>>> used to pass between two different upper case cells seems a bit long 13:54:27 indeed 13:54:27 hm maybe 13:54:33 -!- Hiato has joined. 13:55:02 g0bl1n, also what does the message it printed mean? 13:56:00 this is an event, happening in November, a gathering of developers 13:56:23 SAPO is an ISP 13:56:26 hm 13:56:36 as internet servide provider 13:56:37 :) 13:56:51 yes, but why would they want to see brainf*ck 13:57:15 someone posted an idea to convert it to bf :) 13:57:22 hm ok 13:57:30 and now you are golfing it 13:57:32 :) 13:57:38 indeed :) 13:57:39 -!- habnabit has quit (Read error: 110 (Connection timed out)). 13:57:59 btw, why is it called "golfing". Seems pretty strange 13:58:24 because 13:58:28 you get to the hole (target program) 13:58:31 golfing as, the least chars one can get, like golf 13:58:32 in as litle puts as possible 13:58:33 i think 13:58:35 ah 13:58:37 real golf 13:58:39 makes sense 13:58:41 yep 13:58:44 here: 13:58:53 probem=hole 13:58:53 and 13:58:55 key STROKES 13:59:03 :) 13:59:05 -- http://www.golfscript.com/golfscript/ 13:59:13 but yeah that confused me too 13:59:35 I'm no huge golf fan so didn't think of that initially 13:59:47 the thing is, we all user severall languages, so what about reducing it to a least common denominator ? bf :) 14:00:03 golf is awesome 14:00:54 g0bl1n, nah, something like lambda calculus with output would be equally low common denominator but incompatible with bf 14:01:07 I like how anagolf steals the ICFP reward sentences in its language rankings: 14:01:09 [[Ruby is the programming tool of choice for discriminating golfers. 14:01:09 GolfScript is a fine programming tool for many courses.]] 14:02:04 ehird, I'd say RoR, not Ruby itself :) 14:02:08 D 14:02:09 :D 14:02:23 g0bl1n: Ugh. 14:02:29 Because everything is a web application. 14:02:36 Right? 14:03:31 RoR is becoming a no brainer. There are lots of RoR programmers that can barelly produce ruby code 14:03:57 how can i represent 2^6 in bf ? 14:04:16 g0bl1n: That is not a good thing, btw. 14:04:21 oh ok 14:04:25 And RoR is pretty awful as web frameworks go. :-P 14:04:28 As for 2^6, not sure 14:05:08 g0bl1n: see http://esoteric.voxelperfect.net/wiki/Brainfuck_constants 14:05:48 oerjan, that is cool, ty !! 14:06:39 oerjan: why not link tothe esolangs.org version? 14:07:06 http://esoteric.voxelperfect.net/forum/kareha.pl/1217593391/l50 <- "befunge compiler" 14:07:08 I am sceptical. 14:07:09 *skeptical. 14:07:44 i read it as esoteric.voxelperfect.net myself 14:07:56 oerjan: ::P 14:07:59 *:P 14:09:45 ahahaha 14:09:48 the compiler just bundles the interp 14:10:22 so no JIT? 14:10:22 -!- slereah has quit (Read error: 113 (No route to host)). 14:10:26 nope 14:12:13 oh there is an RSS feed for the forum 14:12:21 -!- Slereah_ has joined. 14:12:33 maybe i can actually get to read it regularly then 14:14:22 oerjan: Nobody ever posts. 14:14:33 they sometimes do 14:14:40 Thread #5 is from -06-. (Not emphasis, incomplete date format.,) 14:14:41 not often, but sometimes 14:14:59 Thread 10 is from 2007-10-. 14:15:42 and RSS might help remind me that it exists, and if everyone did that perhaps there would be more posts 14:15:54 *epy 2/2 14:16:14 -!- oepy has joined. 14:16:17 *epy dir(unset) 14:16:18 ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] 14:16:39 *epy unset.func_globals 14:16:39 {'__builtins__': , '__name__': '__main__', '__file__': 'onelineesobot.py', '__doc__': None} 14:16:41 *epy unset.func_globals['__im'+'port__'] 14:16:42 KeyError: '__import__' 14:16:49 *epy unset.func_globals['__builtins__']['__im'+'port__'] 14:16:50 TypeError: 'module' object is unsubscriptable 14:16:58 *epy unset.func_globals['__builtins__'].__getattr__('__im'+'port__') 14:16:59 AttributeError: 'module' object has no attribute '__getattr__' 14:17:04 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:17:05 14:17:07 lol 14:19:33 -!- kar8nga has quit ("Leaving."). 14:20:30 * oerjan hopes it will work better than the OOTS feed 14:23:49 -!- oepy has quit (Remote closed the connection). 14:24:34 -!- oepy has joined. 14:24:42 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:24:42 14:24:47 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__')('sys') 14:24:47 14:24:50 f 14:24:52 -!- oepy has quit (Remote closed the connection). 14:25:44 -!- oepy has joined. 14:25:45 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:25:46 14:25:48 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__')('sys') 14:25:48 14:25:54 . 14:25:57 -!- oepy has quit (Remote closed the connection). 14:26:44 -!- oepy has joined. 14:26:49 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:26:49 NameError: global name 'f' is not defined 14:27:33 -!- oepy has quit (Remote closed the connection). 14:27:43 -!- oepy has joined. 14:27:44 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:27:45 NameError: global name 'f' is not defined 14:27:50 F 14:29:51 -!- oepy has quit (Remote closed the connection). 14:29:56 -!- oepy has joined. 14:30:02 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:30:02 -!- oepy has quit (Remote closed the connection). 14:30:08 I defined your mom last night 14:30:36 -!- oepy has joined. 14:30:37 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:30:38 NameError: global name 'f' is not defined 14:31:33 -!- oepy has quit (Remote closed the connection). 14:31:42 -!- oepy has joined. 14:31:43 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:31:44 TypeError: f() takes exactly 4 arguments (3 given) 14:32:36 -!- oepy has quit (Remote closed the connection). 14:32:46 -!- oepy has joined. 14:32:47 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__') 14:32:48 14:32:51 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__')('sys') 14:32:52 14:32:54 nooo 14:32:56 -!- oepy has quit (Remote closed the connection). 14:33:17 -!- oepy has joined. 14:33:20 *epy unset.func_globals['__builtins__'].__getattribute__('__im'+'port__')('sys') 14:33:21 14:33:47 *epy __import__ 14:33:47 14:33:55 *epy __import__('a') 14:33:56 ImportError: No module named a 14:35:14 *epy ((lambda: 2)(), 3)[1] 14:35:14 3 14:35:22 *epy ((lambda: 2)(), 3)[1] 14:35:23 3 14:35:50 *wpy __import__ 14:35:52 *epy __import__ 14:35:53 14:35:55 *epy __import__ 14:35:56 14:35:59 *epy __import__('a') 14:36:00 ImportError: No module named a 14:36:03 -!- oepy has quit (Remote closed the connection). 14:36:14 -!- oepy has joined. 14:36:17 *epy __import__('a') 14:36:18 ImportError: No module named a 14:36:43 -!- oepy has quit (Remote closed the connection). 14:37:01 -!- oepy has joined. 14:37:16 *epy __import__('a') 14:37:16 TypeError: vars() argument must have __dict__ attribute 14:37:27 -!- oepy has quit (Remote closed the connection). 14:37:41 -!- oepy has joined. 14:37:47 *epy __import__('a') 14:37:47 ImportError: No module named a 14:38:10 *epy dir(__import__) 14:38:11 ['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__str__'] 14:38:18 *epy compile('a') 14:38:19 TypeError: compile() takes at least 3 arguments (1 given) 14:38:23 *epy compile('a', '', 'expr') 14:38:23 ValueError: compile() arg 3 must be 'exec' or 'eval' or 'single' 14:38:30 *epy dir(compile('a', '', 'eval')) 14:38:31 ['__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames'] 14:43:53 *epy 'c'.fail 14:43:56 AttributeError: 'str' object has no attribute 'fail' 14:44:13 oerjan: trying to fix this 14:44:13 :-P 14:44:19 right now you can wipe my home dir 14:47:29 -!- oepy has quit (Remote closed the connection). 14:48:27 what i need is a proper Death Ray Satellite, so that i can wipe your _home_ 14:49:10 I am a physicist, oerjan 14:49:13 Let's work on that 14:49:18 oerjan: yes 14:49:21 then i will eat your home. 14:49:23 for i am a snake. 14:49:34 pesky mad biologists 14:49:50 Are you... A PYTHON? 14:54:22 clearly a home viper 14:59:54 VIPPER 15:09:17 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Sukoshi is *firmly* a Lisp girl, anyways.. 15:45:02 -!- M0ny has joined. 15:45:05 -!- kar8nga has joined. 15:45:30 -!- Hiato has quit ("Leaving."). 15:45:30 -!- Mony has quit (Read error: 110 (Connection timed out)). 15:45:30 -!- g0bl1n has quit ("Leaving"). 17:05:03 -!- bsmntbombdood has joined. 17:05:04 -!- Slereah_ has quit. 17:08:51 -!- kar8nga has left (?). 17:16:55 -!- Slereah_ has joined. 23:53:44 -!- clog has joined. 23:53:44 -!- clog_ has joined.