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