←2008-07-20 2008-07-21 2008-07-22→ ↑2008 ↑all
00:01:22 <CakeProphet> oklopol: like... introspection of code behavior?
00:01:56 <CakeProphet> if this calls that, do this?
00:05:22 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
00:19:08 -!- tusho has quit.
00:47:43 <pikhq> Hmm. Question: should I cease my current "stuck in the mountains, not shaved for weeks" look and go back to my usual goatee?
00:48:33 <oklopol> CakeProphet: err
00:48:59 <CakeProphet> pikhq: inbetween
00:49:11 <oklopol> i just mean an object, when created, would get to know if it's only used in simple ways
00:49:19 <CakeProphet> as in...trim it up but don't shave it.
00:49:20 <oklopol> if that can be ensured
00:49:20 <psygnisfive> oklopol your girlfriend is interrogating me! :(
00:49:27 <oklopol> psygnisfive: i know
00:49:29 <psygnisfive> :p
00:49:33 <lilja> hrrrr
00:49:55 <oklopol> pikhq: keep the current one
00:50:10 <CakeProphet> oklopol: hmmm... ah
00:50:18 <CakeProphet> not any language I know of.
00:50:26 -!- bwr has joined.
00:50:28 <pikhq> CakeProphet: But I like having a goatee.
00:50:28 <oklopol> i think that might be interesting.
00:50:44 <pikhq> :p
00:50:54 <CakeProphet> pikhq: trimming does not require the losing of a goatee.
00:50:55 <oklopol> and i always like languages hanging on the edge of being impossible to implement :D
00:51:09 <CakeProphet> oklopol: I could see it being impossible
00:51:14 <CakeProphet> it just wouldn't straightforward, you know.
00:51:17 <oklopol> CakeProphet: it is in general, yes
00:51:25 <CakeProphet> er...
00:51:27 <CakeProphet> *possible
00:51:29 <CakeProphet> ...
00:51:29 <oklopol> but in most cases the object would just get the "no idea how you're used" message
00:51:55 <CakeProphet> well, it depends on what kind of interpreter/compiler you have to.
00:52:00 <CakeProphet> if it's a single-pass interpreter, for example.
00:52:08 <pikhq> CakeProphet: You suggested trimming, but keeping my current look. Which means: trimmed full beard, not a goatee. :p
00:52:11 <CakeProphet> then, I think, you'd need to initialize it at that state.
00:52:42 <oklopol> CakeProphet: i'm not following you.
00:53:01 <oklopol> it would have to be compiled.
00:53:07 <oklopol> well not necessarily
00:53:10 <oklopol> but preferably
00:53:15 <CakeProphet> well... you can't know how an object is used at the point its created... so it would be impossible to give it anything but a don't know message.
00:53:17 <CakeProphet> until later.
00:53:23 <CakeProphet> for a single-pass interpreter, that is
00:53:31 <oklopol> right, yeah, that's not possible.
00:53:40 <oklopol> but it would most likely be compiled
00:53:49 <CakeProphet> if you compile... or do something inbetween... then you can analyze how it is used later... before its created at runtime.
00:53:51 <CakeProphet> yes
00:53:58 <oklopol> yep, that's the idea
00:54:09 <oklopol> i think i'll try adding that to straw
00:54:20 <oklopol> with that and the mutation stuff, it would actually be quite a unique piece of art.
00:55:07 <oklopol> no straw lesson will be given today, in case someone would've been interested
00:55:10 <oklopol> sorry!
00:55:18 <CakeProphet> ...why do I not have links to any of your language specs.
00:55:30 <oklopol> because i rarely spec them
00:56:05 <oklopol> perhaps i could spec straw up at least a bit.
00:58:13 <bwr> is there a link to straw?
00:58:38 <oklopol> there is a link to one short example, but i'm afraid even that is a bit outdated
00:58:52 <oklopol> www.vjn.fi/oklopol/straw.txt
00:59:00 <oklopol> it's a lot more static nowadays
00:59:27 <bwr> ah
00:59:47 <oklopol> but, one of the fun things is already there
01:00:08 <bwr> what's that
01:00:33 <oklopol> basically, if you do "n = 1", you can add 1 to n so that n changes value by doing n._inc
01:00:38 <oklopol> n would be 2 after that
01:00:51 <oklopol> and if you did n.inc, you'd get n+1 without modifying n
01:01:05 <bwr> ah
01:01:13 <oklopol> and the fun part is, you can just write the code to do either of these two, and you can immediately use both ways
01:01:53 <oklopol> compile-time checks for making sure methods without an underscore don't modify the program state
01:02:05 <bwr> oh that's neat
01:02:27 <oklopol> yeah, but that's basically the tip of the iceberg, i have quite a lot of ideas for this one
01:02:50 <oklopol> been piling up the ideas too practical for esolangs into it :P
01:03:12 <bwr> haha
01:04:12 <oklopol> i'll try to write the AverageKeeper class and see if i find a nice way to do the "optimization hints"
01:04:28 <CakeProphet> I have a affinity with languages that use their source code as their primary data structure.
01:04:42 <bwr> like lisp?
01:04:49 <oklopol> bwr: lisp does not do that
01:04:52 <bwr> ok
01:04:54 <CakeProphet> ...yeah
01:04:56 <CakeProphet> was going to say
01:05:00 <bwr> what do you mean then
01:05:10 <CakeProphet> ...dupdog is a very bad example.
01:05:15 <CakeProphet> because it was not thought at all
01:05:15 <oklopol> say befunge without a stack, and just p/g
01:05:22 <oklopol> in case you know befunge
01:05:29 <bwr> yea, i've used befunge
01:05:34 <bwr> but i always used the stack
01:05:52 <oklopol> well p and g set/read a value to/from the program space
01:06:00 <bwr> yea
01:06:02 <bwr> i get it now
01:06:20 <oklopol> basically, that any conceptual memory and instruction pointers would exist in the same space
01:06:28 <oklopol> the von neumann structure i guess
01:06:29 <CakeProphet> dupdog literally just used the entire source code
01:06:30 <CakeProphet> as its state.
01:06:33 <bwr> befunge is the one esolang i have done anything with :P it was fun
01:06:39 -!- garotosopa has joined.
01:06:52 <CakeProphet> I'd like something more structured though.
01:07:02 <oklopol> befunge is quite nice to program, yes
01:07:15 -!- garotosopa has left (?).
01:11:40 <CakeProphet> ...ahahaha... functional dupdog.
01:11:58 <CakeProphet> ggggggggggggggggggggggggg?(gggggggg?gggggggggggggggg?ggggggggggggg?)
01:13:02 <CakeProphet> hmmm...
01:13:10 <CakeProphet> well... if say
01:13:19 <CakeProphet> codehere(codethere)
01:13:32 <CakeProphet> if the instructions in codehere manipulated the code in codethere.
01:13:57 <CakeProphet> ...
01:14:00 <CakeProphet> I'm not sure what I'm thinking.
01:19:03 <CakeProphet> ...nah... not like that.
01:19:23 <CakeProphet> it'd be more like...
01:21:00 <CakeProphet> g > ee ee >> lo < ee < ee
01:21:14 <CakeProphet> the brackets tell you which instructions modify what.
01:21:31 <bwr> are there any befunge compilers that actually compile? the only ones i've seen wrap the befunge in a C interpreter and then you compile it.
01:21:52 <bwr> CakeProphet: that's weird
01:22:01 <oklopol> bwr: it's not really compilable
01:22:21 <bwr> why not?
01:22:23 <CakeProphet> bwr, ...thank you. that is now my cue that I've found a decent idea.
01:22:23 <oklopol> because you have such immense control over the codespace as a 2d structure
01:23:06 <bwr> that doesn't seem like that big of a problem
01:23:45 <bwr> CakeProphet: i'll be interested to see how that works
01:24:20 <oklopol> well at the very least you need to have a compiler in the executable, and you have to have the source there too, in some form, as the code can be changed on the fly.
01:24:34 <CakeProphet> it also gives you the ability to have binary instructions... sort of.
01:24:51 <oklopol> a befunge program can read any byte in the source, so the source must actually exist at runtime.
01:25:08 <bwr> right
01:26:01 <CakeProphet> like "this instruction does such and such if the source code being modified, source code A, contains more instructions than the source code that A modified, source code B"
01:26:19 <CakeProphet> ...
01:26:47 <CakeProphet> so your operands are also your operators.
01:26:56 <bwr> i am confused
01:26:57 <bwr> :P
01:27:11 <CakeProphet> It will have to be /just/ right.
01:27:16 <CakeProphet> otherwise it will be a mess.
01:27:21 <CakeProphet> well
01:27:25 <CakeProphet> it will be a bad mess
01:27:26 <CakeProphet> instead of a good mess.
01:27:28 <CakeProphet> ;)
01:27:45 <CakeProphet> like if make one instruction lt
01:27:51 <CakeProphet> and one instruction tl
01:27:58 <CakeProphet> and some other instructions that reverse words
01:28:06 <CakeProphet> then you have... something.
01:28:56 <CakeProphet> and something like la da la da > de do de do <
01:29:01 <CakeProphet> would be a self-modifying loop.
01:29:04 <CakeProphet> of some... sort.
01:30:45 * CakeProphet is trying to find the eureka moment... where it figures out how everything will become usable.
01:38:29 <psygnisfive> oklopollll
01:38:33 <psygnisfive> your girlfriend likes my voice :(
01:38:35 <psygnisfive> it frightens me
01:38:55 <oklopol> :)
01:39:00 <oklopol> she likes many voices
01:41:54 <psygnisfive> thank god
01:43:47 <oklopol> http://www.vjn.fi/pb/p565622232.txt straw is getting a bit more oklo :)
01:43:59 <oklopol> the rewriting syntax will probably change
01:44:04 <oklopol> at least somewhat
01:44:54 <oklopol> #calls {{ this.getavg( ?s ) }} is the interesting part, special keyword that kinda searches the code for a certain expression
01:45:31 <oklopol> so you'd get a list of calls to the method calculating the average
01:45:42 <oklopol> isn't conceptually all that pretty, but that's not my point anyway here
01:45:47 <oklopol> *not all
01:46:17 <oklopol> i should unify the syntax a bit though
01:46:30 <oklopol> all kinds of prefixes and brackets flying about
01:47:17 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:51:57 <oklopol> http://www.vjn.fi/pb/p464321425.txt dropped the highlevel rewriting, <<<...>>> is now simply a list of occurrances
01:52:24 <oklopol> except as a right-side of a substitution, where it is kinda highlevel again :)
01:53:42 <oklopol> actually @ "dotPrefixed.setvar = <<< this.?var = ?var >>>" the <<<...>>> notates a simple quoted piece of code
01:53:47 -!- cherez has joined.
01:53:50 <oklopol> so guess i should use a different bracket type
01:54:03 -!- cherez has quit (Client Quit).
01:54:23 <oklopol> basically i'm just defining here that you can use the syntax .var in a method's parameter list to set a field
01:56:43 <oklopol> *** separates the two tiers, kinda, if you have n tiers, where n!=1, the first two would be parsed, then the first one run, but all <<<...>>>'s referring to the second code
01:57:01 <oklopol> so you can define new syntax in an imperative fashion in the language itself
01:57:18 <oklopol> this is all a bit ugly in a language where syntax isn't initially simple
01:57:26 <oklopol> but i don't care
01:59:05 -!- cherez has joined.
02:51:24 <CakeProphet> oklopol: if only ASCII had more brackets.
02:51:44 <oklopol> heh
03:05:50 -!- oerjan has joined.
03:31:46 <Slereah__> I don't even know where the curly brackets come from.
03:31:51 <Slereah__> I mean, technically
03:32:06 <Slereah__> They're supposed to enclose multiple lines :o
03:32:20 <Slereah__> Where do those one line curly brackets come from?
03:35:28 <oerjan> mutation
03:35:43 <Slereah__> onoes!
03:35:57 <oerjan> evolution in action
03:35:58 <Slereah__> Wasn't it... INTELLIGENT DESIGN?
03:36:03 <Slereah__> Or at least stupid design
03:36:12 <oerjan> sure it was, before the mutations started
03:37:47 <oerjan> ah it is all clear now. evolution is the work of satan. we were really supposed to all be happy single-celled bacteria
03:38:03 <Slereah__> BACTERIAS?
03:38:06 <CakeProphet> ....why does everyone care about terseness
03:38:16 <CakeProphet> until
03:38:20 <CakeProphet> they define an XML spec.
03:38:22 <oerjan> no, bacteria. the singular is bacterium.
03:38:47 <oklopol> what the fuck http://www.youtube.com/watch?v=Cg1e77lRRjk&NR=1
03:38:49 <oerjan> those were just the prototype
03:39:13 <psygnisfive> 9 squiggles 0?!
03:39:36 <oklopol> that fucking blew my mind
03:39:49 <oklopol> this girl seriously needs a timecube of her own
03:39:56 <psygnisfive> haha
03:39:59 <CakeProphet> rofl
03:39:59 <Slereah__> This seems terribly stupid
03:40:04 <CakeProphet> it does.
03:40:14 <Slereah__> Also her voices echo
03:40:16 <puzzlet> ok i'm watching it
03:40:17 <Slereah__> She must be God
03:40:20 -!- lilja has quit ("KVIrc 3.2.0 'Realia'").
03:40:33 <Slereah__> I can't understand anything she says
03:40:34 <psygnisfive> she might be just talking about vedic junk
03:40:35 <psygnisfive> so..
03:40:47 <oerjan> Slereah__: she could be just using the Royal We
03:40:53 <oklopol> what is this vedic i've been hearing for the past 5 minutes?
03:41:09 <CakeProphet> "dude, if you start at 1 and break a circle into 9 equal parts. 0 IS 9"
03:41:10 <oerjan> vedic == ancient indian, essentially
03:41:13 <Slereah__> Wasn't there a story about Wiener and a squiggle?
03:41:45 <Slereah__> Like he was with a collegue in front of a blackboard with just a squiggly line on it
03:41:47 <psygnisfive> DIGIT SUM LEVEL
03:41:48 <psygnisfive> lmfao
03:41:50 <CakeProphet> OSHI
03:42:09 <oerjan> yes, modulo 9, 9 is a lot like 0
03:42:11 <Slereah__> And they were very absorbed by the reflection
03:42:26 <Slereah__> And no one ever knew what it meants :o
03:42:41 <Slereah__> Of course, it's hard to know with Wiener's anecdotes
03:42:57 <oklopol> i think i should devote my life to killing people who don't know the difference between a number and its base 10 representation.
03:43:10 <psygnisfive> the vedas are stupid
03:43:11 <psygnisfive> sorry
03:43:14 <oklopol> they just get me so fucking angry
03:43:14 <psygnisfive> but they are
03:43:15 <oklopol> :P
03:43:22 <oerjan> was wiener's famous dachshound involved?
03:43:51 <Slereah__> oerjan : It could be!
03:43:57 <Slereah__> Just tell that exact same story around you
03:44:01 <Slereah__> And add the dog
03:44:06 <Slereah__> That's how anecdotes work!
03:44:07 <oerjan> ah
03:44:32 <oklopol> i think i should do a sleep to now sleep. ->
03:44:50 <oerjan> that may be for the best
03:45:14 <psygnisfive> oklopol, is you near your girlfriend?
03:45:33 <oklopol> no
03:45:54 <psygnisfive> oh. nevermind then.
03:46:04 <oklopol> no do tell anyway
03:46:14 <psygnisfive> well its kind of pointless now. :P
03:47:18 <oklopol> yes but tell anyway
03:47:29 <psygnisfive> get off irc, dont be lame. go cuddle.
03:47:34 <psygnisfive> :P
03:47:43 <psygnisfive> obviously not relevant :P
03:47:49 <oklopol> :)
03:48:04 <oklopol> i can cuddle myself
03:48:15 <psygnisfive> pics or it didnt happen.
03:48:43 <oklopol> fresh batch coming soon just ya wait ::::)
03:48:49 <psygnisfive> :D
03:49:05 <oklopol> but seriously, i sleep now, and no, you will not be getting naked pictures tonight :P
03:49:06 <oklopol> ->
03:49:15 <psygnisfive> i dont want naked pictures
03:49:20 * oerjan is reminded of a dilbert cartoon where dilbert cuddles himself in front of camera to convince his mother he has a girlfriend
03:49:21 <psygnisfive> tho i wont refuse them :D
03:53:48 <Slereah__> There was also an episode of Dilbert.
03:53:54 <Slereah__> "Who'd like to hug?"
03:54:02 <Slereah__> And then you see Asok hugging himself.
03:54:08 <Slereah__> "Oh, you mean each other."
03:56:34 <psygnisfive> hahaha
04:01:33 <oklopol> lol, once again some old math problem i heard ages ago pops into my head just as i'm about to sleep, and i just solve it instantly
04:01:52 <oklopol> in case i recall that one problem correctly, would have to ask ihope
04:03:44 <oklopol> i think it was like, basically, you have a 2d tilemap, cell at x,y connected to those (x',y') with abs(x-x')==1 xor abs(y-y')==1
04:03:44 <psygnisfive> whats the problem?
04:03:49 <oklopol> and
04:03:50 <oklopol> err
04:03:57 <psygnisfive> o.o;
04:04:19 <oklopol> you have to find the biggest structure such that by removing a cell there are no connected structures of size n or bigger
04:04:54 <psygnisfive> i dont understand but ok :D
04:05:12 <oklopol> "2d tilemap, cell at x,y connected to those (x',y') with abs(x-x')==1 xor abs(y-y')==1" was a very weird explanation.
04:05:16 <oklopol> err
04:05:17 <oklopol> just
04:05:28 <oklopol> a 2d matrix, like.
04:05:40 <oklopol> so that nodes are connected to their four neighbors
04:05:50 <psygnisfive> ok
04:06:01 <psygnisfive> so a square graph like structure
04:06:13 <oklopol> well yeah i guess
04:06:15 <oklopol> so anyway
04:06:51 <oklopol> he was wondering whether the obvious solution, a cross of height and width 2n+1
04:06:54 <oklopol> was the optimal
04:07:09 <oklopol> well, it's clear we can only separate four structures with removing one node
04:07:09 <psygnisfive> im not sure what the problem is tho :D
04:07:15 <oklopol> oh?
04:07:16 <oklopol> well just
04:07:31 <oklopol> you have an initial connected structure
04:07:35 <oklopol> and one node is removed
04:07:46 <psygnisfive> how big is the structure?
04:07:49 <oklopol> such that there are no connected structures of size n or bigger anymore
04:07:58 <oklopol> the problem is to find the biggest such structure
04:08:08 <psygnisfive> ok.
04:08:14 <psygnisfive> and what are the restrictions??
04:08:33 <psygnisfive> i mean, all we have i think so far is just a square grid and "maximize the size of this square grid"
04:08:42 <oklopol> you need to be able to split it into structures less than n in size by removing some node
04:08:57 <psygnisfive> i dont entirely follow.
04:09:01 <psygnisfive> but you need to sleep. bye.
04:09:02 <psygnisfive> :P
04:09:06 <oklopol> :|
04:09:11 <oklopol> i can't unless you get it
04:09:12 <oklopol> so
04:09:12 <oklopol> err
04:09:20 <oklopol> what's hard about it :P
04:09:21 <psygnisfive> i refuse to get it. go to sleep.
04:09:30 <psygnisfive> your explanation is whats hard, but thats ok. go to sleep.
04:10:10 <oklopol> the problem: for some n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:10:32 <oklopol> algorithm is a function from an integer n to such a structure
04:10:45 <oklopol> err
04:10:48 <psygnisfive> and what determines what n is? and what determines the shape of the structure? etc
04:10:50 <oklopol> the algorithm we're looking for
04:11:02 <oklopol> psygnisfive: you need to find it for any given n
04:11:07 <oklopol> shape can be anything
04:11:13 <psygnisfive> do all nodes need to be connected to 4 other nodes?
04:11:26 <oklopol> no, just some structure consisting of nodes on a grid like this
04:12:16 <psygnisfive> ok, take an infinitely large square grid and remove two intersecting axes, and add a node that connects the four at the corners
04:12:24 <psygnisfive> that structure is infinitely large.
04:12:27 <oklopol> the problem: for all n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:12:32 <oklopol> *connected structures
04:12:42 <psygnisfive> granted, the substructures are also i guess infinitely large
04:12:55 <psygnisfive> but it works for all squares that could form those corners
04:12:57 <psygnisfive> there is not largest
04:13:04 <psygnisfive> unless im misunderstanding the problem.
04:13:07 <oklopol> psygnisfive: so what do you remove to get it to split into structures less than n in size?
04:13:19 <oklopol> if you remove the middle cell, you get four infinite structures
04:13:25 <psygnisfive> yes i said that already :p
04:13:28 <oklopol> n need not be infinity, that's one of the trivial cases
04:13:30 <psygnisfive> but if you used four squares
04:13:34 <psygnisfive> or any square
04:13:35 <psygnisfive> or anything
04:13:39 <psygnisfive> there is no largest
04:13:47 <psygnisfive> but you do split it into structures smaller than the original one
04:13:49 -!- vollmond has joined.
04:13:51 <psygnisfive> but there is no largest
04:14:19 <psygnisfive> because obviously you can just add more nodes to any of the substructures so long as they dont connect the substructures
04:14:24 <oklopol> there is no largest such structure? there are multiple equally good structures in size.
04:14:31 <psygnisfive> but there can be no largest
04:14:36 <oklopol> err?
04:14:39 <psygnisfive> take four squares and connect them at the corner
04:14:40 <oklopol> well say n is 3
04:14:51 <psygnisfive> if n is three you have what sort of structure?
04:14:54 <psygnisfive> o-o-o?
04:14:57 <oklopol> you saying you can have the initial structure infinite?
04:14:58 <psygnisfive> where o is a node and - is a connection
04:14:58 <psygnisfive> ?
04:15:11 <oklopol> that's not the biggest you can do
04:15:27 <psygnisfive> well let me just make sure im getting this correct
04:15:32 <oklopol> 9 is
04:15:51 <psygnisfive> if n is three, what is an example of such a structure
04:16:07 <psygnisfive> because i dont think im following
04:16:19 <psygnisfive> i need to see an example of possible structures
04:16:25 <oklopol> http://www.vjn.fi/pb/p333224163.txt
04:16:27 <psygnisfive> and a largest possible structure
04:16:34 <oklopol> this is the largest possible
04:16:39 <psygnisfive> how is that n = 0
04:16:41 <psygnisfive> er
04:16:42 <psygnisfive> n = 3
04:16:50 <psygnisfive> and how is that the largest
04:16:53 <psygnisfive> how do you define largest
04:16:55 <oklopol> because by removing the middle you get four structures of size 2
04:17:07 <oklopol> you define largest by the fact there is no larger one.
04:17:23 <psygnisfive> but what is largeness
04:17:26 <oklopol> the problem was just proving this, which is of course trivial
04:17:30 <oklopol> oh
04:17:33 <oklopol> number of nodes.
04:17:36 <psygnisfive> ok
04:18:01 <oklopol> trivial, but still scary when it just slams into your face when you're trying to sleep :P
04:18:18 <psygnisfive> so im not entirely sure i follow still but
04:18:29 <psygnisfive> what does the 3 do?
04:18:32 <psygnisfive> where does 3 come in?
04:18:42 <psygnisfive> its just some number?
04:18:50 <oklopol> the problem: for all n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:18:55 <oklopol> n can be 3 too.
04:19:01 <oklopol> because it can be any integer
04:19:04 <psygnisfive> if thats the case then the largest structure will always be (n-1)*4+1 in size
04:19:12 <oklopol> yes
04:19:25 <oklopol> the problem was just proving that
04:19:28 <psygnisfive> ..
04:19:33 <psygnisfive> whats to prove?
04:19:41 <oklopol> err that there's no bigger one
04:19:45 <psygnisfive> the middle node divides the single node into at most four smaller nodes
04:19:51 <psygnisfive> er
04:19:53 <psygnisfive> four smaller structures
04:20:01 <psygnisfive> since no node can connect to more than 4 other nodes
04:20:11 <psygnisfive> thus the biggest would have 4 substructures as a result
04:20:21 <psygnisfive> since no substructure can have more than n nodes
04:20:27 <psygnisfive> it must have n-1 nodes
04:20:30 <oklopol> yes, the gist is simply that removing a node that can have at most 4 edges from it to others can only split the graph into 4 subgraphs
04:20:40 <psygnisfive> thus each of the four substructures has n-1 nodes
04:20:48 <psygnisfive> thus you have (n-1)*4 nodes
04:20:53 <psygnisfive> plus the node you remove at the center
04:20:58 <psygnisfive> the shape itself is irrelevant.
04:21:12 <psygnisfive> i dont see why this is an interesting problem
04:21:20 <oklopol> it's not
04:21:27 <psygnisfive> then why are you trying to solve it? :(
04:21:30 <oklopol> i can give you the other one i solved
04:21:31 <oklopol> err
04:21:34 <psygnisfive> youre confusing
04:21:35 <oklopol> i wasn't trying to solve it
04:21:36 <psygnisfive> go to sleep
04:21:43 <oerjan> because otherwise he won't be _able_ to sleep
04:21:51 <psygnisfive> you werent trying to but you did solve it? :P
04:21:52 <oklopol> i wasn't trying to solve it, i just solved it
04:21:54 -!- Corun has quit ("This computer has gone to sleep").
04:21:55 <psygnisfive> go to sleep, oklopol :p
04:21:56 <oklopol> yeah
04:22:00 <oklopol> the other one is more interesting
04:22:02 <oklopol> basically
04:22:05 <psygnisfive> go to sleep.
04:22:07 <oerjan> also, after this mess i'm not sure if he will be able to anyhow
04:22:08 <psygnisfive> im not listening
04:22:17 <oklopol> you have an NxN matrix
04:22:21 <oklopol> oerjan: will you listen?
04:22:21 <psygnisfive> oh god
04:23:12 <oerjan> well sure, for me it's morning so i don't need to sleep...
04:23:13 <oklopol> so, at the topmost row of the matrix you have numbered nodes from 1 to N
04:23:42 <oerjan> right (in order?)
04:23:46 <oklopol> yes
04:23:48 <oklopol> at first
04:23:52 <psygnisfive> its morning for oklopol too!
04:23:55 <psygnisfive> he hasnt slept yet!
04:23:59 <oklopol> now, you take kinda steps towards the bottom
04:24:16 <oklopol> so that each of these numbers can move either left or right one step each time you go one row down
04:24:40 <oklopol> but, no two nodes with the adjacent numbers can be more than 1 column apart, ever
04:24:48 <oklopol> so you have kinda like a chain
04:24:55 <oklopol> now, the problem was jut
04:24:57 <oklopol> *just
04:25:09 <oerjan> you mean separated by more than one column?
04:25:11 <psygnisfive> oklopol, i presume you wrap?
04:25:13 <oklopol> to prove that there is no set of movements that makes this chain move away from the matric
04:25:15 <oklopol> *matrix
04:25:20 <oklopol> oh, right
04:25:36 <oklopol> you can move out of it just by moving one right from the right edge or the other way around
04:25:49 <oklopol> matrix was just an explanation of the form, not anything mathematical.
04:25:56 <psygnisfive> ok so..
04:25:59 <psygnisfive> i dont follow again :D
04:26:00 <oklopol> oerjan: hmm
04:26:01 <oklopol> err
04:26:17 * oerjan doesn't either
04:26:31 <oklopol> well let's try again :)
04:26:39 <oerjan> can a number stay in place?
04:26:45 <oklopol> err, yes.
04:26:52 <oklopol> it can move right, left, or stay put
04:27:03 <oklopol> right
04:27:03 <oklopol> also
04:27:08 <oerjan> and all numbers move or stay simultaneously at each step
04:27:09 <oklopol> two can be on the same spot.
04:27:17 <oerjan> oh
04:27:24 <oklopol> just that you can't have adjacent numbers two apart
04:27:41 <psygnisfive> what do you mean adjacent numbers
04:27:41 <oklopol> otherwise everything can move freely, although at most one to either direction on each step
04:27:46 <oklopol> 1 and 2 are
04:27:49 <psygnisfive> oh you mean ok
04:27:49 <oklopol> 4 and 3 are
04:27:53 <oklopol> 3 and 6 aren't
04:27:53 <psygnisfive> between rows
04:27:55 <oklopol> ya
04:28:00 <psygnisfive> no two neighboring numbers can different by more than 1
04:28:11 <oerjan> what is preventing you from eventually merging all numbers into one spot then?
04:28:11 <psygnisfive> ok so whats the goal now?
04:28:17 <oklopol> oerjan: nothing
04:28:20 <oklopol> but that doesn't solve it.
04:28:22 <oklopol> or does it?
04:28:29 <psygnisfive> oerjan: all numbers move simultaneously in each row
04:28:33 <oklopol> the goal is to get them all out of the matrix before the last row
04:28:34 <psygnisfive> right?
04:28:35 <oerjan> and then move them in tandem whereever you want
04:28:58 <oklopol> oerjan: there are only N rows
04:29:04 <oerjan> oh so you have a limited number of steps
04:29:04 <psygnisfive> ah so you mean move them all N to the left or right in less than N steps
04:29:15 <oklopol> err yes, NxN matrix
04:29:23 <oklopol> psygnisfive: yes exactly
04:29:32 <psygnisfive> so really the problem is this:
04:29:39 <oerjan> i see. 1 doesn't have time to leave right, N doesn't have time to leave left?
04:29:51 <oklopol> oerjan: no, they can leave at either end
04:29:56 <psygnisfive> move an object left or right by a total of N places in under N moves, moving only one place at a time
04:30:06 <oerjan> um then what's the problem?
04:30:08 <psygnisfive> in which case i dont think its possible
04:30:11 <oklopol> psygnisfive: err not exactly
04:30:17 <oerjan> move N left, move N and N-1 left, and so on
04:30:21 <psygnisfive> oklopol: thats what it amounts to tho.
04:30:25 <oklopol> if there wasn't the constraint that adjacent numbers need to be adjacent
04:30:27 <oerjan> if there is time enough
04:30:36 <oklopol> you could just move half out from the left, and half out the rightt
04:30:38 <oklopol> *right
04:30:57 <psygnisfive> but i thought you said the whole row had to move as one?
04:30:58 <oerjan> oklopol: what is preventing you from moving all left as fast as you can?
04:31:04 <oklopol> psygnisfive: no, i didn't
04:31:10 <oklopol> oerjan: you won't get the last one out
04:31:12 <psygnisfive> oh. well then.
04:31:21 <psygnisfive> i thought you had that restriction :p
04:31:27 <psygnisfive> if i didnt, then the solution is obvious.
04:31:30 <oklopol> psygnisfive: i do
04:31:32 <oerjan> oklopol: in other words, there isn't time for N to leave left, which i already asked
04:31:54 <oerjan> i thought you said there was
04:32:07 <oklopol> err i prolly misunderstood
04:32:20 <psygnisfive> then yes, the solution is plainly obvious
04:32:25 <oerjan> in other words, 1 _must_ leave leftwards, N _must_ leave rightwards.
04:32:32 <psygnisfive> the minimum number of steps is Ceiling(N/2)
04:32:39 <oklopol> psygnisfive: yes, true
04:32:40 <oklopol> do prove it
04:32:40 <oklopol> oerjan: yes
04:32:49 <psygnisfive> all movement is left one at a time
04:32:51 <oklopol> what?
04:32:55 <psygnisfive> or right
04:32:59 <psygnisfive> one space at a time
04:33:06 <oklopol> psygnisfive: you won't get the last one out
04:33:09 <psygnisfive> i know
04:33:11 <psygnisfive> but let me finish
04:33:16 <oklopol> okay
04:33:16 <oerjan> this implies at least _some_ adjecent numbers must leave in different places, a contradiction
04:33:22 <oerjan> *adjacent
04:33:26 <oklopol> oerjan: yes, that's it.
04:33:38 <psygnisfive> item m will take m steps to get out
04:33:44 <psygnisfive> that is, it gets out on row m+1
04:34:14 <psygnisfive> if you go in one direction
04:34:28 <psygnisfive> and N-m steps if you go in the other direction
04:34:56 <psygnisfive> maybe not N-m actually sorry
04:34:59 <psygnisfive> N-m+1
04:35:09 <psygnisfive> so item 1 gets out in 1 step, going left
04:35:19 <psygnisfive> and N steps going right
04:35:24 <psygnisfive> 2 gets out in 2 steps going left
04:35:27 <psygnisfive> N-1 going right
04:35:28 <psygnisfive> and so on
04:36:13 <oklopol> psygnisfive: so far so good
04:36:43 <psygnisfive> for item N/2 and N/2+1 for an even N, the number of steps left for item N/2 is the same as the number of steps right for item N/2+1
04:37:21 -!- vollmond has quit (Nick collision from services.).
04:37:25 <psygnisfive> N-(N/2+1)+1 = N-N/2-1+1 = N/2
04:37:45 <psygnisfive> so for even N, after N/2, going left will increase the number of steps
04:37:48 <oklopol> oerjan: anyway that was, for some reason, confusing to me when i first heard it... although probably i was just not really familiar with the concept of "knowing, yet proving"
04:38:03 <oklopol> not confusing, but i didn't come up with a proof
04:38:16 <psygnisfive> for N/2 for odd N, it doesnt matter which direction you choose since its in the middle.
04:38:28 <psygnisfive> tho that explanation is painful and unnecessary.
04:38:58 <oklopol> psygnisfive: err was that the proof?
04:39:07 <psygnisfive> as much of a proof as im going to give.
04:39:16 <oklopol> err okay, i don't see a proof there
04:39:22 <psygnisfive> why not?
04:39:24 <psygnisfive> its clear.
04:39:50 <oklopol> it seems you've proved for all N, for any item in the toprow, there is a way to get it out in N-1 steps
04:39:58 <psygnisfive> no
04:40:07 <psygnisfive> i proved that its possible to get it out in Ceil(N/2) steps
04:40:08 <psygnisfive> :P
04:40:25 <oklopol> :|
04:40:33 <psygnisfive> for items < N/2, move left, for items > N/2 move right
04:40:42 <oklopol> err
04:40:44 <psygnisfive> they only need to make N/2 moves.
04:40:55 <oklopol> first of all you *cannot* solve that
04:41:02 <psygnisfive> what?
04:41:04 <oklopol> this is about proving it's impossible
04:41:26 <oklopol> the constraint that two adjacent numbers cannot be apart more than one column is there.
04:41:45 <psygnisfive> ok you need to go back and specify what that means i think
04:41:53 <oklopol> err
04:41:56 <psygnisfive> because your previous explanation permitted what i just said.
04:41:57 <oklopol> there cannot be a row
04:42:24 <oklopol> where there are two indices A and B such that |A-B|>1 and |array[A]-array[B]|=1
04:42:40 <psygnisfive> i dont know what that means.
04:42:44 <oklopol> okay
04:42:53 <oklopol> all adjacent numbers need to be at most one column apart
04:43:04 <psygnisfive> but what does adjacent mean in this context.
04:43:11 <oklopol> 1 and 2 are adjacent
04:43:16 <oklopol> 4 and 3 are adjacent
04:43:21 <oklopol> 6 and 3 aren't adjacent
04:43:26 <psygnisfive> ok. i think i follow.
04:43:32 <oerjan> --> shower
04:43:39 <psygnisfive> and in that case, its not possible.
04:43:52 <oklopol> yeah, it's not, the point was to prove tat
04:43:52 <oklopol> *that
04:44:10 <psygnisfive> well that proof was part of the set up for the other longer one i did :P
04:44:25 <oklopol> err can you show it again?
04:44:34 <psygnisfive> for any item m
04:44:51 <psygnisfive> moving left will take m steps since its m from the edge
04:44:59 <psygnisfive> moving right will take N-m+1 steps
04:45:13 <oklopol> yes, duh
04:45:26 <psygnisfive> given that you cannot separate the items but more than 1 space
04:45:29 <oklopol> i like interrupting a long explanation like that, just continue :)
04:46:09 <psygnisfive> you cannot spread the items in any way that leaves a gap N in size between two items
04:46:16 <psygnisfive> meaning spreading them all apart will do no good
04:46:32 <psygnisfive> because atleast one will still be in the square
04:46:38 <psygnisfive> so spreading as a whole is useless
04:46:57 <psygnisfive> thus only moving them in the same direction is a way of getting them out of the square
04:47:12 <psygnisfive> and that means that it would take N steps for item N
04:47:30 <psygnisfive> which violates the constraint that it be done in <N steps
04:48:25 <oklopol> yes, the gist is simply realizing to solve this you would need to get some adjacent numbers out the opposite ends leading to a contradiction, as oerjan said
04:48:41 <psygnisfive> i mean, its trivial to understand visually.
04:48:50 <oklopol> sure
04:49:01 <psygnisfive> putting it into maths is just grunt work.
04:49:09 <psygnisfive> take the end items
04:49:11 <psygnisfive> item 1, say
04:49:23 <psygnisfive> that will move, at most, N spaces left
04:49:36 <psygnisfive> meaning that with no spreading, item N will still be inside the square
04:49:44 <psygnisfive> with spreading, item N/2 will still be in the square
04:49:59 <psygnisfive> so theres no solution.
04:50:03 <oklopol> psygnisfive: i'd say the mathematical way to say it is quite simple
04:50:09 <psygnisfive> yes, but its grunt work
04:50:11 <psygnisfive> and pointless.
04:50:30 <oklopol> :P
04:50:32 <psygnisfive> sometimes formal proofs are unnecessary.
04:50:36 <oklopol> well that's one way to see it
04:50:41 <psygnisfive> especially for something like this.
04:51:01 <psygnisfive> the extreme possibilities cant solve it, and therefore no intermediate possibilities can.
04:51:08 <psygnisfive> no movement + no spreading = fail
04:51:14 <psygnisfive> full movement + no spreading = fail
04:51:18 <psygnisfive> no moving + spreading = fail
04:51:24 <psygnisfive> full movement + spread = fail
04:51:54 <oklopol> there's no difference between a formal proof and an intuitive one, except that the intuitive one can rely on construct that need not necessarily exist
04:52:04 <oklopol> but yeah, this one is trivial to see, and trivial to put to maths
04:52:07 <psygnisfive> that, and formal proofs are a bit more rigorous
04:52:32 <psygnisfive> but i dont see why this is an interesting problem.
04:52:50 <oklopol> this is more the grunt work exercise, in your terms, yes
04:53:01 <psygnisfive> go to sleep, oklopol. :P
04:53:08 <oklopol> perhaps i should, at some point
04:53:13 <oklopol> it's just i'm not at all tired
04:53:17 <psygnisfive> lame
04:53:21 <oklopol> so... it's a bit hard.
04:53:26 <psygnisfive> oh i bet it is
04:53:29 <psygnisfive> ;O
04:53:31 <psygnisfive> :P
04:55:21 <psygnisfive> gimme more pics of you :D
04:55:40 <oklopol> still don't have any :)
04:55:51 <psygnisfive> but you have a webcam!
04:55:52 <oklopol> also the only software i had for the webcam broke
04:55:57 <oklopol> hmm
04:55:57 <psygnisfive> lame
04:56:01 <oklopol> i have skype now, though
04:56:05 <oklopol> so i could take vid
04:56:10 <psygnisfive> ok :D
04:56:15 <psygnisfive> get on skype
04:56:15 <psygnisfive> :D
04:56:17 <oklopol> ...
04:56:26 <psygnisfive> ill take the vid :P
04:56:31 <oklopol> i'm on skype, but that's not gonna happen :P
04:56:32 <psygnisfive> actually i wont bother recording it
04:56:40 <psygnisfive> aww
04:56:41 <psygnisfive> :(
04:56:48 <psygnisfive> why not?
04:56:49 <psygnisfive> :(
04:56:58 <oklopol> mainly because i'm naked.
04:57:02 <psygnisfive> ..
04:57:06 <psygnisfive> VIDEO.
04:57:07 <psygnisfive> NOW.
04:58:01 <oklopol> :)
05:01:17 -!- poiuy_qwert has joined.
05:09:32 <psygnisfive> hey :(
05:09:34 <psygnisfive> that was mean!
05:09:36 <psygnisfive> tease.
05:09:37 <psygnisfive> >|
05:10:19 <oklopol> :D
05:10:39 <psygnisfive> ::pounce::
05:11:18 <psygnisfive> lets make a truly queer language oklopol.
05:11:24 <psygnisfive> something thats really different.
05:11:32 <psygnisfive> not painfully hard or whatever
05:11:38 <psygnisfive> no funges or brainfucks or the like
05:11:47 <psygnisfive> something with a completely different perspective on computation
05:15:02 <CakeProphet> ...this has already been done.
05:15:09 <CakeProphet> but yes
05:15:14 <CakeProphet> it would be awesome to do it again.
05:15:45 <oerjan> sometimes, xkcd is ... weird.
05:15:56 <oerjan> that's one reason why we love it, i assume
05:16:00 <psygnisfive> hows it been done
05:16:09 <psygnisfive> i mean, i know it HAS, most new paradigms are like that
05:16:15 <psygnisfive> but i wanna know
05:16:23 <psygnisfive> because i like weird and different models of computation
05:16:57 <oklopol> psygnisfive: it was not a tease, i was actually going to show you my face on webcam.
05:17:04 <psygnisfive> lol
05:17:06 <psygnisfive> ok
05:17:12 <oklopol> it's just my computer crashed for 15 minutes
05:17:22 <psygnisfive> ouch
05:17:38 <psygnisfive> get a mac :D
05:18:04 -!- pikhq has quit ("leaving").
05:18:15 <oklopol> for some reason this program i used to use the webcam with, or used once trying to check if it works, crashed when i retried it a while ago
05:18:21 <oklopol> crashing the whole computer for ages
05:18:51 <psygnisfive> :(
05:19:03 <oklopol> now, at first it seemed that if skyped does it also, then might be something @ my configurations, and vista's just taking its usual approach to that kinda thing
05:19:14 <oklopol> but actually
05:19:37 <oklopol> skype opened the fucking program that crashes this computer when opened the webcam feed with, just after i'd gotten it to quit
05:19:41 <oklopol> and the comp jammed again
05:19:42 <oklopol> so now
05:19:49 <psygnisfive> :O
05:19:55 <psygnisfive> get a mac :)
05:19:56 <oklopol> i don't know whether it's skype, or just trying to access the webcam
05:20:22 <oklopol> nah, i can do most things with my current set.
05:20:36 <oklopol> watch videos, irc and code
05:20:42 <psygnisfive> except jerk off on camera for me
05:20:44 <psygnisfive> i mean uh
05:20:52 <oklopol> right, that i can't do.
05:21:03 <oklopol> not sure if i can live with that, need to ponder the issue
05:21:06 <oklopol> ->
05:21:08 <oklopol> night
05:21:12 <psygnisfive> finally!
05:21:16 <oklopol> :)
05:21:22 <psygnisfive> ::kisscheek:: night
05:21:24 <oklopol> got pretty tired looking at the black screen
05:21:26 <oklopol> ->
05:21:45 <psygnisfive> oerjan, xkcd, weird, why?
05:22:31 <oerjan> today
05:22:41 <psygnisfive> looking
05:23:18 <psygnisfive> lmfao wtf XD
05:24:48 <oklopol> link!
05:24:49 <oklopol> ...
05:24:55 <psygnisfive> GO TO SLEEP
05:25:00 <oklopol> :(
05:25:00 <oerjan> http://xkcd.com/
05:25:08 <psygnisfive> go have wet dreams about me. :X
05:30:30 <oklopol> ->
05:53:18 -!- oerjan has quit ("Omnibus").
06:15:22 <CakeProphet> ...John Mayer is very very good.
06:15:33 <CakeProphet> I would not expect so much win from a pop type.
06:18:08 -!- olsner has joined.
06:19:21 -!- GreaseMonkey has joined.
07:31:05 -!- olsner has quit ("Leaving").
07:54:17 <AnMaster> <oklopol> anyway i doubt AnMaster knows even all european capitals, just scandinavia + the ones that are historically relevant
07:54:36 <AnMaster> Madrid, Paris, Rome, Berlin, London, what more do you want?
07:55:10 <AnMaster> Athens
07:55:23 <AnMaster> Belgrade
07:55:34 <AnMaster> Dublin
07:55:42 <AnMaster> Lisabon
07:55:51 <AnMaster> Moscow
07:56:21 <AnMaster> and of course Oslo, Helsinki, Stockholm, Copenhagen
07:56:27 <AnMaster> Reykjavik
07:56:54 <AnMaster> Warsawa (or is it Warsaw in English?)
07:57:33 <AnMaster> Hm Turkey, that would be Ankara
07:57:54 <AnMaster> bb going to swim
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:06 <fizzie> You've pretty much left most of Eastern Europe out. There's at least Tallinn, Riga, Vilnius, Budapest, Prague, Bucharest. And that's very much not an exhaustive list. (Also at least Vienna, Bern missing in Western/Central Europe.)
08:23:54 -!- poiuy_qwert has quit.
08:36:49 -!- deveah has joined.
08:36:57 <deveah> mornin dudes
08:44:53 -!- Slereah_ has joined.
08:52:11 <GregorR> AnMaster, fizzie: Now list all the state capitals of the US states and Canadian provinces :P
09:02:14 <fizzie> No idea about those. My knowledge of European geography is poor enough; of the other continents it's pretty much non-existent.
09:03:16 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
10:19:07 <AnMaster> I can do a bit better in Asia I think
10:19:40 <AnMaster> Seul (English spelling?), Tokyo, Bejing (again spelling, it is spelled "Peking" in Swedish...)
10:19:43 <AnMaster> lets see...
10:20:03 <AnMaster> Baghdad
10:20:22 <AnMaster> New Delhi
10:20:36 <AnMaster> Singapore, or is that part of China nowdays?
10:20:50 <AnMaster> Taipei, would be Taiwan iirc
10:21:00 <AnMaster> Lhasa... Tibet
10:21:37 <AnMaster> Kuala Lumpur, Kathmandu, Islamabad
10:22:11 <AnMaster> Beirut, Bangkok
10:22:54 <AnMaster> Naypyidaw is Burma, not sure about spelling
10:23:04 <AnMaster> can't do more
10:23:23 <AnMaster> as for US and Canada
10:23:26 <AnMaster> they are countries
10:24:14 <AnMaster> Washington D.C. and Ottawa
10:24:19 <AnMaster> Mexico City
10:24:29 <AnMaster> that's all in North America iirc
10:24:48 <AnMaster> South America.... hm
10:25:03 <AnMaster> Brasilia, Buenos Aires,
10:25:17 <AnMaster> Lima?
10:25:51 <AnMaster> well I'm bad at south america
10:26:23 <AnMaster> Africa...
10:26:47 <AnMaster> Pretoria, Dakar, Dar es Salaam
10:27:07 <AnMaster> Tripoli
10:27:21 <AnMaster> Harare
10:27:48 <AnMaster> Tunis?
10:27:58 <AnMaster> not too good there either
10:28:12 <AnMaster> for Oceania and Australia...
10:28:21 <AnMaster> Wellington, Canberra
10:28:46 <AnMaster> nop can't think of more there
10:29:48 <AnMaster> GregorR, ^
10:31:42 -!- tusho has joined.
10:33:32 <Deewiant> AnMaster: Seoul
10:33:43 <Deewiant> Peking is valid in English as well, the more common is Beijing
10:33:58 <AnMaster> Deewiant, ah thanks
10:34:02 <Deewiant> Warsaw in English
10:34:13 <AnMaster> still I think I managed rather good
10:34:16 <Deewiant> Singapore isn't part of China
10:34:33 <AnMaster> compared to what most Americans manage about Europe
10:34:34 <Deewiant> don't know about that Burma one
10:34:49 <tusho> jesus christ AnMaster is still bitching about that?
10:35:00 <AnMaster> tusho, no GregorR was
10:35:03 <AnMaster> <GregorR> AnMaster, fizzie: Now list all the state capitals of the US states and Canadian provinces :P
10:35:10 <AnMaster> not a lot I can do about that
10:35:27 <AnMaster> Deewiant, about the Burma one, I remember it from the news about the protests in Burma last year
10:35:28 <tusho> AnMaster: let's put it this way
10:35:34 <AnMaster> otherwise I wouldn't have known it
10:35:42 <tusho> knowledge about Sweden = isn't going to help anyone in the USA for shit
10:35:44 <AnMaster> tusho, I listed lots of capitals
10:35:46 <AnMaster> read the logs
10:35:51 <AnMaster> from all over the world
10:36:03 <tusho> knowledge about USA for Swedes = helpful because it's one of the most powerful countries in the world and certainly the most noticable
10:36:14 <puzzlet> AnMaster: what's wrong with Sri Jayawardenapura-Kotte? ;)
10:36:29 <AnMaster> puzzlet, eh? don't think I know what that one is
10:36:43 <puzzlet> i've pasted that one from Wikipedia though
10:36:51 <AnMaster> puzzlet, where is it located?
10:36:59 <puzzlet> Sri Lanka
10:37:02 <AnMaster> k
10:37:35 <tusho> AnMaster: see? You don't care that you know nothing about Sri Lanka.
10:37:38 <tusho> It's not relevant to you.
10:37:42 <AnMaster> well yes I do care
10:37:46 <AnMaster> I love knowledge
10:38:36 <tusho> Well don't call out on americans for not knowing much about Sweden. It's the same.
10:51:18 <tusho> http://en.wikipedia.org/wiki/Criticism_of_the_APL_programming_language
10:51:19 <tusho> is longer than
10:51:22 <tusho> http://en.wikipedia.org/wiki/APL
10:51:27 <tusho> er
10:51:27 <tusho> http://en.wikipedia.org/wiki/APL_(programming_language)
10:52:35 -!- GreaseMonkey has quit ("HydraIRC -> http://google.com <- Go find something better").
11:19:56 <deveah> what's that s/foo/bar thing?
11:22:00 <tusho> deveah: regexps
11:22:14 <deveah> what?!
11:22:19 <tusho> deveah: look it up.
11:22:26 <tusho> http://en.wikipedia.org/wiki/Regular_expression
11:25:36 <deveah> and why s/foo/bar ?
11:25:49 <deveah> why not "a regexp" ?
11:25:58 <oklopol> deveah: it's not just a regex
11:26:11 <oklopol> the gist is
11:26:12 <oklopol> s/from/to/
11:26:24 <deveah> and s is...
11:26:27 <oklopol> you find "from" from something someone said, usually the one doing the s thing, and replace it with "to"
11:26:45 <oklopol> so if i had typoed something to soemthnig there
11:26:49 <oklopol> i would do
11:27:01 <oklopol> s/soemthnig/something/
11:27:11 <deveah> oh
11:27:21 <oklopol> s/a/b/ and s/a/b are both used
11:28:04 <oklopol> a can be any regexp, so you can do more complex stuff inside it to match something other than just a simple string, assuming your listeners aren't monkeys
11:29:26 <deveah> okay then
11:34:02 -!- deveah has left (?).
12:03:05 -!- Sgeo has joined.
12:05:20 -!- sebbu has quit (Read error: 113 (No route to host)).
12:10:18 -!- sebbu has joined.
12:17:27 * Sgeo might get his computer back today!
12:18:11 * tusho might spam the same message in all channels today!
12:23:52 -!- Slereah__ has joined.
12:27:49 -!- tusho has quit ("And then-").
12:35:46 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
12:52:13 -!- Slereah_ has joined.
13:04:29 -!- tusho has joined.
13:10:26 -!- Corun has joined.
13:12:47 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
13:22:32 <psygnisfive> oklopol
13:22:39 <psygnisfive> how many hours of sleep have you had
13:48:23 <tusho> psygnisfive: 72
13:48:45 <psygnisfive> :P
13:48:48 <psygnisfive> he hasnt :(
13:49:12 <psygnisfive> 6 hours
13:49:14 <psygnisfive> not that bad
13:49:18 <psygnisfive> assuming he slept all of it
14:02:47 -!- Slereah__ has joined.
14:11:33 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
14:17:41 -!- Corun has quit ("This computer has gone to sleep").
14:25:20 -!- Corun has joined.
14:38:16 -!- ais523 has joined.
14:38:44 <ais523> hi tusho
14:38:50 <tusho> fucking fuck.
14:38:53 <tusho> :|
14:38:56 <psygnisfive> lol
14:40:58 <Sgeo> WTF http://nethack.devnull.org/ why would a page give 400?
14:41:24 <psygnisfive> same reason all webpages would give a 400 error?
14:41:35 <tusho> WTF why would a page give a 404
14:41:37 <tusho> that's crazy!
14:41:40 <tusho> http response codes??
14:41:44 <tusho> why would you use those??
14:41:58 <Sgeo> tusho, why is it giving 400 not 404?
14:42:07 <tusho> Sgeo: Why is it giving 500 and not 404?
14:42:10 <tusho> Because they're different errors.
14:42:44 <Sgeo> But how is the browser trying to access it a 400? Isn't that for if I were to do ASDF instead of GET or somesuch thing?
14:43:04 <tusho> The server thinks the browser's request was bad.
14:43:08 <tusho> so?
14:43:23 <tusho> It's a server problem.
14:44:19 -!- pikhq has joined.
14:47:26 -!- ais523 has quit ("restarting X").
14:48:42 -!- ais523 has joined.
14:49:10 <ais523> wb ais523
14:49:18 <psygnisfive> lol
15:12:11 <tusho> ais523: seen the icfp entry in tex?
15:12:16 <tusho> http://sdh33b.blogspot.com/2008/07/icfp-contest-2008.html
15:12:25 <ais523> no, I haven't, but I knew it existed
15:14:04 -!- Corun has quit ("This computer has gone to sleep").
15:17:43 * pikhq groans while listening to people behind me updating a Mac. . .
15:18:07 <pikhq> You'd *think* that 'It Just Works' package management would be taken advantage of by Apple. . .
15:18:26 <psygnisfive> what are they making noises about?
15:19:22 <tusho> pikhq: I've never had any problems with upgrading macs.
15:19:37 <psygnisfive> not upgrading
15:19:39 <psygnisfive> updating
15:19:47 <psygnisfive> not even as bad as an upgrade!
15:19:49 <pikhq> "We have to update foo, then bar, then baz, then qux..."
15:20:03 <psygnisfive> weird. what software are they talking about>
15:20:04 -!- tusho has quit ("And then-").
15:20:15 <pikhq> The OS, iTunes, Office, Firefox, etc.
15:20:29 <psygnisfive> the OS and iTunes updates are one click in software update
15:20:41 <psygnisfive> anything else is just software stuff external to it being a Mac.
15:20:51 <pikhq> Maybe I'm just spoiled by 'apt-get update&&apt-get upgrade' or 'emerge --sync&&emerge -avuDN world'.
15:21:01 <psygnisfive> uh
15:21:14 <psygnisfive> i dont know how those word, so i cant comment.
15:21:19 <ais523> pikhq: it's even easier nowadays, you can do it from the GUI so you don't have to remember how apt-get works
15:21:36 <psygnisfive> i presume they update all apps that you have that are acquirable via apt-get?
15:21:45 <ais523> psygnisfive: that's it
15:21:50 <psygnisfive> ah.
15:21:51 <pikhq> They update every single program on a Linux box from the command line (the first is for Debian or Ubuntu, the second is for Gentoo).
15:21:54 <ais523> update lets you know which ones can be updated
15:21:57 <ais523> upgrade does the update
15:22:10 <psygnisfive> convenient.
15:22:34 <pikhq> Hmm. Now, when was apt first written? '97?
15:22:36 <ais523> pikhq: actually, you don't need the first for ubuntu at all, it does the apt-get update automatically in the background as it doesn't change anything, and gives you an icon to click on to do the apt-get update if it's needed
15:22:43 <psygnisfive> dont know how well it'd work on a mac, tho, given that mac apps are all Cocoa
15:23:01 <psygnisfive> ive used apt-get on my mac but only for nix programs that never fucking work. :P
15:23:32 <psygnisfive> thats one reason i do my best to avoid linux. as much as i like linux, you have to be torvalds to get the damn thing to work.
15:23:38 <ais523> psygnisfive: not any more
15:23:44 <psygnisfive> dude even on ubuntu
15:23:49 <pikhq> Um, no.
15:23:53 <ais523> well, I'm not Torvalds
15:23:54 <ais523> and it works for me
15:23:59 <ais523> I use the command line because I like it
15:24:05 <psygnisfive> ubuntu comes with no disk partitioner? what nonsense is this
15:24:05 <ais523> but I've done things GUI-style without trouble too
15:24:07 <oklopol> ubuntu was the easiest os i've ever seen
15:24:13 <psygnisfive> and then to install a partitioner, forget it
15:24:14 <ais523> psygnisfive: it has a disk partitioner in the install
15:24:22 <pikhq> ... But it *does* have a partitioner.
15:24:24 <oklopol> anything you wanna do, just ask here and write a line to the console :)
15:24:34 <psygnisfive> ais: i wasn't looking for one on the install
15:24:52 <pikhq> Gparted on Ubuntu, Qtparted on Kubuntu.
15:25:10 <psygnisfive> the ubuntu website provided instructions for installing gparted
15:25:14 <pikhq> Or, if you're willing to use the command line, fdisk.
15:25:16 <psygnisfive> instructions which /didnt work/
15:25:31 <pikhq> Um. . . There shouldn't need to be instructions.
15:25:35 <psygnisfive> well there were
15:25:41 <psygnisfive> i didnt make the ubuntu site
15:25:42 <pikhq> "In the package manager: install gparted."
15:25:55 <psygnisfive> they were command line instructions, too.
15:26:02 <pikhq> *facepalm*
15:26:30 <psygnisfive> uh.. is google down?
15:26:34 <psygnisfive> i cant access google...
15:26:54 <pikhq> If Google is down, then I think we have bigger issues to worry about.
15:27:01 <psygnisfive> :p
15:27:02 <pikhq> Such as the nuking of California.
15:27:13 <psygnisfive> i cant access google :(
15:27:44 <psygnisfive> ok there we go
15:27:55 <ais523> Google isn't down
15:28:02 <pikhq> The command line, in theory, is not that hard to use on Linux. . .
15:28:09 <pikhq> Especially for package installation.
15:28:38 <psygnisfive> i dont have a problem with the CL
15:28:40 <psygnisfive> far from it
15:28:45 <pikhq> To install gparted on Ubuntu from the command line, for example? : sudo apt-get install gparted
15:28:49 <psygnisfive> i have a problem with the shit that doesnt work
15:29:10 <psygnisfive> which in my experience seems to be every god damned thing that requires the CL
15:29:20 <psygnisfive> (installs, i mean, not apps to run)
15:29:33 <ais523> I'm just trying through the GUI
15:29:37 <ais523> Applications | Add/Remove
15:29:41 <ais523> and I searched for "partition"
15:29:53 <ais523> and "GNOME Partition Editor" was the only thing the search turned up
15:30:00 <ais523> I could just click on it and click on install now, and it would work
15:30:14 <psygnisfive> i didnt even know you could add programs like that. :D
15:30:46 <ais523> well, on Windows, Add/Remove only removes stuff
15:30:54 <ais523> on Ubuntu, and many other Linux distros, it adds stuff too
15:31:01 <ais523> and it has a pretty good range of things to add
15:31:09 <ais523> ofc behind the scenes it just runs the relevant apt-gets
15:31:14 <psygnisfive> im used to just downloading apps from their makers website.
15:31:17 <ais523> and gives you a pretty GUI for them
15:31:36 <ais523> psygnisfive: the issue with that is you end up with about 20 different auto-updaters in your system tray; on Ubuntu there's only 1
15:31:53 <psygnisfive> indeed.
15:32:18 <psygnisfive> maybe ive been trying to install apps all wrong
15:32:33 <psygnisfive> i usually just follow the CL instructions on the netosphere
15:32:38 <psygnisfive> and it almost never works
15:32:42 <psygnisfive> especially for utilities and the like
15:32:51 -!- Corun has joined.
15:34:11 <pikhq> If it's not of the form 'sudo apt-get install package-name', then the CL instructions are shit. Of course, the GUI is fairly handy if you're not a command line guru.
15:34:55 <psygnisfive> its the same if i compile it myself too tho.
15:34:59 -!- tusho has joined.
15:35:01 <ais523> psygnisfive: the command-line is normally harder if you're not used to it, but faster if you are
15:35:10 <psygnisfive> i tried installing gparted and i got some dependency errors
15:35:28 <psygnisfive> then i tried some other method, i forget what, and it worked no errors
15:35:31 <pikhq> ... Dependency *errors*? WTF?!?
15:35:35 <psygnisfive> yeah.
15:35:37 <psygnisfive> dependency errors.
15:35:40 <psygnisfive> i dont know dude.
15:35:47 <psygnisfive> i followed the instructions and it started installing JAVA.
15:35:49 <ais523> normally that means it depends on things that you told it not to download
15:35:51 <pikhq> Whatever instructions you were using were shit.
15:35:51 <psygnisfive> o_o;
15:36:09 <psygnisfive> i think they were the instructions from the gparted people ;_;
15:36:22 <psygnisfive> well, i say "people" like there is such a thing
15:36:38 <tusho> ais523: I am running a script that tries to find a self-hashing crc32
15:36:40 <tusho> It starts with \0
15:36:42 <tusho> Then:
15:36:46 <tusho> Until x == crc32(x)
15:36:48 <tusho> x = crc32(x)
15:36:54 <ais523> what if that enters a loop?
15:36:55 <tusho> Is this going to terminate in my lifetime?
15:37:05 <psygnisfive> ais: halting problem much?
15:37:14 <ais523> well, at least CRC32's reverse-engineerable
15:37:14 <tusho> psygnisfive: Uh, no.
15:37:16 <psygnisfive> i hope its bistable and never terminates.
15:37:18 <tusho> It just depends on CRC32's definition
15:37:20 <tusho> :P
15:37:26 <ais523> so you'd just have to solve a degree-33 polynomial
15:37:28 <tusho> We can make a pretty good guess.
15:37:36 <tusho> ais523: I just wanted an intuition, sheesh
15:37:37 <ais523> tusho: CRC32's a polynomial in base 2
15:37:37 <tusho> ;_;
15:37:39 <psygnisfive> ::prays for bistability::
15:37:42 <ais523> well, using division
15:39:42 <tusho> ais523: any intuitions?
15:39:54 <tusho> it's been going for a while
15:40:10 <ais523> tusho: it's very likely to end up in a loop, I think
15:42:33 <tusho> humph
15:42:40 * tusho considers a good hashing function to find a self-hash in
15:43:04 -!- Dewio has joined.
15:45:02 <tusho> brb
15:45:27 <AnMaster> ais523, hi
15:45:32 <ais523> hi AnMaster
15:45:45 <AnMaster> ais523, updated yet? I'm working on a Def-BF implementation in C now
15:45:51 <ais523> AnMaster: pushing write now
15:45:55 <ais523> s/write/right/
15:45:58 <ais523> ok, updated
15:46:07 <AnMaster> it will follow the standard. but... it will do it completely strange
15:46:12 <ais523> although I haven't added all those warnings you wanted, or unwarninged my own code
15:46:13 <AnMaster> as in virtual machine style
15:46:16 <AnMaster> compiled though
15:46:52 <AnMaster> ais523, if you were to parse a language like C, what would you use? I have no experience with flex or bison or such
15:46:56 <AnMaster> so I would want to learn
15:47:05 <ais523> AnMaster: I'd use flex/bison
15:47:12 <ais523> or lex/yacc, the original versions of such
15:47:17 <AnMaster> ais523, you use both at once?
15:47:25 <ais523> AnMaster: flex and bison work together
15:47:30 <ais523> although it's possible to use just one of them
15:47:34 <ais523> flex tokenises the source
15:47:38 <ais523> bison parses sequences of tokens
15:47:38 <AnMaster> the language is rather simple really, brainfuck + a few instructions + functions
15:48:09 <AnMaster> ais523, so how would a flex file look for, say, brainfuck?
15:48:19 <ais523> it would be very simple for Brainfuck
15:48:28 <ais523> just a list of the possible characters
15:48:31 <ais523> and a token name for each one
15:48:52 <AnMaster> and if you added blocks
15:49:16 <ais523> AnMaster: well, lexing would still be simple, as both { and } (say) are tokens, you'd match the { to the } in the parser
15:49:21 <AnMaster> the blocks use define: functionname[a, b, c, ...] [ bf code ]
15:49:31 <AnMaster> yes [ not {
15:49:53 <AnMaster> so it need to make a difference between what type of [ I assume?
15:50:38 <ais523> well, if you're using [ for two different things depending on context, you parse them both into [ in the lex/flex code and let yacc/bison tell the contexts apart
15:50:44 <AnMaster> ah
15:50:45 <AnMaster> right
15:51:04 <AnMaster> ais523, file endings for flex is .l isn't it? and what is it for bison?
15:51:09 <ais523> .y
15:51:16 <AnMaster> thanks
15:51:20 <AnMaster> now to learn bison too
15:51:35 <ais523> there's lexer.l and oil.y and parser.y in C-INTERCAL if you want something to look at
15:51:40 <ais523> oil.y is a lot simpler than parser.y
15:51:41 -!- oklopol has quit (Read error: 113 (No route to host)).
15:51:43 -!- Corun has quit ("This computer has gone to sleep").
15:51:46 <AnMaster> ah
15:51:46 <ais523> because OIL is a lot neater than INTERCAL syntax-wise
15:52:07 <pikhq> AnMaster: Well, I could hand you my lexer for Def-BF. . . I'd hand you my parser, but it doesn't work.
15:52:11 <AnMaster> We have conflicts in the following files:
15:52:11 <AnMaster> ./etc/cftoec.sh
15:52:11 <AnMaster> Finished pulling and applying.
15:52:13 <pikhq> Shift/reduce conflicts galore.
15:52:16 -!- Dewio_ has joined.
15:52:20 <AnMaster> what do I do now ais523?
15:52:25 <AnMaster> I'm not that used to darcs
15:52:35 <AnMaster> how do I make it throw away my version
15:52:37 <AnMaster> and use yours
15:53:28 <ais523> AnMaster: I haven't had a conflict before
15:53:33 <ais523> I think you edit the file to be what you want
15:53:36 <ais523> then call darcs resolve on it
15:53:39 <AnMaster> ah
15:53:41 <AnMaster> thanks
15:54:52 -!- Dewi has quit (Nick collision from services.).
15:54:56 -!- Dewio_ has changed nick to Dewi.
15:56:33 <AnMaster> ais523, are flex regexes?
15:56:39 <ais523> yes
15:56:53 <ais523> although normally the regexness isn't used except in cases like [0-9]+
15:56:55 <AnMaster> so, say \[[-+]\] would match [-] and [+]
15:57:07 <AnMaster> also first match selected I guess
15:57:08 <ais523> yes, it would
15:57:12 <ais523> AnMaster: longest match, I think
15:57:19 <AnMaster> huh?
15:57:20 <AnMaster> ok
15:57:40 <AnMaster> ais523, yacc just wants numbers in in-data?
15:57:49 <ais523> it wants token numbers
15:57:58 <ais523> each of which can have some data carried along with it
15:57:58 <AnMaster> and they are just defined somewhere?
15:58:08 <ais523> in the %token at the top
15:58:18 <ais523> basically you say %token followed by all your data
15:58:26 <AnMaster> that's in the .y file?
15:58:29 <ais523> s/data/tokens/
15:58:29 <ais523> AnMaster: yes
15:58:33 <ais523> and it outputs a header file
15:58:37 <ais523> giving a unique number to each token
15:58:40 <AnMaster> hrrm there is oil.y but no oil.l?
15:58:49 <ais523> AnMaster: yes, I did the lexing for OIL by hand, as it was simple
15:58:57 <AnMaster> ah
15:58:58 <ais523> you'll see the yylex function written, in C, at the bottom of that file
15:59:27 <AnMaster> if a special brainfuck instruction take an argument how do you do then
15:59:28 <AnMaster> say:
15:59:36 <AnMaster> ? takes a hex number as a parameter
16:00:40 <tusho> wow, ais523 is a walking yacc tutorial.
16:01:03 <AnMaster> to which I'm very grateful
16:01:06 <ais523> AnMaster: it would be %token <int> SPECIALINSTRUCTION
16:01:10 <ais523> to define the token in the yacc file
16:01:12 <AnMaster> ah
16:01:18 <ais523> then you'd have to make sure yylex passed it an int somehow
16:01:22 <ais523> that's what %union is for
16:01:28 <AnMaster> hm...
16:01:29 <ais523> but it's slightly complicated
16:03:36 <pikhq> In general, parsers and lexers are complicated, even if you know what you're doing.
16:04:13 <AnMaster> hrrm
16:04:29 <AnMaster> I written simple parsers in bash and such
16:04:33 <AnMaster> and in C
16:04:37 <AnMaster> hand coded them
16:04:41 -!- Dewio has quit (Read error: 101 (Network is unreachable)).
16:04:55 <ais523> pikhq: yep
16:05:18 <AnMaster> ais523, say, if I expect the ? instruction to have a 64-bit value as a parameter, which is what I do
16:05:45 <AnMaster> oh looking at lexer.l it seems you use \( \), just like regexes
16:05:45 <AnMaster> ok
16:05:58 <ais523> yes, that's how it works
16:06:05 <ais523> and if you look at the { } block after it
16:06:05 <pikhq> Flex actually uses regexps. ;)
16:06:08 <tusho> Parsec is pretty much the only simple parser.
16:06:17 <ais523> it takes that value and atois it into a number
16:06:21 <ais523> and sends it to yacc
16:07:07 <AnMaster> thanks
16:12:12 <tusho> WTF
16:12:17 <tusho> NOW
16:12:36 <ais523> oh dear
16:13:31 * pikhq mutters about Silverlight being the worst thing for mankind since mankind
16:13:32 <pikhq> :p
16:13:43 <ais523> not quite, but it's pretty bad
16:13:54 <tusho> FFFFFFFFF
16:14:12 <tusho> >:|
16:14:15 -!- Ilari has quit (""Won't be back for a while..."").
16:14:57 <AnMaster> ais523, an issue, seems like yyval stuff is 32-bit?
16:15:01 <AnMaster> I need 64-bit
16:15:57 <ais523> AnMaster: you can choose the type of the data you send
16:16:02 <ais523> there's an int, always, for the token type
16:16:08 <ais523> and data it carries along with it which can be any type
16:16:48 <AnMaster> ?0x([0-9]+) { yylval.numval = atoll(yytext); return tok_pop; }
16:16:55 <AnMaster> wait, need to \ the ?
16:17:24 <ais523> AnMaster: you need to define yylval.numval, that's what the %union directive's for
16:17:28 <ais523> apart from that, yes
16:17:30 <AnMaster> ahh right
16:17:39 <ais523> you can define it as long long, because that's what you want
16:18:16 <AnMaster> hm so how do you bind them together
16:18:20 <AnMaster> lexer and parser here
16:19:05 <AnMaster> ah yes header
16:19:41 <ais523> you can get yacc to generate the header file if you like
16:19:46 <AnMaster> right
16:20:12 <ais523> in fact that's what messed up oklopol's C-INTERCAL installation recently, I accidentally gave them the wrong yacc-generated header file and all the token numbers were wrong
16:23:34 <AnMaster> ais523, what are {W} and {D}?
16:23:56 <ais523> AnMaster: they're references to regexen defined earlier in the file
16:24:06 <ais523> if you scroll up, you'll see their definitions
16:24:13 <AnMaster> also I guess // comments would be like: //.*$
16:24:16 <AnMaster> to match then
16:24:18 <AnMaster> them*
16:24:26 <AnMaster> ah right
16:24:26 <ais523> yes, I think so
16:24:28 <ais523> maybe \/\/
16:24:34 <ais523> because I'm not sure which chars have to be escaped
16:24:43 <ais523> safest to escape all the punctuation chars
16:25:10 <AnMaster> hm... does it have to be a tab to separate the regex from the code processing it?
16:25:19 <AnMaster> or does spaces work too
16:25:57 -!- Corun has joined.
16:27:08 <ais523> AnMaster: any whitespace works
16:27:17 <AnMaster> newlines too?
16:27:18 <ais523> tabs are neater, though
16:27:20 <AnMaster> this is a long match
16:27:21 <ais523> AnMaster: I think so
16:27:50 -!- Slereah_ has joined.
16:29:20 <AnMaster> ais523, you said longest match? but what if a short one should take precedence?
16:29:26 <AnMaster> say, //.*$
16:29:48 <ais523> AnMaster: how could that be shorter than the thing that accidentally takes precedence over it?
16:29:54 <ais523> the longest-match rule is good for keywords
16:29:58 <AnMaster> multiline match?
16:30:02 <ais523> if you end up violating it you're probably doing things wrong
16:30:11 <ais523> AnMaster: a multiline match that // commenting should take precedence over?
16:30:28 <AnMaster> ais523, a string beginning inside the // comment
16:30:31 <AnMaster> say:
16:30:34 <AnMaster> // "blah
16:30:38 <AnMaster> blah "foo"
16:30:43 <ais523> AnMaster: it's longest match from each particular point
16:30:48 <AnMaster> ah right
16:33:50 <AnMaster> pikhq, what is a valid variable name and function name in Def-BF?
16:34:09 <AnMaster> [A-Za-z][A-Za-z0-9]*
16:34:10 <AnMaster> or?
16:34:43 <pikhq> I'm saying [[:alpha:]_\-][[:alphanum:]]*
16:34:47 <pikhq> Erm.
16:34:56 <pikhq> [[:alpha:]_\-][[:alphanum:]_\-]*
16:35:14 <AnMaster> ok
16:35:55 <AnMaster> pikhq, import: is anything until end of line?
16:36:19 <AnMaster> ais523, other question:
16:36:21 <AnMaster> yylval.str = yytext;
16:36:25 <AnMaster> or do I need to strdup() it?
16:36:35 <ais523> not sure, I'd recommend strdup
16:36:38 <pikhq> AnMaster: I'd assume so.
16:36:49 <ais523> I can't see why lex would be making deep copies itself
16:36:54 <ais523> because normally you don't need them
16:37:04 <ais523> only for identifiers do you need them
16:37:06 <pikhq> Though one may want to pester Rodger soon as he decides to /join #esoteric.
16:37:07 <AnMaster> hm
16:37:14 <ais523> and in professional compilers they tend to be hashed
16:37:17 <pikhq> He's currently on Freenode.
16:37:30 <AnMaster> k
16:37:33 <pikhq> I'd start with strdup.
16:37:56 <AnMaster> hm
16:37:58 <AnMaster> how to parse:
16:38:00 <pikhq> If you find yourself wanting a hash map for usage later, then it's not too hard to move to from strdup. . .
16:38:17 <AnMaster> define: functionname[var, var, var, ...]
16:38:24 <AnMaster> can't do that in one single regex really
16:38:41 <pikhq> That's done in Yacc, not Lex, for starters.
16:38:45 <AnMaster> ah thanks
16:38:58 <AnMaster> so would doing something like: ^import:{W}(.+)$ { yylval.str = strdup(yytext); return tok_import; }
16:39:00 <AnMaster> be wrong?
16:39:13 <ais523> that might be OK
16:39:16 <ais523> lex is for tokenising
16:39:22 <ais523> so you don't use it to match brackets or anything like that
16:39:27 <AnMaster> ah
16:39:34 <ais523> basically you're there defining import to be outside the normal structure of the language
16:39:37 <ais523> which may be what you want
16:40:01 <AnMaster> well it will take a filename as parameter
16:40:02 <pikhq> Believe me, import: is a token.
16:40:09 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
16:40:18 <pikhq> So, that's probably valid.
16:40:24 <AnMaster> pikhq, oh? but it will be resolved at compile time right?
16:40:45 <pikhq> Though I *think* that line will have yytext also including the "import:" string.
16:40:46 <ais523> AnMaster: what do you mean by that?
16:40:54 <pikhq> *That* is probably not what you want.
16:41:02 <ais523> pikhq: yes, I think so, there's a different directive to get the first () group IIRC
16:41:07 <ais523> but it's a while since I messed with that particular syntax
16:41:18 <AnMaster> hm
16:41:22 <pikhq> I recommend pulling up the flex manual.
16:41:26 <pikhq> (info flex)
16:41:32 <ais523> yes, info flex is excellent
16:41:42 <pikhq> GNU's documentation generally is.
16:41:52 <AnMaster> pikhq, I'm looking at it's website's doc
16:41:58 <AnMaster> that crashes less than info
16:42:07 <pikhq> Same exact documentation.
16:42:11 <AnMaster> yep
16:42:30 <pikhq> Just a different argument to infotex to make it output HTML instead of .info, after all.
16:42:44 -!- RodgerTheGreat has joined.
16:43:03 <RodgerTheGreat> 'sup everybody?
16:43:33 <AnMaster> RodgerTheGreat, hi
16:43:44 <AnMaster> in Def-BF how are the arguments to ? given?
16:43:54 <pikhq> RodgerTheGreat: AnMaster is the guy working on Def-BF (obviously). Enjoy. ;)
16:43:56 <AnMaster> as ?0x123 or in decimal or?
16:44:09 <RodgerTheGreat> AnMaster: that's something I omitted... hm
16:44:21 <AnMaster> RodgerTheGreat, I'd assume hexdecimal for now
16:44:33 -!- Corun has quit ("This computer has gone to sleep").
16:44:37 <RodgerTheGreat> I think the original idea was to allow both 0x1234 and regular integer representations
16:45:01 <RodgerTheGreat> having both would be convenient, but you can have just hex at the lowest level if you want
16:45:03 <pikhq> Since it might be a while before I actually get Def-BF sanely working, I'll end up following AnMaster's semantics for the most part.
16:45:05 <tusho> RodgerTheGreat: anmaster's implementation is a VM in C, just FYI
16:45:14 <tusho> not the to-the-metal one you were going to do, iirc
16:45:15 <RodgerTheGreat> nifty
16:45:20 <AnMaster> well will be
16:45:23 <AnMaster> it will take a while
16:45:32 <AnMaster> as I'm learning flex/bison at the same time
16:45:34 <RodgerTheGreat> I don't have a problem with VMs
16:45:51 <pikhq> Hell, if his implementation is flexible enough, I'll just make an asm backend.
16:45:52 <RodgerTheGreat> and if it makes it easier to develop while it builds interest, it's a good tradeoff
16:46:02 <AnMaster> hah
16:46:30 <RodgerTheGreat> as long as you don't code it in Ruby... :)
16:46:38 <AnMaster> the pre-processor will strip all function information and such, and just generate the basic commands part
16:46:46 <RodgerTheGreat> yup
16:46:56 <RodgerTheGreat> that was the original intent
16:46:59 <AnMaster> that's tire 1 and tire 2
16:47:19 <RodgerTheGreat> as opposed to "tiers"?
16:47:27 -!- oklopol has joined.
16:47:29 <AnMaster> typo
16:47:31 <AnMaster> anyway
16:47:40 <AnMaster> RodgerTheGreat, what about standard library?
16:47:48 <ais523> hi oklopol
16:48:04 <AnMaster> the second tier will generate one additional instruction, "use compiler implementation of this standard library function"
16:48:07 <AnMaster> that's my idea at least
16:48:24 <RodgerTheGreat> AnMaster: I intended for the standard library to be coded in the language whenever remotely possible
16:48:36 <AnMaster> yes but the compiler could optimize some
16:48:56 <RodgerTheGreat> some kind of external call (to C functions, for example, as pikhq has been thinking about) would be useful though, yes
16:50:22 <RodgerTheGreat> I'd say, write the standard libs first, and then say somewhere in the spec that compilers may substitute their own implementations as long as they produce the same behavior
16:50:25 <AnMaster> my apps will be called: dbc and dpp
16:50:30 <AnMaster> the suite defc
16:50:36 <RodgerTheGreat> cool
16:50:49 <pikhq> RodgerTheGreat: I'd also recommend differentiating between a hosted and freestanding implementation, as C does.
16:51:23 <RodgerTheGreat> pikhq: explain what you mean by hosted in this case
16:51:23 <pikhq> (a hosted implementation is running on a working OS, with a stdlib. A freestanding implementation is on bare metal: no stdlib)
16:51:54 <RodgerTheGreat> well, I figure at least initially we'll go with an entirely statically-linked scheme
16:52:02 <RodgerTheGreat> so freestanding
16:52:22 <RodgerTheGreat> as I imagine that's the implementation difference between those approaches
16:53:23 <ais523> RodgerTheGreat: they're terms in the C standard, "hosted" means you're guaranteed to have all the standard library and main works as you expect, "freestanding" means that only a small amount of the stdlib need be there (for instance you might not have printf) and the calling conventions can be strange
16:53:39 <RodgerTheGreat> ah
16:53:39 <oklopol> hi ais523
16:53:48 <pikhq> A freestanding implementation has barely anything.
16:54:30 <pikhq> GCC's freestanding mode, IIRC, just has a few builtin functions from math.h.
16:54:39 <RodgerTheGreat> well, when I say "standard library", I tend to think of it like the Java API- it's a set of tools you're guaranteed to have in every implementation, thus the value of writing them in the language itself.
16:54:55 <AnMaster> http://rafb.net/p/cq8ROs23.html
16:55:02 <pikhq> A systems programming language can't be that way. ;)
16:55:09 -!- lilja has joined.
16:55:41 <RodgerTheGreat> pikhq: that isn't necessarily true. The standard library doesn't need to be huge and sprawling
16:55:46 <pikhq> Realistically, it *will* be running in environments without anything set up except maybe the BIOS.
16:56:17 <pikhq> And if it's starting up from 32-bit mode on an x86, it won't even have that.
16:57:03 <RodgerTheGreat> I'm imagining the standard library as consisting of things like array manipulation, string stuff, complex math, possibly some simple data structures and a few I/O helper functions
16:57:29 <pikhq> Hmm.
16:57:31 <RodgerTheGreat> I'm not saying it should come standard with an XML parser or something
16:57:39 <ais523> with freestanding, you mostly just get things like limits.h and setjmp
16:57:42 <ais523> nothing fancy like malloc
16:57:56 <pikhq> You're saying something closer to PEBBLE's standard macros, then.
16:58:09 <RodgerTheGreat> I guess
17:01:33 <RodgerTheGreat> but I hope it's clear that all of those things can be cleanly and portably implemented in Def-BF itself, so there's no reason for them not to be available at compile-time
17:02:43 <tusho> RodgerTheGreat: You need malloc for string manip.
17:09:55 -!- Hiato has joined.
17:13:44 <AnMaster> tusho, depends
17:13:57 <tusho> AnMaster: OK, most of the time, for most operations.
17:14:03 <AnMaster> memcpy(), strstr(), there are a few
17:14:28 <ais523> tusho: you don't need malloc for string manipulation, just to make new strings
17:14:34 <ais523> which you often want to do as a result of string manipulation
17:14:36 <tusho> ais523: sometimes you do!
17:14:38 <tusho> e.g. concat
17:14:41 <ais523> in-place manipulation rarely needs malloc
17:14:52 <ais523> tusho: even an in-place concat doesn't need malloc if you have the space beforehand
17:14:59 <ais523> which you can do in many circumstances
17:15:06 <AnMaster> tusho, what about passing pointers to pre-allocated buffers around
17:15:11 <tusho> well yes these are all very valid
17:15:12 <tusho> even so
17:15:25 <tusho> RodgerTheGreat envisioned array manipulation and data structures
17:15:31 <tusho> i'll bet you're gonna need malloc somewhere along the line for THEM
17:15:43 <tusho> perhaps def-bf should have a two tier library, RodgerTheGreat, pikhq
17:15:49 <tusho> tier one will run on even the bare metal
17:15:55 <tusho> tier two requires things like malloc and other niceties
17:16:12 <tusho> so you can use tier one to implement all the basics for an OS and then get tier two
17:19:47 <AnMaster> hm is a recursive parser stupid or?
17:19:58 <AnMaster> for [ ]
17:20:06 <RodgerTheGreat> AnMaster: sometimes it's really easy to implement that way
17:20:18 <AnMaster> yes it is here in the low level tier
17:20:28 <AnMaster> but you could run into issues
17:20:31 <AnMaster> if it is deep enough
17:21:35 <RodgerTheGreat> in general I think we should be thinking about eventually making this self-hosting (which is important for it to become a serious systems programming language of any kind), so we shouldn't make use of things we don't know how to implement ourselves
17:22:13 <AnMaster> um?
17:22:29 <AnMaster> RodgerTheGreat, I don't plan to write a Def-BF compiler in Def-BF
17:22:50 <pikhq> I would be quite willing to, once I know a hell of a lot more about parsers.
17:23:01 <pikhq> I know *just* enough to use Yacc ATM.
17:23:02 <oklopol> AnMaster: well there are other people who know how to code
17:23:08 <RodgerTheGreat> yeah, this is something pikhq and I have discussed
17:23:26 <oklopol> yacc is for noobs, parsers should be written manually :P
17:23:44 <pikhq> Once I know enough to hand-write, say, a recursive descent parser, then I'd be quite willing to implement Def-BF in Def-BF.
17:24:17 <oklopol> it's not as hard as you'd think
17:24:45 <RodgerTheGreat> oklopol: agreed
17:24:48 <ais523> oklopol: I actually wrote an LALR(1) parser in VBA once
17:24:52 <AnMaster> well for now I will. parse it as hexdecimal
17:24:53 <AnMaster> with 0x
17:24:54 <ais523> back when I didn't have access to any decent programming languages
17:25:11 <RodgerTheGreat> it takes time and can be a little tedious, but it isn't tremendously hard if the syntax is straightforward
17:25:14 <oklopol> i heard about parsing during my python time
17:25:49 <oklopol> and that is something i never invented myself
17:26:14 <pikhq> oklopol: I might just wait for the college class on it.
17:26:20 <pikhq> Key word: *might*.
17:26:27 <oklopol> that's one possibility
17:26:28 * tusho wants to see oklopol's Parserless Languge
17:26:31 <tusho> *language
17:26:39 <pikhq> We'll see once I've got a Def-BF kernel running. ;)
17:26:39 <oklopol> tusho: i have lots
17:26:47 <tusho> oklopol: but just about everything is a parser
17:26:49 <tusho> e.g. a brainfuck parser
17:26:53 <oklopol> i have this one basic with operator precedence and all, without parsing
17:26:55 <tusho> is still a parser
17:26:57 <tusho> oklopol: uhhh
17:26:59 <tusho> you still parse it
17:27:00 <oklopol> just strings and rewrite rules :))
17:27:03 <tusho> it's just mingled with the interpretation
17:27:06 <tusho> still parsing
17:27:07 <tusho> :)
17:27:09 <ais523> tusho: what about MiniMAX?
17:27:11 <oklopol> err well yes, i read the strings.
17:27:16 <oklopol> but i don't use anything like lists
17:27:20 <ais523> the version where you have to write the program in binary doesn't seem to need a parser
17:27:22 <tusho> ais523: that's about as close to parserless as youc an get
17:27:24 <ais523> you just blit the program into memory
17:27:31 <oklopol> tusho: well duh, that's not what i meant and you know it
17:27:50 -!- olsner has joined.
17:28:23 <oklopol> if you have "parsing" to mean that the interpreter reads your source before it executes it, then yes, everything needs to be parsed
17:28:43 <oklopol> except for a few languages where programs are empty, in which case it's not clear
17:29:21 <oklopol> i guess you could say i never had a separate parsing stage, jsut.
17:29:24 <oklopol> *just
17:30:53 <ais523> oklopol: what if the program's just blitted into memory?
17:32:35 <oklopol> well then you're not really doing the interpreting yourself
17:32:45 <oklopol> i'd say the processor will still parse
17:32:50 <oklopol> err, well not the processor
17:32:58 <oklopol> that guy who gives it the shit to run
17:34:31 * oklopol shows extreme knowledge about hardware
17:34:54 <psygnisfive> o.o
17:35:04 <psygnisfive> oklopol! :D
17:39:20 <AnMaster> yay what a nice recursive parser I made
17:39:24 <AnMaster> for the low level part
17:39:30 <AnMaster> pre-processes code already
17:42:09 -!- Corun has joined.
17:42:40 <oklopol> anyone have a nice java disassembler nearby?
17:51:39 -!- Slereah__ has joined.
18:05:38 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
18:05:50 -!- Slereah_ has joined.
18:16:36 <psygnisfive> lalala
18:16:45 <psygnisfive> dust in the wind = good song
18:16:54 <psygnisfive> actually, that should be a <-
18:17:03 <psygnisfive> since its obviously not a set, nor is it an identity
18:19:10 <lament> i don't like it
18:19:13 <lament> it's whiny
18:19:21 <lament> well, not the song, the singer is whiny.
18:19:26 <lament> the song is bitchy.
18:23:09 <AnMaster> http://rafb.net/p/fdXBOV79.html
18:23:12 <AnMaster> pikhq, ^
18:23:13 <AnMaster> RodgerTheGreat, ^
18:23:31 <AnMaster> some issues still
18:23:34 <pikhq> Sweet; you can parse Brainfuck.
18:23:35 <pikhq> ;p
18:23:37 <tusho> Congratulations you implemented brainfuck.
18:23:37 <RodgerTheGreat> hm
18:23:40 <AnMaster> haha
18:23:42 <AnMaster> very funny
18:23:43 <AnMaster> yes
18:23:45 <AnMaster> ++[>-[>><]<][[-]>+]?0x12Ab2+
18:23:47 <AnMaster> was the program
18:23:50 <AnMaster> something doesn't work
18:23:56 <tusho> AnMaster: You parsed all of it apart from the bit that wasn't brainfuck.
18:24:01 <tusho> You can parse brainfuck! Awesome.
18:24:05 <tusho> :p
18:24:11 <tusho> In fact.
18:24:12 <AnMaster> the node is there
18:24:14 <tusho> You can't parse brainfuck.
18:24:16 <tusho> It ends with a +.
18:24:21 <AnMaster> yes...
18:26:24 <AnMaster> tusho, oh the bug was in the tree dumping code
18:26:30 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
18:30:18 * pikhq will be sure to steal your parser. :p
18:30:40 <pikhq> Hmm. Out of curiosity, why are you having [-] as its own little bit of syntax?
18:31:40 <ais523> pikhq: that's how e's optimising it
18:31:47 <ais523> but that should be in the parser not the lexer really
18:32:27 <tusho> It shouldn't be in the parser.
18:32:29 <AnMaster> pikhq, to optimize
18:32:31 <tusho> It should be in a seperate optimizer step.
18:32:35 <AnMaster> and no it isn't in parser
18:32:36 <pikhq> That should be a transformation on the parsed tree.
18:32:36 <tusho> So that [><-] can be optimized.
18:32:37 <AnMaster> it is in optimizer
18:32:38 <AnMaster> ...
18:32:42 <pikhq> Oh.
18:32:42 <tusho> So that >< is eliminated
18:32:43 <tusho> then [-]
18:32:52 <tusho> i think that's called peephole optimization
18:33:03 <pikhq> I guess your optimization is just not yet done, then.
18:33:05 <AnMaster> tusho, well the >< step isn't implemented yet
18:33:07 <AnMaster> but it will be
18:33:14 <ais523> maybe I should make a Brainfuck version of OIL...
18:33:16 <AnMaster> currently the optimize step only handles [-] and [+]
18:33:26 <tusho> ais523: nah, the compiler language is more expressive for this
18:33:31 <AnMaster> it will handle renumbering and so on
18:33:32 <tusho> since there's a lot of complex opts
18:33:37 <tusho> that need a lot of computation and lookahead/behind
18:33:42 <ais523> I suppose so
18:34:03 <AnMaster> however the [-] is converted to a single new token in the optimize step
18:34:07 -!- Corun has quit ("This computer has gone to sleep").
18:34:13 <AnMaster> a "zero current cell" token
18:34:54 <pikhq> Convert that [-] to ?0x0. ;)
18:35:26 <AnMaster> pikhq, well it is it's own value now, as I thought brainfukc
18:35:32 <AnMaster> brainfuck* but that would work
18:36:29 <AnMaster> also for most other things the param will be count of instruction
18:36:34 <AnMaster> as in "add 4"
18:36:40 <AnMaster> will also be done in optimizer
18:37:24 <pikhq> Fair 'nough.
18:37:36 <AnMaster> now to write code emitter
18:37:41 <pikhq> Hmm. This makes me half-tempted to learn how to write a GCC frontend.
18:37:50 <AnMaster> pikhq, GAH
18:38:03 <pikhq> ;p
18:38:34 <psygnisfive> oklopol whens your birthday
18:46:55 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
18:52:57 -!- Corun has joined.
18:55:20 <AnMaster> hm
18:55:23 <AnMaster> code generation is hard
18:55:47 <psygnisfive> not if you use lisp :D
18:55:51 <AnMaster> blergh
18:55:54 <AnMaster> well I generate C
18:55:55 <AnMaster> using C
18:56:00 <psygnisfive> oh.
18:56:01 <psygnisfive> ouch.
18:56:04 <psygnisfive> why is it hard??
18:56:05 <AnMaster> as in generate a C file
18:56:06 <tusho> that is not hard.
18:56:17 <AnMaster> psygnisfive, because it's first time I do it I guess
18:56:21 <psygnisfive> lol
18:56:28 <tusho> i guess AnMaster can implement basic esolangs, and optimize things to hell
18:56:30 <tusho> that'd explain cfunge
18:56:39 <psygnisfive> i mean, i guess its hard because C requires that you fuck with strings in nasty ways but
18:56:44 <AnMaster> well we all live and learn
18:56:47 <tusho> psygnisfive: still not that hard
18:56:55 <AnMaster> psygnisfive, no string handling needed really
18:56:55 <tusho> i mean a lot of the time you can just print it out as you go
18:56:56 <psygnisfive> i'd hate to have to manage strings in c
18:57:04 <AnMaster> just trying to figure out how to generate code the best way
18:57:09 <psygnisfive> yes, print as you go is good.
18:57:10 <tusho> AnMaster: fprintf.
18:57:18 <AnMaster> tusho, yes of course...
18:57:20 <AnMaster> but it wasn't that
18:57:21 <tusho> and a switch around the type of the instruction in a main loop
18:57:22 <tusho> you're done
18:57:26 <AnMaster> it was how to use gotos and so
18:57:56 <tusho> AnMaster: "don't"
18:58:04 <AnMaster> tusho, eh?
18:58:11 <AnMaster> the generated code will use gotos
18:58:16 <tusho> why
18:58:16 <AnMaster> it's the only sane way for jump
18:58:19 <psygnisfive> why? :(
18:58:24 <psygnisfive> gotos are evil! :(
18:58:25 <tusho> i mean goto is fine in generated code
18:58:26 <AnMaster> % jump to absolute address in code
18:58:26 <AnMaster> : resume execution from previous address
18:58:27 <AnMaster> look
18:58:28 <tusho> but why do you need to use it
18:58:29 <tusho> ah
18:58:30 <tusho> okay then
18:58:31 <AnMaster> tusho, exactly
18:58:32 <AnMaster> it is
18:58:33 <AnMaster> about
18:58:34 <AnMaster> generated
18:58:35 <AnMaster> code
18:58:36 <AnMaster> not
18:58:37 <tusho> yes
18:58:37 <AnMaster> about
18:58:38 <tusho> i
18:58:38 <tusho> know
18:58:39 <psygnisfive> omg stop
18:58:39 <tusho> that
18:58:40 <tusho> but
18:58:41 <AnMaster> the code I write by hand
18:58:41 <tusho> the
18:58:42 <tusho> point
18:58:42 <tusho> is
18:58:43 <tusho> most
18:58:45 <tusho> of
18:58:47 <tusho> the
18:58:49 <tusho> time
18:58:51 <tusho> you
18:58:53 <tusho> can
18:58:53 <psygnisfive> tusho! >_<!
18:58:55 <tusho> avoid
18:58:57 <tusho> it
18:59:01 <tusho> psygnisfive: blame AnMaster
18:59:05 <AnMaster> yes loops will use while {}
18:59:12 <psygnisfive> someone should make a keyboard map that swaps space and return
18:59:29 <psygnisfive> yay! :D
18:59:37 <psygnisfive> i downloaded the Theory of Computation torrent
18:59:39 <psygnisfive> with like
18:59:41 <psygnisfive> 20 books on ToC
18:59:43 <psygnisfive> who wants? :D
19:00:00 <oklopol> i
19:00:20 <oklopol> send i like virtual bookers
19:00:21 <psygnisfive> 30 books actually
19:00:33 <oklopol> well that's a bit too much send like 29 of them
19:00:40 <psygnisfive> ;)
19:00:52 <oklopol> just take some bits of the torrent file and i think that'll do it
19:02:19 -!- cherez has quit ("Leaving.").
19:02:28 <psygnisfive> hahaha
19:02:31 <psygnisfive> actually it is 29 books
19:02:36 <psygnisfive> and one info file
19:02:37 <psygnisfive> hahahahaha
19:04:15 <psygnisfive> http://www.wellnowwhat.net/transfers/Theory%20of%20Computation.zip
19:04:18 <psygnisfive> not yet
19:04:23 <psygnisfive> give it 10 minutes
19:04:26 <psygnisfive> but thats where itll be
19:06:05 <AnMaster> psygnisfive, how large?
19:06:09 <AnMaster> and what does it contain
19:06:14 <psygnisfive> 100ish meg
19:06:21 <AnMaster> psygnisfive, https?
19:06:29 <psygnisfive> no
19:06:32 <psygnisfive> its just my web server
19:07:02 <tusho> psygnisfive: AnMaster thinks that he's being spied on
19:07:04 <tusho> downloading illegal material.
19:07:13 <AnMaster> which is why I won't do it anyway
19:07:16 <Deewiant> and he thinks that https would help
19:07:32 <AnMaster> not that it would help much
19:07:43 <tusho> Deewiant: I was leaving that bit of humour to the reader.
19:07:48 <tusho> Subtlety and all that.
19:07:55 <Deewiant> :-)
19:08:23 <tusho> don't worry AnMaster
19:08:27 <tusho> they're probably DIRTY PDFs
19:08:29 <tusho> you couldn't read them anyway
19:09:08 <AnMaster> I think... I will have to use setjmp
19:09:09 <AnMaster> blergh
19:09:25 <AnMaster> but it is the only possible way to do resume from jump
19:09:33 * tusho bets AnMaster's code generator handles indentation
19:09:51 <AnMaster> tusho, um? what?
19:09:55 <AnMaster> yes of course :P
19:10:02 <AnMaster> at least now that you said it
19:10:04 * tusho groans
19:10:05 <AnMaster> it didn't before
19:10:11 <AnMaster> tusho, thanks for the idea
19:10:14 <AnMaster> I'm grateful
19:10:22 <tusho> AnMaster: are you planning on submitting -object code- to a C Beauty Contest or something
19:10:24 <tusho> because you are batshit fucking insane
19:10:37 <AnMaster> tusho, hahah
19:10:40 <AnMaster> it was your idea
19:10:42 <AnMaster> not mine
19:10:47 <tusho> AnMaster: I was being sarcastic
19:10:50 <AnMaster> I wouldn't have done it unless you mentioned it
19:10:54 <AnMaster> but now I will have to
19:11:53 <pikhq> God gave man indent(1) for a purpose.
19:12:02 <AnMaster> astyle > indent
19:12:06 <AnMaster> or I could use the computed goto's of gcc
19:12:07 -!- Corun has quit ("This computer has gone to sleep").
19:12:11 <AnMaster> but I don't want to be gcc specific
19:13:44 <tusho> pikhq: God gave us AnMaster so that we could say things like that and they would go straight from his ears to /dev/null,
19:13:50 <tusho> Why God was so evil I will never know.
19:14:08 <pikhq> God is a BOFH.
19:14:09 <AnMaster> tusho, actually I won't indent the code
19:14:13 <pikhq> And Jesus his PFY.
19:14:13 <AnMaster> but you believed I would
19:14:15 <AnMaster> amusing
19:14:25 <AnMaster> but doesn't C-INTERCAL indent it's code?
19:14:28 <AnMaster> iirc it does
19:14:34 <tusho> AnMaster: It's not amusing.
19:14:38 <tusho> It's something you would do.
19:14:40 <AnMaster> tusho, what isn't?
19:14:48 <AnMaster> tusho, C-INTERCAL does it
19:14:59 <tusho> not fully, AnMaster
19:15:00 <tusho> only basic
19:15:05 <tusho> i.e. like 3 lines of code
19:15:06 <AnMaster> indeed not fully
19:17:15 <AnMaster> actually I will have to generate gcc specific code
19:17:18 <AnMaster> using computed goto's
19:18:17 <AnMaster> :/
19:19:59 <tusho> you never have to
19:20:00 <tusho> AnMaster: use a switch
19:20:02 <tusho> a big switch
19:20:03 <tusho> around everything
19:20:10 <tusho> int i = 0;
19:20:13 <tusho> switch(i){...}
19:20:17 <tusho> and at the top
19:20:17 <tusho> top:
19:20:19 <AnMaster> ah I see what you mean
19:20:21 <tusho> then to 'goto var'
19:20:22 <AnMaster> interesting idea
19:20:22 <tusho> do
19:20:24 <tusho> 'i=var; goto top'
19:20:29 <tusho> pretty standard stuff
19:20:35 <tusho> and switch fallthrough makes it work elegantly
19:20:47 <AnMaster> oh I can't do loops as while blocks I guess, I need to jump into them
19:21:09 <AnMaster> tusho, yes I see what you mean
19:21:17 <tusho> AnMaster: yes you can
19:21:17 <AnMaster> however, loops won't be fun
19:21:19 <tusho> switch is freeform
19:21:20 <tusho> while (x) {
19:21:23 <tusho> case 3: ...
19:21:24 <tusho> case 4: ...
19:21:25 <tusho> }
19:21:29 <tusho> will go to the toplevel switch
19:21:38 <AnMaster> oh yes.... forgot that C "feature"
19:21:45 <AnMaster> that you can jump into other blocks
19:21:58 <tusho> congrats, you're a duff-devicer ("one who abuses the freeform behaviour of switch in C").
19:22:47 <AnMaster> yes I know about duff's device
19:22:55 <lament> is there a reason for switch behaving the way it does?
19:23:27 <oklopol> so that noobs would fail and you could laugh at them?
19:24:22 <tusho> lament: it's simpler to implement
19:24:29 <tusho> and it allows for tricks like this
19:24:34 <tusho> which was relevant in the 70s
19:24:41 <tusho> lament: really
19:24:45 <tusho> switch () { ... } is just a goto
19:24:48 <tusho> and 'case x' a label
19:24:51 <tusho> thus why it's case x:
19:24:54 <tusho> not case (x) { ... }
19:25:07 <AnMaster> tusho, most likely it is a goto into a jump table
19:25:18 <AnMaster> which then points to the code bit in question
19:25:28 <tusho> it is
19:25:40 <AnMaster> so you can just do something like: JUMP_RELATIVE_PC variable
19:25:43 <AnMaster> and then jump again
19:25:55 <lament> tusho: i don't buy that
19:26:02 <tusho> lament: then don't
19:26:16 <oklopol> err isn't the reason just
19:26:28 <oklopol> case'0':case'1':case'2': etc
19:26:41 <oklopol> not that i know, just always assumed
19:26:44 <psygnisfive> oklopol
19:26:46 <psygnisfive> upload done
19:26:47 <psygnisfive> btw
19:26:48 <oklopol> psygnisfive
19:26:51 <oklopol> :o
19:27:03 <oklopol> psygnisfive: what upload? :D
19:27:09 <psygnisfive> the books!
19:27:21 <oklopol> where did you upload them?
19:27:30 <tusho> the reason is that partly oklopol
19:27:30 <tusho> the
19:27:33 <tusho> case a: case b: case c:
19:27:34 <tusho> ....
19:27:35 <psygnisfive> http://www.wellnowwhat.net/transfers/Theory%20of%20Computation.zip
19:27:36 <tusho> case d: ...
19:27:37 <tusho> etc
19:27:43 <tusho> and the easiest way to do that?
19:27:46 <tusho> as it is now.
19:29:34 <oklopol> reasons raisins, no one cares about reasons
19:29:40 <oklopol> psygnisfive: thanks
19:29:46 <psygnisfive> oklopol: always :)
19:39:02 -!- Corun has joined.
20:07:15 <psygnisfive> quiet.
20:18:37 <tusho> loud.
20:19:25 <AnMaster> yay it (partly) works
20:22:19 <oklopol> that's what she said
20:22:24 <psygnisfive> haha
20:23:20 <oklopol> sorry, it's just i've never used that so that it made even remotely sense.
20:23:29 <psygnisfive> lol
20:25:13 -!- kotrin has joined.
20:26:22 -!- kotrin has left (?).
20:38:45 <AnMaster> well it generates a executable that compiles now
20:38:48 <AnMaster> an*
20:38:55 <AnMaster> doesn't work though :P
20:45:49 <pikhq> Whoo.
20:46:59 <tusho> You know, AnMaster, Def-BF isn't exactly hard.
20:47:13 <AnMaster> tusho, well I never generated C code before
20:47:22 <tusho> Yeah because generating C is so hard
20:47:26 <AnMaster> no
20:47:29 <AnMaster> but it is new to me
20:48:32 <oklopol> i've generated c code manually, like a true codar
20:48:42 <oklopol> by pressing keys
20:48:45 <AnMaster> well I coded in C...
20:48:58 <AnMaster> tusho, but I admit this is my first compiler
20:49:00 <psygnisfive> oklopol P
20:49:00 <psygnisfive> :P
20:49:01 <oklopol> bow before me and shit, this stuff is bigger than ya.
20:49:03 <AnMaster> as in compile to other language
20:49:08 <Deewiant> manual code generation, wow
20:49:20 <oklopol> "bow before me and shit"
20:49:22 <oklopol> well done
20:49:25 <tusho> hahah
20:49:26 <psygnisfive> :P
20:49:28 * tusho bows before oklopol
20:49:31 * tusho shits
20:49:31 <psygnisfive> well, you ARE into scat
20:49:38 <AnMaster> pikhq, I figured out one extra instruction I need when optimizing, constant call
20:49:48 <AnMaster> pikhq, if the instruction just before is a load constant
20:50:14 <AnMaster> that's specific to Def-BF
20:55:57 <oklopol> constant call, it's the friend of the damned, press its buttons and you'll know its name...
20:58:20 <bsmntbombdood> did someone say scat?
20:58:53 -!- Corun has quit ("This computer has gone to sleep").
20:58:59 <psygnisfive> lol
21:02:42 -!- Hiato has quit ("Leaving.").
21:03:03 <oklopol> I'm the Scatman....repeat after me
21:03:03 <oklopol> It's a scoobie oobie doobie scoobie doobie melody
21:03:05 <oklopol> I'm the Scatman....repeat after me
21:03:05 <oklopol> It's a scoobie oobie doobie scoobie doobie melody
21:03:20 <RodgerTheGreat> it loses something when it's typed
21:03:27 <oklopol> well
21:03:41 <oklopol> the actual chorus @ the lyrics i copied from...
21:03:57 <oklopol> (Scatting)
21:03:59 <oklopol> I'm the Scatman
21:04:01 <AnMaster> ah found it
21:04:01 <oklopol> (Scatting)
21:04:05 <oklopol> I'm the Scatman
21:04:09 <oklopol> (Scatting)
21:04:23 <oklopol> although i guess that's funnier.
21:04:45 <oklopol> i used to like that song
21:04:55 <oklopol> perhaps i still do, haven't heard it for ages
21:08:42 <psygnisfive> such a good song :O
21:08:51 <RodgerTheGreat> it's catchy, I'll give it that
21:09:28 <psygnisfive> in the music video theres this boy thats hot
21:09:37 <psygnisfive> who really needs to sit on my cock
21:09:44 <RodgerTheGreat> ...
21:09:59 <oklopol> if it rhymes it must be true.
21:10:33 <RodgerTheGreat> oklopol: what if it's a slant rhyme?
21:10:48 <psygnisfive> whats a slant rhyme?
21:11:56 <RodgerTheGreat> http://en.wikipedia.org/wiki/Slant_rhyme
21:12:09 <AnMaster> oj
21:12:11 <AnMaster> ok*
21:12:12 <AnMaster> this
21:12:19 <AnMaster> I will do just to irritate tusho
21:12:20 <psygnisfive> oh
21:12:22 <psygnisfive> same-coda
21:12:23 <AnMaster> I will load the input file
21:12:29 <AnMaster> using mmap()
21:12:34 <AnMaster> just to make tusho go crazy
21:12:41 <tusho> actually mmap is less work than reallocating a buffer all the time
21:12:50 <AnMaster> tusho, that is another aspect
21:12:54 <psygnisfive> as opposed to same rime
21:18:12 -!- pikhq has left (?).
21:34:19 -!- Corun has joined.
21:37:31 <AnMaster> RodgerTheGreat, what is the file extension for Def-BF?
21:37:51 <RodgerTheGreat> there is no convention yet
21:37:55 <RodgerTheGreat> I suggest .dbf
21:37:59 <AnMaster> ok thanks
21:43:26 -!- atsampson has quit (Read error: 104 (Connection reset by peer)).
21:44:11 <AnMaster> I have yet to implement input
21:44:14 <AnMaster> apart from that it works
21:44:22 <AnMaster> the low level part that is
21:44:31 <AnMaster> oh wait call doesn't work completely
21:44:33 <AnMaster> there is a bug there
21:44:36 <AnMaster> will fix that tomorrow
21:44:48 <tusho> RodgerTheGreat: .bf is befunge
21:44:52 <tusho> may I suggest .defb
21:45:04 -!- atsampson has joined.
21:45:58 <AnMaster> tusho, he said .dbf not .defbf
21:46:02 <AnMaster> or .bf
21:46:24 <tusho> yes
21:46:25 <tusho> the point is
21:46:29 <tusho> 'bf' means befunge in file extensions
21:46:33 <tusho> so .defb is better
21:46:37 <tusho> or .dfb
21:46:44 <AnMaster> fuckbrain?
21:46:54 <tusho> .defbf would be acceptable also
21:47:04 <AnMaster> well RodgerTheGreat decides
21:47:14 <tusho> AnMaster: that's why I pinged RodgerTheGreat
21:47:15 <tusho> not you
21:47:17 <AnMaster> yes
21:47:31 <AnMaster> $ ./dbc -o tmp/helloworld.c tmp/helloworld.b
21:47:31 <AnMaster> File written to tmp/helloworld.c, to compile use:
21:47:31 <AnMaster> gcc -std=c99 tmp/helloworld.c
21:47:37 <RodgerTheGreat> .db
21:47:39 <AnMaster> :)
21:47:42 <AnMaster> data base?
21:47:43 <tusho> RodgerTheGreat: conflicts with database
21:47:49 <tusho> that's a common sqlite extension
21:47:50 <tusho> for instance
21:47:54 <AnMaster> RodgerTheGreat, call stack is broken
21:47:58 <AnMaster> will redeign tomorrow
21:48:02 <Deewiant> tusho: there are always conflicts
21:48:04 <AnMaster> and reimplement optimizing
21:48:13 <tusho> Deewiant: but .defb and .defbf are unlikely to.
21:48:14 <RodgerTheGreat> jesus just pick something and stop pinging me
21:48:18 <Deewiant> if you want one <= 4 chars, at least
21:48:56 <AnMaster> .dfb
21:48:58 <AnMaster> what about that?
21:49:12 <AnMaster> RodgerTheGreat, btw:
21:49:18 <Deewiant> sorry, it's a "Data Flask Data Formula File"
21:49:19 <AnMaster> ==2443== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 5 from 1)
21:49:19 <AnMaster> ==2443== malloc/free: in use at exit: 0 bytes in 0 blocks.
21:49:19 <AnMaster> ==2443== malloc/free: 114 allocs, 114 frees, 5,088 bytes allocated.
21:49:21 <Deewiant> http://filext.com/file-extension/dfb
21:49:21 <AnMaster> from compiler
21:49:30 <tusho> Deewiant: .db is pretty conflicty though.
21:49:40 <tusho> and bf means befunge in file extensions
21:49:41 <tusho> to esolangers
21:49:42 <Deewiant> sure, but on the other hand that makes it a good file extension in some cases
21:49:47 <AnMaster> ==2559== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 5 from 1)
21:49:47 <AnMaster> ==2559== malloc/free: in use at exit: 0 bytes in 0 blocks.
21:49:47 <AnMaster> ==2559== malloc/free: 1 allocs, 1 frees, 65,536 bytes allocated.
21:49:50 <AnMaster> from compiled app
21:49:53 <Deewiant> in this case, though, I wouldn't go with it.
21:50:58 <AnMaster> however
21:51:04 <AnMaster> the file extension of brainfuck is .b
21:51:14 <AnMaster> so dfb makes sense
21:51:22 <Deewiant> why not .defb
21:51:22 <AnMaster> I vote for .dfb
21:51:28 <AnMaster> Deewiant, DOS!
21:51:30 <AnMaster> ;P
21:51:34 <AnMaster> at least ais would say that
21:51:45 <AnMaster> 8.3 remember?
21:51:48 <Deewiant> he would, but you're not ais
21:51:49 * AnMaster shudders
21:51:57 <Deewiant> and I'm asking you
21:52:00 <Deewiant> why not .defb :-P
21:52:02 <AnMaster> Deewiant, well I give same issue
21:52:06 <AnMaster> why it could be a problem
21:52:11 <Deewiant> and why would you care about DOS
21:52:15 <AnMaster> as Def-BF is a system programming language
21:52:20 <AnMaster> what if they port FreeDOS to it?
21:52:47 <Deewiant> freeDOS supports beyond 8.3 doesn't it?
21:52:52 <AnMaster> no clue
21:53:05 <AnMaster> anyway I know a good extension
21:53:06 <AnMaster> .d
21:53:12 <AnMaster> no one would use that ;P
21:53:21 <Deewiant> anything 1-char is taken many times over
21:53:29 <Deewiant> anything 2-char is taken at least once
21:53:30 <AnMaster> yeah guess so
21:53:36 <Deewiant> most 3-chars are, too
21:53:53 <AnMaster> Deewiant, sure .c is taken more than once?
21:53:58 <AnMaster> I can't believe that
21:54:05 <tusho> AnMaster: of course
21:54:07 <Deewiant> oh, sure
21:54:08 <AnMaster> wtf
21:54:09 <Deewiant> http://filext.com/file-extension/c
21:54:13 <AnMaster> that makes no sense
21:54:16 <tusho> yes it does
21:54:17 <Deewiant> 8 times, or 7?
21:54:21 <tusho> not all the world is C, AnMaster
21:54:37 <lament> actually, all the world is C.
21:54:38 <Deewiant> 7, turns out
21:54:52 <AnMaster> well night
21:54:54 <AnMaster> got to go
21:54:55 <AnMaster> cya
21:55:02 <Deewiant> ya
21:55:10 <tusho> lament: not rly.
21:56:43 <AnMaster> wait
21:56:45 <AnMaster> about C
21:56:49 <AnMaster> .c != .C
21:56:51 <AnMaster> yet
21:56:54 <AnMaster> it list both as same
21:57:00 <AnMaster> Extension: C
21:57:00 <AnMaster> Program and/or Extension Function [What's This?] Company [What's This?]
21:57:00 <AnMaster> C/C++ Program File
21:57:14 <AnMaster> Extension: C
21:57:14 <AnMaster> Program and/or Extension Function [What's This?] Company [What's This?]
21:57:14 <AnMaster> UNIX Compact File Achive
21:57:33 <AnMaster> C file is .c
21:57:36 <AnMaster> archive is .C
21:57:39 <AnMaster> tusho, Deewiant ^
21:57:41 <AnMaster> that site is crap
21:57:45 <AnMaster> anyway night really now
21:57:55 <tusho> it's not crap
21:57:59 <tusho> it's very useful
21:58:03 <Deewiant> yeah, it's crap because it's case-insensitive
21:58:06 <Deewiant> it's completely useless
21:58:10 <Deewiant> might as well boycott it
21:58:17 <tusho> Deewiant: just about everything should be case-insensitive really
21:58:21 <tusho> filesystems, web servers
21:58:28 <tusho> humans _don't_ distinguish things just based on their case
21:58:33 <tusho> so it's really stupid
21:58:45 <Deewiant> humans do, though
21:58:51 <Deewiant> God vs god, for instance
21:58:56 <Deewiant> names in general
21:59:15 <Deewiant> Bill, bill, Ray, ray
21:59:29 <Deewiant> depends on the language, of course
21:59:44 <Deewiant> but most things are built with English in mind
22:01:08 <tusho> Deewiant: 'God' vs 'god' is a ridiculous religious notion and requires explicit effort from humans.
22:01:17 <tusho> It wouldn't happen if they weren't commanded to by 'God'.
22:01:41 <Deewiant> I'm not sure I see your point
22:01:50 <lament> "I helped my uncle Jack off a horse" vs. "I helped my uncle jack off a horse"
22:01:58 <Deewiant> ah yes, that's the good example :-)
22:02:41 <tusho> yes
22:02:45 <tusho> names are the exception
22:02:57 <tusho> however, consider http://awesomefamily.org/Jack/
22:02:58 <tusho> vs
22:03:00 <lament> "God" is similar to a name
22:03:02 <Deewiant> and we were talking file _names_ right ;-)
22:03:03 <tusho> http://awesomefamily.org/jack/
22:03:11 <tusho> in English text, for names, it matters.
22:03:18 <tusho> In filenames, I doubt it ever will.
22:03:37 <lament> that's why all sane operating systems are already case-insensitive :D
22:03:58 <Deewiant> case-sensitivity but with case-insensitive matching might be a good middle ground
22:04:15 <lament> Deewiant: and that's exactly what Windows and OS X do.
22:04:17 <Deewiant> e.g. Jack and jack are different but if you only have one, any case matches it
22:04:23 <Deewiant> that's not what I meant
22:04:33 <lament> oh, i guess it's not
22:04:38 <Deewiant> the way I see it you could still have both Jack and jack coexist
22:04:43 <lament> i thought you could have both Foo.txt and foo.txt but you can't :(
22:04:47 <Deewiant> in Windows you can't, at least
22:04:50 <lament> nor OS X
22:04:51 <Deewiant> don't know about OSX
22:04:56 <tusho> lament: that is just confusing though
22:05:03 <tusho> it leads to nothing but mistakes
22:05:12 <lament> sure
22:05:24 <tusho> case-insensitive but case-preserving is basically the sane way to do this
22:05:35 <lament> yes, i believe so
22:05:36 <tusho> In fact you can generalise it
22:05:45 <tusho> matching-insensitive but creation-preserving
22:05:45 <lament> perhaps the biggest argument against case sensitivity is that it's just too difficult in general
22:05:49 <Deewiant> in Windows you can't rename something changing only its case :-/
22:05:49 <lament> although it works fine for English
22:05:52 <tusho> that can apply to tons of stuff
22:05:59 <tusho> Deewiant: that is a flaw, yes
22:06:02 <tusho> same with os x's HFS
22:06:06 <tusho> you have to go to another temp name
22:06:09 <tusho> that is just a technical flaw
22:06:16 <lament> it works for me in OS X
22:06:29 <tusho> lament: open up a terminal
22:06:30 <tusho> try
22:06:33 <tusho> mv foo.txt Foo.txt
22:06:43 <lament> yes, it works
22:06:44 <Deewiant> mv is different
22:06:51 <lament> both with mv and in Finder
22:06:59 <tusho> does it?
22:07:11 <tusho> lament:
22:07:11 <tusho> % mv test.txt Test.txt
22:07:11 <tusho> mv: `test.txt' and `Test.txt' are the same file
22:07:14 <tusho> I'm on tiger
22:07:17 <tusho> maybe leopard fixed t
22:07:20 <lament> maybe.
22:07:28 <Deewiant> or maybe lament's not on HFS?
22:07:40 <tusho> HFS+ actually
22:07:43 <tusho> but I assume he is
22:07:47 <tusho> since he mentions case-insensitivty
22:07:52 <tusho> also installing OS X on non-HFS stuff is a bitch
22:07:54 <lament> how do i see what the filesystem is?
22:07:59 <tusho> lament: disk utility
22:08:38 <lament> "Format :Mac OS Extended (Journaled)"
22:08:43 <tusho> hfs+ then
22:08:47 <tusho> must be leopard
22:08:48 <tusho> yay, then
22:09:05 <Deewiant> haven't tried Vista in this regard, maybe they fixed that there, too ;-)
22:09:26 <Deewiant> although I'm not hopeful ;-P
22:09:49 <tusho> 'hopeful' and vista, *g*
22:10:39 <Deewiant> tusho: this is more of that subtlety you were telling me about. ;-)
22:10:59 <tusho> Deewiant: it only applies to other people
22:11:09 <lament> the problem with case sensitivity is that it's too hard
22:11:15 <lament> unless you restrict yourself to English
22:24:29 -!- pikhq has joined.
22:24:31 <oklopol> yeah vista fixed it
22:25:52 <oklopol> well actually i think you've always been able to do it in explorer
22:27:08 <Deewiant> no, not in XP
22:28:07 <Deewiant> hmm, apparently I'm talking out of my ass and you can
22:28:15 <Deewiant> I wonder what it was that didn't work then
22:28:23 <Deewiant> I know something doesn't :-P
22:33:17 -!- Corun has quit ("This computer has gone to sleep").
22:33:24 <tusho> guys
22:33:28 <tusho> would you live in a police state
22:33:28 <tusho> if
22:33:29 <tusho> wait for it
22:33:30 <tusho> the police
22:33:31 <tusho> were
22:33:32 <tusho> NINJAS
22:33:33 <tusho> i would
22:33:40 <pikhq> I wouldn't.
22:33:49 <pikhq> Because, properly speaking, that would be a ninja state.
22:33:50 <pikhq> :p
22:34:11 <tusho> pikhq: No.
22:34:13 <tusho> They'd be police.
22:34:14 <tusho> But...
22:34:16 <tusho> Ninja.
22:34:17 <tusho> Police.
22:36:33 <oklopol> well life would be the exact same really
22:36:55 <oklopol> heh, god i love ninja jokes
22:37:05 <oklopol> ninja parade & ninja tea party ftw
22:37:16 <tusho> oklopol: exact same ... except for ...
22:37:18 <tusho> NINJA
22:37:19 <tusho> POLICE
22:37:23 <Deewiant> I wouldn't live in a police state, especially one where the cops can kill you without you ever noticing they're there
22:37:39 <tusho> Deewiant: NINJAS.
22:37:44 <tusho> NINJA POLICE STATE.
22:38:15 <Deewiant> m/POLICE STATE/i <-- 1
22:38:37 <Deewiant> hence police state, hence I wouldn't live there, given the choice. :-P
22:38:38 <tusho> Deewiant: NINJAS.
22:38:40 <tusho> GOD DAMNIT.
22:38:43 <tusho> WHAT IS WRONG WITH YOU.
22:38:47 <tusho> FUCKIN' NINJA POLICE.
22:38:48 <tusho> STATE.
22:39:10 <Deewiant> ninjas are cool only when they're not actively trying to mess with you
22:39:36 <tusho> Deewiant: WRONG.
22:39:41 <tusho> Ninjas are the DEFINITION OF COOL POLICE.
22:39:49 <tusho> Therefore, Ninja police state = Cool police police state
22:40:19 <Deewiant> no matter how cool that's still a police state. Sorry! ;-)
22:40:51 <pikhq> It's cool * -cool.
22:40:55 <pikhq> Or, -cool^2.
22:41:11 <pikhq> It's therefore worse than being just -cool (or, that is, uncool).
22:42:06 <tusho> pikhq: But it's NINJA POLICE STATE
22:42:15 <tusho> That's (cool*A(g64,g64))+-cool
22:42:20 <Deewiant> meh, bad troll is bad
22:42:21 -!- Slereah__ has joined.
22:42:30 <tusho> Slereah_: Would YOU live in a ninja police state?
22:42:35 <tusho> A police state, but the police are NINJAS.
22:43:45 <pikhq> tusho: Times, not plus. :p
22:44:01 <tusho> pikhq: No. Plus
22:54:48 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
22:55:11 -!- Slereah_ has joined.
23:01:59 -!- Judofyr has quit.
23:06:25 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
23:09:24 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
23:28:22 -!- Slereah__ has joined.
23:45:03 -!- Corun has joined.
23:47:27 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
23:47:39 -!- Slereah_ has joined.
23:48:57 <pikhq> Some days, I hate Gentoo.
23:49:09 <pikhq> "No disk space available". . .
23:49:21 <pikhq> When the partition in question is only 70% used. . .
23:50:20 <pikhq> If I get that error again, now that the disk is only 56% used, I'm kicking someone in the shin.
23:50:29 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
23:51:12 <oklopol> okay i sense there is something wrong, but i don't know what, because my train of thought got intercepted
23:51:12 <oklopol> ever happen to you?
23:51:43 <pikhq> Regularly.
23:56:16 <oklopol> the fun thing is i have no idea whether it's a seriously depressing thought, or something like "this is a bad name for this function"
23:56:21 <oklopol> it often takes ages to remember what it was
23:56:51 <oklopol> okay i think i got it
23:56:55 <oklopol> failed an oko on a channel, and kinda only half-noticed i did.
23:57:09 <oklopol> usually they're at least a little worse :)
23:58:38 <tusho> oklopol: o
23:58:53 <oklopol> o
23:59:16 <tusho> oko
←2008-07-20 2008-07-21 2008-07-22→ ↑2008 ↑all