←2007-03-17 2007-03-18 2007-03-19→ ↑2007 ↑all
00:00:26 -!- Sgeo has joined.
00:01:01 <RodgerTheGreat> quines are a bit tricky
00:01:22 <oklopol> hmm
00:01:27 <oklopol> /\//\\\//
00:01:27 <oklopol> / -> \/
00:01:30 <oklopol> could this be used?
00:01:49 <oerjan> no
00:01:54 <oklopol> nah... it would convert everything and you need just some
00:02:02 <oklopol> i don't know if that's why though :)=
00:02:27 <RodgerTheGreat> plus, a \ in the "source" has to be escaped as \\, I think
00:02:28 <oerjan> it would loop. You can _never_ have the result contained in the source, even after unescaping
00:04:44 <oklopol> /a\/\a/\\\//
00:04:44 <oklopol> a/ -> a\/
00:04:48 <oklopol> :D
00:04:54 <oklopol> but
00:05:04 <oklopol> won't help... i'd need an interpreter...
00:05:08 <oerjan> secondly, you cannot essentially have any source be a single character.
00:05:14 <oklopol> yeah
00:05:21 <oerjan> the interpreter is on the wiki page
00:05:25 <oklopol> perl?
00:05:27 <oklopol> isn't it
00:05:28 <oerjan> yep
00:05:31 <oklopol> hmm
00:05:41 <oklopol> i should do some dl'ing then
00:05:46 <oklopol> oh
00:05:53 <oerjan> i just considered adding a debugging option
00:05:59 <oklopol> i'd have to do that anyway :P
00:06:06 <oklopol> if it was an executalbe
00:06:07 <oklopol> *bl
00:06:09 -!- jix has quit (Read error: 110 (Connection timed out)).
00:06:12 <RodgerTheGreat> sounds like a good addition
00:17:47 <SevenInchBread> /sufficiently nonsential enough for much mass production/\/ (but mother(\/\\/pancreas polly\\/\\\/\\/\/ //pancreas polly/\/sufficiently nonsential enough for much mass production\/\
00:18:04 <SevenInchBread> ....
00:18:29 <SevenInchBread> 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.
00:18:42 <oklopol> :D
00:19:49 <SevenInchBread> ...attempting to interpret myself just leaves me going in circles.... but I'm hoping it's asynchronous circles. :)
00:21:57 <oklopol> you loos snefmmp right away there
00:22:01 <oklopol> *lose
00:22:19 <SevenInchBread> ....snefmmp?
00:22:44 <oklopol> i won't write it
00:22:49 <oklopol> sufficiently nonsential enough for much mass production
00:22:58 <oerjan> ok the implementation now prints the program at each step if you give it the -d option.
00:23:39 <SevenInchBread> well.... that was indended to be an "inbetween" encoding... I was hoping it would turn out as (mother being the equivalent of /
00:24:11 <oklopol> mm hmm
00:24:16 <oklopol> i don't know what that means
00:24:16 <oklopol> :\
00:24:32 <oklopol> there is no use in an inbetween encoding
00:24:48 <SevenInchBread> basically I'm thinking you need a replacement that replaces something with a replacement followed by /
00:25:35 <SevenInchBread> ...or something equally convuleted.
00:26:44 <oerjan> in order to be able to recreate an inbetween coding you need something like storing it somewhere as two separate subpieces
00:30:20 <SevenInchBread> well... my head is about to explode.
00:32:45 <oerjan> hm, this debugging was hard to separate from the output. Adding some brackets.
00:36:38 <SevenInchBread> I SHALL TURN THIS INTO AN EASY TO THINK ABOUT GAME.
00:36:57 <oklopol> :)
00:37:43 <oerjan> i am sure that trusty old Mfit and Shanty will be happy to use different characters for / and \ :)
00:38:37 <SevenInchBread> hmmmm.... good idea.
00:39:05 <SevenInchBread> that's essentially what we need.... multiple interpreters.
00:39:39 <oerjan> btw someone asked whether the names Mfit and Shanty mean anything?
00:40:25 <SevenInchBread> their names are fairly important to their function.
00:40:47 <SevenInchBread> ...cleverly disguised iin nonsense words.
00:42:44 <oklopol> too cleverly :<
00:46:24 <oerjan> shanty isn't a nonsense word.
00:46:33 <oklopol> and miff it is neither
00:46:54 <oklopol> that doesn't help though
00:48:19 <oerjan> there are several things called Mfit apparently.
00:48:32 <SevenInchBread> all things are help
00:48:42 <SevenInchBread> and all things are true
00:59:00 <oklopol> 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
00:59:03 <oklopol> or 10
00:59:55 -!- tgwizard has quit (Remote closed the connection).
01:07:41 <bsmntbombdood> s='s=%r;print s%%s';print s%s
01:11:25 <bsmntbombdood> yeah, i win
01:11:49 <oerjan> win what?
01:12:46 <oerjan> a kitschy plastic cup with inscription?
01:14:45 <oklopol> well, i didn't remember you can do ';', neither that you can do "%s"
01:14:48 <oklopol> :)
01:15:35 <bsmntbombdood> ?
01:15:48 <oerjan> i think you mean %r
01:16:03 <oerjan> there is no actual %s format in that code
01:16:33 <oklopol> print(lambda a:a+chr(34)+a+chr(34)+chr(41))("print(lambda a:a+chr(34)+a+chr(34)+chr(41))(")
01:16:58 <oklopol> that is not the original though, took me < 2 min this time
01:17:00 <oklopol> much better
01:17:15 <oklopol> i shall learn it by heart
01:17:20 <oklopol> so i can make it in 20 sec
01:18:05 <oklopol> hehe wrote an interpreter for slashes... and python jammed, it's gone :D
01:18:31 <bsmntbombdood> how does python crashing make you lose your source?
01:18:40 <oklopol> why do they make all interpreters such that infinite loops kill them?
01:18:54 <oklopol> because i don't save it anywhere
01:18:57 <bsmntbombdood> ^C?
01:19:05 <oklopol> too late for that
01:19:30 <oerjan> don't you have perl?
01:19:35 <oklopol> nope
01:19:45 <oklopol> i think i just installed it though
01:19:57 <oklopol> activeperl build 5.8.8
01:20:03 <oklopol> i wonder what that means
01:20:33 <RodgerTheGreat> this is a triumph of speech recognition: http://www.youtube.com/watch?v=KyLqUf4cdwc&mode=related&search=
01:21:00 <RodgerTheGreat> and this is why speech recognition is a really flawed idea for coding
01:21:33 <SevenInchBread> hmmm...
01:21:33 <bsmntbombdood> It would be terrible to code with speech recognition
01:21:48 <SevenInchBread> I'm writting up the info for my collaboration thing....
01:21:53 <oerjan> it might work with some languages, maybe forth, which has few delimiters
01:22:40 <SevenInchBread> basically you just need to submit an interpreter in any language... the main process will feed the tokens one by one to the interpreters...
01:22:40 <RodgerTheGreat> Perl is pretty much the worst language he could be using here in terms of character use
01:23:24 <SevenInchBread> 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)
01:23:39 <oklopol> god that's good :o
01:23:49 <oklopol> i didn't know speech recognition is that good yet
01:24:42 <RodgerTheGreat> obviously speech recognition *UI* isn't that good yet
01:25:11 -!- graue has quit ("Leaving").
01:26:04 <oklopol> he just doesn't know how to use it
01:26:33 <oklopol> if 'press capital I' means 'I', i think it's pretty obvious 'capital I' does not work
01:26:57 -!- GreaseMonkey has joined.
01:28:23 <oklopol> i'd prefer it to understand certain syllables as 0,1,2,3...E,F and do the rest myself
01:29:04 <bsmntbombdood> man, that's terrible
01:29:26 <oklopol> are there better one's?
01:29:33 <oklopol> i've never seen anything like that :|
01:30:05 <oklopol> *ones
01:32:53 <RodgerTheGreat> OSX has pretty nifty recognition, but it isn't designed to control the whole interface
01:33:08 <bsmntbombdood> It is cool how it can control everything
01:33:11 <RodgerTheGreat> I wouldn't be surprised if 10.5 has better integration
01:33:24 <bsmntbombdood> But controlling everything would be infuriating
01:33:31 <RodgerTheGreat> depends
01:33:47 <oklopol> http://www.youtube.com/watch?v=S9T3RXFDtfo&NR
01:33:48 <bsmntbombdood> Pressing keys is faster than verbalizing
01:34:08 <bsmntbombdood> M-k n, or "go to next window"
01:34:08 <oklopol> not really :\
01:37:20 <bsmntbombdood> how long does it take to say "go to active window", compared to M-k k?
01:37:51 <oklopol> why do you have to day "go to active window"?
01:38:00 <oklopol> why can't you say "em kay kay"
01:38:20 <oklopol> or "em 'n' kay kay"
01:38:34 <oklopol> or just 'zwaf'
01:38:46 <bsmntbombdood> or just use my keyboard
01:39:10 <oklopol> well, i talk faster than type
01:39:13 <oklopol> so i wouldn't know
01:39:22 <bsmntbombdood> I've heard of speech recognition software causing speech problems
01:39:34 <bsmntbombdood> from changing your voice so it can recognize it
01:40:00 <oklopol> well, i don't see why you'd want to use english
01:40:38 <oklopol> you could easily make it recognize certaing murmurs
01:40:54 <oklopol> a phone did that 5 years ago i recall
01:41:35 <oklopol> of course, coding would be idiotic if you have hand to do it with
01:42:01 <oklopol> but i think it's be a faster way to navigate around the os
01:42:20 <oklopol> i don't like moving
01:43:07 <oklopol> (that last part had no relation to the former ones)
01:45:18 <oklopol> i'm starting to think it'd not be faster, but i still think it's cooler
01:51:35 <bsmntbombdood> star trek
01:54:00 <RodgerTheGreat> 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
01:54:36 <RodgerTheGreat> essentially, LCARS has no programs- they're all created from LCARS's modular libraries at runtime
01:54:45 <oklopol> well, at that point i don't think there'd really be any need for humans on the ship...
01:54:49 <bsmntbombdood> fun
01:54:57 <RodgerTheGreat> yeah...
01:55:25 <RodgerTheGreat> LCARS would require a ludicrous amount of AI under the hood to work in speech mode
01:55:32 <RodgerTheGreat> the GUI is pretty spiffy, though
01:55:40 <bsmntbombdood> or keykeyboard mode...
01:56:26 <RodgerTheGreat> the idea of an interface consisting almost entirely of contextual menus and controls seems pretty workable
01:58:23 <SevenInchBread> eh, if a GUI makes something easier, then I'm all for it.
01:59:00 <SevenInchBread> ..
01:59:07 * SevenInchBread just saw what you guys were talking about.
01:59:11 <RodgerTheGreat> in most cases, the minimalist GUIs we see on TV would never work, but LCARS is actually very well thought out
02:00:34 <RodgerTheGreat> it's only real failing is multitasking, but multitasking isn't always what it's cracked up to be
02:01:02 <RodgerTheGreat> plus, on star trek there's always plenty of screens allocated for the various tasks being done
02:01:52 <bsmntbombdood> methinks someone's a little too into it
02:02:00 * RodgerTheGreat shrugs
02:03:02 <RodgerTheGreat> I just like how the operating system and the interface are deeply integrated, rather than the latter being an afterthought built seperately
02:07:58 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:09:05 <SevenInchBread> http://esoteric.voxelperfect.net/wiki/Kallisti
02:11:29 <bsmntbombdood> u r teh clevar!!!!!!!!!!!
02:11:41 <RodgerTheGreat> oh god, it begins again
02:12:47 <RodgerTheGreat> hm
02:13:34 <bsmntbombdood> i don't get it
02:13:40 <RodgerTheGreat> I dunno, it seems somehow less elegant than dupdog
02:13:42 <RodgerTheGreat> :D
02:15:24 <SevenInchBread> too bad.
02:15:30 <SevenInchBread> Messiness == fun
02:18:06 <oklopol> SevenInchBread i don't get that :D
02:18:47 <SevenInchBread> I couldn't think of a way to allow an arbitrary number of interpreters globally alter the source code...
02:18:59 <SevenInchBread> so it can't be totally self-modifying.
02:19:07 <oklopol> they get the code, they return the code
02:19:12 <oklopol> it's that easy
02:19:29 <oklopol> plus, they always get a number indicating which token they are running
02:19:41 <oklopol> and they return another number indicating the next token
02:19:55 <SevenInchBread> 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.
02:20:54 <oklopol> well, make stdout the main program running the code
02:21:16 <oklopol> normal output is done like '\info \info' to the main program,
02:21:26 <oklopol> sorry
02:21:26 <SevenInchBread> and if I let the interpreters affect the control flow of every other interpreter... there'd be countless race conditions.
02:21:47 <oklopol> output: ... endvalues: string number
02:21:48 <SevenInchBread> each of the interpreters should be independent.
02:21:50 <oklopol> hmm
02:22:15 <oklopol> well, i meant you'd just assign one at the time
02:22:26 <oklopol> i can't figure out another way to do it with just stdio
02:23:14 <oklopol> it's boring if there's no self-modification
02:23:21 <oklopol> then there's really no language
02:24:04 <SevenInchBread> ...I guess the interpreters could be simply be put in order...
02:24:29 <oklopol> well, that's what i implicitly suggested
02:25:29 <SevenInchBread> not sure how the parser would no where to start over during a self-modification though...
02:26:55 <oklopol> hmm
02:27:10 <oklopol> i'm pretty sure that's not a sentence :|
02:27:16 <oklopol> but... hmm...
02:27:23 <oklopol> know
02:27:24 <oklopol> ah
02:27:36 <oklopol> SevenInchBread i already solver that
02:27:56 <oklopol> they get code and code pointer, they return new code and new code pointer
02:28:03 <oklopol> oh yeah, you're afraid of pointers
02:28:07 <oklopol> just an index :)
02:28:21 <oklopol> *solved goddamnit
02:28:47 <SevenInchBread> not every language has pointers.
02:28:58 <oklopol> mmmm huh?
02:29:05 <SevenInchBread> ...include Python (which I'll probably be implementing it in... or maybe Ruby)
02:29:09 <SevenInchBread> *including
02:29:27 <oklopol> you mean they wouldn't understand a pointer given them?
02:29:28 <SevenInchBread> oh.
02:29:37 <SevenInchBread> you mean... just a number?
02:29:54 <SevenInchBread> that's a little suspicious... but it would work.
02:29:56 <oklopol> 1. that's stupid, pointer can't be anything more than a number, because everything is a number 2. yes
02:30:31 <oklopol> pointer is just a way to imply a number means an index, nothing more
02:30:44 <oklopol> just that it usually means an index to all the memory
02:30:54 <oklopol> i don't see why you go all berzerk every time you see it :)
02:31:32 <oklopol> anyways, i have some serious sleeping to do -------------------------->
02:31:45 <RodgerTheGreat> cya
02:43:10 <SevenInchBread> ...-shrug- just misunderstanding of terminology.
02:43:22 <SevenInchBread> I have nothing against pointers... they're very useful.
02:56:00 <SevenInchBread> ....I could take a dupdog-ian approach that doesn't use tokens.
02:56:48 <SevenInchBread> just sheer... modification of the source code.
02:59:27 <RodgerTheGreat> sounds awesome
02:59:50 <RodgerTheGreat> the more this new language becomes like dupdog, the more fun I predict programming with it shall become
03:00:05 <RodgerTheGreat> I still think Dupdog *might* be tc
03:01:56 -!- ShadowHntr has joined.
03:02:33 <RodgerTheGreat> hi, ShadowHntr
03:02:47 <ShadowHntr> evening
03:02:50 <oerjan> i just managed to run the Hello World program in the Haskell interpreter
03:03:35 <oerjan> (Dupdog interpreter)
03:03:53 <RodgerTheGreat> kickass
03:04:01 <RodgerTheGreat> still works?
03:04:18 <oerjan> Yeah, after I fixed a bug in the interpreter
03:04:53 <RodgerTheGreat> cool
03:05:53 <SevenInchBread> heh, funny that dupdog remained unnoticed for a couple of months... :)
03:08:21 <RodgerTheGreat> and then a crack team of bored IRCers found it and started using it
03:14:40 <SevenInchBread> Kallisti 5.0 - http://esoteric.voxelperfect.net/wiki/E%9AE1EBEBE%AFF%83F%84%E1F%83
03:14:48 <SevenInchBread> ...
03:15:08 <SevenInchBread> http://esoteric.voxelperfect.net/wiki/Kallisti
03:21:31 <SevenInchBread> ...dupdog is like, the laziest invention ever.
03:27:25 <SevenInchBread> does this fall under the juristiction of ABCDEF?
03:29:42 <RodgerTheGreat> augh!
03:29:53 <RodgerTheGreat> it's explicitly stated to never abbreviate that!
03:30:04 <SevenInchBread> ...
03:30:27 <RodgerTheGreat> The Adjudicated Blind Collaborative Design Esoteric Factory is an important name that deserves more than an acronym.
03:36:02 <SevenInchBread> >.>
03:36:07 <SevenInchBread> !help
03:36:10 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
03:36:12 <EgoBot> 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
03:45:43 <SevenInchBread> RodgerTheGreat, where is the Haskell interpreter for dupdog at?
03:45:57 <oerjan> i haven't put it up yet
03:46:02 <SevenInchBread> ah.
03:46:23 <oerjan> need to add a few features such as a main function :)
03:46:25 * SevenInchBread lost interest in dupdog... so never got around to fully fixing his implementation.
03:46:41 <oerjan> there is another implementation in thutu however.
03:46:48 <SevenInchBread> heh, so it's functional now?
03:46:58 <SevenInchBread> any implementation will do.
03:47:39 <oerjan> for some reason ais523 (i think it was him) didn't put a link on the wiki
03:48:08 <oerjan> it was on the channel recently, a pastebin link i think
03:50:50 <SevenInchBread> ...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.
03:52:32 <oerjan> http://pastebin.ca/raw/397577 but you need to change 128 to 257, the current Hello World assumes mod 257 wrapping
03:54:24 <SevenInchBread> eh... I wanted the source. :P
03:55:37 <oerjan> for some reason ais523 hasn't told us the original thutu.
03:57:54 <SevenInchBread> I think she's a terrorist.
04:01:09 <oerjan> you think she's a she?
04:02:32 <oerjan> anyhow i hope my interpreter will deal better with lots of duplications. Shared functional data structure.
04:02:51 <oerjan> although with Haskell you never know about space.
04:03:32 <SevenInchBread> nah, wasn't sure. I kind of prefer she over he when the gender is unknown.
04:06:08 <SevenInchBread> I guess the wrap mod is implementation defined...
04:06:24 <oerjan> i intend to make it an option
04:06:52 <SevenInchBread> in the meantime I should write the specification for Stue... and maybe fix up the interpreter a bit.
04:07:01 <oerjan> indeed i intend to have two: one used for output and one for internal/debugging use
04:07:18 <SevenInchBread> and work on some of my unfinished languages... I've got one based on gravity sources.
04:07:52 <SevenInchBread> not using any complicated math though... just simple spatial relations.
04:24:36 -!- wooby has joined.
04:32:09 -!- Arrogant has joined.
04:41:51 -!- GregorR_ has joined.
04:43:05 -!- GregorR_ has quit (Remote closed the connection).
04:59:03 <bsmntbombdood> deadbeefbabe
04:59:03 -!- wooby has quit (Read error: 104 (Connection reset by peer)).
04:59:16 -!- wooby has joined.
05:02:37 -!- GreaseMonkey has quit (Remote closed the connection).
05:27:15 -!- ShadowHntr has quit ("End of line.").
05:29:50 -!- GreaseMonkey has joined.
05:31:32 <GreaseMonkey> ok, my bot works, now it's onto coding the lang
05:33:07 <bsmntbombdood> my bot is better~
05:33:25 <bsmntbombdood> :P
05:36:34 <GreaseMonkey> i'm still making my own
05:36:38 <GreaseMonkey> so yeah
05:36:52 <GreaseMonkey> sadly my HD died and took GreaseBot with it
05:36:59 <GreaseMonkey> but there's new hope
05:37:35 <GreaseMonkey> 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.
05:37:55 <GreaseMonkey> now i'm working on the BrainSecks interpreter
05:37:58 <bsmntbombdood> ~raw TICKLE GreaseMonkey
05:38:54 <GreaseMonkey> don't you mean ~ctcp TICKLE GreaseMonkey ?
05:38:58 <bsmntbombdood> no
05:39:10 <GreaseMonkey> hmm, tickle isn't a command
05:39:16 <bsmntbombdood> I know
05:40:07 <GreaseMonkey> my new bot has several things of the old bot: the "PASS/NICK/USER" join method, and raw commands are like:
05:40:22 <GreaseMonkey> $PRIVMSG #esoteric i challenge you bsmnt_bot
05:57:02 -!- SevenInchBread has quit (Read error: 145 (Connection timed out)).
06:00:15 -!- Arrogant has quit ("Leaving").
06:39:20 <GregorR> Woooooooh, I have the best LCARS theme evar ^^
06:39:30 <bsmntbombdood> falsehood
06:39:39 <GregorR> >_>
06:39:43 <GregorR> :(
06:40:11 <GreaseMonkey> hi gregor, i'm working on an esolang for my bot
06:40:37 <bsmntbombdood> GregorR ==> _|_
06:41:05 <GreaseMonkey> bsmnt: i suggest you get your bot to do that
06:41:12 <bsmntbombdood> do what
06:41:31 <GreaseMonkey> print stull like that
06:41:34 <GreaseMonkey> *stuff
06:41:35 <GreaseMonkey> like:
06:41:41 <GreaseMonkey> ~fu nickname
06:41:50 <GreaseMonkey> ...or not.
06:43:13 <bsmntbombdood> ~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))))
06:43:19 <bsmntbombdood> ~fu GreaseMonkey
06:43:19 <bsmnt_bot> fuck you, GreaseMonkey
06:44:11 <RodgerTheGreat> lmao
06:44:25 <RodgerTheGreat> that was absurdly involved
06:44:29 <GreaseMonkey> hmm, i cud replicate that in brainsecks code....
06:44:35 <RodgerTheGreat> and yet so funny...
06:44:47 <GregorR> >_^
06:44:49 <GregorR> ^_<
06:46:03 <GreaseMonkey> x00>"PRIVMSG "%1[>,]" :"%0[>,]x0A>x00<[<]>[.>]
06:46:07 <GreaseMonkey> wait
06:46:14 <GreaseMonkey> x00>"PRIVMSG "%1[>,]" :fuck you, "%0[>,]x0A>x00<[<]>[.>]
06:46:23 <GreaseMonkey> yays, my code is shorter
06:46:31 <GreaseMonkey> what lang is your bot made in, bsmnt?
06:46:37 <bsmntbombdood> python
06:46:47 <GreaseMonkey> k
06:47:00 <GreaseMonkey> im making my second one in C, like the first
06:49:40 <GreaseMonkey> ...i love for() loops :D
06:49:54 <bsmntbombdood> ...why?
06:50:47 <RodgerTheGreat> FOR...NEXT loops are the best loops of all time
06:50:54 * RodgerTheGreat high-fives GreaseMonkey
06:54:24 <bsmntbombdood> for loops are just glorified while loops
06:55:20 <RodgerTheGreat> pfft
06:55:32 <RodgerTheGreat> while loops are just underfeatured FOR...NEXT loops
06:55:57 <bsmntbombdood> nnnnnnnnnnnnn
07:00:31 <GreaseMonkey> for(i=0;array[i];i++){ /* stuff goes here */ }
07:00:36 <GreaseMonkey> beat that
07:01:10 <bsmntbombdood> i=0;while(array[i]){/*stuff goes here*/ i++}
07:01:47 <GreaseMonkey> in all fairness to whitespace:
07:01:47 <GreaseMonkey> for(i=0;array[i];i++){/*stuff goes here*/}
07:01:54 <GreaseMonkey> i=0;while(array[i]){/*stuff goes here*/i++;}
07:01:59 <GreaseMonkey> =X
07:02:00 <GreaseMonkey> =D
07:02:30 <bsmntbombdood> just because `while' is more letters than `for'
07:02:39 <GreaseMonkey> oh, and there's always: for(p=str;*p;p++){/* stuff goes here */}
07:03:06 <GreaseMonkey> i find for(i;c;p){s;} tidier
07:03:21 <GreaseMonkey> than i;while(c){s;p;}
07:03:32 <bsmntbombdood> yeah
07:07:16 <GreaseMonkey> hey, wanna ~fu another bot?
07:07:35 <GreaseMonkey> on #uncyclopedia , there's a SupyBot under the nick "AutoRTB"
07:07:42 <GreaseMonkey> ~fu AutoRTB
07:07:42 <bsmnt_bot> fuck you, AutoRTB
07:07:55 <GreaseMonkey> ~fu 1 2
07:07:55 <bsmnt_bot> fuck you, 1 2
07:08:05 <GreaseMonkey> k, so it doesn't split it into parameters
07:19:06 <GreaseMonkey> afk food
07:35:33 <GreaseMonkey> back
07:39:37 <bsmntbombdood> mmm, food
07:40:14 <RodgerTheGreat> 'night, guys
07:40:19 <RodgerTheGreat> I need to hit the hay
07:40:49 -!- RodgerTheGreat has quit.
07:50:54 -!- anonfunc has joined.
07:51:20 -!- oerjan has quit ("ZZNNNNRRRKKKK").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:25:03 -!- ShadowHntr has joined.
09:27:00 -!- ShadowHntr has quit (Client Quit).
09:31:42 <Sgeo> twos = iterate (2^) 0
09:31:49 <Sgeo> discuss
09:51:31 -!- Sukoshi has joined.
09:53:42 -!- RoboMonkey has joined.
09:53:50 <RoboMonkey> hi
09:54:05 <RoboMonkey> brainsecks interpreter works :D
09:54:15 <RoboMonkey> sadly only one command can be used though
09:54:39 <GreaseMonkey> that program: x00>"PRIVMSG "%2[>,]>x01%0[>,]x0A>x00<[<]" :"[<]>[.>]
09:55:07 <GreaseMonkey> ?x00>"PRIVMSG "%1[>,]>x01>"ACTION ">x01%0[>,]x01>x0A>x00<[<]" :"[<]>[.>]
09:55:08 <Sgeo> twos = iterate (2^) 0
09:55:11 <GreaseMonkey> \dances
09:55:12 <RoboMonkey> ACTION <CTCP>dances<CTCP>
09:55:51 <GreaseMonkey> ?x00>"PRIVMSG "%1[>,]>x01>x01>"ACTION "%0[>,]x01>x0A>x00<[<]" :"[<]>[.>]
09:55:52 <GreaseMonkey> \dances
09:55:53 * RoboMonkey dances
09:55:59 <GreaseMonkey> ooh yeah :D
09:56:13 <GreaseMonkey> sadly she only responds to me
09:57:12 <Sgeo> Someone please find number of digits of 2^(2^(2^(2^(2^(2^(2^0))))))
09:57:21 <Sukoshi> Not I.
09:58:38 <GreaseMonkey> 65536^2
09:58:59 <GreaseMonkey> 4294967296
09:59:03 <GreaseMonkey> 10 digits
09:59:19 <GreaseMonkey> \10 digits
09:59:20 <RoboMonkey> 10 digits
09:59:22 <Sgeo> um..
09:59:26 <Sgeo> no
09:59:34 <GreaseMonkey> \:(
09:59:35 <RoboMonkey> :(
09:59:39 <Sgeo> (2^(2^(2^(2^(2^(2^0))))) has over 19 thousand digits
09:59:50 <GreaseMonkey> i doubt it
10:00:01 <Sgeo> 19729 digits
10:00:22 <GreaseMonkey> 2^(2^(2^(2^(2^(2^(2^0)))))) -> 2^(2^(2^(2^(2^(2^1))))) -> 2^(2^(2^(2^(2^2))))
10:00:43 <GreaseMonkey> 2^(2^(2^(2^(2^2)))) -> 2^(2^(2^(2^4))) -> 2^(2^(2^16))
10:00:59 <Sgeo> In haskell
10:01:00 <GreaseMonkey> 2^(2^(2^16)) -> 2^(2^256) -> ... oh.
10:01:01 <Sgeo> length $ show $ (2^(2^(2^(2^(2^(2^0))))))
10:01:01 <Sgeo> 19729
10:01:15 <Sgeo> Put another 2^ in front
10:01:19 <Sgeo> how many digits?
10:01:19 <GreaseMonkey> wait
10:01:22 <Sukoshi> Someone can do math *clap clap clap*.
10:01:27 <GreaseMonkey> 2^(2^65536)
10:02:42 <GreaseMonkey> $QUIT
10:02:43 -!- RoboMonkey has quit.
10:02:52 <GreaseMonkey> actually i gotta sleep
10:03:03 <GreaseMonkey> gonna sleep now, gnight
10:03:13 <Sgeo> g'night GreaseMonkey
10:04:01 <GreaseMonkey> ?x00>"PRIVMSG #esoteric :gnight">x0A>x00<[<]>[.>]
10:04:03 <GreaseMonkey> \
10:04:08 <GreaseMonkey> oops i'd quit it
10:04:10 -!- GreaseMonkey has quit ("Woot! RoboMonkey works! Woot again!").
10:04:46 <Sukoshi> What's a cheap FPGA?
10:05:38 <Sukoshi> Or a cheap embedded device preferrably with a FORTH on-die, but not neccessarily so.
10:07:25 * Sgeo asks in Yahoo! Answers
10:10:11 <Sukoshi> Thanks. That's sure to get answers.
10:11:37 <Sgeo> I meant about my question
10:11:42 <Sgeo> >.>
10:12:20 <Sukoshi> Thanks, I guess.
10:13:25 -!- nazgjunk has joined.
10:32:38 -!- wooby has quit (Read error: 104 (Connection reset by peer)).
10:35:25 -!- sebbu has joined.
11:03:11 -!- UpTheDownstair has joined.
11:03:43 -!- Sukoshi has quit ("さあ、ね。もう帰るわ!待ってね!").
11:14:27 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
11:47:48 -!- UpTheDownstair has changed nick to nazgjunk.
11:52:29 -!- jix has joined.
12:04:59 -!- Sgeo has quit ("Leaving").
13:04:28 -!- UpTheDownstair has joined.
13:05:45 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
13:05:50 -!- UpTheDownstair has changed nick to nazgjunk.
13:06:56 -!- sebbu2 has joined.
13:19:28 <oklopol> <anything> ::= <anything>
13:25:41 -!- sebbu has quit (Read error: 110 (Connection timed out)).
13:55:01 -!- RodgerTheGreat has joined.
13:55:21 <RodgerTheGreat> hi guys
13:56:37 <oklopol> hijay
13:57:00 <RodgerTheGreat> what are you up to this morning, oklopol?
13:58:35 <oklopol> 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
13:58:44 <oklopol> that is all
13:58:51 <oklopol> i'd like to make my lang complete today
13:58:53 <oklopol> but
13:59:02 <oklopol> i gotta read for my matriculation exams tomorrow
13:59:07 <oklopol> the english thingie
13:59:15 <oklopol> ...and ya?
13:59:18 <oklopol> :P
13:59:59 <RodgerTheGreat> I'm probably going to need to do some homework, but for now I'm just surfing
14:00:24 <oklopol> i had this idea about a lang where you have a concurrent for-each
14:00:31 <oklopol> everything is done at the same time
14:00:45 <oklopol> this is an issue when doing cellular automatons etc
14:00:51 <oklopol> you need to do the same thing for all
14:00:55 <RodgerTheGreat> hm. so a foreach would essentially just thread everything out?
14:01:10 <oklopol> you can have two lists and copy from one to one, swapping all the time
14:01:20 <RodgerTheGreat> lol- you should call it a noweach instead of a foreach
14:01:31 <oklopol> BUT that requires the whole array to be copied every time
14:01:34 <oklopol> which is slow
14:01:43 <oklopol> so you have to manually optimize in each case
14:01:47 <oklopol> AND
14:02:10 <oklopol> you can't just have the array and move, for example with wireworld, everything like the rules say
14:02:17 <oklopol> because only some parts move
14:02:34 <oklopol> that's very tedious to do, and the thing inherent in cellular automatons fades
14:02:39 <oklopol> the fact you only have one rule
14:02:54 <oklopol> so noweach would make those optimizations automatically
14:03:00 <oklopol> since i think i know how to do it
14:03:29 <oklopol> you just have to know how far the thingies CAN check for other living things, a living thing being one where rules apply
14:03:55 <oklopol> so... i'd optimize memory usage and cut out redundancy automatically for simple automatons like wirewordl
14:03:56 <oklopol> *ld
14:04:11 <oklopol> had this idea when making lopoda, which is kinda a cellular automaton
14:04:22 <oklopol> it's not really one though
14:04:28 <RodgerTheGreat> hm
14:04:28 <oklopol> well
14:04:32 <oklopol> maybe it is
14:04:42 <oklopol> god i talk a lot
14:04:43 <oklopol> :\
14:05:18 <oklopol> cellular automatons can be done like that already, for example with mark something's cellebration
14:05:33 <oklopol> it's just it's not really a language, just a set of modifiable rules
14:05:48 <RodgerTheGreat> I think a noweach would be a genuinely useful feature- something not often seen in esolangs
14:05:57 <oklopol> you know, textboxes for "live while n neighbours"
14:06:07 <RodgerTheGreat> 'course, some of the side effects might be weird...
14:06:16 <oklopol> why is that?
14:07:04 <oklopol> i'm using an iterator that can change current cell, check neighbour cells and leave messages for current cells
14:07:25 <oklopol> *leave messages for neigbour cells
14:08:04 <oklopol> this is not the language i've designed really, it was just something i couldn't get outta my head when reading english
14:08:31 <oklopol> btw does bnf have a parser?
14:08:38 <RodgerTheGreat> 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
14:08:41 <oklopol> i've been making one, i don't think i'm the first :\
14:08:50 <RodgerTheGreat> I'm not aware of one...
14:09:13 <RodgerTheGreat> *think iteratively
14:09:24 <oklopol> hmm, i use bnf with simplified regexes... and regexes postfix -> prefix
14:09:30 <oklopol> because it's easier to parse
14:09:45 <oklopol> and math is pre-/infix, why shouldn't regexes be
14:10:07 <oklopol> and i like it when things are counterintuitive
14:10:18 <oklopol> i suppose that's why i'm on this chan
14:10:40 <oklopol> you got my brain going again :<
14:10:53 <oklopol> how can i read the big book of tautologies now?
14:11:06 <oklopol> *maybe black book
14:11:29 <RodgerTheGreat> heh
14:12:09 <oklopol> 'the' had some sick quirks, but most of it i would've known 8 years ago
14:12:26 <oklopol> remember explaining one of the things i read there to a friend on the first grade
14:12:37 <oklopol> but, still it takes me ages to read
14:12:46 <oklopol> because i'm so slow at understanding text
14:13:04 <oklopol> http://www.vjn.fi/212.htm
14:13:08 <oklopol> something i wrote about this
14:14:13 <oklopol> i hope it's in english
14:14:17 <oklopol> forgot already :D
14:14:21 <oklopol> ya
14:15:42 <oklopol> noweach, lopoda, nopol implementation, oklotalk, nestor
14:15:54 <oklopol> i'd have some esoteric month doing those
14:16:03 <oklopol> oklotalk is not that esoteric though
14:16:36 <oklopol> an apl (or just apl if you consider the 'a' is an article in it's own right) thingie
14:16:48 <oklopol> that borrows the best of haskell and lisp
14:16:57 <oklopol> quoting from lisp, actually
14:17:27 <oklopol> i don't know what's from haskell since i can't remember all the things i've already thought through
14:17:39 <oklopol> but... prolly a lot
14:18:20 <oklopol> because i like python... but it doesn't use tail recursion (i think) and it isn't lazy
14:18:27 <oklopol> well
14:18:53 <oklopol> fib=[1 {--n+-n}] would be haskellish
14:19:11 <oklopol> you can specify a list as it's first values and a lambda to calc the rest
14:19:22 <oklopol> the lambda is fed an iterator object
14:19:40 <oklopol> in this case n, because it's the only free var in the lambda, so no need to specify explicitly
14:20:03 <oklopol> - is unary minus, but with an iterator it means "last"
14:20:19 <oklopol> and actually, the lambda should be {!--n+!-n} since we need the values
14:20:39 <oklopol> adding iterators is defined, as everything is always defined (:P) but makes no sence in this case
14:21:06 -!- anonfunc has quit.
14:21:20 <oklopol> 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
14:21:25 <oklopol> it shouldn't be a problem
14:21:45 <oklopol> plus, i'm making all optimizations explicit as well of course
14:21:51 <RodgerTheGreat> cool
14:21:52 <oklopol> and you can suggest optimizations
14:22:00 <oklopol> without need to alter code
14:22:09 <oklopol> you can have code and optimization separate
14:22:30 <oklopol> but, these are of course the more ambitious things i design for all my langs
14:22:48 <oklopol> that i'm able to code in ten years if i'm lucky :)
14:23:12 <oklopol> i'm making apl purely functional for one
14:24:10 <oklopol> you can quote lambdas to add them in a list `+ `{_*_} `{_-1} would make a list of 3 lambdas, or functions, no difference in oklotalk
14:24:25 <RodgerTheGreat> you know, your ideas for "intelligent books" would be an interesting thing to apply to wiki-based books, or wikis in general
14:24:26 <oklopol> and that'd be pretty mych exactly the same as . in haskell
14:24:38 <oklopol> yeah, i thought about that too
14:24:53 <oklopol> then again, if it's in my head i consider it done
14:25:02 <oklopol> one reason for me not being that productive that often
14:25:03 <SimonRC> hi
14:25:05 <oklopol> hi
14:25:39 <oklopol> i.must.go.feck.this.all------------------------------>
14:25:43 <RodgerTheGreat> hi, SimonRC
14:29:18 * SimonRC reads oklopol's article.
14:30:04 <SimonRC> oklopol: Go read Tim Berners-Lee's writings on the "Semantic Web".
14:31:26 <oklopol> i might, if you link it to me
14:32:21 <oklopol> if you read it in 45 secs, by the way, i'm quite impressed :)
14:32:32 <oklopol> now, really, REALLY really ---------------------------------->
14:33:01 <RodgerTheGreat> really REALLY 09:31am?
14:34:17 <SimonRC> I said that a bit late
14:56:12 <oklopol> ",[.,]" ->
14:56:12 <oklopol> {^(inc=`+)|(dec=`-)|(nxt=`>)|(prv=`<)|(out=`.)|(in=`,)|(loop=`[*.`])}
14:56:12 <oklopol> -> {out _[0]}
14:56:12 <oklopol> >>> <in object, content: ",">
14:56:22 <oklopol> rego ------------------------------>
15:18:24 -!- helios24 has quit ("Leaving").
15:45:37 -!- oerjan has joined.
15:49:00 -!- UpTheDownstair has joined.
15:51:26 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
15:58:28 -!- UpTheDownstair has quit ("Leaving").
16:32:25 -!- sekhmet_ has joined.
16:32:43 -!- sekhmet has quit (Nick collision from services.).
16:33:00 -!- sekhmet_ has changed nick to sekhmet.
16:47:49 <oklopol> http://www.vjn.fi/beepiano.py
16:48:02 <oklopol> made this at school :PP fun toy
16:50:37 <oerjan> Somehow I didn't have the impression that okokokoko was about music.
16:50:43 <RodgerTheGreat> oh, sweet- a simple piano
16:51:06 <oklopol> i wasn't specifically, it's about everything
16:51:13 <oklopol> it's a glorified foo
16:51:15 <oklopol> :)
16:51:46 <oerjan> i see. btw does the word "oklopol" mean anything?
16:52:09 <oklopol> it's a make-believe world we've written a few stories about
16:52:20 <oklopol> www.vjn.fi read when you learn finnish :)
16:52:30 <oerjan> when i first saw your name i assumed you were polish :)
16:52:33 <oerjan> *nick
16:52:33 <oklopol> haha
16:52:42 <RodgerTheGreat> what's the difference between a real word and a make-believe word?
16:52:50 <oklopol> this is the real world
16:52:52 <oerjan> marketing
16:52:57 <oklopol> make-believe is some other one
16:53:01 <RodgerTheGreat> a word's meaning is simply what you hold behind it
16:53:14 <oklopol> in oklopol, you'd call this one a bake-believe world
16:53:16 <oklopol> though make
16:53:18 <oklopol> not bake
16:54:07 <oklopol> real is just a this pointer
16:54:22 <oerjan> i have a vague recall that "oklo" means window in Czech, so "oklopol" would be a window Pole whatever that is
16:54:31 <RodgerTheGreat> lol
16:55:00 <RodgerTheGreat> we must invent a device known as a "window pole"
16:55:27 <RodgerTheGreat> or create a language with this name
16:55:28 * oerjan recalls the pole vault exercise from the FRC Hellympics
16:59:20 <oklopol> btw if you can tell me a way to give the loudspeaker values directly, please enlighten me
16:59:34 <oklopol> i can only make square with that obviously
16:59:46 <oklopol> plus, you have to specify lenght beforehand
17:00:03 <oklopol> it'd get ugly to make holding mean a longer tone
17:00:34 <oklopol> i know how to access the pc speaker with asm, but that's no good since pc speaker is just square
17:02:13 <oklopol> hehe learning black diamond now :P
17:02:30 <oklopol> screw the exam, i'm playing beepiano!
17:06:56 <oerjan> i suppose the PlaySound function might be what you want
17:08:19 <oklopol> what lang, what usage
17:08:27 <oklopol> what function
17:09:10 <oerjan> the winsound module you already use
17:09:24 <oklopol> hmmm
17:09:28 <oklopol> i've used that
17:09:29 <oerjan> it seems more flexible than Beep
17:09:37 <oklopol> with my brainfuck player for example
17:09:43 <oklopol> but it requires me to create a wav
17:09:55 <oklopol> which is easy but imo idiotic to do real time
17:11:04 <oerjan> but perhaps you could pregenerate one for each frequency and use SND_LOOP
17:12:16 <oklopol> indeed
17:12:34 <oklopol> i first though i'd make real-time tone creating possible in the player
17:12:41 <oklopol> i might start thinking about that then
17:13:33 <oerjan> whoops. there appears to be a stupid restriction.
17:14:25 <oerjan> you cannot use string data except to play a single time synchronously, it seems
17:18:59 <oklopol> quite rofltastic
17:19:51 <oerjan> and using actual WAV files might give too much delay, though I don't know
17:26:20 -!- SevenInchBread has joined.
17:26:47 <oklopol> delay is not a problem
17:26:59 <oklopol> i'd just be too ashamed to use a file like that
17:27:20 <SevenInchBread> GREETINGS COMRADES
17:27:41 <oerjan> i don't see any such restriction mentioned for the underlying function: http://msdn2.microsoft.com/en-us/library/ms712879.aspx
17:27:47 <oklopol> 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
17:27:52 <oklopol> locking me in
17:28:11 <SevenInchBread> fun stuff.
17:28:15 <oklopol> 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'
17:28:22 <oklopol> :PP
17:28:25 <oklopol> yar!
17:28:49 <SevenInchBread> OH HO
17:29:30 <oerjan> can such a lock be complying with fire regulations?
17:30:24 <oklopol> haha prolly not :D
17:31:19 <oklopol> 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
17:31:50 <oklopol> so... 50 euros to open a door given the key to that door
17:32:23 <oerjan> you _do_ realize this event does nothing to relax our stereotypes about the Finnish? ;)
17:32:39 <oklopol> :D
17:32:55 <oklopol> well, i think those stereotypes are correct
17:33:18 <oklopol> since most ppl i know are either drunks or absolutists
17:35:05 <oerjan> 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.
17:35:23 <oklopol> hmm sound possible
17:35:39 <SevenInchBread> hmmm, what does Python do with strings?
17:35:43 <oklopol> but you could prolly circumvent that by keeping a pointer to the string in the code
17:36:08 <oklopol> smth="teh str"; and then use smth, i don't see how there could be a problem
17:36:14 <RodgerTheGreat> best logic ever: "I'm not stereotyping, because the stereotypes are true!"
17:36:24 <SevenInchBread> ....I hear that one all the time.
17:36:51 <oklopol> indeed, that's not my logic there though
17:37:10 <oerjan> 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.
17:37:22 <SevenInchBread> 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.
17:37:37 <oerjan> if it is copying things could be strange.
17:38:30 <SevenInchBread> If I remember correctly, Python stores strings in const variables.... at least on the C end of things.
17:38:34 <oerjan> with the string being moved rather than deleted
17:39:59 <oerjan> i don't think const prevents the GC from moving things
17:40:43 <oerjan> it would have to be saved in some FFI unmovable format. There probably is something like that available, but there would be overhead.
17:41:55 <SevenInchBread> hmmm... what are you trying to do?
17:42:07 <oerjan> oklopol is writing a simple piano program
17:42:49 <oklopol> i can write it in c as well
17:43:01 <oklopol> it's just python was the only one i knew sound stuff with
17:43:23 <oklopol> __import__("winsound").Beep(interva,freq)
17:43:24 <oklopol> *l
17:43:30 <oklopol> temptingly easy
17:43:32 <oklopol> oh
17:43:36 <oklopol> wait a min
17:44:09 <oklopol> hmm i have that same beep in c as well, it seems to be in stdio
17:44:14 <oklopol> BUT again it's just square
17:44:52 <oerjan> yeah but PlaySound is a Windows function.
17:45:28 <oerjan> Winmm.lib it says on the page i linked
17:45:28 <oklopol> that doesn't scare me
17:45:36 <oklopol> i know, i've used it as i said
17:45:42 <oklopol> but you said something about strings
17:46:00 <oerjan> i think that is only a problem with Python strings
17:46:14 <oklopol> but... can you play strings?
17:46:22 <oklopol> playsound plays .wavs
17:46:28 <oerjan> SND_MEMORY
17:46:41 <oerjan> well a memory block in .wav format
17:46:44 <oerjan> i presume
17:46:51 <oklopol> ah
17:46:56 <oklopol> i'll try to find the page
17:47:02 <oklopol> acutally
17:47:05 <oklopol> *actually
17:47:10 <oklopol> link if you have it open
17:47:13 <oklopol> i'd never find it
17:47:18 <oerjan> i already did.
17:47:28 <oklopol> oh :o
17:47:39 <oerjan> >i don't see any such restriction mentioned for the underlying function: http://msdn2.microsoft.com/en-us/library/ms712879.aspx
17:47:40 <oklopol> shoops
17:47:42 <oklopol> *hoops
17:47:44 <oklopol> *whoops
17:47:52 <oklopol> indeed
17:47:57 <oklopol> i never saw that line
17:48:03 * oklopol reads well
17:48:33 <oerjan> anyhow i found it just by googling for PlaySound
17:48:45 <oklopol> mm well, maybe i'd have as well then
17:48:50 <oklopol> well well
17:51:13 <oklopol> nice... i can't both read and scroll that page simultaneously
17:51:50 <oklopol> hmmm i can only play one sound at a time with that?
17:52:21 <oerjan> SND_ASYNC, SND_NOSTOP
17:53:16 <oerjan> wait... you may be right.
17:53:37 <oklopol> then you must end all at once
17:54:12 <oklopol> i'd like being able to pres a key down and play a melody at the same time
17:54:14 <oklopol> *press
17:56:34 <oerjan> i suppose you could calculate the sum on the fly then
17:56:56 <oklopol> ah yeah
17:57:28 <oklopol> i'll just make a string for the next 50 ms every time
17:57:32 <oklopol> and play thta
17:57:34 <oklopol> *that
17:57:39 <oklopol> seems trivial
17:58:01 * SevenInchBread is playing around with stenography.
17:58:11 <oklopol> though, i've noticed an awful click in the beginnin when playing stuff with playsound
17:58:30 <oerjan> yeah, boundary condition worries me too
17:58:54 <oerjan> you really want something that can change sound smoothly
17:59:04 <oklopol> you mean waves going .-'-.-'-.-'--'-.-'-.-'-.-'--'-.-'-.-'-
17:59:06 <oklopol> ?
17:59:58 <oklopol> that is easy, you just check where that wave leaves by sin(clicks in 50 ms * current tone pitch)
18:00:07 <oklopol> and continue there
18:00:35 <oerjan> i am also thinking of the inevitable short timing mismatch
18:00:50 <oerjan> because of delay and imprecision
18:00:52 <oklopol> i mean, you can create the whole sound at once, then cut it into sequences of 50 ms and adding the wav header
18:00:57 <oklopol> well, true
18:01:11 <oklopol> but i think strings don't have much delay
18:01:20 <oklopol> because there's no file openage
18:04:02 <oklopol> by the way, piano is confusing since i use the accordions note system
18:04:17 <oklopol> i just named it piano because people don't know what an accordion is :)
18:04:21 -!- nazgjunk has joined.
18:04:51 <oerjan> i know what an accordion is. i think.
18:05:42 <oklopol> well, in finnish it's 'haitari', so not everyone knows what it is in english
18:05:52 <oklopol> or 'harmonikka'
18:06:45 -!- Sgeo has joined.
18:16:14 <oerjan> You might want to look at http://msdn2.microsoft.com/en-us/library/ms713503.aspx
18:16:26 <oerjan> A more powerful system, it seems
18:21:30 <oklopol> i'd like unsigned char set_lp(unsigned char newvalue) best :P
18:21:38 <oklopol> but there is none
18:21:55 <oklopol> 'cept of course in my brainfuck... and many of my unimplemented langs
18:23:13 <oklopol> haha i can play stratovarious's black diamond on beepiano now :DD
18:24:34 <oerjan> afk
18:56:13 <oklopol> http://pb.vjn.fi/p245463223.txt black diamond
18:56:48 <oerjan> Basically set_lp is only going to work in a system with hard real timing, which does not include the modern consumer OSes
18:58:03 <oerjan> indeed i sometimes feel slightly annoyed at esoteric languages that call themselves concurrent while having exact scheduling.
18:59:39 <oklopol> are you referring to... what?
18:59:43 <oklopol> noweach? :D
19:00:09 <oerjan> i don't think you were particularly precise on that
19:01:03 <oklopol> i wasn't true
19:01:09 <oklopol> because i don't know the spesifics
19:01:17 <oerjan> although i don't understand why you don't use a purely functional updating for it.
19:01:18 <oklopol> just wondering what you were referring to
19:01:33 <oklopol> mmh maybe because i don't know what you mean
19:01:40 <oklopol> *what that is
19:02:05 -!- sekhmet has quit ("ups ftw \o/").
19:02:15 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
19:02:22 -!- UpTheDownstair has joined.
19:02:28 <oerjan> ok yours is strictly scheduled as dataflow (because it's CA inspired) but not in exact timing
19:02:59 <oerjan> what i mean is that each step could simply calculate the next in parallel.
19:03:06 <oklopol> not really
19:03:13 <oklopol> or maybe
19:03:16 <oklopol> dunno
19:03:23 <oerjan> since the previous step is not modified, you don't get those timing issues
19:03:47 <oklopol> i think that might result in deadlock
19:03:47 <oklopol> *s
19:03:53 <oklopol> since they can refer to each other
19:04:18 <oerjan> no, because each refers only to the _previous_ state of the others, not to the one currently being calculated.
19:04:19 <oklopol> they can refer to the new state as well
19:04:28 <oklopol> if that's what you mean
19:04:30 <oerjan> in that case you have a problem
19:04:44 <oklopol> i might.
19:04:49 -!- UpTheDownstair has changed nick to nazgjunk.
19:04:59 <oklopol> but, indeed it's still easiest to do concurrently
19:05:38 <oklopol> and, it's not supposed to be used in anything where that might result in problems
19:05:41 <oerjan> CAs don't require copying, btw. You just switch which array you calculate from
19:05:43 <oklopol> just simple automatons
19:05:51 <oklopol> i know
19:05:59 <oklopol> but that's copying,
19:06:05 <oklopol> you have to move nops too
19:06:08 <oklopol> well
19:06:10 <oklopol> okay, not
19:06:11 <oklopol> :)
19:06:22 <oerjan> nops?
19:06:41 <oklopol> anyway, i think cellular automatons are easier to optimize in lang development than in an existing lang
19:06:49 <oklopol> nops, places that aren't used currently
19:07:04 <oklopol> it automatically skips those when optimizing
19:07:09 <oerjan> ah you mean things that don't change.
19:07:12 <oklopol> yes
19:07:38 <oerjan> well you can keep those in big blocks
19:08:05 <oerjan> so you only copy block pointers
19:08:30 <oklopol> hmm
19:08:41 <oklopol> ah
19:08:53 <oerjan> i think that's how the popular CA engines do it
19:09:36 <oklopol> seems like the easiest way out
19:09:44 <oklopol> i had a lot more complicated thing in mind
19:10:05 <bsmntbombdood> who can come up with the slowest way to calculate fibonacci numbers?
19:10:12 <SevenInchBread> Me.
19:10:14 <SevenInchBread> ...
19:10:20 <oerjan> the usual recursion without memoing is pretty slow.
19:10:27 <bsmntbombdood> not slow enough
19:11:01 <oerjan> then you can define addition using succ.
19:11:31 <oklopol> 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);}
19:11:38 <bsmntbombdood> oklopol: no
19:11:51 <oklopol> you did not specify that as illegal
19:11:59 <oerjan> you mean sleep(ackermann(n,n)) :)
19:12:15 <oklopol> much better
19:12:19 <oklopol> that should be okay
19:12:52 <bsmntbombdood> that's cheating
19:13:40 <bsmntbombdood> I don't understand when people say stuff like "add a (succ b) = succ (add a b)"
19:13:57 <bsmntbombdood> How do you compute that without a predeccesor function?
19:13:58 <SevenInchBread> ...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.
19:14:06 <oklopol> 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
19:14:10 <oerjan> you need a base case of course
19:14:11 <oklopol> then use it recursively
19:14:15 <oerjan> add a 0 = a
19:14:35 <oerjan> oh i see.
19:14:46 * SevenInchBread wins.
19:15:20 <SevenInchBread> ...provided the kitten bitmaps are very large files.
19:15:37 <oerjan> the idea is to think of natural numbers as defined as being either zero or the succ of something.
19:15:44 <bsmntbombdood> I know
19:15:55 <bsmntbombdood> but how do you compute add?
19:15:56 <oerjan> so the first succ is simply pattern matching on the definition
19:16:04 <bsmntbombdood> without pred
19:16:12 <bsmntbombdood> add a b = succ (add a (pred b))
19:16:13 <oerjan> you do have pred
19:16:22 <oerjan> in Haskell, essentially:
19:16:36 <oklopol> bsmntbombdood the same way as prev_num (n+1) = n
19:16:39 <oerjan> data Nat = Zero | Succ {pred :: Nat}
19:17:14 <oerjan> pred is not an ordinary function, but a field
19:17:14 <oklopol> you can pattern match certain things when ...their counterfunction is obvious :)
19:17:21 <bsmntbombdood> But our only operation on natural numbers is succ
19:17:25 <oklopol> *with functions in the pattern
19:17:52 <oklopol> well, it's magic
19:18:23 <oerjan> 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.
19:19:10 <oerjan> (and Haskell allows you to name both simultaneously)
19:20:38 -!- sekhmet has joined.
19:21:17 <oerjan> you could think of it another way: add a (Succ b) = Succ (add a b) is a defining axiom, not just a calculation.
19:22:43 <bsmntbombdood> hmm
19:23:33 <bsmntbombdood> the book i'm reading informally defines it using that definition, then formally defines it in lambda calculus using some primitive recursion function
19:24:03 <oerjan> you might want to look at something like the Coq proof assistant, which has inductive type definitions built in.
19:24:21 <oerjan> of course you cannot do it in pure lambda calculus.
19:25:34 <oerjan> consider the function to be constructed in order to fit the defining axiom, however.
19:27:11 <oerjan> there is a standard trick for embedding such datatypes and pattern matching into lambda calculus, however.
19:27:22 <bsmntbombdood> add = \m.\n.prim n m (\p.\q.(succ q))
19:27:36 <bsmntbombdood> where
19:27:44 <bsmntbombdood> prim 0 c f = c
19:27:55 <bsmntbombdood> prim (succ n) c f = f n (prim n c f)
19:29:33 <oerjan> i think that prim is something like what Coq defines automatically given the data type definition
19:33:02 <oerjan> later
19:33:11 -!- oerjan has quit ("Hunting for food").
19:45:10 <SevenInchBread> How do you get wget to... not write to a file?
19:49:06 <bsmntbombdood> -O -
19:49:12 <bsmntbombdood> to write to stdout
19:51:17 <SevenInchBread> cool. Thanks.
20:07:16 <SevenInchBread> ...hrm, I can't get my HTTP server to work. Help? http://deadbeefbabe.org/paste/4036
20:15:25 -!- nazgjunk has quit ("Leaving").
20:25:42 -!- nazgjunk has joined.
20:27:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)).
20:28:00 -!- nazgjunk has joined.
21:31:12 <SevenInchBread> ...I wonder...
21:31:34 <SevenInchBread> if it would be possible to fund the operation of an ISP without charging.
21:32:01 <bsmntbombdood> juno?
21:34:28 <SevenInchBread> >.>
21:35:12 <SevenInchBread> I'd love it if it were possible to make the Internet -completely- free...
21:35:23 <bsmntbombdood> yeah
21:40:13 <oklopol> omg commies in my internets! :D
21:42:33 <RodgerTheGreat> the internet is a breeding ground for what amounts to communisim anyway...
21:42:44 <RodgerTheGreat> piracy, creative commons...
21:43:11 <bsmntbombdood> yeah
21:43:14 <oklopol> true, i don't like any of those though
21:44:14 <oklopol> i'm under the impression it makes programming kinda a payless occupation
21:44:29 <oklopol> if i understand 'creative commons' right
21:44:32 <oklopol> i might not :)
21:46:42 <RodgerTheGreat> 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.
21:47:26 <RodgerTheGreat> I think of programming as more of an art than a manufacturing job.
21:47:49 <oklopol> me too, but i'd like to get my pay out of it as well
21:47:56 <oklopol> since there is nothing else i can do
21:48:18 <oklopol> well, i could do porno maybe, but that's it
21:49:50 <RodgerTheGreat> 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
21:50:13 <bsmntbombdood> yeah
21:50:20 <RodgerTheGreat> big players can survive on ad revenue, but it's impossible to make a profit as a small developer that way
21:50:29 <oklopol> true
21:52:20 <RodgerTheGreat> 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
21:53:02 <RodgerTheGreat> it's kinda "forced freedom" that could be considered good for the community, but it fucks over the individual
21:54:00 <RodgerTheGreat> 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
21:55:25 <RodgerTheGreat> 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
21:57:00 <oklopol> true
21:57:01 <RodgerTheGreat> If I release software, it's either under the "Do whatever the fuck you want License" or the source is mine to keep.
21:57:27 <oklopol> what else could it be?
21:58:02 <RodgerTheGreat> GPLed. BSD licensed. Any number of things that get in the way and create false illusions of openness or freedom.
21:58:38 <RodgerTheGreat> If I cared wether someone else "stole" the code I distributed, I wouldn't have given it away in the first place
21:59:10 <bsmntbombdood> heh
21:59:29 <RodgerTheGreat> the GPL is just a viral method for allowing the FSF (which I find dubiously trustworthy) to control the flow of code.
21:59:41 <bsmntbombdood> Yeah, I don't like the GPL
22:00:29 <RodgerTheGreat> 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
22:00:46 <GregorR> ...............................................................................................
22:01:00 <GregorR> Licenses, by definition, can only give freedoms.
22:01:49 <GregorR> 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.
22:02:09 <GregorR> Or rather, licenses are the only way to give anyone but the copyright holder(s) said rights.
22:02:15 <GregorR> So licenses by definition can only give freedoms.
22:04:03 <RodgerTheGreat> 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/
22:04:50 -!- nazgjunk has quit ("Leaving").
22:05:30 <GregorR> Your philosophy is both bizarre and completely stupid.
22:06:18 <SevenInchBread> I prefer all rites reserved
22:06:33 <SevenInchBread> *reversed
22:07:24 <oklopol> *rights too?
22:07:30 <SevenInchBread> No
22:07:32 <SevenInchBread> http://allritesreversed.com/
22:07:53 <oklopol> indeed, the first one wasn't a correction either
22:42:16 -!- ShadowHntr has joined.
22:42:25 -!- sebbu has joined.
22:42:33 <SevenInchBread> ...why is math terminology so confusing?
22:42:50 <SevenInchBread> couldn't you like, simplify it some?
22:44:11 <oklopol> which part?
22:46:34 <SevenInchBread> ...like, all of it.
22:46:48 -!- oerjan has joined.
22:49:20 <bsmntbombdood> it's not
22:49:57 <bsmntbombdood> most of the time
22:50:32 -!- sebbu2 has quit (Read error: 145 (Connection timed out)).
22:54:49 <oerjan> because it has to be precise
22:55:11 <oerjan> and it is already extremely simplified
22:55:49 <oerjan> i.e. who do you think invented overloading? :)
22:56:03 <SevenInchBread> but there's like... ten billion different forms of notation.
22:56:22 <SevenInchBread> I thought math was supposed to keep some uniformity?
22:56:30 <oklopol> where does it not?
22:57:18 <oerjan> math notation is designed for extreme consiseness without being unreadable by those who use it
22:57:26 <oerjan> *conciseness
23:00:29 * SevenInchBread is trying to figure out the notation behind the Fourier transform.
23:00:53 <oerjan> Which notation?
23:00:53 <bsmntbombdood> which is?
23:01:05 <bsmntbombdood> mathmaticians just make up stuff
23:01:42 <SevenInchBread> specifically, http://en.wikipedia.org/wiki/Fourier_transform#Definition
23:02:02 <SevenInchBread> I can't find an explaination on how to read the integral thing.
23:02:44 <oklopol> integrate the thingie, then take f(upper bound) and subtract f(lower bound)
23:02:51 <oerjan> you don't understand integrals?
23:02:53 <oklopol> where f is it integrated
23:03:09 <bsmntbombdood> heh
23:03:22 <oerjan> the bounds are infinite however.
23:03:26 <SevenInchBread> .....
23:03:43 <oklopol> well, true, you need a big calculator
23:03:46 <SevenInchBread> so... if it helps any - I've never touched calculus...
23:03:58 <oerjan> well then you have a problem
23:04:04 <bsmntbombdood> then you are probably going to have some troubles...
23:04:54 <SevenInchBread> I've only done high school algebra.
23:05:08 <oklopol> well, you can't blame math for you not knowing it
23:06:40 <SevenInchBread> ...well, the problem is that I'm trying to learn it... but it's proving extremly difficult.
23:06:47 <oerjan> 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)
23:07:07 <oklopol> trying to pick it up quickly for reading that page?
23:07:15 <SevenInchBread> ...pretty much.
23:07:32 <oklopol> well, i can't blame you, i've done the same thing
23:07:32 <oerjan> the part between is essentially a lambda term with free variable t
23:07:45 <oklopol> can't say i understand fourier transform either...
23:08:47 <oklopol> hmm i seem to get that now
23:09:01 <oklopol> but, suppose i have an array full of random stuff
23:09:08 <oklopol> upper bound is length of it
23:09:10 <oklopol> lower is 0
23:09:18 <oerjan> essentially you can think of integral as a higher-order function
23:09:18 <SevenInchBread> so... what's the result of that notation? Is it a function, a number?
23:09:19 <oklopol> how do i integrate an array? :P
23:09:37 <oerjan> the result is a complex number in this case
23:09:40 <bsmntbombdood> i don't understand fourier transforms
23:09:40 <oklopol> SevenInchBread integration is func -> func
23:09:58 <SevenInchBread> ah... hmmm...
23:10:23 -!- sekhmet has quit ("kernel++;").
23:10:44 <oklopol> turns a function a into another function b that at x slopes a(x)
23:10:53 <oklopol> i think :)
23:10:57 <oerjan> integral :: Measure a -> (a -> Complex) -> Complex
23:12:01 <oklopol> oerjan why will that result in complex numbers?
23:12:04 <oklopol> the integral
23:12:10 <SevenInchBread> ...yeah, I've never understood that little bit of Haskell-ish notation... :)
23:12:13 <oerjan> because there is an i in the function
23:12:22 <oklopol> but, it's in e^(_)
23:12:36 <oklopol> e^(x) always results in a real number i think
23:12:40 <oerjan> nope
23:12:43 <oklopol> oki
23:12:48 <bsmntbombdood> not if x is complex
23:13:02 <oerjan> e^(ix) is a unit complex number if x is real
23:13:06 <SevenInchBread> I'm trying to read up on concepts related to sound waves.
23:13:16 <SevenInchBread> or any wave for that matter.
23:13:20 <oerjan> e^(a+bi) = e^a * (cos b + i sin b)
23:13:22 <bsmntbombdood> e^(ix) = cos(x) + i*sin(x)
23:13:36 <oklopol> oh yeah
23:13:38 <oklopol> true
23:13:47 <oklopol> sorry, i'm bad at this
23:14:44 <SevenInchBread> I'd like to translate the Fourier transform into an algorithm... so how do you get compute the integral of something?
23:15:17 <oklopol> i asked oerjan already, but he never answered :<
23:15:27 <bsmntbombdood> symbollically or numerically?
23:15:48 <oklopol> actually, i just threw it in the air
23:16:12 <oklopol> then again, most of what i say is implicitly a question for oerjan
23:16:15 <bsmntbombdood> numerically is obviously easier than symbolically
23:16:26 <SevenInchBread> hmmm... it looks liike, in the most cases, it's just the area underneath the curve between those limits... in this case infinity.
23:16:38 <oerjan> if the function x is stepwise continuous you can use numerical methods
23:16:41 <bsmntbombdood> yeah
23:16:52 <SevenInchBread> so.....how do you compute the area of something that's infinite. :P
23:17:06 <oklopol> what if it's a wav file for example?
23:17:09 <oerjan> by an integral of course :)
23:17:29 <SevenInchBread> ....
23:17:49 <oerjan> the simplest way is to divide into small intervals and approximate it as constant on each
23:17:56 -!- sekhmet has joined.
23:18:09 <oerjan> then for each interval it is just the area of a square
23:18:21 <bsmntbombdood> riemann sum
23:18:27 <SevenInchBread> yeah... just the chunk of the wave that is repeated would be all you need.
23:18:57 <oerjan> when you take the limit of smaller intervals, that is the riemann integral
23:19:20 <SevenInchBread> the limit?
23:19:22 <oklopol> ah, that's why you use sum in actual implementations of fourier
23:19:24 <oklopol> right?
23:19:24 <oerjan> although there are more efficient methods if your function is also differentiable
23:19:33 <oerjan> exactly
23:19:56 <oklopol> because often you don't need fourier when you've made the function yourself
23:20:05 <oklopol> because you prolly know what it is if you made it
23:20:08 <oerjan> (requiring less subdivisions for accuracy)
23:20:35 * oklopol goes to sleep now ----->
23:21:04 <oerjan> if it is already a sum of sine waves then it is easier to transform using the known expression for them, yeah
23:21:27 <SevenInchBread> ...what is fourier useful for exactly?
23:21:45 <oerjan> lots of things
23:22:37 <oerjan> but expressing a signal as a limit sum of sine waves is the most basic
23:23:02 <SevenInchBread> >.>
23:23:35 <oerjan> dividing it up by frequency rather than time
23:23:59 <bsmntbombdood> hmm
23:24:39 <bsmntbombdood> so X(a) is the amplitude of the sine wave at frequency a?
23:24:47 <SevenInchBread> is the fourier transform used to reproduce chords and multiple waves at the same time?
23:24:53 <oerjan> amplitude and phase
23:25:37 <oerjan> actually a and -a together give the sine and cosine wave parts. Complex numbers mix them a bit
23:26:01 <oerjan> That e^ix = cos x + i sin x thing
23:27:06 <oerjan> reversed as e^ix + e^(-ix) = 2 cos x and e^ix - e^(-ix) = 2 sin x
23:29:18 <oerjan> a sum of multiple waves, two for each frequency
23:32:09 <oerjan> if a signal is truly periodic with frequency f, then only frequencies that are integer multiples of f will appear
23:32:21 <oerjan> the rest will be 0.
23:33:20 <oklopol> SevenInchBread no, addition is for that
23:33:50 <SevenInchBread> hmmm... so you just add the outputs?
23:33:56 <oerjan> That is essentially the point of Fourier _series_
23:34:12 <oerjan> Yeah, the Fourier transform is linear so it preserves addition
23:34:35 <SevenInchBread> I mean... the outputs of the sine waves.
23:34:53 <oklopol> SevenInchBread yes
23:35:07 <oklopol> you do fourier transforms for the opposite
23:35:17 <oklopol> figuring out what waves have been added
23:35:32 <oklopol> (and once again correct me if i'm wrong...)
23:35:51 <oerjan> Except there are some weird problems with summing the sine waves if the original function is not nice enough.
23:36:10 <oerjan> You need to do the limit in a more clever way than simple integration
23:39:10 <oerjan> This is because the result of the Fourier transform is not necessarily itself directly Fourier transformable
23:39:58 <oerjan> otherwise it would just be a matter of repeating the process with some constants and signs changed
23:41:08 <SevenInchBread> I was thinking about making an interactive programming language for playing around with sound samples mid-play..
23:41:33 <SevenInchBread> like... some weird cross between programming and a synthesizer.
23:43:22 <oerjan> You might want to look at http://en.wikipedia.org/wiki/Discrete_Fourier_transform
23:45:17 <oerjan> It is for the case when you have a finite set of time points.
23:45:49 <oerjan> Incidentally all these different forms of Fourier transforms are united by the theory of dual groups.
23:46:51 <oerjan> 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
23:47:23 <oerjan> *every = every sufficiently nice (commutative, locally compact)
23:48:05 -!- sekhmet has quit ("ups tests...").
23:48:06 <SevenInchBread> -ahem- as a precaution... none of your explainations have helped me so far. -gentlemanly smile-
23:48:07 <oerjan> however the unit circle is dual to the integers, which explains why you get a Fourier _series_ from a periodic signal.
23:48:24 <oerjan> Not even the discrete fourier transform?
23:48:43 <oerjan> I admit the general stuff was mostly in case someone else was interested
23:49:06 <SevenInchBread> time group and dual frequency group means nothing to me. :(
23:49:07 <oklopol> oerjan i don't think he'll need a fourier transform for what he defined
23:49:30 <oerjan> Well he needs a way to get frequencies from samples, doesn't he?
23:49:41 <oklopol> i don't think we will :\
23:50:04 <oklopol> if he's doing what i think he's doing
23:50:14 <SevenInchBread> I don't need to create sound files... I just want to mix multiple sound files together... among other things.
23:50:21 <oklopol> just a programmer's version of logic audio or guitar pro or such
23:50:54 <SevenInchBread> .....yeah,.. ish
23:51:00 <oerjan> Well in that case you just add amplitudes together with coefficients
23:51:11 <oklopol> that's what i've been planning to do for ages
23:51:24 <oklopol> but i've never had a direct acces to the speaker
23:51:34 <oklopol> though oerjan maybe showed me the way
23:51:37 <oklopol> don't know yt
23:51:38 <oklopol> *yet
23:52:05 <oklopol> *acces
23:52:12 <oerjan> that Windows audio wave thing sounds complicated but it apparently solves the time gap problem
23:52:23 <SevenInchBread> ...probablly heavily concurrent... because you need multiple "processes" playing all at once... like an interactive programming language mixed with a GUI.
23:54:12 <oerjan> There was something about mixing there too
23:55:37 <oerjan> You need that nowmap thing and a way to sum the result :)
23:56:54 <oerjan> But then concurrency may not be so important if they are independent - just loop over them for each time block, summing
23:57:15 <oerjan> assuming it is not so heavy you need multiple cores...
23:57:26 <oklopol> well, if they are done at the same time, it must be O(1) !
23:57:29 <oklopol> :D
23:58:12 -!- jix__ has joined.
23:58:14 <oerjan> anyhow if it is anything like that audio wave thing then it will actually be event driven.
23:58:51 <oerjan> i saw something about getting a callback when the audio device is finished playing a data block
23:59:06 <oklopol> that might help
23:59:10 <oklopol> i hate events though
23:59:16 <oerjan> in fact there seemed to be a bunch of alternatives listed for how to do that
←2007-03-17 2007-03-18 2007-03-19→ ↑2007 ↑all