< 1174176026 0 :Sgeo!n=sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1174176061 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :quines are a bit tricky < 1174176082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174176087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :/\//\\\// < 1174176087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :/ -> \/ < 1174176090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :could this be used? < 1174176109 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174176114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nah... it would convert everything and you need just some < 1174176122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know if that's why though :)= < 1174176147 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :plus, a \ in the "source" has to be escaped as \\, I think < 1174176148 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it would loop. You can _never_ have the result contained in the source, even after unescaping < 1174176284 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :/a\/\a/\\\// < 1174176284 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a/ -> a\/ < 1174176288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174176294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1174176304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :won't help... i'd need an interpreter... < 1174176308 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :secondly, you cannot essentially have any source be a single character. < 1174176314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174176321 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter is on the wiki page < 1174176325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perl? < 1174176327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't it < 1174176328 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1174176331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174176341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should do some dl'ing then < 1174176346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174176353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i just considered adding a debugging option < 1174176359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd have to do that anyway :P < 1174176366 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if it was an executalbe < 1174176367 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*bl < 1174176369 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1174176372 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :sounds like a good addition < 1174177067 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric : /sufficiently nonsential enough for much mass production/\/ (but mother(\/\\/pancreas polly\\/\\\/\\/\/ //pancreas polly/\/sufficiently nonsential enough for much mass production\/\ < 1174177084 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1174177109 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I have no clue what that will turn out as... but it seems like a step in the right direction... despite being utterly mind bending. < 1174177122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174177189 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...attempting to interpret myself just leaves me going in circles.... but I'm hoping it's asynchronous circles. :) < 1174177317 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you loos snefmmp right away there < 1174177321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*lose < 1174177339 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....snefmmp? < 1174177364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i won't write it < 1174177369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sufficiently nonsential enough for much mass production < 1174177378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok the implementation now prints the program at each step if you give it the -d option. < 1174177419 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well.... that was indended to be an "inbetween" encoding... I was hoping it would turn out as (mother being the equivalent of / < 1174177451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mm hmm < 1174177456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know what that means < 1174177456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1174177472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there is no use in an inbetween encoding < 1174177488 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :basically I'm thinking you need a replacement that replaces something with a replacement followed by / < 1174177535 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...or something equally convuleted. < 1174177604 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in order to be able to recreate an inbetween coding you need something like storing it somewhere as two separate subpieces < 1174177820 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... my head is about to explode. < 1174177965 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, this debugging was hard to separate from the output. Adding some brackets. < 1174178198 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I SHALL TURN THIS INTO AN EASY TO THINK ABOUT GAME. < 1174178217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174178263 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am sure that trusty old Mfit and Shanty will be happy to use different characters for / and \ :) < 1174178317 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm.... good idea. < 1174178345 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's essentially what we need.... multiple interpreters. < 1174178379 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw someone asked whether the names Mfit and Shanty mean anything? < 1174178425 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :their names are fairly important to their function. < 1174178447 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...cleverly disguised iin nonsense words. < 1174178564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :too cleverly :< < 1174178784 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shanty isn't a nonsense word. < 1174178793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and miff it is neither < 1174178814 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't help though < 1174178899 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there are several things called Mfit apparently. < 1174178912 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :all things are help < 1174178922 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and all things are true < 1174179540 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think i'm capable of making anything with ///, it took me 15 minutes to figure out how to make a quine in python :D < 1174179543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or 10 < 1174179595 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1174180061 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s='s=%r;print s%%s';print s%s < 1174180285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i win < 1174180309 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :win what? < 1174180366 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a kitschy plastic cup with inscription? < 1174180485 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i didn't remember you can do ';', neither that you can do "%s" < 1174180488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174180535 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174180548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think you mean %r < 1174180563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is no actual %s format in that code < 1174180593 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :print(lambda a:a+chr(34)+a+chr(34)+chr(41))("print(lambda a:a+chr(34)+a+chr(34)+chr(41))(") < 1174180618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is not the original though, took me < 2 min this time < 1174180620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :much better < 1174180635 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i shall learn it by heart < 1174180640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so i can make it in 20 sec < 1174180685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe wrote an interpreter for slashes... and python jammed, it's gone :D < 1174180711 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :how does python crashing make you lose your source? < 1174180720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why do they make all interpreters such that infinite loops kill them? < 1174180734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i don't save it anywhere < 1174180737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :^C? < 1174180745 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :too late for that < 1174180770 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't you have perl? < 1174180775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1174180785 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i just installed it though < 1174180797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :activeperl build 5.8.8 < 1174180803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wonder what that means < 1174180833 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :this is a triumph of speech recognition: http://www.youtube.com/watch?v=KyLqUf4cdwc&mode=related&search= < 1174180860 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and this is why speech recognition is a really flawed idea for coding < 1174180893 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1174180893 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It would be terrible to code with speech recognition < 1174180908 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'm writting up the info for my collaboration thing.... < 1174180913 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it might work with some languages, maybe forth, which has few delimiters < 1174180960 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :basically you just need to submit an interpreter in any language... the main process will feed the tokens one by one to the interpreters... < 1174180960 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Perl is pretty much the worst language he could be using here in terms of character use < 1174181004 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the only problem is that.... I don't have languages like C easily accessible on my computer (I still haven't figured out how to properly run C in Windows) < 1174181019 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god that's good :o < 1174181029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't know speech recognition is that good yet < 1174181082 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :obviously speech recognition *UI* isn't that good yet < 1174181111 0 :graue!unknown@unknown.invalid QUIT :"Leaving" < 1174181164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :he just doesn't know how to use it < 1174181193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if 'press capital I' means 'I', i think it's pretty obvious 'capital I' does not work < 1174181217 0 :GreaseMonkey!n=Greasemo@222-152-238-56.jetstream.xtra.co.nz JOIN :#esoteric < 1174181303 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd prefer it to understand certain syllables as 0,1,2,3...E,F and do the rest myself < 1174181344 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :man, that's terrible < 1174181366 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are there better one's? < 1174181373 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've never seen anything like that :| < 1174181405 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ones < 1174181573 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :OSX has pretty nifty recognition, but it isn't designed to control the whole interface < 1174181588 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :It is cool how it can control everything < 1174181591 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't be surprised if 10.5 has better integration < 1174181604 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :But controlling everything would be infuriating < 1174181611 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :depends < 1174181627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=S9T3RXFDtfo&NR < 1174181628 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Pressing keys is faster than verbalizing < 1174181648 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :M-k n, or "go to next window" < 1174181648 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really :\ < 1174181840 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :how long does it take to say "go to active window", compared to M-k k? < 1174181871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why do you have to day "go to active window"? < 1174181880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why can't you say "em kay kay" < 1174181900 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or "em 'n' kay kay" < 1174181914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or just 'zwaf' < 1174181926 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or just use my keyboard < 1174181950 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i talk faster than type < 1174181953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so i wouldn't know < 1174181962 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I've heard of speech recognition software causing speech problems < 1174181974 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :from changing your voice so it can recognize it < 1174182000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i don't see why you'd want to use english < 1174182038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you could easily make it recognize certaing murmurs < 1174182054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a phone did that 5 years ago i recall < 1174182095 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course, coding would be idiotic if you have hand to do it with < 1174182121 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i think it's be a faster way to navigate around the os < 1174182140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't like moving < 1174182187 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(that last part had no relation to the former ones) < 1174182318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm starting to think it'd not be faster, but i still think it's cooler < 1174182695 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :star trek < 1174182840 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :speech recognition in star trek is pretty crazy, because LCARS (the OS, kinda) is supposed to use speech commands to assemble application software on the fly to perform the requested commands < 1174182876 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :essentially, LCARS has no programs- they're all created from LCARS's modular libraries at runtime < 1174182885 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, at that point i don't think there'd really be any need for humans on the ship... < 1174182889 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fun < 1174182897 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah... < 1174182925 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :LCARS would require a ludicrous amount of AI under the hood to work in speech mode < 1174182932 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the GUI is pretty spiffy, though < 1174182940 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or keykeyboard mode... < 1174182986 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the idea of an interface consisting almost entirely of contextual menus and controls seems pretty workable < 1174183103 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :eh, if a GUI makes something easier, then I'm all for it. < 1174183140 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1174183147 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just saw what you guys were talking about. < 1174183151 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in most cases, the minimalist GUIs we see on TV would never work, but LCARS is actually very well thought out < 1174183234 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's only real failing is multitasking, but multitasking isn't always what it's cracked up to be < 1174183262 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :plus, on star trek there's always plenty of screens allocated for the various tasks being done < 1174183312 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :methinks someone's a little too into it < 1174183320 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1174183382 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I just like how the operating system and the interface are deeply integrated, rather than the latter being an afterthought built seperately < 1174183678 0 :jix__!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1174183745 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Kallisti < 1174183889 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :u r teh clevar!!!!!!!!!!! < 1174183901 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oh god, it begins again < 1174183967 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1174184014 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it < 1174184020 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I dunno, it seems somehow less elegant than dupdog < 1174184022 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174184124 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :too bad. < 1174184130 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Messiness == fun < 1174184286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread i don't get that :D < 1174184327 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't think of a way to allow an arbitrary number of interpreters globally alter the source code... < 1174184339 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so it can't be totally self-modifying. < 1174184347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they get the code, they return the code < 1174184352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's that easy < 1174184369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :plus, they always get a number indicating which token they are running < 1174184381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and they return another number indicating the next token < 1174184395 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :right right... but the problem with that is that there's no -order- in which they return them... unless I wait for each of them to output something before sending the token to another one. < 1174184454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, make stdout the main program running the code < 1174184476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :normal output is done like '\info \info' to the main program, < 1174184486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1174184486 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and if I let the interpreters affect the control flow of every other interpreter... there'd be countless race conditions. < 1174184507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :output: ... endvalues: string number < 1174184508 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :each of the interpreters should be independent. < 1174184510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174184535 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i meant you'd just assign one at the time < 1174184546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can't figure out another way to do it with just stdio < 1174184594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's boring if there's no self-modification < 1174184601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then there's really no language < 1174184644 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I guess the interpreters could be simply be put in order... < 1174184669 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, that's what i implicitly suggested < 1174184729 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not sure how the parser would no where to start over during a self-modification though... < 1174184815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174184830 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure that's not a sentence :| < 1174184836 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... hmm... < 1174184843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :know < 1174184844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174184856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread i already solver that < 1174184876 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they get code and code pointer, they return new code and new code pointer < 1174184883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah, you're afraid of pointers < 1174184887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just an index :) < 1174184901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*solved goddamnit < 1174184927 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not every language has pointers. < 1174184938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mmmm huh? < 1174184945 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...include Python (which I'll probably be implementing it in... or maybe Ruby) < 1174184949 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*including < 1174184967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you mean they wouldn't understand a pointer given them? < 1174184968 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1174184977 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you mean... just a number? < 1174184994 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's a little suspicious... but it would work. < 1174184996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1. that's stupid, pointer can't be anything more than a number, because everything is a number 2. yes < 1174185031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pointer is just a way to imply a number means an index, nothing more < 1174185044 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just that it usually means an index to all the memory < 1174185054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't see why you go all berzerk every time you see it :) < 1174185092 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyways, i have some serious sleeping to do --------------------------> < 1174185105 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1174185790 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...-shrug- just misunderstanding of terminology. < 1174185802 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I have nothing against pointers... they're very useful. < 1174186560 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....I could take a dupdog-ian approach that doesn't use tokens. < 1174186608 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :just sheer... modification of the source code. < 1174186767 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :sounds awesome < 1174186790 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the more this new language becomes like dupdog, the more fun I predict programming with it shall become < 1174186805 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I still think Dupdog *might* be tc < 1174186916 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1174186953 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, ShadowHntr < 1174186967 0 :ShadowHntr!unknown@unknown.invalid PRIVMSG #esoteric :evening < 1174186970 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i just managed to run the Hello World program in the Haskell interpreter < 1174187015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(Dupdog interpreter) < 1174187033 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :kickass < 1174187041 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :still works? < 1174187058 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, after I fixed a bug in the interpreter < 1174187093 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1174187153 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :heh, funny that dupdog remained unnoticed for a couple of months... :) < 1174187301 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and then a crack team of bored IRCers found it and started using it < 1174187680 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Kallisti 5.0 - http://esoteric.voxelperfect.net/wiki/E%9AE1EBEBE%AFF%83F%84%E1F%83 < 1174187688 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1174187708 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Kallisti < 1174188091 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...dupdog is like, the laziest invention ever. < 1174188445 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :does this fall under the juristiction of ABCDEF? < 1174188582 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :augh! < 1174188593 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's explicitly stated to never abbreviate that! < 1174188604 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1174188627 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :The Adjudicated Blind Collaborative Design Esoteric Factory is an important name that deserves more than an acronym. < 1174188962 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1174188967 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1174188970 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1174188972 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1174189543 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, where is the Haskell interpreter for dupdog at? < 1174189557 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i haven't put it up yet < 1174189562 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1174189583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :need to add a few features such as a main function :) < 1174189585 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION lost interest in dupdog... so never got around to fully fixing his implementation. < 1174189601 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is another implementation in thutu however. < 1174189608 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :heh, so it's functional now? < 1174189618 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :any implementation will do. < 1174189659 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for some reason ais523 (i think it was him) didn't put a link on the wiki < 1174189688 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was on the channel recently, a pastebin link i think < 1174189850 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I think Stue is the only one of my languages that had an implementation before it had a specification... still haven't written it up yet. < 1174189952 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/raw/397577 but you need to change 128 to 257, the current Hello World assumes mod 257 wrapping < 1174190064 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :eh... I wanted the source. :P < 1174190137 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for some reason ais523 hasn't told us the original thutu. < 1174190274 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I think she's a terrorist. < 1174190469 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you think she's a she? < 1174190552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow i hope my interpreter will deal better with lots of duplications. Shared functional data structure. < 1174190571 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although with Haskell you never know about space. < 1174190612 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :nah, wasn't sure. I kind of prefer she over he when the gender is unknown. < 1174190768 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I guess the wrap mod is implementation defined... < 1174190784 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i intend to make it an option < 1174190812 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :in the meantime I should write the specification for Stue... and maybe fix up the interpreter a bit. < 1174190821 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed i intend to have two: one used for output and one for internal/debugging use < 1174190838 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and work on some of my unfinished languages... I've got one based on gravity sources. < 1174190872 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not using any complicated math though... just simple spatial relations. < 1174191876 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1174192329 0 :Arrogant!i=Arrogatn@162.orlando-04-05rs.fl.dial-access.att.net JOIN :#esoteric < 1174192911 0 :GregorR_!n=gregor@c-24-22-56-63.hsd1.mn.comcast.net JOIN :#esoteric < 1174192985 0 :GregorR_!unknown@unknown.invalid QUIT :Remote closed the connection < 1174193943 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :deadbeefbabe < 1174193943 0 :wooby!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174193956 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1174194157 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Remote closed the connection < 1174195635 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1174195790 0 :GreaseMonkey!n=Greasemo@222-152-238-56.jetstream.xtra.co.nz JOIN :#esoteric < 1174195892 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :ok, my bot works, now it's onto coding the lang < 1174195987 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :my bot is better~ < 1174196005 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174196194 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i'm still making my own < 1174196198 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :so yeah < 1174196212 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :sadly my HD died and took GreaseBot with it < 1174196219 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :but there's new hope < 1174196255 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :my new bot is named "RoboMonkey" and has exactly the same functionality as it did in the very early stages of GreaseBot.... raw commands, and that's it. < 1174196275 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :now i'm working on the BrainSecks interpreter < 1174196278 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw TICKLE GreaseMonkey < 1174196334 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :don't you mean ~ctcp TICKLE GreaseMonkey ? < 1174196338 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174196350 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :hmm, tickle isn't a command < 1174196356 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1174196407 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :my new bot has several things of the old bot: the "PASS/NICK/USER" join method, and raw commands are like: < 1174196422 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :$PRIVMSG #esoteric i challenge you bsmnt_bot < 1174197422 0 :SevenInchBread!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1174197615 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1174199960 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Woooooooh, I have the best LCARS theme evar ^^ < 1174199970 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :falsehood < 1174199979 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :>_> < 1174199983 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1174200011 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :hi gregor, i'm working on an esolang for my bot < 1174200037 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR ==> _|_ < 1174200065 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :bsmnt: i suggest you get your bot to do that < 1174200072 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :do what < 1174200091 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :print stull like that < 1174200094 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :*stuff < 1174200095 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :like: < 1174200101 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :~fu nickname < 1174200110 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :...or not. < 1174200193 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.register_raw(r"\S+ PRIVMSG (\S+) :~fu (.+)", lambda x,y: bot.raw("PRIVMSG %s :fuck you, %s" % (y.group(1), y.group(2)))) < 1174200199 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~fu GreaseMonkey < 1174200199 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :fuck you, GreaseMonkey < 1174200251 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lmao < 1174200265 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that was absurdly involved < 1174200269 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :hmm, i cud replicate that in brainsecks code.... < 1174200275 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and yet so funny... < 1174200287 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :>_^ < 1174200289 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :^_< < 1174200363 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :x00>"PRIVMSG "%1[>,]" :"%0[>,]x0A>x00<[<]>[.>] < 1174200367 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1174200374 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :x00>"PRIVMSG "%1[>,]" :fuck you, "%0[>,]x0A>x00<[<]>[.>] < 1174200383 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :yays, my code is shorter < 1174200391 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :what lang is your bot made in, bsmnt? < 1174200397 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :python < 1174200407 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :k < 1174200420 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :im making my second one in C, like the first < 1174200580 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :...i love for() loops :D < 1174200594 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :...why? < 1174200647 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :FOR...NEXT loops are the best loops of all time < 1174200654 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION high-fives GreaseMonkey  < 1174200864 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :for loops are just glorified while loops < 1174200920 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pfft < 1174200932 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :while loops are just underfeatured FOR...NEXT loops < 1174200957 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nnnnnnnnnnnnn < 1174201231 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :for(i=0;array[i];i++){ /* stuff goes here */ } < 1174201236 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :beat that < 1174201270 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i=0;while(array[i]){/*stuff goes here*/ i++} < 1174201307 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :in all fairness to whitespace: < 1174201307 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :for(i=0;array[i];i++){/*stuff goes here*/} < 1174201314 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i=0;while(array[i]){/*stuff goes here*/i++;} < 1174201319 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :=X < 1174201320 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :=D < 1174201350 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :just because `while' is more letters than `for' < 1174201359 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :oh, and there's always: for(p=str;*p;p++){/* stuff goes here */} < 1174201386 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i find for(i;c;p){s;} tidier < 1174201401 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :than i;while(c){s;p;} < 1174201412 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174201636 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :hey, wanna ~fu another bot? < 1174201655 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :on #uncyclopedia , there's a SupyBot under the nick "AutoRTB" < 1174201662 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :~fu AutoRTB < 1174201662 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :fuck you, AutoRTB < 1174201675 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :~fu 1 2 < 1174201675 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :fuck you, 1 2 < 1174201685 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :k, so it doesn't split it into parameters < 1174202346 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :afk food < 1174203333 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :back < 1174203577 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :mmm, food < 1174203614 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'night, guys < 1174203619 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I need to hit the hay < 1174203649 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1174204254 0 :anonfunc!n=dholman@ppp-67-121-238-228.dsl.chic01.pacbell.net JOIN :#esoteric < 1174204280 0 :oerjan!unknown@unknown.invalid QUIT :"ZZNNNNRRRKKKK" < 1174204799 0 :clog!unknown@unknown.invalid QUIT :ended < 1174204800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1174206303 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1174210020 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1174210302 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :twos = iterate (2^) 0 < 1174210309 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :discuss < 1174211491 0 :Sukoshi!n=user@user-11fa7ck.dsl.mindspring.com JOIN :#esoteric < 1174211622 0 :RoboMonkey!n=RoboMonk@222-152-238-56.jetstream.xtra.co.nz JOIN :#esoteric < 1174211630 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1174211645 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :brainsecks interpreter works :D < 1174211655 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :sadly only one command can be used though < 1174211679 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :that program: x00>"PRIVMSG "%2[>,]>x01%0[>,]x0A>x00<[<]" :"[<]>[.>] < 1174211707 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :?x00>"PRIVMSG "%1[>,]>x01>"ACTION ">x01%0[>,]x01>x0A>x00<[<]" :"[<]>[.>] < 1174211708 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :twos = iterate (2^) 0 < 1174211711 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :\dances < 1174211712 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dances < 1174211751 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :?x00>"PRIVMSG "%1[>,]>x01>x01>"ACTION "%0[>,]x01>x0A>x00<[<]" :"[<]>[.>] < 1174211752 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :\dances < 1174211753 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dances < 1174211759 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :ooh yeah :D < 1174211773 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :sadly she only responds to me < 1174211832 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Someone please find number of digits of 2^(2^(2^(2^(2^(2^(2^0)))))) < 1174211841 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Not I. < 1174211918 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :65536^2 < 1174211939 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :4294967296 < 1174211943 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :10 digits < 1174211959 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :\10 digits < 1174211960 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric :10 digits < 1174211962 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :um.. < 1174211966 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174211974 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :\:( < 1174211975 0 :RoboMonkey!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1174211979 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(2^(2^(2^(2^(2^(2^0))))) has over 19 thousand digits < 1174211990 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i doubt it < 1174212001 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :19729 digits < 1174212022 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :2^(2^(2^(2^(2^(2^(2^0)))))) -> 2^(2^(2^(2^(2^(2^1))))) -> 2^(2^(2^(2^(2^2)))) < 1174212043 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :2^(2^(2^(2^(2^2)))) -> 2^(2^(2^(2^4))) -> 2^(2^(2^16)) < 1174212059 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :In haskell < 1174212060 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :2^(2^(2^16)) -> 2^(2^256) -> ... oh. < 1174212061 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :length $ show $ (2^(2^(2^(2^(2^(2^0)))))) < 1174212061 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :19729 < 1174212075 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Put another 2^ in front < 1174212079 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :how many digits? < 1174212079 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1174212082 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Someone can do math *clap clap clap*. < 1174212087 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :2^(2^65536) < 1174212162 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :$QUIT < 1174212163 0 :RoboMonkey!unknown@unknown.invalid QUIT : < 1174212172 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :actually i gotta sleep < 1174212183 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :gonna sleep now, gnight < 1174212193 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :g'night GreaseMonkey < 1174212241 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :?x00>"PRIVMSG #esoteric :gnight">x0A>x00<[<]>[.>] < 1174212243 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :\ < 1174212248 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :oops i'd quit it < 1174212250 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Woot! RoboMonkey works! Woot again!" < 1174212286 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What's a cheap FPGA? < 1174212338 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Or a cheap embedded device preferrably with a FORTH on-die, but not neccessarily so. < 1174212445 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION asks in Yahoo! Answers < 1174212611 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Thanks. That's sure to get answers. < 1174212697 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I meant about my question < 1174212702 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1174212740 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Thanks, I guess. < 1174212805 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174213958 0 :wooby!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174214125 0 :sebbu!n=sebbu@ADijon-152-1-104-38.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1174215791 0 :UpTheDownstair!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174215823 0 :Sukoshi!unknown@unknown.invalid QUIT :"さあ、ね。もう帰るわ!待ってね!" < 1174216467 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174218468 0 :UpTheDownstair!unknown@unknown.invalid NICK :nazgjunk < 1174218749 0 :jix!n=jix@dyndsl-085-016-236-112.ewe-ip-backbone.de JOIN :#esoteric < 1174219499 0 :Sgeo!unknown@unknown.invalid QUIT :"Leaving" < 1174223068 0 :UpTheDownstair!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174223145 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174223150 0 :UpTheDownstair!unknown@unknown.invalid NICK :nazgjunk < 1174223216 0 :sebbu2!n=sebbu@ADijon-152-1-104-38.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1174223968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : ::= < 1174224341 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1174226101 0 :RodgerTheGreat!n=Rodger@wads-5-232-13.resnet.mtu.edu JOIN :#esoteric < 1174226121 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi guys < 1174226197 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hijay < 1174226220 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what are you up to this morning, oklopol? < 1174226315 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :woke up 2 hours ago, had a kebab, been reading about this racist mp wannabe... not that i'm a racist, but i like it when people have strong opinions, we have the elections today, but i don't think i'll bother to vote < 1174226324 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is all < 1174226331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like to make my lang complete today < 1174226333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1174226342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i gotta read for my matriculation exams tomorrow < 1174226347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the english thingie < 1174226355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...and ya? < 1174226358 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174226399 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm probably going to need to do some homework, but for now I'm just surfing < 1174226424 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i had this idea about a lang where you have a concurrent for-each < 1174226431 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everything is done at the same time < 1174226445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is an issue when doing cellular automatons etc < 1174226451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you need to do the same thing for all < 1174226455 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. so a foreach would essentially just thread everything out? < 1174226470 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can have two lists and copy from one to one, swapping all the time < 1174226480 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol- you should call it a noweach instead of a foreach < 1174226491 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :BUT that requires the whole array to be copied every time < 1174226494 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is slow < 1174226503 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you have to manually optimize in each case < 1174226507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AND < 1174226530 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't just have the array and move, for example with wireworld, everything like the rules say < 1174226537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because only some parts move < 1174226554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's very tedious to do, and the thing inherent in cellular automatons fades < 1174226559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the fact you only have one rule < 1174226574 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so noweach would make those optimizations automatically < 1174226580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since i think i know how to do it < 1174226609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just have to know how far the thingies CAN check for other living things, a living thing being one where rules apply < 1174226635 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... i'd optimize memory usage and cut out redundancy automatically for simple automatons like wirewordl < 1174226636 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ld < 1174226651 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :had this idea when making lopoda, which is kinda a cellular automaton < 1174226662 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not really one though < 1174226668 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1174226668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1174226672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe it is < 1174226682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god i talk a lot < 1174226683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1174226718 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cellular automatons can be done like that already, for example with mark something's cellebration < 1174226733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just it's not really a language, just a set of modifiable rules < 1174226748 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think a noweach would be a genuinely useful feature- something not often seen in esolangs < 1174226757 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you know, textboxes for "live while n neighbours" < 1174226767 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'course, some of the side effects might be weird... < 1174226776 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why is that? < 1174226824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm using an iterator that can change current cell, check neighbour cells and leave messages for current cells < 1174226845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*leave messages for neigbour cells < 1174226884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is not the language i've designed really, it was just something i couldn't get outta my head when reading english < 1174226911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw does bnf have a parser? < 1174226918 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, since foreach loops are generally just done on a group of objects, operating on each only individually, there probably wouldn't be a lot of difference. If you did something relating adjacent objects in an array or something your results might be counterintuitive from a programming standpoint, because programmers naturally thing iteratively < 1174226921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've been making one, i don't think i'm the first :\ < 1174226930 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm not aware of one... < 1174226953 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :*think iteratively < 1174226964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, i use bnf with simplified regexes... and regexes postfix -> prefix < 1174226970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's easier to parse < 1174226985 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and math is pre-/infix, why shouldn't regexes be < 1174227007 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i like it when things are counterintuitive < 1174227018 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i suppose that's why i'm on this chan < 1174227040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you got my brain going again :< < 1174227053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how can i read the big book of tautologies now? < 1174227066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*maybe black book < 1174227089 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174227129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :'the' had some sick quirks, but most of it i would've known 8 years ago < 1174227146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :remember explaining one of the things i read there to a friend on the first grade < 1174227157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, still it takes me ages to read < 1174227166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i'm so slow at understanding text < 1174227184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/212.htm < 1174227188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something i wrote about this < 1174227253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hope it's in english < 1174227257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :forgot already :D < 1174227261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ya < 1174227342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :noweach, lopoda, nopol implementation, oklotalk, nestor < 1174227354 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd have some esoteric month doing those < 1174227363 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk is not that esoteric though < 1174227396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :an apl (or just apl if you consider the 'a' is an article in it's own right) thingie < 1174227408 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that borrows the best of haskell and lisp < 1174227417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quoting from lisp, actually < 1174227447 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know what's from haskell since i can't remember all the things i've already thought through < 1174227459 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... prolly a lot < 1174227500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i like python... but it doesn't use tail recursion (i think) and it isn't lazy < 1174227507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1174227533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fib=[1 {--n+-n}] would be haskellish < 1174227551 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can specify a list as it's first values and a lambda to calc the rest < 1174227562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the lambda is fed an iterator object < 1174227580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in this case n, because it's the only free var in the lambda, so no need to specify explicitly < 1174227603 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :- is unary minus, but with an iterator it means "last" < 1174227619 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and actually, the lambda should be {!--n+!-n} since we need the values < 1174227639 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adding iterators is defined, as everything is always defined (:P) but makes no sence in this case < 1174227666 0 :anonfunc!unknown@unknown.invalid QUIT : < 1174227680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in oklotalk everything is a valid program, but since the debugger makes tokenizing, nesting and running explicit in that you can do it as step by step as you like < 1174227685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't be a problem < 1174227705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :plus, i'm making all optimizations explicit as well of course < 1174227711 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1174227712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you can suggest optimizations < 1174227720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :without need to alter code < 1174227729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can have code and optimization separate < 1174227750 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, these are of course the more ambitious things i design for all my langs < 1174227768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that i'm able to code in ten years if i'm lucky :) < 1174227792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm making apl purely functional for one < 1174227850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can quote lambdas to add them in a list `+ `{_*_} `{_-1} would make a list of 3 lambdas, or functions, no difference in oklotalk < 1174227865 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :you know, your ideas for "intelligent books" would be an interesting thing to apply to wiki-based books, or wikis in general < 1174227866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and that'd be pretty mych exactly the same as . in haskell < 1174227878 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i thought about that too < 1174227893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then again, if it's in my head i consider it done < 1174227902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one reason for me not being that productive that often < 1174227903 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1174227905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1174227939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i.must.go.feck.this.all------------------------------> < 1174227943 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, SimonRC < 1174228158 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads oklopol's article. < 1174228204 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Go read Tim Berners-Lee's writings on the "Semantic Web". < 1174228286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i might, if you link it to me < 1174228341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you read it in 45 secs, by the way, i'm quite impressed :) < 1174228352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, really, REALLY really ----------------------------------> < 1174228381 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :really REALLY 09:31am? < 1174228457 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I said that a bit late < 1174229772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :",[.,]" -> < 1174229772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :{^(inc=`+)|(dec=`-)|(nxt=`>)|(prv=`<)|(out=`.)|(in=`,)|(loop=`[*.`])} < 1174229772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> {out _[0]} < 1174229772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> < 1174229782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :rego ------------------------------> < 1174231104 0 :helios24!unknown@unknown.invalid QUIT :"Leaving" < 1174232737 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1174232940 0 :UpTheDownstair!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174233086 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174233508 0 :UpTheDownstair!unknown@unknown.invalid QUIT :"Leaving" < 1174235545 0 :sekhmet_!n=pez@ppp-70-226-170-5.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1174235563 0 :sekhmet!unknown@unknown.invalid QUIT :Nick collision from services. < 1174235580 0 :sekhmet_!unknown@unknown.invalid NICK :sekhmet < 1174236469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/beepiano.py < 1174236482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :made this at school :PP fun toy < 1174236637 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Somehow I didn't have the impression that okokokoko was about music. < 1174236643 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oh, sweet- a simple piano < 1174236666 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wasn't specifically, it's about everything < 1174236673 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a glorified foo < 1174236675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174236706 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i see. btw does the word "oklopol" mean anything? < 1174236729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a make-believe world we've written a few stories about < 1174236740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :www.vjn.fi read when you learn finnish :) < 1174236750 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when i first saw your name i assumed you were polish :) < 1174236753 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*nick < 1174236753 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1174236762 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference between a real word and a make-believe word? < 1174236770 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is the real world < 1174236772 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :marketing < 1174236777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :make-believe is some other one < 1174236781 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :a word's meaning is simply what you hold behind it < 1174236794 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in oklopol, you'd call this one a bake-believe world < 1174236796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though make < 1174236798 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not bake < 1174236847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :real is just a this pointer < 1174236862 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i have a vague recall that "oklo" means window in Czech, so "oklopol" would be a window Pole whatever that is < 1174236871 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174236900 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :we must invent a device known as a "window pole" < 1174236927 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :or create a language with this name < 1174236928 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION recalls the pole vault exercise from the FRC Hellympics < 1174237160 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw if you can tell me a way to give the loudspeaker values directly, please enlighten me < 1174237174 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can only make square with that obviously < 1174237186 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :plus, you have to specify lenght beforehand < 1174237203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it'd get ugly to make holding mean a longer tone < 1174237234 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know how to access the pc speaker with asm, but that's no good since pc speaker is just square < 1174237333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe learning black diamond now :P < 1174237350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :screw the exam, i'm playing beepiano! < 1174237616 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose the PlaySound function might be what you want < 1174237699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what lang, what usage < 1174237707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what function < 1174237750 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the winsound module you already use < 1174237764 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1174237768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've used that < 1174237769 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it seems more flexible than Beep < 1174237777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with my brainfuck player for example < 1174237783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it requires me to create a wav < 1174237795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is easy but imo idiotic to do real time < 1174237864 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but perhaps you could pregenerate one for each frequency and use SND_LOOP < 1174237936 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1174237954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i first though i'd make real-time tone creating possible in the player < 1174237961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i might start thinking about that then < 1174238013 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops. there appears to be a stupid restriction. < 1174238065 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you cannot use string data except to play a single time synchronously, it seems < 1174238339 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quite rofltastic < 1174238391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and using actual WAV files might give too much delay, though I don't know < 1174238780 0 :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1174238807 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :delay is not a problem < 1174238819 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd just be too ashamed to use a file like that < 1174238840 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :GREETINGS COMRADES < 1174238861 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't see any such restriction mentioned for the underlying function: http://msdn2.microsoft.com/en-us/library/ms712879.aspx < 1174238867 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and great, i'm stuck inside the house now, didn't let my drunk father in so he tried to open a special lock we have in the door that prevents opening from the inside < 1174238872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :locking me in < 1174238891 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :fun stuff. < 1174238895 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i tried to tell him i just won't let him in and he kept saying 'don't worry i'll get the door open' < 1174238902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::PP < 1174238905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yar! < 1174238929 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :OH HO < 1174238970 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :can such a lock be complying with fire regulations? < 1174239024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha prolly not :D < 1174239079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea, but it's a 50 euro fee to get someone to open the door and my father went out getting one since he thought there was something wrong with the door :D < 1174239110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... 50 euros to open a door given the key to that door < 1174239143 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you _do_ realize this event does nothing to relax our stereotypes about the Finnish? ;) < 1174239159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174239175 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i think those stereotypes are correct < 1174239198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since most ppl i know are either drunks or absolutists < 1174239305 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :It seems like you should be able to write it in C. It occurs to me that Python's problem with strings might have something to do with garbage collection. < 1174239323 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm sound possible < 1174239339 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm, what does Python do with strings? < 1174239343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you could prolly circumvent that by keeping a pointer to the string in the code < 1174239368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :smth="teh str"; and then use smth, i don't see how there could be a problem < 1174239374 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :best logic ever: "I'm not stereotyping, because the stereotypes are true!" < 1174239384 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....I hear that one all the time. < 1174239411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed, that's not my logic there though < 1174239430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, but then the module would have to do so automatically, and that might cause sound strings never to be freed if not done properly. I guess the Python implementers didn't bother. < 1174239442 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah, as long as you've got a reference to the string, it shouldn't go away.... unless Python's GC goes wonky or something. < 1174239457 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if it is copying things could be strange. < 1174239510 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :If I remember correctly, Python stores strings in const variables.... at least on the C end of things. < 1174239514 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :with the string being moved rather than deleted < 1174239599 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think const prevents the GC from moving things < 1174239643 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it would have to be saved in some FFI unmovable format. There probably is something like that available, but there would be overhead. < 1174239715 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... what are you trying to do? < 1174239727 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol is writing a simple piano program < 1174239769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can write it in c as well < 1174239781 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just python was the only one i knew sound stuff with < 1174239803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :__import__("winsound").Beep(interva,freq) < 1174239804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*l < 1174239810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :temptingly easy < 1174239812 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174239816 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait a min < 1174239849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm i have that same beep in c as well, it seems to be in stdio < 1174239854 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :BUT again it's just square < 1174239892 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah but PlaySound is a Windows function. < 1174239928 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Winmm.lib it says on the page i linked < 1174239928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't scare me < 1174239936 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know, i've used it as i said < 1174239942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you said something about strings < 1174239960 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that is only a problem with Python strings < 1174239974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... can you play strings? < 1174239982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :playsound plays .wavs < 1174239988 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SND_MEMORY < 1174240001 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well a memory block in .wav format < 1174240004 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i presume < 1174240011 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174240016 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll try to find the page < 1174240022 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :acutally < 1174240025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*actually < 1174240030 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :link if you have it open < 1174240033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd never find it < 1174240038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i already did. < 1174240048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh :o < 1174240059 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :>i don't see any such restriction mentioned for the underlying function: http://msdn2.microsoft.com/en-us/library/ms712879.aspx < 1174240060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :shoops < 1174240062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*hoops < 1174240064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*whoops < 1174240072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1174240077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i never saw that line < 1174240083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads well < 1174240113 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow i found it just by googling for PlaySound < 1174240125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mm well, maybe i'd have as well then < 1174240130 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well well < 1174240273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nice... i can't both read and scroll that page simultaneously < 1174240310 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm i can only play one sound at a time with that? < 1174240341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SND_ASYNC, SND_NOSTOP < 1174240396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait... you may be right. < 1174240417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then you must end all at once < 1174240452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like being able to pres a key down and play a melody at the same time < 1174240454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*press < 1174240594 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose you could calculate the sum on the fly then < 1174240616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah yeah < 1174240648 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll just make a string for the next 50 ms every time < 1174240652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and play thta < 1174240654 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1174240659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :seems trivial < 1174240681 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is playing around with stenography. < 1174240691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though, i've noticed an awful click in the beginnin when playing stuff with playsound < 1174240710 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah, boundary condition worries me too < 1174240734 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you really want something that can change sound smoothly < 1174240744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you mean waves going .-'-.-'-.-'--'-.-'-.-'-.-'--'-.-'-.-'- < 1174240746 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174240798 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is easy, you just check where that wave leaves by sin(clicks in 50 ms * current tone pitch) < 1174240807 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and continue there < 1174240835 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am also thinking of the inevitable short timing mismatch < 1174240850 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because of delay and imprecision < 1174240852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, you can create the whole sound at once, then cut it into sequences of 50 ms and adding the wav header < 1174240857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, true < 1174240871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i think strings don't have much delay < 1174240880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because there's no file openage < 1174241042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :by the way, piano is confusing since i use the accordions note system < 1174241057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just named it piano because people don't know what an accordion is :) < 1174241061 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174241091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i know what an accordion is. i think. < 1174241142 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, in finnish it's 'haitari', so not everyone knows what it is in english < 1174241152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or 'harmonikka' < 1174241205 0 :Sgeo!n=sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1174241774 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You might want to look at http://msdn2.microsoft.com/en-us/library/ms713503.aspx < 1174241786 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :A more powerful system, it seems < 1174242090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like unsigned char set_lp(unsigned char newvalue) best :P < 1174242098 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but there is none < 1174242115 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :'cept of course in my brainfuck... and many of my unimplemented langs < 1174242193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha i can play stratovarious's black diamond on beepiano now :DD < 1174242274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1174244173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://pb.vjn.fi/p245463223.txt black diamond < 1174244208 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Basically set_lp is only going to work in a system with hard real timing, which does not include the modern consumer OSes < 1174244283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed i sometimes feel slightly annoyed at esoteric languages that call themselves concurrent while having exact scheduling. < 1174244379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are you referring to... what? < 1174244383 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :noweach? :D < 1174244409 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you were particularly precise on that < 1174244463 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wasn't true < 1174244469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i don't know the spesifics < 1174244477 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i don't understand why you don't use a purely functional updating for it. < 1174244478 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just wondering what you were referring to < 1174244493 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mmh maybe because i don't know what you mean < 1174244500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*what that is < 1174244525 0 :sekhmet!unknown@unknown.invalid QUIT :"ups ftw \o/" < 1174244535 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174244542 0 :UpTheDownstair!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174244548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok yours is strictly scheduled as dataflow (because it's CA inspired) but not in exact timing < 1174244579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what i mean is that each step could simply calculate the next in parallel. < 1174244586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1174244593 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or maybe < 1174244596 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1174244603 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since the previous step is not modified, you don't get those timing issues < 1174244627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think that might result in deadlock < 1174244627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*s < 1174244633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since they can refer to each other < 1174244658 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, because each refers only to the _previous_ state of the others, not to the one currently being calculated. < 1174244659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they can refer to the new state as well < 1174244668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if that's what you mean < 1174244670 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in that case you have a problem < 1174244684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i might. < 1174244689 0 :UpTheDownstair!unknown@unknown.invalid NICK :nazgjunk < 1174244699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, indeed it's still easiest to do concurrently < 1174244738 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and, it's not supposed to be used in anything where that might result in problems < 1174244741 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CAs don't require copying, btw. You just switch which array you calculate from < 1174244743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just simple automatons < 1174244751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1174244759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but that's copying, < 1174244765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you have to move nops too < 1174244768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1174244770 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, not < 1174244771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174244782 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nops? < 1174244801 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i think cellular automatons are easier to optimize in lang development than in an existing lang < 1174244809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nops, places that aren't used currently < 1174244824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it automatically skips those when optimizing < 1174244829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah you mean things that don't change. < 1174244832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1174244858 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well you can keep those in big blocks < 1174244885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so you only copy block pointers < 1174244910 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174244921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174244933 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that's how the popular CA engines do it < 1174244976 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :seems like the easiest way out < 1174244984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i had a lot more complicated thing in mind < 1174245005 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :who can come up with the slowest way to calculate fibonacci numbers? < 1174245012 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Me. < 1174245014 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... < 1174245020 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the usual recursion without memoing is pretty slow. < 1174245027 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not slow enough < 1174245061 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then you can define addition using succ. < 1174245091 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :int fib(int n){sleep(2^2^2^2^2^2);if(n==1||n==2)return 1;return fib(n-1)+fib(n-2);} < 1174245098 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no < 1174245111 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you did not specify that as illegal < 1174245119 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean sleep(ackermann(n,n)) :) < 1174245135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :much better < 1174245139 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that should be okay < 1174245172 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's cheating < 1174245220 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I don't understand when people say stuff like "add a (succ b) = succ (add a b)" < 1174245237 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :How do you compute that without a predeccesor function? < 1174245238 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...create an entire network of processes that pass around data and perform single computations one at time... communicating the data in the least signifigant bits of manipulated bitmaps of adorable kittens. < 1174245246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood take a bf interpreter in bf, then make a function that takes a number n and makes bf interpret bf interpret bf... n times, the last one calculating next fib < 1174245250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need a base case of course < 1174245251 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then use it recursively < 1174245255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :add a 0 = a < 1174245275 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh i see. < 1174245286 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wins. < 1174245320 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...provided the kitten bitmaps are very large files. < 1174245337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the idea is to think of natural numbers as defined as being either zero or the succ of something. < 1174245344 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1174245355 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but how do you compute add? < 1174245356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so the first succ is simply pattern matching on the definition < 1174245364 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :without pred < 1174245372 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :add a b = succ (add a (pred b)) < 1174245373 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you do have pred < 1174245382 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in Haskell, essentially: < 1174245396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood the same way as prev_num (n+1) = n < 1174245399 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :data Nat = Zero | Succ {pred :: Nat} < 1174245434 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pred is not an ordinary function, but a field < 1174245434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can pattern match certain things when ...their counterfunction is obvious :) < 1174245441 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :But our only operation on natural numbers is succ < 1174245445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*with functions in the pattern < 1174245472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, it's magic < 1174245503 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, but Succ is a constructor, so it is not just a function but also a pattern you can match on. Thus it really contains pred implicitly. < 1174245550 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(and Haskell allows you to name both simultaneously) < 1174245638 0 :sekhmet!n=pez@ppp-70-226-136-241.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1174245677 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could think of it another way: add a (Succ b) = Succ (add a b) is a defining axiom, not just a calculation. < 1174245763 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174245813 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the book i'm reading informally defines it using that definition, then formally defines it in lambda calculus using some primitive recursion function < 1174245843 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might want to look at something like the Coq proof assistant, which has inductive type definitions built in. < 1174245861 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course you cannot do it in pure lambda calculus. < 1174245934 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :consider the function to be constructed in order to fit the defining axiom, however. < 1174246031 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is a standard trick for embedding such datatypes and pattern matching into lambda calculus, however. < 1174246042 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :add = \m.\n.prim n m (\p.\q.(succ q)) < 1174246056 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :where < 1174246064 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :prim 0 c f = c < 1174246075 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :prim (succ n) c f = f n (prim n c f) < 1174246173 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that prim is something like what Coq defines automatically given the data type definition < 1174246382 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :later < 1174246391 0 :oerjan!unknown@unknown.invalid QUIT :"Hunting for food" < 1174247110 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :How do you get wget to... not write to a file? < 1174247346 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :-O - < 1174247352 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :to write to stdout < 1174247477 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :cool. Thanks. < 1174248436 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...hrm, I can't get my HTTP server to work. Help? http://deadbeefbabe.org/paste/4036 < 1174248925 0 :nazgjunk!unknown@unknown.invalid QUIT :"Leaving" < 1174249542 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174249652 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1174249680 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1174253472 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I wonder... < 1174253494 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :if it would be possible to fund the operation of an ISP without charging. < 1174253521 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :juno? < 1174253668 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1174253712 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'd love it if it were possible to make the Internet -completely- free... < 1174253723 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174254013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :omg commies in my internets! :D < 1174254153 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the internet is a breeding ground for what amounts to communisim anyway... < 1174254164 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :piracy, creative commons... < 1174254191 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174254194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true, i don't like any of those though < 1174254254 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm under the impression it makes programming kinda a payless occupation < 1174254269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if i understand 'creative commons' right < 1174254272 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i might not :) < 1174254402 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, things like open-source tend to de-emphasize the value of creative or innovative programmers, representing coding as more of a form of skilled labor. < 1174254446 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I think of programming as more of an art than a manufacturing job. < 1174254469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :me too, but i'd like to get my pay out of it as well < 1174254476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since there is nothing else i can do < 1174254498 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i could do porno maybe, but that's it < 1174254590 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the main problem is that because you can get so many things on the internet for free, people *expect* everything to be free, and feel entitled to everything without charge < 1174254613 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174254620 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :big players can survive on ad revenue, but it's impossible to make a profit as a small developer that way < 1174254629 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1174254740 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I suppose that's my main problem with open-source philosophy. I give away the source to most of what I make freely, but sometimes I want to make the decision to hang on to what I create. It should be my decision, but things like the GPL take that decision away and make it impossible to maintain control over software built on anything GPLed < 1174254782 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's kinda "forced freedom" that could be considered good for the community, but it fucks over the individual < 1174254840 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and since I see programming as an art and something that is valuable when done properly, rather than hacked together, I think the individual should be important < 1174254925 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :not everyone can have the luxury of living off of people's donations like Stallman. I think he's a little detached from market reality, which should make people question his motivations < 1174255020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1174255021 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :If I release software, it's either under the "Do whatever the fuck you want License" or the source is mine to keep. < 1174255047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what else could it be? < 1174255082 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :GPLed. BSD licensed. Any number of things that get in the way and create false illusions of openness or freedom. < 1174255118 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :If I cared wether someone else "stole" the code I distributed, I wouldn't have given it away in the first place < 1174255150 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174255169 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the GPL is just a viral method for allowing the FSF (which I find dubiously trustworthy) to control the flow of code. < 1174255181 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I don't like the GPL < 1174255229 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and in the same vein, I don't trust any "licenses", because all they serve to do is limit what people can do with code that's supposedly offered to a community for free < 1174255246 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :............................................................................................... < 1174255260 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Licenses, by definition, can only give freedoms. < 1174255309 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In a copyright system, licenses and copyright assignment are the only ways to give anyone other than the original creator the right to copy the work. < 1174255329 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or rather, licenses are the only way to give anyone but the copyright holder(s) said rights. < 1174255335 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So licenses by definition can only give freedoms. < 1174255443 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if you ask me, the only license that isn't a lie is this one, which I urge everyone here to adopt: http://sam.zoy.org/wtfpl/ < 1174255490 0 :nazgjunk!unknown@unknown.invalid QUIT :"Leaving" < 1174255530 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Your philosophy is both bizarre and completely stupid. < 1174255578 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I prefer all rites reserved < 1174255593 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*reversed < 1174255644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*rights too? < 1174255650 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :No < 1174255652 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :http://allritesreversed.com/ < 1174255673 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed, the first one wasn't a correction either < 1174257736 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1174257745 0 :sebbu!n=sebbu@ADijon-152-1-86-151.w81-49.abo.wanadoo.fr JOIN :#esoteric < 1174257753 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...why is math terminology so confusing? < 1174257770 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :couldn't you like, simplify it some? < 1174257851 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which part? < 1174257994 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...like, all of it. < 1174258008 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1174258160 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's not < 1174258197 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :most of the time < 1174258232 0 :sebbu2!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1174258489 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it has to be precise < 1174258511 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and it is already extremely simplified < 1174258549 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i.e. who do you think invented overloading? :) < 1174258563 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but there's like... ten billion different forms of notation. < 1174258582 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I thought math was supposed to keep some uniformity? < 1174258590 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where does it not? < 1174258638 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :math notation is designed for extreme consiseness without being unreadable by those who use it < 1174258646 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*conciseness < 1174258829 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to figure out the notation behind the Fourier transform. < 1174258853 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Which notation? < 1174258853 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :which is? < 1174258865 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :mathmaticians just make up stuff < 1174258902 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :specifically, http://en.wikipedia.org/wiki/Fourier_transform#Definition < 1174258922 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I can't find an explaination on how to read the integral thing. < 1174258964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :integrate the thingie, then take f(upper bound) and subtract f(lower bound) < 1174258971 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't understand integrals? < 1174258973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where f is it integrated < 1174258989 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174259002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the bounds are infinite however. < 1174259006 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :..... < 1174259023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, true, you need a big calculator < 1174259026 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... if it helps any - I've never touched calculus... < 1174259038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well then you have a problem < 1174259044 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :then you are probably going to have some troubles... < 1174259094 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I've only done high school algebra. < 1174259108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, you can't blame math for you not knowing it < 1174259200 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...well, the problem is that I'm trying to learn it... but it's proving extremly difficult. < 1174259207 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :everything from the elongated s to dt is an integral, with upper bound infinity and lower bound minus infinity (this combines to mean integrate over all real numbers) < 1174259227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :trying to pick it up quickly for reading that page? < 1174259235 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...pretty much. < 1174259252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i can't blame you, i've done the same thing < 1174259252 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the part between is essentially a lambda term with free variable t < 1174259265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can't say i understand fourier transform either... < 1174259327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm i seem to get that now < 1174259341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, suppose i have an array full of random stuff < 1174259348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :upper bound is length of it < 1174259350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lower is 0 < 1174259358 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :essentially you can think of integral as a higher-order function < 1174259358 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... what's the result of that notation? Is it a function, a number? < 1174259359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how do i integrate an array? :P < 1174259377 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the result is a complex number in this case < 1174259380 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand fourier transforms < 1174259380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread integration is func -> func < 1174259398 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah... hmmm... < 1174259423 0 :sekhmet!unknown@unknown.invalid QUIT :"kernel++;" < 1174259444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :turns a function a into another function b that at x slopes a(x) < 1174259453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think :) < 1174259457 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :integral :: Measure a -> (a -> Complex) -> Complex < 1174259521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan why will that result in complex numbers? < 1174259524 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the integral < 1174259530 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...yeah, I've never understood that little bit of Haskell-ish notation... :) < 1174259533 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because there is an i in the function < 1174259542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, it's in e^(_) < 1174259556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :e^(x) always results in a real number i think < 1174259560 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1174259563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oki < 1174259568 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not if x is complex < 1174259582 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :e^(ix) is a unit complex number if x is real < 1174259586 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to read up on concepts related to sound waves. < 1174259596 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :or any wave for that matter. < 1174259600 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :e^(a+bi) = e^a * (cos b + i sin b) < 1174259602 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :e^(ix) = cos(x) + i*sin(x) < 1174259616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah < 1174259618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1174259627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry, i'm bad at this < 1174259684 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to translate the Fourier transform into an algorithm... so how do you get compute the integral of something? < 1174259717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i asked oerjan already, but he never answered :< < 1174259727 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :symbollically or numerically? < 1174259748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually, i just threw it in the air < 1174259772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then again, most of what i say is implicitly a question for oerjan < 1174259775 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :numerically is obviously easier than symbolically < 1174259786 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... it looks liike, in the most cases, it's just the area underneath the curve between those limits... in this case infinity. < 1174259798 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if the function x is stepwise continuous you can use numerical methods < 1174259801 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174259812 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so.....how do you compute the area of something that's infinite. :P < 1174259826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what if it's a wav file for example? < 1174259829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :by an integral of course :) < 1174259849 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1174259869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the simplest way is to divide into small intervals and approximate it as constant on each < 1174259876 0 :sekhmet!n=pez@ppp-70-226-136-241.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1174259889 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then for each interval it is just the area of a square < 1174259901 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :riemann sum < 1174259907 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah... just the chunk of the wave that is repeated would be all you need. < 1174259937 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when you take the limit of smaller intervals, that is the riemann integral < 1174259960 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the limit? < 1174259962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, that's why you use sum in actual implementations of fourier < 1174259964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1174259964 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although there are more efficient methods if your function is also differentiable < 1174259973 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1174259996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because often you don't need fourier when you've made the function yourself < 1174260005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you prolly know what it is if you made it < 1174260008 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(requiring less subdivisions for accuracy) < 1174260035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to sleep now -----> < 1174260064 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if it is already a sum of sine waves then it is easier to transform using the known expression for them, yeah < 1174260087 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...what is fourier useful for exactly? < 1174260105 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lots of things < 1174260157 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but expressing a signal as a limit sum of sine waves is the most basic < 1174260182 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1174260215 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :dividing it up by frequency rather than time < 1174260239 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174260279 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so X(a) is the amplitude of the sine wave at frequency a? < 1174260287 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :is the fourier transform used to reproduce chords and multiple waves at the same time? < 1174260293 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :amplitude and phase < 1174260337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually a and -a together give the sine and cosine wave parts. Complex numbers mix them a bit < 1174260361 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :That e^ix = cos x + i sin x thing < 1174260426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :reversed as e^ix + e^(-ix) = 2 cos x and e^ix - e^(-ix) = 2 sin x < 1174260558 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a sum of multiple waves, two for each frequency < 1174260729 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if a signal is truly periodic with frequency f, then only frequencies that are integer multiples of f will appear < 1174260741 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the rest will be 0. < 1174260800 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread no, addition is for that < 1174260830 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... so you just add the outputs? < 1174260836 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :That is essentially the point of Fourier _series_ < 1174260852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, the Fourier transform is linear so it preserves addition < 1174260875 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I mean... the outputs of the sine waves. < 1174260893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread yes < 1174260907 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you do fourier transforms for the opposite < 1174260917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :figuring out what waves have been added < 1174260932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(and once again correct me if i'm wrong...) < 1174260951 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Except there are some weird problems with summing the sine waves if the original function is not nice enough. < 1174260970 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You need to do the limit in a more clever way than simple integration < 1174261150 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :This is because the result of the Fourier transform is not necessarily itself directly Fourier transformable < 1174261198 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it would just be a matter of repeating the process with some constants and signs changed < 1174261268 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about making an interactive programming language for playing around with sound samples mid-play.. < 1174261293 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like... some weird cross between programming and a synthesizer. < 1174261402 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You might want to look at http://en.wikipedia.org/wiki/Discrete_Fourier_transform < 1174261517 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :It is for the case when you have a finite set of time points. < 1174261549 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally all these different forms of Fourier transforms are united by the theory of dual groups. < 1174261611 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Essentially for every kind of time group there is a dual frequency group. The real numbers are their own dual, as are the integers mod n < 1174261643 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*every = every sufficiently nice (commutative, locally compact) < 1174261685 0 :sekhmet!unknown@unknown.invalid QUIT :"ups tests..." < 1174261686 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-ahem- as a precaution... none of your explainations have helped me so far. -gentlemanly smile- < 1174261687 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however the unit circle is dual to the integers, which explains why you get a Fourier _series_ from a periodic signal. < 1174261704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Not even the discrete fourier transform? < 1174261723 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I admit the general stuff was mostly in case someone else was interested < 1174261746 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :time group and dual frequency group means nothing to me. :( < 1174261747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan i don't think he'll need a fourier transform for what he defined < 1174261770 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Well he needs a way to get frequencies from samples, doesn't he? < 1174261781 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think we will :\ < 1174261804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if he's doing what i think he's doing < 1174261814 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I don't need to create sound files... I just want to mix multiple sound files together... among other things. < 1174261821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just a programmer's version of logic audio or guitar pro or such < 1174261854 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.....yeah,.. ish < 1174261860 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Well in that case you just add amplitudes together with coefficients < 1174261871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's what i've been planning to do for ages < 1174261884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i've never had a direct acces to the speaker < 1174261894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though oerjan maybe showed me the way < 1174261897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't know yt < 1174261898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*yet < 1174261925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*acces < 1174261932 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that Windows audio wave thing sounds complicated but it apparently solves the time gap problem < 1174261943 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...probablly heavily concurrent... because you need multiple "processes" playing all at once... like an interactive programming language mixed with a GUI. < 1174262052 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :There was something about mixing there too < 1174262137 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You need that nowmap thing and a way to sum the result :) < 1174262214 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :But then concurrency may not be so important if they are independent - just loop over them for each time block, summing < 1174262235 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :assuming it is not so heavy you need multiple cores... < 1174262246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, if they are done at the same time, it must be O(1) ! < 1174262249 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174262292 0 :jix__!n=jix@dyndsl-080-228-184-131.ewe-ip-backbone.de JOIN :#esoteric < 1174262294 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow if it is anything like that audio wave thing then it will actually be event driven. < 1174262331 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i saw something about getting a callback when the audio device is finished playing a data block < 1174262346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that might help < 1174262350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hate events though < 1174262356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact there seemed to be a bunch of alternatives listed for how to do that