←2015-11-20 2015-11-21 2015-11-22→ ↑2015 ↑all
00:02:36 <hppavilion[1]> tswett: Have any suggestions?
00:02:44 <tswett> 2x + y?
00:02:49 <hppavilion[1]> Sure. Why not.
00:03:00 <hppavilion[1]> What should I name it?
00:03:03 <tswett> Ooh, and don't forget:
00:03:05 <tswett> max(x,y)
00:03:08 <hppavilion[1]> Ah, yes
00:03:22 <tswett> Call it the... twexply function!
00:03:46 <hppavilion[1]> tswett: TPY function. T(x, y) for short.
00:04:54 <hppavilion[1]> tswett: What does max return if x=y?
00:05:05 <tswett> x, or, equivalently, y.
00:05:22 <hppavilion[1]> OK
00:06:25 <tswett> Or, if you want to throw a wrench in the monkey works, use the "chamfered max" function.
00:06:40 <tswett> If x > y, returns x. If y > x, returns y. If x = y, returns x+1, or, equivalently, y+1.
00:07:23 <hppavilion[1]> I'll also include sgn() for the variety
00:09:17 <hppavilion[1]> tswett: Here's an idea for a variant of max(x, y) where "it just returns the value" is /not/ the logical output. far(x, y)
00:17:02 <tswett> And what would that be?
00:17:36 <zzo38> Why does CUPS convert the PBM to PDF and then to PostScript and then to ZjStream format when printing my document rather than just converting it directly?
00:18:29 <hppavilion[1]> tswett: Returns which is farther away from 0
00:18:50 <tswett> *nod*
00:19:09 <tswett> Right, and the question is, what does it return if they have the same magnitude, opposite signs?
00:19:42 <hppavilion[1]> tswett: Exactly. It's fairly simple if it's max(), but not if it's this.
00:21:45 <hppavilion[1]> What does f**-1(x) return if f has multiple values that equal x?
00:26:48 <shachaf> I say that f^-1 only exists if f is a bijection.
00:27:40 <hppavilion[1]> shachaf: Oh. I would say it returns a set.
00:27:51 <shachaf> That's a different f^-1
00:28:00 <shachaf> It works for any surjection.
00:30:04 <hppavilion[1]> Oh. I think I'll just stick with that one for mine.
00:30:27 <shachaf> Wait, it works for any function, not just surjections.
00:33:52 <\oren\> hi[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~
00:34:30 <\oren\> wtf where did [6~ come from
00:35:56 <int-e> lots of misinterpreted "page down"s?
00:36:55 <\oren\> weird i don't know why irssi did that
00:37:37 <int-e> It sometimes does such things to me on laggy connections. Screen might play a role in that as well.
00:40:08 <Taneb> Final round of try-outs for my uni's University Challenge team is tomorrow...
00:40:29 -!- mathe0logic has joined.
00:41:17 <tswett> hppavilion[1]: I'd say there are two variants of the ^-1 operator.
00:42:04 <tswett> The first variant returns a single value, and is only defined for functions that are one-to-one. f can't have multiple values that equal x; by definition, such a function would not be one-to-one.
00:42:25 <tswett> The second variant is defined for all functions, and *always* returns a set, even if it happens that f only has one value that equals x.
00:42:33 <shachaf> If "one-to-one" means injective, that's not enough.
00:42:35 <tswett> In which case it returns a set containing that one value.
00:42:58 <tswett> I do mean injective, and I guess the ^-1 would have a restricted domain for a non-surjective function.
00:42:58 <\oren\> am I the only one who hates hates hates the ^-1 notation for function inversion?
00:43:01 -!- mathe0logic has quit (Client Quit).
00:43:14 <tswett> If you mean the ASCII version of it, it's pretty dang bad.
00:43:31 <\oren\> no even in typeset math I hate it
00:45:05 <\oren\> because of how sin^2 x means (sin(x))^2 and sin^-1 doesn't
00:45:28 <shachaf> sin^2(x) should mean sin(sin(x))
00:45:34 <shachaf> That's the one that's broken.
00:48:40 <\oren\> that kind of makes sense. actually maybe it's just the trig functions which break a lot of rules. i mean why is it it sin x but g(x)?
00:49:26 <\oren\> damn math profs too lazy to write a couple brackets
00:52:04 <int-e> > (sin 2^2, (sin 2)^2)
00:52:06 <lambdabot> (0.826821810431806,0.826821810431806)
00:52:10 <shachaf> > [sin x, g x]
00:52:12 <lambdabot> [sin x,g x]
00:52:32 <shachaf> > (sin^2) 2
00:52:34 <lambdabot> 0.826821810431806
00:53:06 <int-e> ugh... I don't particularly like that num instance... why does lb have it?
00:53:56 <hppavilion[1]> What form of the multiplication operator should I use?
00:54:17 <hppavilion[1]> Cross, dot, star, or juxtapositon?
00:54:32 <hppavilion[1]> I'll go with the dot I think
00:55:41 <int-e> bah
00:55:43 <int-e> @undef
00:55:43 <lambdabot> Undefined.
00:55:48 <int-e> > (sin^2) 2
00:55:50 <lambdabot> No instance for (Show a0)
00:55:50 <lambdabot> arising from a use of ‘show_M708850256494014920331324’
00:55:50 <lambdabot> The type variable ‘a0’ is ambiguous
00:58:05 <shachaf> int-e: i imported it sttdnh
01:00:34 * int-e is still occasionally amazed by how much crap lambdabot depends on
01:02:39 <int-e> shachaf: not sure what the "st" means there.
01:03:07 <shachaf> originally i typed httdnh but that seemed a bit mean
01:04:25 * int-e is in no mood for guessing
01:07:22 <shachaf> seems that
01:08:43 <int-e> seems that that did not help?
01:09:18 <int-e> hmm, now that I've typed it it looks reasonable
01:44:08 -!- llue has quit (Quit: That's what she said).
01:44:18 -!- lleu has joined.
01:48:36 -!- hppavilion[1] has quit (Ping timeout: 265 seconds).
01:50:39 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:53:43 -!- hppavilion[1] has joined.
01:54:12 <hppavilion[1]> \oren\: I need a symbol for the inverse of function composition. Do you know of one?
01:54:57 <hppavilion[1]> tswett: Or perhaps you have an idea for me
01:57:29 <hppavilion[1]> I think I'll use □ because it makes sense; circle for composition, square for disposition.
02:07:24 <quintopia> you can decompose a composed function?
02:08:36 <hppavilion[1]> quintopia: No. I think.
02:08:42 <quintopia> is that like D(f(g(x)),g(x))=f(x)
02:09:07 <hppavilion[1]> In my system, function composition is equivalent to multiplication
02:09:49 <hppavilion[1]> I realized something after thinking about function powers and about regular powers
02:10:05 <hppavilion[1]> f^0=I (I is the identity function, which is the compositional identity)
02:10:20 <hppavilion[1]> n^0=1 (1 is the multiplicative identity)
02:10:41 <hppavilion[1]> n^-1=1/n (the identity divided by a number)
02:11:12 <hppavilion[1]> So, I figured, f^-1 must equal I/f, or using the proper disposition operator, I □ f
02:11:20 <hppavilion[1]> quintopia: Comprende?
02:11:54 <hppavilion[1]> How it works otherwise, I have no idea
02:13:34 <hppavilion[1]> I would say you just divide x (where x is from I(x)) by the definition of the original function (with the one variable being x), but that forms a problem for pairs of functions with differing numbers of arguments, piecewise functions, and primitive functions
02:14:59 <hppavilion[1]> quintopia?
02:15:28 <hppavilion[1]> quintopia: What you said might be right.
02:18:32 <quintopia> but compositon is not associative is it?
02:18:43 <hppavilion[1]> quintopia: It is not.
02:18:47 <hppavilion[1]> AFAIK
02:18:59 -!- Xe has quit (Quit: *.yolo *.swag).
02:19:00 -!- Lord_of_Life has quit (Quit: EliteBNC free bnc service - http://elitebnc.org - be a part of the Elite!).
02:19:00 <quintopia> it doesnt make sense to call a nonassociative operation multiplication
02:19:38 <hppavilion[1]> quintopia: There's Octonion multiplication, which isn't associative
02:19:55 -!- Xe` has joined.
02:20:02 <hppavilion[1]> Hi Xe`!
02:20:10 <quintopia> and i've always thought octonions were weird
02:20:30 -!- Lord_of_- has joined.
02:21:05 -!- Xe` has changed nick to Xe.
02:21:18 <quintopia> do octonions define a multiplicative inverse?
02:21:31 <quintopia> *inverses
02:21:53 <quintopia> obvi a noncommutatie op has two inverses
02:22:37 <hppavilion[1]> quintopia: Oh right. That
02:23:07 <hppavilion[1]> Well there may be another inverse for it that I don't know about
02:30:03 -!- mauris has joined.
02:49:42 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
03:16:00 -!- bb010g has joined.
03:40:21 <FireFly> Hmm, function composition isn't associative?
03:40:45 <FireFly> I would think it is..
03:47:00 <zzo38> This is one of idea I have of Magic: the Gathering cards: "If your life total is exactly 666, you win the game."
03:47:05 -!- jaboja has joined.
03:47:57 <shachaf> Seems like Felidar Sovereign would be easier in most cases.
03:48:16 -!- hppavilion[1] has joined.
03:52:03 <zzo38> Yes, although the one I had made up it costs only one mana and has split-second, but it is a sorcery and black and madness
03:53:27 -!- jaboja64 has joined.
03:57:22 -!- jaboja has quit (Ping timeout: 260 seconds).
03:58:21 -!- andrew_ has joined.
04:33:09 <hppavilion[1]> quintopia: So my next step is to have functions to the powers of other functions xD. Either that or another arithmetic operation, involving a function as one argument and either a function or a general number as its other
04:33:20 <hppavilion[1]> Wait, maybe I should get arround to defining f**i
04:37:17 <zzo38> Why do I get SIGILL signals in the _dl_fixup() function?
04:45:29 -!- lleu has quit (Quit: That's what she said).
04:53:42 <zzo38> I think popen_noshell confuses gdb
04:57:08 <hppavilion[1]> Arithmetic of the functia is going well, but I've encountered an issue for complex powers of functions. Here's what I have so far: https://drive.google.com/file/d/0ByRvNdqqy3GPd3FxdmRrbnF5eE0/view
04:57:23 -!- andrew_ has quit (Remote host closed the connection).
04:57:24 <hppavilion[1]> (that's a PDF, zzo38, just hosted on Drive)
04:57:44 -!- andrew has joined.
05:03:40 <zzo38> It doesn't load a PDF, just the login screen
05:04:13 <izabera> for i in {0..99};do for j in {0..90};do if ((i/10+i%10+j/10+j%10<19));then printf x;else printf \ ;fi done;echo;done
05:04:22 <izabera> ^ ascii art
05:05:24 <izabera> dammit, should have been for j in {0..99}
05:06:09 <hppavilion[1]> Ugh... How do I do a complex iterated function...
05:06:47 <izabera> make a simple iterated function
05:06:57 * izabera solves all problems
05:07:05 <hppavilion[1]> (I just need to know how I do f**i; I'd /prefer/ to just know how to do f**i so I cn figure it out myself)
05:07:46 <hppavilion[1]> izabera: I'm making an Arithmetic of the Functia that supports function exponents and need to figure out how to generalize it to complex numbers xD
05:09:16 <zzo38> Maybe you need to mark such file as public?
05:09:32 <izabera> i don't know much about what you're doing but one "standard" approach is to try to reduce your function to stuff that you can do with complex numbers
05:11:34 <izabera> e.g. you don't know how to compute exponentiation? ok, e^x can be expressed as an infinite sum of x^k/k! with k from 0 to infinity
05:11:45 <izabera> so let's use this to express e^ix
05:12:35 <izabera> (not sure if expressed is the right word)
05:13:49 <izabera> or you can try to find a complex valued function that happens to have the same values as your function on real numbers
05:14:37 <izabera> now what are you doing
05:14:49 <hppavilion[1]> izabera: I'm discussing things like f**i(x), not f(x)**i or the like. It's similar to f**-1(x), but generalized to the complexes
05:15:03 <izabera> what is ** ?
05:15:08 <hppavilion[1]> izabera: Power
05:15:10 <izabera> ok
05:15:14 <hppavilion[1]> It's python's exponentiation operator
05:15:17 <izabera> ok
05:17:06 <hppavilion[1]> izabera: But f^n has already been generalized to the integers and to reals of the form 1/n where n is an integer; I trivially extended it to any real number and am now trying to generalize it to the complexes
05:17:16 <hppavilion[1]> I should probably figure out imaginary powers first xD
05:18:21 <hppavilion[1]> The problem I thought of though is that . (composition) isn't commutative, and the complex power f^(a+bi) will surely be defined as f^a . f^(bi), and that's problematic as + has to be commutative I'm pretty sure
05:19:26 <izabera> why wouldn't it be commutative?
05:20:17 <izabera> anyway, keep in mind that a^b == e^(log(a)b)
05:20:21 <izabera> does this help?
05:20:22 <hppavilion[1]> izabera: Function composition commutative?
05:20:49 <izabera> that's not composition?
05:21:23 <hppavilion[1]> izabera: Multiplication of functions is the same as Composition in my AotF
05:21:32 <izabera> f^(a+bi) == f^a * f^bi
05:21:41 <izabera> what is aotf?
05:21:43 <hppavilion[1]> f(x) = 2x, g(x)=x+1, f.g(3) != g.f(3)
05:21:49 <hppavilion[1]> izabera: Arithmetic of the Functia
05:21:58 <izabera> i don't know what it is
05:22:02 <hppavilion[1]> (Functia is a corruption of Functions)
05:22:19 <hppavilion[1]> izabera: It's me being stupid and generalizing inverse functions into functions to the power of complex numbers
05:22:44 <hppavilion[1]> And functions divided by other functions. Which actually works, believe it or not.
05:23:05 <hppavilion[1]> Sgeo_: I would like to find what happens when I raise a function to a c@mplex number xD
05:24:00 <hppavilion[1]> izabera: What I've been trying to figure out is how you iterate a function over a complex number
05:24:59 <izabera> example?
05:25:03 <hppavilion[1]> izabera: If you want more information on the AotF, here's a PDF: https://drive.google.com/file/d/0ByRvNdqqy3GPd3FxdmRrbnF5eE0/view
05:25:16 <izabera> private
05:25:18 <hppavilion[1]> Oh
05:25:37 <hppavilion[1]> https://drive.google.com/file/d/0ByRvNdqqy3GPd3FxdmRrbnF5eE0/view?usp=sharing
05:27:15 <izabera> not sure why but the text is in a really light grey over a white bg
05:27:52 <hppavilion[1]> izabera: No clue. It isn't on my end; could be your <whatever>. I made it in TeX. It's currently incomplete.
05:27:54 <izabera> i must have messed up something in firefox
05:28:21 <Jafet> hppavilion[1]: http://mathoverflow.net/questions/71429/do-complex-iterates-of-functions-have-any-meaning
05:28:27 <hppavilion[1]> Sounds like something one of us would do
05:28:32 <hppavilion[1]> Jafet: THANK YOU!
05:28:37 <izabera> ok i downloaded it
05:28:47 <Sgeo_> hppavilion[1], we didn't even figure out how to take the absolute value of c@mplexes, did we?
05:29:07 <hppavilion[1]> Sgeo_: We did not, AFAIK
05:29:44 <Sgeo_> I just remember shooting down one of my approaches, unsure about the other and unsure about tswett's
05:30:28 <hppavilion[1]> I just changed the official author of AotF to Hedwig Notta, included myself as translator
05:30:30 <izabera> mathoverflow isn't stackoverflow
05:32:58 <hppavilion[1]> izabera: Um... correct?
05:33:13 <hppavilion[1]> Jafet: I began to read that, and now I've given up xD
05:33:46 -!- jaboja64 has quit (Ping timeout: 250 seconds).
05:40:36 <izabera> meanwhile, my trackpad decided to go nuts
05:40:44 <izabera> i need it :C
05:56:05 <FireFly> > take 4 . map (take 5) $ iterate (tail . (`iterate` 1) . (!!)) [1..]
05:56:07 <lambdabot> [[1,2,3,4,5],[2,3,4,5,6],[3,5,7,9,11],[5,13,29,61,125]]
05:56:25 <izabera> haskell is so easy to understand
05:56:28 <FireFly> I forgot about this one
05:56:37 <FireFly> well, it's not the most readable Haskell
05:56:54 <izabera> is there such a thing?
05:57:00 <FireFly> it's an infinite-list-of-lists formulation of the Ackermann function
05:57:46 <FireFly> Dunno, but there is at least such a thing as *more* readable Haskell (than this)
05:57:48 <Jafet> A rather inefficient one, judging by the (!!)
05:58:02 <izabera> hah! unreadable and inefficient
05:58:04 <FireFly> Right, codegolf was the goal
05:58:17 <izabera> is it space sensitive?
05:58:43 <izabera> > take 4.map(take 5)$ iterate(tail.(`iterate` 1).(!!))[1..]
05:58:45 <lambdabot> [[1,2,3,4,5],[2,3,4,5,6],[3,5,7,9,11],[5,13,29,61,125]]
05:58:53 <FireFly> oh, as in whitespace?
05:59:11 <FireFly> no, you can remove them (apart from the one between 'take' and '4' of course
05:59:32 <izabera> isn't that the most obvious thing to do with codegolf
06:00:21 <izabera> so obvious it's boring? fair i guess
06:01:20 <FireFly> Yeah, iterate(tail.(`iterate`1).(!!))[1..] is the actual list-of-lists
06:09:25 <hppavilion[1]> "Porn Logic" would be an interesting humorous (albeit a bit inappropriate) formal logic.
06:10:24 <hppavilion[1]> x -> y
06:10:52 <hppavilion[1]> ∴x⚤y
06:11:57 <Jafet> Presumably read as "XX moves towards XY".
06:12:06 <hppavilion[1]> Perhaps
06:13:01 <hppavilion[1]> Also available is Troll Logic; x -> y, ∴santa <=> your parents
06:13:35 <hppavilion[1]> You know, for the less perverse people among us
06:30:02 <hppavilion[1]> Jafet: Well I suppose it'd have to be a modal logic...
06:38:57 -!- mauris has quit (Read error: Connection reset by peer).
06:39:22 -!- mauris has joined.
06:45:53 <hppavilion[1]> Hm...
06:45:59 <hppavilion[1]> Unary division and multiplication
06:49:47 <\oren\> nah, pron logic is more: "She doesnt have money to tip the pizza dude" -> "she must pay with her body"
06:51:50 <\oren\> e.g. it's a branch of the pre-Boole non-algebraic logic
07:04:08 <hppavilion[1]> Ah
07:04:29 <hppavilion[1]> I actually started formalizing porn logic xD
07:23:08 -!- heroux has quit (Ping timeout: 244 seconds).
07:23:41 -!- heroux has joined.
07:25:22 -!- ^v has joined.
07:41:57 <quintopia> hppavilion[1]: i think it is insane to have a complex-exponent of a function
07:42:14 <hppavilion[1]> quintopia: It probably is xD
07:42:43 <hppavilion[1]> It doesn't make too much sense when you consider the commutatiy-of addition, noncommutativity-of-composition issue
07:48:14 -!- HackEgo has quit (Ping timeout: 260 seconds).
07:49:47 -!- HackEgo has joined.
07:50:42 -!- ^v has quit (Ping timeout: 260 seconds).
07:53:31 -!- heroux has quit (Ping timeout: 265 seconds).
07:53:44 <izabera> what if she does have money to tip the pizza dude
07:58:06 -!- heroux has joined.
07:58:53 <hppavilion[1]> izabera: That's why he used "->" instead of "<->"
08:04:09 <HackEgo> [wiki] [[UberGenes]] http://esolangs.org/w/index.php?diff=45579&oldid=45552 * Quintopia * (-48) /* Python 2 */ removed some unnecessary crap (tho more remains I think?)
08:05:55 <hppavilion[1]> quintopia: Should I make ‰ the "Supermodulus" in Kastor?
08:07:18 <hppavilion[1]> \oren\: ‰ looks a helluva lot like % in neoletters
08:10:31 <hppavilion[1]> I think I'll lambdabot it to him
08:10:45 <hppavilion[1]> @tell \oren\ ‰ looks a helluva lot like % in neoletters
08:10:45 <lambdabot> Consider it noted.
08:11:08 <hppavilion[1]> @tell \oren\ Same goes for ‱
08:11:08 <lambdabot> Consider it noted.
08:18:38 -!- J_Arcane has quit (Ping timeout: 276 seconds).
08:20:34 -!- ski has quit (Ping timeout: 260 seconds).
08:21:40 <zzo38> I made up the one to one correspondence of natural numbers with finite lists of natural numbers, which is sequence starting with: [] [0] [1] [0,0] [3] [0,1] [2] [0,0,0] [7] [0,3] [1,0] [0,0,1] [5] [0,2] [2,0] [0,0,0,0] [15] [0,7] [1,1] [0,0,3] [4] [0,1,0] [2,1] [0,0,0,1] [11] [0,5] [1,0,0] [0,0,2] [6] [0,2,0] [2,0,0] [0,0,0,0,0] [31] [0,15] [1,3] [0,0,7] [3,0] [0,1,1] [2,3] [0,0,0,3] [9]
08:22:05 -!- ski has joined.
08:22:20 <zzo38> Do you like this? Is there a better way?
08:24:56 <zzo38> We can see what kind of properties it has, and possibly other ways you can even come up with such the same thing rather than only how I did it at first.
08:27:10 <izabera> [] [0] [1] [0,0] [0,1] [0,2] [1,0] [1,1] [1,2] [2,0] [2,1] [2,2] [0,0,0] ...
08:27:23 <izabera> no wait
08:28:16 <izabera> [] [0] [1] [0,0] [0,1] [0,2] [1,0] [1,1] [1,2] [2,0] [2,1] [2,2] [2] [0,0,0] ...
08:31:14 -!- andrew has quit (Read error: Connection reset by peer).
08:31:39 -!- andrew has joined.
08:31:53 <izabera> let me start over <.<
08:32:09 <hppavilion[1]> Is there some form of hypermodulus out there that works for hyperoperation inverses where n>=3?
08:32:19 <izabera> enumerate all the sequences of 0..n of size at most n, then n++, repeat
08:32:47 <hppavilion[1]> For example modulog(9, 2)=1 because 2**3=8 and 9=8-1
08:33:03 <hppavilion[1]> And moduroot defined similarly
08:33:33 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45580&oldid=45570 * Quintopia * (+1160) Removed 0 instruction just because it wasn't strictly necessary.
08:34:29 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45581&oldid=45580 * Quintopia * (+0) lol, it hadn't even been invented yet!
08:37:45 -!- mroman has joined.
08:38:14 -!- oerjan has joined.
08:40:16 <mroman> fnird
08:43:11 <zzo38> How I defined it is: Each element in the list is you write the number one more than that in base two and then add however many leading zeros is one less than how many bits in that number, and then put all of them together and then reverse the bits.
08:45:56 <HackEgo> [wiki] [[Point operator]] N http://esolangs.org/w/index.php?oldid=45582 * Hppavilion1 * (+1823) Created Page
08:47:10 <HackEgo> [wiki] [[Point operator]] http://esolangs.org/w/index.php?diff=45583&oldid=45582 * Hppavilion1 * (+1) Fixed a link
08:48:06 <HackEgo> [wiki] [[Point operator]] http://esolangs.org/w/index.php?diff=45584&oldid=45583 * Hppavilion1 * (-4) Delinked
08:48:23 <hppavilion[1]> helloerjan
08:49:49 <oerjan> hippavilion
08:50:12 -!- bb010g has quit (Quit: Connection closed for inactivity).
08:51:17 <hppavilion[1]> oerjan: Is there a hypermodulus for roots and logs that works something like mlog(2, 9)=1?
08:51:26 <hppavilion[1]> If there isn't, would such an operator be useful?
08:51:38 <zzo38> (Another kind of correspondence could be: Add one to the last element of the list (if any), make Godel encoding of the sequence, and then subtract one from the answer.)
08:52:13 <oerjan> hppavilion[1]: i have no idea what you mean by that.
08:53:04 <hppavilion[1]> oerjan: hypermodulus is like <hypermod>:log|root :: %:/
08:53:25 <oerjan> what is %:
08:53:37 <hppavilion[1]> oerjan: Modulus. At least, in a lot of languages
08:53:52 <oerjan> pretty sure the : isn't normally included.
08:54:12 <oerjan> oh wait
08:54:13 <hppavilion[1]> oerjan: Oh, the : was because it was an Aristotilean analogy clause
08:54:30 <hppavilion[1]> by mlog(2, 9)=1 I meant that the modular log[2] of 9 is equal to 1, because 2**3=8 and 9=8-1
08:54:44 <oerjan> finally an actual definition
08:54:45 <hppavilion[1]> mroot is defined similarly
08:54:56 <hppavilion[1]> xD
08:55:42 <hppavilion[1]> It's basically the remainder of integer logarithms or roots. If that makes any sense.
08:55:54 <oerjan> erm
08:56:15 <oerjan> could you describe how to calculate mlog(m, n)
08:57:34 <hppavilion[1]> oerjan: The inefficient way is to, starting with x=0, increment x by m until x+m>n, then to return n-m
08:57:42 <hppavilion[1]> Wait, not
08:57:43 <HackEgo> [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45585&oldid=45581 * Quintopia * (-6) /* Python 2 */ Moved file loading to the Purple class to make it easy to use when imported as a module.
08:57:43 <hppavilion[1]> *no
08:57:57 <hppavilion[1]> Not increment by x, you start with x=1 and multiply by x
08:58:20 <hppavilion[1]> Of course, that doesn't account for x <= 0, but it's a start.
08:59:37 <oerjan> so basically you write n in base m and subtract 1 from the first digit?
08:59:51 <hppavilion[1]> oerjan: Maybe?
09:00:25 <oerjan> mlog(3,80) = 53 then?
09:00:40 <oerjan> (which is _larger_ than the power you're subtracting)
09:00:55 <oerjan> i don't see how this is particularly useful
09:00:59 <hppavilion[1]> I might've gotten my definition wrong; the point is that mlog like modulus, except it uses logarithms instead of division
09:01:26 <hppavilion[1]> It isn't, but it's a nice generaliation I guess.
09:02:26 <oerjan> modulus comes from a deep mathematical theory. it's not going to be very useful without it.
09:02:56 <hppavilion[1]> Ah
09:03:02 <oerjan> (basically, the modulus relation is a ring congruence)
09:03:21 <hppavilion[1]> You've just lost me xD
09:03:29 <hppavilion[1]> It might have its uses
09:04:17 <hppavilion[1]> Really, I'm just looking for something for the binary/infix ‰ operator in Kastor
09:04:36 <oerjan> `unidecode ‰
09:04:37 <HackEgo> ​[U+2030 PER MILLE SIGN]
09:05:33 <oerjan> the closest thing that i know is useful is discrete logarithm
09:06:07 <oerjan> however, that's not always defined, and you need to factorize to find it.
09:06:37 <mroman> If you implement operator precedence you might as well parse floats correctly
09:06:48 <mroman> seeing as implementing operater procedence is way harder than parsing floats
09:09:18 <hppavilion[1]> Hm...
09:09:22 <hppavilion[1]> mroman: ?
09:09:40 <hppavilion[1]> Are you refering to the point operator?
09:09:49 <mroman> also, you could define it not as "joining" but as uhm x + 1/y or something ;)
09:09:50 <mroman> hppavilion[1]: yes
09:10:03 <mroman> > 3 + (1/20)
09:10:07 <lambdabot> 3.05
09:10:12 <mroman> so it would be 3.20
09:10:18 <mroman> which translates to 3.05
09:10:35 <hppavilion[1]> mroman: That was just a stupid idea; not something I'm going to use
09:10:46 <mroman> I know :)
09:10:56 <mroman> I'm just making suggestions for other stupid ideas :)
09:10:57 <hppavilion[1]> Also, I'm implementing in Python at least initially so...
09:10:59 <hppavilion[1]> xD
09:11:04 <hppavilion[1]> Of course xD
09:11:21 <mroman> but that'd might solve the 3.05 problem ;)
09:11:39 <hppavilion[1]> Yes, but it would also be incredibly hard to know what you're doing
09:12:22 <mroman> I call it the backslash operator
09:12:27 <mroman> a\b = a + (1/b)
09:12:37 <mroman> > 3 \ 20
09:12:39 <lambdabot> <hint>:1:3: parse error on input ‘\’
09:12:48 <mroman> oh right. You can't define that in haskell.
09:13:03 <Jafet> > [] \\ []
09:13:05 <lambdabot> []
09:13:14 <mroman> @type (\\\)
09:13:15 <lambdabot> Not in scope: ‘\\\’
09:13:15 <lambdabot> Perhaps you meant one of these:
09:13:15 <lambdabot> ‘IM.\\’ (imported from Data.IntMap),
09:13:28 <mroman> @define (\\\) a b = a + (a / b)
09:13:29 <lambdabot> Defined.
09:13:33 <mroman> ah shit
09:13:35 <mroman> @define (\\\) a b = a + (1 / b)
09:13:36 <lambdabot> .L.hs:160:1: Warning:
09:13:37 <lambdabot> Pattern match(es) are overlapped
09:13:37 <lambdabot> In an equation for ‘\\\’: \\\ a b = ...
09:13:41 <mroman> :D
09:13:44 <mroman> there's no redefine is there?
09:13:51 <mroman> @redefine (\\\) a b = a + (1 / b)
09:13:51 <lambdabot> Maybe you meant: undefine define
09:13:57 <mroman> @undefine (\\\)
09:13:57 <lambdabot> There's currently no way to undefine just one thing. Say @undefine (with no extra words) to undefine everything.
09:13:57 <Jafet> @redefine
09:13:57 <lambdabot> Maybe you meant: undefine define
09:14:16 <mroman> @define (\\\\) a b = a + (1 / b)
09:14:18 <lambdabot> Defined.
09:14:22 <mroman> hm
09:14:27 <mroman> > 3 \\\\ 20
09:14:29 <lambdabot> 3.05
09:14:40 <mroman> > 3 \\\ 20
09:14:42 <lambdabot> 3.15
09:14:54 <mroman> > 10 \\\ 100
09:14:56 <lambdabot> 10.1
09:15:00 <mroman> This isn't too bad actually
09:16:08 <mroman> @define (\\\\\) a b = a + (b / a)
09:16:10 <lambdabot> Defined.
09:16:14 <mroman> > 3 \\\\\ 20
09:16:16 <lambdabot> 9.666666666666668
09:16:35 <mroman> I propose a language with only \\\\ operators .
09:16:44 <mroman> > (3 \\\\\ 20) \\\ 10
09:16:46 <lambdabot> 10.633333333333335
09:16:51 <mroman> > (3 \\\\\ 20) \\\ 10 \\\\ 9
09:16:52 <lambdabot> 10.744444444444445
09:17:13 <mroman> > 10 \\\ 1
09:17:14 <lambdabot> 20.0
09:17:19 <mroman> > 50 \\\ 1
09:17:21 <lambdabot> 100.0
09:17:26 <mroman> > 50 \\\\ 1
09:17:28 <lambdabot> 51.0
09:17:37 <mroman> > 50 \\\\ -1
09:17:38 <lambdabot> Precedence parsing error
09:17:38 <lambdabot> cannot mix ‘\\\\’ [infixl 9] and prefix `-' [infixl 6] in the same i...
09:17:42 <mroman> > 50 \\\\ (-1)
09:17:44 <lambdabot> 49.0
09:18:01 <mroman> > 50 \\\\ (-2)
09:18:02 <lambdabot> 49.5
09:18:16 <mroman> at least you can do incs/decs quite conveniently
09:18:43 <mroman> > foldl1 (\\\) [1..10]
09:18:45 <lambdabot> 5.5
09:18:47 <mroman> > foldl1 (\\\\) [1..10]
09:18:49 <lambdabot> 2.9289682539682538
09:18:53 <mroman> > foldl1 (\\\\\) [1..10]
09:18:54 <lambdabot> 11.0
09:19:00 <mroman> > foldl1 (\\\) [1..100]
09:19:02 <lambdabot> 50.5
09:19:08 <mroman> > foldl1 (\\\\) [1..100]
09:19:10 <lambdabot> 5.187377517639621
09:19:28 <mroman> does any of those converge at some point?
09:19:42 <mroman> maybe \\\\\ the others probably not.
09:19:59 <hppavilion[1]> mroman: Should I include the backslash operator in Kastor just as a reference no one will ever get? xD
09:20:55 <mroman> Yes.
09:20:56 <mroman> Totally.
09:21:37 <hppavilion[1]> mroman: Should I make it sinlge-backslash or triple-backslash?
09:21:47 <hppavilion[1]> Wait, no, quadruple-backslash
09:24:18 <hppavilion[1]> I'm making "\\\" equal to a+(a/b) and calling it "mroman's folley"
09:24:31 <mroman> Well a\b should be a + (a /b), a\\b should be a + (1 / b) and a\\\b should be a + (b / a) ;)
09:24:39 <mroman> or whatever
09:24:50 <mroman> If you only implement one then use the a + (1 / b) one
09:25:00 <mroman> that's probably the most practical of those
09:28:13 <hppavilion[1]> mroman: I'm keeping them the way they were implemented here, partially because I'll likely never want to use the \\\ operator for anything else, but I might want the \
09:28:19 <hppavilion[1]> What's the \\\\\ operator called?
09:30:18 <hppavilion[1]> > 10 \\\ 5
09:30:21 <lambdabot> 12.0
09:31:13 <hppavilion[1]> mroman: Should I exclusively define \\\\\\(\\(\\)?)? for INTs, or should I allow floats as arguments as well (NUM in general)?
09:33:02 <hppavilion[1]> > 10.5 \\\\ 3.2
09:33:04 <lambdabot> 10.8125
09:33:19 <hppavilion[1]> Meh. NUMs it is.
09:33:42 -!- andrew_ has joined.
09:34:16 <hppavilion[1]> :h
09:34:20 <hppavilion[1]> > :h
09:34:22 <lambdabot> <hint>:1:1: parse error on input ‘:’
09:34:26 <hppavilion[1]> > help
09:34:28 <lambdabot> Not in scope: ‘help’
09:39:01 <mroman> I call them the backslash operators of n-th order :D
09:39:04 <mroman> I don't know.
09:39:09 <mroman> They probably don't have an official name
09:39:54 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
09:41:10 <oerjan> @metar ENVA
09:41:11 <lambdabot> ENVA 210920Z 11005KT 7000 2000W SHSN FEW000 SCT009 BKN020 M03/M03 Q1001 TEMPO 0600 SHSN VV005 RMK WIND 670FT 17007KT
09:41:21 <oerjan> SNOW
09:41:33 <shachaf> @metar KOAK
09:41:33 <lambdabot> KOAK 210853Z 03003KT 7SM MIFG FEW005 09/08 A3007 RMK AO2 SLP182 T00940083 58001
09:41:43 <shachaf> SYESW
10:01:36 -!- andrew__ has joined.
10:04:32 -!- andrew_ has quit (Ping timeout: 246 seconds).
10:04:50 -!- andrew_ has joined.
10:04:59 -!- andrew has quit (Ping timeout: 265 seconds).
10:08:28 <izabera> i have a string and several substrings of it
10:08:33 <izabera> no actually
10:08:43 <izabera> i don't have the string, i have several substrings of it
10:08:45 <izabera> they overlap
10:08:56 <izabera> i need to recreate the original string
10:09:40 <izabera> it is known that at each step there is a pair of substrings with the maximal overlap, and i should join those
10:11:27 <izabera> so if i have ABCDEF, DEFG, BCDE, XYZABC and XCDEZ
10:12:09 <izabera> you could join ABCDEF with DEFG, but you mustn't because you have to join ABCDEF with BCDE
10:12:48 <izabera> what's an efficient way to do it?
10:13:12 -!- madai1 has joined.
10:16:52 <izabera> did i ask this already
10:17:44 <izabera> i was working on this a few days ago and i kinda ignored it since then
10:25:29 -!- madai1 has left.
10:37:58 -!- Patashu has quit (Ping timeout: 250 seconds).
10:40:17 -!- Patashu has joined.
10:43:09 -!- Welo has joined.
10:46:47 <Taneb> izabera: I don't see a way to do that nicely
10:47:54 <izabera> my not nice way is O(too^much)
10:48:59 <Taneb> That is probably similar to my not nice way
10:49:52 <Taneb> Ugh, I need to learn how to actually do things
10:50:03 <izabera> step 1: get off irc
10:50:54 <Taneb> I've tried that, it doesn't help
10:51:05 <Taneb> I think I have ADHD or something, I need to book an appointment or something to get that checked out
10:56:32 -!- AnotherTest has joined.
11:01:16 -!- andrew__ has quit (Remote host closed the connection).
11:01:16 -!- andrew_ has quit (Remote host closed the connection).
11:20:02 <mroman> O(2^n) algorithms are actually pretty fast
11:20:12 <mroman> if your input size is 0 < n < 1
11:20:34 <int-e> this is wrong in so many ways
11:20:44 <mroman> I'm wrong in so many ways.
11:23:39 <mroman> but that's mostly due to me not having any notable academic degree :)
11:26:24 <int-e> that's not how academic degrees work...
11:30:17 <mroman> that's exactly how they work
11:30:26 <mroman> I you have one, you have been taught a lot of stuff
11:30:29 <mroman> :D
11:30:37 <mroman> of course
11:30:39 <mroman> even if I had one
11:30:45 <mroman> I'd still be wrong in so many other ways.
11:32:55 <int-e> You'd still be a layperson about almost everything.
11:33:29 <int-e> "To err is human" goes really, really deep.
11:33:42 <mroman> aw man
11:33:50 <mroman> youtube removed pretty much all the hogan's heroes episodes
11:33:57 <izabera> you can get multiple degrees
11:34:11 <mroman> True.
11:34:13 <int-e> izabera: right. drops in the desert
11:34:25 <izabera> get moar
11:34:38 <int-e> izabera: if you're lucky you can create a small oasis
11:34:39 <izabera> with enough degrees there's not gonna be much left to be a layman about
11:34:53 <Jafet> Sand grains in the desert
11:34:56 <int-e> there's only so much time
11:35:03 <mroman> It's just that in the time I'd need to calculate 5-19 the exam will already be over :)
11:35:11 <izabera> invent time travel?
11:35:31 <mroman> otherwise I would have tried to get a degree
11:35:36 <int-e> how does time travel help? rejuvenation/immortality however...
11:35:52 <izabera> but you said there's only so much time
11:35:53 -!- boily has joined.
11:36:02 <int-e> I meant personal time.
11:36:08 <int-e> i.e. lifetime
11:36:26 <int-e> time travel, as I understand it, doesn't prolong that
11:36:51 <izabera> but you surely can travel in the future so there's less research to do
11:37:17 <int-e> that means there would be even more to be ignorant about...
11:37:17 <mroman> Taneb: They are going to check me next thursday
11:37:29 <Taneb> Oh, good luck!
11:37:34 <int-e> so actually, a time machine *would* work wonders, but you have to travel back in time.
11:37:37 <mroman> Not that I think I have ADHD
11:37:55 <mroman> but for insurance purposes they'll do some general testing.
11:39:15 <oerjan> int-e: did you see the last girl genius
11:40:23 <oerjan> obvious guess as to who is speaking in the last panel
11:41:57 <int-e> No guess, I haven't thought about it. It's been too long.
11:42:10 <oerjan> my guess is othar
11:42:24 <Taneb> That makes perfect sense
11:42:46 <int-e> oh the dispensible indestructible superhero... makes sense
11:43:03 <mroman> (Actually they want me to screen for Aspergers)
11:43:43 * oerjan finally got to see in writing that he's actually diagnosed with Aspergers
11:43:48 <mroman> (I definitely don't have Aspergers. I'd know that.)
11:43:59 <mroman> And I'd know if I had ADHD.
11:44:00 <mroman> so
11:44:06 <oerjan> mroman: ARE YOU SURE
11:44:11 <mroman> Yeah
11:44:13 <oerjan> JOOOIN US...
11:44:15 <mroman> Why the hell wouldn't I know that?
11:44:41 <mroman> You can't really diagnose it past childhood anyway
11:44:48 * oerjan isn't sure the diagnosis was properly set. it was done in a bit of a hurry.
11:44:59 <oerjan> oh?
11:45:15 <mroman> The formal requirement is that symptoms must exist since early childhood.
11:45:21 <oerjan> or rather, i'm pretty sure it wasn't.
11:45:37 <oerjan> mroman: ic
11:45:39 <mroman> and I'm pretty sure either my parents or a teacher would have picked up on signs if I had Aspergers.
11:45:43 <int-e> oerjan: anyway I'm still annoyed, I'd rather see progress on the Paris story ... above ground ...
11:46:24 <int-e> oerjan: but now it seems likely that that won't happen this year.
11:46:25 <oerjan> well i got the diagnosis because my Dad kept blathering about it, so obviously _he_ thought there had been signs - but it wasn't a known thing when i grew up.
11:46:31 <mroman> I'm more of a generally depressed/negative/anxious personality.
11:46:56 <oerjan> int-e: i'm wondering if they'll return and find the place already overrun with revenants
11:47:13 <int-e> possibly
11:47:19 <oerjan> maybe that's what will get Gil there
11:47:34 <oerjan> mroman: i got that in my diagnosis too.
11:48:12 <int-e> hmm, is there another story arc that they could switch to? "meantime, in Sturmhalten castle ..."
11:48:15 <mroman> "Did you have trouble doing homework on time?" "I don't know. I never did homework."
11:48:21 <mroman> That interview is going to be awkward.
11:48:39 <int-e> I wanted "meanwhile"
11:49:30 <mroman> oerjan: Psychiatrists in the past kept wondering whether I have social phobia, AvPD, Asperger's, BPD, NPD etc.
11:50:02 <mroman> and now they want a formal diagnosis (because at some point the insurance company wants to know what the fuck is going on)
11:51:46 <oerjan> int-e: hm if Gil (and Klaus) don't know about Anevka being the other, she _might_ still be in control there.
11:52:07 <oerjan> "Anevka"
11:52:12 <oerjan> wait
11:52:17 <oerjan> Klaus knows, duh
11:52:26 <mroman> those standardized questionaires are highly inaccurate anyway.
11:52:27 <oerjan> which makes it unlikely that Gil doesn't...
11:52:35 <mroman> "Did you ever think about hurting someone?" [ ] Yes [ ] No
11:52:45 <mroman> If you cross yes, you'll get a point in Anti Social Behaviour
11:52:49 * oerjan wonders how well they can communicate when sharing a body...
11:52:55 <int-e> what kind of question is that...
11:53:19 <int-e> (don't answer that)
11:53:44 <int-e> [ ] Right now I want to stab whoever came up with this question.
11:53:45 <j-bot> int-e: |spelling error
11:53:45 <j-bot> int-e: | ] Right now I want to stab whoever came up with this question.
11:53:45 <j-bot> int-e: | ^
11:53:55 <int-e> uh. another prefix.
11:54:13 <mroman> int-e: That's how these work.
11:54:30 <mroman> They don't ask for "pathological" stuff, more for behaviours.
11:54:37 <mroman> Including if you have hurt animals as a chil
11:54:39 <mroman> *child
11:54:49 <mroman> I mean common... who hasn't done that at some point during childhood
11:55:01 <oerjan> mroman: more like if you cross No, you'll get a point in Lying.
11:55:04 <int-e> yes, it makes sense... but apparently they expect the answers to be filtered through social norms rather than being honest.
11:55:12 <mroman> They should ask "have you severly fucked up an animal other than maybe snakes or shitty animals like that"
11:55:28 <mroman> I've stepped on a snake on purpose as a child.
11:55:37 <mroman> so technically I have intentionally hurt an animal.
11:55:48 <int-e> or perhaps you're supposed to forget about such thoughts... oh well
11:57:09 <oerjan> sometimes i swat insects. and sometimes i carefully trap them in a glass to let them out unharmed. consistency, overrated...
11:57:31 <int-e> also... "I did hurt someone... it was an accident. I thought about it for a long time wondering how I could've avoided it." <-- does that count?
11:57:38 <mroman> http://image.slidesharecdn.com/rydera-g-costap-t-jr-bagbyr-m-2007-120826023040-phpapp02/95/trastornos-de-personalidadryder-2007-10-728.jpg?cb=1345948301
11:58:04 <mroman> "Are you afraid to try new things"
11:58:14 <oerjan> AYE
11:58:18 <mroman> Well... sure
11:58:22 <mroman> but I guess that's pretty normal.
11:58:23 <int-e> trick question! there is no right answer!
11:58:29 <mroman> also it depends on that thing
11:59:39 <mroman> "... so devoted to work ..."
11:59:42 <mroman> I'm at work right now.
11:59:44 <mroman> In my free time.
12:00:02 <mroman> and I use my vacation days and still go to work. Nobody notices.
12:02:03 <mroman> 119. before you were 13, did you often skip school?
12:02:06 <mroman> No, only morons do that :D
12:02:17 <mroman> or in other terms: Only cool kids skip school.
12:25:56 <oerjan> @tell hppavilion[1] function composition is associative hth
12:25:56 <lambdabot> Consider it noted.
12:26:17 <oerjan> sometimes you have to beat it in before it sticks
12:27:40 <oerjan> `unidecode ‱
12:27:41 <HackEgo> ​[U+2031 PER TEN THOUSAND SIGN]
12:28:01 -!- Patashu has quit (Ping timeout: 252 seconds).
12:29:44 <oerjan> <zzo38> I made up the one to one correspondence of natural numbers with finite lists of natural numbers, which is sequence starting with: [] [0] [1] [0,0] [3] [0,1] [2] [0,0,0] [7] [0,3] [1,0] [0,0,1] [5] [0,2] [2,0] [0,0,0,0] [15] ... <-- is that the same as Taneb's
12:31:08 <oerjan> wait, [3] before [2]? oh well.
12:31:15 <int-e> huh... [] [0] [1] [0,0] [2] <-- expected a 2 here... and a 3 instead of the 7...
12:31:26 <boily> there are as many finite sequences of natural numbers than natural numbers?
12:31:30 * oerjan doesn't remember Taneb's, anyway
12:31:38 <oerjan> boily: yes hth
12:32:43 <boily> tdnrh, bitiafv...
12:32:54 <Jafet> Is Taneb's one-to-one?
12:33:09 -!- J_Arcane has joined.
12:33:12 <oerjan> hm if that [3] is a misprint then that's pretty much the "obvious" binary based one.
12:33:14 <boily> Taneb is isomorphic to His tanebventions.
12:33:28 <oerjan> Jafet: PROBABLY
12:33:38 <oerjan> possibly that's what Taneb also used.
12:34:12 <oerjan> you write the number in binary, and then take stretches of zeroes.
12:34:20 <oerjan> their lengths, that is.
12:35:13 <oerjan> so 5 -> 101 -> [0,1]. actually that doesn't tell which end he's starting from...
12:35:50 <int-e> 8 -> 0001 [7] ... confused.
12:36:17 <int-e> 10 -> 0101 [1,0] (yes I'm putting the lsb first)
12:36:23 <oerjan> hm zzo38 must be doing something differently
12:36:54 <oerjan> or wait [0,1] must start with lsb if it's to be 5.
12:37:27 <oerjan> this may be Taneb's we are describing.
12:38:32 <oerjan> well he applied it recursively, to get a list of lists of ...
12:38:54 <mroman> there's a ghc 8?
12:39:01 <mroman> ApplicativeDo
12:39:03 <oerjan> int-e: pretty sure 10 should be [1,1]
12:39:17 <oerjan> mroman: the upcoming one
12:39:30 <oerjan> did they make a release candidate?
12:39:46 <mroman> I don't know.
12:39:53 <mroman> I just randomly stumbled upon Typed.Spreadsheet
12:40:12 <oerjan> with this computer problem i may never be able to catch up to my haskell reading.
12:40:17 -!- boily has quit (Quit: POURED CHICKEN).
12:40:31 <mroman> 7.10.2 is current
12:40:51 <oerjan> anyway, ApplicativeDo is slated for 8.0.
12:41:13 <oerjan> (8.0.1)
12:41:51 <b_jonas> oerjan: which syntax is that?
12:43:07 <oerjan> normal do syntax, just reinterpreted as Applicative when possible
12:43:30 <mroman> I don't understand much of the fancy extensions anyway
12:43:34 <mroman> InjectiveTypeFamalies
12:43:40 <int-e> oh well, everything zzo38 says is a reverse engineering task... this is just another one I'll give up on
12:43:45 <oerjan> do x <- a; y <- b; return (f x y) --> liftA2 f a b
12:44:10 <oerjan> or f <$> a <*> b
12:44:56 <int-e> oerjan: I'm not sure... note the odd encoding of [2] which is the same as concatenating the encodings of [0] and [1]. For a moment I thought he was mapping 1 bits to 0, and zero bits and eof to two-bit stings... but that's not right either.
12:46:48 <int-e> (in that idea, the true interpretation of [1] would be 010, which isn't a prefix of 011, the encoding of 1; this is compatible with the "odd" interpretation of 10, the concatenation of 010 = [1] and 1 = [0])
12:47:08 <int-e> s/the encoding of 1/the encoding of [2]/
12:47:47 <b_jonas> oerjan: ok
12:47:47 <\oren\> good mroing
12:48:53 <b_jonas> oerjan: so basically, that's possible when the library defines Monad to require Applicative?
12:49:02 <mroman> now I'm gonna screw with the global drug survey
12:49:12 <b_jonas> and is there also a Functor do?
12:49:20 <oerjan> i suppose that's a requirement
12:49:36 <oerjan> b_jonas: i dunno, seems reasonable but limited
12:50:40 -!- J_Arcane_ has joined.
12:50:56 <int-e> oh I get it...
12:52:41 <int-e> http://sprunge.us/aAWf
12:52:46 -!- J_Arcane has quit (Ping timeout: 244 seconds).
12:52:50 -!- J_Arcane_ has changed nick to J_Arcane.
12:53:15 <int-e> (lsb first, and of course trailing zeros don't contribute to the encoding)
12:55:04 <mroman> "How easy would it be for you get it prescribed to you within the next 7 days?" Pretty easy :D
12:55:20 * Taneb HELLO
12:55:48 * Taneb has just picked up my copy of TAoCP from the post office
12:56:51 <Taneb> oerjan: zzo38's system looks similar to mine, but his is weird in some way I don't understand
12:57:01 <Taneb> oerjan: int-e has the right of it
12:57:11 <b_jonas> Taneb: which volume(s), what translation, and in dead tree or ebook?
12:57:13 * oerjan still has no idea what int-e means, either
12:57:20 <b_jonas> also, great
12:57:23 <b_jonas> that's a good book
12:57:29 <Taneb> b_jonas: it's in English, 1-4A, dead tree (hardback)
12:57:38 <oerjan> i might not be trying very hard.
12:57:47 <Taneb> If it was an ebook I could have saved some time and not walked to the post office
12:57:53 <b_jonas> ok
12:57:58 <Taneb> oerjan: the numbers are the distances between the bits
12:58:01 <int-e> oerjan: that paste lists the encodings of singleton lists (lsb first); to encode longer lists, you concatenate the corresponding singleton lists, then read off a natural number.
12:58:09 <Taneb> So 0d0 => 0b0 => []
12:58:24 <Taneb> 0d10 => 0b1010 => [1,1] I think
12:58:40 <int-e> so [0,1] --> 1 010 -> 5; [1,0] -> 010 1 -> 10
12:59:12 <oerjan> Taneb: i mean in zzo38's system
12:59:21 <Taneb> Oh, yeah, I have no idea what's up with that
12:59:25 <Taneb> Something to do with primes?
13:00:18 <int-e> [4] = 00101 = 24 comes after [15] = 000010000 = 16
13:00:40 <oerjan> oh ic
13:01:01 <int-e> err, [4] = 20
13:01:12 <oerjan> so to decode the other way, you first see how many 0's the number starts with, and chop off twice as many bits + 1
13:01:23 <oerjan> (lsb first)
13:01:26 <Taneb> I still have no idea what is going on
13:01:26 <int-e> right
13:02:48 <oerjan> so it's a prefix-free encoding
13:02:59 <int-e> put differently, you encode n+1 in binary, and prefix that by 0 for each non-leading digit in the result. 4: encode 5: 101; it has 1+2 digits, so it becomes 00101
13:04:02 <int-e> (and then there's a bit reversal... yay)
13:04:36 <izabera> help im covered in chameleons and no one believes me
13:06:06 <int-e> sounds like a setup for a joke
13:06:32 <int-e> izabera: but if the first part is true, maybe IRC is not the right place to ask for help.
13:08:02 <Taneb> izabera: :DD
13:08:25 <int-e> So what happens when a chameleon sits on the invisible pink unicorn?
13:08:45 <FireFly> Maybe the chameleon becomes pink
13:11:49 <int-e> hmm I wonder what the ETA of volume 4B is
13:12:15 -!- oerjan has quit (Quit: Later).
13:12:56 <int-e> (sorry for dropping the chameleon question, but it seems that I have no arguments for either of the three obvious possibilities (ping, invisible, no change))
13:12:59 <int-e> pink
13:15:52 <mroman> How do you know it's pink when you can't see it?
13:16:32 <FireFly> Maybe it's pink on the inside
13:16:47 <int-e> because otherwise it wouldn't be the invisble pink unicorn, duh.
13:16:58 <mroman> but if it's invisible there's no observable colour.
13:17:12 <mroman> Ok, so it's pink under the surface.
13:17:28 <int-e> pink is part of its essence
13:17:30 <mroman> The chameleon can't see that the unicorn is pink.
13:18:54 <int-e> mroman: surely you must have heard of the invisible pink unicorn before...
13:19:05 <Jafet> It's ontologically pink, of course.
13:19:24 <mroman> int-e: Nope.
13:19:26 <Jafet> (How does anyone know that it's a unicorn, for that matter?)
13:19:31 <mroman> Not much of a unicorn fan.
13:19:39 <mroman> Although I have heard that scots seem to like unicorns.
13:19:45 <int-e> https://en.wikipedia.org/wiki/Invisible_Pink_Unicorn
13:19:59 <mroman> Jafet: You can touch it and get a rough estimate of it's shape.
13:20:02 <mroman> Or you can do a sonar
13:20:07 <mroman> which gives you the shape of a unicorn.
13:20:47 <mroman> (assuming it somehow alters electromagnetic waves to make it invisible. So using x-ray might not work then)
13:22:29 <mroman> "It is common when discussing the Invisible Pink Unicorn to point out that because she is invisible, no one can prove that she does not exist"
13:22:32 <mroman> That is so unscientific.
13:22:48 <mroman> If it's just invisible doesn't mean it leaves no traces or does not reflect sound waves.
13:22:53 <int-e> (I like the IPU much better than the FSM; they both have equal right to exist, but the IPU is so much more poetic)
13:22:53 <mroman> (or produces sound waves for that matter)
13:23:29 <Taneb> How did they sex the invisible pink unicorn if she's invisible
13:23:46 <FireFly> Maybe she told them
13:23:47 <Jafet> Better leave that one unanswered.
13:25:04 <mroman> FSM makes way more sense than an invisible unicorn.
13:27:01 <b_jonas> no no, the invisible pink unicorn is much simpler than that
13:27:19 <b_jonas> it's just a unicorn that is shy and almost never shows himself in front of others
13:27:41 <b_jonas> so almost nobody has seen him, and the ones who have seen him generally aren't allowed to talk about it
13:27:53 <b_jonas> but we know he's pink for two reasons:
13:28:13 <b_jonas> 1. he does sometimes show his horn, which is pink, and most unicorns have the same body color as their horn,
13:28:29 <b_jonas> and 2. he can see himself, and says he's pink, and we trust him.
13:30:09 <b_jonas> (there's an alternative of course, namely that he's a unicorn represented as rgba without premultiplied alpha, so there's color data of him stored even in the fully transparent pixels.)
13:44:34 <mroman> FSM > IPU
13:58:26 -!- mroman has quit (Quit: Lost terminal).
14:02:11 <int-e> > "FSM" `compare` "IPU"
14:02:13 <lambdabot> LT
14:05:29 <myname> fsm < ipu < eris
14:38:44 <b_jonas> As for these wiki formats that are supposed to be easy to use, I hate two things about the bbcode parser of phpBB:
14:39:55 <b_jonas> (1) it takes all newlines in the source code to mean a <br> in the output, so you must leave no newlines in foo [list][*] bar [*] bar [/list] foo [quote=someone] hi [/quote] or else you'll get ugly output with way too much vertical blank space,
14:40:09 <b_jonas> (2) it has no way to specify alternate text for images.
14:41:46 <b_jonas> I mean, mediawiki very rarely does this thing where extra newlines in the source result in extra lines in the output, but it comes up in very rare conditions only, not like around every list or something.
14:42:12 <b_jonas> Maybe I have to write some sort of html to bbcode transator for myself.
14:47:13 <Jafet> As the saying goes, it makes easy things easy and hard things impossible.
15:04:38 <b_jonas> ok, crazy question, why does linux 4.4 add an mlock2 system call rather than just adding a mode to madvise, which already has modes that do more than just advise.
15:08:25 -!- andrew has joined.
15:10:59 <Jafet> madvise(2): "This call does not influence the semantics of the application"...
15:17:43 <b_jonas> Jafet: that's the theory. no.
15:17:55 <b_jonas> Jafet: some modes of madvise and fadvise are like that, but not all
15:18:21 <b_jonas> s/fadvise/posix_fadvise/ or whatever it's called these days
15:19:20 <b_jonas> Jafet: MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL, MADV_WILLNEED are indeed only optimization advise,
15:21:03 <b_jonas> but MADV_DONTNEED does have semantics, it means what you wrote to that memory area can be discarded, MADV_REMOVE and MADV_DONTFORK and MADV_DOFORK similarly has semantics.
15:21:31 <Jafet> Well, DONTNEED only exists because people conflated address space and memory.
15:21:45 <b_jonas> you could say that some of those should be modes in mprotect rather than madvise, but whatever.
15:22:31 <b_jonas> I admit I'm not really familiar with the details of all this memory handling stuff, but I'm quite sure some modes of madvise can have semantics in Linux.
16:07:35 -!- andrew has quit (Remote host closed the connection).
16:19:26 -!- lleu has joined.
16:19:26 -!- lleu has quit (Changing host).
16:19:26 -!- lleu has joined.
16:46:46 -!- Frooxius has joined.
17:11:24 <izabera> https://www.codeeval.com/open_challenges/77/ i'm not sure about a thing, help me out
17:12:00 <izabera> they say that every time i have to join the two words with the longest overlap
17:12:54 <izabera> ok so i joined two words in turn 1. now, next turn: will the longest overlap always be the new word + something?
17:13:19 <Taneb> Not necessarily
17:13:30 <izabera> can you show an example?
17:13:53 <Taneb> ABCD, DEFG, MNO, NOP
17:14:04 <Taneb> First match makes ABCDEFG
17:14:06 <izabera> well but there must be an overlap
17:14:30 <Taneb> ABCD, DEFG, GMNO, NOP then
17:14:39 <izabera> thanks
17:15:37 <izabera> now i'm being pedantic, but can you show an example in which joining the word i generated in turn 1 with something leads to an incorrect result?
17:17:09 <Taneb> ABCDE, CDEFG, GMNOP, MNOPQFG, FGX?
17:17:24 <izabera> ok thanks, let me see
17:17:27 <Taneb> No, that's not right, but I think the principle's there
17:17:54 <izabera> thanks
17:17:55 <b_jonas> fungot, did you join two words with the longest overlap?
17:17:58 <izabera> perfect example
17:19:13 <Jafet> They say that if at first you don't succeed, trie, trie, trie again.
17:21:53 <Taneb> It says that "Fragments must overlap at their start or end.", but also says ""ABCDEF" and "BCDE" overlap with overlap length 4" which doesn't overlap at the start or end of ABCDEF...
17:30:44 <quintopia> is this the "rebuild the secret message from lots of tiny scraps" challenge?
17:33:13 <Taneb> Yes
17:37:43 <izabera> there are two similar ones
17:38:27 <izabera> the other one is https://www.codeeval.com/open_challenges/185/
17:38:41 <Taneb> I've never done any of these, would you recommend them?
17:38:51 <izabera> dunno
17:39:02 <izabera> all i know is that they're painful to do in bash
17:41:11 <Taneb> Ahahaha
17:41:17 <Taneb> A lot of things are, to be fair
17:44:06 -!- edwardk has quit (Ping timeout: 240 seconds).
17:45:06 -!- mbrcknl has quit (Ping timeout: 240 seconds).
17:45:46 -!- ocharles__ has quit (Ping timeout: 240 seconds).
17:47:22 -!- edwardk has joined.
17:48:50 -!- ocharles__ has joined.
17:48:53 -!- mbrcknl has joined.
17:52:45 <izabera> is it possible that a piece that didn't exist at the beginning (== it was created by joining two pieces) fits inside another piece that likewise didn't exists at the beginning?
17:55:09 <Taneb> ABC, DEF, BCD, DCE
17:55:18 <Taneb> No
17:55:25 <Taneb> That doesn't work
17:55:28 <Taneb> Um... maybe?
17:59:29 <izabera> i was just wondering if i can just join all of them in a preliminary step and never check that case again
18:00:23 -!- impomatic_ has quit (Ping timeout: 276 seconds).
18:16:25 <quintopia> blub
18:24:19 <Taneb> Oh wow I am so nervous
18:33:09 -!- mroman has joined.
18:33:12 <mroman> fnard
18:35:37 -!- bb010g has joined.
19:11:12 -!- mroman has quit (Quit: Lost terminal).
19:30:00 <zzo38> The [3] before [2] is not a mistake. Also it is not related to prime numbers, but the "Modified Godel Encoding" which I suggested afterward is related to prime numbers.
19:32:07 <HackEgo> [wiki] [[Brackit]] http://esolangs.org/w/index.php?diff=45586&oldid=45533 * Blakusl * (+138)
19:33:39 <quintopia> i am dizzy
19:33:44 <quintopia> and sluggish
19:33:54 <quintopia> need more calories, liquid, and possibly caffeine
20:06:51 -!- hppavilion[1] has joined.
20:20:07 <shachaf> http://slbkbs.org/dontclick.txt
20:21:26 -!- hppavilion[1] has quit (Ping timeout: 276 seconds).
20:22:07 <shikhin> shachaf: 404 Not Found.
20:25:12 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=45587&oldid=45217 * 114.78.113.191 * (+93) /* General languages */
20:28:20 <HackEgo> [wiki] [[C++]] N http://esolangs.org/w/index.php?oldid=45588 * 114.78.113.191 * (+77) Created page with "A language created by Bjarne Stroustrup as a joke, but later got out of hand."
20:33:01 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=45589&oldid=45587 * 114.78.113.191 * (+62) /* General languages */
20:40:51 <quintopia> lol
20:41:40 <quintopia> what is slbkbs
20:43:22 <shachaf> something like ben-kiki but snazzier
20:58:27 -!- rdococ has quit (Read error: Connection reset by peer).
21:12:12 <\oren\> should I have bacon and cookies for dinner?
21:14:34 <quintopia> no
21:14:36 <quintopia> that's silly
21:14:56 <quintopia> it's not a full dinner unless its cookies baked with bacon, or encrusted in bacon crumbles
21:17:03 <\oren\> argh. maybe I'll get pizza.
21:17:27 <\oren\> pizza is always good in this neighbourhood (I live in the centre of little italy)
22:09:43 -!- Doxin has joined.
22:10:13 <Doxin> so why would this program be an infinite loop: ++++++++++>++++++++++++[-<[->>+>+<<<]>>>[-<<<+>>>]<[->>+<<]<]>>>. ?
22:11:09 -!- Patashu has joined.
22:15:18 <tswett> Hey there.
22:15:48 <Doxin> tswett: that aimed at me?
22:15:51 <tswett> Lemme renotate that.
22:15:53 <tswett> Yeah.
22:18:26 <int-e> in brainfuck? it's not an infinite loop; it prints an 'x', apperently
22:18:44 <Doxin> huh
22:18:54 <tswett> Silly notation: 10+ > 12+ [ - < dump(2R, 3R) >>> dump(3L) < dump(2R) < ]
22:18:55 <Doxin> well I must have been using a broken interpreter then
22:19:07 <tswett> Which I made up just now and which isn't very good.
22:19:22 <int-e> > chr 120
22:19:24 <lambdabot> 'x'
22:19:51 <Doxin> tswett: interestingly enough that bf code was generated from this: http://paste.pound-python.org/show/RyvonUvzf8BpWfFPXvDM/
22:19:52 <int-e> (it computes 10*12)
22:21:00 <Doxin> int-e: that's the intention
22:21:17 <Doxin> so anyone know a good brainfuck interpreter that'll work on linux? https://www.youtube.com/watch?v=_iSRYfV_toY
22:21:19 <Doxin> uh
22:21:23 <Doxin> ignore that link
22:23:03 <tswett> t[0] = 10; t[1] = 12; while (t[1]) { t[1]--; t[2] += t[0]; t[3] += t[0]; t[0] = 0; t[0] = t[3]; t[3] = 0; t[4] += t[2]; t[2] = 0 }; print(t[4])
22:23:06 <tswett> Something like that.
22:23:10 <tswett> That can be simplified, obviously.
22:23:37 <Doxin> well yes clearly
22:29:43 -!- mauris has quit (Ping timeout: 252 seconds).
22:30:28 -!- mauris has joined.
22:30:57 <int-e> https://esolangs.org/wiki/Brainfuck_implementations is quite an impressive list
22:37:18 -!- kline has quit (Ping timeout: 276 seconds).
22:38:24 <Doxin> right, found one
22:40:14 -!- oerjan has joined.
22:41:02 <Doxin> next question: how do I go about doing indirect lookups without losing track of where the memory pointer is pointing?
22:41:06 <Doxin> indirection is hard
22:42:44 -!- kline has joined.
22:46:16 <tswett> Leave a marker behind.
22:46:41 <Doxin> that seems prone to failure
22:46:49 <tswett> Not if you do it perfectly.
22:46:54 <tswett> I mean...
22:47:02 <tswett> You can't pack the tape with payload data; some of it will have to be reserved for navigation data instead.
22:47:08 <Doxin> right
22:47:19 <tswett> One common approach, I think, is to just alternate. One cell of payload, one cell of navigation, and so forth.
22:47:24 <Doxin> right
22:47:46 <Doxin> still doesn't tell me how to actually do it though
22:48:02 <oerjan> the rest is trivial
22:48:07 <Doxin> not to me
22:48:10 <oerjan> in the mathematical sense
22:48:36 <oerjan> where it means "possibly a lot of work but requires no real new ideas"
22:48:48 <tswett> Well, here's one technique.
22:49:06 <tswett> Figure out what your pointer is. Leave a marker in one navigation cell. Put your pointer into the other navigation cell.
22:49:31 <tswett> Now, repeatedly copy the pointer to the next navigation cell, subtracting one each time.
22:49:38 <tswett> One it hits zero, you're there, more or less.
22:49:43 <Doxin> ah, that's sensible
22:49:45 <Doxin> neat!
22:49:52 <tswett> Then, when you want to go back, just look for the marker.
22:50:41 <oerjan> that has the disadvantage that it won't work for unbounded distance with bounded cells
22:51:05 <int-e> but you can leave bookmarks behind
22:51:07 * int-e shrugs
22:51:26 <int-e> it is tedious.
22:52:25 <oerjan> bookmarks are simpler when you don't need actual heaps of pointers
22:52:53 <int-e> oerjan: do I misremeber or did you (plan to, perhaps) implement a linear slowdown brainfuck self-interpreter that moves its state along the tape?
22:52:56 <Doxin> tswett: that does limit your address size to the cell size
22:53:16 <oerjan> int-e: i thought about its design, no actual implementation
22:53:22 <int-e> ah
22:53:51 <oerjan> because all the usual interpreters don't have eigenratios because they're slowdown is quadratic
22:54:04 <oerjan> or rather, dependent on tape length
22:54:10 <int-e> their. right.
22:54:15 <oerjan> oops
22:55:45 <tswett> Yeah, if you want to be able to access an *infinite* amount of memory (rather than a practically unlimited amount of memory), pointers don't really do the trick any more.
22:56:02 <tswett> Well, I mean, I guess they do.
22:56:16 <tswett> It's just that you'll have to do some weird stuff.
22:56:39 <tswett> Like variable-size pointers. If you want to address more memory than your pointers can currently address, then make pointers bigger.
22:56:59 <tswett> Double the size of your memory words.
22:57:20 <tswett> Of course, that's going to require copying *all* of your memory (except maybe the first word) to a different location.
22:57:22 <int-e> so anyway, yes, simulating a heap with pointers directly is a challenge. there's no doubt that it can be done in principle, but it's a mess.
22:57:26 <Doxin> tswett: I don't really care about infinite
22:57:31 <Doxin> tswett: I care about reasonable
22:57:34 <tswett> *nod*
22:57:53 <tswett> Well, if you can use one cell to represent an 8-bit number, you can use eight cells to represent a 64-bit number.
22:57:58 <tswett> Or 32-bit or whichever.
22:58:03 <Doxin> right
22:59:08 <int-e> (and if that's still boring you can think about making memory access faster by caching recently used cells nearby... *ducks*)
22:59:51 <Doxin> hah
23:00:00 <tswett> Now, I wonder how you can serialize a graph as a sequence of symbols, without using ID strings.
23:00:15 <tswett> And such that a Turing machine can reasonably operate on it.
23:00:36 <int-e> (a "simple" memory access implementation will be linear, at best, in the address being accessed)
23:00:51 <int-e> linear time, that is
23:01:10 <int-e> (and it's much more likely to be quadratic)
23:02:22 <tswett> I guess what makes the most sense to me is to serialize it as some sort of list of instructions for constructing the graph.
23:04:48 <tswett> Start with a node, remember this node, dig, dig, dig, dig, dig to the remembered node, dig, remember this node, dig, dig, dig, dig, dig to the remembered node, follow this edge, that edge, blah blah blah.
23:05:05 <tswett> I was actually going somewhere with that and then I decided to give up.
23:05:55 <tswett> Y'know what, screw it, I'm going to come up with a complete list of instructions.
23:05:57 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:07:05 -!- hppavilion[1] has joined.
23:07:30 <hppavilion[1]> Ok, for the Arithmetic of the Functia I've defined a way that all real numbers and acceptable substitutes are a subset of functions
23:08:26 <hppavilion[1]> (Acceptable substitutes include naturals, integers, reals, complexes, surreals, surcomplexes, quaternions, octonions, sedenions, matrices of the aforementioned, etc.)
23:09:21 <tswett> Start with a node, remember this node, dig a blue edge, dig a green edge, dig a red edge, dig a blue edge, dig a green edge to the remembered node, dig a red edge, remember this node, dig green, dig pink, dig blue, dig pink, dig blue to the remembered node, follow the green edge, remember this node, follow green, follow red, follow blue, follow green, dig blue to remembered, follow pink, remember, follow pink, follow blue, follow red, follow blue, dig
23:09:21 <tswett> red to remembered, follow blue, remember, follow blue, pink, blue, green, dig red to remembered, follow pink, remember, follow pink, red, green, red, dig green to remembered.
23:09:28 <HackEgo> [wiki] [[Special:Log/delete]] delete * Oerjan * deleted "[[C++]]": I'll just quote ehird from the previous Deletion log item: "I can't wait for the third time I delete this page"
23:11:01 <HackEgo> [wiki] [[Joke language list]] http://esolangs.org/w/index.php?diff=45590&oldid=45589 * Oerjan * (-155) This page is not a joke, even if its contents are. Er...
23:15:12 -!- Welo has quit (Quit: Leaving).
23:15:13 <oerjan> tswett: how are the colors not IDs tdnh
23:15:43 <tswett> They don't uniquely identify edges.
23:16:12 <oerjan> you might need an unlimited number of colors anyway.
23:16:16 <tswett> Yep.
23:16:20 <tswett> Well, maybe not.
23:16:48 <tswett> What if you're allowed to recolor edges, and also to delete edges and vertices and to join two vertices together along an edge?
23:17:12 <oerjan> god this monitor is awful
23:19:43 -!- Doxin has quit (Remote host closed the connection).
23:20:12 -!- bb010g has quit (Quit: Connection closed for inactivity).
23:29:44 <hppavilion[1]> I think I'll roll BOOL into the supertype NUM
23:31:18 <oerjan> as long as you make true + true = false = false + false
23:31:51 <oerjan> (spoiler: + should be xor)
23:49:51 <hppavilion[1]> oerjan: ^ is xor, but ⊤+⊥ will probably mean something
23:51:32 <hppavilion[1]> oerjan: Possibly xor as welll
23:51:34 <hppavilion[1]> *well
23:52:15 <hppavilion[1]> And ⊻ ALSO means xor
23:53:18 <hppavilion[1]> (But it's the logical xor, so it always returns a bool and accepts any boolable argument combination, whereas ^ is bitwise for ints and + will probably mean some other kind of xor)
23:53:46 <int-e> oerjan: hmm, that palisade puzzle is addictive
23:54:56 <oerjan> int-e: YOU DON'T SAY
23:55:28 <int-e> 18x16 with regions of size 12 still works well
23:56:18 <int-e> 10x10 with regions of size 50 is kind of relaxing :)
23:56:38 * oerjan still on standard 15 x 10
23:56:48 <oerjan> er wait
23:56:54 <oerjan> 15 x 12, size 10
23:57:33 <oerjan> of course that has to be the only one in the menu where the region size isn't a side length
23:58:31 <oerjan> i think it's fun when you pick up little tricks
23:59:00 <oerjan> like, if there is a choke point in the walls, you can tell which side it belongs to, by counting
23:59:48 <oerjan> (possibly both)
←2015-11-20 2015-11-21 2015-11-22→ ↑2015 ↑all