←2008-11 2008-12 2009-01→ ↑2008 ↑all
2008-12-01
00:00:51 <oklopol> well, now it at least works on the empty screen.
00:00:55 <oklopol> now let's try a glider....
00:01:19 <oklopol> well there's a glider, but it takes ages to reach it, not the fastest impl there it :)
00:01:36 <oklopol> it's quite visually pleasing imo
00:01:42 <ehird> happy december
00:01:53 <ehird> oklopol: use http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck.php it has fat animation
00:01:53 <ehird> set ms = 0
00:01:54 <oklopol> old news
00:01:56 <ehird> and origin top left
00:02:23 <ehird> oklopol: failing that ill try it in the java interp
00:05:40 <oklopol> flumrgh, it didn't wurk :)
00:06:01 <ehird> oklopol: :{ y not
00:06:18 <oklopol> because i suck
00:06:25 <ehird> tru
00:12:12 <pgimeno> HUGE performance improvement: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php
00:12:32 <pgimeno> Asztal: thanks :)
00:13:44 <ehird> woo
00:13:52 <ehird> oh jesus lord
00:13:55 <ehird> that is INSANELY FAST
00:13:58 <ehird> for ms=0
00:14:01 <ehird> pgimeno: you are a god
00:14:29 <ehird> pgimeno: my god, blink and its finished execution
00:14:29 <pgimeno> well, the merit is yours and Asztal's :)
00:14:36 <ehird> but seriously
00:14:37 <ehird> that is insane
00:14:50 <pgimeno> it does 200 steps per animation frame
00:15:01 <ehird> oh
00:15:01 <ehird> pgimeno: well
00:15:06 <ehird> the problem with that is that you miss out on the juicy bits
00:15:10 <ehird> maybe make that configuratble?
00:15:13 <ehird> should just be a few lines
00:15:23 <pgimeno> I was thinking of that, but wanted to show you :)
00:15:30 <ehird> :)
00:16:04 <pgimeno> Langton's ant now takes just a few seconds to escape at 128x128
00:16:49 <ehird> pgimeno: also, you should default to black = background
00:16:49 <ehird> :P
00:16:52 <ehird> like everyone else
00:17:49 <ehird> oklopol:
00:17:52 <ehird> try your gol on this!!
00:17:53 <ehird> really fast
00:18:11 <oklopol> if it works now
00:18:38 <ehird> oklopol: set dimensions = 1000,1000, origin=topleft, animation step=0, put it in and animate
00:18:41 <ehird> = best interp yet
00:18:54 <pgimeno> ehird: the web is white! :P
00:19:08 <ehird> pgimeno: so is the flash interp, but the GRID is black background
00:19:08 <ehird> :P
00:19:12 <ehird> and everyone says white/black
00:19:14 <oklopol> okay i think it works now
00:19:15 <ehird> so it's just confusing
00:19:35 <oklopol> but i can't test a glider in the exe
00:20:02 <ehird> pgimeno: haha, try whee!
00:20:05 <ehird> its still slow
00:20:10 <ehird> (http://forums.tigsource.com/index.php?topic=3710.msg110154#msg110154)
00:21:19 <ehird> pgimeno: the main problem with your 200-per is that t he display is jerky
00:21:19 <ehird> and
00:21:27 <ehird> you can't see the head if it's a bouncing-ball type thing
00:21:33 <ehird> so i think that configurable that would be good
00:24:33 <ehird> pgimeno: heh, your interp is quite unusable now: you can't see programs running
00:24:35 <ehird> since it's so fast
00:24:41 <ehird> needs some of that configuring ;)
00:24:44 <jayCampbell> JJusutst a anonotthheerr brbraiainnffuucckk hahcackkeerr
00:24:50 <jayCampbell> weave does brainfork
00:24:50 <ehird> lol
00:26:52 <pgimeno> okay, reload
00:27:24 <oklopol> okay it may work now.
00:27:30 <ehird> yay
00:27:33 <oklopol> i have no idea because it shows two generations :)
00:27:45 <oklopol> i made a glider, and it's not dying, not sure if it's working though.
00:27:52 <ehird> pgimeno: does it totally redraw each time?
00:27:57 <ehird> if so that's silly just redraw what needs redrawing
00:28:01 <ehird> oklopol: using pgimeno's?
00:28:08 <oklopol> yeah the php
00:28:34 <pgimeno> ehird: well, that's on the browser, it draws on every pixel change
00:28:43 <ehird> oklopol: set ms = 0, iterations = 500
00:28:45 <ehird> and animate
00:28:48 <ehird> should go really fast
00:29:42 <pgimeno> oklopol: this one: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php
00:29:51 <pgimeno> the -canvas one
00:29:57 <ehird> *[[en*w]*s[nw*s]*e[ws*e]*n[se*n]*w] <- someone on the forums posted this. BOXWORLD!
00:32:42 <oklopol> hmm... it might be working, but it's definitely not pretty.
00:32:51 <ehird> oklopol: :{
00:32:54 <ehird> pastie.org the code
00:32:55 <oklopol> should've done it like oerjan suggested
00:33:29 <oklopol> i can http://www.vjn.fi/pb/p244563523.txt the code, don't know about pastieing
00:33:31 <oklopol> *pastying
00:34:15 <oklopol> the problem is showing two iterations at once, it simply doesn't look good.
00:34:24 <oklopol> and makes it quite hard to tell whether that's even working.
00:34:37 <ehird> oklopol: also it's dog slow
00:34:38 <ehird> :D
00:34:52 <oklopol> yes, that's true
00:35:42 <ehird> reaaaaaaaaaally slow
00:35:42 <ehird> oklopol:
00:35:47 <ehird> you should make it migrate an entire region at a time
00:35:48 <ehird> XD
00:36:00 <oklopol> whaddya mean
00:36:18 <ehird> like
00:36:24 <ehird> a glider goes straight to the next glider step
00:36:28 <ehird> then it goes on to the rest of the grid
00:39:06 <oklopol> okay there's a bug.
00:39:08 <oklopol> err
00:39:21 <oklopol> i have no idea what you mean, unless you mean what you said, which you cannot have meant
00:39:32 <ehird> oklopol: as in
00:39:34 <ehird> if there's a glider there
00:39:37 <ehird> make the glider go on to the next glider iteration
00:39:40 <oklopol> anyway if you change the first four lines to
00:39:41 <ehird> then calculate all the rest of the grid
00:39:41 <oklopol> *[ss*]*
00:39:41 <oklopol> eeeeeeeeeeessssssssss
00:39:41 <oklopol> *ee*ee*wwww
00:39:41 <oklopol> wwwwwwwwwwwnnnnnnnnnn
00:39:51 <oklopol> a row of three
00:39:59 <oklopol> you can clearly see it do one correct iteration
00:40:04 <oklopol> then fail on the next iteration
00:40:04 <ehird> yeah but
00:40:06 <ehird> it takes 5 years.
00:40:06 <ehird> :D
00:40:29 <oklopol> yeah that canvas thing is much too slow for this
00:40:50 <ehird> oklopol: hard to get much faster
00:40:53 <ehird> thats the fastest interp so far
00:40:54 <ehird> but oklopol
00:40:58 <ehird> put up the iterations per animation
00:40:59 <ehird> to like 2000
00:41:01 <ehird> and delay=0
00:41:27 <oklopol> does that do some kind of optimization?
00:43:44 <ehird> oklopol: it makes it do 2000 iterations per animation
00:43:48 <ehird> and not wait per animation
00:43:56 <oklopol> i mean
00:44:00 <oklopol> does that interpreter do
00:44:31 <pgimeno> oklopol: wow, even if it does not seem to be working properly I'm impressed (and no, the interpreter doesn't optimize, except it has a jumps table)
00:45:27 <oklopol> i'm pretty sure it works now, had just a minor bug
00:45:46 <pgimeno> clicky?
00:45:54 <oklopol> (forgot i need to forget the old values at some point, and an error naturally occurs due to this only on the second iteration)
00:46:03 <Sgeo> Is it safe to say that the sort of person in this channel is the sort who has no need to cheat on exams/
00:46:17 <ehird> Sgeo: why?
00:46:30 <pgimeno> I had to cheat on history exams :P
00:46:45 <Sgeo> On my economics exam, the professor left the room for a few minutes, and I hear everyone asking things like "For 5, what did you get?", things like that
00:47:11 <oklopol> heh
00:47:55 <oklopol> i was recently the only one to score a 5/5 in one exam, i think it'd be a bit counterproductive to ask people what they answer :P
00:48:08 <Sgeo> oklopol, lol, same here
00:48:25 <Sgeo> There were two questions I was clueless about
00:48:31 <Sgeo> But I would NEVER consider cheating
00:48:43 <oklopol> we usually have 4 questions, if you don't know the answer to 2, you fail.
00:48:56 <Sgeo> 50 question exam
00:49:03 <oklopol> :D
00:49:04 <oklopol> okily
00:49:39 <oklopol> i have nothing against cheating.
00:49:42 <pgimeno> oklopol: can I see the fixed version?
00:49:44 <oklopol> cheating is pretty cool.
00:49:54 <oklopol> pgimeno: yes, not that i'm sure it still works ;)
00:50:34 <oklopol> http://www.vjn.fi/pb/p533314231.txt
00:50:38 <oklopol> that seems to work
00:50:45 <oklopol> it's a row of 3 blobs
00:50:59 <oklopol> goes vertical - horizontal - vertical ...
00:51:36 <oklopol> (the last cycle's value is in the bottom-left of a 2x2 square, current is in top-right.)
00:51:53 <oklopol> would probably be clearer if they were like next to each other or if the squares were bigger or something
00:52:08 <oklopol> but, it'd take me quite a while to do even a trivial change, because that's all manually done.
00:52:15 <oklopol> (thought it'd be a lot shorter)
00:52:53 <pgimeno> great!
00:52:54 <oklopol> if you want to know what the flicker is all about, the top-left thingie is the current cell being modified
00:53:07 <oklopol> the one on bottom-right is where the counrer ends
00:53:09 <oklopol> *counter
00:53:23 <oklopol> the four flickering lights are the negations of the counter's cells
00:53:36 <oklopol> (makes the logic to check what happens to current cell clearer)
00:54:24 <pgimeno> what about the glider?
00:55:01 <oklopol> that gets very confusing, i didn't check whether it works :D
00:55:10 <oklopol> but i can try, after this other test i'm doing now
00:56:48 -!- adimit has left (?).
00:57:03 <oklopol> okay
00:57:05 <oklopol> glider works
00:57:28 <oklopol> bye adimit
00:57:38 <pgimeno> whoa
00:58:40 <oklopol> whoa at gol?
00:59:12 <pgimeno> yeah
00:59:42 <pgimeno> if you cleared the cells done it would be great too
00:59:57 <oklopol> what do you mean
01:00:09 <oklopol> err, the last values?
01:00:12 <oklopol> yeah hmm err indeed
01:00:20 <oklopol> i could do that, i just need the last row
01:00:31 <oklopol> lol i never even thought of that:D
01:00:40 <oklopol> *that :D
01:00:51 <pgimeno> heh
01:01:05 <oklopol> let's see... this should be trivial
01:02:09 <oklopol> done
01:02:12 <oklopol> so
01:02:16 <oklopol> i code for 4 hours
01:02:41 <oklopol> and you fix everything in a second
01:03:41 <oklopol> http://www.vjn.fi/pb/p422562455.txt <<< because of the change, there's now a piece of code there that doesn't do anything.
01:03:46 <oklopol> just in case someone wants a challenge
01:03:49 <pgimeno> you who?
01:03:51 <oklopol> wait
01:04:03 <oklopol> damn, it's trivial to find it, i've commented that code.
01:04:06 <oklopol> pgimeno: you
01:04:23 <oklopol> anyway
01:04:26 <oklopol> look, it's pretty now.
01:04:57 <oklopol> hmm...
01:04:59 <jayCampbell> > Weave and brainfork conventions can be used together. That is, multiple initial threads can be started using semicolons, and embedded Y's can cause further forking.
01:05:05 <oklopol> wonder what happens when it hits the border...
01:05:09 <jayCampbell> pew-pew-pew
01:05:22 <jayCampbell> http://esolangs.org/wiki/User:JayCampbell/weave.rb
01:05:30 <pgimeno> for the record, the second version of langton's ant took me about 3 hours
01:06:39 <oklopol> hmm. wonder how long it took me to do 110
01:07:18 <pgimeno> yay, so cool now :)
01:07:25 <oklopol> btw that crashes completely when the glider hits the border :P
01:07:37 <oklopol> what's langton's and again
01:07:49 <oklopol> the ant is somewhere, and it turns right or left depending on current cell
01:07:55 <oklopol> and flips it if something.
01:08:05 <oklopol> *langton's ant
01:08:47 <pgimeno> there's a current direction, turn left and if 0, turn right if 1, flip and advance
01:08:55 <pgimeno> s/and//
01:09:46 <oklopol> always flip?
01:09:50 <pgimeno> yes
01:09:56 <oklopol> that's pretty neat
01:10:15 <oklopol> now i almost feel like making that in pf... :D
01:10:19 <pgimeno> the second version fills the whole 2x2 square
01:10:23 <oklopol> how long was yours again? ;)
01:10:30 <oklopol> (the code)
01:10:31 <pgimeno> which is what makes it notable
01:10:43 <oklopol> hmm, what do you mean?
01:10:44 <pgimeno> err, remarkable
01:11:14 <pgimeno> try and see: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nonhollow.pfk
01:11:21 <pgimeno> grr
01:11:32 <pgimeno> try and see: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nothollow.pfk
01:12:07 <oklopol> so
01:12:12 <oklopol> err
01:12:15 <oklopol> the current cell
01:12:24 <oklopol> stores the direction, it's not completely black, right
01:12:30 <oklopol> ohh
01:12:35 <oklopol> wait..
01:12:41 <oklopol> yeah i think you need that.
01:12:51 <oklopol> i'll step-by-step, don't answer!
01:13:16 <oklopol> wait
01:13:20 <oklopol> now i closed the interp :D
01:13:20 <oklopol> ...
01:14:09 <oklopol> so yeah okay, that's pretty good, although i'm pretty sure you could get that compressed quite a lot
01:14:25 <pgimeno> maybe, I didn't figure how
01:14:42 * pgimeno is seeing the r demon in life
01:15:08 <oklopol> can you tell me what that code does? i don't feel like reading
01:15:24 <oklopol> like, the gist of how you do it
01:16:11 <pgimeno> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nothollow-commented.pfk
01:17:06 <pgimeno> wherever it says "we came from x" it should say "our last move was x"
01:18:11 <oklopol> i have to go sleep now, i'll read that tomorrow
01:18:11 <oklopol> cya
01:18:14 <oklopol> ->
01:19:20 <pgimeno> k, nite
01:50:11 <jayCampbell> paintfuck is not "borderline-esoteric"
01:53:07 <pgimeno> mmm... define that?
01:54:27 <pgimeno> never mind, gtg
01:55:01 <jayCampbell> warrie has there ever been an Easy interpreter?
01:58:24 <pgimeno> there is another Easy
01:59:35 <pgimeno> http://p-nand-q.com/humor/programming_languages/gplz/gplz_easy.html
02:00:07 <pgimeno> and bye :)
02:00:30 <jayCampbell> moo
04:02:52 -!- Corun has quit ("This computer has gone to sleep").
04:58:44 -!- Slereah has quit (Read error: 145 (Connection timed out)).
05:13:22 <jayCampbell> You are standing inside your ramshackle wooden hut.
05:13:35 <jayCampbell> weave plays Lost Kingdom
05:13:55 <jayCampbell> i'm going to ask jon ripley to make it multiplayer
05:13:57 <jayCampbell> lol
05:29:34 <decipher> ehird: i checked your copier, it's sweet :)
05:30:07 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
06:06:13 <jayCampbell> $ ./weave.rb 99.bf 99.bf 99.bf
06:06:13 <jayCampbell> 999999 bbbooottttttllleeesss ooofff bbbeeeeeerrr ooonnn ttthhheee wwwaaallllll,,,
06:06:13 <jayCampbell> 999999 bbbooottttttllleeesss ooofff bbbeeeeeerrr,,,
06:06:13 <jayCampbell> $ ./weave.rb sange-archive/hello*
06:06:13 <jayCampbell> HHHELLOWelloheallo t HelloW WORWoLrlDd!
06:06:14 <jayCampbell> orld!!
06:06:16 <jayCampbell> worldis!
06:06:18 <jayCampbell> your name?
06:22:34 -!- bsmntbombdood_ has joined.
06:27:39 -!- bsmntbombdood has quit (Read error: 60 (Operation timed out)).
06:31:56 -!- Slereah_ has joined.
06:47:34 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
07:38:38 -!- oerjan has joined.
07:39:10 -!- oerjan has set topic: http://tunes.org/~nef/logs/esoteric | Y RLY.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:54 <jayCampbell> so now i'm gluing pbrain into weave too
08:07:07 <jayCampbell> it will soon be .. an irc bot with persistent threaded cross-communicating subroutine-calling brainfucks
08:07:18 <jayCampbell> because, you know, that's exactly what the world needs
08:12:29 <oerjan> the world is _so_ fucked
08:20:05 -!- oerjan has quit ("leaving").
08:47:38 -!- Slereah_ has quit (Read error: 60 (Operation timed out)).
09:02:19 -!- GreaseMonkey has quit ("I'm a thaasophobic.").
11:27:09 <MizardX> Heh. I tried to calculate the number of ways I could generate all the permutations of a given cycle by just shifting subsequences one step at the time. For zero-, one- and two-length cycles I got the answer 1. For a three-length cycle I got 40 within a second. But trying to calculate it for a four-length cycle, it almost froze up the whole computer :S
11:27:10 <MizardX> My guess is that the number is around 2*n!!/(n!^2) :)
11:38:28 -!- Slereah_ has joined.
12:18:14 -!- Sgeo has joined.
12:32:09 -!- Corun has joined.
12:38:22 <ehird> decipher: thanks
12:38:24 <ehird> but it only handles one-rows
12:50:12 <decipher> but i am sure you can generalize
12:50:32 <decipher> also, on my obfuscated interpreter the copying was quite fast
13:12:53 <ehird> decipher: well, it's hard to generalize to arbitrary depth because if you just sweep through it, you eat up the walls
13:28:22 <ehird> decipher: if you have any ideas, though?
13:41:14 <oklopol> what copyer
13:42:12 -!- Corun has quit ("This computer has gone to sleep").
13:42:48 <ehird> oklopol: paintfuck
13:42:55 <ehird> it copies a line leftwards constantly
13:43:04 <ehird> i.e. you can put any one line and it scrolls it
13:43:04 <ehird> sloooooowly
13:43:09 <ehird> i want to generalize it to any depth
13:43:11 <ehird> somehow
13:43:21 <oklopol> mm'kay, isn't that like 10 characters of code?
13:43:28 <ehird> no
13:43:33 <ehird> you have to detect the ceiling/floor
13:43:35 <ehird> to go right one
13:43:39 <ehird> otherwise you eat the walls up
13:43:43 <ehird> and never go on to the next column
13:43:54 <ehird> the one-line copier is trivial ofc
13:45:40 <decipher> ehird: your routine was more like a move than copy :)
13:46:07 <decipher> although i am not sure if it might be possible to dynamically calculate the offset and move the head accordingly at all
13:46:18 <decipher> as in, i am not sure if a true copy algorithm can be possible
13:46:27 <ehird> decipher: oh, true
13:46:34 <ehird> well it was a scroll
13:46:34 <ehird> really
13:46:38 <ehird> but
13:46:43 <ehird> i dont' think you can do a generic scroll
13:46:48 <ehird> its impossible to tell walls from blocks
13:46:49 <ehird> UNLESS
13:46:54 <ehird> you make the wall a special pattern
13:47:00 <ehird> that your program detects
13:47:07 <ehird> then you can't copy that pattern, but if it's weird enough it won't happen
13:47:12 <decipher> true, but that's not "general" then :)
13:47:19 <ehird> as general as matters :P
13:47:24 <decipher> haha
13:59:44 <pgimeno> my binary counter (may assume infinite grid): sse*ww*[e*[*nn[*s*e*wn]se[*wn*se]s*]*w*[*s[*]nw*]*en[*e]*s[*e*w]*[*e*]s*n*[*w*]s[*]*]
13:59:45 -!- Slereah_ has quit (Read error: 113 (No route to host)).
14:00:05 <ehird> pgimeno: niiiiiiiice
14:00:09 <ehird> hmm
14:00:13 <ehird> someone make a decimal conuter
14:00:14 <ehird> counter
14:00:19 -!- lostgeek has joined.
14:00:20 <ehird> that OCRs the digits it outputs to add :)
14:00:30 <lostgeek> hi
14:00:36 <ehird> hi
14:00:51 <pgimeno> hi lostgeek
14:11:34 <ehird> lostgeek: context for what i was saying -
14:11:45 <ehird> a decimal counter would be cool, i.e. it draws the digits and OCRs them to increment :)
14:15:58 <AnMaster> my bday today
14:15:59 <AnMaster> :)
14:18:01 <lostgeek> grats AnMaster :)
14:18:08 <AnMaster> thanks
14:18:12 <AnMaster> :)
14:18:25 <ehird> AnMaster said something?
14:18:27 <ehird> (He's on /ignore.)
14:18:36 <AnMaster> lostgeek, hm I can't remember seeing you here before?
14:18:40 <AnMaster> at least not under that nick
14:19:04 <lostgeek> AnMaster: I joined yesterday ;)
14:19:16 <AnMaster> ah
14:19:24 <ehird> (Context for a person who I cannot see: He's a paintfuck person.)
14:22:10 <lostgeek> ehird: would be cool, but I think a bit hard to realize
14:22:21 <ehird> lostgeek: i don't think -that- hard
14:22:35 <lostgeek> dunno...
14:22:45 <ehird> i mean, write code to output a certain digit for 0-9, then one to look at its pixels (just make them monospaced) to detect it into the head
14:22:49 <ehird> then just do regular adding stuff
14:22:53 <ehird> not easy, but not really hard
14:26:51 <pgimeno> last, shorter, faster version of binary cnt: sse*ww*[e*[*nn[*s*e*wn]se[*wn*se]s*]s[*]*nw*[*s[*]nw*]*en[*e]*ss[*e*w]n*[*w*]s*]
14:30:55 <AnMaster> pgimeno, language?
14:31:20 <lostgeek> AnMaster: PaintFuck
14:31:26 <AnMaster> ah
14:33:14 <AnMaster> hm
14:35:49 <ehird> pgimeno: that's not shorter...
14:39:08 <oklopol> binary cunt?
14:39:17 <ehird> i know oklopol would say that.
14:39:25 <ehird> we could just replace him with a bot and never notice.
14:39:25 <ehird> probably.
14:39:29 -!- Sgeo has quit (Remote closed the connection).
14:39:30 <ehird> apart from the coding skills part.
14:40:26 <AnMaster> heh
14:41:20 <oklopol> to inc a binary counter, when you're on a constant 1-bit to the right of it, w[*]*w*[*e*]*, you go left, then null all ones, make the zero into a one, then go right, skip all the zeroes to land on the constant bit to the right of the counter
14:41:30 <oklopol> to do this constantly, add a while to that
14:41:37 <oklopol> what are you guys doing then?
14:42:41 <oklopol> wait that doesn't work
14:42:44 <oklopol> LOL
14:42:52 <ehird> hi ais523
14:44:49 <ais523> hi ehird
14:45:05 <AnMaster> hello ais523
14:45:09 <AnMaster> my bday today :)
14:46:44 <ais523> AnMaster: I say the appropriate response, but such that ehird doesn't have a clue what I mean due to lack of context
14:47:12 <ehird> I do actions by saying them to IRC.
14:48:26 <oklopol> [w[*w]*e*[*e*]*] <<< binary coutner
14:48:28 <oklopol> *counter
14:48:32 <oklopol> sorry, i just woke up
14:49:07 <oklopol> also the police calls, i couln't really tell them what the pizza attackers looked like, so they're gonna go photograph the whole staff and show me the pics :D
14:49:16 <ais523> oklopol: pizza attackers?
14:49:25 <oklopol> yeah
14:49:40 <oklopol> about a week ago, i ordered pizza, and got beat up by the delivery guys
14:49:53 <ais523> what sort of delivery guy does that?
14:50:02 <ehird> oklopol: hahaha
14:50:12 <ehird> maybe you called up the Punch 'n Pizza place instead
14:50:25 <oklopol> ais523: i would tell you what i think the answer is, but that would be racist.
14:50:26 <ehird> [w[*w]*e*[*e*]*] <-- oklopol how can this work it will never run
14:50:38 <oklopol> ehird: you have to be on a constant 1 bit
14:50:42 <ehird> oklopol: they were blobs of mauve goo?
14:50:50 <oklopol> ehird: they were FINNISH
14:51:03 <ehird> !!!!!!!!!!!!
14:51:09 <ehird> goddamn finns
14:51:17 <ehird> scum the lot of them
14:51:38 <ehird> oklopol: your binary counter is pretty awesome
14:51:46 <ehird> w*[w[*w]*e*[*e*]*]
14:51:50 <oklopol> were you doing that same thing?
14:51:50 <ehird> the full experience
14:51:58 <ehird> ?
14:52:08 <ais523> hmm... it seems the Door was broken again last Sunday, good thing I didn't try it
14:52:16 <oklopol> ehird: i mean
14:52:28 <oklopol> that long code there, about a binary cunt, was it that same thing
14:52:41 <ehird> well no
14:52:45 <ehird> it kept the previous results
14:52:46 <ehird> and um
14:52:49 <ehird> didn't look like yours
14:52:54 <ehird> oklopol: you should make yours actually output in binary
14:52:57 <ehird> instead of a soldi line
14:53:40 <oklopol> not sure what you mean
14:53:54 <oklopol> maybe i could run yours..........
14:54:24 <oklopol> so okay, like that
14:54:27 <oklopol> i can do that....
14:54:47 <ehird> um oklopol
14:54:50 <ehird> i didnt write one
14:54:50 <ehird> :|
14:55:06 <oklopol> ehird: i mean the set {ehird, pgimeno}
14:55:09 <oklopol> OBVIOUSLY
14:55:11 <oklopol> :P
14:56:02 <oklopol> anyway i don't think i'll actually do it, why the fuck would i
14:57:24 <ehird> oklopol:
14:57:24 <ehird> *w*[[*w*]*e*e*[*e*]*w*]
14:57:30 <ehird> i just made your counter simpler
14:57:30 <ehird> :P
14:57:41 <oklopol> you made it longer
14:57:50 <ehird> yes but it runs simpler
14:57:52 <oklopol> ohh
14:57:54 <ehird> it doesn't use binary
14:57:54 <ehird> a all
14:57:55 <oklopol> and it's not a binary counter
14:57:56 <ehird> at all :P
14:58:03 <ehird> oklopol: a binary counter would OUTPUT IN BINARY
14:58:06 <oklopol> *[w*]
14:58:10 <oklopol> that's faster
14:58:17 <ehird> exactly
14:58:22 <ehird> oklopol: so make it output in binary! :P
14:58:27 <oklopol> ehird: it outputs in binary, just doesn't store the values
14:58:29 <ehird> 0 = space, 1 = dot naturally
14:58:55 <oklopol> that's a binary counter, pgimeno's is one that outputs binary numbers
14:59:10 <oklopol> which isn't really useful, unlike a counter
14:59:28 <ehird> ais523: we're talking about paintfuck
14:59:40 <ehird> which is the first interesting bf dialect in ages
14:59:40 <ehird> http://forums.tigsource.com/index.php?topic=3710.0
14:59:47 <ehird> the thing is, the memory is actually the screen
14:59:54 <ehird> so your program has to think in its output drawing format
15:00:03 <ehird> langton's ant, game of life, rule 110, etc have been done
15:00:20 <oklopol> i'm not saying paintfuck isn't interesting, i'm just saying it's not a new idea
15:00:31 <ehird> oklopol: yeah ok w/e :P
15:00:35 <ehird> but ais523 hasn't seen it
15:00:35 <ehird> so
15:00:42 <ehird> ais523: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php javascript interp, it's fast
15:00:50 <oklopol> but what is new is someone having linked an implementation so i can play with it :P
15:01:27 * ehird makes his counter go forever
15:02:52 <oklopol> argh
15:02:57 <oklopol> i'm still here
15:03:00 <oklopol> doing absolutely nothing
15:04:31 <ehird> *w*[[[*w*]*e*e*[*e*]*w*]*s*e*w]
15:04:34 <ehird> infinite count
15:05:03 <ehird> aka slowest screen fillder ever
15:05:06 <ehird> *filler
15:05:56 <oklopol> not really, that's O(n^2) filling tiem
15:06:02 <oklopol> wait...
15:06:19 <oklopol> n*sqrt(n) is more like it
15:06:38 <ehird> oklopol: after it fills the screen it then mangles the topleft and topright pixels
15:06:40 <oklopol> point is doing it in binary is O(2^n)
15:06:43 <ehird> so it's the slowest screen filler ever
15:06:48 <ehird> as it takes more than infinite time to fill the screen
15:06:51 <oklopol> what do you mean?
15:07:00 <ehird> oklopol: it makes the topleft and topright pixels blac
15:07:01 <ehird> k
15:07:04 <ehird> at the end
15:07:07 <oklopol> infinity = -1, as we all know
15:07:15 <oklopol> so it's as fast as you can get
15:10:25 <oklopol> err..... what the fuck, still here......
15:10:30 <oklopol> i'm such a slacker
15:10:34 <oklopol> soon i will go
15:10:39 <oklopol> maybe... now
15:10:41 <oklopol> ->
15:39:02 <pgimeno> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/langtonsant.php - Langton's ant (unrelated to PFK)
15:39:20 <pgimeno> not programmable though
15:39:29 <lostgeek> AnMaster: PaintFuck
15:39:34 <lostgeek> arrrrrrrrgh
15:39:43 <ehird> gee how many times have we said "AnMaster: PaintFuck" today
15:39:53 <lostgeek> well this time it was my fault
15:40:12 <lostgeek> i thought i was in the other terminal window and pressed up and enter
15:45:48 <AnMaster> hm?
15:45:59 <AnMaster> lostgeek, did you want it?
15:46:05 <AnMaster> err
15:46:08 <AnMaster> did you want something
15:46:09 <AnMaster> I meant
15:46:12 <lostgeek> nope
15:46:15 <AnMaster> ok
15:58:21 <AnMaster> back
15:58:24 <AnMaster> huh
15:58:31 <AnMaster> forgot to say afk heh
15:58:42 <AnMaster> ais523, and thanks btw
15:58:45 <AnMaster> didn't see it abvoie
15:58:46 <AnMaster> above*
16:13:33 <AnMaster> AnMaster, hm... *poke*
16:13:40 <AnMaster> anything interesting?
16:13:44 <AnMaster> or busy with "rl2
16:13:45 <AnMaster> err
16:13:47 <AnMaster> or busy with "rl"*
16:20:45 -!- puzzlet_ has quit (Remote closed the connection).
16:20:53 -!- puzzlet has joined.
16:20:54 -!- KingOfKarlsruhe has joined.
16:26:20 <lostgeek> mh. I got a problem with my code window...
16:26:46 <lostgeek> lets say I have a loop like *[w*] or something
16:26:51 <ais523> AnMaster: busy with things including RL
16:27:03 <ais523> and some non-RL but non-eso programming
16:27:05 <lostgeek> and my pointer is on the second *
16:27:17 <ais523> and trying to recover an email that Outlook Web Access deleted yesterday
16:27:23 <ais523> I spent over an hour writing it
16:27:24 <lostgeek> now I call nextStep() and move to ']'
16:27:31 <ais523> then accidentally hit back on my mouse, and couldn't get back to it
16:27:33 <ais523> so I'm rewriting it
16:27:43 <lostgeek> where I jump back to '['
16:28:04 <lostgeek> how I was solving it was to jump back to the left of '['
16:28:49 <lostgeek> but in that case my pointer is on the first * which is confusing, since I don't execute it
16:29:01 <AnMaster> ais523, ah
16:29:12 <lostgeek> any ideas how to solve that?
16:29:18 <AnMaster> ais523, ouch
16:30:06 <AnMaster> lostgeek, you move before you execute or execute before you move?
16:30:18 <lostgeek> move before I execute
16:30:34 <lostgeek> which solves other problems I would have when executing before moving
16:30:52 <AnMaster> lostgeek, now I don't 1) know how similar it is to plain bf, 2) what language you are writing it in
16:30:59 <AnMaster> but if it was C and plain bf
16:31:02 <ehird> http://www.iq0.com/notes/deep.nesting.html
16:31:11 <ehird> (AnMaster will hate that article)
16:31:11 <AnMaster> I would just connect the ] node's next pointer to the matching [
16:31:14 <AnMaster> while I'm parsing
16:31:27 <AnMaster> the up pointer to the instruction after
16:31:51 <AnMaster> and the ['s down pointer to the first instruction in the loop
16:31:54 <AnMaster> or something like that
16:32:27 <AnMaster> lostgeek, and move before execute is sane
16:32:43 <lostgeek> I'm working with strings (on java)
16:32:51 <ehird> lostgeek: prepaer
16:32:53 <ehird> *preparse
16:32:55 <ehird> the code before execution
16:33:07 <AnMaster> no idea about java
16:33:21 <AnMaster> but I would represent the source of plain bf as a 2D linked list
16:33:37 <AnMaster> actually to save some space I wouldn't have separate up and down pointers in the structs
16:33:43 <AnMaster> I would have a single "aux" pointer
16:33:54 <AnMaster> since I wouldn't need up and down in the same struct
16:34:03 <AnMaster> need both*
16:34:39 <lostgeek> mh ok. I added a TODO :)
16:34:42 <lostgeek> thanke
16:34:46 <lostgeek> thanks
16:34:52 <AnMaster> lostgeek, but this may be totally crazy to do in java
16:34:54 <AnMaster> I got no idea
16:35:13 <lostgeek> AnMaster: I think there are LinkedLists in Java. But working with strings was easier
16:35:29 <ehird> lostgeek:
16:35:48 <ehird> public class BFNode { public char type; public BFNode stuff; public BFNode next; }
16:36:18 <ehird> lostgeek: {type='[', stuff={type='w', stuff=null, next=null}, next={type='*', stuff=null, next=null}}
16:36:23 <ehird> lostgeek: then just recurse to loop
16:36:27 <ehird> or keep a manual stack
16:37:29 <lostgeek> yeah. may be a good way to solve it.
16:37:31 <AnMaster> lostgeek, well I did it like this: mmap() source bf file, write a recursive parser to build the tree, pass the tree to the optimizer (replaces ++- with +, reorganize >-<+>-< into >--<+ and such as well as replace ---- with -4)
16:37:37 <AnMaster> then I pass it to the emitter
16:37:40 <ehird> its the only way to solve it sanely
16:37:42 <AnMaster> that emitted it as C code
16:37:42 <ehird> :P
16:37:48 <ehird> of course, insane is good too
16:37:50 <AnMaster> then I used system() to call the compiler
16:37:59 <ais523> AnMaster: do you replace >>>> with >4?
16:37:59 <AnMaster> since it was a compiler, not an interpreter
16:38:05 <ais523> gcc-bf really, really needs that optimisation
16:38:08 <AnMaster> ais523, yes of course
16:38:16 <ais523> in fact, I'm considering just getting it to output run-length-encoded BF
16:38:23 <AnMaster> ais523, however it was the one with huge duff's device due to being Def-BF
16:38:25 <ais523> easy enough to postprocess that into normal BF
16:38:25 <AnMaster> but since that is dead
16:38:30 <AnMaster> code reuse should be good
16:38:39 <AnMaster> I have considered several other optimizing techniques
16:38:54 <AnMaster> such as in a balanced loop try to pre-compute certain parts
16:38:56 <AnMaster> like
16:39:07 <AnMaster> [>++>+<<-]
16:39:10 <AnMaster> then you could do
16:39:41 <AnMaster> while (*ptr != 0) { *(ptr+1)+=2; *(ptr+2)++; }
16:39:42 <AnMaster> basically
16:39:47 <AnMaster> well not exactly
16:39:50 <AnMaster> but something like that
16:39:54 <AnMaster> instead of moving ptr
16:40:08 <AnMaster> oh and decrement too
16:40:13 <AnMaster> don't forget that heh
16:40:35 <AnMaster> ais523, see what I mean?
16:40:51 <AnMaster> and if number of iterations can be pre-computed...
16:40:56 <AnMaster> well you could gain a lot
16:41:05 <AnMaster> so it should try to track possible states
16:41:07 <AnMaster> of all cells
16:41:21 <AnMaster> you can *know* the state after a [-] (turned into a set zero by the optimizer)
16:41:33 <AnMaster> then if you can compute the value it has a bit later
16:41:38 <AnMaster> you can turn it into a set 3
16:41:40 <AnMaster> or whatever
16:41:50 <AnMaster> and if you know that at the start of a balanced loop...
16:41:59 <AnMaster> well you could either turn it into a for loop or unroll it
16:42:08 -!- puzzlet_ has joined.
16:42:11 <AnMaster> at least gcc compile for loops quite a bit faster than while loops
16:42:18 <AnMaster> ais523, :)
16:42:27 <AnMaster> what do you think of these ideas?
16:42:32 <AnMaster> I assume they aren't new
16:42:46 <ais523> AnMaster: I've considered similar things myself
16:43:01 <AnMaster> however I'm unsure if I could manage to implement this
16:43:19 <AnMaster> I mean even writing the basic optimizer was quite painful in C
16:43:27 -!- whtspc has joined.
16:43:33 <AnMaster> some sort of tree rewriting language, hmm
16:43:36 <whtspc> hi
16:43:36 <AnMaster> ais523, oil?
16:43:41 <AnMaster> isn't that for that
16:43:44 <ehird> yo
16:43:46 <ais523> AnMaster: yes
16:43:49 <AnMaster> would need a different variant though
16:43:51 <ehird> whtspc: oklopol wrote a Game of Life
16:43:51 <ehird> it's slow
16:43:55 <AnMaster> something that isn't as intercal specific
16:44:00 <AnMaster> and that is possible to actually read
16:44:01 <ais523> although OIL was defined specifically for INTERCAL, it would be possible to do similar langs for other langs
16:44:06 <ais523> and OIL is readable
16:44:13 <AnMaster> ais523, do you know of any existing one?
16:44:14 <ais523> at least compared to INTERCAL
16:44:20 <whtspc> I saw something, is there a definite version?
16:44:27 <whtspc> ehird?
16:44:27 <ais523> AnMaster: no, or possibly I'd have used them rather than writing OIL from scratch
16:44:38 <ehird> whtspc: conway's game of life
16:44:39 <AnMaster> ais523, ah
16:44:53 <AnMaster> ais523, still oil couldn't easily do variable tracking
16:45:02 <AnMaster> or could it?
16:45:09 <AnMaster> what computational class is oil btw?
16:45:28 <whtspc> i saw the one with the three block, amazing!
16:45:29 <ais523> AnMaster: PDA, I think
16:45:32 <ehird> whtspc: http://www.vjn.fi/pb/p422562455.txt
16:45:36 <ehird> also
16:45:37 <ehird> which on
16:45:37 <ehird> e
16:46:01 <whtspc> cool
16:46:09 <AnMaster> ais523, PDA?
16:46:16 <AnMaster> you mean like a PDA computer?
16:46:17 <AnMaster> err
16:46:19 <ais523> push-down automaton
16:46:21 <AnMaster> ah
16:46:23 <AnMaster> hah
16:47:08 <AnMaster> ais523, still variable tracing/tracking hm, I don't know how I would even do that
16:47:23 <AnMaster> I mean I could try to trace the entire program but that would be insane
16:47:38 <AnMaster> I would need to give up at unbalanced loops and so on
16:47:39 <AnMaster> hrrm
16:47:59 <ais523> I've been having insane ideas as to how to optimise unbalanced loops, etc
16:48:05 <AnMaster> and what about new simplification possible after the first pass?
16:48:19 <AnMaster> should you try to run it again?
16:48:19 <AnMaster> ais523, how?
16:48:20 <whtspc> I like to be able to easily save programs in sort of database, do you guys use something special for that?
16:48:39 <AnMaster> I can see how if you just reorganize a bit but leave the pointer the same at the end and the start
16:48:39 <AnMaster> say
16:48:41 <whtspc> should I just open a blog to quickly paste things in
16:48:48 <AnMaster> [>++<->+>>]
16:48:51 <AnMaster> that could be moved
16:48:52 <AnMaster> to
16:49:00 <AnMaster> [>+++<->>>]
16:49:07 <ehird> whtspc: umm
16:49:09 <AnMaster> and that could be moved to
16:49:09 <ehird> a filesystem
16:49:11 <ehird> heard of 'em
16:49:17 <AnMaster> [->+++>>]
16:49:22 <ehird> if you wanna share it, pastie.org
16:49:27 <AnMaster> but that is about all you can do for them
16:49:36 <ehird> if you want to get a list of them, insertsomerandomwordshereandbookmarkit.pastebin.com
16:49:40 <AnMaster> sure you could try to generate effective code
16:50:01 <AnMaster> such as substract, add 3 to next, add 3 to pointer
16:50:11 <AnMaster> but that is still about it
16:50:12 <whtspc> yeah thought about pastebin
16:50:19 <AnMaster> ais523, so what is your idea then?
16:50:44 <ais523> AnMaster: work out what's being used for what
16:51:05 <AnMaster> ais523, it would be very hard to track what the state is at the end of the loop compared to the start
16:51:10 <AnMaster> what cells are affected
16:51:11 <AnMaster> and such
16:51:33 <AnMaster> ais523, probably possible and extremely hard for a few cases
16:51:40 <AnMaster> and impossible for the majority
16:51:44 <AnMaster> that is my *feeling*
16:51:45 <ais523> so for instance you might deduce that there's a location that's always reached by [>>>] from a particular point
16:51:46 <ais523> that moves around
16:51:54 <AnMaster> ais523, hm
16:52:06 <AnMaster> ais523, example?
16:52:48 <whtspc> wow, game of life :)
16:52:55 <ais523> AnMaster: not easily
16:53:21 <AnMaster> ais523, hm ok... The worst thing is if you can't figure out, for example say it is based on user input, then figure out where you can resume
16:53:23 <ehird> whtspc: also
16:53:28 <ehird> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php
16:53:31 <ehird> new pgimeno interpr
16:53:33 <ehird> really fast
16:53:45 <AnMaster> if it wasn't for unbalanced loops it would be very very easy to find out
16:53:45 <whtspc> yeah using it right now for life
16:53:50 <AnMaster> and it would also be non-tc
16:54:00 <whtspc> it's the best for easy use too
16:54:29 <AnMaster> ais523, so how hm...
16:54:42 <whtspc> really looking forward to lostgeek things too
16:54:51 <ais523> AnMaster: basically in the style of Proud, but saner
16:54:58 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
16:55:02 <ais523> have a huge set of plausible assumptions to start off with
16:55:11 <ais523> then given the current set of assumptions, see which are contradicted by the program
16:55:18 <AnMaster> ais523, Proud, hm was that the uncomputable one?
16:55:23 <ais523> continue iterating until you have a consistent set of assumptions
16:55:24 <ais523> AnMaster: yes
16:55:36 <ais523> Proud's like I suggested but with an uncountably infinite set of assumptions
16:55:42 <ais523> whereas I was planning just a finite number
16:56:13 <AnMaster> ais523, well, finite would be uh 255 * number of cells! or something like that?
16:56:25 -!- Corun has joined.
16:56:30 <AnMaster> also
16:56:35 <AnMaster> +[>+]
16:56:39 <AnMaster> ais523, :P
16:56:47 <AnMaster> ^bf +[>+]
16:56:52 <AnMaster> fungot, ?
16:56:52 <fungot> AnMaster: same core language that the rest of the arguments
16:56:56 <AnMaster> ^help
16:56:56 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
16:57:09 <AnMaster> why didn't it say "out of time"?
16:57:17 <AnMaster> ^bf +[>+]
16:57:29 <AnMaster> ^bf +++++++++++++++++++++.
16:57:30 <fungot>
16:57:32 <AnMaster> hm
16:57:39 <AnMaster> ^bf +++[>++.]
16:57:39 <fungot> ...
16:57:47 <AnMaster> fizzie, is it broken?
16:58:35 <AnMaster> ^bf ----.[>+.]
16:58:35 <fungot> <CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP><CTCP> ...
16:58:37 <ais523> ^bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
16:58:38 <fungot> B
16:58:41 <AnMaster> ^bf ----.[>+]
16:58:42 <fungot>
16:58:51 <AnMaster> now that doesn't look right at all
16:58:58 <ais523> the out of stuff thing seems broken
16:59:04 <ais523> ^bf +[]
16:59:05 <AnMaster> ais523, yes
16:59:09 <fungot> ...out of time!
16:59:14 <ais523> ...
16:59:18 <AnMaster> huh
16:59:25 <AnMaster> ^bf ----.[]
16:59:30 <fungot> ...out of time!
16:59:49 <AnMaster> ais523, seems it fails for "out of cells"
16:59:58 <AnMaster> or out of tape
16:59:58 <ais523> ^bf <
17:00:19 <AnMaster> that shouldn't even be legal
17:00:28 <AnMaster> ^hi
17:00:30 <ais523> AnMaster: that's out of tape too, just off the other end
17:00:37 <ais523> ^ul (test)S
17:00:37 <AnMaster> ^show
17:00:37 <fungot> test
17:00:37 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help
17:00:47 <AnMaster> ais523, hm
17:01:20 <oklopol> o
17:01:21 <oklopol> o
17:01:27 <ehird> oklopol: o
17:01:33 <oklopol> yes
17:01:35 <ais523> o o oko
17:01:40 <oklopol> okoko
17:01:44 <oklopol> okokokoko
17:01:46 <AnMaster> ais523, so how would you implement this optimizer?
17:01:47 <oklopol> okokokokokokoko
17:01:48 <AnMaster> I don't know
17:01:55 <AnMaster> I couldn't do it I guess
17:02:13 <AnMaster> ais523, also what would the assumptions be?
17:02:15 <ais523> AnMaster: I have too many toher things to think about, but I've thought about it before
17:02:26 <AnMaster> ais523, "any cell can have any value"?
17:02:30 <ais523> assumptions like "if the pointer points to this cell, it's location is always known"
17:02:39 <ais523> "every third cell is 0 when this point in the code is reached"
17:02:58 <AnMaster> ais523, yes true, but how do you find out a sane and/or initial set of these assumptions
17:02:58 <ais523> "when the pointer's at cell 3n, n>100, then [<<<] always goes to cell 99"
17:03:01 <ais523> that sort of thing
17:03:10 <ais523> and the initial set is just full of all the assumptions we can think of
17:03:15 <ais523> optimised somehow to save time
17:03:24 <ais523> then it iteratively works out which ones are false
17:03:27 <ais523> until it has a consistent set
17:04:23 <AnMaster> I would do it like tracing the code flow as far as I could then make that constant initial state. For the rest of the code I would have to use another way
17:04:40 <AnMaster> like trying to trace what variables are known at what points
17:05:02 <AnMaster> like as soon as I have a [-] I can know that cell's state until the next bad section
17:05:11 <AnMaster> like unbalanced loop, or input into said cell
17:05:37 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:05:45 <AnMaster> ais523, that could work very well for gcc-bf output, but would perform rather poorly in the general case
17:05:46 <AnMaster> or such
17:06:11 <ais523> AnMaster: yes, probably
17:06:30 <ais523> we'd have to test it on lots of programs to see how real BF programs were generally written
17:06:33 <AnMaster> you would have to create an additional ruleset for the bfbasic or whatever it was called
17:06:43 <ais523> and it would be nice to have it working well on BFBASIC and on gcc-bf
17:06:46 <AnMaster> but for handwritten programs, wouldn't work well
17:07:01 <ais523> AnMaster: why not? handwritten programs mostly use the same sorts of idioms as each other
17:07:07 <AnMaster> hm
17:07:16 <AnMaster> ais523, you should be able to add new assumptions
17:07:23 <ais523> ofc
17:07:24 <AnMaster> I mean [-] is too good to miss out on
17:07:29 <AnMaster> "wow this cell is 0"
17:07:36 <ais523> AnMaster: that's not exactly adding a new assumption
17:07:40 <ais523> the assumption would be "pointer is 0 here"
17:07:46 <ais523> and it would never be contradicted
17:07:55 <ais523> so that one would stay in existence throughout the whole analysis
17:07:56 <AnMaster> ais523, indeed but then
17:07:58 <ais523> not added; just never taken away
17:08:03 <AnMaster> [-]>++<+++++
17:08:12 <AnMaster> that can be turned into
17:08:17 <ais523> AnMaster: after the > you have "left of pointer is 0 here"
17:08:25 <AnMaster> set cell to 5, >, add 2
17:08:28 <ais523> this only works if you have a huge stock of possible assumptions
17:08:49 <AnMaster> ais523, my point is you should be able to trace cell dependencies
17:08:58 <AnMaster> to work out you can turn that into a set to 5
17:08:59 <ais523> it does trace cell dependencies!
17:09:02 <AnMaster> ah
17:09:07 <ais523> once you have all the assumptions, then you optimise
17:09:14 <ais523> in this case, you get "pointer is 5 here" at the end
17:09:15 -!- Slereah_ has joined.
17:09:21 <ais523> which is very easy to optimise
17:09:25 <ais523> *pointer = 5;
17:09:27 <AnMaster> ais523, yes and you need to find where that 5 is used
17:09:30 <AnMaster> for example
17:09:36 <ais523> yep, that would have been tracked already too
17:09:47 <AnMaster> [-]>++<+++++[>+<-]
17:09:51 <AnMaster> what about that?
17:09:58 <jayCampbell> i gave Weave pbrain-style functions last night, haven't uploaded
17:10:10 <AnMaster> you could turn that into, set 0, >, add 7
17:10:15 <jayCampbell> so now it's weave threads + brainfork runtime threads + bprain functions
17:10:22 <AnMaster> ais523, not sure you could make the program do that however easily
17:10:27 <AnMaster> the compiler I mean
17:10:53 <AnMaster> ais523, or?
17:10:58 <ais523> let's see, I'm thinking
17:11:14 <ais523> before the second [, we have "pointer is 5"
17:11:37 <AnMaster> yep and right of pointer is two more than at the start of the section
17:11:43 <ais523> yes
17:11:48 <ais523> we can calculate that the loop runs *pointer times
17:12:01 <AnMaster> yes and then we can unroll it,
17:12:02 <ais523> so we can replace it with >+<->+<->+<->+<->+<-
17:12:12 <ais523> and then it's easy from there
17:12:14 <AnMaster> and reorder that
17:12:26 <ais523> it would be more interesting if it was >++<+++++[>+<-] without the [-] at the start
17:12:32 <AnMaster> ais523, well the issue with that is, how far ahead should you try to look for merging addition substraction
17:12:43 <AnMaster> think of a 1 MB huge section without any loops
17:12:52 <AnMaster> but where each cell affected is touched several times
17:12:57 <AnMaster> that should be reordered
17:13:12 <ais523> I think we should probably work at the level of linearisable sections
17:13:12 <AnMaster> but it would be rather expensive for such a long section
17:13:19 <ais523> i.e. sections with balanced <>
17:13:28 <AnMaster> ais523, hm? yes the 1 MB section would have that
17:13:29 <ais523> optimising a 1MB long section without loops is no slower than running it
17:13:32 <ais523> and you only have to optimise it once
17:13:42 <AnMaster> or with loops but balanced ones
17:13:55 <AnMaster> <ais523> it would be more interesting if it was >++<+++++[>+<-] without the [-] at the start <-- how then?
17:14:34 <ais523> AnMaster: well, that becomes pointer[1]+=2; pointer[0]+=1; (pointer[1]+=pointer[0], pointer[0]=0);
17:14:44 <AnMaster> ais523, still I'm not sure this is the smartest way always
17:14:45 <ais523> because it's linearisable, we can track variables separately
17:14:48 <ais523> s/1/5/
17:14:59 <AnMaster> for some balanced loops you might be better off by not unrolling it
17:15:04 <AnMaster> but turning it into
17:15:25 <ais523> AnMaster: you can't unroll if you don't know the number of iteratinos
17:15:27 <ais523> *iterations
17:15:51 <AnMaster> while (mem[ptr] != 0) { mem[ptr+2]+=4, mem[ptr]--; }
17:15:52 <AnMaster> or such
17:15:56 <AnMaster> if you see what I mean
17:16:01 <AnMaster> or even into a for loop
17:16:08 <AnMaster> that could be vectorized by gcc
17:16:13 <AnMaster> with -fvectorize-tree
17:16:13 <ais523> but unrolling is always going to help the optimiser do more optimisations, you can reroll again afterwards
17:16:15 <AnMaster> :D
17:16:33 <AnMaster> ais523, how would you re-roll then? not trivial or?
17:17:07 <ais523> rerolling is just run length compression
17:17:19 <ais523> that's what gzip effectively is doing, rerolling loops in text
17:17:47 <AnMaster> for (unsigned char i = mem[ptr]; i != 0; i--); do { mem[ptr+1] += 1; mem[ptr+2] += 1; mem[ptr+3] += 1; }
17:18:00 <AnMaster> that I believe gcc would vectorize probably
17:18:06 <AnMaster> wait
17:18:10 <AnMaster> that would be stupid still
17:18:16 <AnMaster> you would be able to do
17:18:20 <ais523> mem[ptr+1]+=mem[ptr];
17:18:21 <AnMaster> mem[ptr+1] -= i;
17:18:22 <AnMaster> yeah
17:18:26 <AnMaster> err
17:18:27 <AnMaster> +=
17:18:28 <AnMaster> right
17:18:45 <AnMaster> ais523, still I believe there are cases you can gain in by using for
17:19:24 <ais523> well, you can't completely compile a program with loops into a program without in all cases
17:19:28 <AnMaster> say:
17:19:34 <AnMaster> [[-]>]
17:19:40 <AnMaster> would be memset(0)
17:19:43 <ais523> hmm... balanced loops always compile into polynomials, don't they?
17:19:46 <AnMaster> until you hit a 0
17:19:53 <ehird> ais523: bf4 compiles them to polynomials
17:19:54 <AnMaster> ais523, oh? interesting
17:19:57 <ehird> i believe
17:20:22 <ais523> I reckon the best way to make an optimiser would be to always compile the polynomials first
17:20:27 <AnMaster> ais523, true
17:20:29 <ais523> then deal with unbalanced loops and assumptions on /that/ level
17:20:44 <AnMaster> ais523, what about turning [[-]>] into a *call* to memset?
17:20:45 <ais523> the assumptions could then mostly be about which cells held zero/nonzero, and where the pointer was
17:20:57 <AnMaster> that should be very fast
17:21:14 <AnMaster> ais523, yes true
17:21:14 <ais523> AnMaster: you're thinking at a completely different level to me here
17:21:23 <AnMaster> ais523, oh? yes I am
17:21:27 <ais523> I'm trying to optimise O(n^2) down to O(n)
17:21:30 -!- whtspc has quit ("ChatZilla 0.9.84 [Firefox 3.0.4/2008102920]").
17:21:33 <ais523> you're optimising O(n) into a slightly faster O(n)
17:21:36 <AnMaster> ah
17:22:02 <AnMaster> well turning balanced loops into polynomials first is indeed a good idea
17:22:18 <AnMaster> ais523, but I'm not happy with that
17:22:23 <AnMaster> so I want to go further
17:22:25 <AnMaster> ;P
17:22:37 <ais523> AnMaster: well, the usual trick is to let the C compiler do the microoptimisations
17:22:48 <ais523> after the BF compiler has done the computational class optimisations
17:23:00 <AnMaster> ais523, hah, but that requires it to understand what the program tries to do
17:23:06 <AnMaster> which might be far from clear at times
17:23:17 <AnMaster> considering the generated C wouldn't be very typical C code
17:23:32 <ais523> AnMaster: no, it would be the sort of C code that compilers are particularly good at micro-optimising
17:23:43 <ais523> something like [[-]>] into memset is trivial for a compiler like gcc
17:23:50 <ais523> which sees stuff being set to 0 in a loop
17:23:57 <AnMaster> ais523, in a while loop
17:24:03 <ais523> although, that would only work if the end was known
17:24:09 <AnMaster> so it would turn it into a strlen + a memset?
17:24:11 <AnMaster> or what?
17:24:17 <ais523> strlen + memset is slower than just looping
17:24:19 <AnMaster> since memset is faster than setting each byte
17:24:31 <AnMaster> ais523, depends, consider that memset can set 32 or 64 bits at a time
17:24:36 <ais523> the fastest way would be to do it wordwise
17:24:37 <AnMaster> while looping would just set 8 at a time
17:24:44 <ais523> using rep movdi
17:24:47 <AnMaster> ais523, indeed, which is what memset does iirc
17:24:53 <AnMaster> wordwise
17:24:56 <ais523> *rep movdb
17:25:03 <ais523> AnMaster: aha, no
17:25:05 <AnMaster> well I don't know what asm it uses
17:25:12 <ais523> memset doesn't terminate at end of string
17:25:13 <ais523> this does
17:25:17 <AnMaster> ais523, ah
17:25:25 <ais523> you want a string-set instruction, not a memory-set instruction
17:25:28 <AnMaster> that is crazy x86 string instruction things?
17:25:31 <ais523> yes
17:25:34 -!- Judofyr has joined.
17:25:39 <ais523> I'm pretty sure there's one that does exactly [[-]>]
17:25:44 <AnMaster> ais523, I wouldn't know, I'm writing portable code
17:25:51 <ais523> AnMaster: well, exactly
17:25:56 <ais523> this is why you let the compiler worry about the details
17:26:01 <AnMaster> ais523, hm true
17:26:02 <ais523> the C compiler
17:26:20 <AnMaster> ais523, about that rep stuff, can those be interrupted and resumed in the middle?
17:26:24 <AnMaster> I always wondered
17:26:29 <AnMaster> how it works with context switches
17:26:29 <ehird> an insane BF optimizer would compile down to machine code
17:26:44 <ais523> AnMaster: yes, but you need to keep track of the registers
17:26:56 <ais523> IIRC, they put their internal state in CX or something like that
17:27:00 <AnMaster> ais523, well the OS dumps them right
17:27:09 <ais523> SI, DI, and CX, or something
17:27:16 <ais523> so if the OS dumps them, it can resume the instruction
17:27:19 <ais523> by issuing it again
17:27:20 <AnMaster> ais523, only 16 bit registers?
17:27:30 <AnMaster> that sounds like it could be an issue
17:27:34 <ais523> AnMaster: I learnt x86 asm on DOS
17:27:41 <ais523> it works with bigger registers almost certainly
17:27:45 <AnMaster> ais523, ah right
17:27:59 <AnMaster> x86 is a mess heh
17:28:01 <ais523> but I have trouble thinking about anything bigger than 16 bits as I never learnt x86 asm in protected-mode
17:28:11 <ais523> just good old-fashioned real-mode programming
17:28:17 * AnMaster adds a REX prefix
17:28:28 <AnMaster> makes it operate on 64-bit operands
17:28:40 <AnMaster> on x86_64
17:28:41 <AnMaster> that is
17:29:22 <AnMaster> ais523, anyway, what about constant folding too?
17:29:34 <ais523> constant folding would happen automatically
17:29:38 <AnMaster> could be done for parts inside loops
17:29:40 <ais523> it's really the basis behind the whole thing
17:29:42 <AnMaster> even unbalanced ones
17:29:47 <AnMaster> or the start of the program
17:29:52 <AnMaster> that I think would be a good idea
17:30:16 <AnMaster> if the program starts with filing in lots of cells with initial values, you could constant fold that and put it in a static array
17:30:20 <AnMaster> in the generated program
17:30:38 <AnMaster> probably even use the static array for the first section of memory
17:30:42 <AnMaster> or such
17:30:46 <AnMaster> hm that is an issue
17:30:57 <AnMaster> we can't know the memory we get allocated are in one block
17:31:04 <AnMaster> the OS could allocate with holes
17:31:07 <ais523> wow, I just realised why UK keyboards have ¬ and that weird broken-vertical-bar char on them
17:31:21 <ais523> it's because they're the printable characters in EBCDIC that aren't in ASCII
17:31:22 <AnMaster> ais523, and to handle holes you need a more complex pointer
17:31:39 <ais523> that way, UK keyboards can type all the printable chars in ASCII, and all the printable chars in EBCDIC
17:31:58 <AnMaster> ais523, well anyway, what about the issue I mentioned?
17:32:22 <AnMaster> I would try to mmap() pages probably, but what if they are not in one single block
17:32:27 <AnMaster> what if I do get holes
17:32:27 <ais523> AnMaster: gcc-bf spends the whole first part of the program going >>>>>>>>>>>+++++++++++++>>>>>>>+++++>>>>>>>>>>>>>>>>>>>+++++++++++++
17:32:38 <ais523> and memory doesn't have holes if you don't ask for it with holes
17:32:40 <AnMaster> ais523, indeed that could be constant folded
17:32:48 <ais523> AnMaster: it's intended to be
17:32:48 <AnMaster> ais523, how do you mean? realloc()?
17:32:54 <AnMaster> but what if it needs to be moved
17:32:59 <AnMaster> then you have issues
17:33:02 <AnMaster> for huge data sets
17:33:02 <ais523> AnMaster: there is no problem with realloc moving stuff
17:33:15 <AnMaster> ais523, yes it would be for something with a large data set
17:33:18 <ais523> AnMaster: well, if you're really crazy, use sbrk
17:33:27 <ais523> it's perfect for allocating data for Brainfuck
17:33:39 <ais523> although almost useless for most langs
17:33:43 <AnMaster> ais523, hm that depends on knowing nothing else is malloced there
17:33:47 <ais523> yep
17:33:52 <ais523> but avoiding malloc is easy enough, surely?
17:33:55 <AnMaster> say if I call putchar() how can I know it didn't just malloc() something
17:33:57 <AnMaster> internallt
17:34:00 <AnMaster> internally*
17:34:03 <AnMaster> in libc
17:34:06 <ais523> AnMaster: isn't there a guarantee somewhere about that?
17:34:14 <ais523> it wouldn't surprise me if there was
17:34:22 <AnMaster> ais523, don't think so, glibc allocs a lot of internal stuff I'm pretty sure
17:34:27 <AnMaster> like input buffers
17:34:40 <ais523> so does libbf
17:34:59 <AnMaster> ais523, yes indeed, so suddenly sbrk may mean it isn't at the top any more!
17:35:18 <ais523> well, you could do brk(NULL) to see if the break value had unexpectedly changed
17:35:24 <ais523> and just realloc the whole lot if it had
17:35:38 <ais523> if something's going to insist on making memory discontiguous, you're going to have to move things around to recontiguise it
17:35:40 <AnMaster> that could leave a huge unused area below
17:35:44 <AnMaster> that nothing can fill
17:36:05 <ais523> AnMaster: you're still thinking on entirely the wrong level here
17:36:17 <ais523> if you really really want massively optimised code, just refrain from syscalls
17:36:20 <AnMaster> ais523, also I'm not sure libc isn't allowed to see there is something free below sbrk and alloc stuff there
17:36:21 <AnMaster> or?
17:36:30 <ais523> that way you know that nothing's brking behind your back
17:36:34 <AnMaster> ais523, you need syscalls for input and output
17:36:39 <AnMaster> bf has that
17:36:47 <ais523> AnMaster: no you don't!
17:36:51 <AnMaster> ais523, oh?
17:36:52 <ais523> the operating system has to manage it somehow
17:36:57 <AnMaster> yes it does
17:37:20 <AnMaster> ais523, ah I got an idea, elf hack, and no idea if it works for stuff in libc
17:37:23 <AnMaster> do like valgrind
17:37:25 <AnMaster> redirect malloc
17:37:31 <AnMaster> to something that allocs from mmaped areas
17:37:41 <AnMaster> well valgrind doesn't do that bit
17:37:54 <AnMaster> anyway it probably won't work for internall malloc() calls in the libc
17:37:58 <ais523> AnMaster: it does work for stuff in libc
17:38:03 <AnMaster> ais523, oh?
17:38:13 <ais523> valgrind errors on some stuff on libc, or would do if it wasn't careful not to
17:38:19 <ais523> besides, just link libc statically
17:38:22 <AnMaster> ais523, wouldn't it use a direct call instead of going through the symbol table?
17:38:26 <ais523> then it definitely works
17:39:13 <AnMaster> ais523, and this would probably only work on a few *nix like linux
17:39:21 <AnMaster> and freebsd at least
17:39:26 <ais523> AnMaster: you are thinking on utterly utterly the wrong level, OK
17:39:32 <AnMaster> ais523, really?
17:39:40 <AnMaster> well I agree high level optimizations is best
17:39:44 <AnMaster> I completely agree
17:39:54 <AnMaster> but once that is done you want more speed
17:40:19 <AnMaster> ais523, it isn't enough to be fast, you will want to be fastest
17:40:24 <AnMaster> and even faster
17:40:36 <AnMaster> just to make sure no one can sneak up easily on your speed
17:41:15 <AnMaster> ais523, no?
17:41:47 <ais523> AnMaster: but any number of low-level optimisations will fail to a big optimisation at the top that improves computational order
17:41:53 <ais523> also, low-level optimisations often slow things down
17:42:12 <AnMaster> ais523, indeed you should do the big optimisations first
17:42:22 <AnMaster> and once that is done, continue with lower and lower levels
17:42:37 <AnMaster> lim speed -> perfection
17:42:46 <ais523> but things like ensuring that all the memory in a BF interp is contiguous are completely independent of other optimisations
17:42:50 <ais523> and I don't really care about them right now
17:43:01 <ais523> besides, all the BF interps in existence have never really had problems with that
17:43:17 <ais523> if you want contiguous memory, allocate a few MB worth of cells in a static array
17:43:34 <ais523> as in practice people never go off the end of that anyway, if they do, don't care about the time delay on realloc
17:43:38 <AnMaster> ais523, got a link to bf4?
17:43:44 <ais523> AnMaster: no I don't, ask ehird
17:43:49 <AnMaster> ais523, ignores...
17:43:52 <ehird> ais523: how, I have him on ignore
17:43:59 <ais523> ehird: AnMaster wants a link to bf4
17:44:07 <AnMaster> I did google yes
17:44:13 <ehird> ais523: ouch. it must suck being in an alternate universe without google for him.
17:44:19 <ehird> or the esolang wiki
17:44:25 <ais523> [17:44] <AnMaster> I did google yes
17:44:27 <ais523> [17:44] <ehird> ais523: ouch. it must suck being in an alternate universe without google for him.
17:44:28 <ais523> classic
17:44:44 <ehird> <ehird> or the esolang wiki
17:44:48 <ais523> perfect timing on that, AnMaster answering ehird's complaint before ehird complained it...
17:44:49 <ehird> today on the ais523 show we snip context
17:44:56 <ais523> ehird: it was just two lines in a row
17:45:00 <AnMaster> ais523, thanks
17:45:02 <ais523> that was post-context I snipped
17:45:12 <ehird> no, it was a sentence over two lines
17:45:30 <AnMaster> wow it isn't on the brainfuck page
17:45:33 <ais523> ehird: besides, AnMaster clearly doesn't live in a world without Google or Esolang, as he lives at least in a world with Google
17:46:05 <AnMaster> ais523, (bf|brainfuck) ?4
17:46:08 <ais523> also, according to AnMaster it isn't on http://esolangs.org/wiki/brainfuck either
17:46:13 <AnMaster> can not be found on the brainfuck esolang page
17:46:14 <ehird> it is.
17:46:44 <AnMaster> no. not with that name then
17:46:57 <AnMaster> if it got another name it would he hard to find...
17:47:05 -!- jix_ has joined.
17:47:12 -!- jix_ has quit (Remote closed the connection).
17:47:13 <ais523> ehird: there are no instances of the digit 4 anywhere on http://esolangs.org/wiki/brainfuck
17:47:21 <ais523> wait, messed up my browser
17:47:22 <ehird> ais523: and?
17:47:26 -!- jix_ has joined.
17:47:27 <AnMaster> ais523, well there is, "This page has been accessed 47,617 times."
17:47:30 <AnMaster> and 1024
17:47:32 <ehird> it isn't named in the link
17:47:32 <ehird> just like bff
17:47:36 <AnMaster> and Brainfuck interpreter for the HP48gII calculator. May also work with other HP calculators.
17:47:46 <ais523> ehird: well, then why did you expect AnMaster to find it by searching Esolang
17:47:55 <AnMaster> ok then how the heck should you find it... if it badly named
17:48:00 <ehird> He could look at the link text and click ones that look relevant?
17:48:01 <ais523> you're arguing against yourself here
17:48:02 <ehird> That's how I found it.
17:48:11 <AnMaster> there isn't a "bff" either
17:48:13 <AnMaster> with that spelling
17:48:27 <ais523> ehird: that's much less reasonable than asking someone who knows the link to tell where it is
17:48:40 <ehird> Well, yes, but you could go for someone who wants to tell you,.
17:48:46 <ais523> you're coming up with a rather beware of the leopard response
17:50:24 <AnMaster> it is a lot more fun to optimize brainfuck than it is to code in it, IMO
17:52:10 -!- puzzlet_ has quit (Remote closed the connection).
17:52:15 -!- puzzlet has joined.
17:53:00 <AnMaster> ok with some googling I found this http://mozaika.com.au/oleg/brainf/
17:53:08 <AnMaster> after:
17:53:18 <AnMaster> bff4 brainfuck
17:53:28 <AnMaster> well that wasn't the name ehird told us initially
17:53:33 <AnMaster> ais523, ^
17:53:46 <AnMaster> now if he had said that it would have been simpler
17:53:50 <ais523> ehird: AnMaster says that the interp in question is actually called bff4
17:53:56 <ais523> so you even got the name you told em wrong
17:54:01 <ehird> bf4, bff4
17:54:04 <ehird> not exactly hard to make the leap?
17:54:09 <ais523> ehird: well, yes it is
17:54:14 <ehird> k
17:54:16 <AnMaster> yes, why would I try to look for an extra f?
17:54:20 <ais523> would you claim that bf and bff are the same interp?
17:54:24 <AnMaster> I mean, brain ffuck?
17:54:26 <AnMaster> or what?
17:54:28 <ehird> no, but the 4 is the main thing
17:54:55 <ais523> ehird: that's a version number... naming programs including the version number is fine, naming programs after /just/ the version number is stupid
17:55:05 <ehird> ais523: It is not a version number.
17:55:07 <ais523> unless the version number itself is something stupid like XP or Vista
17:55:22 <AnMaster> ais523, someone else made bff it says on that page
17:55:26 <ais523> ah, yes
17:55:27 <AnMaster> so it is a separate program
17:55:29 <AnMaster> but still
17:55:31 <ais523> but still
17:55:36 <AnMaster> how could I guess there was an extra f?
17:55:46 <AnMaster> I mean, it isn't in the name "brainfuck
17:55:48 <AnMaster> "
17:55:51 <AnMaster> there is one f there
17:55:53 <AnMaster> not two
17:56:11 <AnMaster> so how on earth would it be possible to guess that one should add the extra f
17:56:45 <AnMaster> why not add an extra b?
17:56:47 <AnMaster> instead
17:56:49 <ais523> ehird: <http://www.google.co.uk/search?q=brainfuck+4&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a>, Google disagrees with you on the 4 being the main thing
17:56:50 <AnMaster> or an extra 4
17:56:59 <ehird> ais523: bf{f}4
17:57:03 <ais523> if it was, a Google search for "brainfuck 4" would find what you were talking about
17:57:04 <ehird> seriously, stop bugging me.
17:57:12 <AnMaster> sure ehird, but you didn't say it at the start
17:57:16 <ehird> it's very obvious i don't feel like helping AnMaster.
17:57:20 <ais523> ehfird: why on earth would you assume people would randomly add an extra 4 to things?
17:57:33 <AnMaster> ais523, or an extra f...
17:57:38 <ehird> that wasn't a regexp.
17:57:38 <ais523> AnMaster: yes
17:57:40 <ais523> sorry
17:57:41 <AnMaster> and also just admitting the mistake would be easier
17:57:55 <ais523> ehird: well, clearly, it's a syntax error as a regexp
17:58:06 <AnMaster> also he didn't say that initially
17:58:09 <ais523> it's legal but pointless as a wildmat
17:58:26 <AnMaster> {,f}
17:58:26 <ais523> AnMaster: don't be too hard on ehird, his keyboard obviously has an invisible f key button that he pressed by mistake
17:58:31 <ais523> being invisible, he didn't realise
17:58:38 <AnMaster> ais523, oh?
17:58:39 <ais523> those Apple keyboards are strange...
17:58:42 <AnMaster> ah true
17:58:53 <ehird> k, call me back when you're talking about esolangs instead of lolling with AnMaster about me, i kind of have better things to do than being highlighted every 2 seconds
17:58:55 -!- ehird has left (?).
17:59:00 <AnMaster> ais523, so you mean he got one normal and one invisible f?
17:59:04 <ais523> presumably
17:59:11 <AnMaster> also he can't simply admit he did a mistake
17:59:11 <ais523> as he's obviously capable of typing visible fs
17:59:25 <ais523> AnMaster: actually, he seems to have admitted he was being deliberately obstructive to try to annoy you
17:59:27 * AnMaster sighs
17:59:34 <AnMaster> ais523, well true, but...
17:59:39 <ais523> which makes complaining about the resulting revenge a bit rich
18:00:18 <AnMaster> ais523, haah
18:00:20 <AnMaster> hah*
18:00:39 <AnMaster> ok the bff4 code isn't very well commented
18:00:47 <AnMaster> http://mazonka.com/brainf/bff4.c
18:01:14 <AnMaster> one helpfull thing is that -DLNR is supposed to be what makes it optimize linear loops
18:01:35 <AnMaster> so hopefully not to hard to find the relevant code that way
18:02:01 <AnMaster> if( z->linear )
18:02:01 <AnMaster> {
18:02:01 <AnMaster> int del = m[mp]/z->linear;
18:02:01 <AnMaster> for( i=0; i<z->sz; i++ ) m[mp+z->off+i]+=del*z->d[i];
18:02:01 <AnMaster> }
18:02:04 <AnMaster> that seems to be it
18:02:14 <AnMaster> it calculates if it is linear a bit before
18:02:19 <AnMaster> now wtf does that code do
18:02:20 <ais523> AnMaster: I'm too busy with other things to attempt to parse that code, I think
18:02:32 <AnMaster> ais523, a bit obfuscated isn't it
18:02:42 <ais523> meaningless variable names, not enough spaces
18:02:54 <ais523> it's slightly worse than what I write on average, which means it must be /really/ bad
18:03:13 <AnMaster> ais523, the whole file is like that
18:03:21 -!- psygnisfive has joined.
18:03:29 <AnMaster> ais523, after the includes there is *NO* comment
18:03:51 <ais523> I comment my code quite a bit normally
18:03:54 <ais523> especially the obfuscated code
18:04:03 <ais523> even the IOCCC stuff is commented, although the comments are just there to confuse people
18:04:05 <ais523> such as /\
18:04:07 <ais523> with the * on the next line
18:04:30 <AnMaster> heh
18:04:33 <AnMaster> well this is the reverse
18:04:55 <AnMaster> ais523, also bff4 seems to be an interpreter not a compiler
18:05:15 <ais523> it's basically a bytecode compiler + interpreter, I think
18:05:26 <AnMaster> ah
18:09:41 <AnMaster> ais523, hm would it be possible to optimize > or < into a constant goto cell after an unbalanced loop?
18:09:46 <AnMaster> what would be needed to be able to
18:09:48 <AnMaster> I mean like
18:09:56 <AnMaster> setting pointer to a fixed value
18:10:08 <AnMaster> not like adding or subtracting a specific value
18:10:33 <AnMaster> another thing
18:10:40 <psygnisfive> guys
18:10:41 <AnMaster> what about loops like:
18:10:44 <psygnisfive> sambuca = delicious
18:10:47 <ais523> <AnMaster> ais523, hm would it be possible to optimize > or < into a constant goto cell after an unbalanced loop? <--- that's the main thing I want to focus on
18:10:56 <AnMaster> [>.<-]
18:11:01 <AnMaster> that is balanced
18:11:06 <AnMaster> but not easily translated
18:11:09 <AnMaster> hm wait
18:11:15 <AnMaster> you could make a balanced one too
18:11:29 <AnMaster> [>+<.]
18:11:34 <AnMaster> err
18:11:35 <AnMaster> waiut
18:11:36 <ais523> [>.<-] is trivially translated
18:11:36 <AnMaster> wait*
18:11:38 <AnMaster> ,
18:11:41 <AnMaster> not .
18:11:44 <AnMaster> I typoed that
18:11:44 <ais523> it just prints a character lots of times
18:11:49 <ais523> , is more interesting
18:11:50 <AnMaster> ais523, I typoed, I meant ,
18:11:52 <AnMaster> yeah
18:12:04 <ais523> that just reads characters forever, doesn't it?
18:12:04 <AnMaster> or , that ends up affecting loop count
18:12:11 <AnMaster> but where you can still know the cell
18:12:29 <AnMaster> ais523, hm ok, so what about one where it substracts 78 from the value it read?
18:12:33 <ais523> AnMaster: things like ,[.,] probably can't be optimised any furthre
18:12:37 <ais523> *further
18:12:40 <AnMaster> that could be easily input and hit 0
18:12:42 <AnMaster> or not
18:12:46 <AnMaster> see what I mean?
18:13:20 <AnMaster> like: [, -78 ]
18:13:26 <AnMaster> in pesudo code
18:13:33 <AnMaster> then if I enter N the loop will ned
18:13:38 <AnMaster> but anything else it will continue
18:13:41 <AnMaster> yet it is balanced
18:13:50 <AnMaster> sure that is hard to optimize more
18:13:56 <AnMaster> but you could have other code
18:13:57 <AnMaster> in it
18:13:59 -!- oerjan has joined.
18:14:10 <AnMaster> that would be easy to optimize with known iteration count
18:14:20 <AnMaster> but you can no longer do anything but a while loop
18:14:31 <AnMaster> ais523, right?
18:14:35 <ais523> AnMaster: there is nothing intrinsically bad about while loops
18:14:44 <ais523> it's the number of nested loops you want to be able to keep down in a program
18:14:55 <AnMaster> ais523, true
18:15:10 <AnMaster> but still user input affecting the loop counter might be hard to handle
18:15:15 <ais523> AnMaster: no it isn't, just do a while loop
18:15:15 <AnMaster> it blocks a lot of optimizing
18:15:20 <ais523> that's what it /is/, after all
18:15:32 <ais523> it doesn't block the sort of high-level optimisations I care about, just your low-level parallelised megafors
18:15:43 <AnMaster> ais523, true, but you know what I saw recently, with gcc, a while loop used for comping CRC, was slow
18:15:46 <AnMaster> changed to a for loop
18:15:49 <AnMaster> a lot faster
18:16:08 <AnMaster> and yes object size was known at compile time in both cases
18:16:11 <ais523> AnMaster: is "a lot" a factor of 10000 or more?
18:16:15 <ais523> or more like 1.2?
18:16:26 <AnMaster> ais523, a lot being like a factor or 4 times as fast or so
18:16:27 <ais523> it's the factor-of-10000 changes I'm going for
18:16:39 <AnMaster> between 4 and 8
18:16:40 <AnMaster> or so
18:16:43 <AnMaster> iirc
18:17:16 <AnMaster> ais523, since it was run several hundred of thousands of times during a single execution however
18:17:21 <AnMaster> it did help
18:17:36 <AnMaster> it was at the top of "time spent in function" in gprof output
18:17:46 <AnMaster> before
18:17:51 <AnMaster> far from the top after
18:17:56 <AnMaster> so for that case it mattered
18:18:01 <ais523> anyway, I'd like to end this conversation, so I can concentrate on something else
18:18:05 <AnMaster> ais523, ok :)
18:18:07 <ais523> I have a massively long email to reconstruct
18:18:11 -!- Deewiant has quit (Read error: 60 (Operation timed out)).
18:18:21 <AnMaster> ais523, meanwhile I will try to work on some ideas I got from this convo
18:18:28 -!- oerjan has quit (Client Quit).
18:18:44 <oklopol> and i will go to el shoppo
18:18:48 <AnMaster> oklopol, cya
18:19:05 <oklopol> optimizing bf again i see, i gutta read the context when i returnn
18:26:34 <AnMaster> oklopol, we had some new ideas
18:27:38 -!- Deewiant has joined.
18:27:50 -!- ineiros has quit (Read error: 101 (Network is unreachable)).
18:39:01 <AnMaster> Deewiant, ais523: good name for the project?
18:39:05 <AnMaster> I can't think of one
18:39:13 <AnMaster> bf2c seems to be used already
18:39:17 <ais523> AnMaster: bf4
18:39:22 <AnMaster> haha
18:39:25 <ais523> with one f
18:39:36 <AnMaster> Results 1 - 10 of about 704,000 for bf4. (0.17 seconds)
18:39:41 <AnMaster> not good
18:39:45 <AnMaster> want a googlable name
18:41:41 -!- Slereah_ has quit (Read error: 113 (No route to host)).
18:42:02 <AnMaster> Results 1 - 8 of 8 for bf4 brainfuck. (0.05 seconds)
18:42:05 <AnMaster> hm much better
18:42:16 <AnMaster> and the interpreter with the same name is crap it seems
18:42:19 <AnMaster> but still
18:43:04 <AnMaster> bfff3.14
18:43:06 <AnMaster> what about that?
18:43:36 <ais523> call it "before"
18:44:19 <AnMaster> ais523, not googlable
18:45:26 <ais523> I don't really put much stock in Google
18:46:20 <AnMaster> hm
18:48:54 <oklopol> AnMaster: tell ideas
18:49:40 <AnMaster> oklopol, read above?
18:49:48 <AnMaster> I'm busy coding now
18:49:59 <oklopol> ic
18:57:32 -!- oerjan has joined.
19:05:57 <AnMaster> ais523, right, before it is
19:06:24 * oerjan wonders what went into that
19:06:52 <oerjan> and will the successor be called befyve?
19:08:00 <oerjan> is this an interpreter for ordinary bf, or is there something extra?
19:08:08 <psygnisfive> oklopol
19:08:25 <oerjan> psygnisfive
19:08:28 <psygnisfive> hey
19:09:19 <oklopol> psygnisfive: glio
19:09:24 <oerjan> you broke the chain :(
19:10:02 <psygnisfive> glio?
19:10:09 <AnMaster> oerjan, not an interpreter
19:10:10 <oklopol> a bitta glio never hurt anyone
19:10:11 <psygnisfive> miz glio?
19:10:12 <AnMaster> it is a compiler
19:10:14 <AnMaster> to C
19:10:19 <AnMaster> optimizing one
19:10:24 <oklopol> i don't know who miz is
19:10:30 <ais523> oerjan: it was a very short chain...
19:10:34 <AnMaster> it will implement some new ideas that ais523 and me discussed above
19:10:42 <oerjan> ais523: killed in its infancy :(
19:10:52 <oklopol> ais523: i think oerjan extrapolated it'd be a long conversation.
19:11:04 <oklopol> but then i had to come and steal focus
19:11:15 <AnMaster> ais523, hahah at function name: before_postprocess
19:11:16 <AnMaster> :D
19:11:33 <AnMaster> or:
19:11:35 <oklopol> prepostprocess
19:11:36 <AnMaster> before_init()
19:11:41 <AnMaster> that is actually emitted
19:11:46 <oerjan> oklopol: that's preposterous
19:11:49 <AnMaster> and before_cleanup()
19:11:50 <oklopol> it's emitted now?
19:12:04 <AnMaster> "static inline void before_init(void) {",
19:12:04 <AnMaster> " cells = malloc(CHUNKSIZE * sizeof(beforecell));",
19:12:04 <AnMaster> " cellcnt = CHUNKSIZE;",
19:12:04 <AnMaster> " memset(cells, 0, cellcnt * sizeof(beforecell));",
19:12:04 <AnMaster> "}",
19:12:19 <AnMaster> I based this on the def-bf compiler I was working on
19:12:29 <AnMaster> except pikhq never finished his high level part
19:12:35 <AnMaster> so I consider the def-bf stuff dead
19:12:39 <oklopol> no one ever finishes anything
19:12:45 <oerjan> oklopol: actually the second google hit on glio is on someone who died from it :/
19:12:51 <oklopol> :D
19:13:01 <AnMaster> "static inline void before_cleanup(void) {",
19:13:01 <AnMaster> " free(cells);",
19:13:01 <AnMaster> "}"
19:13:07 <psygnisfive> anyone ever done any machine learning stuff? :T
19:14:30 <oklopol> oerjan: most hilarious death of the day, even more fun than your chain.
19:14:47 <AnMaster> wtf is glio?
19:15:01 <oerjan> apparently it was an abbreviation of glioblastoma
19:15:28 <oklopol> yeah that's what i meant
19:15:31 <AnMaster> ah
19:15:34 <AnMaster> cancer
19:15:50 <oklopol> yes, who doesn't like cancer
19:15:56 <oklopol> !! ->
19:16:08 <AnMaster> I don't
19:16:25 <oerjan> now i still wonder what oklopol meant by glio
19:17:05 <oklopol> oerjan: stop getting my sarcasm, you're ruining all the AnMaster from me.
19:17:31 <AnMaster> huh
19:17:34 <oerjan> oh i didn't see your "yeah that's what i meant"
19:19:28 <oerjan> lessee, there's a User:Glio on wikimedia
19:19:54 <AnMaster> ^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!test
19:19:55 <fungot> 116.101.115.116.
19:19:57 <oerjan> a chinese
19:20:06 <AnMaster> ^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!hm nice very nice
19:20:07 <fungot> 104.109.32.110.105.99.101.32.118.101.114.121.32.110.105.99.101.
19:20:14 <AnMaster> ^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!9
19:20:14 <fungot> 57.
19:20:38 <oerjan> oklopol: of course i was hoping you were fluent in the Glio-Oubi language
19:27:10 <AnMaster> heh
19:27:24 <AnMaster> already the not very much optimizing compiler is twice as fast as bff4
19:27:28 <AnMaster> ais523, ^
19:27:37 <AnMaster> I guess the fact that it is compiled is the cause
19:27:45 <ais523> AnMaster: wow, that's pretty good
19:27:47 <ais523> is it linearising?
19:27:49 <AnMaster> ais523, no
19:27:55 <AnMaster> just merging >>> <<< and such
19:28:05 <AnMaster> ais523, was testing on mandelbrot.b
19:28:08 <ais523> ok, probably it depends on the program you run it on then
19:28:10 <AnMaster> can pastebin it if you want
19:29:00 <AnMaster> ais523, was using gcc -march=k8 -msse3 -O3 -ftree-vectorize for both bff4 and the source my compiler generated
19:29:18 <fizzie> +[>+] should terminate when the first cell wrap-arounds; that's just some 3*256000 instructions. Well, I guess it should time-out before that, actually.
19:29:21 <AnMaster> $ gcc -Wall -Wextra -march=k8 -msse3 -O3 -ftree-vectorize -DLNR -o bff4 bff4.c
19:29:22 <AnMaster> that one
19:29:24 <ais523> AnMaster: I'd argue that your compiler is not at all faster than bff4
19:29:31 <ais523> just you're using better compiler options
19:29:35 <ais523> and a better implementatino
19:29:38 <ais523> *implementation
19:29:46 <AnMaster> ais523, I'm using the same options for both
19:30:03 <AnMaster> $ gcc -Wall -Wextra -march=k8 -msse3 -O3 -ftree-vectorize -o mandelbrot mandelbrot.c
19:30:04 <ais523> well a compiler's always going to beat the interpreter unless the interpreter manages to optimise stuff a lot
19:30:14 <AnMaster> ais523, indeed
19:30:27 <AnMaster> ais523, but this makes it very very hard to compare
19:30:33 <AnMaster> if not impossible
19:30:54 <ais523> AnMaster: how do they compare on Lost Kingdoms startup?
19:31:05 <AnMaster> ais523, hm hard to measure
19:31:09 <AnMaster> I used this:
19:31:18 <AnMaster> time ./mandelbrot
19:31:19 <AnMaster> real 0m10.572s
19:31:19 <AnMaster> user 0m9.879s
19:31:19 <AnMaster> sys 0m0.059s
19:31:23 <AnMaster> well output cut
19:31:23 <AnMaster> and
19:31:30 <fizzie> ^bf +[>+]++++++++++.
19:31:32 <AnMaster> time ./bff4 < mandelbrot.b
19:31:33 <AnMaster> real 0m20.173s
19:31:33 <AnMaster> user 0m18.722s
19:31:33 <AnMaster> sys 0m0.143s
19:31:34 <fungot> .
19:31:39 <fizzie> Seems that my timeout limits are not very strict.
19:31:57 <ais523> ^bf +[>+]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
19:32:01 <fungot> <
19:32:13 <ais523> fizzie: how do you explain that?
19:32:19 <ais523> it's executing the code after +[>+]
19:32:19 <AnMaster> ais523, waiting for gcc to compile lostkingdom
19:32:20 <AnMaster> argh
19:32:22 <ais523> which is really strange
19:32:26 <AnMaster> had to abort
19:32:28 <AnMaster> swap trashing
19:32:29 <AnMaster> hehe
19:32:33 <ais523> AnMaster: ah, I forgot about that...
19:32:36 <fizzie> ais523: Why not? +[>+] terminates when one cell wrap-arounds.
19:32:47 <AnMaster> ais523, well I removed the case stuff
19:32:49 <ais523> fizzie: no it doesn't
19:32:51 <AnMaster> since it is no longer needed
19:32:56 <ais523> it sets each cell to 1 on the entire atpe
19:32:58 <AnMaster> but it still manages to be very slow
19:32:58 <ais523> *tape
19:32:58 <fizzie> I have a 1000-cell tape which wraps, and one-byte cells.
19:33:02 <AnMaster> and swap trash
19:33:06 <ais523> fizzie: oh, the tape wraos?
19:33:08 <ais523> *wraps?
19:33:13 <AnMaster> $ wc -l LostKng.c
19:33:13 <AnMaster> 168337 LostKng.c
19:33:14 <AnMaster> ais523, ^
19:33:17 <ais523> no wonder we couldn't get it to display an out-of-tape message
19:33:18 <AnMaster> with LOTS of macros too
19:33:26 <AnMaster> so that expands quite a bit
19:34:00 <AnMaster> $ gcc -std=c99 -E -o tmp.c LostKng.c
19:34:06 <AnMaster> $ wc -l tmp.c
19:34:07 <AnMaster> 169855 tmp.c
19:34:10 <AnMaster> not as much as I feared
19:34:24 <AnMaster> just a 5.7 MB file :P
19:34:38 <fizzie> Yes, there's no infinite tape in fungot's brainfuck. Isn't a fixed-size memory quite common for brainfuck?
19:34:38 <fungot> fizzie: get. out.
19:34:44 <fizzie> fungot: Well excuse me!
19:34:45 <fungot> fizzie: let's just pretend that it's necessary :) at least i have. :) ( and i'm not sure what
19:34:50 <AnMaster> hm
19:34:57 <AnMaster> ais523, bff4 exists on lostkingdom
19:35:05 <ais523> *exits?
19:35:10 <AnMaster> ah yes
19:35:38 <AnMaster> read(0, "#!/usr/bin/bf\n\n# Name : Lost"..., 2048) = 2048
19:35:38 <AnMaster> brk(0) = 0x2263000
19:35:38 <AnMaster> brk(0x2284000) = 0x2284000
19:35:38 <AnMaster> exit_group(0) = ?
19:35:41 <AnMaster> how strange
19:36:27 <ais523> AnMaster: why did you just paste that?
19:36:32 <ais523> also, what is exit_group?
19:36:35 <AnMaster> I was stracing it
19:36:41 <AnMaster> why bff4 exits
19:36:42 <ais523> and brk seems to be acting entirely sanely there to me
19:37:02 <AnMaster> ais523: since I don't know how to feed input to a program running under gdb from a pipe
19:37:07 <AnMaster> since that is what bff4 wants
19:37:10 <AnMaster> you do like;
19:37:14 <AnMaster> ./bff4 < foo.b
19:37:19 <AnMaster> it seems
19:37:29 <ais523> AnMaster: gdb has a command-line arg for that, IIRC
19:37:37 <AnMaster> and I don't remember what
19:38:17 <ais523> I don't remember what it is either
19:39:10 <AnMaster> hm now it works
19:39:16 <AnMaster> since I removed the headers
19:39:19 <AnMaster> like #!
19:39:22 <AnMaster> oh wait
19:39:30 <AnMaster> it treats ! special right
19:39:37 <ais523> yes
19:39:42 <ais523> ! means end of program, start of input
19:39:42 <AnMaster> hm
19:39:47 <ais523> in BF programs which take them in the same stream
19:40:09 <AnMaster> well
19:40:22 <AnMaster> this means I have to paste all of lostkingdom on it's stdin
19:40:24 <AnMaster> fuck that
19:40:51 <AnMaster> I have better things to do
20:11:26 -!- oklopol has quit (Connection reset by peer).
20:11:48 <AnMaster> damn I need an integer that can also be unset
20:11:56 <AnMaster> and I can't reverse any special value
20:11:59 <AnMaster> what to do
20:12:09 <ais523> AnMaster: define a Maybe Integer
20:12:15 <AnMaster> ais523, C....
20:12:23 <ais523> although this requires you to use a programming language, like Perl with Moose or Haskell, in which they exist
20:12:27 <AnMaster> ais523, and the size is important
20:12:34 <ais523> can't you use the next size up?
20:12:34 <AnMaster> like struct size
20:12:49 <AnMaster> ais523, well no this is for tracking offset of cells within loop
20:12:53 <ais523> AnMaster: well you can't fit 32 and a fraction bits into a 32-bit variable
20:12:56 <AnMaster> like size_t offset;
20:12:59 <ais523> physically impossible
20:13:03 <AnMaster> ais523, yes :(
20:13:07 <AnMaster> err
20:13:09 <AnMaster> not size_t
20:13:11 <AnMaster> ssize_t
20:13:11 <ais523> you could have a separate one-bit variable which tracks whether it's set or not
20:13:27 <ais523> and if it's ssize_t, why not use the minimum possible value as exceptional?
20:13:32 <AnMaster> ah yes let me look at padding in struct
20:13:49 <AnMaster> ais523, but what if someone adds that many > on a 32-bit platform?
20:14:01 <ais523> AnMaster: you can only compare them one way round is the point
20:14:03 <AnMaster> and use off64_t for files
20:14:18 <ais523> ssize_t can only cover half the memory space as it is
20:14:29 <AnMaster> ais523, ah hm true
20:14:41 <AnMaster> well I guess the situation should never
20:14:42 <AnMaster> happen
20:14:47 <AnMaster> and I could document the issue
20:14:58 <ais523> sounds like you really want a 33-and-a-fraction-bit variable
20:15:15 <AnMaster> ais523, I also yes and an union to not waste spaec
20:15:16 <ais523> but the minimum value wouldn't even exist except on a 2's complement machine
20:15:16 <AnMaster> space
20:15:27 <ais523> it's equal to 0-itself, anyway, so doesn't act sanely with arithmetic
20:15:28 <AnMaster> ais523, huh?
20:15:32 <ais523> that's why it makes a good exceptional value
20:15:37 <ais523> AnMaster: the value with bit pattern 100000000000000000000000000000000
20:15:42 <AnMaster> ah yes
20:16:16 <AnMaster> that is negative 0 basically
20:16:21 <ais523> no, it isn't
20:16:25 <ais523> it's the opposite of -0
20:16:26 <AnMaster> well no true
20:16:31 <ais523> it's as far from 0 as you can get
20:16:32 <AnMaster> positive 0?
20:16:35 <ais523> in both directions
20:16:35 <AnMaster> ah
20:16:36 <AnMaster> ok
20:16:47 <ais523> rather than -0 which arithmetically works the same way as 0
20:16:52 <AnMaster> ais523, that would be FOO_MIN right?
20:16:56 <ais523> yes
20:16:57 <AnMaster> assuming there is one for ssize_t
20:17:01 * AnMaster looks
20:17:27 <AnMaster> hm there is not
20:17:28 <AnMaster> SSIZE_MAX
20:17:32 <AnMaster> but no MIN
20:17:35 <AnMaster> very strange
20:17:37 <ais523> it's -SSIZE_MAX-1
20:17:44 <ais523> it has to be defined like that
20:17:55 <AnMaster> on 2 complement
20:17:56 <ais523> say, SHORT_MIN can't actually be -32768
20:18:01 <ais523> it has to be -32767-1
20:18:27 <ais523> because - is an operator, and 32768 needn't neccessarily fit in an int
20:18:29 <AnMaster> ais523, a grep shows SHORT_MIN isn't defined either
20:18:32 <AnMaster> in any system header
20:18:37 <ais523> SHRT_MIN
20:18:39 <ais523> probably
20:18:44 <ais523> some stupid abbreviation from decades ago
20:18:46 <AnMaster> ah yes
20:18:51 <AnMaster> ais523, well it is short
20:18:53 <AnMaster> so I like it
20:19:00 <AnMaster> :P
20:19:03 <ais523> is that an attempt at a joke?
20:19:06 <AnMaster> also SSIZE_MIN doesn't exist
20:19:14 <AnMaster> ais523, yes a *short* form of *short*
20:19:26 <AnMaster> was the joke that bad?
20:19:41 <ais523> /usr/include/limits.h:# define LONG_MIN(-LONG_MAX - 1L)
20:19:43 <ais523> AnMaster: yes
20:20:04 <ais523> although my headers define SHORT_MIN as -32768 directly, because they know they're for a 32-bit system
20:20:18 <ais523> the same thing applies to all integer sizes, just I can't remember the relevant power of 2
20:20:41 <oerjan> AnMaster: it was a reasonably good joke until you explained it :D
20:20:50 <AnMaster> oerjan, well I had to for ais523
20:20:57 <ais523> AnMaster: actually, I got it
20:21:06 <ais523> just wasn't sure if you were joking deliberately or not
20:21:26 <AnMaster> now I am normally THAT bad at jokes really?
20:21:27 <AnMaster> :(
20:21:33 <AnMaster> anyway
20:21:37 <oerjan> so, why isn't it LONG_MAXIMUM?
20:21:44 <AnMaster> SSIZE_MIN isn't defined
20:21:46 <AnMaster> oerjan, :)
20:21:53 <ais523> AnMaster: it's -SSIZE_MAX-1
20:21:57 <ais523> if SSIZE_MAX is defined
20:22:01 <AnMaster> ais523, on 2 complement at least
20:22:01 <ais523> and you're on a two's complement system
20:22:06 <ais523> which given your stupid optimisation you are
20:22:17 <AnMaster> ais523, but how would i know I am?
20:22:17 <AnMaster> ais523, err, what?
20:22:21 <AnMaster> I'm just trying to count index
20:22:24 <ais523> hmm... why not detect the representation at compile-time
20:22:33 <ais523> and use SSIZE_MIN as your exceptional value on 2's complement
20:22:35 <AnMaster> ais523, as in "this is offset two from start of loop"
20:22:38 <ais523> and -0 on 1's complement
20:22:47 <ais523> AnMaster: why not use unsigned size_t, the?
20:22:49 <ais523> *then?
20:23:02 <AnMaster> ais523, [>-<+]
20:23:02 <AnMaster> or
20:23:03 <ais523> also, rely on the fact that the loop can't possibly take up all of memory due to the final ]
20:23:05 <AnMaster> ais523, [<->+]
20:23:07 <AnMaster> well
20:23:10 <AnMaster> it can go either way
20:23:11 <ais523> thus you can safely use SIZE_MAX as your exceptional value
20:23:23 <ais523> AnMaster: measure offset from the start of the program instead, then
20:23:24 <AnMaster> haha ok
20:23:25 <ais523> and do a subtraction
20:23:41 <ais523> (there's also the fact that the compiler itself has to be in memory somewhere, but that isn't as funny)
20:23:43 <AnMaster> err? what?
20:23:50 <AnMaster> anyway: not easy if there is an unbalanced loop
20:23:54 <ais523> AnMaster: instead of taking the offset from one place to another
20:23:57 <AnMaster> then I can't know tape offset
20:24:03 <ais523> oh, tape offset
20:24:06 <AnMaster> yes
20:24:10 <AnMaster> that was what I was doing
20:24:11 <ais523> I thought you meant offset in program
20:24:21 <AnMaster> the stuff have already been mangled a bit by this point
20:24:26 <AnMaster> however I'm unsure about order
20:24:48 <AnMaster> that is the order that I should do various reductions
20:25:19 <AnMaster> should I try to handle >><< first, then the tape offset, then [-]
20:25:22 <AnMaster> or some other order?
20:25:35 <AnMaster> it doesn't seem trivial to combine them
20:25:57 <AnMaster> but I guess it could work
20:26:03 <AnMaster> except [-] shouldn't be done first
20:26:08 <AnMaster> since that wouldn't catch
20:26:15 <AnMaster> [>+<->-<]
20:26:18 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
20:26:28 <AnMaster> which the tape offset would manage to turn into [-]
20:26:35 <AnMaster> which then could be turned into set 0
20:26:44 <AnMaster> or should I do multiple passes with each optimizer?
20:26:51 <AnMaster> ais523, :)
20:27:04 <ais523> AnMaster: C-INTERCAL does multiple passes
20:27:04 <AnMaster> I want to catch all cases I can catch
20:27:07 <ais523> until nothing more is optimised
20:27:09 <ais523> that's probably the best way
20:27:12 <AnMaster> ais523, ah
20:27:28 <AnMaster> ais523, I already avoid multiple passes with >><< reduction
20:27:35 <AnMaster> by stepping one step backwards
20:27:43 <AnMaster> so I can catch:
20:27:45 <AnMaster> --<>+
20:27:48 <AnMaster> to turn it into -
20:28:05 <AnMaster> without that I would get: 2- 1+
20:28:17 <AnMaster> also brb making some food
20:28:41 -!- puzzlet has joined.
20:38:37 -!- warrie has joined.
20:38:47 <warrie> Hi, #math.
20:39:28 <oerjan> BZZT, WRONG
20:39:37 <warrie> How dare you disturb my hallucinations.
20:39:48 <warrie> Let's try this again.
20:39:50 <warrie> Hi, #math.
20:40:12 <ais523> warrie: we're now debating whether or not 3=4
20:40:16 -!- Deewiant has quit ("Viivan loppu.").
20:40:16 <ais523> ehird seems to think it is, for some reason
20:40:20 <oerjan> hi warrie, did you know your nick is a prime in base 256?
20:40:24 <warrie> No we're not.
20:40:29 <ais523> also, we're debating whether 4 increased by 1 is 5
20:40:30 <warrie> Nope. That's cool.
20:40:37 * oerjan might be lying
20:40:43 -!- Deewiant has joined.
20:40:43 <oerjan> haven't checked yet :D
20:40:57 <ais523> oerjan: "warrie" is even in base 256
20:41:04 <oerjan> no way
20:41:06 <ais523> unless you use ASCII
20:41:12 <oerjan> 96+5 is odd
20:41:15 <ais523> going by the hex 0-9a-f thing but extended
20:41:20 <ais523> then you get a, c, e as even
20:41:23 <oerjan> of course i'm using ascii
20:41:28 <ais523> ah, ok
20:42:19 <warrie> The derivative of |x| with respect to x is |x| divided by x, right?
20:42:42 <ais523> yes, that's one way to put it
20:42:52 <ais523> it's undefined at 0, though, rather than infinite
20:42:54 <warrie> Still true in the complex numbers and all?
20:43:00 <ais523> although whether this makes a difference depends on how pedantic you are
20:43:04 <warrie> |0|/0 is not very infinite.
20:43:15 <ais523> warrie: well, it's a NaN
20:43:34 <ais523> arguably that's decent for an undefined derivative
20:43:35 <oerjan> darn it's divisible by 5
20:43:41 <AnMaster> back
20:44:04 <warrie> I'll do the Chain Rule Test.
20:44:57 <oerjan> warrie: |x| is surely not analytic so complexes are not nice
20:45:20 <AnMaster> ais523, ah I worked it out
20:45:26 <AnMaster> I need to track offset from what anyway
20:45:38 <AnMaster> so that one is NULL or a node pointer
20:45:45 <AnMaster> I'm not sure how sane this is...
20:47:16 <warrie> -i = |i|/i = d|ix|/dx = d|ix|/d(ix)*d(ix)/x = |ix|/(ix) * i = |x|/x... yeah, I forgot that you can't differentiate |x| over the complex numbers.
20:47:45 <oerjan> warrie: you might check it in the x direction
20:48:21 * warrie shrugs
20:48:24 <oerjan> sqrt(x^2+y^2)
20:48:38 <warrie> I'll just use "undefined".
20:49:58 <AnMaster> oerjan, what about my nick?
20:52:08 <ais523> gah, this is annoying: I found an interesting obfuscated quine on a webpage, but it doesn't give the program, just an example of its output
20:53:06 <warrie> I hate it when you know a quine's output but not its source code.
20:53:10 <ais523> yep
20:53:27 <AnMaster> hm
20:53:28 <AnMaster> in
20:53:31 <AnMaster> in C*
20:53:49 <AnMaster> is using memset(foo, 0, sizeof(foo_t));
20:53:51 -!- Deewiant has quit ("Viivan loppu.").
20:53:58 <AnMaster> where foo foo_t *foo;
20:54:03 <AnMaster> and foo_t is a struct
20:54:11 -!- Deewiant has joined.
20:54:13 <AnMaster> a safe way to ensure are pointers in said struct are all NULL?
20:54:16 <warrie> What is an obfuscated quine, by the way?
20:54:22 <AnMaster> ais523, ^
20:54:27 <fizzie> Of course not, since all-bits-zero is not necessarily NULL.
20:54:46 <fizzie> Not that people wouldn't do that sort of stuff anyway.
20:54:52 <ais523> warrie: something which isn't obviously a quine
20:54:57 <ais523> although this one's just a meaning-quine
20:55:05 <ais523> in that it outputs a program that does the same thing as it
20:55:09 <ais523> but isn't necessarily the same
20:55:12 <ais523> several programs, in fact
20:55:40 <AnMaster> yes
20:55:41 <oerjan> AnMaster: 4714790940847662450
20:55:50 <AnMaster> oerjan, is that my nick?
20:55:54 <AnMaster> well it is even so...
20:55:56 <oerjan> yes
20:56:07 <oerjan> and divisible by 5 that too
20:56:11 <AnMaster> oerjan, and 10
20:56:17 <AnMaster> also how do you calculate it?
20:56:31 <AnMaster> like befunge fingerprints?
20:56:37 <AnMaster> as in 0xabcdef
20:56:41 <AnMaster> so each
20:56:43 <AnMaster> ab cd ef
20:56:46 <AnMaster> maps to a char
20:56:47 <AnMaster> or
20:56:50 <AnMaster> some other way?
20:56:56 <oerjan> i used haskell: readInt 256 (const True) (fromEnum) "AnMaster"
20:57:10 <AnMaster> oerjan, well that doesn't answer the question
20:57:12 <oerjan> (requires Numeric module)
20:57:24 <AnMaster> oerjan, what is the mathematical mapping?
20:57:36 <AnMaster> how do you parse it
20:57:47 <AnMaster> you just pointed at a black box
20:57:50 <AnMaster> and said "I use that"
20:57:51 <oerjan> i guess that befunge thing is the same
20:57:56 <AnMaster> it didn't answer the *how*
20:58:10 <AnMaster> oerjan, that is:
20:58:18 <AnMaster> while read char {
20:58:26 <AnMaster> bitshift result up by 8;
20:58:34 <AnMaster> add ascii value of char;
20:58:34 <AnMaster> }
20:58:39 <AnMaster> in pseudo code
20:58:48 <AnMaster> oerjan, is that how you do it?
20:58:58 <oerjan> that should be equivalent yes
20:59:11 <AnMaster> oerjan, so CFUN is?
20:59:13 <oerjan> except readInt uses an actual multiplication by 256
20:59:31 <oerjan> (since it is not restricted to powers of 2)
20:59:35 <AnMaster> oerjan, it should be 0x4346554e
20:59:36 <AnMaster> btw
20:59:37 <AnMaster> CFUN
20:59:41 <AnMaster> if it is the same way
20:59:42 <fizzie> "fizzie" is 112603212441957 = 3*1747*20897*1028141. I'm "almost prime", for some values of "almost".
21:00:06 <AnMaster> $ factor 112603212441957
21:00:06 <AnMaster> 112603212441957: 3 1747 20897 1028141
21:00:09 <AnMaster> well ok
21:00:12 <AnMaster> almost I guess
21:00:19 <AnMaster> <oerjan> except readInt uses an actual multiplication by 256
21:00:19 <AnMaster> <oerjan> (since it is not restricted to powers of 2)
21:00:26 <AnMaster> that is odd, doesn't ghc optimize?
21:00:34 <ais523> fizzie: so what is the value of "almost"?
21:00:45 <ais523> AnMaster: Int and Integer are different types in Haskell
21:00:50 <fizzie> ais523: In this case, "not really, but sorta".
21:00:54 <oerjan> AnMaster: it's 0x416e4d6173746572
21:01:02 <AnMaster> oerjan, CFUN?
21:01:10 <AnMaster> no then you use some totally different way
21:01:11 <oerjan> "AnMaster"
21:01:15 <AnMaster> ah
21:01:22 <AnMaster> oerjan, and what is CFUN in your system
21:01:24 <AnMaster> that string
21:01:30 <AnMaster> <AnMaster> oerjan, so CFUN is?
21:01:32 <AnMaster> <AnMaster> oerjan, it should be 0x4346554e
21:01:40 <AnMaster> [cut]
21:01:43 <AnMaster> <oerjan> AnMaster: it's 0x416e4d6173746572
21:01:53 <AnMaster> oerjan, doesn't make sense does it?
21:02:20 <oerjan> that's correct
21:02:22 <ais523> AnMaster: that string oerjan pasted is "AnMaster", I think
21:02:27 <ais523> wait, no
21:02:43 <ais523> that 72 at the end looks wrong
21:02:44 <AnMaster> I do have a convert the other way for 32-bit routine somewhere around here
21:02:49 <ais523> oh, ofc, there are more than 16 letters in the alphabet
21:02:53 <ais523> so yes, probably AnMaster
21:02:57 <AnMaster> ah
21:03:00 <AnMaster> well
21:03:17 <AnMaster> fungeCell fprint = ImplementedFingerprints[i].fprint;
21:03:17 <AnMaster> char fprintname[5] = { (char)(fprint >> 24), (char)(fprint >> 16),
21:03:17 <AnMaster> (char)(fprint >> 8), (char)fprint, '\0'};
21:03:18 <AnMaster> :P
21:03:28 <AnMaster> that very much depends on it being max 32-bit
21:03:32 <AnMaster> and all printable chars
21:04:00 <oerjan> AnMaster: i thought by CFUN you meant some technical abbreviation meaning "fingerprint notation"
21:04:14 <AnMaster> oerjan, no it is the handprint of cfunge
21:04:20 <AnMaster> that is: interpreter ID
21:04:23 <fizzie> perl -e 'use bignum; $x = 256*$x + ord($_) foreach split //, "fizzie"; print $x, "\n";'
21:04:31 <AnMaster> with some type punning it should be faster
21:04:31 <fizzie> The perly thing is less pretty than Haskell. Surprise!
21:04:36 <AnMaster> to just store it as an integer
21:04:41 <AnMaster> and read it as chars
21:04:42 <AnMaster> however
21:04:46 <AnMaster> that isn't very safe
21:04:53 <AnMaster> from a C standard perspective
21:04:59 <AnMaster> I try to avoid such cases
21:05:02 <ais523> also, I've been writing a lot of Prolog recently
21:05:04 <AnMaster> I assume strict aliasing rules
21:05:09 <ais523> and decided that Prolog is really pretty
21:05:17 <ais523> and at least as reflective as Smalltalk
21:05:20 <AnMaster> except in 3 places: FPDP, FPSP and 3DSP
21:05:39 <AnMaster> ais523, heh I should probably try to learn prolog
21:05:45 <AnMaster> got a link for any good online resource?
21:05:57 <ais523> AnMaster: I learnt it from paper books originally
21:06:02 <ais523> so no, unfortunately
21:06:14 <AnMaster> oh well
21:06:22 <ais523> there probably are some
21:06:26 <ais523> but Prolog is... different
21:06:28 <AnMaster> yeah
21:06:32 <AnMaster> hm yes?
21:06:35 <ais523> and many sources for it start by trying to compare it to something
21:06:44 <AnMaster> ais523, I have seen backtracking done in scheme
21:06:46 <AnMaster> it wasn't pretty
21:06:49 <ais523> which I think is a bad way to learn it, but how else could you start?
21:06:49 <AnMaster> or easy to follow
21:07:04 <AnMaster> and it abused both macros and call/cc
21:07:16 <ais523> abusing call/cc is an obvious way to do backtracking
21:07:23 <AnMaster> ais523, well yes
21:07:42 <AnMaster> In fact I find call/cc abusive for anything, yes I see how it is useful
21:07:46 <AnMaster> but it is mindbending
21:08:09 <AnMaster> and I can write perfectly fine and working scheme programs without either macros or call/cc
21:08:12 -!- Deewiant has quit ("Viivan loppu.").
21:08:19 <AnMaster> a lot more typing though
21:08:37 -!- Deewiant has joined.
21:10:14 <oerjan> backtracking is a monad, and all monads can be implemented with call/cc, i hear
21:10:46 <ais523> oerjan: I had a discussion with a really theoretical computer scientist once
21:10:49 <oerjan> (+ some state)
21:11:02 <ais523> I asked whether backtracking was a monad, and he said it couldn't be because that obviously would fail on infinitely large data sets
21:11:09 <ais523> but I was too confused to ask him to elaborate on that
21:11:10 <fizzie> I think SICP has one chapter about their amb-eval thing, which implements Scheme with a "(amb x y z)" special form, which will evaluate to the "correct" value, backtracking whenever it fails (hits (amb) with no choices).
21:12:47 <fizzie> Well, subchapter, anyway. It's there where they start with the metacircular evaluator, then try lazy evaluation with it, then the nondeterministic amb thing, and finally some logic programmingsies.
21:16:57 <oerjan> ais523: maybe he was confused about something like that amb which only takes a finite number of arguments...
21:17:11 <oerjan> but you can obviously get around that with recursion
21:18:57 <oerjan> and backtracking _does_ fail on infinitely large data sets, if by fail you mean "never gets to the end"
21:20:18 <jayCampbell> i have a brainfuck question
21:20:23 <ais523> yes?
21:20:27 <jayCampbell> elsif command == '[' and tape[thread[pointer]] == 0
21:20:43 <ais523> that isn't exactly a question...
21:21:02 <jayCampbell> does the matching ] brace do a test as well?
21:21:09 -!- Deewiant has quit ("Viivan loppu.").
21:21:19 <jayCampbell> brainfuck spec on esowiki says no, but one of the derivatives did
21:21:20 -!- Deewiant has joined.
21:21:29 <jayCampbell> lost kingdom runs without a check on ]
21:21:30 <ais523> jayCampbell: it doesn't matter normally
21:21:39 <ais523> because either ] jumps back to [, which does the test
21:21:43 <ais523> or ] does the test itself
21:21:53 <ais523> thus specs generally say either
21:22:02 <jayCampbell> awesome
21:22:17 <ais523> one big advantage of testing at both ends is it then doesn't matter which side of the [] you jump back to, but that's an implementation detail that rarely comes up
21:22:31 <ais523> basically, it doesn't matter unless you're implementing, in which case you can choose either
21:22:48 <ais523> implementations in most programming languages test just at the [ because that fits the semantics of while loops
21:23:01 <ais523> but if you're implementing BF in an esolang, that's often slower if you have no while-loop-equivalent
21:23:06 <jayCampbell> so i built a weave interpreter (prefork, individual and shared tapes) that does brainfork runtime threading and pbrain subroutines
21:23:39 <AnMaster> ais523, actually I remember testing once at entry and after that I tested if I should jump back at the end
21:23:48 <AnMaster> and then jumped to the instruction after the matching [
21:23:52 <AnMaster> that was in bashfuck
21:23:53 <AnMaster> iirc
21:24:08 <ais523> AnMaster: there are a huge number of ways to do it, I think
21:24:33 <AnMaster> ais523, in before I just emit a while loop currently
21:24:46 <AnMaster> in the future I will emit for loops for balanced pure loops
21:24:50 <AnMaster> where pure == no IO
21:25:00 <AnMaster> yes it doesn't match pure as in pure functional
21:25:10 <AnMaster> but it was the best word I managed to come up with
21:25:22 <AnMaster> ais523, of course I plan to optimize it even more later on
21:25:38 <AnMaster> but currently I haven't managed to understand exactly how that would be done
21:25:52 <AnMaster> also it will to for when io isn't on iteration counter cell
21:25:54 <AnMaster> and balanced
21:26:20 -!- psygnisfive has quit (Remote closed the connection).
21:29:32 <AnMaster> ais523,
21:29:38 <AnMaster> currently I have these flags
21:29:56 <AnMaster> balanced, noinput, noputput, iter_noinput
21:30:02 <fizzie> fungot's brainfuck turns [ into bytecode "jump if zero" and ] into "jump if nonzero", with jump targets being one past matching pair.
21:30:03 <fungot> fizzie: xpdf really should allow searching with regexps, ' fnord
21:30:43 <AnMaster> bool balanced, noinput, nooutput, iter_noinput;
21:30:43 <AnMaster> balanced = noinput = nooutput = iter_noinput = false;
21:30:47 <AnMaster> is that bad coding style? :D
21:31:46 <ais523> AnMaster: not IMO
21:31:57 <AnMaster> ais523, hehe
21:32:00 <AnMaster> well I guess not
21:32:05 <ais523> although on an embedded system, you could save 3 bytes of memory by making them bitfields in a struct
21:32:26 <ais523> and it'll be faster that way on most such systems as they have bit-test instructions, they can handle bits faster than entire ints
21:32:32 <ais523> OTOH, most RL processors will prefer ints
21:34:31 <AnMaster> ais523, they are in a struct
21:34:46 <AnMaster> just I need to track them in the function
21:34:52 <AnMaster> where I work on loops
21:34:58 <AnMaster> later I put it in the struct
21:35:00 <AnMaster> also I typoed
21:35:03 <AnMaster> it should have been:
21:35:11 <AnMaster> ssize_t balance = 0;
21:35:11 <AnMaster> bool noinput, nooutput, iter_noinput;
21:35:11 <AnMaster> noinput = nooutput = iter_noinput = true;
21:52:33 -!- ehird has joined.
21:53:06 <ehird> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter-uncommented.pfk
21:53:08 <ehird> pgimeno is WIN
21:53:17 <pgimeno> hehe
21:53:50 <pgimeno> I liked the idea of "OCRing"
21:54:06 <AnMaster> pgimeno, hm?
21:54:24 <ehird> how does it OCR so quickly?
21:54:44 <pgimeno> I found a bit pattern that worked for all numbers
21:54:48 <pgimeno> see the commented version
21:54:56 <pgimeno> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter.pfk
21:55:03 <ehird> haha, that's great
21:55:14 <pgimeno> chained IFs except for distinguishing 0 from blank
21:55:16 <ehird> i really like the logistical constraints paintfuck givse
21:55:21 <ehird> your output IS your memory, it's just such a nice idea
21:55:49 <ais523> someone should make a version of PaintFuck where the source code is stored on the 2D tape, too
21:55:55 <ais523> and is self-modifying
21:55:55 <ehird> ais523: heh
21:56:40 <pgimeno> it's nice as it is
21:56:52 <ehird> pgimeno: wht happens when it reaches its own start?
21:56:53 <pgimeno> fixed a repeated comment in the commented version, reload
21:56:55 <ehird> does it just implode?
21:57:02 <jayCampbell> weave.rb reflective via braintwist's X swapper now
21:57:06 <ehird> it'd be infeasable to wait that long ofc :P
21:57:11 <pgimeno> ehird: dunno, try a smaller grid, it's designed for infinite grid
21:58:51 <ehird> yep
21:58:53 <ehird> ti messes up
21:59:04 <ehird> well
21:59:09 <pgimeno> it doesn't wrap
21:59:11 <ehird> it starts counting the wrong digit
21:59:16 <ehird> while making up its own digits :P
21:59:18 <pgimeno> so it works on infinite grid
21:59:22 <ehird> yes
21:59:45 <pgimeno> yes, it increments by knowing which bits to change, if the number is not the expected it breaks
21:59:53 <ehird> yeah
21:59:56 <pgimeno> gtg
22:00:00 <ehird> bye
22:00:01 -!- ehird has left (?).
22:00:04 -!- ehird has joined.
22:02:21 -!- ehird has left (?).
22:02:24 -!- ehird has joined.
22:02:29 <ehird> hey ok
22:02:31 <ehird> ok
22:02:33 <ehird> where is oklopol
22:02:37 -!- ehird has left (?).
22:02:40 -!- ehird has joined.
22:02:43 -!- ehird has left (?).
22:02:46 -!- ehird has joined.
22:02:57 -!- ehird has left (?).
22:06:07 <AnMaster> * oklopol has quit (Connection reset by peer)
22:06:13 <AnMaster> not that you will see it anyway
22:09:13 <AnMaster> ais523, there?
22:09:18 <ais523> no
22:09:19 <AnMaster> see /msg
22:09:23 <ais523> well, maybe
22:09:27 <ais523> I didn't get a /msg from you
22:09:39 <ais523> oh, you warn me about /msg /before/ you say it?
22:16:17 -!- oerjan has quit ("Good night").
22:19:20 <AnMaster> ais523, yes I do
22:19:50 <ais523> why?
22:20:04 <ais523> just interested
22:24:22 -!- oklopol has joined.
22:24:54 <AnMaster> ais523, why not?
22:25:11 <ais523> because it spams the rest of the channel for no obvious reason
22:25:17 <AnMaster> hm ok
22:25:18 <AnMaster> good reason
22:25:25 <ais523> if something's the sort of private thing that goes in /msg, why tell everyone else about it?
22:26:03 <AnMaster> true
22:26:06 <AnMaster> it was just spamming
22:26:09 <AnMaster> spammy*
22:26:14 <AnMaster> and didn't want to open pastebin
22:26:20 <oklopol> why refer to the past just as i join.
22:26:29 <oklopol> now i have to open logz
22:26:52 <ais523> oklopol: we were discussing why AnMaster warns people they're about to get a /msg before e /msgs them
22:26:52 <AnMaster> ais523, oh also how would you transfer a balanced loop to a polynom?
22:27:03 <ais523> AnMaster: using algebra
22:27:09 <ais523> the balanced loop runs the number of times of the first arg
22:27:21 -!- lostgeek has quit ("leaving").
22:27:25 <ais523> so you take the first arg, and multiply it by all increments inside the loop
22:27:43 <ais523> so [->+<] is tape[0] times tape[1]++ or tape[1]+=tape[0]
22:27:45 <AnMaster> polynoms, isn't that 4 + 2a + 1b^2 + 3c^3 = 0
22:27:46 -!- ehird has joined.
22:27:48 <ais523> AnMaster: yes
22:27:51 <AnMaster> ais523, right
22:28:08 <ais523> so it goes from +1 to +x, effectively
22:28:14 <ais523> with another nested loop, it can be +x^2
22:28:16 <AnMaster> ais523, that require balanced "no-io" loops
22:28:20 <ais523> yes
22:28:26 <AnMaster> right
22:28:57 <oklopol> he probably warns you so you can say no if you're naked and don't want to see or something, kinda like a doorbell.
22:29:04 <oklopol> *want him to
22:29:12 <oklopol> dunno, just a guess
22:29:16 -!- Corun has quit ("Leaving").
22:29:32 <ais523> oklopol: /msg doesn't work like that, though, does it?
22:29:32 <AnMaster> oklopol, err, irc is text only
22:29:40 <ais523> more to the point, it's the other way round
22:29:49 <AnMaster> also /msg is just the same as channel messages
22:30:04 <AnMaster> PRIVMSG #channel
22:30:06 <AnMaster> PRIVMSG nick
22:30:07 <ais523> I suppose that if AnMaster warned me that he was about to send me an ASCII art goatse, a warning would give me time to ignore him
22:30:08 -!- GreaseMonkey has joined.
22:30:09 <AnMaster> no difference
22:30:09 <oklopol> ais523: good point
22:30:12 <ais523> but why would he do that?
22:30:14 <oklopol> AnMaster: bad point
22:30:21 <AnMaster> oklopol, ?
22:30:31 <AnMaster> they are both the same on protocol level
22:30:32 <oklopol> AnMaster: as opposed to ais523's
22:30:52 <ais523> AnMaster: correct but not very relevant point, I think oklopol meant
22:30:57 <AnMaster> >> :ais523!n=ais523@eso-std.org PRIVMSG #esoteric :+AnMaster: correct but not very relevant point, I think oklopol meant
22:31:00 <oklopol> what i meant is
22:31:06 <AnMaster> freenode adds the +
22:31:21 <oklopol> what ais523 said i didn't think about, what AnMaster said was a trivial fact i didn't consider worth mentioning
22:31:41 <AnMaster> oklopol, ah
22:32:07 -!- Corun has joined.
22:32:09 <oklopol> oooooooooooooooooooooooooooooooooo
22:32:16 <oklopol> hi Corun
22:32:24 <Corun> MOOOEEEEEEEEP
22:32:28 <oklopol> :DDD
22:32:35 <oklopol> yes i see you're in a goody moody!
22:33:29 <oklopol> actually... really had nothing to do with triviality, it's just what AnMaster said escaped the analogy, making it kinda pointless as what i said was just a joke
22:33:49 <oklopol> while ais523 attacked the analogy, which is relevant even if it's a joke
22:33:52 <AnMaster> well true
22:34:29 * AnMaster ponders referring to the future just as oklopol will part
22:34:39 <ais523> AnMaster: that's deep
22:34:43 <oklopol> hehe
22:34:48 <AnMaster> that is the opposite of talking about the past forcing you to read logs
22:34:48 <oklopol> wait
22:35:00 <oklopol> just as i part or just before it
22:35:06 <oklopol> i'm really slow today...
22:35:14 <oklopol> ah
22:35:15 <oklopol> ofc
22:35:20 <oklopol> just as i'm about to leave
22:35:21 <oklopol> you say
22:35:42 <oklopol> "ais523, so wanna talk about this interesting thing?", and ais523 responds, umm, "yes"
22:35:47 <oklopol> that's it raelly
22:35:57 <AnMaster> oklopol, just before
22:35:58 <oklopol> *ruylla
22:36:05 <oklopol> yes i raelized
22:36:07 <oklopol> ...
22:36:14 <AnMaster> oklopol, yes or maybe about what we will say
22:36:17 <oklopol> *roalezud
22:36:17 <AnMaster> in some detail
22:36:26 <AnMaster> like. "will you mean that a == b"?
22:36:30 <AnMaster> err
22:36:31 <AnMaster> whatever
22:36:38 <oklopol> well actually you'd have to refer to it, that'd be more complicated
22:36:50 <oklopol> yeah
22:36:53 <oklopol> in detail, that's the point
22:37:06 <oklopol> fascinating issues, these
22:37:33 <ais523> oklopol: what's with your typo corrections?
22:37:41 <AnMaster> <AnMaster> ais523, why not?
22:37:41 <AnMaster> <ais523> because it spams the rest of the channel for no obvious reason
22:37:41 <AnMaster> <AnMaster> hm ok
22:37:41 <AnMaster> <AnMaster> good reason
22:37:47 <AnMaster> make that future tense
22:37:50 <AnMaster> or whatever the word is
22:38:10 <ais523> AnMaster: that would somehow connect oklopol around into a loop, though, wouldn't it?
22:38:21 <AnMaster> ais523, well just as an example
22:38:47 <AnMaster> <AnMaster> ais523, why will you not?
22:39:00 <ais523> ?
22:39:04 <AnMaster> <ais523> because it will spam the rest of the channel for no (currently) obvious reason
22:39:08 <AnMaster> <AnMaster> hm ok
22:39:14 <AnMaster> <AnMaster> will be good reason
22:39:17 <ais523> ah
22:39:19 <ais523> um...
22:39:20 <AnMaster> ais523, just tried to make it future
22:39:22 <ais523> that's ridiculous
22:39:23 <AnMaster> didn't work
22:39:25 <AnMaster> ais523, yeah
22:39:30 <AnMaster> that doesn't work for that example
22:39:37 -!- psygnisfive has joined.
22:39:43 <oklopol> ais523: my typo corrections got tired of having to exist so often.
22:39:49 <oklopol> so they committed suicide.
22:39:55 <ais523> in that case, probably using the present would be more idiomatic even if you're talking about the future
22:40:23 <ais523> "why won't you?" "because it will spam the rest of the channel" "hmm... ok; that's a good reason"
22:40:28 <ais523> but the last there is true present
22:40:33 <GreaseMonkey> why correct when you can type with your eyes ckised?
22:40:50 -!- Corun has quit ("Leaving").
22:40:51 <ais523> let me try that
22:41:02 <oklopol> i never look at my fingers
22:41:11 <ais523> why cprrecy wjem ypi cam type with your ues c;psed?
22:41:16 <GreaseMonkey> it's a fun thing to try but not with a lump in your eye >_> <-- did it
22:41:23 <ais523> wow, the result of that actually came out readable
22:41:36 <ais523> I even got 3 words in a row right
22:41:51 <ais523> took me a few seconds to find home row, then I typed it all quite quickly
22:41:51 <GreaseMonkey> occasionally it goes completely awol
22:42:19 <GreaseMonkey> enjoy coca cola. but enjot brainfuck even more.
22:42:23 <oklopol> if you use a sensible system, there's no difference whether they're open or not
22:42:29 <GreaseMonkey> anyways...
22:42:38 <AnMaster> hah
22:42:47 <AnMaster> ais523, ok
22:46:25 <AnMaster> ais523, exactly how were you typing?
22:46:29 <AnMaster> to be or not to be
22:46:35 <AnMaster> if it was closed eyes
22:46:37 <ais523> AnMaster: with my eyes shut
22:46:38 <AnMaster> that worked perfectly
22:46:44 <AnMaster> thisworks ok
22:46:47 <AnMaster> well almost
22:46:49 <AnMaster> heh
22:46:53 * AnMaster tries again, ok?
22:46:58 <ais523> even using the bumps on f and j to find the home row
22:46:59 <AnMaster> ais523, that wasn't hard
22:47:30 <ais523> one of the garbles was because I forgot the bump was on j not h, normally I hover my fingers over f and h because I rarely type ;
22:49:34 <oklopol> i don't make any more mistakes with my eyes closed, i would never click enter before checking i typed it right though
22:49:54 <AnMaster> ais523, err
22:49:59 <AnMaster> I don't need that
22:50:23 <AnMaster> I know the keyboard well enough
22:54:28 <AnMaster> as soon as I find space, shit or enter
22:55:16 * AnMaster could probably use "das keyboard" if only it had Swedish keyboard layout
22:55:19 <AnMaster> that is same size of enter
22:55:54 <oklopol> oh
22:55:57 <oklopol> "shift"
22:56:16 <oklopol> "shit" doesn't sound very AnMastery.
22:56:38 <oklopol> i, on the other hand, can find shit pretty well on my keyboard
22:57:24 -!- psygnisfive has quit (Remote closed the connection).
22:57:33 <AnMaster> oklopol, ah typoed
22:58:07 -!- psygnisfive has joined.
22:58:09 <AnMaster> well the keyboard does in cleaning
22:59:34 <oklopol> i recently found a keyboard on teh nets that had the keys in straight columns instead of diagonally randomized
22:59:45 <oklopol> but that was costy, and i have a laptop
22:59:55 <oklopol> but that might be pretty awesome
23:01:59 <MizardX> http://www.vjn.fi/pb/p333662665.txt Paintfuck decimal counter :)
23:02:33 <AnMaster> oklopol, hm
23:03:02 <AnMaster> MizardX, didn't someone else here also make one
23:03:06 <AnMaster> pgimeno, iirc?
23:03:13 <MizardX> Just saw
23:03:26 <AnMaster> MizardX, why did you want to make a decimal counter?
23:04:10 <MizardX> I saw a few hours ago that someone mentioned it. Thought it could be fun for a first paintfuck program. :)
23:04:59 <fizzie> That reminds me of a telemarketer that called my wife and tried to sell some magazine. When she said "no", the telemarketer said she needs to justify why she didn't want to order it. The implication was that if the reasons aren't good enough, she doesn't get to not order it.
23:05:23 <AnMaster> fizzie, err that wouldn't be legal
23:07:52 -!- psygnisfive has quit (Remote closed the connection).
23:08:14 -!- psygnisfive has joined.
23:08:43 -!- decipher has quit (Read error: 54 (Connection reset by peer)).
23:10:43 <oklopol> fizzie: well what happened, were the reasons good enough?
23:11:30 <oklopol> MizardX: haha that's pretty great
23:12:34 <AnMaster> ais523, err an issue
23:12:41 <AnMaster> about that "until no changes"
23:12:44 <AnMaster> when optimising
23:12:54 <AnMaster> I change in place so I can't compare tree after
23:12:57 <AnMaster> hm wait
23:12:58 <AnMaster> right
23:12:59 <AnMaster> duh
23:13:08 <AnMaster> I could pass a flag if anything was changed
23:14:06 -!- decipher has joined.
23:28:31 <oklopol> MizardX: when the counter overflows, does it output "counter overflow, try increasing screen width", and you've hidden that in the code so that an average human brain cannot find that in teh code?
23:28:55 <MizardX> no
23:29:05 <oklopol> what does it output then?
23:31:08 <oklopol> WHAT, it just spouts random garble!
23:31:09 <MizardX> If the screen width is a multiple of four, the (w/4+1)'th digit would increase the ones, and it would continue counting. If the screen width is not a multiple of four, the result is undefined.
23:31:15 * oklopol is very disappointed!
23:34:16 -!- Corun has joined.
23:34:26 <pgimeno> MizardX: great! seems that yours is more homogeneous than mine timing-wise
23:35:33 <ehird> oklopol:
23:35:36 <ehird> a
23:35:36 <ehird> b
23:35:37 <ehird> c
23:35:42 <oklopol> ehird: d
23:35:44 <ehird> also
23:35:51 <ehird> mizardx
23:35:52 <pgimeno> which should be no surprise given the nested ifs I use
23:35:53 <ehird> you were beaten
23:36:04 <ehird> MizardX:
23:36:05 <ehird> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter-uncommented.pfk
23:36:06 <ehird> http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter.pfk
23:36:17 <pgimeno> ehird: I think he knows
23:36:20 <ehird> oh
23:36:24 <ehird> well pgimeno's digits are more readable
23:36:25 <ehird> :P
23:36:57 <MizardX> It's just a design issue
23:36:59 <pgimeno> but slower on average
23:37:06 <ehird> umm
23:37:09 <ehird> pgimeno's seems to be faster
23:37:09 <ehird> to me
23:37:13 <ehird> well
23:37:14 <ehird> maybe not
23:37:15 -!- psygnisfive has quit (Remote closed the connection).
23:38:22 -!- psygnisfive has joined.
23:38:46 <pgimeno> it may depend on the interpreter, if a certain kind of instructions are not the same speed
23:39:54 <oklopol> now someone make a library for simplifying equations expressed as drawn digits & operators
23:40:03 <oklopol> & vars
23:40:12 <oklopol> simplifying equations?
23:40:18 <oklopol> well anyway, something sensible ;)
23:40:31 -!- Judofyr has quit.
23:47:18 -!- psygnisfive has quit (Remote closed the connection).
23:47:41 -!- psygnisfive has joined.
23:54:17 -!- jix_ has quit ("...").
2008-12-02
00:03:25 -!- GreaseMonkey has quit ("I'm a thaasophobic.").
00:08:42 <ehird> pgimeno: i'm gonna make a counter that outputs in binary
00:08:43 <ehird> :o
00:09:06 <pgimeno> ehird: cool, go ahead
00:09:59 <ehird> hmm
00:10:03 <ehird> which is kinda hard.
00:11:32 <pgimeno> ehird: do you mean dec-to-bin?
00:12:01 <ehird> JUST
00:12:05 <ehird> err
00:12:05 <ehird> just
00:12:09 <ehird> a counter that goes like this
00:12:12 <ehird> ....................
00:12:14 <ehird> ...................*
00:12:17 <ehird> ..................*.
00:12:18 <ehird> ..................**
00:12:22 <ehird> .................*..
00:12:24 <ehird> .................*.*
00:12:27 <ehird> .................**.
00:12:28 <pgimeno> enough :)
00:12:28 <ehird> .................***
00:12:30 <ehird> etc
00:12:31 <ehird> :P
00:12:35 <ehird> wait
00:12:39 <ehird> isn't that already done?
00:12:50 <pgimeno> it is but you can try for yourself
00:13:09 <pgimeno> that's why I asked if you were going to implement a dec-to-bin
00:16:21 <pgimeno> it would be funny to see division&remainder code...
00:16:43 <pgimeno> actually just multiply-by-ten
00:18:16 -!- puzzlet has quit (Remote closed the connection).
00:18:18 <pgimeno> anyway, I might either implement Fredkin's automaton or just give up on
00:18:20 -!- puzzlet has joined.
00:18:38 <pgimeno> + paintfuck programming
00:20:02 <oklopol> yeah maybe someone should make underpaint next.
00:20:10 <jayCampbell> take one down and pass it around,
00:20:10 <jayCampbell> You are in a small hut by a dirt road.
00:20:10 <jayCampbell> 75 bottles of beer on the wall!
00:20:13 <ehird> pgimeno: why? :( it's fun
00:20:35 <pgimeno> ehird: it takes too many resources
00:20:40 -!- decipher has quit (Read error: 54 (Connection reset by peer)).
00:20:41 <ehird> true :P
00:21:15 <pgimeno> I mean in brain CPU %, not in computer CPU %
00:21:32 <ehird> yeah
00:21:34 <ehird> :)
00:23:09 -!- decipher has joined.
00:27:48 <oklopol> o
00:43:08 -!- psygnisfive has quit ("Leaving...").
00:54:26 -!- GreaseMonkey has joined.
00:58:49 -!- puzzlet has quit (Remote closed the connection).
00:58:54 -!- puzzlet has joined.
01:02:48 -!- GreaseMonkey has quit (Remote closed the connection).
01:03:18 -!- GreaseMonkey has joined.
01:21:49 <jayCampbell> thread[:jumps] = Hash.new if $jumpfuck
01:25:13 <oklopol> ooooo
01:27:42 <jayCampbell> have a kitchen sink i can cram into this thing?
01:35:02 <oklopol> you can't have a sink without a source
01:35:08 <oklopol> except if it's a circulation
01:35:17 <oklopol> but even then it's not satisfiable
01:35:40 <oklopol> hehe, ackermann as type templates as a c++ exercise
01:35:42 <oklopol> for uni
01:36:45 <oklopol> wait, no it's not that, i'm dissappointed :<
01:37:51 <MizardX> C++ templates have a limited stack depth. Was it 7, 17, 27 or 127...? I can't remember.
01:38:18 -!- Sgeo has joined.
01:38:46 <oklopol> sure.
01:39:09 <MizardX> But if you implement your own stack with e.g. a linked list, you could stay within the stack limit.
01:39:11 <oklopol> i'd go with 16, but anyway
01:39:28 <oklopol> (if it was 16, i would probably remember it, though)
01:39:39 <oklopol> yes, sure, but that's so cheating
01:40:17 <Asztal> Yeah, I think it's 17, but nobody actually enforces it, it's usually much higher.
01:40:45 -!- Corun has quit (Remote closed the connection).
01:40:59 -!- Corun has joined.
01:45:24 * oklopol is a supporter of 0/1/inf
01:46:59 <Asztal> likewise
01:47:07 <MizardX> nan?
01:47:25 <Asztal> although in C++'s case, things are already difficult enough for implementors :)
01:48:07 <oklopol> MizardX: i definitely do not like any kinds of exceptions.
01:48:15 <oklopol> exceptions are exceptional, i only case about the general
01:48:38 <oklopol> (there are exceptions to that, but oerjan would probably emerge from somewhere and make a pun)
01:48:43 <oklopol> (so i'll keep quiet)
01:53:26 -!- GreaseMonkey has quit ("I'm a thaasophobic.").
02:13:40 -!- psygnisfive has joined.
02:15:22 -!- psygnisfive has quit (Remote closed the connection).
02:43:21 <GregorR> strcpy works perfectly. Except when it's run by nethack, which magically makes it not work.
02:46:27 <Asztal> what does it do instead?
02:47:02 <GregorR> Fail in obscure ways.
02:47:12 <GregorR> It sorta-kinda copies.
02:47:21 <GregorR> With random chunks of the strings fegged up.
03:05:40 <Sgeo> ..why?
03:36:13 <jayCampbell> so an idea is
03:36:35 <jayCampbell> using the shared tape of weave.rb
03:36:48 <jayCampbell> certain programs could monitor certain spots
03:36:59 <jayCampbell> analogous to /etc/service port assignments
03:37:28 <jayCampbell> so any other thread could load subroutines on deman
03:37:32 <jayCampbell> d
03:37:50 <jayCampbell> nobody wants this, why am i compelled to connect this to an irc bot?
04:04:56 <GregorR> Aha! Figured out the problem with strcpy on nethack!
04:05:06 <GregorR> Now I just need to figure out the solution X-P
04:06:18 -!- Corun has quit ("This computer has gone to sleep").
04:11:00 -!- GreaseMonkey has joined.
04:23:09 <GregorR> Shall I pick a character's racÿ, role, genþer and aliîmet foz(yoÿ [ÿnq]þ
04:23:12 <GregorR> Well that's just not right.
04:26:39 <Asztal> ÿþîÿÿþ are all close to 255 (in unicode, anyway)
04:26:49 <Asztal> which is also odd
04:27:14 <Asztal> not to mention, how did alignment lose a character?
04:40:39 <GregorR> What's even stranger is that neither that string nor the (presumable) original string appear anywhere in the nethack dir D-8
04:45:58 -!- jayCampbell has set topic: http://tunes.org/~nef/logs/esoteric | Shall I pick a character's racA?, role, genA3er and aliARmet foz(yoA?.
05:03:00 <GregorR> Note to self: MIPS' swl and swr instructions are SO EFFING CONFUSING
05:09:43 <jayCampbell> swill and sewer
05:28:25 <GregorR> DAMN YOU MIPS UNALIGNED MEMORY ACCESS INSTRUCTIONS
05:28:35 <GregorR> Bane of my existence.
05:36:55 <GregorR> Whootsynth!
05:39:41 <GregorR> OH BLOODY EFFING DEATH
05:40:08 <GregorR> Nethack writes out its data in the host's endian format X_X
05:40:16 <GregorR> Erm, the COMPILING host that is.
05:40:20 <GregorR> I have to compile this on a big-endian machine.
05:40:25 <GregorR> Piece o' crap.
05:48:11 <Asztal> :(
05:48:34 <Asztal> time to get gcc working on mips :D
05:50:55 * GregorR is debootstrapping a mips system now 8-D
06:15:44 -!- Slereah_ has joined.
06:17:23 -!- Sgeo has quit ("Ex-Chat").
06:57:36 -!- puzzlet has quit (Remote closed the connection).
06:57:40 -!- puzzlet has joined.
07:10:30 <olsner> for jsmips? :D
07:22:34 -!- oerjan has joined.
07:38:55 <oerjan> oklopol: generally speaking exceptions are exceptional, except in exceptional cases where the general case does not hold
07:48:32 * jayCampbell revives EsoAPI
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:42 <AnMaster> morning
08:12:57 <jayCampbell> evening
08:13:11 <jayCampbell> did the world even know it needed a brainfuck with embedded ruby interpreter?
08:14:15 <jayCampbell> debug breakpoint dumps are soooo last century
08:21:35 -!- oerjan has quit ("leaving").
08:23:06 <jayCampbell> >+++++++++++++++++++++++ # ruby print "hi "
08:23:06 <jayCampbell> ++++++++++++++++++++++++ # ruby print "there\n"
08:23:06 <jayCampbell> ++++++++++++++++++++++++< # ruby7 puts "tape size: #{thread[:tape].size}"
08:23:06 <jayCampbell> >>++++++++++<< .>>.<< >..........< .>>.<<
08:23:06 <jayCampbell> >>+++++++<< .>>.<< >>-------<< .>>.<<
08:23:17 <jayCampbell> ./weave.rb -R rubytest.b -E
08:23:17 <jayCampbell> hi there
08:23:17 <jayCampbell> GGGGGGGGGGhi there
08:23:17 <jayCampbell> tape size: 3
08:23:17 <jayCampbell> hi there
08:24:01 <jayCampbell> ruby via EsoAPI calls above number 9
08:24:30 <jayCampbell> in all seriousness, please, someone stop me
08:36:09 <oklopol> hello mister silly-bob
08:39:14 * oklopol realizes he's already taken the best courses @ uni, will be a downslope in funnity from this point on :<
08:40:41 <oklopol> hmm right, there's math department...
08:47:12 -!- olsner has quit ("Leaving").
08:54:29 -!- ineiros has joined.
09:30:00 -!- GreaseMonkey has quit ("I'm a thaasophobic.").
10:01:38 -!- Judofyr has joined.
10:45:49 <MizardX> oklopol: Me too. Sad feeling.
11:23:09 <Slereah_> Not me :D
11:23:22 <Slereah_> I get quantum electrodynamic next year :D
11:23:27 <Slereah_> Also general relativity :D
11:23:32 <Slereah_> Quantum chromodynamics!
11:23:35 <Slereah_> Yaaaaay!
11:23:38 <Slereah_> Hurray me!
11:23:50 <Slereah_> Sucks to be you :D
11:31:01 -!- moozilla has joined.
11:41:25 -!- at_deckards_hous has joined.
11:41:25 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
11:41:35 -!- at_deckards_hous has changed nick to moozilla.
11:45:03 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
11:49:29 -!- Corun has joined.
11:52:47 -!- Corun has quit (Client Quit).
12:08:02 <MizardX> Slereah_: You'll get there...
12:09:00 <Slereah_> OR WILL I?
12:09:10 <Slereah_> I mean, I don't really have classes after next year.
12:09:17 <Slereah_> After that it's my thesis and shit
12:21:32 <warrie> I don't want to study anything in particular at college.
12:24:05 <warrie> The stereotypical make-a-lot-of-money profession seems to be a lawyer.
12:27:33 <Slereah_> Can you be a lawyer with a degree in nothing-in-particular?
12:29:52 <warrie> I think so.
12:30:25 <warrie> You go to college, get a degree in nothing-in-particular, and take that to law school.
12:31:27 <Slereah_> Oh, so you need a degree for a degree?
12:31:50 <Slereah_> I'm glad I'm getting physics :o
12:31:54 <warrie> Something like that, yeah.
12:32:08 <warrie> Did you even look at law or medicine?
12:32:21 <Slereah_> Why would I?
12:32:29 <Slereah_> I wanted to do that shit since I was 9!
12:35:11 -!- GregorR has quit (Remote closed the connection).
12:53:53 -!- GregorR has joined.
13:12:03 -!- moozilla has joined.
13:12:07 <pgimeno> GregorR: so your cross-compiler doesn't deal with big-endianess? that's weird
13:12:25 <GregorR> pgimeno: Nononono, that's not the problem at all.
13:12:45 <pgimeno> oh, that's what I understood
13:12:53 <GregorR> pgimeno: The problem is that it generates data files using a program for the compiling system.
13:13:16 <pgimeno> oh, so you need to generate the data files in the emulator, right?
13:13:30 <GregorR> Egg-zactly.
13:13:38 <pgimeno> 'k
13:25:58 -!- Azstal has joined.
13:26:05 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
13:31:26 -!- Asztal^_^ has joined.
13:32:13 -!- Asztal^_^ has quit (Read error: 104 (Connection reset by peer)).
13:32:39 -!- Asztal^_^ has joined.
13:41:31 -!- Asztal has quit (Read error: 110 (Connection timed out)).
13:50:35 -!- Azstal has quit (Read error: 110 (Connection timed out)).
14:10:04 <oklopol> Slereah_: I wanted to do that shit since I was 9! <<< i decided i wanted to be a programmer when i was 5
14:10:40 <oklopol> although i guess i've slowly inclined towards math / theoretical algorithmics since, but probably only because i didn't know much about things back then.
14:10:46 <oklopol> need to leave ---->
14:27:11 <MizardX> I think I got interested in programming around 7-8 years old. A friend showed some graphics in QBasic. Could have been earlier, but I don't remember much from that time.
14:43:47 <ehird> Around 8 for me I think, maybe a little earlier or later.
14:43:51 <ehird> I got my first computer at 3. :-P
14:46:04 -!- Judofyr has quit.
14:46:47 <ehird> hi ju
14:46:50 <ehird> hi Jud
14:46:55 <ehird> fucking tab complete
14:48:08 -!- moozilla has joined.
14:55:33 -!- at_deckards_hous has joined.
14:55:33 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
14:55:41 -!- at_deckards_hous has changed nick to moozilla.
14:58:09 -!- moozilla has quit (Read error: 131 (Connection reset by peer)).
14:58:15 -!- moozilla has joined.
15:12:40 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
16:10:57 <pgimeno> is User:Mattwescott here?
16:15:13 <ehird> dunno.
16:15:25 <ehird> most newbz don't come here, is he a newb?
16:15:33 <ehird> i see no User:Mattwescott
16:15:35 <ehird> on the esolang wiki
16:16:15 <pgimeno> ehird: I saw it on Special:Recentchanges
16:16:18 <pgimeno> *him
16:16:31 <ehird> http://esolangs.org/wiki/Special:Recentchanges I don't.
16:16:35 <ehird> oh
16:16:39 <ehird> mattwesTcott
16:16:44 <pgimeno> err, misspelled: User:Mattwestcott
16:16:45 <ehird> then no
16:16:47 <ehird> i don't think so
16:16:57 <ehird> http://esolangs.org/wiki/Nil a joke language. neat.
16:17:01 <ehird> </sarc>
16:17:50 <pgimeno> just too easy the humour, but the interpreter is a bit more elaborate than that
16:18:24 <ehird> umm, true(1) is not very elaborate
16:18:31 <ehird> unless you mean GNU true :-P
16:18:49 <pgimeno> no, I mean the JS interpreter
16:18:57 <ehird> ah
16:19:10 * ehird reads.
16:19:12 <ehird> heh.
16:29:52 -!- Judofyr has joined.
17:20:28 <AnMaster> ^bf ++++++++++
17:20:31 -!- kar8nga has joined.
17:20:32 <AnMaster> ^bf ++++++++++.
17:20:33 <fungot> .
17:20:35 <AnMaster> hrrm
17:21:48 -!- Asztal has joined.
17:33:31 -!- Sgeo has joined.
17:38:36 -!- Asztal^_^ has quit (Read error: 110 (Connection timed out)).
18:11:03 -!- oerjan has joined.
18:26:19 <AnMaster> cc1: out of memory allocating 33554432 bytes after a total of 20123648 bytes
18:26:20 <AnMaster> wow
18:26:53 <ais523> AnMaster: what were you doing?
18:27:00 <ais523> to make gcc run out of memory so dramatically?
18:27:04 <AnMaster> ais523, trying to compile lost kingdom
18:27:14 <AnMaster> since I do the "turn into polynom" bit now
18:27:20 <AnMaster> ( ulimit -v $((1024 * 800)); gcc -O0 -o LostKng LostKng.c; )
18:27:20 <AnMaster> cc1: out of memory allocating 134217728 bytes after a total of 20148224 bytes
18:27:35 <AnMaster> maybe splitting it into multiple methods would work
18:27:53 <AnMaster> but that would be tricky due to loops and such
18:27:54 <ais523> AnMaster: do the same trick I did for OIL, split the function into separate functions in separate source files, then compile them separately
18:28:15 <ais523> I learnt that tip from the Debian developers who were trying to port C-INTERCAL, apparently it's happened to them before on other projects
18:28:18 <GregorR> I fixed the problem referred to in the topic btw :P
18:28:31 <AnMaster> ais523, not easy since it would most of the time need to split across two different while loops
18:28:33 <AnMaster> or such
18:28:40 <ais523> AnMaster: split the loop into a separate function
18:28:45 <AnMaster> hm
18:28:48 <ais523> and have it called by the other one
18:28:51 <AnMaster> ais523, need to know how big it is
18:28:56 <AnMaster> which I don't most of the time
18:29:01 <ais523> AnMaster: good thing computers are good at counting, then
18:29:08 <GregorR> Hah
18:29:15 <ais523> you're generating the code, no reason you can't count lines in your generated code
18:29:20 <AnMaster> ais523, yeah need to run O(n) search on every tree or something
18:29:31 <ais523> AnMaster: that's in the compile, it's O(n), do you really care?
18:29:38 <AnMaster> hm
18:29:45 <ais523> or are you trying to make the compiler insanely fast too
18:29:55 <AnMaster> ais523, it is currently rather fast
18:29:58 <AnMaster> but true
18:30:06 <GregorR> Actually, that would be O(n^2) as there are O(n) many nodes, each of which may contain O(n) many nodes.
18:30:26 <GregorR> (Assuming you have to do the search for O(n) many nodes)
18:30:26 <ais523> GregorR: no, just maintain a stack of subtotals and you can do it in one pass
18:30:27 <AnMaster> GregorR, each [ cause a subtree
18:30:31 <AnMaster> it is like a linked list
18:30:35 <AnMaster> with down nodes for [
18:30:45 <AnMaster> that is the internal format at that point
18:30:48 <ais523> you can use the totals for the lower levels when calculating the totals from the upper levels
18:30:51 <GregorR> ais523: But doing it the stupid naïve way is more fun D-8
18:31:23 <AnMaster> I guess that I could create some kind of weight count in a pass after the optimizer
18:31:24 <AnMaster> or such
18:31:39 <AnMaster> and add yet another field to the nodes
18:31:56 <ais523> AnMaster: you're saying this as if it's a bad thing
18:32:12 <AnMaster> ais523, since each node is 88 bytes on x86_64 it isn't totally small
18:32:19 <AnMaster> I do use union tricks and so on already yes
18:32:25 <ais523> why use union tricks?
18:32:43 <AnMaster> ais523, why would I need loop specific data for > or > specific data for loops?
18:32:43 <ais523> extreme memory optimisation in the compiler isn't going to gain you anything in execution speed
18:32:58 <AnMaster> ais523, true, I just don't want to run out in the compiler either
18:32:59 <ais523> AnMaster: you don't, not using union tricks therefore makes it easier to debug
18:33:18 <ais523> AnMaster: your compiler's already more memory-efficient than gcc
18:33:23 <AnMaster> ais523, I haven't had any such bugs yet at least.
18:33:24 <ais523> therefore making it more memory-efficient is irrelevant
18:33:35 <ais523> as you're going to be using more memory later in the process anyway
18:34:06 <AnMaster> ais523, true, but the issue is that likely the libc won't give the now freed ram back
18:34:17 <ais523> AnMaster: it will when the program ends!
18:34:32 <AnMaster> ais523, yes but I can system() to invoke cc, like ick does
18:36:29 <AnMaster> also I need to add a generic reorder pass that can move stuff around, current code can only do that in simple balanced loops
18:36:32 <AnMaster> ais523, that reminds me
18:36:46 <AnMaster> how does one turn this into a polynomial:
18:36:53 <AnMaster> [>+++<--]
18:37:11 <AnMaster> my current code only handles a +1/-1 atm
18:37:14 <ais523> AnMaster: if it's even, that's +1.5x. If it's odd, infinite loop
18:37:26 <ais523> you need to condition on each possible value of the input modulo the number of -s
18:37:36 <AnMaster> ais523, hm
18:37:52 <AnMaster> easier said than done with current design
18:38:05 <AnMaster> I wouldn't be surprised if gcc was cleaner than this
18:38:14 <AnMaster> on the other hand I never coded anything like this before
18:38:25 <oerjan> usually only one value will _not_ be an infinite loop, i think...
18:38:26 <AnMaster> probably something for tdwtf
18:38:51 <AnMaster> ais523, consider: +++[>+++<--]
18:38:56 <AnMaster> as the full program
18:38:56 <ais523> oerjan: no, it's just evenness/divisibility by 4/divisibility by 8, etc
18:39:05 <AnMaster> ais523, that will wrap once
18:39:09 <ais523> as 256 is a power of 2
18:39:14 <ais523> AnMaster: that will wrap forevor
18:39:16 <AnMaster> ais523, err 255
18:39:19 <oerjan> ais523: one modulus value, i mean
18:39:29 <oerjan> er remainder value
18:39:31 <AnMaster> ^bf +++[>+++<--] ++++++.
18:39:36 <AnMaster> hm ok
18:39:36 <fungot> ...out of time!
18:39:37 <AnMaster> true
18:39:43 <ais523> oerjan: if the modulus is odd, then it'll wrap n times and then finish
18:39:52 <AnMaster> ^bf ++[>+++<--] ++++++.
18:39:53 <ais523> due to odd numbers not dividing into 256
18:40:01 <AnMaster> fungot, ?
18:40:02 <fungot> AnMaster: not at all, don't let the bed bugs byte)." what kinda procedure could that be because of extensions too.
18:40:05 <AnMaster> wtf
18:40:08 <AnMaster> ^bf ++[>+++<--] +++++++++++++++++++++++++++.
18:40:15 <AnMaster> that was odd
18:40:28 <ais523> yep
18:40:44 <AnMaster> ^bf ++[>+++<--]+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
18:40:44 <fungot> =
18:40:48 <AnMaster> ^bf ++[>+++<--] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
18:40:49 <fungot> =
18:40:51 <AnMaster> hm
18:40:55 <AnMaster> ok
18:40:57 <AnMaster> very strange
18:41:06 <ais523> AnMaster: maybe you got it to ouptut a space
18:41:14 <ais523> who knows, you might have hit exactly the right number of +
18:41:21 <AnMaster> ais523, I tried with two values
18:41:25 <AnMaster> <AnMaster> ^bf +++[>+++<--] ++++++.
18:41:27 <AnMaster> <AnMaster> ^bf ++[>+++<--] +++++++++++++++++++++++++++.
18:41:32 <oerjan> ais523: odd modulus is thus uninteresting
18:41:34 <AnMaster> ^bf ++[>+++<--] +++++++++.
18:41:34 <fungot>
18:41:37 <AnMaster> ^bf ++[>+++<--] ++++++.
18:41:38 <ais523> AnMaster: the first one is an infiniloop
18:41:49 <AnMaster> ais523, and the two last ones?
18:41:54 <AnMaster> ^bf ++[>+++<--] +.
18:41:54 <fungot> <CTCP>
18:42:01 <AnMaster> ouch
18:42:02 <AnMaster> ^bf ++[>+++<--] ++.
18:42:10 <AnMaster> hm
18:42:15 <AnMaster> ok strange
18:42:54 <AnMaster> ais523, in any case this should really be done with something like oil for bf, it is a pain to write it in C
18:43:14 <AnMaster> also nested loops mess it up a lot
18:43:29 <oerjan> AnMaster: the Brainfuck Constants page on the wiki contains many examples of such loops
18:43:49 <AnMaster> oerjan, yes nested loops are important I know
18:43:59 <AnMaster> the issue is, they don't yet work
18:44:15 <oerjan> AnMaster: i wasn't responding to your comment
18:44:17 <AnMaster> for example if the nested loop change the index, not very easy to detect always
18:44:29 <AnMaster> or rather quite a pain
18:44:32 <oerjan> i was speaking about the loops you tested above
18:44:47 <AnMaster> oerjan, hm?
18:45:09 <oerjan> [>+++etc<---etc] loops
18:45:21 <AnMaster> ah right
18:45:47 -!- kar8nga has left (?).
18:46:29 <oerjan> i imagine unbalanced loops are almost impossible to optimize unless you have meta-information about memory contents
18:47:10 <ais523> oerjan: yes, I have a crazy plan to deduce the meta-information
18:47:29 <oerjan> O_O
18:55:15 <oklopol> so, anyone here know a nice program for composing stuff?
18:55:33 <oklopol> i've used guitar pro, but it's total crap so was just thinking
18:55:33 <ais523> oklopol: you mean like music?
18:55:35 <oklopol> yes
18:55:45 <oklopol> someone invite lament here
18:56:02 <oklopol> i'll try his pm, he'll be sooooo surprised
18:56:29 <ais523> oklopol: I've used Rosegarden, it's pretty good for writing down tunes you've composed elsewhere
18:56:36 <ais523> which is what I normally do
18:57:30 <oklopol> hmm, rosegarden.
18:57:34 <oklopol> i've heard about that
18:57:45 <oerjan> lament is on freenode but not on this channel? did we scare him away? :(
18:58:14 <oerjan> oklopol: obviously we cannot promise you that
18:58:15 <oklopol> what i'd really like is a sensible electric guitar sound for this project.
18:58:15 <jayCampbell> does anyone have a copy of brainfuck OS?
18:58:32 <jayCampbell> the googles fail me
18:59:00 <AnMaster> ais523, mandelbrot is down to 7.3 seconds
18:59:11 <AnMaster> there is of course a lot more that could be done
18:59:31 <oklopol> oerjan: he's always on freenode, but rarely here
19:00:15 <jayCampbell> has anyone here used bf-os?
19:00:32 <oklopol> guitar pro has a pretty cool bug if you try adding a ninth track, pans of tracks 8 and 9 can't be made different :D
19:00:51 <oklopol> i really can't imagine how there could be a bug that only appears on a certain track
19:01:07 <AnMaster> is it open source?
19:01:15 <AnMaster> if not: no clue, if yes, look at the source
19:01:39 <AnMaster> <ais523> oklopol: I've used Rosegarden, it's pretty good for writing down tunes you've composed elsewhere
19:01:39 <AnMaster> <ais523> which is what I normally do
19:01:41 <AnMaster> indeed
19:01:45 <AnMaster> I have used it too
19:01:46 <AnMaster> very nice
19:03:01 <oklopol> um, look at the source why exactly?
19:03:03 <AnMaster> hm considering the name contains "pro" it is probably *not* open source
19:03:12 <AnMaster> oklopol, of the program with the bug
19:04:38 <oklopol> yeah it's not os
19:31:35 <pikhq> jayCampbell: No, but I've been tempted to write one from time to time...
19:31:47 <pikhq> (Def-BF would actually work *well* for that...)
19:33:19 <jayCampbell> do you know the spec?
19:33:36 <pikhq> Don't happen to have the details handy...
19:33:36 <jayCampbell> i have a framework
19:33:43 <pikhq> One could ask RodgerTheGreat for it.
19:34:52 <jayCampbell> wanna help write brainfucklets that interact?
19:38:05 <jayCampbell> basically comes down to deciding what functions map to what cell addresses or EsoAPI slot
19:39:38 * oerjan thinks that sounds like something that would be illegal in most countries
19:39:54 <pikhq> Def-BF != EsoAPI or PSOX or whatever you're wanting to do...
19:40:11 <pikhq> Def-BF is basically Brainfuck + labels & jump.
19:40:27 <Sgeo> jayCampbell, EsoAPI is dead. Long live PSOX, which is dead!
19:40:49 <pikhq> Which matches *very* cleanly to assembly, and makes for a really nice systems programming language.
19:40:56 <jayCampbell> i put esoapi and jumpfuck into weave.rb
19:41:00 <jayCampbell> so it's very much alive
19:41:07 <jayCampbell> psox i couldn't find a speck of info about either
19:41:29 <Sgeo> http://esolangs.org/wiki/PSOX
19:41:41 <ehird> lol, psox
19:41:43 <ehird> jayCampbell: ignore Sgeo
19:41:46 <ehird> PSOX is his vaporware
19:41:48 <Sgeo> And if you need more info than what you can find in http://trac2.assembla.com/psox/browser/trunk , ask me
19:41:48 <ehird> and is awfully dseigned
19:41:51 <ehird> although esoapi is awful too
19:41:53 <Sgeo> ehird, it's NOT vaporware
19:41:54 <ehird> http://lwn.net/Articles/104185/
19:41:56 <jayCampbell> where is def-bf
19:42:00 <ehird> Sgeo: just keep telling yourself that
19:42:09 <jayCampbell> sgeo send me your spec?
19:42:17 <Sgeo> ehird, if you want me to finish it up and call it a beta, I'll do that
19:42:29 <ehird> Sgeo: no, I'd rather you never mentioned it again
19:42:31 <ehird> lest I commit suicide :D
19:42:33 <Sgeo> jayCampbell, http://trac2.assembla.com/psox/browser/trunk/spec
19:42:41 <ehird> jayCampbell: turn back
19:42:41 <Sgeo> ehird, jayCampbell's the one asking about it
19:42:44 <ehird> turn back while you still have your insanity
19:42:56 <pikhq> ehird: I'd hesitate to call PSOX vaporware...
19:43:03 <pikhq> Sgeo *did* actually get it implemented.
19:43:05 <ehird> pikhq: ok, more like HORRORWARE
19:43:09 <pikhq> Better.
19:43:17 -!- nooga has joined.
19:43:19 <nooga> aaaaaaaaaaaaah
19:43:21 <nooga> i forgot C
19:43:23 <jayCampbell> jesus f
19:43:44 <pikhq> Though it wasn't necessarily *bad* for the most part; just poor choices on some details, really.
19:43:50 <Sgeo> What details?
19:43:52 <ehird> pikhq: details such as EVERYTHING
19:43:52 <ehird> >_<
19:43:54 <pikhq> Not bad for a hack.
19:44:05 <pikhq> Sgeo: The type system, IMHO.
19:44:13 <nooga> wtf is that scanf("%s") returns "" after scanf("%c")
19:44:20 <ehird> Sgeo: DON'T FORGET SAFETY
19:44:45 <Sgeo> ehird, safety's kind of dead, thanks to you
19:44:56 <Sgeo> Well, deader than PSOX itself, at any rate
19:45:55 <jayCampbell> psox isn't impossible
19:46:20 <ehird> psox is more awful than impossible
19:46:22 <jayCampbell> it's a little more .. robust than i expected
19:58:04 <oerjan> nooga: what text are you trying to read?
20:21:44 <ehird> http://blog.wolfram.com/2008/12/01/the-incredible-convenience-of-mathematica-image-processing/ wish there was like a mathematica thta didn't suck
20:30:55 <oklopol> wow, that's pretty neat
20:31:54 <jayCampbell> woah http://smoaktalk.com/st/071808/
20:32:07 <ehird> oklopol thinks its neat, wow
20:32:08 <ehird> it must be really neat
20:32:14 <ehird> jayCampbell: neat
20:32:17 <ehird> i saw a smalltalk in JS before
20:32:21 <ehird> vista smalltalk it was called iirc
20:32:26 <ehird> had a lisp-based syntax for core stuff
20:32:40 <oklopol> ehird: what's sucky about that?
20:32:46 <ehird> oklopol: ?
20:32:49 <ehird> oh
20:32:51 <ehird> just mathematica in general?
20:32:56 <ehird> ask ais523, I've heard horror stories from him
20:32:59 -!- sebbu2 has joined.
20:33:34 <oklopol> oh, you didn't meant that looked absolutely horrible?
20:33:38 <ehird> no
20:33:51 <ehird> i just meant i wish there was a system with stuff that awesome
20:33:53 <jayCampbell> here's the js one: http://www.cs.ucla.edu/~awarth/ometa/ometa-js/
20:33:54 <ehird> that wasn't as sucky as mathemtaica
20:33:57 <ehird> jayCampbell: no, not ometa
20:34:12 <ehird> http://en.wikipedia.org/wiki/Vista_Smalltalk huh, it's just for IE7
20:34:13 <ehird> weird
20:34:16 <oklopol> i mean, i'd probably want the graphs and the pictures to be much smaller, but i'm sure that's possible.
20:34:18 <oklopol> ehird: yeah okay
20:34:22 <oklopol> i misunderstood you then
20:34:33 <oklopol> yeah i know it sucks too, heard the same horror stories.
20:34:52 <oklopol> but that looked pretty neat, in fact looks like something i might scrap python for.
20:35:03 <ehird> yeah, that totally fits how I program
20:35:09 <ehird> I just get data and play with it and shove it into other data
20:35:23 * ehird is tempted to write a mathematica minus the stuck now but realises it's probably not easy :P
20:35:49 <ehird> [[Request a Free Trial »
20:35:50 <ehird> Send us your request and you can experience Mathematica yourself with a fully functional 15-day license.]]
20:35:53 <ehird> i hate how you have to manually contact them
20:37:21 <Sgeo> mmm, trial licenses in a VM..
20:37:35 <ehird> Sgeo: also known as bittorrent?
20:37:48 <ehird> also, you can't even get a trial license without someone manually respondign to your request
20:38:09 <Sgeo> ehird, I was talking in general. Wouldn't work for Mathematica, due to that contact stuff
20:38:18 <ehird> Sgeo: well... bittorrent
20:38:18 <ehird> yo.
20:38:58 <Sgeo> I wouldn't want to run anything that might even have a risk of malware outside a VM, and if I'm going to be running it in a VM anyway, why even bother with BitTorrent?
20:39:15 <ehird> Sgeo: Malware? Ah, you must be a windows user!
20:39:21 <ehird> And use public trackers.
20:41:41 -!- sebbu has quit (Read error: 113 (No route to host)).
20:41:42 -!- sebbu2 has changed nick to sebbu.
20:45:44 <ehird> jayCampbell: that smalltalk seems a bit castrated
20:45:46 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
20:45:48 <ehird> it seems to have a lot of primitives
20:49:21 -!- Sgeo has joined.
20:55:41 -!- nooga_ has joined.
21:00:28 <ehird> .
21:03:48 -!- nooga has quit (Read error: 145 (Connection timed out)).
21:32:13 -!- olsner has joined.
21:34:47 -!- Judofyr has quit.
22:35:43 -!- GreaseMonkey has joined.
22:42:15 -!- oerjan has quit ("Good night").
23:01:15 <warrie> I've decided that a Turing machine's initial state must be the output of a push-down automaton.
23:01:56 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
23:13:09 <jayCampbell> this is awesome http://jarrett.cs.ucla.edu/ometa-js/
23:33:17 -!- Asztal has joined.
23:40:05 -!- psygnisfive has joined.
23:46:28 -!- lament has joined.
23:46:38 <lament> i should stop listening to non-solo-piano music.
23:46:56 <lament> cause when i do, there's a risk that i will want to play it
23:47:14 <lament> and that would involve arranging it, which is not always feasible
23:55:19 <warrie> What broken LZW algorithm produced that topic?
23:57:40 <warrie> I want a flash-card-like program that plays notes and asks me to identify them.
23:59:01 <lament> i almost wrote that once
23:59:10 <lament> you think you have absolute pitch?
23:59:31 <Sgeo> <3 Time-loop logic
2008-12-03
00:00:48 <warrie> I do think I have absolute pitch.
00:01:13 <lament> then just write this program, it's very easy
00:01:18 -!- nooga_ has changed nick to nooga.
00:01:21 <warrie> Okay.
00:01:22 <lament> you can find sources for tone generation
00:01:43 <lament> tons of ways to do it, you can be high level and do midi, or low level and do sine waves + sdl
00:01:53 <warrie> Or use JavaScript and piano sounds.
00:02:00 <lament> or that.
00:02:09 <lament> a.wav, asharp.wav, b.wav, etc
00:02:10 <lament> :D
00:03:27 <warrie> I could confuse myself by having asharp.wav and bflat.wav as different pitches.
00:03:42 <warrie> Or I could shut up about alternative tunings.
00:04:51 <lament> if you have absolute pitch that can tell A# from Bb
00:05:00 <lament> in whatever sane temperament
00:05:11 <lament> then you're a fucking genius and should probably work as a piano tuner?
00:05:43 <warrie> I'm sure distinguishing them is relatively easy in 19-tone equal temperament.
00:08:24 <Sgeo> Wait, A# and Bb are different?
00:08:49 <warrie> In some tunings, yes.
00:09:17 <warrie> If your piano has only one key between A and B, go ahead and use it for both A# and Bb.
00:10:17 * warrie tries to see if Python can easily do MIDI
00:15:46 <jayCampbell> does anyone remember the recent tool that generates grammars based on example sources?
00:19:37 <Asztal> never heard of it, but now I want to see it!
00:19:55 <GreaseMonkey> warrie: if you want to you can build your own synth system
00:20:06 <GreaseMonkey> using an audio device
00:22:29 <warrie> Sounds easier to use MIDI or something.
00:22:55 <GreaseMonkey> get the value of the 12th root of 2
00:23:03 <GreaseMonkey> then, 440Hz = A-4
00:23:14 <GreaseMonkey> to go up an octave, *2
00:23:24 <GreaseMonkey> to go up a semitone, * 12th root of 2
00:23:41 <GreaseMonkey> down is just dividing instead of multiplying
00:24:36 * Sgeo wants to transplant a conversation into here
00:26:18 <GreaseMonkey> wow. google calculator gave me the answer.
00:26:19 <GreaseMonkey> 12th root of 2 = 1.05946309
00:26:49 <Sgeo> A computer chip that can receive things sent from the future
00:27:09 <GreaseMonkey> that would be hot.
00:27:38 <Sgeo> char wormhole_recv(char slot)
00:27:50 <Sgeo> and wormhole_send(char slot, char data)
00:28:00 <Sgeo> as low level functions
00:28:08 <warrie> This is what I really like about Google Calculator: http://www.google.com/search?q=%281+month+*+1+lunar+month%29%2F%281+month+-+1+lunar+month%29+*+once+in+a+blue+moon
00:29:42 <Sgeo> The fact that it defines "once in a blue moon" somehow that should make sense to be from that but doesn't?
00:30:28 <Sgeo> Why is a blue moon = (month-lunarmonth) / (month*lunarmonth)?
00:30:52 <warrie> A blue moon is the second full moon in a calendar month, I believe.
00:33:46 <GreaseMonkey> something like that
00:34:07 <GreaseMonkey> heh
00:36:13 <Sgeo> So, what things can be done on a system like what I described
00:36:25 <Sgeo> Future IMs, Perfect Password Cracker
00:37:39 <GreaseMonkey> finding out your test results
00:38:06 <Sgeo> That would be under Future IM/Email
00:38:37 <Sgeo> Evacuations of buildings that could easily give false positives but never false negatives
00:40:43 -!- psygnisfive has quit (Remote closed the connection).
00:41:52 <MizardX> wormhole_recv: receive a message from the future. wormhole_send: send a message to the past, but doesn't always send what you give it.
00:43:49 <Sgeo> MizardX, why would you do that?
00:44:02 <MizardX> easier to implement :)
00:44:09 <Sgeo> rofl
00:44:16 <GreaseMonkey> any other reason?
00:44:19 <MizardX> no
00:45:02 <Sgeo> There's also the Pime Taradox issue: Someone might right a function like this:
00:45:18 <Sgeo> wormhole_send(wormhole_recv()+1)
00:45:55 <Sgeo> To prevent random lightning strikes as the resolution, the chip should randomly, on wormhole_recv, through some sort of trap or exception like PimeTaradox
00:45:57 <Asztal> I guess it just keeps destroying the universe until it finds a fixed point or something
00:46:06 <Sgeo> The possibility of this needs to be controllable, I think
00:48:04 <warrie> I prefer my model: Assuming I haven't extrapolated too wildly, every quantum circuit has a fixed point. The wormhole gate pretty much just tells you what it is.
00:48:26 <Sgeo> That involves quantum compution though
00:48:31 <Sgeo> Which is a bit mind-bending
00:48:55 <warrie> Yes, but once you bend your mind once, it should stay that way.
00:51:37 <Sgeo> I think you said my way was more poweful?
00:52:04 * Sgeo doesn't know the limitations or benefits of your quantum system
00:56:10 <warrie> I think I did say your way was more powerful.
00:56:18 <MizardX> http://www.vjn.fi/pb/p342611616.txt ;)
00:56:44 <jayCampbell> can't you have a hot spare?
00:57:30 <lament> warrie: did you write the program yet?
00:58:04 <warrie> Nope.
00:58:36 <Sgeo> MizardX, don't tell me you're actually trying to implement this..
00:58:39 <lament> i wonder if there's any benefit to such a program, though
00:58:48 <lament> i.e. whether it would train absolute pitch or not
00:59:13 <Sgeo> MizardX randomly takes a number, or receives something from the past
00:59:31 <lament> absolute pitch would be ridiculously useful for writing music you hear down
00:59:53 <warrie> I'm sure it would be as effective as flash cards for anything else.
01:00:00 <lament> i'm not.
01:00:19 <warrie> I mean, not if you don't already have absolute pitch; that seems to be established well enough.
01:00:49 * jayCampbell pitches an absolute fit
01:01:59 <Sgeo> ..grr
01:02:13 <lament> warrie: if you already have it, what does "training" it do?
01:02:31 * Sgeo wants new OotS
01:02:43 <lament> with flashcards, when you're shown an unknown word twice, you might not know the word, but you would be able to tell that it's the same
01:02:58 <lament> i'm not sure if "underdeveloped" absolute pitch works like that
01:03:13 * Sgeo abuses his TLL computer to peak at the new OotS
01:03:15 <Sgeo> Ooh!
01:03:30 <warrie> lament: I'm quite familiar with G, having listened to Bach's "Little" Fugue in G minor many times.
01:04:20 <lament> oh, that fugue is nice
01:04:27 -!- kt3k has joined.
01:04:53 <lament> but if you can remember one note, then you just need to measure the interval from it to the note you hear, which is relative pitch and very easy
01:05:17 <warrie> But that takes two steps.
01:05:31 <lament> but if you heard the same fugue played in f#, would you notice? :)
01:06:28 <warrie> I imagine so.
01:06:33 <lament> nice
01:07:26 <lament> i feel kinda dumb not having absolute pitch, so if it can be trained that would be nice
01:08:02 <warrie> There's a piano at school that seems to be shifted in pitch a bit, though by less than a semitone, I'm guessing.
01:13:44 -!- kt3k has quit ("CHOCOA").
01:13:44 <lament> http://en.wikipedia.org/wiki/Tonal_memory
01:13:53 <lament> "Tonal memory may be used as a strategy for learning to identify musical tones absolutely. Although those who attempt the strategy believe they are learning absolute pitch, the ability thus learned is generally not musically relevant[3], and their absolute tonal memory declines substantially or completely over time if not constantly reinforced."
01:14:06 <lament> i believe that's what the flashcard program would do.
01:14:34 <lament> http://www.aruffo.com/eartraining/research/articles/meyer99.htm
01:14:52 <lament> although that paper is from 1899 so who knows
01:18:58 <lament> damn, so you can't develop absolute pitch if you don't have it :(
01:19:35 <lament> and if you know G because you listened to a fugue in G a lot, that would be tonal memory, not absolute pitch
01:21:48 <warrie> How am I supposed to know if I have absolute pitch or not, then?
01:22:49 <lament> absolute pitch means you perceive pitch as one of the characteristics of the note
01:23:06 <lament> without any relationship to other notes (including ones you have memorized)
01:24:34 <lament> like, blue is blue because it's blue, not because it's different from green in a certain way
01:26:56 <Asztal> well, I don't have absolute colour :(
01:26:57 <lament> at least relative pitch can certainly be trained, and it's arguably much more useful
01:27:13 <warrie> How do you falsify absolute pitch?
01:28:38 <lament> good question!
01:29:35 <lament> wikipedia gives no hints
01:29:51 <lament> other than hypersensitivity to the pitch being correct
01:30:06 <lament> i.e. you should notice when a piece is playing in the wrong key
01:30:59 <lament> "the tasks of identification (recognizing and naming a pitch) and discrimination (detecting changes or differences in rate of vibration) are accomplished with different brain mechanisms."
01:31:16 <lament> does that mean absolute pitch is visible on EEG?
01:32:25 <lament> http://www.zainea.com/absolpitch.pdf
01:32:29 <lament> Being unable to turn it
01:32:29 <lament> off, many possessors of AP perform dramatically poorer at
01:32:30 <lament> judging whether a melody and its transposed counterpart
01:32:34 <lament> are the same
01:33:28 <warrie> Does it count if I can remember the key a piece of music is in?
01:33:50 <lament> what do you mean?
01:34:04 <lament> can you tell the key, by listening to the music?
01:34:53 <jayCampbell> you don't need perfect pitch for that
01:35:57 <lament> jayCampbell: what do you need?
01:36:09 <warrie> If you played me "Amaranth" on the piano, I could tell you whether it's in the same key as a certain YouTube video of it.
01:38:28 <lament> since you have musical training, i think with absolute pitch you ought to guess the note pretty much all of the time
01:38:56 <lament> Some people have AP for only a single tone – often their
01:38:56 <lament> tuning note – and fail to show the automatic and rapid
01:38:56 <lament> identification found in true AP possessors (hence, this is
01:38:56 <lament> termed ‘quasi-AP’). They are able to obtain high scores on
01:38:56 <lament> standard AP tests by calculating tone names from their
01:38:58 <lament> one internal referent. It is only when reaction times are
01:39:01 <lament> collected that they can be distinguished from true AP
01:39:03 <lament> possessors.
01:39:13 <lament> heh! falsifiable via reaction time :)
01:39:54 <jayCampbell> it's easier for me to recognize or hum an E than other notes
01:40:25 -!- warrie has changed nick to Warrigal.
01:40:27 <jayCampbell> maybe i'm a quasi, i think i recognize other keys as being shifted from E
01:40:34 <Warrigal> There, now G's in my nick.
01:41:05 <lament> er, good job
01:42:27 <GregorR> Everybody knows that people with "G" in their nick are substantially cooler than the rest.
01:43:14 <Warrigal> Actually, the letter A is what makes a nick cool.
01:43:24 <Warrigal> So everybody who's spoken recently except... GregorR, I guess.
01:43:47 <Warrigal> You're exempt, though, because Gregor is an actual name.
01:44:09 <GregorR> a's cancel each other out though, having two is like having none.
01:44:45 <Warrigal> In that case, I'm also exempt, because "warrigal" is an actual word.
01:44:47 <Asztal> :(
01:45:33 * Sgeo isn't cool?
01:46:39 <Warrigal> It's all about pronounceability, or pronuncibility, or whatever that thing's called.
01:47:53 <Warrigal> Should I assume your "g" and "e" are pronounced the same way as in your real name?
01:48:14 <Sgeo> The "g" in Sgeo is pronounced the opposite from my real name
01:49:02 <Warrigal> Is the "e" a short e, a long e, a long a, or something else?
01:49:25 <Sgeo> Suh Jee Oh
01:49:43 <Warrigal> That makes it a long e.
01:53:17 <Warrigal> Well, installing the fancy thingy that's supposed to make Python make noise failed.
01:53:21 <Warrigal> You do it, lament. :-P
02:14:51 <Sgeo> Another use (of the TLL computer): Instant downloading of any size file
02:17:38 <Sgeo> Instant cracking of hashed passwords, although I supposed that's not needed with the Perfect Password Cracker
02:32:12 -!- GreaseMonkey has quit ("I'm a thaasophobic.").
02:44:47 -!- at_deckards_hous has joined.
02:46:38 <Warrigal> What Perfect Password Cracker?
03:03:53 -!- at_deckards_hous has quit (Connection timed out).
03:41:52 <GregorR> Hrm ... nethack starts, but seems stuck >_>
04:03:51 -!- Asztal has quit (".").
05:00:49 -!- moozilla has joined.
05:04:18 -!- metazilla has joined.
05:04:19 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
05:04:42 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
05:04:54 -!- moozilla has joined.
05:21:46 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
05:21:56 -!- moozilla has joined.
05:22:47 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
05:40:32 -!- bsmntbombdood has quit.
06:03:06 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
06:22:25 <jayCampbell> ais523,
06:23:07 <jayCampbell> i implemented your reversible brainfuck but i have no idea how it attains reversability
06:23:09 -!- Slereah has joined.
06:31:22 <jayCampbell> ais52, nevermind, it just clicked
06:32:11 <jayCampbell> that would be a good eso-challenge
06:32:38 -!- Slereah_ has quit (Read error: 113 (No route to host)).
06:33:41 <jayCampbell> create a brainfuck program that reverses another program's run
06:50:54 <GregorR> Hrm ... sounds halting-problem-ish.
06:51:24 <lament> it's worse
06:51:54 <lament> if my program prints integers starting from 0 and going up, should the reversed program print them from infinity going down?
07:24:58 -!- bsmntbombdood has joined.
07:35:07 -!- Judofyr has joined.
07:46:09 -!- decipher has quit (Read error: 54 (Connection reset by peer)).
07:51:33 -!- decipher has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:27 <jayCampbell> ais523 is the one to talk to about proofs
08:11:07 <jayCampbell> i just flipped a couple lines of code
08:13:16 -!- Judofyr has quit.
08:18:52 -!- oerjan has joined.
08:44:58 -!- Dewi has quit ("bbl").
08:45:42 -!- Corun has joined.
08:53:12 -!- Corun has quit ("This computer has gone to sleep").
08:55:54 -!- olsner has quit ("Leaving").
09:54:52 <oklopol> you don't need absolute pitch for writing anything you hear down
09:55:12 <oklopol> it only helps in that you don't need to hit a random piano key to get the relative in context.
09:55:23 <oklopol> 02:04… lament: if you have absolute pitch that can tell A# from Bb <<< A# and Bb aren't different in any sane tuning.
09:56:02 <oklopol> makes no sense to have those two different, they simply have no conceptual difference.
09:57:09 <oklopol> and you definitely shouldn't make a.wav, asharp.wav etc., at least if you press the keys yourself, it's trivial to learn to recognize a certain ".wav", that has nothing to do with recognizing the pitch.
09:57:29 <oklopol> things ->
10:00:57 <lament> oklopol: a# and bb are different notes
10:01:11 <lament> they just happen to fall on the same pitch in 12-note equal temperament
10:02:16 <lament> but a violinist, say, is able to play them more correctly (closer to natural harmonics)
10:03:53 <lament> the difference is that a# is the note a fifth up from d#, and bB is the note a fifth down from f
10:04:10 <oklopol> what are their mathematical definitions? i go by 440*2**(n/12) for all purposes
10:04:11 <lament> the circle of fifths is actually a straight line of fifths
10:04:35 <lament> it goes in the direction of increasing sharps, in the opposite direction of increasing flats
10:04:38 <lament> both directions are infinite
10:04:57 <oerjan> oklopol: that _is_ 12 note equal temperament
10:05:18 <oklopol> ohh
10:05:25 <oklopol> yes, okay, now i get it, of course
10:05:30 <lament> but with 12 note equal temperament, we turn the straight line into a loop
10:05:39 <oklopol> you mean A# and Bb are different notes in C scale.
10:05:42 <oklopol> yeah, true.
10:05:42 <lament> by approximating the true pitches with one of 12 discrete choices
10:06:12 <oklopol> my point was exactly that they aren't different if you consider the whole set of scales.
10:06:29 <lament> they're different
10:06:42 <lament> they correspond to different frequencies, if you start at C and go up or down in fifths
10:06:52 <oklopol> yeah, and Ab in D scale is different than Ab in C scale
10:07:16 <oklopol> my point is A# and Bb don't have a fundamental difference, except in a certain scale
10:07:24 <lament> um
10:07:29 <lament> they're completely different notes
10:07:43 <lament> in 12-note equal temperament, they happen to fall on the same pitch
10:08:07 <oklopol> i'd like to see the math here.
10:08:22 <lament> sure
10:08:27 <lament> octaves are powers of two
10:08:58 <lament> fifths are powers of ummm
10:09:55 <lament> what are they powers of? :)
10:10:11 <oerjan> some rational number, anyway
10:10:24 <oklopol> hmm. i'm not sure you understood i do know A# and Bb are different notes, and that my point was just that they are also another two different notes if you start the scale of fifths from, say, D?
10:10:27 <lament> the interval ratio of the note up a fifth from a root note is 3:2 iirc
10:11:20 <oklopol> anyway i'm not interested in getting these ratios right, that's just adding an uninteresting complication to an otherwise nice system.
10:11:55 <lament> no, they will be the same if you start from D, provided that you arrived to D by starting at C first :)
10:12:08 <oklopol> umm
10:12:15 <lament> i mean they won't be the same
10:12:21 <oklopol> the D scale will not be correct then.
10:12:26 <oklopol> so no, you shouldn't start from C then
10:12:34 <oklopol> if you do, why not just use equiscale.
10:12:39 <oklopol> just as crooked
10:12:54 <lament> thing is
10:12:59 <lament> tonal music is built on the cycle of fifths
10:13:07 <lament> we choose an arbitrary pitch as the centre
10:13:25 <lament> in indian music, they don't even have fixed note frequencies, they just tune to whatever
10:13:40 <lament> as long as there's the center, other notes are defined in terms of it
10:13:49 <lament> unless you don't want to be tonal
10:13:56 <lament> which you don't have to be, of course
10:14:18 <lament> then you can just take the octave and divide it into N equidistant pitches, for example
10:14:28 <lament> or simply choose a set of N random frequencies as your "notes"
10:14:32 <lament> or do whatever
10:14:41 <oklopol> yes, and my point is, if you stick the fucking C in the middle all the time, and play in say D major, and then start telling A# and Bb are different, that's just bullcrap, that's just a random distinction. it's only helpful if you're actually playing in the scale your circle of fifths is tuned on
10:14:50 <lament> but if you're tonal, you have to follow the circle of fifths
10:14:57 <oklopol> 12 is the only one that makes sense
10:15:11 <lament> no, that's not true
10:15:13 <oklopol> read wouter's article on the subject
10:15:24 <oklopol> 12 is the most natural
10:15:29 <lament> perhaps
10:15:41 <lament> chinese classical music has 5 notes per octave?
10:15:52 <lament> they manage
10:15:56 <oklopol> anyway, i'm not at all interested, and you're not showing me the math, so you're basically saying nothing ->
10:16:08 <oklopol> they do? nevaheard, link something to me while i'm gone
10:16:13 <oklopol> because i don't believe you :P
10:16:15 <lament> the math is that the notes in a fifth are in a 3:2 ratio
10:16:15 <oklopol> !! ->
10:16:24 <lament> and no matter how many such ratios you put in a line
10:16:30 <lament> you will never get to a ratio that's a power of 2
10:16:47 <lament> i.e. no amount of fifths will ever add up to the same note modulo octave
10:16:56 <lament> i.e. the circle of fifths is not a circle at all
10:16:58 <oklopol> no offense, but i have a lecture in -1 minutes, and i can't leave if you're talking, so... :D
10:17:11 <oklopol> minute of silence, please? we can talk later
10:17:20 <oklopol> (not that i'm interested!)
10:17:20 <lament> i told you the math :)
10:17:28 <oklopol> yeah, and i asked
10:17:31 <oklopol> but i'm an idiot
10:17:34 <oklopol> that's no excuse
10:17:38 <oklopol> I GO!
10:17:39 <oklopol> ->
10:18:24 * lament goes to sleep
10:30:54 -!- oerjan has quit ("leaving").
10:44:22 -!- nooga has quit (Read error: 60 (Operation timed out)).
11:09:28 <oklopol> lament: yeah true i was wrong, of course D scale would be the same as C, the point is not that, the point is exactly what you said, we just choose an arbitrary subset of the circle of fifths.
11:10:36 <oklopol> anyway the system is still stupid, splitting evenly is better
11:10:41 <oklopol> back to lecture ->
12:09:17 -!- Sgeo has joined.
12:17:51 -!- Mony has joined.
12:18:46 <Mony> plop
12:32:45 -!- Corun has joined.
13:16:40 -!- Corun has quit ("This computer has gone to sleep").
13:17:53 <ehird> hi oklopol
13:25:49 <oklopol> hi
13:26:17 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
13:26:38 -!- bsmntbombdood has joined.
14:20:08 -!- Sgeo has quit ("Ex-Chat").
14:36:15 <AnMaster> fizzie, any progress on jitfunge?
14:42:33 -!- Judofyr has joined.
15:05:44 -!- KingOfKarlsruhe has joined.
15:53:37 -!- kt3k has joined.
15:54:39 <fizzie> AnMaster: Unfortunately not; been busy with other, more mundane things. (Also away right now, must transport self to another place.)
16:03:57 <AnMaster> cya
16:04:53 -!- jix_ has joined.
16:14:17 -!- LolaCL has quit (kornbluth.freenode.net irc.freenode.net).
16:16:07 -!- LolaCL has joined.
16:31:38 -!- oerjan has joined.
17:16:52 <ehird> hi ais523
17:17:01 <ais523> hi
18:19:26 <lament> oklopol: sure, 12-tone equal temperament has a ton of advantages, which is why everyone is using it
18:19:38 <lament> oklopol: but you shouldn't confuse it for "reality"
18:19:56 <lament> i.e. just because A# = Bb in equal temperament, doesn't mean it is "really so"
18:21:16 -!- kar8nga has joined.
18:24:35 <oklopol> lament: i can't admit i'm wrong, so i have really nothing to say here!
18:25:24 <lament> and the differences aren't purely theoretic
18:25:46 <lament> my hearing is nothing special but i can certainly hear the difference between an equal-tempered major third and a "real" major third
18:25:54 <oklopol> i realized what the truth was once i realized there's also G### etc.
18:26:07 <lament> yeah
18:26:20 <lament> the number of sharps and flats grows up to infinity
18:26:47 <lament> although it only rarely gets to 2 in actual music, and almost never to 3
18:27:00 <lament> in fact
18:27:15 <lament> some composers just disregard the whole thing and assume equal temperament
18:27:17 <ais523> how many sharps do you need before in a non-equal-tempered scale you end up back on the scale you started on
18:27:48 <oklopol> an infinite amount?
18:28:02 <ais523> oklopol: I'm not sure
18:28:18 <ais523> after all, a true sharp is + a certain frequency
18:28:19 <oklopol> (3/2)**m = 2**n
18:28:30 <ais523> if it's something like that, then you'll never end up on the scale
18:28:35 <ais523> it probably depends on the exact ratios
18:28:53 <oklopol> yes that's very probable :D
18:28:57 <oerjan> ais523: the pythagorean tuning, which i read about this morning, has 3/2 and 2
18:29:02 <oklopol> need to take teh dog out
18:29:18 <ais523> oerjan: that's for fifths and octaves, isn't it?
18:29:22 <oerjan> yes
18:29:23 <ais523> I'm wondering what it is for sharps
18:29:47 <oklopol> ais523: just jump in fifths?
18:29:57 <oklopol> gcd(12, 7) = 1
18:29:59 <oerjan> ais523: when you go up by 7 fifths, you reach the sharp of the original
18:30:02 <oklopol> dog ->
18:30:03 <ais523> ah, yes
18:31:02 <lament> chopin's fantasia impromptu
18:31:08 <lament> is in c# minor
18:31:28 <lament> and then the middle portion is in the major of the same key
18:31:31 <oerjan> also, they used 5/4 (iirc) for major third in some tunings, which is neither pythagorean nor equal-tempered
18:32:17 <lament> but instead of writing it in c# major, chopin wrote it in Db major
18:32:19 <oerjan> lament: the wp article said that major thirds were dissonant with pythagorean tuning, so was not used in european music after 15th century or so
18:32:30 <lament> which makes no sense at all, other than as a shortcut
18:32:35 <oerjan> *that tuning was
18:32:45 <lament> and because pianists are more used to reading Dbmaj than C#maj
18:32:52 <lament> and because they correspond to the same keys on the piano
18:33:09 <lament> so actual composers totally disregard this theoretical bullshit :)
18:33:54 <lament> oerjan: which article?
18:34:17 <oerjan> erm
18:35:54 <lament> pythagorean tuning?
18:36:15 <lament> this pic is nice
18:36:16 <lament> http://en.wikipedia.org/wiki/Image:Music_intervals_frequency_ratio_equal_tempered_pythagorean_comparison.svg
18:36:25 <oerjan> lament: that was it
18:36:49 <lament> aha, i see
18:36:57 <lament> "Because fifths in Pythagorean tuning are in the simple ratio of 3:2, they sound very "smooth" and consonant. The thirds, by contrast, which are in the relatively complex ratios of 81:64 (for major thirds) and 32:27 (for minor thirds), sound less smooth."
18:36:58 <oerjan> second last paragraph of Method section
18:37:05 <oerjan> yes
18:37:13 <lament> yeah, 81:64 does not sound like it would be nice :)
18:37:41 <lament> when you think too much about it, head explodes
18:38:00 <lament> there're all these true intervals and none of them are compatible with each other
18:38:57 <lament> say you're playing in C major
18:39:08 <lament> and you want to play the G chord
18:39:19 <lament> is the D the note a fifth above G, or a second above C+
18:39:23 <lament> s/C+/C?
18:41:07 * lament doesn't know the answer
18:41:28 <oerjan> 9/8 does not seem like it would have any close simpler fractions...
18:41:47 <lament> i think it should be the second above C
18:41:50 <oerjan> so the second probably _is_ two fifths up
18:41:53 <lament> because C is your tonal centre
18:42:13 <lament> oh, good point, it is
18:43:18 <lament> er no
18:43:21 <lament> fifth is 3/2
18:43:41 <oerjan> 3/2 * 3/2 / 2 = 9/8
18:43:49 <lament> er, right
18:44:51 <lament> http://en.wikipedia.org/wiki/Just_intonation
18:46:26 <lament> so G major is a bad example, but good examples are only a tiny bit more complicated, like going from C major to D minor
18:47:00 <lament> at that point you have to make a choice of whether to stay in C major and have a D minor chord that sounds wrong, or switch to a whole new set of intervals
18:47:20 <oklopol> hmm
18:47:44 <oklopol> i can clearly hear a few notes being wrong in the just intonation.
18:48:01 -!- Corun has joined.
18:48:20 <lament> if you play C major on the guitar
18:48:21 <oerjan> oklopol: http://en.wikipedia.org/wiki/Enharmonic explains why you would want to use both A# and Bb in your notation, even with equal temper, because you want a scale to have all base letters different
18:48:28 <lament> assuming the guitar is tuned correctly
18:48:32 <lament> the E will sound off
18:49:00 <lament> so some guitarists actually detune the E and make it a just major third above C
18:49:05 <lament> which makes C major sound nicer
18:49:11 <lament> the problem of course is that all the other keys are fucked
18:49:25 <lament> if you stay in one key, though, it's better
18:49:36 <lament> so these difficulties are definitely not just theoretical
18:50:47 <oklopol> ugh, just intonation sounds ugly
18:51:08 <oklopol> how's the piano tuned?
18:51:12 <lament> equal
18:51:18 <oklopol> ah okay
18:51:26 <oklopol> well makes sense then that i find that most natural
18:51:28 <lament> almost everything is tuned equal
18:51:29 <lament> yes
18:51:41 <lament> but major thirds definitely sound wrong :)
18:51:54 <lament> they're not "calm" enough
18:52:19 <oklopol> in the comparison thingie, just intonation had a pretty hideous major third
18:52:39 <oklopol> unlike equal, which had, well, major third :|
18:52:44 <oklopol> but i should look more into this.
18:52:53 <oklopol> i've never really cared about this
18:53:10 <oklopol> which is why i don't know anything
18:53:23 <oklopol> anyway, see you must watch series.
18:53:25 -!- Corun has quit ("Leaving").
18:53:37 -!- kt3k has quit ("CHOCOA").
19:23:13 -!- olsner has joined.
19:43:43 -!- Corun has joined.
20:02:44 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
20:02:45 -!- kar8nga1 has joined.
20:03:16 -!- jix has joined.
20:05:09 -!- Mony has quit ("Hey Hoy let go !").
20:17:43 -!- jix_ has quit (Read error: 113 (No route to host)).
20:54:39 -!- Corun has changed nick to Terrorist.
20:54:45 -!- Terrorist has changed nick to Corun.
21:14:36 <AnMaster> hi ais523
21:14:56 <ais523> hi, btw I'm in a large argument in another channel atm so probably won't be paying attention for a while
21:15:23 <AnMaster> ais523, ok
21:28:55 <Slereah> Maybe you should imply that you had sexual national congress with the mother of your opponent.
21:34:31 * oerjan notes that "sexual national congress" has only one google hit, which is fake
21:34:42 -!- KingOfKarlsruhe has quit (Remote closed the connection).
21:35:22 <oerjan> although it sounds like a rather large event
21:40:06 <ehird> Python 3000 is ready! The official release may not come until tomorrow, but Barry has tagged the source and is preparing the release. We've been waiting for this release for almost nine years. The earliest reference I can find is a message from Guido to python-dev in Jan. 2000.
21:40:25 <ehird> ^ cool.
21:55:04 -!- kar8nga1 has left (?).
21:56:07 <lament> yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay.
21:56:35 <ais523> lament: why are you yaying?
21:56:50 <lament> python 3k
21:56:55 <ais523> ah, ok
21:57:01 <ais523> I don't know much about python versions
21:57:21 <lament> it's something akin to perl 6
21:57:28 <ais523> oh
21:57:32 <ais523> I'm not sure if that's OK or oh dear
21:57:34 <lament> except not quite as ambitious, which is why it's actually out after 9 years
21:57:35 <ais523> rather depends on what it's like
21:57:57 <lament> it's basically python, just with some compatibility-breaking changes
21:58:44 <AnMaster> hm
21:59:08 <AnMaster> ais523, well I made progress with the bf optimizing, but the code is too messy
21:59:18 <AnMaster> so I probably won't make it too smart
21:59:24 <AnMaster> it is a nightmare to maintain.
22:00:18 <AnMaster> ais523, also the way the code currently looks it would be possible to change the emitting code to generate something else
22:00:22 <AnMaster> very localized to one file
22:00:30 <bsmntbombdood> cervix
22:00:31 <AnMaster> so generating bf could be done
22:00:34 <AnMaster> .D
22:00:36 <AnMaster> :D*
22:00:59 <ais523> it wouldn't be very optimised though I don't think
22:01:04 <ais523> you'd have to deoptimise it back into the original
22:01:05 <AnMaster> ais523, true
22:01:11 <ehird> http://www.python.org/ftp/python/3.0/
22:01:20 <AnMaster> ais523, however it could optimize lost kingdom slightly
22:01:43 <AnMaster> ais523, like dropping some non-needed [-], changing order of some stuff
22:01:44 <AnMaster> and such
22:01:54 <AnMaster> so it would slightly optimize it yes
22:02:56 <ehird> today, KIDS, we follow ehird as he tries to get a mathematica trial WITHOUT WAITING 2 BUSINESS DAYS FOR PEOPLE TO MANUALLY READ HIS REQUEST
22:03:01 <ehird> Silly ehird!
22:03:18 <Slereah> ehird : Download it negro
22:03:47 <ehird> Slereah: I was about to follow your advice, but I saw the all-important condition of being back so I won't, being white.
22:03:59 <ehird> (I tried to. Mathematica 7 hasn't made its way anywhere yet.)
22:04:13 <Slereah> Why do you need seven?
22:04:20 <Slereah> I mean, 6 is cool and all
22:05:17 <ehird> Slereah: I am a magical faery
22:05:19 <ehird> That is why.
22:05:37 <Slereah> You faery.
22:06:21 <ehird> hey ais523, i don't suppose your trial would work on a totally different OS and without a new key? :P
22:06:33 <ais523> ehird: no, it wouldn't
22:06:38 <ehird> damn
22:06:55 <ehird> oh well, time to see if wolfram acknowledge the existence of 1 FAKE STREET
22:07:18 <Slereah> maybe ais523 could ask mister Wolfram.
22:07:18 <oklopol> that's one fake street name
22:07:23 <Slereah> They're buddies!
22:07:31 <Slereah> "Hey dude, I proved your machine"
22:07:37 <Slereah> "Can you like give me a Mathematica?"
22:08:27 <ehird> Your Mathematica product trial request has been submitted and will be processed within three business days. In the meantime, you can explore all the latest features and complete documentation.
22:08:27 <ehird> Want help getting started with Mathematica? The Wolfram Mathematica Learning Center jump-starts the process with links to video screencasts; free online Mathematica seminars and presentations; "how-to"s and step-by-step examples; in-depth tutorials; thousands of free, ready-to-use models and demonstrations; and much more.
22:08:27 <ehird> If you have any questions about your Mathematica product trial, please contact us.
22:08:47 <ehird> Slereah: apparently the only mathematica thing ais523 got from it was a year trial
22:09:18 <Slereah> Well, then again, with his prize money, he could buy a bunch of Mathematica I guess
22:09:27 <Slereah> Not that much, really.
22:09:29 <Slereah> Like 12.
22:09:57 <ehird> Slereah: I believe he's said he used it to pay expenses :P
22:10:08 <Slereah> "Hookers and blow"?
22:12:43 <oklopol> sounds like ais alright.
22:28:39 <ehird> proto to implement the wormhole:
22:28:47 <ehird> return dummy value that stores expresions its used in
22:28:53 <ehird> when yu're forced to eval it, e.g. print out
22:28:56 <ehird> evaluate it
22:28:56 <ehird> umm
22:29:02 <ehird> the tll is actually just lazy evaluation
22:29:06 <ehird> except it's given to you pre-evaluation
22:29:07 <ehird> XD
23:09:55 -!- oerjan has quit ("Good night").
23:11:54 -!- Dewi has joined.
23:19:20 -!- Judofyr_ has joined.
23:19:52 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
23:37:11 <ehird> pgimeno: you should make mandelbrot in paintfuck
23:37:12 <ehird> <<
2008-12-04
00:24:55 -!- olsner has quit ("Leaving").
00:30:48 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)).
00:34:06 -!- jix has quit ("...").
00:38:51 -!- Corun has quit ("Leaving").
00:54:37 -!- Judofyr has joined.
01:30:54 -!- Corun has joined.
01:38:28 -!- Corun has quit ("Leaving").
02:00:03 -!- Sgeo has joined.
04:08:01 <GregorR> JSMIPS crashes TraceMonkey 8-D
04:13:38 <Warrigal> Darn, irssi doesn't have infinite scrollback.
04:14:45 * Warrigal scrolls back before the beginning of time, thereby ending up at the end of time, where the history of the world is obscured by noise caused by the few remaining charged particles
04:16:22 * Warrigal scrolls back forward to Fermat's time
04:16:47 <Warrigal> Darn. His proof got truncated because the message was more than 512 characters long.
04:42:10 -!- GreaseMonkey has joined.
04:55:39 -!- bsmntbombdood has quit.
04:56:15 -!- bsmntbombdood has joined.
05:38:27 <oklopol> Warrigal: you can change your nick as much as you want, but you cannot hide saying things like that.
06:06:08 -!- Dewi has quit ("bbl").
06:10:39 -!- Sgeo has quit (Remote closed the connection).
06:13:16 -!- ab5tract_ has joined.
06:15:46 -!- ab5tract_ has quit (Client Quit).
06:16:33 -!- ab5tract_ has joined.
06:17:46 -!- ab5tract_ has quit (Client Quit).
06:19:17 -!- oklopol has quit (Read error: 145 (Connection timed out)).
06:37:41 -!- GreaseMonkey has quit (kornbluth.freenode.net irc.freenode.net).
06:37:42 -!- ineiros has quit (kornbluth.freenode.net irc.freenode.net).
06:37:42 -!- Warrigal has quit (kornbluth.freenode.net irc.freenode.net).
06:38:47 -!- Warrigal has joined.
06:38:50 -!- ineiros has joined.
06:57:05 -!- GreaseMonkey has joined.
07:39:23 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
07:42:40 <AnMaster> Warrigal, hehe
07:54:00 <AnMaster> Warrigal, so they invented pastebins after Fermat's time then?
07:57:09 -!- Judofyr has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:25 -!- oerjan has joined.
08:44:16 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
09:20:32 -!- Slereah_ has joined.
09:37:10 -!- Slereah has quit (Read error: 110 (Connection timed out)).
09:48:07 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
10:26:12 -!- Slereah_ has joined.
10:29:34 -!- oklopol has joined.
10:29:39 -!- oklopol has quit (Remote closed the connection).
10:29:48 -!- oklopol has joined.
10:30:29 <oklopol> o
11:37:03 <oklopol> ehird: where's counter?
12:12:53 -!- oklopol has quit (Read error: 113 (No route to host)).
12:12:57 -!- oklokok has joined.
12:30:30 -!- oerjan has quit ("leaving").
12:52:34 <ehird> WAIT
12:52:38 <ehird> wait
12:52:40 <ehird> oklokok:
12:52:42 <ehird> you USE the counter??
12:53:29 <oklokok> i play it occasionally
12:55:14 <ehird> xD
12:55:17 <ehird> i'll get it back up sometime
12:55:48 <oklokok> so cool
12:55:52 -!- oklokok has changed nick to oklopol.
12:56:00 <oklopol> it's a good game, you see.
13:05:48 -!- ehird has set topic: nice blog. i thoguht you were a website though. im a cracker. i dont know how to hack. are you a hacker or cracker? | http://tunes.org/~nef/logs/esoteric.
13:06:52 <ehird> oklopol: what I'll do is make version 4
13:07:04 <ehird> because, srsly, who doesn't want charts of their clickering?
13:07:28 <ehird> oklopol: would you mind starting from 0 if you got FUCKING CHARTS?!?!?!
13:08:58 <oklopol> that'd be awesome, no, i wouldn't mind
13:09:05 <oklopol> iz for greater good.
13:10:07 <ehird> ya
13:10:22 <ehird> oklopol: the problem is scaling, i mean, it's hard to imagine a good storage system for this
13:10:33 <ehird> i'm thinking
13:10:37 <ehird> an in memory buffer of like 1000 clicks
13:10:43 <ehird> that's appended to the main file every now and then
13:10:55 <ehird> and the file's split into liek 10MB chunks
13:11:09 <ehird> dunno how to nicely index stuff so that you can go to a user page and get infos fast
13:11:12 <ehird> 's a hard problem
13:12:02 <ehird> haha, my little counter will revolutionize databases :>
13:13:06 <oklopol> mmhmm?
13:13:14 <ehird> oklopol: mwhat
13:14:32 <ehird> oklopol: basically
13:14:43 <ehird> i have to invent a hyper-fast append-only storage system
13:14:49 <ehird> that has indexes on just about every column
13:14:59 <oklopol> indexeeeeeeeeeeees
13:15:05 <ehird> and it has to scale to over 200 appends per second
13:15:14 <ehird> (that's what the original counter peaked at, 200 clicks/sec)
13:15:20 <ehird> but
13:15:22 <ehird> it could go even higher
13:15:23 <ehird> and
13:15:29 <ehird> it has to support billions and billions of rows
13:15:30 <ehird> and shit
13:15:31 <ehird> :D
13:15:41 <oklopol> revolution!
13:15:49 <ehird> oklopol: wat
13:16:01 <oklopol> ehird: stop asking me questions
13:16:06 <ehird> oklopol: why
13:16:11 <oklopol> you know i can't answer them.
13:16:28 <oklopol> "everything that's blue is type information"
13:16:46 <ehird> lol
13:17:08 <ehird> oklopol: i'm calling the storage system revolution now
13:17:09 <ehird> :P
13:18:13 <oklopol> "the yellow boxes are more like placeholders"
13:18:19 <ehird> what lang is this
13:19:01 <oklopol> i'm not sure, i'm attending this lecture, but i'm not really interested in the whole subject, so i just pick up random fragments and irc.
13:20:46 <ehird> people = revolution.Schema(
13:20:46 <ehird> name='people',
13:20:46 <ehird> properties=[
13:20:46 <ehird> ['id', revolution.INDEXED],
13:20:46 <ehird> ['name', revolution.INDEXED],
13:20:48 <ehird> ['password'],
13:20:50 <ehird> ]
13:20:52 <ehird> )
13:21:05 <ehird> stores in data/people.{1,2,3,4,...,100} etc
13:22:24 <oklopol> hmm, do you think i'd manage to read real world haskell, or would i just burn it after a few pages?
13:24:00 <ehird> oklopol: it's pretty good
13:24:01 <ehird> it's not like
13:24:04 <ehird> enterprisey whizbang haskell
13:24:21 <ehird> it's: here's how you structure a haskell program that uses the interwebs and file io and stuff nicely while still being all neatfunctional
13:24:43 <ehird> the people who wrote it are #haskell regulars and stuff, some work at galois (company thing that uses haskell).
13:24:55 <oklopol> hmm. okay well spoken, i don't think i need more.
13:25:13 <oklopol> i mean yeah k i'll read it
13:25:32 * oklopol is desperately trying to leave python :P
13:26:02 <ehird> oklopol: yeah python is really easy to do shit in but it's just so regular
13:27:41 <oklopol> yes. and it's much too verbose for my taste.
13:27:54 <oklopol> i mean for algorithm-related stuff
13:28:10 <oklopol> which is why i'd like to learn stuff like J
13:28:20 <oklopol> "so, inheritance, do you guys know this concept?"
13:28:44 <oklopol> the lecturer is somekinda businessman, not our usual prof
13:28:58 <oklopol> i bet he's a noob, but i haven't been listening
13:30:01 <ehird> one thing I've learned is that oop sucks, basically.
13:30:30 <oklopol> inheritance is a pretty wild horse yes.
13:30:55 <ehird> oop people are just idiots, they say that encapsulation and hiding is important and objects cant peek at others internals
13:30:58 <ehird> but inheritance is exctly that
13:31:28 <oklopol> well that depends, some believe inheritance should be done entirely in an encapsulativousal fashion
13:32:26 <oklopol> anyway true, peeking inheritance doesn't make much sense unless you're writing the inheritance tree as a whole.
13:35:08 <oklopol> hmm. okay now i have absolutely no idea what's happening, i could just as well just get out :)
13:35:36 <ehird> def add(*args):
13:35:36 <ehird> self.cache_log.append(args)
13:35:43 <ehird> oklopol: fast :-P
13:36:07 <oklopol> what's that now
13:36:29 <ehird> """
13:36:29 <ehird> A fast append-only storage system that stores a ton of stuff
13:36:29 <ehird> in memory before serializing it to chunked files.
13:36:29 <ehird> Does indexes galore.
13:36:30 <ehird> """
13:36:36 <ehird> callsin' it revolution after your nonsense line
13:36:38 <ehird> using it for the counter
13:36:42 <ehird> as it keeps a log of every click
13:36:49 <ehird> and i need lots of indexes for statistics
13:36:58 <oklopol> nonsense?
13:36:58 <oklopol> :o
13:37:05 <ehird> when you just said revolution out of nowher
13:37:06 <ehird> :P
13:37:25 <oklopol> no in fact i think it was good context for dat.
13:37:54 <ehird> 2 seconds to add a million records, cool, though its just an array append :P
13:37:57 <ehird> and I need to do the serialization
13:38:01 <ehird> and indexes
13:38:34 <oklopol> yes it's not very surprising you can do nothing to a lot of data in no time
13:41:09 <ehird> oklopol: its doing things with a list
13:41:09 <ehird> :P
13:42:18 <oklopol> yes, a sophisticated flavor of nothing
13:43:00 <ehird> hmm oklopol how would you code an index?
13:43:02 <ehird> that is
13:43:07 <ehird> how would you serialize a mapping of
13:43:11 <ehird> string=>string
13:43:16 <ehird> so that you can access it without loading it all into memor
13:43:17 <ehird> y
13:43:21 <ehird> and without searching through the whole file
13:43:48 <oklopol> whhhell.
13:43:51 <oklopol> there are tonsa ways
13:44:01 <oklopol> don't ppl usually use b for file stuff
13:44:11 <ehird> wat?
13:44:25 <oklopol> err b-tree
13:45:15 <oklopol> i think that's the canonical database data structure
13:45:21 <oklopol> or b+, same thing really
13:45:23 <ehird> oklopol: yeah how would you write one of thems out to disk so you can lookup without reading in the whole file, personally?
13:45:40 <ehird> well, multiple b-trees, i'm splitting files every now and then
13:46:06 <oklopol> well no need really
13:46:09 <oklopol> but go for it
13:47:16 <ehird> oklopol: yah but how would you
13:47:17 <ehird> :P
13:47:21 <ehird> i can't think of an eleganty way
13:49:29 <oklopol> err.
13:49:47 * oklopol mutters something about a higher-level operating system
13:50:14 <ehird> oklopol: i feel you bro :{
13:50:18 <ehird> ^ not gay
13:50:31 <oklopol> a b-tree isn't that hard to make serialized. that's pretty much how it was designed
13:50:46 <ehird> yeah but
13:50:54 <ehird> i can't think how to look up without scannign through the whooooooooooole tree
13:50:54 <ehird> :{
13:50:57 <ehird> hash tables work fine in memory
13:50:58 <oklopol> but i haven't tried it, can't really guide you mucho.
13:51:03 <ehird> but i can't think how they'd work nice just scanning on discccc
13:51:24 <oklopol> err. with a b-tree in the file, you'd just have to traverse the tree down once, log n
13:53:37 -!- Asztal has joined.
13:54:03 <oklopol> hmm. gotta leave
13:54:23 <oklopol> -----> !!
13:54:25 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
13:54:32 -!- oklopol has joined.
13:58:47 <ehird> wb oklopol
13:58:47 <ehird> :P
14:13:52 -!- oklopol has quit (Connection timed out).
14:28:53 -!- jix_ has joined.
14:42:10 -!- jix_ has quit ("...").
14:43:10 -!- Slereah_ has quit (Read error: 113 (No route to host)).
14:43:20 <ehird> hokay record format:
14:43:30 <ehird> hmm
14:43:43 <ehird> i can't use \0\0 as terminator and \0 as sep because that doesn't allow blank fields
14:43:46 <ehird> oh well, I'll just use \0 and \1
14:45:31 -!- Slereah_ has joined.
14:45:40 <Slereah_> I just stole a Matlab module from my university :o
14:45:43 <Slereah_> Am I a bad man?
14:47:06 <Asztal> I'm telling
15:02:50 <Slereah_> Well, it's not really stealing
15:02:56 <Slereah_> Considering that they still have it
15:03:01 <Slereah_> It is COPYWRONG D:
15:08:55 <ehird> Copywrong
15:08:56 <ehird> brilliant
15:09:05 <ehird> I am calling piracy that from now on
15:09:34 -!- Judofyr_ has joined.
15:19:17 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
15:35:29 -!- KingOfKarlsruhe has joined.
15:39:47 -!- Slereah has joined.
15:44:44 -!- Judofyr has joined.
15:44:44 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
15:54:21 -!- Slereah has quit (Read error: 60 (Operation timed out)).
15:56:30 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
15:57:17 -!- Slereah_ has quit (Read error: 113 (No route to host)).
15:59:27 -!- Judofyr has joined.
16:04:23 <ehird> I want a filesystem that versions absolutely everything automatically. :(
16:04:31 <ehird> EVERYTHING.
16:09:30 -!- jix_ has joined.
16:12:09 -!- Judofyr_ has joined.
16:12:09 -!- Judofyr has quit (Read error: 131 (Connection reset by peer)).
16:14:28 -!- Slereah_ has joined.
16:16:54 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
16:18:31 -!- Judofyr has joined.
16:24:31 -!- Judofyr_ has joined.
16:36:47 -!- KingOfKarlsruhe has quit (Remote closed the connection).
16:42:06 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
16:49:23 <ehird> <8b>5dff5ba9-d4e0-4cc8-a70d-7ad97616ec12<0>name<0>$2a$12$2FavSY4z8BQ1.S7gUtp1ye0W/.HyHngFpxfQU76mrkSDv5InU1OZ.<0>penguinofthegods@gmail.com<0>2008<0>12<0>4
16:49:31 <ehird> ^ where <hex> is that unprintable char
16:49:45 <ehird> multiple items, of course, just being stuck after each other:
16:49:48 <ehird> <8b>5dff5ba9-d4e0-4cc8-a70d-7ad97616ec12<0>name<0>$2a$12$2FavSY4z8BQ1.S7gUtp1ye0W/.HyHngFpxfQU76mrkSDv5InU1OZ.<0>penguinofthegods@gmail.com<0>2008<0>12<0>4<8b>5dff5ba9-d4e0-4cc8-a70d-7ad97616ec12<0>name<0>$2a$12$2FavSY4z8BQ1.S7gUtp1ye0W/.HyHngFpxfQU76mrkSDv5InU1OZ.<0>penguinofthegods@gmail.com<0>2008<0>12<0>4
16:49:58 <ehird> (it's <length>record<0>record<0>...)
16:55:44 -!- Slereah_ has quit (Read error: 113 (No route to host)).
17:00:03 -!- Slereah_ has joined.
17:03:32 -!- Slereah has joined.
17:08:45 <ehird> hi ais523
17:09:21 -!- Judofyr_ has quit (Read error: 110 (Connection timed out)).
17:09:28 -!- Judofyr has joined.
17:10:28 <ais523> ehird: "revolution" sounds like a Windows codename version
17:10:35 <ehird> heh, kinda
17:10:45 <Slereah> Is the revolution that it works okay?
17:10:54 <ehird> instantrimshot.com
17:11:16 <Slereah> *slide whistle*
17:11:35 <ais523> ehird: why do you keep writing that?
17:11:45 <ehird> ais523: because Slereah made a terrible joke?
17:11:48 -!- Judofyr has quit (Client Quit).
17:11:59 <ais523> ehird: yes, but so far it's made no sense in any context, why the .com?
17:12:05 <ehird> ais523: http://instantrimshot.com/
17:12:06 <ehird> turn on flash :-P
17:12:18 <ehird> (it's a red button that, when clicked, produces an instant e-rimshot at your convenience.)
17:12:26 <ais523> if it requires flash, no point in visiting it
17:12:28 <ais523> for me
17:12:37 <ehird> thus the :-P
17:13:08 <Slereah> ais523, why do you hate freedom?
17:13:49 <ais523> Slereah: I may be happier with Flash once there's an alternative implementation that isn't the biggest cross-platform security hole in existence
17:13:55 <ehird> gnash?
17:13:57 <ehird> instantrimshot.com
17:14:03 <ais523> not really sure if it's ready yet
17:14:11 <ehird> thus the instantrimshot.com
17:14:15 <ais523> besides, the sort of websites that use Flash aren't the sort of websites I like ot visit
17:14:22 <ais523> and also, SVG was standardised first
17:14:25 <ais523> and does all the same things
17:14:36 <ais523> just people insist on using it only as a vector graphics format for some reason
17:14:40 <ehird> and is 100000x slower in every modern browser :P
17:14:54 <ais523> ehird: well, there's a huge problem with SVG, which is that nobody implements it properly
17:14:59 <ehird> lol
17:15:02 <ais523> ironically, the only sane implementation I've seen was by Adobe
17:15:23 <ais523> but they stopped supporting it after a while, and it was never open-sourced
17:15:55 <Slereah> ais523
17:16:01 <Slereah> Maybe YOU SHOULD DO IT :o
17:16:13 <Slereah> So that you may see our awesome flash videos.
17:16:34 <ais523> too busy right now, also Flash is big and complex and inherently insecure
17:16:50 <ais523> I mean, what sort of format designed for websites should be able to use the client's webcam by default?
17:16:51 <Slereah> Why inherently?
17:17:05 <ais523> Flash is sort of like Java with a worse security model, in terms of its capabilities
17:17:06 <Slereah> Well, it doesn't have to use it.
17:17:14 <Slereah> I mean, was it able to do that ten years ago?
17:17:21 <Slereah> I'm not sure webcam existed back then
17:18:21 -!- oerjan has joined.
17:18:31 <Slereah> Maybe you should like get an old version of Flash :o
17:18:54 <Slereah> Although I'm not sure you could fit it in Firefox. But then again, you can just download the flash and watch it.
17:19:06 <ehird> ais523: um
17:19:10 <ehird> it asks permission for webcam
17:19:10 <ehird> :P
17:19:16 <ais523> it does nowadays
17:19:27 <Slereah> Get an old one then :o
17:19:34 <Slereah> So that you may see our hilarious links!
17:19:46 <Slereah> http://www.albinoblacksheep.com/flash/shii
17:19:51 <Slereah> HEY GUYS, REMEMBER THE INTERNET?
17:20:52 * oerjan vaguely recalls something about it
17:21:19 <Slereah> oerjan : It was more commonly known as the "Information super highway"
17:21:26 <Slereah> Or the "World Wide Webeverse"
17:21:33 <oerjan> ah yes it was something Al Gore invented
17:21:55 <Slereah> Using nothing but tubes.
17:21:59 -!- Slereah_ has quit (Read error: 113 (No route to host)).
17:22:11 <oerjan> dude, it's tubular
17:22:28 <ais523> replacing the internet with a big truck would save on bandwidth
17:22:42 <Slereah> Come on dude, the internet isn't a truck.
17:22:43 <oerjan> but not on latency
17:22:45 <Slereah> It's
17:22:49 <Slereah> a series of tube.
17:23:29 <oerjan> it shares the tubes with the sewer system
17:23:40 <oerjan> sometimes there is overflow, thus we get spam
17:24:12 <Slereah> The internet is nothing but a statistical experiment.
17:24:26 <oerjan> it gradually worsens as global warming causes sea level to rise, increasing flood incidents
17:24:30 <Slereah> what would happen if a million monkeys typed on a million typewriters?
17:24:35 <Slereah> So far, no Shakespeare.
17:25:11 <oerjan> Slereah: alas, it's logarithmic, just 12*log 10 increase
17:25:21 <oerjan> compared to a single monkey
17:25:23 <oerjan> um wait
17:25:28 <oerjan> 6*log 10
17:25:42 <oerjan> for a moment i assumed the monkeys had a million typewriters each
17:27:13 <Slereah> But they have only four hands, oerjan
17:27:16 <Slereah> Well, and a tail
17:27:20 <Slereah> It wouldn't be useful
17:27:37 <oerjan> only spammers have that, i don't think they have produced any shakespeare yet, unless they copied it
17:28:12 <Slereah> Iunno
17:28:19 <Slereah> Do you know those spams with random words?
17:28:24 <Slereah> Some can be pretty poetic
17:28:28 <oerjan> hm yeah
17:28:38 <oerjan> but still, the problem is it's logarithmic
17:28:40 <Slereah> Lemme find an awesome one
17:28:52 <ais523> the CAPTCHA on Wikimedia often ends up poetic
17:29:03 <oerjan> doubling the number of monkeys only increases by 1 bit the length of useful results
17:29:07 <Slereah> http://balinares.livejournal.com/54645.html
17:30:41 <oerjan> hm a spam poetry contest
17:30:51 <oerjan> the winner gets 1 month off his jail time
17:31:06 -!- Slereah_ has joined.
17:31:10 <Slereah_> <:|
17:31:13 <Slereah_> >:|
17:31:36 <oerjan> oerjan> hm a spam poetry contest
17:31:41 <oerjan> oerjan> the winner gets 1 month off his jail time
17:32:03 <ais523> Slereah_: so are you wearing a dunce cap or a pointy hat, or are you just angry
17:33:17 * oerjan wants a mitochondrial particle accelerator
17:33:26 -!- olsner has joined.
17:33:36 <jayCampbell> like a jedi?
17:37:35 <oerjan> hm
17:37:50 <oerjan> you're thinking of midichlorians
17:40:46 <oerjan> <ehird> I want a filesystem that versions absolutely everything automatically. :(
17:40:59 <ehird> uh oh oerjan pun time
17:41:02 <oerjan> i recall VMS did that
17:41:10 <ehird> yeah i think so
17:41:14 <oerjan> no, just ancient memory
17:41:48 <oerjan> i believe nvg has an OpenVMS server somewhere for the nostalgic members
17:42:46 <oerjan> when i joined university, the computer system was VMS
17:43:17 <oerjan> and nvg's first server was a VAX running Ultrix
17:45:20 <oerjan> so i logged onto my account on the university's VMS system to connect to that server's MUD. that's how i got started on the internet.
17:49:45 -!- Slereah has quit (Read error: 113 (No route to host)).
17:51:38 -!- Slereah_ has quit (Read error: 113 (No route to host)).
18:02:09 -!- oklopol has joined.
18:03:17 -!- Slereah_ has joined.
18:04:38 <Slereah_> D:<
18:07:21 <ehird> hi oklopol
18:14:32 -!- Slereah has joined.
18:14:33 <Slereah> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
18:15:17 <oerjan> maybe you could use one of those bouncer thingies?
18:15:29 <Slereah> wat
18:15:52 <oerjan> like ehird and ais523 do/used to do
18:15:58 <ehird> do
18:16:05 <ehird> i'll give Slereah an account if he wants
18:16:22 <Slereah> I have no idea what you're talking about
18:16:23 <ais523> Slereah: they avoid quitjoin-spamming channels when your connection goes wrong
18:16:41 <ais523> oerjan: I'm still on a bouncer
18:16:45 <ais523> Slereah: basically, you connect to a server
18:16:49 <ais523> and it connects to IRC on your behalf
18:16:52 <ehird> Slereah: you connect to an irc server
18:16:54 <ehird> that's always connected
18:16:57 <ehird> so you never go offline
18:16:59 <ehird> and when you reconnect,
18:17:01 <ais523> even if you become disconnected from it, it's still connected to Freenode
18:17:03 <ehird> everything you missed gets sent back at you
18:17:07 <ehird> ~end~
18:17:11 <oerjan> ais523: i just had this impression i've seen you not on one recently
18:17:21 <ehird> oerjan: when he's using mibbit?
18:17:25 <ais523> oerjan: I've been on one all along, explaining why I haven't disconnected for ages
18:17:35 <ais523> even when I've been on mibbit as ais523_, ais523's still connected from the bouncer
18:17:38 <ais523> just I'm not connected to it
18:17:43 <oerjan> ah
18:17:52 <Slereah> Well, I guess it would be nice.
18:18:24 <ehird> Slereah: the downside is that I get access to your nickserv password :-P
18:18:30 <ehird> well
18:18:32 <ehird> actually
18:18:34 <ehird> that can be avoided
18:18:41 <ehird> by just doing it manually
18:18:50 <ehird> but i could just log in as you anyway. although i haven't done that once.
18:18:55 <Slereah> ehird
18:19:00 <ehird> Slereah
18:19:02 <Slereah> I have no nickserv password
18:19:06 <Slereah> At least I don't use it
18:19:16 <ehird> sweet, I'ma impersonate you next time you drop offline
18:19:19 <Slereah> Freenode doesn't require you to identify
18:23:30 -!- Slereah- has joined.
18:23:37 <Slereah-> NEVER HAVE I BEEN MORE ANGRY OR ORANGE
18:24:08 <ais523> Slereah-: if you were Nickserv-identified, you could get your nickname back from the ghost Slereah
18:24:29 <Slereah-> Could I?
18:24:33 <ehird> yes.
18:24:38 <ehird> /ns ghost Slereah PASSWORD
18:24:41 <ehird> will kill slereah
18:24:46 -!- Slereah has quit (Nick collision from services.).
18:24:51 <ehird> tada
18:24:52 <Slereah-> HOLY SMOKE, A MIRACLE
18:25:06 <Slereah-> But it still mean I have to type it every goddamn time
18:25:18 <Slereah-> It's easier to wait it to drop
18:25:37 <ehird> use a less secure password
18:25:37 <ehird> :P
18:25:49 <Slereah-> My password is not secure.
18:25:51 <Slereah-> Like not at all.
18:26:03 -!- Slereah_ has quit (Read error: 113 (No route to host)).
18:26:10 <Slereah-> It's a fucking IRC password dude
18:26:15 <Slereah-> I only use it to...
18:26:26 <Slereah-> Well, I don't remember why I need it for on freenode
18:27:12 <ais523> Slereah-: to stop other people doing this:
18:27:14 -!- ais523 has changed nick to Slereah.
18:27:25 <Slereah-> OH SHI-
18:27:27 -!- Slereah has changed nick to ais523.
18:27:30 <Slereah-> MY OWN CLONE!
18:27:38 <Slereah-> NOW NEITHER OF US WILL BE VIRGINS!
18:27:39 <Slereah-> ais523
18:27:46 <Slereah-> You know why that's a stupid argument?
18:27:49 <ehird> i think he stopped being your clone
18:28:02 <Slereah-> Because Freenode doesn't actually require you to enter your password
18:28:10 <Slereah-> I never enter it, and they never kick me out
18:28:20 <ehird> people can check with nickserv if you're logged in.
18:28:26 <ais523> Slereah-: some things do require an entered password
18:28:31 <Slereah-> Yes.
18:28:35 <ais523> for instance, many people won't receive /msgs from you if you aren't identified
18:28:37 <Slereah-> But not the things I usually do
18:28:46 <ais523> and you need one to kick off someone else who's using your nick
18:28:52 <Slereah-> It's also why I actually registered it
18:28:56 <Slereah-> For those rare instances.
18:30:35 <Slereah-> Plus, you can impersonate me if you want.
18:30:51 <Slereah-> To see for yourself, just for one moment, how awesome it is to be me.
18:39:50 -!- oerjan has changed nick to Slereah.
18:40:00 <Slereah> ooh, flashy
18:40:05 -!- Slereah has changed nick to oerjan.
18:40:20 <Slereah-> You're a fraud!
18:40:23 <Slereah-> A phony!
18:40:25 <Slereah-> A fake!
18:40:29 <Slereah-> An impostor!
18:40:49 <oerjan> you're hyphenated!
18:41:07 -!- jix_ has quit ("Computer has gone to sleep").
18:41:51 -!- Slereah- has changed nick to Slereah.
18:41:54 <Slereah> AM I?
18:43:08 * oerjan picks up the dropped hyphen and adds it to the swatter -----###
18:43:51 <ais523> aargh
18:48:18 <Slereah> ehird
18:48:23 <Slereah> What's the source of the topic
18:48:25 <ais523> wait, which Slereah is which?
18:48:43 <Slereah> I am Pedro Sanchez Villalobo.
18:49:26 * oerjan is suspicious, that doesn't sound french
18:49:43 <Slereah> Neither does your FACE
18:49:59 <oklopol> o
18:50:14 <oerjan> now i'm even more suspicious, maybe you're really GregorR
18:50:33 <Slereah> Is Gregor a mootxican?
18:51:24 <oerjan> hm "Pedro Sanchez Villalobo" gives only one google hit, in french
18:51:33 <oerjan> i guess it's french after all, then
18:51:35 <Slereah> Weird.
18:51:53 <Slereah> IIRC, it was the name of the ape general in Critter Commando
18:51:56 <Slereah> Lemme check
19:00:50 <Slereah> "The government in Los Estados Unidos Banana de Republico is like an industrial machine, 3000 revolutions a minute!"
19:05:03 <GregorR> The United States Banana of Republic?
19:05:22 * oerjan is reminded of the Junta boardgame
19:05:47 <ais523> ugh, not that, I played it once and the other players got annoyed with me for not getting into the spirit of the thing
19:05:51 <ais523> I played it far too honestly
19:05:51 <lament> villalobos
19:06:00 <ais523> admitted secret political donations, that sort of thing
19:06:34 <oerjan> that was "Republica de los Bananas", though
19:07:56 <oerjan> ais523: well, annoying the other players _is_ part of the spirit of the game :D
19:08:05 <oerjan> maybe not in that way, though
19:09:06 <GregorR> Mmmmmmmmmmmmmmoxie.
19:12:17 -!- Sgeo has joined.
19:13:37 <oerjan> hmph as i suspected, banana is feminine in spanish
19:15:30 <Slereah> It's pretty phallic looking though!
19:15:39 <oerjan> you'd think
19:18:21 <oerjan> i vaguely recall occasionally reading about some muslims having trouble with it
19:18:52 <oerjan> not allowing women to eat it undivided, that sort of thing
19:19:03 <Slereah> Ouch.
19:19:09 <Slereah> It hurts my penis to think of it
19:28:43 <Slereah> Sooooo
19:28:50 <Slereah> Anyone knows the source of the topic?
19:30:18 -!- jix has joined.
19:31:50 <oerjan> google gives: http://www.angryhacker.com/blog/archive/2008/10/09/is-google-the-new-real-networks.aspx
19:33:18 <Slereah> Heh.
19:33:22 <Slereah> It's true. Real Player must die.
19:33:44 <Slereah> Although it's full of nostalgia.
19:33:46 <Slereah> You know something?
19:34:00 <Slereah> Real player was the first format I ever got pirated TV shows.
19:34:11 <Slereah> Back in... 2001?
19:34:23 <Slereah> South Park episodes, under 20 MB.
19:34:31 <Slereah> Smallest one is barely 6MB
19:34:34 <Slereah> For 20 minutes.
19:43:09 -!- sorear has joined.
19:56:41 -!- Corun has joined.
20:01:32 <oerjan> http://brainlessworld.files.wordpress.com/2007/11/dehydrated-water.jpg
20:03:02 <Slereah> Heh.
20:03:03 <Slereah> Cute.
20:05:15 <ehird> http://www.buydehydratedwater.com/
20:05:43 <ais523> is that what you get from mineral/tap water if you remove all the H2O and are left only with the minerals dissolved in it?
20:05:51 <ehird> ais523: no, it's water without the wate
20:05:51 <ehird> r
20:06:06 <ehird> http://buydehydratedwater.com/shop/index.php?main_page=product_info&products_id=5 mega gift indulgence pack
20:06:16 <ehird> http://buydehydratedwater.com/shop/index.php?main_page=product_info&products_id=9 do it yourself guide
20:06:21 <Slereah> Yo dawg I heard you like water so I put water in yo water so you can drink while you drink
20:06:28 <ehird> http://buydehydratedwater.com/shop/index.php?main_page=product_info&products_id=8 book of practical uses
20:07:10 <Slereah> This book would be a great gift.
20:07:16 <Slereah> Sort of a "fuck you" gift
20:20:08 -!- KingOfKarlsruhe has joined.
20:25:45 <Slereah> Hello KING
20:25:50 <Slereah> How's the kingdom?
20:26:16 <ais523> Slereah: for some reason that seemed crazily sarcastic to me
20:26:21 <ais523> even though probably it wasn't meant to be
20:26:39 <Slereah> Hey, I'm no king hater dude
20:26:52 <Slereah> I'm more royalist than the king!
20:28:36 -!- atrapado has joined.
20:33:41 <Sgeo> Should I work on updating PSOX to Py3K?
20:33:56 <ais523> Sgeo: I'm not entirely certain anyone will care either way
20:34:01 <ehird> Sgeo: MP
20:34:02 <ehird> NO
20:34:09 * Sgeo was kidding
20:34:17 <ehird> Sgeo: DO NOT JOKE ABOUT SUCH MATTERS DAMNIT
20:34:39 <ehird> you'll give me a heart attack
20:34:40 <ehird> sheesh
20:35:24 <ais523> ehird: why would it be that disastrous?
20:35:35 <ehird> ais523: NEVER SAY ANOTHER WORD TO ME ABOUT PSOX
20:35:38 <ehird> :O
20:35:45 <ais523> ehird: you need help, obviously
20:35:50 <ais523> there's nothing wrong with mentioning PSOX
20:35:54 <ehird> AAAAAAAAAAAAAAAAAAAAAAAAAAAH
20:36:05 <ehird> I WILL KILL YOU WHILE YOU SLEEP
20:36:12 <ais523> don't, please
20:36:21 <ais523> that would be kind of weird, scary and illegal
20:36:29 <ehird> AND PSOX
20:36:30 <Sgeo> ehird, would it give you pain to remind you that you contributed to PSOX?
20:36:35 <ehird> Sgeo: yeah, one line
20:36:38 <ehird> when i thought you got some sanity
20:36:40 <ais523> which line was it?
20:36:47 <ehird> actually wait
20:36:49 <ehird> ais523: more like -50 lines
20:36:54 <ehird> as i removed the stupid-shit safety crap
20:36:54 <ehird> :P
20:37:01 <ais523> oh, you added a negative number of lines
20:37:15 <ehird> i improved it by making there be less of it
20:37:37 <Sgeo> You also gave me the names of some stuff in the type system
20:37:52 <ehird> no
20:37:57 <ehird> i advocated getting rid of the type system
20:39:25 <oklopol> stop fighting let's all be friends
20:39:34 <ehird> oklopol: you just don't get PSOX
20:39:54 <oklopol> yes my one weakness :'(
20:42:46 -!- oerjan has set topic: http://tunes.org/~nef/logs/esoteric | i improved it by making there be less of it.
21:00:52 -!- kar8nga has joined.
21:21:49 * ehird considers switching to haskell as his go-to language
21:23:19 <sorear> at least add it... it royally sucks for most sorts of I/O problems but it's great for the calculator job above bc
21:23:46 <sorear> pretty much all my one-off problems are solved with either perl or haskell
21:24:13 <ehird> I used to use haskell quite a lot; I just need to get more to grips with structuring actual programs in it.
21:24:22 <ehird> Right now I generally just hack something up in Python.
21:26:41 <Warrigal> Hi, sorear.
21:26:54 <sorear> Hi?
21:27:11 <ais523> hey, sorear's been in here all along and I didn't notice
21:27:26 <sorear> ais523: turn off join muting
21:27:38 <sorear> I've been here all of 1:30
21:27:49 <ehird> I forget who sorear is? :P
21:28:00 <sorear> A person.
21:28:06 <ehird> I kind of inferred that much.
21:28:07 <sorear> Not a terribly remarkable one.
21:28:21 <Warrigal> Something like Stephan O'Rear, if I remember correctly.
21:28:24 <ais523> I don't have it on, but my bouncer misses joins sometimes anyway
21:28:39 <ais523> I know sorear from TAEB
21:28:41 <sorear> something like that
21:28:42 * ehird grrs at haskell for not letting me use the field name 'name' in two `data`s
21:28:49 <ehird> oh, taeb, right
21:29:10 * sorear greps his giant pile of logs for 'ihope'
21:29:26 <Warrigal> I'm in there somewhere.
21:29:39 <sorear> #haskell, figures
21:29:53 <ehird> Wtf, Warrigal is connected from normish
21:29:53 <ehird> XD
21:30:44 <Warrigal> And that's how I've been connected for a couple days, a feat I could never manage on home computers.
21:32:06 <ehird> Damnit, my haskell code treats into right-margin-indent hell and over-paren hell again.
21:32:12 <ehird> Maybe I should try, you know, splitting up my functions.
21:32:38 <sorear> If it's not a one-liner it _probably_ needs to be factored
21:32:55 <ehird> I'm terrible at factoring stuff.
21:36:11 <ehird> Heh. I factored my code and it looks even uglier.
21:36:34 <ais523> you should see some of my Prolog
21:36:38 <ehird> That's some feat.
21:36:43 <ais523> recently I've been doing quite a lot of defactoring
21:36:46 <ais523> for imperativy stuff
21:36:52 <ais523> lots of nested parens for ; and ->
21:36:57 <ehird> http://hpaste.org/12698 <-- Awful, awful, awful looking.
21:38:22 <oerjan> might try some list comprehensions
21:38:44 <ehird> oerjan: Well, the thing that really sticks out before the other ugly is initialCurrencies
21:38:52 <ehird> having names in a separate line all by itself, and the crazy-indent of the Currency values.
21:40:24 <Sgeo> Why are rates Maybe Integers?
21:40:37 <Sgeo> You're tracking currencies that aren't in the PBA?
21:40:40 <ehird> Sgeo: The PBA can conceivably be given assets that aren't currencies. :P
21:40:47 <ehird> You could do it right now, fr'instance.
21:40:51 <Sgeo> oh
21:40:59 <ehird> Although technically I do not have to track them, I feel like I should.
21:41:49 * Sgeo should learn Haskell, well, at least know it more than just knowing a stupid pun
21:41:55 <ehird> I should show that to the #haskell folks so that they kill me.
21:42:50 <ehird> Someone rate this idea.
21:43:07 <Sgeo> 10
21:44:49 <oerjan> ehird: i annotated, although maybe it got too wide
21:45:13 <ehird> oerjan: a bit better, but everything below initialcurrencies is still blergh
21:45:32 <ehird> "Transform your code into pointless form to make it beautiful. :)" -- stunning advice of #haskell
21:45:46 <ehird> oerjan: also, it occurs to me that the list comprehension is actually pretty unneeded there
21:45:53 <ehird> i mean, you're not actually using any list comprehension features.
21:46:12 <oerjan> just for prettyness, of course
21:46:17 <Sgeo> What would pointfree form actually change?
21:46:26 <ehird> Sgeo: it would make it look awful.
21:46:44 <Sgeo> I don't even see where in the code the changes would be
21:46:50 <Sgeo> But remember I'm a Haskell n00b
21:46:54 <oerjan> (\k -> k ++ " credit") == (++ " credit")
21:47:03 <lament> everything should be as pointless as possible, but no pointlesser.
21:47:32 <oerjan> that's at least one place where pointless is better
21:47:44 <ehird> oerjan: oh, true
21:48:29 <ehird> also oerjan
21:48:32 <ehird> yours is over 80 charactrs
21:48:33 <ehird> :(
21:48:40 <ehird> i.e. i have to do more pig-ugly wrapping
21:49:52 <oerjan> right i was afraid Currency { ... } did not fit even with starting further left
21:50:50 <AnMaster> hm
21:50:51 <AnMaster> hi
21:50:56 <AnMaster> ais523, hello
21:50:58 * Sgeo doesn't worry about wrapping in his Agora proposals, obviously
21:51:30 <ehird> {{@pl \i -> show i ++ " crop"
21:51:30 <ehird> [21:50] lambdabot:
21:51:30 <ehird> (++ " crop") . show}}
21:51:35 <ehird> "your code will be better if you make it more obscure."
21:53:18 <lament> ehird: why are your credits notes?
21:53:52 <ehird> lament: It's for Agora Nomic. Notes are the rules-sanctioned non-transferrable currency. Note Credits are a hack that makes them sort-of-transferrable in practice.
21:54:00 <ehird> (user-made)
21:54:05 <lament> ah.
21:54:07 <ehird> (er, player-made :p)
21:54:31 <lament> why are some sharps and some flats?
21:54:48 <ehird> lament: the most common usage that I can see. Annoyingly for someone who is musically retarded (me), people like switching between the two in actions.
21:54:59 <lament> hehe
21:55:22 <Sgeo> Let's all just use #
21:55:28 <lament> i'd rather keep it consistent
21:55:31 <lament> in the program at least
21:55:44 <ehird> lament: would you go with sharps or flats :P
21:55:58 <lament> i would throw a coin
21:56:04 <lament> and then i would crawl around for hours trying to find it
21:56:12 <lament> and then i would forget why i'm doing that
21:56:17 <lament> and then i'd go drink some tea
21:56:23 <Sgeo> ehird, ooh, look, nice
21:56:29 <ehird> lament's life sounds exciting
21:56:55 <lament> about as exciting as garfieldminusgarfield
21:58:19 <ehird> so, in trying to make my code prettier with #haskell's help, i have made it uglier
21:58:21 <ehird> WOO HOO
21:58:34 <Sgeo> ehird, http://hpaste.org/12698#a4 is pretty
21:58:55 <ehird> it would have been nice if someone linked me to that
21:59:00 <ehird> but errrrr
21:59:02 <ehird> that's not pretty.
21:59:09 <ehird> that's ugly.
21:59:15 <Sgeo> How is it ugly
21:59:22 <Sgeo> You want more than whitespace stuff changed?
21:59:39 <lament> it's ugly because it's in Haskell.
21:59:40 <ehird> it's way too slim and vertical for no real reason, it's inconsistent in its indentation and it's hard to read
21:59:48 <ehird> lament: yes, we know, you hate haskell
22:00:30 <Sgeo> ehird, it's easy for me to read
22:00:38 <ehird> maybe you're blind.
22:00:59 <Sgeo> Easier than the others, at least
22:01:03 <oerjan> it's definitely inconsistent, some bug there
22:01:36 <oerjan> one option is not to start to the right of the where
22:01:41 <ehird> <ozy`> Sgeo: wait, are you Sgeo?
22:01:52 <ais523> ?
22:01:58 <ehird> from #haskell
22:02:12 <ais523> and was he Sgeo?
22:02:17 <ehird> I don't know :P
22:02:32 <ehird> I HATE HASKELL-MODE AND ITS GODDAMN "WHAT PEOPLE NEVER INDENT SUBEXPRESSIONS"
22:02:48 <ehird> TYPING FOUR SPACES MANUALLY! WHAT! THIS IS 2008
22:04:13 <lament> don't use haskell then
22:04:30 <ehird> gee, is lament talking about haskell sucks
22:04:31 <ehird> that's new
22:04:54 <oerjan> ehird: new try
22:05:20 <oerjan> what the
22:05:23 <ehird> oerjan: that's some serverely messed up intendation
22:05:25 <ehird> also, http://hpaste.org/12698#a6 my new try
22:06:00 <oerjan> i don't know what happened with the crops and credits lines
22:06:03 <oklopol> http://www.vjn.fi/pb/p252251216.txt
22:06:13 <ehird> oklopol: make my haskell look nice
22:06:32 <lament> convert it to C#
22:06:32 <oerjan> somehow i managed to make the same bug as that consonanty guy
22:06:39 <ehird> lament: no
22:07:09 <oerjan> oklopol: NO THAT IS FORBIDDEN
22:10:50 <ehird> so lament which language do YOU use :P
22:14:06 <ehird> hok
22:14:09 <ehird> hey oklopol
22:14:14 <ehird> DOT ACTION 2
22:14:28 <ais523> INTERCAL!
22:16:29 <oklopol> :)
22:16:38 <oklopol> oh it's short for action, of course...
22:16:49 <oklopol> i just thought it was "dot, act 2"
22:16:50 <oklopol> xD
22:16:54 <ehird> XD
22:17:24 <oerjan> would you want to meet someone in a dark alley who thought that INTERCAL was beautiful?
22:17:48 <ais523> quite possibly, they'd be less likely to hurt me than someone who had never heard of INTERCAL
22:17:58 <oklopol> i agree with ais523
22:18:18 <ais523> fwiw, they'd be quite likely to know who I was
22:18:37 <oerjan> lessee, would you use a plastic surgeon who thought that INTERCAL was beautiful?
22:18:56 <oerjan> the risk of ending up like a picasso painting...
22:19:39 <oklopol> that's another clear yes
22:20:04 <oerjan> i was afraid of that
22:20:22 <ais523> I'm not convinced I'd use a plastic surgeon at all
22:20:26 -!- atrapado has quit ("Abandonando").
22:20:44 <oklopol> well me neither
22:21:14 <oklopol> i'm pretty enough <3
22:21:28 <fizzie> oklopol: Not as pretty as INTERCAL!
22:21:50 <ehird> "That pig ugly code is perfect" -- #haskell
22:22:10 <ais523> ehird: everyone seems to disagree with your sense of aesthetics is the problem
22:22:22 <ehird> ais523: do you think that code looks nice?
22:22:31 <ais523> which one?
22:22:51 <ehird> http://hpaste.org/12698#a6
22:23:07 <ais523> it's a bit wide
22:23:20 <ais523> things like ["C", "C#", "D", "D#", "E", "F", "F#", "G", "Ab", "A", "Bb", "B"] look bad on one line
22:23:24 <ehird> <yitz> Cale: looks like something to do with optimizing political gain in return for payoffs
22:23:31 <ehird> -- #haskell on what my code goes
22:23:32 <ais523> because they don't fit in with their surroundings
22:23:48 <ais523> do they know about nomic?
22:23:55 <ehird> i haven't told them a thing
22:23:56 <ehird> XD
22:24:21 <ehird> bah
22:24:24 <ehird> Sgeo: you ruined all the fun
22:24:27 <ehird> that's all you ever do
22:24:33 <oerjan> hm, what do you do with water rights in agora anyway? :D
22:24:37 -!- ehird has left (?).
22:24:47 <ais523> oerjan: they prevent ranches drying up
22:24:52 <ais523> ranches generate numbers
22:24:56 <ais523> which can be used to score points
22:25:11 <ais523> WRV are generally considered to be the most useful stable Agoran asset at the moment
22:26:28 <oerjan> aha
22:27:25 <Sgeo> <yitz> it's a script kiddie bot?
22:27:39 <Sgeo> I post the link to it's page on the Notary wiki
22:27:40 <Sgeo> <yitz> that screen shot looks like scores of simultaneous ssh login attempts
22:27:40 <ais523> someone should disillusion them about that
22:41:48 -!- oklokok has joined.
22:42:15 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
22:43:17 <Warrigal> Who's been including D# along with Ab and Bb?
22:44:46 <lament> clearly they should have infinitely many notes :)
22:45:26 * oerjan swats lament -----###
22:45:35 <oerjan> just to test the new hyphen, you see
22:46:47 -!- kar8nga has left (?).
22:47:42 <lament> it looks just like the old hyphen
22:48:17 <ais523> lament: well yes, it was a perfect fit
22:48:26 <ais523> there's one more hyphen in the swatter than before
22:48:35 <ais523> oerjan stole it off Slereah-
22:48:44 <ais523> well, took it as it was unused
22:50:34 <Slereah> I took your wallet, since you weren't using it
23:17:55 -!- oklopol has joined.
23:19:15 -!- oklokok has quit (Read error: 104 (Connection reset by peer)).
23:21:27 -!- jix has quit ("...").
23:25:53 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
23:25:58 -!- oklopol has joined.
23:31:36 -!- Corun has quit ("Leaving").
23:38:00 -!- KingOfKarlsruhe has quit (Remote closed the connection).
2008-12-05
00:13:40 -!- oerjan has quit ("Good night").
00:14:52 -!- olsner has quit ("Leaving").
00:24:34 -!- Corun has joined.
00:36:27 -!- GreaseMonkey has joined.
00:56:18 -!- Dewi has joined.
01:03:45 -!- ehird has joined.
01:06:03 -!- Asztal_ has joined.
01:09:07 -!- Asztal_ has quit (Client Quit).
01:22:08 <MizardX> http://www.vjn.fi/pb/p561556134.txt :)
01:26:24 <Sgeo> ?
01:28:27 <Sgeo> ValueError: generator already executing
02:22:01 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
02:54:25 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
02:54:52 -!- Corun has quit ("Leaving").
03:15:42 <GregorR> My cat seems to be hibernating for the winter :P
03:15:58 <GregorR> She woke up to eat today, then went back to sleep. That was her entire day :P
03:17:41 <Warrigal> Doesn't count.
03:17:53 * Warrigal pushes the big red button
03:19:18 <Sgeo> http://www.albinoblacksheep.com/flash/dumbbell this button?
03:23:10 <jayCampbell> that was nice
03:23:26 <jayCampbell> would have been cooler if he'd written the sign himself before passign out
03:26:41 <Sgeo> But that would mean he woke up and saw a blank sign?
03:29:04 <Sgeo> Unless he was briefly conscious when going to the other side, and drew on that sign, then woke up forgetting?
03:29:08 <Sgeo> That'd be less dramatic though
03:29:13 * Sgeo pokes Warrigal
03:32:46 <Sgeo> TmsT animations are awesome
04:02:48 -!- GreaseMonkey has joined.
04:05:34 -!- Asztal has joined.
04:24:28 <Warrigal> Mm.
04:24:32 <Warrigal> TmsT?
04:25:42 -!- Corun has joined.
04:37:12 -!- Corun has quit ("This computer has gone to sleep").
05:09:43 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
05:21:58 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
05:41:26 -!- GreaseMonkey has joined.
05:53:50 -!- pikhq has quit (Read error: 113 (No route to host)).
05:54:00 -!- pikhq has joined.
06:11:02 -!- GreaseMonkey has quit ("You only need one wheel. Bikers are just greedy.").
07:19:02 -!- olsner has joined.
07:48:06 -!- Warrigal has quit (Remote closed the connection).
07:48:10 -!- Warrigal has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:27:45 -!- oklopol has quit (Success).
08:29:29 -!- Slereah_ has joined.
08:33:40 -!- Slereah has quit (Read error: 60 (Operation timed out)).
08:59:20 -!- Slereah_ has quit (Read error: 113 (No route to host)).
09:01:08 -!- olsner has quit ("Leaving").
09:35:42 -!- Slereah_ has joined.
09:42:07 -!- oklopol has joined.
09:47:15 -!- Slereah has joined.
10:01:12 -!- oerjan has joined.
10:05:49 -!- Slereah_ has quit (Read error: 113 (No route to host)).
10:05:58 -!- Slereah_ has joined.
10:05:59 -!- Slereah_ has changed nick to Slereah-.
10:08:41 -!- Slereah has quit (Read error: 113 (No route to host)).
10:09:48 -!- oklopol has quit (Read error: 113 (No route to host)).
10:09:51 -!- oklokok has joined.
10:16:51 -!- Slereah has joined.
10:29:58 -!- oklokok has quit (No route to host).
10:35:15 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
10:41:25 -!- Slereah- has joined.
10:47:37 -!- Slereah has quit (Read error: 60 (Operation timed out)).
10:59:31 -!- Slereah has joined.
11:16:35 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
11:30:31 -!- Slereah- has joined.
11:39:27 -!- Slereah has quit (Read error: 148 (No route to host)).
11:39:48 -!- Slereah has joined.
11:44:25 -!- Slereah- has quit (Read error: 60 (Operation timed out)).
11:44:36 -!- Slereah- has joined.
11:49:52 -!- nooga has joined.
11:50:15 <nooga> don't you know is there a fast way to obtain file's path from inode?
11:53:44 <ais523> nooga: which one
11:53:48 <ais523> an inode can have more than one path
11:54:00 <ais523> and IIRC, there's no way to find its paths apart from by searching the entire filesystem
11:54:08 <ais523> most filesystems can't easily determine the other end of a hard link for that reason
12:03:04 -!- Slereah has quit (Read error: 113 (No route to host)).
12:05:17 -!- Slereah- has quit (Read error: 113 (No route to host)).
12:08:35 -!- oklopol has joined.
13:50:36 -!- KingOfKarlsruhe has joined.
13:52:08 -!- Corun has joined.
13:54:30 <pgimeno> nooga: find
13:59:31 <ehird> oklopol: hi
14:06:02 <oklopol> hi
14:10:37 <ehird> hmm
14:10:40 <ehird> i forgot what i was gonna say
14:10:41 <ehird> :DDDDDD
14:16:13 <oklopol> :)
14:16:22 <oklopol> i needs to eat now
14:20:59 -!- oerjan has quit ("leaving").
14:23:25 <ehird> wb ais523
14:27:26 -!- Corun has quit ("This computer has gone to sleep").
14:34:53 -!- Slereah- has joined.
14:42:31 <oklopol> ^bool can i write stuff here
14:42:37 <oklopol> can't, huh.
14:42:42 <oklopol> well anyway, should i watch?
14:42:44 <oklopol> ^bool
14:42:44 <fungot> Yes.
14:42:44 <ais523> ^bool
14:42:44 <fungot> Yes.
14:42:54 <ais523> watch what?
14:42:55 <oklopol> that's quite a yes.
14:43:05 <oklopol> i'm watching family guy, i don't really have anything else atm
14:43:35 <oklopol> seen these episodes like 20 times each, so this is mostly so i don't have to do anything else.
14:44:04 <oklopol> i'm very tired, and i have a lot to read so i can't really sleep the 4 hours i need
14:44:24 <ais523> why not just read, then
14:44:52 <oklopol> i'd have to open the browser.
14:45:17 <oklopol> i doubt you could ever understand just how lazy i can be.
14:46:14 <ais523> oklopol: would it help if I sent you a link over IRC you could click on?
14:46:33 <oklopol> yes
14:46:52 <oklopol> but then there's the password i'd have to type and all that.
14:48:28 <ehird> oklopol: but you're typing on irc
14:48:36 <oklopol> yes
14:48:38 <oklopol> so?
14:48:43 <ehird> ;P
14:48:46 <ehird> *:P
14:49:13 <oklopol> that's not productive. i can do that no matter how tired i am.
14:58:43 -!- Corun has joined.
15:17:52 -!- KingOfKarlsruhe has quit (Remote closed the connection).
15:22:49 <ehird> http://www.baconbuzz.com/ <-- the bacon reddit now has a theme. and a domain.
15:22:59 <ehird> when will the madness end?!
15:23:29 <ais523> is a bacon reddit a better or stupider idea than lolcode?
15:25:16 <ais523> hmm... someone put an ASCII rickroll on reddit
15:25:20 <ais523> just pasted the lyrics to the song
15:25:25 <ais523> somehow I don't think that counts
15:25:36 <ehird> ais523: WE'RE NO STRANGERS TO LOVE
15:25:43 <ehird> nowhere is safe
15:26:35 <ais523> that's hardly a proper rickroll...
15:27:19 <ehird> ais523: sorry, I'll continue
15:27:23 <ehird> YOU KNOW THE RULES, AND SO DO I
15:27:28 <ehird> A FULL COMMITMENT'S WHAT I'M THINKING OF
15:27:31 <ais523> still, video or it doesn't coutn
15:27:31 <ehird> YOU WOULDN'T GET THIS FROM ANY OTHER GUY
15:27:33 <ais523> *count
15:27:36 <ehird> I JUST WANNA TELL YOU HOW I'M FEELING
15:27:38 <ehird> GOTTA MAKE YOU UNDERSTAND
15:27:39 <ais523> also, IRC has /ignore
15:27:43 <ehird> NEVER GONNA GIVE YOU UP, NEVER GONNA LET YOU DOWN
15:27:47 <ais523> but then, I suppose you could just stop watching the rickroll
15:27:48 <ehird> ais523: web has /etc/hosts
15:27:49 <ais523> after a bit
15:27:58 <ais523> ehird: /etc/hosts is no good at blocking rickrolls
15:28:03 <ehird> also, I recited all of that from memory
15:28:07 <ehird> ais523: youtube.com 127.0.0.1
15:28:08 <ais523> as everyone knows there are an infinite number of rickrolls on the internet
15:28:14 <ehird> would snap most of them
15:28:16 <ais523> but you only have finitely much /etc/hosts space
15:28:22 <ais523> but agreed, most of them are on youtube
15:28:22 <ehird> well, true.
15:28:28 <ehird> Rick Astley theory,.
15:28:36 <ais523> come to think of it, it would be pretty hard to write a rickroll that would actually show up on my computer
15:28:44 <ais523> you'd have to use .ogg, SVG or javascript
15:28:52 <ais523> and even then noscript would block all those by default
15:29:00 <ehird> SVG rickroll
15:29:01 <ehird> brilliant
15:29:04 <ais523> so you'd have to persuade me to let them through as well, although that might not be hard
15:29:08 <ehird> ais523: actually
15:29:12 -!- Slereah- has quit (Read error: 60 (Operation timed out)).
15:29:23 <ehird> just use the table-full-of-1px-large-elements trick
15:29:26 <ehird> and a meta refresh
15:29:29 <ehird> dunno about the music, though
15:29:40 <ais523> meta refresh? for /video/?
15:29:52 <ais523> are you mad? no connection has a latency low enough to get a plausible frame rate like that
15:30:06 <ais523> part from possibly if the browser and the server were the same computer
15:30:10 <ehird> ais523: who says it can't be laggy?
15:30:11 -!- WOLD has joined.
15:30:17 <ais523> it would be a very very slow rickroll
15:30:20 -!- WOLD has left (?).
15:30:26 <ehird> it displays rick astley on yoru screen, and he acts out the video to never gonna give you up
15:30:34 <ehird> the only requirement is something that can be recognized as the song
15:30:40 <ehird> maybe sheet music along the bottom
15:31:05 <ais523> hmm... /me invokes rule 34 on rickrolls
15:31:09 <ais523> although I don't want to see the results
15:31:28 <ehird> surely exists
15:31:32 <ais523> yes, surely
15:31:41 <ais523> that's what rule 34's all about
15:31:48 <ehird> well, i mean
15:31:51 <ais523> even without the rule, though, "that must exist" is an ingrained reflex
15:31:55 <ais523> rule 34 just formalises it
15:32:00 <ehird> the projection into digital form must surely exist
15:32:01 <ehird> already
15:32:02 <ais523> it's inductive reasoning
15:32:04 <ais523> and yes
15:32:41 <ehird> google shows nothing
15:32:59 <ais523> ehird: now everyone's going to wonder why you were googling rickroll porn
15:33:09 <ais523> and Google will show you rickroll-porn-related adverts
15:33:11 <ehird> because of the previous lines? :P
15:33:20 <ais523> because of that one search
15:33:28 <ehird> i hope it shows up on the google big lcd with searches in realtime
15:33:33 <ais523> also, how did you know all those lyrics?
15:33:43 <ais523> from being rickrolled a lot?
15:33:52 <ais523> (I assume you don't actually like the song, although I don't know)
15:34:07 <ehird> being rickrolled a lot, yes
15:34:18 <ehird> although the song is catchy in a kind of horrid, earworm-like "MAKE IT STOP" way
15:35:30 <ehird> ugh, rickroll porn is on youtube. i should have guessed. http://uk.youtube.com/watch?v=oHg5SJYRHA0
15:35:37 <ehird> [note - thinly veiled rickroll]
15:35:55 <ais523> ehird: is it rickrolling someone to link them to a rickroll when they ask for something rickroll-related?
15:36:14 <ehird> ais523: i think that's a meta-rickroll
15:36:41 <ais523> I suppose the purest case would be:
15:36:45 <ehird> http://uk.youtube.com/watch?v=qmPmIJyi0sc&feature=related what the fuck, a 2 minute long guide on how to rickroll, with actual terrible acting (not a rickroll, I pledge so)
15:36:54 <ais523> <ais523> can you link me to a rickroll? <ehird> http://uk.youtube.com/watch?v=oHg5SJYRHA0
15:36:58 <ais523> dose that count as rickrolling?
15:37:02 <ais523> *does
15:37:03 <ehird> no, it's expected
15:37:04 <ehird> UNLESS
15:37:06 <ehird> you said it as a joke
15:37:12 <ehird> and it was in the context of you actually wanting another video
15:37:15 <ehird> then the meta-irony would kick in
15:37:40 <ais523> well, what if you didn't link me to a rickroll
15:37:44 <ais523> could that be rickrolling?
15:37:54 <ais523> what about:
15:38:02 <ais523> <ais523> can you link me to a rickroll? <ehird> no, but see http://uk.youtube.com/watch?v=oHg5SJYRHA0 instead, you might be interested in it
15:38:07 <ais523> is that rickrolling?
15:38:17 <ehird> ais523: if you expected it to be that video, it's not
15:38:19 <ehird> if you didn't, it is.
15:48:15 -!- Slereah- has joined.
15:53:37 -!- Slereah has joined.
15:59:23 -!- Corun has quit ("Leaving").
16:12:03 -!- Slereah- has quit (Read error: 110 (Connection timed out)).
16:21:49 -!- Corun has joined.
16:24:16 -!- Ilari has joined.
16:27:10 -!- Slereah- has joined.
16:32:47 -!- nooga has quit ("Lost terminal").
16:35:22 -!- Slereah has quit (Read error: 145 (Connection timed out)).
16:44:28 <AnMaster> ais523, hi
16:44:33 <ais523> hi
16:44:58 <AnMaster> ais523, much to do in "rl" now?
16:45:28 <ais523> still yes in theory for the rest of the week
16:45:36 <ais523> I'm relaxing a bit today, having just completed one assignment
16:45:48 <AnMaster> also I just realized you can over-engineer "stupid" school tasks even outside programming, or such
16:45:53 <AnMaster> music in fact
16:46:41 <AnMaster> at least here you have to take a short course in either music or painting during high school
16:46:44 <AnMaster> now I took music
16:46:54 <ais523> I took a full GCSE in music, only got a B though
16:47:16 <AnMaster> and it was a task to fill in the missing notes, with mostly 4/4 (a few places with 3/4 too)
16:47:32 <AnMaster> and one was enough free form to allow you to fill in mostly anything you wanted
16:47:37 * AnMaster put in some crazy stuff there
16:47:42 <AnMaster> it is perfectly legal
16:47:50 <AnMaster> but I wonder what the teacher will think
16:48:03 <AnMaster> putting a small 3 over a group of notes is so fun :D
16:48:25 <AnMaster> it messes up the whole timing calculation
16:48:39 <ais523> AnMaster: is it written in 8/8 time?
16:48:52 <AnMaster> ais523, no, in 4/4 sadly, that couldn't be changed
16:49:04 <AnMaster> otherwise I would have used something unusual for it too
16:49:04 <jayCampbell> you can change time mid-song
16:49:18 <AnMaster> jayCampbell, well it said "put in *notes* to make the timing right"
16:49:25 <AnMaster> so I didn't dare do that
16:49:31 <jayCampbell> Note: change time here
16:49:36 <ais523> are you messing with grace notes too?
16:49:41 <ais523> apoggieturas are fun
16:49:45 <ais523> because they have a positive length
16:49:52 <ais523> equal to half the length of the next note
16:50:10 <AnMaster> ais523, hm I don't know the English terms for these, just the Swedish
16:50:18 <AnMaster> apoggieturas == the dots after the notes?
16:50:20 <ais523> no
16:50:26 <ais523> apoggietura's a type of grace note
16:50:32 <ais523> so is acciacatura
16:50:41 <ais523> acciacaturas are zero-length notes
16:50:55 <ais523> whereas apoggieturas have a positive length equal to half the length of the note after, which has its length halved
16:51:17 * AnMaster googles to find an image
16:51:41 <AnMaster> aha, *those*
16:51:47 <AnMaster> no I didn't use any grace notes
16:51:55 <AnMaster> mainly I would have been too confused myself
16:52:16 <oklopol> AnMaster: putting a small 3 over a group of notes is so fun :D <<< wut?
16:52:17 <ais523> put in any chords where different notes in the chords had different lengths?
16:52:30 <ais523> oklopol: it makes each note in the group last 2/3 as long
16:52:34 <oklopol> liek, three-in-place-of-two
16:52:36 <oklopol> yeah
16:52:52 <oklopol> that just felt like too much hype over such a common construct
16:52:52 <AnMaster> ais523, yes I did that
16:52:59 * oklopol used about a hundred of those today
16:53:06 <AnMaster> ais523, one issue is the paper you had to fill in on was rather small print
16:53:11 <AnMaster> so it was hard to fit anything
16:54:47 <AnMaster> I couldn't fit this (just giving lengths): 1/8, 1/8, 1/8, 1/8+dot, 1/16, 1/4, 1/8 <binding line to next bar> | 1/16
16:54:53 <AnMaster> too little space for the first
16:55:17 <ais523> that's why you use grace notes, they're half the physical size
16:56:15 <AnMaster> ais523, couldn't have fitted it in there either, the pencil would have to be sharper than possible for it
16:56:32 <ais523> use an electron microscope inkjet priter, then
16:56:42 <AnMaster> ;P
16:57:08 -!- Mony has joined.
16:57:55 <Mony> plop
16:58:09 <oklopol> what will I eat this weekend?
16:58:11 <oklopol> *i
16:58:12 <ais523> </plop>
16:58:23 <ais523> oklopol: you corrected good grammar to bad grammar?
16:58:28 <oklopol> ais523: yes.
16:58:33 <oklopol> it was not my style
16:59:07 <oklopol> however
16:59:13 <oklopol> tell meeee!
16:59:24 <AnMaster> oklopol, Something with pasta maybe?
16:59:35 <ais523> oklopol: I suggest lentil soup
16:59:50 <AnMaster> ais523, lentil(?) soup with pasta?
16:59:57 <ais523> no, not with pasta
17:00:00 <AnMaster> even though I don't know what lentil is, that sounds awful
17:00:02 <ais523> just lentil soup in general
17:00:18 <ais523> AnMaster: lentils are a type of vegetable, they're sort-of like peas but much smaller and orange
17:00:29 <AnMaster> ah found it by interwiki
17:00:31 <AnMaster> linser
17:00:38 <ais523> also, the shells are poisonous, and they're a pain to get off because they're only about 3mm across
17:00:39 <AnMaster> well I never tasted them
17:00:47 <ais523> so you go to a shop and buy lentil soup which has been made properly
17:00:53 <ais523> it works well with tomatoes
17:01:09 <oklopol> how about something with meats?
17:01:11 <AnMaster> ais523, I prefer home made food
17:01:21 <AnMaster> oklopol, pasta with Swedish meatballs?
17:01:28 <oklopol> :D
17:01:32 <oklopol> well can you hand me some
17:01:39 <AnMaster> oklopol, no because I ate them
17:01:43 * AnMaster loves that combo
17:01:44 <oklopol> :<
17:01:59 <AnMaster> had it the day before yesterday
17:02:09 <AnMaster> home made pasta and home made meatballs of course
17:02:11 * oklopol waits for ais523 to mention he's vegetarian
17:02:18 <AnMaster> oklopol, is he?
17:02:18 <oklopol> *they're
17:02:18 <AnMaster> ok
17:02:22 <ehird> oklopol: eat your finger, it's delicious
17:02:26 <ehird> yes, your single finger
17:02:29 <ehird> humans only have one finger, y'know
17:02:40 <ais523> oklopol: I'm not
17:02:40 <oklopol> AnMaster: i don't know whether he is. why do you ask?
17:02:52 <ais523> but there are vegetarian things I like anyway, like lentil soup
17:03:00 <ais523> many of them go well with meat
17:03:14 <ais523> ratatouille does, for instance
17:03:14 <oklopol> ais523: oh, right, you just don't eat junk food
17:03:24 <oklopol> aaaanyway, that you eat weirdly! ;)
17:03:27 <ais523> oklopol: yep, pretty rare for me to eat junk
17:03:48 <oklopol> ehird: i'm not a human, i'm a lizard
17:03:50 <ehird> I'm pretty sure eating junk would make you gay. http://instantrimshot.com/ http://pleasemakeitstop.com/ http://atleastoerjanspunswerefunny
17:03:51 <ehird> .com/
17:03:51 <AnMaster> ais523, I don't know what the opposite of vegitarian would be...
17:03:54 <AnMaster> meatitarian?
17:04:00 <ais523> carnivore
17:04:03 <AnMaster> s/vegi/vege/
17:04:06 <AnMaster> ais523, heh
17:04:22 <AnMaster> well I'm not that much, but I dislike fruit and such
17:04:30 <ais523> I like fruit, and salad
17:04:44 <ais523> I'm strange, I tend to eat healthily via liking the food, rather than for any health reason
17:05:46 <ehird> i'm breatharian!!
17:05:48 <ehird> http://en.wikipedia.org/wiki/Inedia
17:05:51 <ehird> :P
17:07:19 <AnMaster> ais523, I fall in the second category
17:14:12 <oklopol> food doesn't have squat to do with health, the way our bodies evolve over time is all due to the brain.
17:14:24 -!- Corun has quit ("Leaving").
17:14:25 * oklopol believes
17:14:47 <ehird> well yes, but oklopol, you believe in things you think are false
17:14:48 <ehird> :P
17:15:14 <oklopol> how preposteriorly paradogmatic.
17:15:23 <AnMaster> paradogmatic?
17:15:27 <oklopol> yes.
17:15:32 <AnMaster> what does that mean?
17:15:38 <ais523> that isn't a real English word I don't think
17:15:54 <AnMaster> Did you mean: define:paradigmatic
17:15:55 <ais523> but the feeling I get from it is sort of like next to a strong opinion
17:15:56 <oklopol> maybe not, but you know what i meant.
17:16:01 <AnMaster> No definitions were found for paradogmatic.
17:16:13 <AnMaster> oklopol, no I don't
17:16:18 <oklopol> or not, i don't care :)
17:16:19 <ais523> back-translating from the Latin, it means something along the grounds of "not exactly insisting on a strong opinion, but doing something similar and parallel"
17:16:21 <AnMaster> Did you mean: define:pre posteriorly
17:16:21 <AnMaster> No definitions were found for preposteriorly.
17:16:26 <AnMaster> no clue about that
17:16:29 <ehird> paradogmatic: a paragliding, mechanical dog
17:16:30 <ais523> that doesn't really make a whole lot of sense
17:16:48 <ehird> also known as AWESOME
17:16:52 <ais523> AnMaster: "preposteriorly" isn't a real word, but I can back-translate it easily, it means "in a before-afterwards sort of way"
17:17:05 <AnMaster> ais523, that doesn't make sense either
17:17:08 <ais523> well, no
17:17:18 <oklopol> ais523: yes, exactly what i was going for
17:17:19 <ais523> but "before the afterwards" is almost a defined concept
17:17:23 <AnMaster> oklopol, so what did you mean? In common normal words
17:17:38 <ais523> I think oklopol was deliberately coining oxymoronic words to confuse us
17:17:43 <oklopol> AnMaster: actually preposteriorly is there just to explain the latter word.
17:17:50 <AnMaster> oxymoronication?
17:17:53 <AnMaster> or?
17:18:01 <AnMaster> oxymoronicasion?
17:18:03 <AnMaster> hm
17:18:05 <AnMaster> no idea
17:18:09 <ais523> oxymoronic = contradicting itself
17:18:11 <ais523> that is a real word
17:18:14 <AnMaster> ais523, yes I know
17:18:21 <AnMaster> but I was trying to make a word for:
17:18:27 <ehird> aquaidiotic
17:18:32 <AnMaster> "coining oxymoronic words to confuse"
17:18:36 <ais523> ehird: "water stupid"?
17:18:36 <oklopol> oh my god. is it healthy to write a song and then listen to it all day in awe
17:18:39 <AnMaster> wouldn't that be "oxymoronication"?
17:18:40 <AnMaster> like
17:18:41 <ais523> oklopol: yes
17:18:45 <ehird> ais523: :D
17:18:53 <AnMaster> You are oxymoronicating that!
17:18:55 <AnMaster> ais523, ^
17:18:56 <ais523> how very orogenic of you
17:19:20 <ais523> (btw, that is a real word, but hardly a very common one, it means "with a tendency to create mountains")
17:19:30 <AnMaster> Definitions of orogenic on the Web:
17:19:30 <AnMaster> * Pertaining to deformation of a continental margin to the extent that a mountain range is formed.
17:19:32 <AnMaster> ais523, yes
17:19:36 <AnMaster> but what did you mean
17:19:44 <AnMaster> in that meaning?
17:19:54 <ais523> I didn't, I was just throwing in a rare word because it fit
17:19:58 <ais523> it wasn't even a metaphor or anything
17:19:58 <AnMaster> saying "how very orogenic of you" to oklopol I guess?
17:20:00 <AnMaster> or to who?
17:20:04 <ais523> I just said it in general
17:20:06 <AnMaster> ah
17:20:07 <ais523> knowing it was meaningless
17:20:09 <AnMaster> well
17:20:15 <ais523> well, meaningful but pointless
17:20:20 <AnMaster> ais523, would it be "oxymoronication" or "oxymoronicasion"?
17:20:21 <oklopol> i feel pretty orogenic listening to this song.
17:20:31 <ais523> AnMaster: probably the first
17:20:33 <AnMaster> ok
17:20:38 <ais523> but I prefer "oxymoronification"
17:20:42 <oklopol> (7 guitarrrs)
17:20:50 <AnMaster> ais523, ah may indeed be better
17:20:53 * ais523 waits for oklopol to create a mountain
17:21:00 <oklopol> ais523: not literally.
17:21:07 <AnMaster> would it be, "you are oxymoronificing that sentence"?
17:21:08 <AnMaster> or what
17:21:13 <oklopol> mountains are massive majestetic beings.
17:21:21 <AnMaster> can't make out what the verb of that noun would be
17:21:35 <ais523> orogenising
17:21:45 <ais523> not that that's at all a useful word
17:22:02 <AnMaster> ais523, well would it be "oxymoronificing" or what?
17:22:16 <ais523> oh, oxymoronifying
17:22:23 <ais523> the noun was actually derived from that verb
17:22:29 <AnMaster> oh
17:22:29 <AnMaster> ok
17:23:00 <AnMaster> ais523, a pitty you can't combine any number of words into a single word in English
17:23:35 <oklopol> okay i'll listen to this for the third time, *then* i'll do something more productive
17:23:44 <AnMaster> it is so fun to watch any document editor try to insert hypens in a word spanning three lines
17:23:56 <AnMaster> last I checked even tex has troubles with it
17:24:13 <AnMaster> had*
17:24:27 <AnMaster> you can do that in Swedish btw
17:24:41 <oklopol> i recall trying to make word infloop from making automatic reformattings
17:24:55 <AnMaster> oklopol, "infloop"?
17:24:57 <ais523> "a word spanning three lines", either you have a large font or a small page or that's worse than German
17:24:59 <oklopol> AnMaster: yes.
17:25:00 <oklopol> infloop.
17:25:04 <ais523> AnMaster: infinite loop, presumably
17:25:10 <oklopol> yes, i use that all the time
17:25:11 <ais523> I often abbreviate it to infiniloop
17:25:13 <AnMaster> ais523, well it was constructed to be long
17:25:28 <AnMaster> it isn't common
17:25:28 <ais523> but you can make Word loop quite well by typing =rand(200,99) into it and pressing return
17:25:35 <ais523> that's a finite loop, but on slow hardware it can take a while
17:25:36 <AnMaster> ais523, I mean a valid word
17:25:53 <oklopol> ais523: interesting trivia, at least according to our lecturer, that feature was added by a finnish coder.
17:26:02 <oklopol> (iirc)
17:26:05 <AnMaster> haha
17:26:07 <AnMaster> infloop
17:26:10 <AnMaster> that would be fun:
17:26:11 <oklopol> (so very reliable ! :P)
17:26:16 <AnMaster>