←2008-05-03 2008-05-04 2008-05-05→ ↑2008 ↑all
00:10:48 -!- ehird has quit (Read error: 113 (No route to host)).
00:16:13 -!- Deformati has quit (Read error: 110 (Connection timed out)).
00:17:47 -!- Deformati has joined.
00:21:48 -!- Slereah_ has joined.
00:21:48 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:25:05 -!- jix has quit (Read error: 113 (No route to host)).
00:27:51 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:28:01 -!- Slereah has joined.
00:30:19 -!- Slereah_ has joined.
00:30:19 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:36:21 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:36:24 -!- Slereah has joined.
00:37:43 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:37:48 -!- Slereah has joined.
00:37:52 -!- Deformati has quit (Remote closed the connection).
01:21:49 -!- ihope has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]").
01:22:42 -!- Sgeo_ has joined.
01:32:25 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:33:23 -!- Sgeo_ has quit (Remote closed the connection).
01:36:36 -!- Sgeo has joined.
03:18:49 -!- Slereah_ has joined.
03:18:50 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
03:19:13 -!- GreaseMonkey has joined.
04:32:30 -!- Corun has quit (Read error: 110 (Connection timed out)).
04:35:30 -!- Corun has joined.
04:49:36 -!- Corun has quit ("This computer has gone to sleep").
06:24:41 -!- adu has joined.
06:36:45 -!- adu has left (?).
07:18:37 <bsmntbombdood> look at this hottie: http://www.codethinked.com/image.axd?picture=WindowsLiveWriter/TheProgrammerDressCode_10D17/John%20McCarthy_fecf8122-7b54-4ec0-80ed-8ba261337eaa.jpg
07:20:09 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:52:51 -!- Iskr has joined.
09:16:02 -!- Slereah has joined.
09:16:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
09:49:18 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
09:50:56 -!- Slereah has joined.
10:21:59 -!- GreaseMonkey has quit ("Unisex.").
11:09:04 -!- Slereah_ has joined.
11:09:07 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
11:14:06 -!- Slereah has joined.
11:14:06 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
11:18:56 -!- Slereah_ has joined.
11:18:56 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
12:43:19 -!- Slereah has joined.
12:43:19 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
13:12:18 -!- ehird has joined.
13:17:22 -!- oklopol has joined.
13:19:29 <ehird> oklopol: oKokokokokokokokokoko!!!
13:19:37 <ehird> andreou: reoreoreoreoreoreo
13:22:01 <oklopol> GKLYAAAA
13:22:30 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
13:22:37 -!- Slereah has joined.
13:23:04 <ehird> oklopol: akakak
13:48:54 <ehird> a
13:55:50 <oklopol> KAER
13:55:53 <oklopol> :)
13:56:17 <oklopol> trying to read the lojvan reference, a new interest in lalna is growing inside me
13:56:25 <oklopol> *lojban
13:56:37 <oklopol> going to change it to stack-based
13:56:46 <oklopol> stacks are perfect for human communication
13:57:14 <oklopol> somewhat object-oriented stack-based, GregorR would love this
14:12:32 -!- Corun has joined.
14:27:39 <ehird> oklopol: i hate you
14:27:40 <ehird> :)
14:47:06 <oklopol> you can globally specify a small stack limit if you have problems with it!
15:01:03 -!- Slereah_ has joined.
15:01:03 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
15:05:22 -!- Slereah has joined.
15:05:22 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
15:07:51 <ehird> oklopol: heh
15:07:59 <ehird> oklopol: make it stack-based, but reversed
15:08:05 <ehird> then we can at least lazily evaluate what people say
15:08:07 <ehird> instead of having to wait
15:13:37 <oklopol> reversed would make more sense, but i want a stack.
15:13:41 <oklopol> also
15:13:59 <oklopol> reversed is quite funny considering stack-based is often called reversed polish notation :P
15:14:04 <Deewiant> make it a deque and you can have both
15:14:11 <oklopol> of course reverse . reverse = identity
15:14:24 <oklopol> lol :D
15:17:51 -!- SimonRC_ has joined.
15:20:06 <ehird> it can be stacked oklopol
15:20:11 <ehird> just make the speech reversed
15:20:16 <ehird> so a computer evaluator would run it backwards
15:20:26 <ehird> but humans can understand the sentence incrementally
15:20:32 <ehird> instead of having to run a mental stack machine
15:23:00 <oklopol> wtf. does that mean
15:23:37 <oklopol> instead of <I> <you> *kill*, where <>=push and **=call, what would i say?
15:23:46 <oklopol> *kill* <you> <I>?
15:24:00 <oklopol> just reversing rpn is pn, with arguments reversed
15:24:48 <oklopol> it makes sense in that you usually want to specify what you're doing before telling what you're doing it to, because the main event is the most interesting thing
15:25:51 <oklopol> (you can do <kill> <I> <you> *call-2-deep*, though, if you want)
15:25:59 <ehird> oklopol: '2 2 +' becomes '+ 2 2'
15:26:05 <oklopol> so polish notation
15:26:07 <ehird> as a computer, you can execute it as push 2, push 2, do +
15:26:07 <oklopol> ?
15:26:08 <ehird> by reversing it
15:26:09 <ehird> oklopol: no
15:26:12 <oklopol> 8|
15:26:14 <ehird> just write a stack program
15:26:15 <ehird> and reverse it
15:26:23 <ehird> because all the concepts of /stack programming/ instead of just the /notation/ are there
15:26:35 <ehird> i.e. instead of a lisp program, it's like reversing a Joy program
15:27:22 <oklopol> polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize.
15:28:17 <oklopol> if you know another difference, tell me what it is instead of just saying "it's different, because i see it that way"
15:29:37 <ehird> <oklopol> polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize.
15:29:39 <ehird> wronngggg
15:29:47 <ehird> oklopol: write a lisp program
15:29:50 <ehird> then write a Joy program
15:29:52 <ehird> then, reverse the Joy program
15:30:01 <ehird> the Joy program is still fundamentally different from a Lisp program
15:30:07 <ehird> e.g. it still has 'dup' and 'dip' and all that shizz, for one
15:31:00 -!- SimonRC has quit (Read error: 111 (Connection refused)).
15:31:21 <oklopol> 5 2 dup + - => - + dup 2 5 <<< nothing wrong with this as polish notation
15:32:08 <oklopol> it's just you need to have pretty weird semantics for stuff once you do stack operations
15:32:22 <ehird> oklopol: well, yeah
15:32:26 <ehird> it's polish notation KINDA
15:32:26 <oklopol> mainly because arity cannot be done at parse time
15:32:28 <ehird> but even so
15:32:30 <oklopol> well, yeah.
15:32:34 <ehird> it's not what you'd think of
15:32:38 <ehird> when you thought polish notation
15:33:13 <oklopol> well, polish notation and rpn might specify that arity need be known at parse time
15:33:24 <oklopol> dunno, i just think of them as guidelines
15:34:56 <oklopol> anyway, the whole point with polish notation is it's not incremental
15:36:17 <ehird> oklopol: ok, but compare: 'you hello', 'hello you'
15:36:21 <ehird> the latter is more useful as a human
15:36:30 <ehird> because you know that something is about to be greeted
15:36:33 <ehird> and then you get more information: it's you
15:36:33 <oklopol> and i'm not allowing direct stack manipulation all that easily, the point is that you *can* run a mental stack maching
15:36:34 <ehird> whereas
15:36:37 <ehird> with the other one,
15:36:43 <ehird> you have to keep in mind that something about you is being said
15:36:48 <ehird> and then learn that it's a greeting
15:36:52 <ehird> which is more confusing
15:36:58 <oklopol> no it isn't
15:37:21 <oklopol> *machine
15:37:32 <ehird> oklopol: in a complex sentence it is :)
15:37:36 <ehird> you build up a stack of stuff in your head
15:37:41 <ehird> and then it gets shuffled to hell when you find the verbs
15:38:40 <oklopol> yes
15:39:17 <ehird> which is frustrating
15:39:24 <oklopol> it's true it's hard to keep in mind what the stack contains without knowing what it's use for
15:39:33 <oklopol> this is a good thing
15:40:24 <oklopol> frustrating? 1. your mother is frustrating 2. nothing is frustrating, things can only be challenging or impossible
15:41:52 <oklopol> hmmm, perhaps what i'm saying would make more sense if i explained a bit what the whole reason for stack-basedness was
15:42:34 <oklopol> humans have trouble storing the contents of the stack exactly because most natural languages don't require you to.
15:42:50 <oklopol> i want to try to change this, for myself.
15:43:21 <oklopol> would mean a lot easier mental calculation for instance, to get a stack working naturally.
15:45:15 <oklopol> there are ways to link pieces, mentally, well enough not to be forgotten for ages
15:45:23 <ehird> oklopol: shit, you just called my mother nothing
15:45:24 <ehird> indirectly
15:45:25 <oklopol> all you have to do is find a link you will definitely remember
15:45:25 <ehird> that's clever
15:45:35 <oklopol> this is very, very easy.
15:45:39 <oklopol> now
15:46:01 <oklopol> i read a book about these techniques, and have been using them for learning lojban vocab etc.
15:46:26 <oklopol> but i've been thinking, i might start writing a book from a programmers point of view later on
15:46:32 <oklopol> because the fun thing about links is
15:46:39 <oklopol> that you can make data structures with them
15:46:46 <oklopol> permitting something like a stack easily.
15:47:11 <oklopol> the idea is, there are ways to "hash" an object mentally, and two hashes can easily be linked.
15:47:33 <oklopol> this can be used to create arbitrary graphs, so you can explicitly memorize any data structure
15:48:36 <ehird> oklopol: memorize E80
15:48:54 <oklopol> ehird: indeed i did, in a stack-based fashion, first introducing your mother, then telling what she is, using a set as a variable.
15:49:05 <oklopol> so you indirectly just told me stack-based = clever
15:49:10 <oklopol> that's clever.
15:49:19 <oklopol> ehird: why?
15:49:25 <oklopol> also, too short to need memorizing
15:49:57 <ehird> oklopol: because E80 is huge
15:49:58 <ehird> :P
15:50:09 <ehird> bah maybe it's not e80
15:50:11 <ehird> whatever it's called
15:50:43 <ehird> oklopol: The lie algebra thingy
15:50:58 <oklopol> i will talk more about the subject of memorization once i'm good at it myself, which might take a while as i'm lazy as hell
15:51:04 <oklopol> ehird: doesn't ring a bell
15:51:13 <ehird> oklopol: here
15:51:14 <ehird> http://en.wikipedia.org/wiki/E8_%28mathematics%29
15:51:56 <oklopol> ah
15:51:59 <oklopol> awesome
15:52:12 <ehird> oklopol: yeah
15:52:15 <ehird> 248 dimension represent
15:52:22 <ehird> "There is a Lie algebra En for every integer n≥3, which is infinite dimensional if n is greater than 8."
15:52:28 <ehird> memorizing an infinite dimensional structure would be cooler
15:52:33 <ehird> but slightly less, well, possible
15:54:59 <oklopol> is tha so?
15:55:02 <oklopol> *that
15:55:16 <oklopol> i think complex dimension just has to do with the graph's structure
15:55:30 <oklopol> but i don't really know, i was not aware of any of this.
15:56:31 -!- ehird has set topic: security by obscupromiscuity | http://tunes.org/~nef/logs/esoteric.
15:56:39 <ehird> oklopol: i have no idea
15:56:44 <ehird> but e8 is totally bitchin'
15:57:03 <oklopol> heh, sure
16:12:41 -!- SimonRC has joined.
16:21:00 -!- Slereah_ has joined.
16:22:44 -!- ehird has set topic: security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:22:50 <ehird> i suggest we invent silly terms and put them in a topic
16:22:55 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
16:22:57 <ehird> just add another | and put it before the log links
16:24:12 -!- Corun has joined.
16:24:22 <oklopol> o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric
16:24:27 -!- oklopol has set topic: o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:24:28 <oklopol> i mean
16:25:06 -!- SimonRC_ has quit (Read error: 110 (Connection timed out)).
16:25:09 <ehird> i said AFTER
16:25:10 <ehird> :(
16:25:13 <ehird> haha
16:25:19 -!- ehird has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric.
16:25:29 <oklopol> well i just read "topic" and "add"
16:39:02 -!- Slereah has quit (Read error: 110 (Connection timed out)).
17:42:29 <ehird> you know what sucks about irc bots
17:42:39 <ehird> they have to do a huge linear search each message that comes through
17:42:43 <ehird> for regexp matches and similar
17:42:44 <ehird> that sucks
17:49:59 <oklopol> umm... k
17:50:04 <oklopol> why does that suck?
18:04:44 <ehird> oklopol: if you have a lot of commands
18:04:50 <ehird> then the linear matching is slow
18:06:54 <oklopol> :|
18:07:03 <oklopol> usually, people have a prefix
18:07:07 <oklopol> well, bots
18:07:57 <oklopol> if the bot designer uses a complex regexp to determine whether something is a command or not, thats their problem
18:08:36 <oklopol> but, unless you're using a 20-year-old computer, you cannot be on enough channels to have any trouble even with non-trivial regexps
18:09:56 <ehird> oklopol: um, i mean like ones which match on messages
18:10:05 <ehird> like 'botname!' makes the bot 'sender!'
18:10:10 <ehird> if you are a plugin-based bot
18:10:14 <ehird> then you can only do that via regexps, really
18:10:22 <ehird> so you have to run a potentially huge list of regexps on every message
18:11:06 <oklopol> i have no idea what you mean by "botname!" makes the bot "sender!"
18:17:54 -!- Corun has quit ("Leaving").
18:18:08 -!- Corun has joined.
18:18:29 <ehird> oklopol: like if i had a bot claled foo
18:18:30 <ehird> <user> foo!
18:18:32 <ehird> <foo> user!
18:19:55 <oklopol> so you have to do up to len(botnick)+1 checks to know if the user calls out your name? god, how can a modern computer manage
18:25:19 <ehird> oklopol: I don't think you've read what I said.
18:25:29 <ehird> If you don't build that in to the very core
18:25:32 <ehird> and instead have it as a plugin
18:25:36 <ehird> the only sane way to do it will be a regexp
18:25:41 <ehird> Pile on many plugins
18:25:47 <ehird> and you're doing over 100 regexp checks each line
18:27:36 <oklopol> ...doing that with a regexp is more than 4 checks?
18:29:26 <oklopol> if it has to find any occurrance of foo! in the message, that basically means it has to read all len(botname)+1 substrings... so basically once pass over each message
18:29:47 <oklopol> i have no idea what your point is, but indeed, perhaps i'm just not reading what you say.
18:31:14 <ehird> oklopol: you're not
18:31:57 <oklopol> k
18:33:41 <oklopol> anyway, you are correct in that if you make your computer do the work of optimizing the regexp matching, it may not be optimal, although probably fast enough
18:34:00 <oklopol> and if you insist on using general regexps where you could just search for static strings
18:34:31 <oklopol> which would mean just one pass over the string, and would be trivial to code, even as a generic version
18:34:34 <ehird> not insist, oklopol
18:34:42 <ehird> Show me a good way to do it your way in a plugin based system :-
18:34:44 <ehird> *:-)
18:35:12 <oklopol> "good"? meaning it should do static searches especially fast?
18:35:37 <oklopol> it's trivial to built a tree from the affices or smth, and just pass once over the message
18:36:13 <oklopol> although i see no problem with doing 100 regexp checks per line. nothing sucks with that imo
18:39:40 <oklopol> and are you assuming a regex motor that can't optimize for multiple search patterns at once?
18:40:10 <oklopol> naturally a good one should provide that
18:40:38 <ehird> oklopol: sure, it's fine if you use something which doesn't exist.
18:41:19 <oklopol> no such regex motor exists?
18:42:44 <oklopol> anyway, i don't see how what exists has anything to do with making an irc bot, just make one yourself, regexes aren't hard to match on
18:44:20 <ehird> oklopol: no such regex motor exist.
18:44:21 <ehird> s
18:44:29 <ehird> also .. you make me giggle
18:44:42 <oklopol> how so?
18:44:43 <ehird> regexes are easy... but only simple ones
18:44:45 <ehird> e.g. backtracking
18:44:50 <ehird> and backreferences
18:45:00 <ehird> heck, embedded evaluation
18:45:08 <oklopol> i recall making a regex matcher in c in 5 hours before i knew what parsing was
18:45:12 <oklopol> hmm
18:45:22 <oklopol> why would you allow that for an irc bot plugin?
18:45:24 <ehird> oklopol: modern regexps are very powerful
18:45:26 <ehird> and useful
18:45:33 <ehird> some are even TC
18:47:00 <oklopol> well i don't see your concern, if you insist on using modern regexps even though they don't have support for your need, you're just making things hard for yourself
18:47:23 <oklopol> but you can make static strings separate cases and handle them yourself or smth
19:00:39 <ehird> oklopol: anyhoo as you can guess
19:00:42 <ehird> endeavour is coming <3
19:01:22 <oklopol> tell me more
19:05:45 <ehird> oklopol: it will be endeavouricious
19:22:05 <ehird> oklopol: hmm properly nested quotes are parsable aren't they
19:22:06 <ehird> that is
19:22:12 <ehird> "abc'd"foo"ef'ghi"
19:22:14 <ehird> instead of
19:22:18 <ehird> 'abc'd'foo'ef'ghi'
19:27:46 -!- oerjan has joined.
19:32:08 <oklopol> ehird: yes, they are
19:32:39 <ehird> oklopol: write a parser
19:32:39 <ehird> :3
19:32:52 <oklopol> :|
19:32:56 <oklopol> well... sure
19:33:08 <ehird> "abc'd"foo"ef'ghi" --> ["abc",["d",["foo"],"ef"],"ghi"]
19:33:21 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | http://tunes.org/~nef/logs/esoteric.
19:41:09 <oklopol> http://www.vjn.fi/pb/p125315136.txt
19:41:38 -!- Sgeo has joined.
19:41:46 <oklopol> first made it agglomerate, but thought that might be better and removed it
19:43:17 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | you will be agglomerated | http://tunes.org/~nef/logs/esoteric.
19:43:40 * oerjan is slightly disappointed that the word actually exists though
19:44:03 <ehird> oklopol: TypeError: append() takes exactly one argument (0 given)
19:44:08 <oklopol> hmm
19:44:11 <oklopol> what did you use?
19:44:18 <ehird> oh wait
19:44:20 <ehird> it was a copypaste error
19:45:18 <oklopol> http://www.vjn.fi/pb/p342464244.txt <<< original agglomerative version, although you prolly could've added that yourself just as easily as i pressed ctrl+z
19:45:25 -!- oerjan has set topic: o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | http://tunes.org/~nef/logs/esoteric.
19:47:14 <oklopol> ehird: does it work? i didn't really debug, just checked with a few trivial ones
19:47:23 * Sgeo is prepared to destroy the Universe with BOREDOM!
19:47:40 <oerjan> Sgeo: that is already being done
19:47:58 <Sgeo> hm?
19:48:10 <ehird> oklopol: you need a join
19:48:12 <oerjan> _very_ slowly
19:48:21 <oklopol> ehird: where?
19:48:43 <Sgeo> I'm SO boring trying to count the number of digits in 19!!! that I accelerate the Heat Death of the Universe!
19:48:56 <ehird> oklopol: it kinda works:
19:49:02 <ehird> >>> parse_em(x)
19:49:02 <ehird> [[['a', 'b', 'c', ['d', ['f', 'o', 'o'], 'e', 'f'], 'g', 'h', 'i']]]
19:49:13 <oklopol> yeah that's the non agglomerative one
19:49:19 <oerjan> is that factorial iterated thrice?
19:49:20 <oklopol> but i also pasted the original
19:49:52 <Sgeo> oerjan, of course
19:50:22 <ehird> 19!.!.!
19:51:03 <oerjan> could be awkward
19:52:02 <ehird> imagine trying to pronounce !.!.!.
19:52:09 <oklopol> ehird: is it correct?
19:52:28 * oerjan thinks Bill the Cat would pronounce it perfectly
19:52:29 <ehird> oklopol: well, yes.
19:52:34 <oklopol> good
19:52:45 <ehird> oerjan: I guess it'd be "chk. chk. chk"
19:53:03 <ehird> (from the band named !!!, which is "chkchkchk" (well, any percussion sound - so "pewpewpew" would work too, but ...))
19:53:46 <oerjan> pewtering nonsense...
19:55:30 <ehird> pewpewpewtering nonsense
20:00:11 <oerjan> pew^{19!!!}tering nonsense
20:02:53 <Deewiant> hm, the number of digits in 19!!!... loggamma(1 + exp(4.66 * 10^18)) / log(10)... that's pretty big :-/
20:06:09 <ehird> Deewiant: heh
20:06:13 <ehird> A(g_64,g_64)!!!
20:06:20 <Deewiant> >_<
20:06:52 <oerjan> those !!! are sort of insignificant
20:07:31 <oerjan> as in, adding 1 to any of the g_64's is likely to make much more of a difference
20:08:54 <Deewiant> Σ(A(g_64!,g_64!))
20:10:34 <oerjan> and i would guess changing 64 to 65 is far better than adding ! to g_64
20:10:48 <Deewiant> I forget how it's defined
20:11:07 <Deewiant> but I'll humor you
20:11:08 <oerjan> and what's the ?
20:11:22 <Deewiant> Σ(A(g_(exp(64))!,g_(exp(64))!))
20:11:30 <Deewiant> I guess your font can't handle it
20:11:31 <Deewiant> it's a sigma
20:11:42 <oerjan> um i don't think yours can either
20:11:53 <Deewiant> how's that?
20:11:58 <oerjan> because it doesn't show up in the logs
20:12:17 * oerjan always checks the logs when he suspects unicode
20:12:24 <Deewiant> it shows up fine in the logs here :-P
20:12:32 <Deewiant> maybe your font can't handle the logs
20:12:41 <oerjan> which logs?
20:12:48 <Deewiant> http://tunes.org/~nef/logs/esoteric/08.05.04
20:13:18 <oerjan> hm weird ircbrowse didn't get it
20:13:18 -!- timotiis has joined.
20:14:19 <oerjan> mind you if that Sigma is a sum sign then it doesn't fit there
20:15:03 <oerjan> no bounds or index to sum over
20:15:12 <Deewiant> it's for the busy beaver function
20:22:12 <Sgeo> what's 4.66 doing in Deewiant's expression?
20:22:32 <Deewiant> loggamma(19! + 1)
20:22:40 <Deewiant> is approximately 4.66 * 10^18.
20:32:35 <ehird> oerjan: works here
20:33:26 <oerjan> it showed up for me on tunes.org too
20:34:51 <ehird> oklopol:
20:34:52 <ehird> {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7de0c58>, [<function ping at 0xb7db995c>]), (<_sre.SRE_Pattern object at 0xb7deb400>, [<function hello at 0xb7db9924>]), (<_sre.SRE_Pattern object at 0xb7e07560>, [<function hello at 0xb7db9924>]), (<_sre.SRE_Pattern object at 0x81af6c8>, [<function test at 0xb7db9994>]), (<_sre.SRE_Pattern object at 0x81b0120>, [<function test at 0xb7db9994>])]}}
20:34:58 <ehird> i am writing an UNGODLY module system :
20:35:01 <ehird> *:O
20:35:06 <ehird> sane, unlike AnMaster's :P
20:37:41 <oklopol> medium?
20:38:34 <ehird> oklopol: priorities
20:38:36 <ehird> high,medium,low
20:38:43 <ehird> high gets executed then medium then low
20:38:52 <oklopol> okay.
20:39:02 <oerjan> and ungodly system requires a medium. that much is obvious.
20:39:02 <oklopol> why a list of functions for a pattern?
20:39:04 <oerjan> *an
20:39:17 <oklopol> oerjan: lol @ fun
20:39:18 <ehird> oklopol: because you might have multiple functions under the same pattern? :P
20:39:24 <ehird> It's a relic from the days pr-
20:39:25 <ehird> Hey thanks
20:39:27 <oklopol> hmmhmm
20:39:29 <ehird> I can clean up my code bigtime
20:39:29 <ehird> <3
20:39:32 <ehird> You just found a way
20:39:33 <ehird> haha
20:39:43 <ehird> oklopol: but here's what a module looks like
20:39:43 <oklopol> removing it?
20:39:43 <ehird> http://rafb.net/p/xFOvII72.html
20:39:55 <ehird> that will make the regular command syntax work
20:39:56 <ehird> with any prefix
20:39:58 <ehird> '.hello x'
20:40:00 <ehird> and '.hi x'
20:40:02 <ehird> and
20:40:04 <ehird> 'abc!'
20:40:08 <ehird> where abc = bot name
20:40:09 <ehird> responds
20:40:13 <ehird> ($nickname is a special placeholder)
20:40:15 <ehird> and the last one
20:40:15 <ehird> matches
20:40:18 <ehird> abc: hello x
20:40:22 <ehird> abc, goodbye x
20:40:22 <ehird> etc
20:47:17 -!- Slereah has joined.
20:47:50 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
20:48:44 <ehird> oklopol:
20:48:46 <ehird> {'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7dd6e78>, <function ping at 0xb7db4924>), (<_sre.SRE_Pattern object at 0xb7de5400>, <function hello at 0xb7db48ec>), (<_sre.SRE_Pattern object at 0xb7e01560>, <function hello at 0xb7db48ec>), (<_sre.SRE_Pattern object at 0x81af658>, <function test at 0xb7db495c>), (<_sre.SRE_Pattern object at 0x81b0258>, <function test at 0xb7db495c>)]}}
20:50:20 <ehird> oklopol: so which bit of endeavour should i code next. ????
20:58:18 <oklopol> i recommend using a dice to decide that for you
20:58:33 <oklopol> DICidE <<< that's where they took the word
21:00:50 <ehird> oklopol: well, it's open-ended
21:00:55 <ehird> wanna see my module implementation?
21:00:57 <ehird> it uses import internals
21:00:59 <ehird> and crazy stuff
21:01:10 <ehird> basically, it lets you write a module like the one i linked
21:01:17 <ehird> and finds out what bits of the module are commands
21:01:19 <ehird> etc.
21:01:23 <ehird> and then extracts them
21:01:25 <ehird> into a Module object
21:01:31 <ehird> which can be bound and unbound to a bot
21:01:55 <ehird> oklopol: http://rafb.net/p/W55y8x46.html
21:01:59 <ehird> self.commands = {} # {priority ('low','medium','high') =>
21:01:59 <ehird> # {irc command or * => [(regexp, func)]}}
21:02:03 <ehird> that's how it represents commands
21:02:09 <ehird> it's pretty universal
21:02:23 <ehird> at the very base, you can match on command = * regexp = .*
21:02:25 <ehird> and use the raw text given
21:02:51 <ehird> oklopol: cool or not
21:04:47 <ehird> oklopol: y/n
21:04:53 <oklopol> hmm
21:05:10 <oklopol> well, probably y.
21:05:17 <ehird> oklopol: read it
21:05:18 <ehird> it's awesome
21:05:21 <oklopol> soon, soon :D
21:05:33 <ehird> _digest_command is a method of epic proportions
21:05:36 <ehird> it handles >>everything<<
21:05:54 <ehird> i screamed a lot when writing it, that commands dictionary can get gnarly
21:09:27 <oerjan> sounds like it needs a sidekick
21:10:11 <ehird> woot, just fixed loads of bugs in it
21:10:13 <ehird> it is wooty now
21:23:53 * Sgeo considers writing a kernel module to allow userspace programs to use panic()
21:25:23 <ehird> Sgeo: oh lord, you are writing kernel modules already?
21:25:32 <Sgeo> I want to learn how
21:25:32 <ehird> nobody install anything by sgeo he wrote his first c program a few days ago
21:25:44 <ehird> Sgeo: you can't write a kernel module a few days after tapping out a hello world
21:26:02 <Sgeo> I can certainly try, though
21:26:35 <ehird> Sgeo: You still don't understand anything about C -- I can guarantee it, nobody does after a few days
21:26:42 <ehird> kernel programming is a TOTALLY different level
21:26:57 * Corun agrees
21:27:09 * Corun has been programming C for quite a while
21:27:21 * oerjan suddenly gets a flashback to Superman 3
21:28:04 <oerjan> a very vague one, mind you
21:28:27 <Corun> And I wanted to write a driver in the linux kernel a few days ago, and, I mean, it's like the difference between a flying game that you can control with a keyboard and an actual jet
21:30:08 <Corun> (This is _years_ I've been doing C for :-))
21:30:16 * oerjan wonders if anyone has attempted to equip an actual jet with a keyboard interface
21:30:21 <Corun> Heh
21:31:05 <Corun> "Let's see... lock on.. that'd be enter.. Ok, I'm locked on... and... fire? Oh! space, of course" FWOOSH
21:33:29 <oklopol> FUCK I WAS HIT ESCAPE ESCAPE ESCAPE
21:35:02 <Sgeo> Surely there are kernel module tutorials?
21:37:23 <ehird> Sgeo: that's not gonna help you if you are not extremely experienced with c
21:37:29 <ehird> approximate bar
21:37:44 <ehird> [ | | ] <-- kernel programmer
21:37:47 <ehird> ^ you
21:38:34 <oklopol> all this talk about kerneling being hard is making me want to try
21:38:53 <ehird> oklopol: god no#
21:39:44 <oklopol> mind you i'm fairly experienced in c!
21:39:56 <oklopol> well c++
21:40:03 <oklopol> but what's the difference really ;;)
21:40:58 <ehird> heh
21:41:01 <ehird> night and day
21:41:01 <ehird> :)
21:42:51 <oklopol> i used the c subset for the most part, often just int(...) style casts :D
21:43:38 <Sgeo> int(...) style.. oh, using int(some_non_int) insead of (int)some_non_int ?
21:44:27 <oklopol> yes
21:45:46 <oklopol> my c++ was always quite weird, as you can probably guess if you've read my python
22:09:50 <ehird> oklopol: aa
22:21:22 <ehird> oklopol: i think i implemented ef's basic idea in haskell
22:21:24 <ehird> lala :: (Eq a) => (a -> a) -> a -> a
22:21:24 <ehird> lala f a = case f a of
22:21:24 <ehird> x | x == a -> a
22:21:24 <ehird> x -> lala f x
22:21:38 * Sgeo can't seem to compile this hello world
22:21:57 <ehird> Sgeo: You can't compile a hello world ... and you want to write a kernel module
22:21:59 <ehird> Corun: permission to mock?
22:22:21 <Sgeo> sgeo@ubuntu:~/c$ gcc -c -Wall -I /usr/src/linux-headers-2.6.20-15-386/include lkm_hello.c
22:22:24 <Sgeo> Is that correct?
22:22:28 <ehird> Sgeo: LOL
22:22:36 <ehird> No.
22:22:40 <ehird> But I won't tell you what's right because
22:22:51 <ehird> 1. the fact that you tried that shows that you really, really shouldn't be programming kernel-level
22:22:54 <ehird> 2. you shouldn't be anyway
22:23:06 <oklopol> ehird: lol :P
22:23:09 <Sgeo> Does it need to use the real source/
22:23:21 <ehird> Sorry, question quota exceeded.
22:24:41 <oklopol> ehird: that's fixed point, yes
22:24:57 <ehird> oklopol: but is it yours
22:25:07 <oklopol> yes
22:25:30 <Sgeo> What's wrong with me wanting to learn?
22:26:06 <oklopol> well, what do you mean by "mine"?
22:26:50 <oklopol> that's fixed point with the trivial observation f a = a => f (f a) = a
22:29:48 <Sgeo> ehird, is it that it needs to point to the place with real code?
22:29:53 <Sgeo> Or am I doing something else wrong?
22:33:00 -!- Iskr has quit ("Leaving").
22:35:27 <pikhq> ehird: From the sounds of it, he's just struggling to include the appropriate headers.
22:36:08 <pikhq> Although one will admit that Sgeo needs to grok C first.
22:36:29 <pikhq> (by "grok", I mean "be able to write the C spec from memory. . . And think that it's the most natural thing in the world.)
22:37:03 * pikhq would probably have a bit more success doing a kernel module. . .
22:37:13 <pikhq> But, then, I've been writing C for a few years. :p
22:39:04 <oklopol> i should do some c tomorrow
22:39:22 <pikhq> I should work on my kernel...
22:41:19 <Corun> Er, permission granted, ehird?
22:41:20 <Corun> :-P
23:03:52 -!- oerjan has quit ("leaving").
23:24:36 <ehird> back
23:25:30 <ehird> pikhq: Yeah, I think the fundamental difference between people who rock at C and people who don't, are that the rockers know that they suck
23:25:45 <ehird> and the people who don't think that they can learn how to not suck from a quick tutorial and that 'diving in' is a good approach :-)
23:25:53 <ehird> seen that very often
23:29:22 <oklopol> hmm... i never saw c as that complicated
23:29:48 <bsmntbombdood> c is fun!
23:30:23 <oklopol> bsmntbombdood: your mother is fun
23:30:31 <bsmntbombdood> oh really?
23:30:37 <bsmntbombdood> we should have a threesome sometime
23:30:47 <oklopol> you read my mind
23:30:58 <oklopol> she hot?
23:31:14 <bsmntbombdood> you should know
23:33:04 <oklopol> hmm... touche
23:36:26 <ehird> C is simple. just hard
23:37:48 <bsmntbombdood> not hard
23:38:25 <oklopol> whuz so hard about it?
23:40:02 <ehird> 1. philosophy
23:40:11 <ehird> 2. little nitty bits
23:47:39 -!- boily has joined.
23:52:00 <Sgeo> http://www.faqs.org/docs/kernel/x931.html oooOOO >.>
23:52:40 -!- boily has quit ("Schtroumpf!").
23:52:41 * Sgeo just said that to attempt to scare ehird >.>
23:56:53 <oklopol> i'm so gonna read that
23:57:11 <oklopol> looks so boring i'm guaranteed to pass out
←2008-05-03 2008-05-04 2008-05-05→ ↑2008 ↑all