< 1209859848 0 :ehird!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1209860173 0 :Deformati!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209860267 0 :Deformati!n=joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric < 1209860508 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209860508 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209860705 0 :jix!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1209860871 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209860881 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209861019 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209861019 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209861381 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209861384 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209861463 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209861468 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209861472 0 :Deformati!unknown@unknown.invalid QUIT :Remote closed the connection < 1209864109 0 :ihope!unknown@unknown.invalid QUIT :"ChatZilla 0.9.81 [Firefox 2.0.0.14/2008040413]" < 1209864162 0 :Sgeo_!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1209864745 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209864803 0 :Sgeo_!unknown@unknown.invalid QUIT :Remote closed the connection < 1209864996 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1209871129 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209871130 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209871153 0 :GreaseMonkey!n=saru@219-88-193-16.jetstream.xtra.co.nz JOIN :#esoteric < 1209875550 0 :Corun!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209875730 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1209876576 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1209882281 0 :adu!n=ajr@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1209883005 0 :adu!unknown@unknown.invalid PART #esoteric :? < 1209885517 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :look at this hottie: http://www.codethinked.com/image.axd?picture=WindowsLiveWriter/TheProgrammerDressCode_10D17/John%20McCarthy_fecf8122-7b54-4ec0-80ed-8ba261337eaa.jpg < 1209885609 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209887999 0 :clog!unknown@unknown.invalid QUIT :ended < 1209888000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1209891171 0 :Iskr!n=i@host199-18-dynamic.56-82-r.retail.telecomitalia.it JOIN :#esoteric < 1209892562 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209892566 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209894558 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209894656 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209896519 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Unisex." < 1209899344 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209899347 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209899646 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209899646 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209899936 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209899936 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209904999 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209904999 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209906738 0 :ehird!n=ehird@91.105.92.194 JOIN :#esoteric < 1209907042 0 :oklopol!n=nnscript@oklopol.yok.utu.fi JOIN :#esoteric < 1209907169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: oKokokokokokokokokoko!!! < 1209907177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :andreou: reoreoreoreoreoreo < 1209907321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GKLYAAAA < 1209907350 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209907357 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209907384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: akakak < 1209908934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1209909350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :KAER < 1209909353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1209909377 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :trying to read the lojvan reference, a new interest in lalna is growing inside me < 1209909385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*lojban < 1209909397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :going to change it to stack-based < 1209909406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :stacks are perfect for human communication < 1209909434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :somewhat object-oriented stack-based, GregorR would love this < 1209910352 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1209911259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i hate you < 1209911260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1209912426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can globally specify a small stack limit if you have problems with it! < 1209913263 0 :Slereah_!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209913263 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209913522 0 :Slereah!n=gtuilt@ANantes-252-1-92-249.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1209913522 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209913671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: heh < 1209913679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: make it stack-based, but reversed < 1209913685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then we can at least lazily evaluate what people say < 1209913687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of having to wait < 1209914017 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :reversed would make more sense, but i want a stack. < 1209914021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also < 1209914039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :reversed is quite funny considering stack-based is often called reversed polish notation :P < 1209914044 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :make it a deque and you can have both < 1209914051 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course reverse . reverse = identity < 1209914064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol :D < 1209914271 0 :SimonRC_!n=sc@bcast.grid-zero.net JOIN :#esoteric < 1209914406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it can be stacked oklopol < 1209914411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just make the speech reversed < 1209914416 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so a computer evaluator would run it backwards < 1209914426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but humans can understand the sentence incrementally < 1209914432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of having to run a mental stack machine < 1209914580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf. does that mean < 1209914617 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :instead of *kill*, where <>=push and **=call, what would i say? < 1209914626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*kill* ? < 1209914640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just reversing rpn is pn, with arguments reversed < 1209914688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209914751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(you can do *call-2-deep*, though, if you want) < 1209914759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: '2 2 +' becomes '+ 2 2' < 1209914765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so polish notation < 1209914767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as a computer, you can execute it as push 2, push 2, do + < 1209914767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1209914768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by reversing it < 1209914769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no < 1209914772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :8| < 1209914774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just write a stack program < 1209914775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and reverse it < 1209914783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because all the concepts of /stack programming/ instead of just the /notation/ are there < 1209914795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. instead of a lisp program, it's like reversing a Joy program < 1209914842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize. < 1209914897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you know another difference, tell me what it is instead of just saying "it's different, because i see it that way" < 1209914977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : polish == reversed stack, always. it's just with a stack high-order operations are easier to visualize. < 1209914979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wronngggg < 1209914987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: write a lisp program < 1209914990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then write a Joy program < 1209914992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then, reverse the Joy program < 1209915001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the Joy program is still fundamentally different from a Lisp program < 1209915007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. it still has 'dup' and 'dip' and all that shizz, for one < 1209915060 0 :SimonRC!unknown@unknown.invalid QUIT :Read error: 111 (Connection refused) < 1209915081 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :5 2 dup + - => - + dup 2 5 <<< nothing wrong with this as polish notation < 1209915128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just you need to have pretty weird semantics for stuff once you do stack operations < 1209915142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well, yeah < 1209915146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's polish notation KINDA < 1209915146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mainly because arity cannot be done at parse time < 1209915148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but even so < 1209915150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah. < 1209915154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not what you'd think of < 1209915158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when you thought polish notation < 1209915193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, polish notation and rpn might specify that arity need be known at parse time < 1209915204 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno, i just think of them as guidelines < 1209915296 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the whole point with polish notation is it's not incremental < 1209915377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ok, but compare: 'you hello', 'hello you' < 1209915381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the latter is more useful as a human < 1209915390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because you know that something is about to be greeted < 1209915393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then you get more information: it's you < 1209915393 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i'm not allowing direct stack manipulation all that easily, the point is that you *can* run a mental stack maching < 1209915394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whereas < 1209915397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with the other one, < 1209915403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to keep in mind that something about you is being said < 1209915408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then learn that it's a greeting < 1209915412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is more confusing < 1209915418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no it isn't < 1209915441 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*machine < 1209915452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: in a complex sentence it is :) < 1209915456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you build up a stack of stuff in your head < 1209915461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then it gets shuffled to hell when you find the verbs < 1209915520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1209915557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is frustrating < 1209915564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's true it's hard to keep in mind what the stack contains without knowing what it's use for < 1209915573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is a good thing < 1209915624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :frustrating? 1. your mother is frustrating 2. nothing is frustrating, things can only be challenging or impossible < 1209915712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm, perhaps what i'm saying would make more sense if i explained a bit what the whole reason for stack-basedness was < 1209915754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :humans have trouble storing the contents of the stack exactly because most natural languages don't require you to. < 1209915770 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i want to try to change this, for myself. < 1209915801 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would mean a lot easier mental calculation for instance, to get a stack working naturally. < 1209915915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there are ways to link pieces, mentally, well enough not to be forgotten for ages < 1209915923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: shit, you just called my mother nothing < 1209915924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :indirectly < 1209915925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all you have to do is find a link you will definitely remember < 1209915925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's clever < 1209915935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is very, very easy. < 1209915939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1209915961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i read a book about these techniques, and have been using them for learning lojban vocab etc. < 1209915986 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i've been thinking, i might start writing a book from a programmers point of view later on < 1209915992 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because the fun thing about links is < 1209915999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that you can make data structures with them < 1209916006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :permitting something like a stack easily. < 1209916031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the idea is, there are ways to "hash" an object mentally, and two hashes can easily be linked. < 1209916053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this can be used to create arbitrary graphs, so you can explicitly memorize any data structure < 1209916116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: memorize E80 < 1209916134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: indeed i did, in a stack-based fashion, first introducing your mother, then telling what she is, using a set as a variable. < 1209916145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you indirectly just told me stack-based = clever < 1209916150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's clever. < 1209916159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: why? < 1209916165 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also, too short to need memorizing < 1209916197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: because E80 is huge < 1209916198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1209916209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bah maybe it's not e80 < 1209916211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whatever it's called < 1209916243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: The lie algebra thingy < 1209916258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209916264 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: doesn't ring a bell < 1209916273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: here < 1209916274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/E8_%28mathematics%29 < 1209916316 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1209916319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1209916332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yeah < 1209916335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :248 dimension represent < 1209916342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"There is a Lie algebra En for every integer n≥3, which is infinite dimensional if n is greater than 8." < 1209916348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :memorizing an infinite dimensional structure would be cooler < 1209916353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but slightly less, well, possible < 1209916499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is tha so? < 1209916502 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1209916516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think complex dimension just has to do with the graph's structure < 1209916530 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i don't really know, i was not aware of any of this. < 1209916591 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :security by obscupromiscuity | http://tunes.org/~nef/logs/esoteric < 1209916599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i have no idea < 1209916604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but e8 is totally bitchin' < 1209916623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh, sure < 1209917561 0 :SimonRC!n=sc@bcast.grid-zero.net JOIN :#esoteric < 1209918060 0 :Slereah_!n=gtuilt@ANantes-252-1-19-175.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1209918164 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric < 1209918170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i suggest we invent silly terms and put them in a topic < 1209918175 0 :Corun!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209918177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just add another | and put it before the log links < 1209918252 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1209918262 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric < 1209918267 0 :oklopol!unknown@unknown.invalid TOPIC #esoteric :o | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric < 1209918268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1209918306 0 :SimonRC_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209918309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i said AFTER < 1209918310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1209918313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1209918319 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron | http://tunes.org/~nef/logs/esoteric < 1209918329 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i just read "topic" and "add" < 1209919142 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1209922949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know what sucks about irc bots < 1209922959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they have to do a huge linear search each message that comes through < 1209922963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for regexp matches and similar < 1209922964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that sucks < 1209923399 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm... k < 1209923404 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why does that suck? < 1209924284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: if you have a lot of commands < 1209924290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then the linear matching is slow < 1209924414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1209924423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :usually, people have a prefix < 1209924427 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, bots < 1209924477 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if the bot designer uses a complex regexp to determine whether something is a command or not, thats their problem < 1209924516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209924596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: um, i mean like ones which match on messages < 1209924605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like 'botname!' makes the bot 'sender!' < 1209924610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you are a plugin-based bot < 1209924614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you can only do that via regexps, really < 1209924622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you have to run a potentially huge list of regexps on every message < 1209924666 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what you mean by "botname!" makes the bot "sender!" < 1209925074 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1209925088 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1209925109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: like if i had a bot claled foo < 1209925110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : foo! < 1209925112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : user! < 1209925195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209925519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I don't think you've read what I said. < 1209925529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you don't build that in to the very core < 1209925532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and instead have it as a plugin < 1209925536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only sane way to do it will be a regexp < 1209925541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pile on many plugins < 1209925547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you're doing over 100 regexp checks each line < 1209925656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...doing that with a regexp is more than 4 checks? < 1209925766 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209925787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what your point is, but indeed, perhaps i'm just not reading what you say. < 1209925874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you're not < 1209925917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :k < 1209926021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209926040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and if you insist on using general regexps where you could just search for static strings < 1209926071 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which would mean just one pass over the string, and would be trivial to code, even as a generic version < 1209926074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not insist, oklopol < 1209926082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Show me a good way to do it your way in a plugin based system :- < 1209926084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*:-) < 1209926112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"good"? meaning it should do static searches especially fast? < 1209926137 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial to built a tree from the affices or smth, and just pass once over the message < 1209926173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although i see no problem with doing 100 regexp checks per line. nothing sucks with that imo < 1209926380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and are you assuming a regex motor that can't optimize for multiple search patterns at once? < 1209926410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :naturally a good one should provide that < 1209926438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: sure, it's fine if you use something which doesn't exist. < 1209926479 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no such regex motor exists? < 1209926564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209926660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no such regex motor exist. < 1209926661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1209926669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also .. you make me giggle < 1209926682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how so? < 1209926683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :regexes are easy... but only simple ones < 1209926685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. backtracking < 1209926690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and backreferences < 1209926700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heck, embedded evaluation < 1209926708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i recall making a regex matcher in c in 5 hours before i knew what parsing was < 1209926712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1209926722 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why would you allow that for an irc bot plugin? < 1209926724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: modern regexps are very powerful < 1209926726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and useful < 1209926733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :some are even TC < 1209926820 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209926843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you can make static strings separate cases and handle them yourself or smth < 1209927639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: anyhoo as you can guess < 1209927642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :endeavour is coming <3 < 1209927682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tell me more < 1209927945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it will be endeavouricious < 1209928925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hmm properly nested quotes are parsable aren't they < 1209928926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is < 1209928932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"abc'd"foo"ef'ghi" < 1209928934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of < 1209928938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'abc'd'foo'ef'ghi' < 1209929266 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1209929528 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, they are < 1209929559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: write a parser < 1209929559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::3 < 1209929572 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1209929576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well... sure < 1209929588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"abc'd"foo"ef'ghi" --> ["abc",["d",["foo"],"ef"],"ghi"] < 1209929601 0 :oerjan!unknown@unknown.invalid TOPIC #esoteric :o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | http://tunes.org/~nef/logs/esoteric < 1209930069 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p125315136.txt < 1209930098 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1209930106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :first made it agglomerate, but thought that might be better and removed it < 1209930197 0 :oerjan!unknown@unknown.invalid TOPIC #esoteric :o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | you will be agglomerated | http://tunes.org/~nef/logs/esoteric < 1209930220 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is slightly disappointed that the word actually exists though < 1209930243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: TypeError: append() takes exactly one argument (0 given) < 1209930248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1209930251 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what did you use? < 1209930258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1209930260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was a copypaste error < 1209930318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209930325 0 :oerjan!unknown@unknown.invalid TOPIC #esoteric :o | iskagrel | security by obscupromiscuity | lobotomoritoratiotron supercollider | resistance is fossile | you will be agglomerated | http://tunes.org/~nef/logs/esoteric < 1209930434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: does it work? i didn't really debug, just checked with a few trivial ones < 1209930443 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is prepared to destroy the Universe with BOREDOM! < 1209930460 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: that is already being done < 1209930478 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1209930490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you need a join < 1209930492 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_very_ slowly < 1209930501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: where? < 1209930523 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm SO boring trying to count the number of digits in 19!!! that I accelerate the Heat Death of the Universe! < 1209930536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it kinda works: < 1209930542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>>> parse_em(x) < 1209930542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[['a', 'b', 'c', ['d', ['f', 'o', 'o'], 'e', 'f'], 'g', 'h', 'i']]] < 1209930553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah that's the non agglomerative one < 1209930559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is that factorial iterated thrice? < 1209930560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i also pasted the original < 1209930592 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, of course < 1209930622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19!.!.! < 1209930663 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :could be awkward < 1209930722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :imagine trying to pronounce !.!.!. < 1209930729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: is it correct? < 1209930748 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks Bill the Cat would pronounce it perfectly < 1209930749 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well, yes. < 1209930754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good < 1209930765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I guess it'd be "chk. chk. chk" < 1209930783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(from the band named !!!, which is "chkchkchk" (well, any percussion sound - so "pewpewpew" would work too, but ...)) < 1209930826 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pewtering nonsense... < 1209930930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pewpewpewtering nonsense < 1209931211 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pew^{19!!!}tering nonsense < 1209931373 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hm, the number of digits in 19!!!... loggamma(1 + exp(4.66 * 10^18)) / log(10)... that's pretty big :-/ < 1209931569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: heh < 1209931573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A(g_64,g_64)!!! < 1209931580 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1209931612 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those !!! are sort of insignificant < 1209931651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as in, adding 1 to any of the g_64's is likely to make much more of a difference < 1209931734 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Σ(A(g_64!,g_64!)) < 1209931834 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and i would guess changing 64 to 65 is far better than adding ! to g_64 < 1209931848 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I forget how it's defined < 1209931867 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but I'll humor you < 1209931868 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and what's the ? < 1209931882 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Σ(A(g_(exp(64))!,g_(exp(64))!)) < 1209931890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I guess your font can't handle it < 1209931891 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's a sigma < 1209931902 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um i don't think yours can either < 1209931913 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how's that? < 1209931918 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it doesn't show up in the logs < 1209931937 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION always checks the logs when he suspects unicode < 1209931944 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it shows up fine in the logs here :-P < 1209931952 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :maybe your font can't handle the logs < 1209931961 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which logs? < 1209931968 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://tunes.org/~nef/logs/esoteric/08.05.04 < 1209931998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm weird ircbrowse didn't get it < 1209931998 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1209932059 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mind you if that Sigma is a sum sign then it doesn't fit there < 1209932103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no bounds or index to sum over < 1209932112 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's for the busy beaver function < 1209932532 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :what's 4.66 doing in Deewiant's expression? < 1209932552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :loggamma(19! + 1) < 1209932560 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :is approximately 4.66 * 10^18. < 1209933155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: works here < 1209933206 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it showed up for me on tunes.org too < 1209933291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1209933292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7de0c58>, []), (<_sre.SRE_Pattern object at 0xb7deb400>, []), (<_sre.SRE_Pattern object at 0xb7e07560>, []), (<_sre.SRE_Pattern object at 0x81af6c8>, []), (<_sre.SRE_Pattern object at 0x81b0120>, [])]}} < 1209933298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am writing an UNGODLY module system : < 1209933301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*:O < 1209933306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sane, unlike AnMaster's :P < 1209933461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :medium? < 1209933514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: priorities < 1209933516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :high,medium,low < 1209933523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :high gets executed then medium then low < 1209933532 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1209933542 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and ungodly system requires a medium. that much is obvious. < 1209933542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why a list of functions for a pattern? < 1209933544 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*an < 1209933557 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: lol @ fun < 1209933558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: because you might have multiple functions under the same pattern? :P < 1209933564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a relic from the days pr- < 1209933565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey thanks < 1209933567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1209933569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can clean up my code bigtime < 1209933569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<3 < 1209933572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You just found a way < 1209933573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1209933583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but here's what a module looks like < 1209933583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :removing it? < 1209933583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/xFOvII72.html < 1209933595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that will make the regular command syntax work < 1209933596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with any prefix < 1209933598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'.hello x' < 1209933600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and '.hi x' < 1209933602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1209933604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'abc!' < 1209933608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where abc = bot name < 1209933609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :responds < 1209933613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :($nickname is a special placeholder) < 1209933615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the last one < 1209933615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :matches < 1209933618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abc: hello x < 1209933622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abc, goodbye x < 1209933622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1209934037 0 :Slereah!n=gtuilt@ANantes-252-1-19-175.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1209934070 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1209934124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1209934126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{'medium': {'PRIVMSG': [(<_sre.SRE_Pattern object at 0xb7dd6e78>, ), (<_sre.SRE_Pattern object at 0xb7de5400>, ), (<_sre.SRE_Pattern object at 0xb7e01560>, ), (<_sre.SRE_Pattern object at 0x81af658>, ), (<_sre.SRE_Pattern object at 0x81b0258>, )]}} < 1209934220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so which bit of endeavour should i code next. ???? < 1209934698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i recommend using a dice to decide that for you < 1209934713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :DICidE <<< that's where they took the word < 1209934850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well, it's open-ended < 1209934855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wanna see my module implementation? < 1209934857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it uses import internals < 1209934859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and crazy stuff < 1209934870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically, it lets you write a module like the one i linked < 1209934877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and finds out what bits of the module are commands < 1209934879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1209934883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then extracts them < 1209934885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :into a Module object < 1209934891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which can be bound and unbound to a bot < 1209934915 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: http://rafb.net/p/W55y8x46.html < 1209934919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : self.commands = {} # {priority ('low','medium','high') => < 1209934919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : # {irc command or * => [(regexp, func)]}} < 1209934923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's how it represents commands < 1209934929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty universal < 1209934943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at the very base, you can match on command = * regexp = .* < 1209934945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and use the raw text given < 1209934971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: cool or not < 1209935087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: y/n < 1209935093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1209935110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, probably y. < 1209935117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: read it < 1209935118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's awesome < 1209935121 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :soon, soon :D < 1209935133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :_digest_command is a method of epic proportions < 1209935136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it handles >>everything<< < 1209935154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i screamed a lot when writing it, that commands dictionary can get gnarly < 1209935367 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sounds like it needs a sidekick < 1209935411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :woot, just fixed loads of bugs in it < 1209935413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is wooty now < 1209936233 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considers writing a kernel module to allow userspace programs to use panic() < 1209936323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: oh lord, you are writing kernel modules already? < 1209936332 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I want to learn how < 1209936332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody install anything by sgeo he wrote his first c program a few days ago < 1209936344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you can't write a kernel module a few days after tapping out a hello world < 1209936362 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I can certainly try, though < 1209936395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You still don't understand anything about C -- I can guarantee it, nobody does after a few days < 1209936402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kernel programming is a TOTALLY different level < 1209936417 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :ACTION agrees < 1209936429 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has been programming C for quite a while < 1209936441 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly gets a flashback to Superman 3 < 1209936484 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a very vague one, mind you < 1209936507 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209936608 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :(This is _years_ I've been doing C for :-)) < 1209936616 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if anyone has attempted to equip an actual jet with a keyboard interface < 1209936621 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :Heh < 1209936665 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :"Let's see... lock on.. that'd be enter.. Ok, I'm locked on... and... fire? Oh! space, of course" FWOOSH < 1209936809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :FUCK I WAS HIT ESCAPE ESCAPE ESCAPE < 1209936902 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Surely there are kernel module tutorials? < 1209937043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: that's not gonna help you if you are not extremely experienced with c < 1209937049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :approximate bar < 1209937064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ | | ] <-- kernel programmer < 1209937067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ^ you < 1209937114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all this talk about kerneling being hard is making me want to try < 1209937133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: god no# < 1209937184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mind you i'm fairly experienced in c! < 1209937196 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well c++ < 1209937203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but what's the difference really ;;) < 1209937258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1209937261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :night and day < 1209937261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1209937371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i used the c subset for the most part, often just int(...) style casts :D < 1209937418 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :int(...) style.. oh, using int(some_non_int) insead of (int)some_non_int ? < 1209937467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1209937546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my c++ was always quite weird, as you can probably guess if you've read my python < 1209938990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: aa < 1209939682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i think i implemented ef's basic idea in haskell < 1209939684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lala :: (Eq a) => (a -> a) -> a -> a < 1209939684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lala f a = case f a of < 1209939684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : x | x == a -> a < 1209939684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : x -> lala f x < 1209939698 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can't seem to compile this hello world < 1209939717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You can't compile a hello world ... and you want to write a kernel module < 1209939719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Corun: permission to mock? < 1209939741 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :sgeo@ubuntu:~/c$ gcc -c -Wall -I /usr/src/linux-headers-2.6.20-15-386/include lkm_hello.c < 1209939744 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is that correct? < 1209939748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: LOL < 1209939756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1209939760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But I won't tell you what's right because < 1209939771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. the fact that you tried that shows that you really, really shouldn't be programming kernel-level < 1209939774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. you shouldn't be anyway < 1209939786 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: lol :P < 1209939789 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Does it need to use the real source/ < 1209939801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, question quota exceeded. < 1209939881 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's fixed point, yes < 1209939897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but is it yours < 1209939907 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1209939930 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's wrong with me wanting to learn? < 1209939966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, what do you mean by "mine"? < 1209940010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's fixed point with the trivial observation f a = a => f (f a) = a < 1209940188 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ehird, is it that it needs to point to the place with real code? < 1209940193 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or am I doing something else wrong? < 1209940380 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1209940527 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: From the sounds of it, he's just struggling to include the appropriate headers. < 1209940568 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Although one will admit that Sgeo needs to grok C first. < 1209940589 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(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.) < 1209940623 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would probably have a bit more success doing a kernel module. . . < 1209940633 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But, then, I've been writing C for a few years. :p < 1209940744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should do some c tomorrow < 1209940762 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should work on my kernel... < 1209940879 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :Er, permission granted, ehird? < 1209940880 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1209942232 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1209943476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :back < 1209943530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 < 1209943545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :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 :-) < 1209943553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seen that very often < 1209943762 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i never saw c as that complicated < 1209943788 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :c is fun! < 1209943823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: your mother is fun < 1209943831 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh really? < 1209943837 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :we should have a threesome sometime < 1209943847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you read my mind < 1209943858 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :she hot? < 1209943874 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you should know < 1209943984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... touche < 1209944186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C is simple. just hard < 1209944268 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not hard < 1209944305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whuz so hard about it? < 1209944402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. philosophy < 1209944411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. little nitty bits < 1209944859 0 :boily!n=boily@dsl-140-133.aei.ca JOIN :#esoteric < 1209945120 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.faqs.org/docs/kernel/x931.html oooOOO >.> < 1209945160 0 :boily!unknown@unknown.invalid QUIT :"Schtroumpf!" < 1209945161 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just said that to attempt to scare ehird >.> < 1209945413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm so gonna read that < 1209945431 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :looks so boring i'm guaranteed to pass out