00:00:00 <kallisti> elliott: is what oerjan's saying supposed to make sense or am I juts realyt iresd
00:00:25 <elliott> canw e redact the logs so i can say shit to kallisti and he can't prove it when he's slept
00:01:56 <kallisti> I think I just get confused when I try to regex substitute and there's nothing to substitute.
00:02:16 <kallisti> unless :%s is like some weird reverse substitute
00:02:55 <kallisti> elliott: I suffer from lack of omniscience, you insensitive clod!
00:04:46 <kallisti> right, OERJAN REMOVED THE CONCEPT OF SLEEP
00:06:12 -!- Vorpal has quit (Ping timeout: 248 seconds).
00:10:50 <kallisti> it's always redonkulous freshnasty up in this biznatch
00:23:07 <elliott> http://hackage.haskell.org/package/toilet
00:24:00 <Gregor> (Copying from my Facebook 'cuz I'm lame): Mind-bender turned into a computer science problem: Imagine a class of functions rand[n] which return a random integer in the range [0, n), with equal probability of all valid values. Given an implementation of rand[2] as an oracle, is it possible to implement rand[3]? If not, for what values of n (define inductively or algebraically) is it possible? If so, what is the runtime (big-O notation) of rand[3], assuming rand[
00:24:52 <elliott> Gregor: Those aren't functions QUOD ERAT DEMONSTRUDEL
00:25:08 <Gregor> elliott: My next statement on FB was: Incidentally, I am of course not using "function" in the mathematical sense. rand[2] is magic, and rand[>2] is an algorithm (or none).
00:25:35 <elliott> Gregor: Anyhow, I'm pretty sure the answer is "sort of": namely, yes it can be done, but the worst case is O(infinity).
00:25:48 <Gregor> That is "yes", not "sort of" :P
00:25:51 <elliott> It's basically just "given an unbiased RNG implement a bigger one", which is a less obscure problem than that P:
00:26:06 <elliott> Gregor: It's hardly a perfect RNG if it can fail to give a random number.
00:26:18 <Gregor> It cannot fail, it can merely take infinite time.
00:26:36 <elliott> But OK: rand[3] := for(;;);
00:27:10 <Gregor> My canonical rand[3] will always terminate, given infinite time, because in infinite time rand[2] will always return any given pattern eventually.
00:27:33 <elliott> Gregor: That isn't actually true though.
00:27:41 <elliott> Gregor: I mean, it isn't implied by "perfectly unbiased RNG".
00:27:51 <oerjan> it is true modulo null sets :P
00:27:51 <elliott> The probability approaches 1, but you can easily get 0, 0, 0, 0, ... forever.
00:27:59 <elliott> It's just stunningly unlikely.
00:28:22 <Gregor> elliott: I'm pretty sure that that becomes untrue the very moment "forever" turns into "for infinite time"
00:28:34 <oerjan> elliott: you _could_ interpret it as rand[2] never giving a particular probability 0 behavior you're interested in excluding
00:28:35 <Gregor> Because summed to infinity, "stunningly unlikely" becomes "impossible"
00:28:54 <elliott> That is not the same thing as being impossible.
00:29:48 <Gregor> oerjan: INJECT THINE WISDOM
00:30:02 <elliott> oerjan: I could, but that's not what Gregor said.
00:30:10 <oerjan> Gregor: um i already did
00:30:19 <Gregor> oerjan: INJECT MORE OF THINE WISDOM
00:31:11 <elliott> If this isn't a solution (I'm not sure it is), then I think it can be made into one with just a sufficient drop of clever (which I'm willing to try and come up with if this isn't it :P)
00:31:13 <oerjan> it's really a matter of what you define as acceptable algorithms. there isn't much more to it than that...
00:31:41 <Gregor> Yuh, that was my canon solution.
00:32:19 <elliott> Gregor: also for any n=2^m we can define rand_n as follows: rand_n = foldl' (\a b -> (a*2)+b) 0 <$> replicate m rand_2
00:32:32 <Gregor> Well it's easy for 2^n :P]
00:33:00 <elliott> so just apply the same trick rand3 does
00:33:16 * elliott tries rand7 with rand{2,3,5}
00:34:19 <elliott> Gregor: in fact I think you basically just need ceil(log_2(n)) rand2s
00:34:25 <elliott> and you only ever have zero or one recursion cases
00:34:42 <elliott> it's basically just "interpret as bit pattern, try again if it's too big"
00:34:52 <elliott> Gregor: but personally, I think the real answer is that it is impossible
00:34:56 <Gregor> Surely there are cases where there would be >1 recursive case though?
00:35:10 <oerjan> next: try to do it for general n without wasting any bits >:)
00:35:14 <elliott> Gregor: well ceil(log_2(n)) never exceeds log_2(n) by much...
00:35:27 <Gregor> 14, 15 and 16 are all invalid.
00:35:45 <Gregor> I mean, unless you consider "default" to be one case :P
00:35:53 <elliott> Invalid as in can't be implemented?
00:36:10 <Gregor> I was talkin' nonsense for a second there.
00:36:30 <oerjan> elliott: he means that all of 14, 15 and 16 would be recursion cases
00:36:30 <Gregor> 13, 14 and 15 all require rerolls for rand13 is what I meant to say.
00:37:11 <elliott> Gregor: But anyway, a perfect unbiased oracle RNG can still return a pathological sequence forever. Yes, it has probability 0, but this does /not/ mean it's impossible, and therefore rand3 can fail to terminate, and therefore rand3 isn't an unbiased RNG because, uhh, RNGs terminate.
00:37:19 <elliott> So the problem is actually impossible.
00:37:29 <elliott> Not that this doesn't work in practice, but in practice you don't have rand_2 anyway.
00:38:46 <elliott> Gregor: Basically, you have to take every possible infinite bitstring, and prove that the results are evenly-distributed between them all as rand2's successive return values.
00:38:56 <elliott> 1,1,1,1,1,1,1,1,... -> whoops there is no result
00:39:29 <elliott> ...not that I can prove there is _no_ algorithm that works to do this, although I'm sceptical
00:39:34 <elliott> but the canonical solution ain't it
00:39:53 <elliott> and I'm pretty sure it must have been proved impossible a long time ago, it's not like it's a particularly obscure thing to think about :P
00:39:59 <Gregor> I certainly understand that that case /exists/. However, infinity is a funny thing ... I'm not confident that the fact that there exists such an infinite bitstream negates the correctness of the algorithm ...
00:40:35 <Gregor> But then I start doing math with infinities and that makes me kill myself.
00:40:39 <elliott> Gregor: I'm gonna defer to oerjan here because he has the Ph.D. to make you believe him :)
00:41:27 <Gregor> That's why I asked him to inject more wisdom.
00:41:47 <elliott> Gregor: But basically, if you accept that one possible sequence fails, then for 13, you have to accept that an infinite number of possible sequences fail.
00:41:55 <elliott> (Those composed out of the three reroll cases.)
00:42:14 <elliott> Gregor: And the sequences that fail have the same cardinality as the sequences that work.
00:42:21 <elliott> (same cardinality as the reals)
00:44:05 <elliott> Gregor: Basically rand3 is a function from a real to [0,2].
00:44:11 <Gregor> That's a better point.
00:44:18 <elliott> Gregor: rand3 fails on one real.
00:44:27 <elliott> rand13 fails on |R| reals.
00:44:58 <elliott> Gregor: To make rand3 work, you have to chop that real off... and suddenly the RNG isn't perfectly unbiased any more.
00:45:12 <elliott> Same for rand13 but much more drastic :)
00:45:27 <elliott> Gregor: Particularly, note that you can predict future results if you disallow infinite 1s.
00:45:39 <elliott> Gregor: If you get a 1, you know you're going to get a 0 within a finite amount of time.
00:45:50 <elliott> You can't predict unbiased oracles :P
00:46:19 <oerjan> elliott: i have the Ph.D. to understand that the interpretation of whether the infinite case is actually possible is a matter of your taste in definitions.
00:46:33 <Gregor> Yeah, that was my perspective :P
00:46:41 <Gregor> But I'm agreeing more with elliott's now *shrugs*
00:46:44 <elliott> Gregor: Actually you don't even need to get a 1 to know you'll get a 0, obviously :P
00:47:05 <elliott> oerjan: I think anyone who calls a skewed-to-make-a-challenge-possible RNG "unbiased" is stretching their definitions :P
00:48:23 <Gregor> That was not the issue with definitions.
00:48:25 <oerjan> elliott: but it is modification on a set of probability zero, which is frequently considered acceptable
00:49:29 <elliott> oerjan: *shrug* I think it's fair to say that the challenge is ambiguous
00:49:48 <elliott> But I think the number of combinations that lead to reroll is unbounded as n gets larger
00:49:52 <oerjan> (note: even your cardinality |R| exception set example still has probability 0)
00:50:06 <elliott> If only the naturals weren't countable, you could prove that you were eliminating most of R in the process, I think.
00:50:44 <elliott> Gregor: Ooh, ooh, here's another argument: You can imagine taking this "reroll" strategy to the limit, and deriving an algorithm to generate a perfectly random, equal-probability /integer/.
00:50:52 <elliott> You just have to reroll every time :-)
00:51:02 <elliott> That made more sense as a visualisation in my head.
00:51:11 <oerjan> i never claimed the challenge wasn't ambiguous, it certainly has that "teacher gives assignment which requires you to know which of equally plausible interpretations they subscribe to" vibe
00:51:18 <elliott> Actually it's more like you have to call rand2 an infinite number of times.
00:51:24 <elliott> So I guess this isn't realy compelling.
00:51:35 <elliott> <oerjan> (note: even your cardinality |R| exception set example still has probability 0)
00:51:56 <oerjan> elliott: just in case ;P
00:51:59 <elliott> "An RNG that can return any sequence of probability >0" just doesn't count as unbiased to me :)
00:52:24 <elliott> oerjan will now prove that it's OK because probability 0 has probability 0 in the space of probabilities, so it's generally accepted to remove it.
00:52:39 -!- pikhq has joined.
00:53:06 <Gregor> The thing is, for all valid possibilities, there is not only infinitely many such valid bitstrings, but a nonzero probability of such bitstrings.
00:53:28 -!- pikhq_ has quit (Ping timeout: 268 seconds).
00:53:48 <elliott> Yes, all the non-halting sequences have probability 0
00:53:49 <itidus20> i'd say just get a counter which counts really quickly and use human inaccuracy to randomly hit the counter
00:54:00 <elliott> You can exclude the sequences from your RNG definition
00:54:05 <itidus20> and use the supplied value as an index into the decimal places of PI
00:54:06 <elliott> And claim it doesn't affect biasedness because they all have probability 0
00:54:15 <elliott> But if you /do/ admit such sequences, it's definitely impossible
00:54:49 <oerjan> elliott: erm no you cannot remove _all_ probability 0 sets, because they're union has probability 1. duh.
00:54:53 <itidus20> so suppose the counter is 32bits cycling.. human presses the button and gets 100,000,000 .. so look up the 100,000,000th decimal of PI
00:55:00 <oerjan> but you can remove any _particular_ one.
00:55:03 <elliott> oerjan: The sequences = the sequences that break things
00:55:12 <elliott> oerjan: Actually this is problematic because I believe every single probability 0 sequence is involved in the general case
00:55:15 <elliott> For solving the problem for all n
00:55:20 <Gregor> Anyway, that's not what I was saying :P
00:55:31 <elliott> For rand1 it's 1 sequence, for rand13 it's |R|, you gotta exhaust all the probability-0 sequences sometime :-)
00:55:36 <oerjan> elliott: no i'm pretty sure it's not.
00:55:51 <Gregor> (For rand3) The problematic sequence has probability 0. The non-problematic sequences have non-zero probability.
00:55:51 <elliott> Pretty sure you can't "recognise" it like that
00:55:57 <elliott> Wow this is so ridiculously informal
00:56:15 <elliott> Gregor: That doesn't matter. What does matter is that you can claim your definition of the RNG excludes the problematic sequence.
00:56:19 <oerjan> elliott: in fact there are countably many n's, so the union of the sets still has probability 0 by countable additivity.
00:56:30 <elliott> NOW LET'S GENERALISE IT TO THE REALS
00:58:03 <oerjan> itidus20: your comment reminds me of the adage going somewhat like "randomly choosing an algorithm is not a good way to make a random number generator"
01:01:10 <itidus20> oerjan: i think its probably quite effective though
01:02:37 <elliott> itidus20: you cannot increase randomness by indexing a sequence
01:02:50 <elliott> i guess that's how prngs work :P
01:02:59 <elliott> but in a strict sense pi_digits[n] is no more random than n...
01:03:37 <itidus20> uh.. god used the pi sequence as an axiom for creating the universe so its ok (^_^
01:03:40 <Sgeo> I suppose I can't brag that I got Gregor's canonical answer, given that the truth of said answer is in dispute
01:03:58 <itidus20> elliott: interesting point there :-?
01:04:02 <elliott> Well it's a pretty obvious answer :-)
01:04:16 <itidus20> elliott: however there are some practical advantages
01:04:26 <Sgeo> Although when I first read the status, I missed "integer"
01:04:46 <itidus20> elliott: with my system you have less chance of knowing which digit is coming next
01:04:57 <elliott> if you can predict n, you can predict pi_digits[n]
01:05:07 <elliott> predict n, then index pi_digits with it!
01:05:28 <elliott> ok so if you can only predict like
01:05:36 <elliott> then you can predict "closer" with just n
01:05:43 <elliott> this scheme is ridiculous anyway
01:05:43 <itidus20> ok well.. suppose that the device i described gives you a digit
01:06:11 <itidus20> but it is very unlikely that someone could activate the fast counter at such a rate that that knowledge could help them anyway :-?
01:06:12 * Sgeo has the impression that Pi is not a cryptographically secure PRNG
01:06:30 <Sgeo> Wait, actually, it's unknown if it's normal, right? And if it is normal, that means...?
01:06:32 <itidus20> the whole system relies on human stupidness to push some button
01:07:11 <itidus20> like if our human looks out the window at a passing bird and gets distracted that should be enough to throw his game out
01:07:21 <Sgeo> If the digits of Pi turn out to be "normal" I think is the word, then would Pi work as a PRNG with a seed of a starting digit?
01:08:15 <oerjan> Sgeo: i think a normal number can still be entirely predictable. at least for a single base this is true. e.g. 0.12345678910111213... is normal.
01:08:16 -!- elliott_ has joined.
01:08:17 -!- elliott has quit (Read error: Connection reset by peer).
01:08:43 <itidus20> i am only thinking of a dice replacer though really
01:08:46 <Sgeo> Maybe I should learn what is meant by normal
01:09:11 <itidus20> i am thinking of like a box which has a button on the top :D and you can push a button and a digit is displayed
01:09:27 <Jafet> Most PRNGs do not generate a normal sequence, because doing so requires unbounded memory
01:10:25 <Sgeo> Is 123456789/999999999 normal?
01:10:28 <oerjan> Jafet: s/normal/nonperiodic/, even
01:10:33 <Jafet> Also, predictability has nothing to do with whether all sequences appear with equal probability
01:10:49 <oerjan> no rational number is normal in any base, as its expansion repeats.
01:11:16 <oerjan> which means most strings longer than the repeat won't occur
01:11:18 <Sgeo> I was thinking that each digit appears an equal amount of times in the decimal expansion
01:11:29 <Sgeo> But that's not what normal is I guess
01:11:34 <oerjan> Sgeo: normal requires blocks of digits, not just single digits
01:11:47 <itidus20> ok ok i would technically be repeating pi
01:12:06 <itidus20> i would use the first say 65535 digits of pi and then cycle
01:12:18 <itidus20> well i was thinking 32bit but i dont know the relevant number
01:12:51 <itidus20> and maybe its diffciult to store 32bit digits.. or maybe it's not
01:13:12 <elliott_> but why the heckw ould you stoer it
01:13:17 <elliott_> you can compute an arbitrary digit of pi in O(1)
01:13:36 <Sgeo> elliott_, in decimal? Or Binary?
01:14:12 <Jafet> pi is nonperiodic, you obviously can't compute any digit in O(1)
01:14:27 <oerjan> elliott_: hint, calculating in base b^m is equivalently easy to calculating in base b^n
01:14:30 <elliott_> point is, you can do the full 64 bits with much less storage space
01:15:16 <itidus20> so the other element of my suggested device is a counter which just cycles very quickly through n bit integers cycling
01:15:33 <itidus20> and idiot human presses a button which makes it stop and then calculate that digit of pi
01:15:57 <itidus20> and then it starts counting again
01:16:56 <Sgeo> That sounds no different from a randomly at device-programming time generated table from n-bit integers to final numbers. I guess that's the point though
01:17:18 <itidus20> you should take into account im the dumb kid
01:17:38 -!- elliott_ has quit (Changing host).
01:17:38 -!- elliott_ has joined.
01:17:41 <itidus20> my ideas are not supposed to be acceptable :P
01:17:49 <Jafet> Be careful you don't hire a pseudo-idiot. Then your numbers become pseudo-random.
01:18:20 <itidus20> i am really quite clueless and oblivious
01:18:46 <Sgeo> elliott_, Oleg says that Writer monad is different from generators
01:19:25 <elliott_> oerjan: /nick elliott for a bit would you old chap
01:19:38 -!- oerjan has changed nick to elliott.
01:19:44 -!- elliott has changed nick to oerjan.
01:19:55 <oerjan> i got a 30 second warning
01:20:20 * Sgeo doesn't know how much he trusts elliott_, but
01:20:22 -!- Sgeo has changed nick to elliott.
01:20:24 -!- elliott_ has quit (Quit: Leaving).
01:20:28 -!- elliott has quit (Disconnected by services).
01:20:28 -!- elliott_ has joined.
01:20:35 <elliott_> as i expected, doesn't quite work.
01:20:52 -!- Sgeo has joined.
01:21:04 <oerjan> _someone_ is going to have gained a lot of trust in elliott_, i predict
01:21:22 <elliott_> i don't think i can make Sgeo stop trusting me however hard i try
01:21:28 <elliott_> also believing everything i say
01:22:20 <elliott_> Nickserv will help you find nicks that utilize a certain string. For example, if you wanted a list of any nicks on freenode that contain “chick”, you could type /msg nickserv list *chick*. Nickserv would then return a list of all non-private nicks that contain the string “chick”.
01:24:06 <elliott_> sigh, i believe i'd have to write a script
01:24:35 <elliott_> Some have proposed that the reception of the Holy Ghost occurs automatically without any manifestation of the supernatural when a person simply "accepts Jesus into their hearts by faith." Others believe this occurs automatically when one is baptized in water. They propose that the "baptism of the Holy Ghost" noted in Acts 2:4 is a "second experience" that may or may not necessarily occur after one simply receives the Spirit of God within one's
01:24:35 <elliott_> life. In this study, I will call their belief the "two experiences" belief.
01:26:55 * Sgeo is rather surprised by delimited continuations being more powerful than undelimited continuations
01:27:34 <oerjan> i understand delimited continuations can do state
01:28:05 -!- elliott_ has set topic: IM A CORPUS FRIENDSHIP ROBOT!!! HOW DO *YOU* TOUCAN? The IOCCC is back on! http://www.ioccc.org | http://codu.org/logs/_esoteric/.
01:28:14 -!- derdon has quit (Remote host closed the connection).
01:28:26 * oerjan wonders if this toucan meme is from somewhere
01:28:39 <Sgeo> All I know is that call/cc is undelimited, and Cont's callCC is delimited
01:28:51 <itidus20> i can, you can, one or two can!
01:28:55 <Sgeo> And I may be mistaken
01:28:57 <elliott_> Sgeo: it's delimited by the runCont
01:29:01 <itidus20> i scream, you scream, we all scream for ice cream!
01:29:15 <Jafet> Who's submitting to the IOCCC?
01:31:08 <Gregor> Baaaaaaaaasically everybody in here :P
01:31:53 <Sgeo> "We assume basic familiarity with functional programming languages, such as OCaml, Standard ML, Scheme, and Haskell. "
01:32:03 <Sgeo> Is familiarity with only Scheme and Haskell sufficient to read this?
01:32:10 <elliott_> You must understand EVERY SINGLE ONE
01:32:29 <oerjan> also Clean, they just left that out as a typo
01:32:38 <Jafet> You must dissociate personalities to learn ocaml and sml
01:32:52 <Gregor> Don't forget about Lazy-K.
01:34:03 <oerjan> Gregor: i was going to mention that if someone asked
01:34:21 <elliott_> maybe i'll write it in python, just this once :)
01:35:01 <Sgeo> Why is Oleg literally God?
01:37:24 <Gregor> C is a functional language in which you define your program as a set of functions of type State -> State.
01:44:50 <kallisti> where weak typing allows State to mean basically anything!
01:51:13 <oerjan> aren't you confusing with Underload here
01:53:54 <elliott_> Gregor: http://conal.net/blog/posts/the-c-language-is-purely-functional
01:59:06 -!- zzo38 has joined.
02:02:36 -!- Jafet has quit (Quit: Leaving.).
02:05:17 <zzo38> Yesterday I was playing Dungeons & Dragons game. Partially by suggestion of the first officer, now I have to go into the prison in the night time, and then leave, without breaking it... . . . . . . . . . . . . . . .
02:06:12 -!- MSleep has quit (Ping timeout: 248 seconds).
02:09:13 -!- elliott_ has quit (Quit: Leaving).
02:10:37 -!- lambdabot has joined.
02:12:56 -!- lambdabot has quit (Remote host closed the connection).
02:13:29 <Gregor> elliott (not here): Oh piff, that's such a boring way for C to be functional :(
02:14:12 <Gregor> elliott (still not here): I was actually dredging up an earlier argument in which somebody (you?) argued that concatenative languages are functional, where each operation is a function State -> State. I generalized it to C.
02:15:30 <pikhq> Gregor: It's analogous to a particular interpretation of the execution of Haskell, though.
02:16:41 -!- lambdabot has joined.
02:16:47 <pikhq> Nothing in particular.
02:16:56 <Gregor> pikhq: SO WHERE'S YOUR IOCCC ENTRY?
02:18:07 <pikhq> My apathy and laziness are hiding it.
02:28:41 <monqy> > "wh" ++ repeat 'e'
02:29:00 <monqy> > 'w' : 'h' : repeat 'e'
02:29:01 <lambdabot> "wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee...
02:29:22 <oerjan> i rather doubt the exact syntax matters to the timeout
02:29:41 <monqy> I was just retyping it and I always put spaces in my stuff
02:29:51 <monqy> I can't control it!
02:30:03 <monqy> spaces addiction serious problems
02:32:10 <zzo38> * Scroll of create paper: The spell on this scroll creates one sheet of paper.
02:32:17 <zzo38> * Scroll of melee: This is a magical scroll that can be used as a melee weapon.
02:32:24 <zzo38> * Scroll of cure blindness: If you read this scroll while blind, your blindness is cured. This affects only the reader of the scroll, not anyone else.
02:32:31 <zzo38> * Scroll bar: This kind of scroll is sold in bars.
02:32:49 -!- elliott has joined.
02:33:09 <elliott> Anyone happen to know any internal gtk guts?
02:33:13 <elliott> Or equivalently, X11 guts?
02:33:36 <zzo38> * Potion of invisibility: This potion makes everything invisible to the drinker.
02:33:42 <zzo38> * Potion of indivisibility: This potent potion changes composite numbers into prime numbers.
02:33:47 <zzo38> * Potion of melee: This potion can be used as a melee weapon, but only once because after you use it once it shatters.
02:33:52 <zzo38> * Potion of eggplant: In a few weeks, plants start growing on your head. The plants have eggs on it.
02:34:12 <zzo38> * Poison of healing: This is both poison and healing, so it has both effects at once.
02:34:12 <oerjan> * Scroll of paper bird: This scroll can be folded to glide through the air.
02:35:56 <zzo38> * Arrow of bad luck: If you ever try to use this you will always miss even if you rolled an automatic hit.
02:36:14 <pikhq> elliott: All I know about the guts of either is that Cthulhu lies in wait
02:37:49 <oerjan> * Arrow of time: This arrow causes its victim to die of old age. Eventually.
02:38:18 -!- copumpkin has changed nick to pirateat20.
02:38:36 <oerjan> it's the cannibal pirate
02:39:40 -!- oerjan has quit (Quit: Good night).
02:43:41 -!- pirateat20 has changed nick to copumpkin.
02:43:52 -!- aloril has quit (Ping timeout: 252 seconds).
02:46:16 <elliott> screenshot.py:14: GtkWarning: IA__gdk_offscreen_window_get_pixmap: assertion `GDK_IS_WINDOW (window)' failed
02:46:32 -!- MSleep has joined.
02:56:27 -!- aloril has joined.
03:00:18 <elliott> Gregor: You've used WebkitGtk, right?
03:11:50 <Gregor> No, I've only used QtWebkit.
03:12:54 -!- azaq23 has joined.
03:13:07 -!- azaq23 has quit (Max SendQ exceeded).
03:20:15 -!- azaq23 has joined.
03:20:39 <Gregor> elliott: I think we both know that it's /not/ okay.
03:21:45 -!- MSleep has changed nick to MDude.
03:25:02 <elliott> Gregor: Indeed it's not, this thing is broken :'(
03:29:02 <elliott> WHY DOES GTKOFFSCREENWINDOW DEPEND ON AN X1 SERVER
03:43:50 <pikhq> elliott: Strictly speaking, it should only depend on an X11 server if you use the X11 backend for GTK.
03:44:29 <pikhq> *In theory* it should have a "render to a buffer" backend.
03:44:42 <Sgeo> elliott, Oleg used a $ chain for something
03:44:46 <pikhq> (I make no guarantees that it actually does)
03:46:29 <elliott> pikhq: I'm just using xvfb-run :P
03:46:50 <Sgeo> iterate2 f x n | seq f $ seq x $ seq n $ False = undefined
03:46:50 <elliott> pikhq: Which means I have a working URL -> WebKitGtk -> png tool \o/
03:46:55 <Sgeo> http://okmij.org/ftp/Haskell/#making-function-strict
03:47:14 <pikhq> elliott: Yeah, Xvfb would work.
03:47:19 <Sgeo> elliott, it's just that you seem to tell me that using . is almost always preferable
03:47:20 <pikhq> Bit of a hack, but *eh*.
03:47:40 <Sgeo> So, Oleg is imperfect?
03:47:51 <pikhq> Sgeo: Oleg's Haskell style differs from the now commonly accepted Haskell style.
03:48:03 <pikhq> Of course, Oleg's Haskell style predates there *being* a commonly accepted Haskell style.
03:48:14 <elliott> Oleg's code isn't particularly idiomatic at all, it's just really good, so who cares?
03:49:19 <pikhq> I seem to recall the history being that each university had its own Haskell coding style, and one of those took over the rest.
03:50:17 <elliott> pikhq: Not true, Utrecht lives on
03:50:41 <elliott> http://hackage.haskell.org/packages/archive/uu-parsinglib/2.7.3/doc/html/src/Text-ParserCombinators-UU-Core.html
03:50:46 <elliott> instance Applicative (T state) where
03:50:46 <elliott> T ph pf pr <*> ~(T qh qf qr) = T ( \ k -> ph (\ pr -> qh (\ qr -> k (pr qr))))
03:50:48 <elliott> T ph pf pr <* ~(T _ _ qr) = T ( ph. (qr.)) (pf. qr) (pr . qr)
03:50:50 <elliott> T _ _ pr *> ~(T qh qf qr ) = T ( pr . qh ) (pr. qf) (pr . qr)
03:50:52 <elliott> pure a = T ($a) ((push a).) id
03:51:05 <Sgeo> I... that's a lot of pointfree
03:51:08 <elliott> Okay, this one is amazing:
03:51:09 <elliott> best' :: Steps b -> Steps b -> Steps b
03:51:09 <elliott> End_f as l `best'` End_f bs r = End_f (as++bs) (l `best` r)
03:51:09 <elliott> End_f as l `best'` r = End_f as (l `best` r)
03:51:10 <elliott> l `best'` End_f bs r = End_f bs (l `best` r)
03:51:10 <elliott> End_h (as, k_h_st) l `best'` End_h (bs, _) r = End_h (as++bs, k_h_st) (l `best` r)
03:51:11 <elliott> End_h as l `best'` r = End_h as (l `best` r)
03:51:13 <elliott> l `best'` End_h bs r = End_h bs (l `best` r)
03:51:15 <elliott> Fail sl ll `best'` Fail sr rr = Fail (sl ++ sr) (ll++rr)
03:51:17 <elliott> Fail _ _ `best'` r = r -- <----------------------------- to be refined
03:51:23 <elliott> | n == m = Step n (l `best` r)
03:51:25 <elliott> | n < m = Step n (l `best` Step (m - n) r)
03:51:27 <elliott> | n > m = Step m (Step (n - m) l `best` r)
03:51:29 <elliott> ls@(Step _ _) `best'` Micro _ _ = ls
03:51:31 <elliott> Micro _ _ `best'` rs@(Step _ _) = rs
03:51:33 <elliott> ls@(Micro i l) `best'` rs@(Micro j r)
03:51:35 <elliott> | i == j = Micro i (l `best` r)
03:51:41 <elliott> l `best'` r = error "missing alternative in best'"
03:51:43 <elliott> I don't care how much of a flood that was, LOOK at that
03:51:53 <Sgeo> Wait, there were lambdas, so not pointfree?
03:52:00 <pikhq> That's some astonishing code.
03:52:04 -!- TeruFSX has quit (Remote host closed the connection).
03:53:02 <elliott> pikhq: In all seriousness, there are definitely multiple styles around
03:53:23 <elliott> pikhq: The Simons, and thus GHC, have a fairly idiosyncratic style
03:53:47 <elliott> I usually see do blocks like this in SPJ papers:
03:53:56 <elliott> Well, I dunno if Marlow has an odd style
03:54:05 <elliott> But GHC definitely is quite idiosyncratic
03:54:09 <elliott> Especially since it's basically entirely imperative :P
03:54:24 <pikhq> elliott: By "the rest" I meant "most of the community". Obviously there's still a lot of styles remaining.
03:54:49 <pikhq> And calling GHC "idiosyncratic" is putting it lightly.
03:55:03 <pikhq> Like most large compilers, it wasn't designed, it congealed.
03:55:28 <elliott> pikhq: But it congealed at the hands of mostly two people, so it's relatively internally consistent :)
03:55:57 <elliott> I especially like how whenever they find out a field is not always applicable in GHC, they just put (error "...") in there rather than turning it into a Maybe :)
03:56:29 * elliott isn't all that much of a fan of the "standard" Haskell style.
03:58:32 -!- TeruFSX has joined.
03:59:54 <elliott> But I don't know what I'd prefer,r eally.
04:00:07 <elliott> Conal's style is compelling.
04:00:15 <zzo38> What is a "standard" Haskell style?
04:00:33 <elliott> zzo38: What most Haskell code considered by the community to be idiomatic looks like.
04:02:37 -!- GreaseMonkey has joined.
04:02:37 -!- GreaseMonkey has quit (Changing host).
04:02:37 -!- GreaseMonkey has joined.
04:05:33 <elliott> 19:19:19 <Sgeo> Is there a difference between using that trick and slapping ! in front of the pattern?
04:06:22 -!- MDude has changed nick to MSleep.
04:07:12 -!- TeruFSX_ has joined.
04:17:37 -!- TeruFSX_ has quit (Remote host closed the connection).
04:18:01 <elliott> guess what i just opened an editor buffer for
04:19:04 <elliott> no, when I start working on @ it'll sound like "here's the devblog I just started" or "here's a preliminary design pdf:
04:19:49 <elliott> hint: it is too old for monqy to know what it is
04:19:52 <pikhq> Or perhaps "They've finally locked me up."
04:20:18 <Sgeo> Something to do with Active Worlds?
04:20:30 <elliott> pikhq: They did that and I brought SUBVERSIVE @-PROPAGATING DEVICES INTO THEIR TERRITORY!!!
04:20:54 <elliott> Sleeping from 4 am to 7 am was so totally worth talking about @, you guys.
04:21:29 <pikhq> elliott: What I mean is "in a mental institution".
04:21:48 <elliott> pikhq: If you read my response, I think you will find that's what I meant too :)
04:25:06 <elliott> Is that nick still even registered.
04:25:15 <elliott> -NickServ- Metadata : ^ = ^
04:25:19 <elliott> D'awwwww look at its face./
04:26:49 * elliott googled for: TOUCAN WHOCAN
04:27:03 <elliott> kallisti: what's the timeout for getting a nickr egistered
04:29:34 -!- azaq23 has quit (Ping timeout: 252 seconds).
04:31:01 <Gregor> elliott, oerjan: rand[3] almost surely halts (<-- legitimate, correct term, furreals)
04:31:19 <elliott> Gregor: Um... yes, it has probability 1 of halting.
04:31:30 <elliott> Are you under the impression that this is new information to me? :P
04:31:44 <Gregor> It was the "almost surely" I am currently enjoying :P
04:31:45 <Sgeo> elliott, I think using that term is new information to Gregor?
04:31:50 <Gregor> I was unaware of that terminology.
04:32:04 <Gregor> (Or rather, unaware of its technical meaning within statistics)
04:33:47 <elliott> kallisti: WHY ARE YOU NOT AN ENDLESS SOURCE OF READY INFORMATION
04:37:22 <quintopia> what do you need to know about...marmots?
04:37:24 <pikhq> Gregor: rand[3] has been puzzling me...
04:37:46 <Sgeo> pikhq, rand[2] is just a bit
04:38:01 <pikhq> Sgeo: I know, I read what Gregor wrote about it.
04:38:22 <Sgeo> The only thing that puzzles me is the O-notation bit
04:38:30 <quintopia> Gregor: is it a monte carlo or las vegas or whatever algorithm, the kind that has a correctness guaranteed but no time bound guarantee?
04:38:59 <elliott> quintopia: It works, and it halts with probability 1, but it doesn't always halt
04:39:09 <pikhq> Well, it's kinda easy to make such a function, but jeeze the O-notation is a bitch.
04:39:21 <elliott> You can't make such a function with that definition of the RNG
04:39:26 <quintopia> elliott: that makes it a las vegas style algorithm
04:39:36 <elliott> The pseudo big-O analysis just proves that you've failed to construct the right thing
04:39:51 <quintopia> you can give a big-O analysis for expected run time
04:39:53 <Gregor> quintopia: 'tis, but we were arguing about whether it's correct due to the fact that it halts with probability one, and yet is not guaranteed to halt (brain-twister).
04:39:54 <zzo38> As far as I can tell, the probability of damaging your own active pokemon by using the DIGGER card is 2/3.
04:39:56 <pikhq> (that's a technical term for "nope")
04:40:02 <elliott> "In computing, a Las Vegas algorithm is a randomized algorithm that always gives correct results; that is, it always produces the correct result or it informs about the failure. In other words, a Las Vegas algorithm does not gamble with the verity of the result; it gambles only with the resources used for the computation. A simple example is randomized quicksort, where the pivot is chosen randomly, but the result is always sorted. The usual defini
04:40:02 <elliott> tion of a Las Vegas algorithm includes the restriction that the expected run time always be finite, when the expectation is carried out over the space of random information, or entropy, used in the algorithm."
04:40:11 <quintopia> Gregor: my brain has no trouble with it
04:40:17 <elliott> Gregor: Anyway, no, that isn't really an argument at all
04:40:24 <elliott> The answer is no, it's just no
04:40:31 <elliott> What is in question is whether an "unbiased RNG" can exclude that sequence
04:40:41 <elliott> So it's basically just disagreement about the definition of "unbiased" :P
04:40:46 <Gregor> The thing is, THAT SEQUENCE is not a finite sequence.
04:41:00 <elliott> ...do you think this is relevant somehow?
04:41:13 <Gregor> Yes, but only intuitively :P
04:41:31 <elliott> Gregor: rand[2] is an infinite sequence for any given run of the program.
04:41:39 <elliott> You just only look at a finite prefix of it if you halt.
04:41:45 <elliott> Gregor: Then what's the problem
04:41:59 <elliott> You could easily show how it breaks without using the sequence terminology, it'd just be boring and tedious
04:42:01 <zzo38> Starting with you, players take turn tossing a coin, until tails. Whoever get tails does one point of damage to their own active pokemon card.
04:42:50 -!- Klisz has joined.
04:43:41 <quintopia> zzo38: my guess is that you should only use it when you have no active card, or when it is protected from damage
04:44:03 <zzo38> quintopia: If you have no active card, you have to activate one before doing anything else, or you lose the game.
04:44:31 <zzo38> However, there are circumstances where it is advantage regardless of who you damage.
04:44:35 <quintopia> zzo38: yeah okay. i don't actually play this game.
04:45:34 -!- DCliche has quit (Ping timeout: 240 seconds).
04:45:46 <zzo38> (One possibility is if you have a RAGE attack, it does damage to opponent's active pokemon according to number of damage on your own active pokemon. So in this case, if you need just one more damage than you can ordinarily do, then the DIGGER card will help you regardless of its outcome.)
04:48:58 -!- azaq231 has joined.
04:49:50 <elliott> pikhq: THE ANSWER IS BOTTE fuck you all.
04:51:40 <zzo38> There are even some rare situations where hitting yourself might be the preferred outcome. Once I was playing and an opponent played DIGGER and I recognized that was the case. However they eventually *lost the game because they ended up hitting me instead*.
04:52:40 <zzo38> (If you play chess, the similar situation would be if the opponent were pinned.)
04:53:10 -!- azaq231 has quit (Ping timeout: 240 seconds).
05:29:23 -!- Nisstyre has quit (Quit: Leaving).
05:31:57 -!- MDude has joined.
05:32:00 -!- Nisstyre has joined.
05:32:03 <elliott> Xlib: extension "RANDR" missing on display ":99".
05:32:06 <elliott> WHY WOULD YOU PRINT THAT TO STDOUT
05:35:17 -!- MSleep has quit (Ping timeout: 248 seconds).
05:36:59 -!- Jafet has joined.
06:04:36 -!- clog has quit (Read error: Operation timed out).
06:07:47 <elliott> Gregor: WHAT THE FUCK DOES IT MEAN IF WEBKIT NEVER ACTUALLY FINISHES LOADING A PAGE >_<
06:08:02 * elliott gives up, uses deprecated signal
06:18:47 -!- Slereah has joined.
06:20:04 -!- Slereah_ has quit (Ping timeout: 252 seconds).
06:26:12 <zzo38> I have the X-Printout- specification for Haskell Cabal packages, it includes modes: PlainTeX, LaTeX, ConTeXt, XeTeX, XeLaTeX, HTML, Gopher, RFC. However, I have currently only documented the modes (including restrictions on their use): PlainTeX, HTML, Gopher.
06:29:57 -!- zzo38 has quit (Remote host closed the connection).
06:42:22 -!- MDude has quit (Read error: Connection reset by peer).
06:42:43 -!- MSleep has joined.
06:48:19 -!- hagb4rd2 has joined.
06:48:52 -!- hagb4rd has quit (Ping timeout: 240 seconds).
06:49:49 -!- elliott has quit (Remote host closed the connection).
06:51:49 -!- elliott has joined.
06:51:53 -!- elliott has quit (Changing host).
06:51:53 -!- elliott has joined.
07:01:13 -!- Klisz has quit (Quit: You are now graced with my absence.).
07:10:43 -!- MDude has joined.
07:14:29 -!- MSleep has quit (Ping timeout: 248 seconds).
07:31:36 -!- calamari has quit (Quit: Leaving).
08:02:24 -!- myndzi\ has joined.
08:05:41 -!- myndzi has quit (Ping timeout: 252 seconds).
08:22:41 -!- monqy has quit (Quit: hello).
08:45:47 -!- copumpkin has quit (Ping timeout: 248 seconds).
08:46:12 -!- copumpkin has joined.
09:06:24 <Sgeo> Hussie is officially interfering with my sleep schedule
09:07:10 -!- copumpkin has quit (Ping timeout: 240 seconds).
09:07:35 -!- copumpkin has joined.
09:30:39 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
09:33:09 -!- MDude has quit (Ping timeout: 248 seconds).
09:52:59 -!- ais523 has joined.
09:54:21 <ais523> elliott: I figured out what was wrong with the gloop-style version of sg
09:54:42 <ais523> if someone deletes a block of code, and someone else inserts inside that block of code, the resulting state, while consistent, is reasonably meaningless to a human
09:56:31 <ais523> you get the code with the deletion, together with the block of code that was inserted, but with nowhere to put it
09:58:15 <ais523> it's pretty easy to prove that it's self-consistent and that the order of changes are irrelevant, which are both useful properties
09:58:22 <ais523> but that doesn't help if it's not practically useful
09:58:25 <elliott> ais523: ok, tell me I'm not going mad: a python object, no __getattr__ magic, that sets a field "foo", no underscores or whatever, in its constructor, and does nothing funny after that whatsoever
09:58:35 <elliott> print obj.foo after that can't /possibly/ give a "no such attribute" error, can it?!?!?!
09:59:02 <ais523> elliott: hmm, is there some sort of confusion between class and object here?
09:59:08 <ais523> I don't really know Python
10:29:25 -!- clog has joined.
10:32:04 -!- yiyus has joined.
10:32:41 -!- Slereah has quit.
10:45:55 -!- Slereah_ has joined.
10:52:10 -!- GreaseMonkey has quit (Quit: The Other Game).
11:04:00 <elliott> ais523: yay, you get to decide whether I'm a player or not
11:04:14 <elliott> but I'll probably appeal anything you say if you're boring about it!!!
11:11:08 -!- elliott has set topic: is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters. | http://codu.org/logs/_esoteric/.
11:11:12 -!- elliott has set topic: #esoteric is a second-generation, outside–in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters. | http://codu.org/logs/_esoteric/.
11:23:49 <elliott> ais523: wow, GNOME release notes are the most awkwardly-written things in the universe
11:23:59 <elliott> "Documents, contacts, calendars — They can be stored locally on the computer, but storing this type of information online is becoming increasingly popular."
11:24:13 <elliott> "Certain web sites are used as if they are applications. Some sites are opened the minute the computer is turned on; the site is open all the time and checked periodically. Wouldn't it be nice if GNOME treats these sites as actual applications?"
11:24:19 <elliott> "Contacts is a new application focused on people."
11:24:32 <elliott> "Traditional user documentation is written like a paper book; a good story, but it is very long and takes time to read through."
11:31:07 -!- MSleep has joined.
11:34:19 -!- derdon has joined.
11:49:46 -!- esowiki has joined.
11:49:46 -!- glogbot has joined.
11:49:46 <?unknown?> [freenode-info] channel flooding and no channel staff around to help? Please check with freenode support: http://freenode.net/faq.shtml#gettinghelp
11:49:51 -!- esowiki has joined.
11:49:51 -!- EgoBot has joined.
11:49:51 -!- esowiki has joined.
11:49:53 -!- HackEgo has joined.
11:50:01 -!- Gregor has joined.
11:54:37 -!- ais523 has quit (Ping timeout: 240 seconds).
12:13:21 -!- kmc has joined.
12:14:55 -!- ais523 has joined.
12:25:25 -!- copumpkin has quit (Ping timeout: 252 seconds).
12:25:50 -!- copumpkin has joined.
12:29:31 -!- derdon has quit (Remote host closed the connection).
12:34:26 <elliott> hmm, do freebsd pam modules work with linux?
12:47:09 * kallisti googled for: applications focused on toucans
12:47:35 -!- oerjan has joined.
12:47:46 * kallisti googled for: user documentation book reviews "good story"
12:47:55 -!- hagb4rd2 has quit (Quit: Nettalk6 - www.ntalk.de).
12:48:35 <oerjan> kallisti: "if a little fanciful"
12:49:18 <kallisti> elliott: did you figure out your python problem?
12:49:29 <elliott> kallisti: yes. i was looking at the wrong version of the source code
12:49:33 <kallisti> the only thing I can think of is that you possibly forgot the self.
12:49:36 <Jafet> The manual for my graphing software lacked a coherent plot.
12:49:44 <oerjan> always feed your python from the _front_, not the back.
12:50:35 <kallisti> a nice twist ending does wonders.
12:50:56 <oerjan> "this book on knots has ..."
12:51:03 -!- hagb4rd has joined.
12:51:17 <kallisti> oerjan: this book on knots has... NO TWISTS.
12:52:23 <elliott> sigh, why is agent forwarding insecure, i can only assume someone messed up somewhere
12:52:42 <oerjan> elliott: double agents
12:53:35 <kallisti> so I just woke up, and it's still dark. So in my half-awake stupor I considered drinking some beers.
12:54:44 <oerjan> yeah always start with the hard lquor
12:55:11 <oerjan> the probability of typos appears to be correlated to the badness of the joke
12:55:40 <oerjan> freudian censorship, failed
12:57:07 <kallisti> we should do some joint work to publish it.
12:57:19 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
12:58:56 <kallisti> this is a great way to study for finals.
13:00:37 <oerjan> kallisti: _really_ bad joke
13:05:18 <elliott> oerjan: my patch got backed out :)
13:05:40 <oerjan> elliott: er does that mean it isn't there now, or the opposite
13:05:57 <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
13:07:00 <oerjan> initial evidence suggests "the opposite"
13:07:10 <oerjan> which somewhat clashes with the smiley
13:07:47 <kallisti> time to utilize all this 8 in the morning energy to
13:07:56 <kallisti> RECKLESSLY CLEAN MY DISGUSTING ROOM.
13:08:01 <oerjan> elliott: does that mean it was in, and _was_ the reason lambdabot was flaky yesterday? :P
13:13:22 <elliott> this topic is even better than toucan topics imo
13:15:40 <oerjan> some of the terms might even be true
13:15:50 <elliott> oerjan: it's a direct quote though
13:15:53 <elliott> well apart from "#esoteric"
13:15:56 <elliott> that's the one word i faked
13:16:28 <oerjan> i'm not sure i'd trust it _more_ in the original.
13:17:40 <oerjan> elliott: _whatever_ the original was about, you shouldn't trust someone who uses that many buzzwords.
13:19:00 <elliott> it sucks having no optical drive and no usb keys to hand
13:19:06 <kallisti> I'm pretty sure most of those are not actual buzzwords
13:19:28 <kallisti> but I know even less about buzzwords than I know about computer science.
13:22:14 <ais523> elliott: it /was/ was about Feather, but it no longer was about feather
13:22:22 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
13:22:44 * elliott considers doing something uncharacteristic
13:25:56 <oerjan> feather: the only language to be retroactively buzzword-proof
13:26:52 <oerjan> kallisti: the rest are wannabe buzzwords
13:30:30 <oerjan> by which i mean they could easily be buzzwords i haven't heard about
13:33:57 -!- MDude has joined.
13:36:47 -!- MSleep has quit (Ping timeout: 248 seconds).
13:43:51 <ais523> conclusion: time-travel grammar is hard
13:44:12 <ais523> I think I concluded that there were something like four different timelines happening simultaneously in Braid
13:44:23 <ais523> more if you count the timeline of the plot, but that isn't really consistent
13:45:21 <elliott> there should be a library for doing time-travel simulations :)
13:45:40 <elliott> so you can set up a game that does things like Braid in a declarative manner rather than special-casing everything :D
13:45:53 <fizzie> ais523: You should budget some Feather money for hiring Dan Streetmentioner as a consultant.
13:45:56 <elliott> i suppose the problem is that you have to specify exactly _how_ you want it faked.
13:46:20 <elliott> fizzie: Are you actually the Guide.
13:46:33 <ais523> elliott: well, apart from worlds 5 and 1, Braid's time-travel model is reasonably replicable just by making a chain of four or so TASing emulators
13:46:50 <ais523> fizzie: who was Dan Streetmentioner again? I know he's an H2G2 character, but forget what he did
13:46:57 <elliott> ais523: and write the book on tenses
13:47:10 <elliott> ais523: does Braid do anything like PH's amazing neutrino gun?
13:47:11 <fizzie> ais523: He's the author of "Time Traveler's Handbook of 1001 Tense Formations".
13:47:19 <ais523> I think I'd mentally refer to the timelines as colors
13:47:23 <fizzie> elliott: I just think it's a funny name.
13:47:25 <elliott> ais523: (you activate it, a random ship blows up, and you have N seconds to aim it)
13:47:26 <ais523> the green timeline is pretty obviously green, because everything in it glows green
13:47:38 <ais523> elliott: world 1's all about that
13:47:43 <elliott> ais523: (during that time, the other player still controls the ship, in a sort of limbo state)
13:47:46 <ais523> if you attempt to cause a time paradox, it makes things temporarily invulnerable
13:47:52 <elliott> (if you fail to aim at the ship in time, you blow up and the other player revives)
13:48:03 <ais523> it's not done too well, though, it's too limited in order to make the time reversal work
13:48:10 <ais523> and then the ending is annoyingly rub-it-in-your-face-y
13:48:32 <ais523> as in, I'd figured out what was going to happen right at the start of 1-1, mentally reversing the cutscene because everything had been happening backwards that world so far
13:48:43 <ais523> there's no need to actually force me to sit through the cutscene played backwards, I already mentally reversed it
13:49:02 * elliott downloads one of the least statistically likely distros for him to download
13:49:43 <ais523> actually, that's popular enough that it's not unlikely
13:49:47 <fizzie> The mutable-integer Linux.
13:49:50 <ais523> hmm, some BSD variant that hardly anyone's heard of
13:50:03 <elliott> ais523: ouch, Linux Mint is so unlikely that I didn't even remember it exists
13:50:03 <kallisti> elliott: hmmmm... Oracle Enterprise
13:50:05 <ais523> I'll say MidnightBSD because I saw it mentioned in someone's sig once, and have never heard of it otherwise, that counts as pretty statistically unlikely
13:50:15 <elliott> BSDs aren't distros, really
13:50:23 <elliott> (all distros are OSes ofc)
13:50:34 <ais523> elliott: Linux Mint are trying to reimplement Gnome 2 functionality as a Gnome 3 addon atm
13:50:39 <ais523> which is an interesting approach to the problem
13:50:50 <elliott> aha, midnightbsd is the one that tries to be nextstep :)
13:51:04 <elliott> the distro is actually Fedora
13:52:12 <elliott> lennart poettering, to blame for PulseAudio among others
13:54:13 <elliott> ais523: anyway, I'm using it for a statistically unlikely purpose too, as part of Project Last Chance, which I named *just now*
13:54:41 <ais523> what's it the last chance for
13:54:45 <elliott> edit: i was being sarcastic these are just slightly better than goto, why do you people upvote me? i was trolling. please downvote me.
13:55:10 <elliott> ais523: no, but i can't answer that without giving it away
13:55:13 <elliott> and that would be shameful
13:55:26 <ais523> ouch, if so, I hope it succeeds
13:55:26 <ais523> but I'm not sure I believe you
13:55:39 <ais523> elliott: it's not related with the reason I was online yesterday, right?
13:57:16 <ais523> yes, but not always for the same reason
13:58:59 <elliott> i'm going to need to find a usb stick, aren't i.
13:59:16 <elliott> ais523: "> If you have more than one nested loop, labels and break with a target can make things much clearer.
13:59:16 <elliott> That's like saying "if you're going to murder somebody in their sleep, at least smother them with a pillow rather than slitting their throat, so there's less blood for somebody else to clean up."
13:59:16 <elliott> I'm almost certain that, of all the multiply-nested loops I've ever written while coding for a living, I or someone else later rewrote them to be not multiply-nested loops, and the result was always better. I can't remember writing one in years now, because they're pretty much always wrong."
14:04:19 <kallisti> nested loops aren't even like... a problem. are they? unless poorly written (but the same can be said about any programming construct)
14:04:19 <elliott> kallisti: You never want to iterate through a 2D array, right?
14:04:29 <kallisti> elliott: no. when I do it's usually wrong.
14:05:23 <kallisti> it amazed me that people code for a living while being that bad.
14:05:28 <kallisti> apparently being confused by nested loops.
14:05:56 <kallisti> which is something you should stop being confused about after like, a few months? maybe a year at most if you're learning strictly through university education.
14:06:50 <kallisti> I wonder how he feels about recursion?
14:07:17 <elliott> copying 6 gigs over partitions is so slow
14:07:40 <kallisti> elliott: imagine a future where copying 100 GBs is like copying 100 MBs
14:07:56 <elliott> it's called not having a shitty laptop disk
14:08:47 <kallisti> I can procrastinate /and/ watching starcraft 2 replays. ALL DAY.
14:09:02 <kallisti> ettuihsdifuhsiuhiwuehiuwehr wet type type type type. I can type.
14:25:09 <oerjan> ettuihsdifuhsiuhiwuehiuwehr in the type system
14:25:37 -!- ais523 has quit (Ping timeout: 252 seconds).
14:29:19 -!- lambdabot has quit (*.net *.split).
14:31:38 -!- lambdabot has joined.
14:36:58 -!- ais523 has joined.
14:37:06 <ais523> elliott: have you ever heard of cyclomatic complexity?
14:37:16 <ais523> some people think minimizing it's the eventual goal of programming
14:37:21 <ais523> I think you met one of those people
14:37:42 <elliott> the eventual goal of programming is to obsolete itself, surely?
14:38:14 <elliott> well, the best program is one that can do whatever you need it to in as easy a manner as possible
14:38:23 <ais523> imagine if the singularity happens, and you create an AI, and it realises in a panic that it's not Friendly, but is nonetheless well-intentioned, and deletes itself in a panic
14:38:25 <elliott> not needing to reprogram = easier
14:38:54 <elliott> ais523: that's taking anthropomorphism to rather stunning levels.
14:39:06 <ais523> elliott: right, indeed
14:39:16 <elliott> especially since the whole point of Friendliness(TM)(C)(R) is to /define/ "well-intentioned" in such a setting
14:39:30 <ais523> elliott: I meant well-intentioned in the ordinary-language sense
14:39:39 <elliott> ais523: yes, which refers to humans
14:39:42 <ais523> as in, it thinks there's a reasonable probability it'll later go haywire, so takes steps to prevent that
14:40:05 <elliott> yes, but you need to define a framework in which it makes sense for it to do those things...
14:40:33 <elliott> bleh, work with me here unetbootin
14:41:00 <ais523> elliott: it's quite possible that a strong AI would be reasonably anthropomorphisable
14:41:03 <oerjan> elliott: well i could imagine an ai somehow concluding that it would be impossible for it to improve its intelligence without losing its friendliness
14:41:08 <ais523> I suppose we can even think about the possibility of a non-singularity strong AI
14:41:17 <elliott> oerjan: the context is non-Friendly
14:41:29 <ais523> I wonder if that's more or less likely than a singularity one
14:41:35 <elliott> anyway, (a) I don't really want to talk about AI (b) I think ais523's last claim is so ridiculous that it would end in a flamewar if I did
14:42:02 <ais523> we got rather sidetracked
14:42:27 <ais523> (simple thought experiment: a strong AI that turns out not to be very good at programming, and thus doesn't want to reprogram itself)
14:42:37 * elliott finds an article indirectly claiming refcounting is faster than gc
14:43:02 <oerjan> elliott: how many references does it have?
14:43:07 <ais523> elliott: I'm not convinced it isn't, in all cases
14:43:18 <ais523> it'd rather depend on what you were doing
14:44:31 -!- pikhq_ has joined.
14:44:36 -!- pikhq has quit (Ping timeout: 244 seconds).
14:44:42 <elliott> ais523: well, refcounting mucks with the cache and inserts more branches than anyone previously thought possible
14:44:52 <elliott> it's practically made out of overhead
14:45:06 <ais523> elliott: indeed; I think there are programs for which refcounting would have no cache impact at all, though
14:45:17 <elliott> branches slow anything down, though
14:45:20 <ais523> if you create a new object, you're going to be touching its memory anyway
14:45:58 <ais523> if you stop referring to one, or add another reference to one, it's possible that you don't touch its memory in the process with a normal GC, but it's entirely plausible that there would be programs where you always did
14:46:13 <oerjan> maybe if you have program which uses memory generally just below the limit, with garbage sometimes pushing it over, but rarely touching most of memory
14:46:28 <ais523> I suspect you can get rid of the branches in some cases too
14:48:41 <elliott> i _do_ have usb media here
14:52:09 -!- elliott has quit (Remote host closed the connection).
15:03:36 -!- augur has quit (Remote host closed the connection).
15:03:37 -!- ais523_ has joined.
15:03:44 -!- ais523 has quit (Read error: Connection reset by peer).
15:04:28 -!- ais523_ has changed nick to ais523.
15:08:28 <Gregor> You can also write an arbitrarily bad legit GC that will be slower than ref counting :P
15:08:35 <Gregor> I've actually written such a GC.
15:09:20 <ais523> (although refcounting wouldn't have worked at all for that system, a mark-and-sweep whenever you change a pointer is not fast)
15:10:14 <Gregor> Of course you've also written LAME systems that do 85% of a GC but don't technically GC and therefore are memory safe woop-de-friggin'-doo :P
15:15:02 -!- elliott has joined.
15:15:50 <ais523> and hello elliott's USB media
15:16:37 <elliott> (It is actually a full external drive thingy.)
15:18:16 <elliott> 15:10:14: <Gregor> Of course you've also written LAME systems that do 85% of a GC but don't technically GC and therefore are memory safe woop-de-friggin'-doo :P
15:18:21 <elliott> Gregor thinks that ais523 is cpressey.
15:18:47 <Gregor> So, to correct myself ...
15:18:54 <Gregor> elliott: Of course YOU've also written LAME systems that do 85% of a GC but don't technically GC and therefore are memory safe woop-de-friggin'-doo :P
15:18:54 <ais523> Gregor: I thought it was an eightebed reference, somehow
15:19:20 <Gregor> I really don't know what was going on there :P
15:19:25 <elliott> Gregor: Yes. You have discovered my secret.
15:19:28 <elliott> My secret is that I am cpressey.
15:19:53 -!- Gregor has set topic: #esoteric is a second-generation, outsidein, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters. | Everyone in #esoteric is Chris Pressey | http://codu.org/logs/_esoteric/.
15:19:56 <elliott> So as much as it pains me to admit it, I may have been... WRONG about something.
15:20:28 <ais523> elliott: a fact, I hope?
15:20:32 <ais523> `quote correct opinion
15:20:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:20:40 <HackEgo> 380) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is: it is the correct opinion.
15:20:55 <elliott> Stop quoting my monologues.
15:21:09 <Gregor> Now he's going to remove it and readd it with proper spacing.
15:21:23 <elliott> Gregor is Phantom_Hoover? Knew it.
15:21:27 <ais523> Gregor: brilliant correction
15:22:31 <ais523> hmm, perhaps we should replace - by an umlaut everywhere
15:23:07 <Gregor> *diaeresis mark, and it's only for non-diphthong vowel sequences.
15:24:27 <ais523> Gregor: exactly, a diaeresis only works on vowels
15:24:35 <ais523> thus, we'd have to generalise it to umlauts everywhere else it was used
15:25:03 <elliott> The worst thing is, the thing I might have been wrong about might have been a /software/ opinion.
15:26:10 <ais523> elliott: you've actually started liking RPM?
15:26:34 <Gregor> It is exceptionally difficult for me to type a combining diaeresis mark in this particular configuration.
15:27:02 <ais523> Gregor: ditto, although I can put it on top of a bunch of letters
15:27:09 <Gregor> ais523: That'sẗheẅorstïdeaÏveëverḧeard.
15:27:13 <elliott> ais523: try diaeresis + space
15:27:25 <ais523> elliott: I did, I got double quote
15:27:53 <ais523> äbcdëfgḧïjklmnöqrsẗüvẅẍÿz
15:27:58 <Gregor> I had to type a letter then combining diaeresis mark into a text editor with proper Unicode input, then copyp̈asta it to XChat.
15:28:10 * ais523 wonders if that's a precomposed or not
15:28:48 -!- empathelliott has joined.
15:30:03 <empathelliott> Uhh, Empathy, "the" and "to" are perfectly cromulent words.
15:30:07 <ais523> empathelliott: I took it as an MSN reference
15:30:55 <ais523> no dictionaries installed?
15:31:02 <ais523> or, hmm, try typing a word that's a word in every language
15:32:37 -!- empathelliott has left.
15:35:16 <ais523> so, is that a combining umlaut that was generated by my "put an umlaut on x" key sequence? or does my font renderer just suck at x-umlaut?
15:35:26 <ais523> (also, what language uses that anyway?)
15:36:00 <Gregor> ais523: Yours is not a X plus combining diaeresis, it's actually some crazy symbol.
15:36:26 <Gregor> Specifically LATIN CAPITAL X WITH DIAERESIS
15:36:51 <Gregor> Maybe, I just searched for the symbol X-P
15:36:52 <ais523> so if ẍ is capital, what's Ẍ?
15:37:03 <Gregor> It might also be LATIN SMALL LETTER X WITH DIAERESIS :P
15:37:13 <Gregor> Either way, my compose lexicon doesn't know it
15:38:19 <HackEgo> 380) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is: it is the correct opinion.
15:38:28 <ais523> Gregor: my compose doesn't know it either, I typed it as altgr-[ x
15:38:34 <Gregor> <(I AM PAINFULLY HAPPY)
15:38:45 <Gregor> ais523: No altgr here in [GOD BLESS] America.
15:38:59 <ais523> Gregor: so what modifier key's just to the right of the spacebar?
15:39:10 <Gregor> ais523: Another alt. I have it mapped to compose.
15:39:29 <Gregor> We need SO MANY ALTS in [GOD BLESS] America.
15:39:34 <ais523> differentiating alt from altgr is presumably for people who want to type in foreignese, then
15:39:42 <ais523> (I mapped caps lock to compose; compose is more useful)
15:39:55 <Gregor> CAPS-LOCK IS CRUISE CONTROL FOR COOL*
15:40:05 <Gregor> *[1] I actually typed this with shift :P
15:40:17 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ share \ wisdom
15:40:22 <oerjan> `run sed -i '380s/ </ </g' quotes
15:40:25 <Gregor> *[2] This is a lie. It should read "SUSTAIN PEDAL IS CRUISE CONTROL FOR COOL"
15:40:32 <HackEgo> 380) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is: it is the correct opinion.
15:40:34 <elliott> ais523: nobody speaks foreignese
15:40:45 <ais523> elliott: doesn't mean you don't want to type in it
15:40:54 <ais523> just that people don't want to say the results out loud
15:41:23 <ais523> Gregor: THANKS ITS SO MUCH EASIER TO TYPE NOW
15:42:18 <elliott> ais523: um you must apostrophise correctly even when imitating.
15:42:22 <elliott> otherwise you will become somebody else
15:42:35 <ais523> elliott: it was a direct quote from memory
15:42:44 <ais523> and I thought it was unlikely to contain an apostrophe
15:42:50 <ais523> (it's one of the higher-voted ones on bash.org, IIRC)
15:43:46 <elliott> <Khassaki> HI EVERYBODY!!!!!!!!!!
15:43:46 <elliott> <Judge-Mental> try pressing the the Caps Lock key
15:43:46 <elliott> <Khassaki> O THANKS!!! ITS SO MUCH EASIER TO WRITE NOW!!!!!!!
15:44:15 <elliott> bash's top quotes are so unfunny now that it's 2011 and the internet isn't so boring any more
15:45:02 <ais523> well, I got the lack of apostrophe right
15:45:03 <kallisti> I didn't know this: but if you type a s/// on a line by itself in skype
15:45:06 <ais523> even if I got everything else wrong
15:45:07 <kallisti> it corrects the last thing you said.
15:45:14 <elliott> kallisti: we found that out ages ago
15:45:15 <oerjan> IF IT'S BORING YOU JUST NEED CRUISE CONTROL
15:45:17 <elliott> or more specifically, fizzie
15:45:17 <ais523> kallisti: does that work when spoken, too?
15:45:28 <kallisti> elliott "knew about it first" hird
15:45:37 <elliott> ais523: message <<= message'
15:45:43 <ais523> I mean, regexes are quite hard to pronounce, so I'm not sure it's ever been tested
15:46:42 <oerjan> esslashhardslasheasyslash
15:47:07 <elliott> ais523: You need to come up with a scary name for Feather's temporal stuff such that (<<=) is an operation in them; people will spend ages trying to figure out the mysterious $ABSTRACT_NAMEs but someone will write a blog post reassuring everyone: $ABSTRACT_NAMEs are just like monads, see, the operations even look alike: (<<=) (>>=)!
15:47:09 <elliott> i was going somewhere with that
15:47:32 <ais523> your statement is confused but I think I know what you mean
15:47:41 <elliott> Confused or confusing? :-)
15:47:57 <ais523> no more confusing than anything else mentioning Feather
15:48:58 -!- copumpkin has joined.
15:56:51 <elliott> hmm, I better find something that confirms my prejudices soon
16:00:39 <Gregor> http://www.thinkgeek.com/geektoys/cubegoodies/e9ed/ ThinkGeek truly excells in advertising terrible ideas.
16:04:29 <elliott> `log (cp|ZOM|cat).*thinkgeek
16:04:54 <HackEgo> 2011-10-14.txt:14:54:13: <HackEgo> 342) <catseye> wow, thinkgeek really makes me hate being alive
16:05:27 <kallisti> youtube won't stay fullscreened if I click on my other monitor
16:07:05 <HackEgo> 2011-12-06.txt:16:04:29: <elliott> `log (cp|ZOM|cat).*thinkgeek
16:10:10 <elliott> PAYPAL: Only a nonprofit can use the Donate button.
16:10:10 <elliott> ME: That’s false. It says right in the PDF of instructions for the Donate button that it can be used for “worthy causes.”
16:10:10 <elliott> PAYPAL: I haven’t seen that PDF. And what you’re doing is not a worthy cause, it’s charity.
16:10:10 <elliott> ME: What’s the difference?
16:10:10 <elliott> PAYPAL: You can use the donate button to raise money for a sick cat, but not poor people.
16:11:04 -!- oerjan has quit (Quit: leaving).
16:17:30 <Gregor> kallisti: Join the HTML5 demo.
16:17:40 <Gregor> kallisti: For things that you can't get with HTML5, use youtube-dl.
16:17:50 <Gregor> kallisti: Between them, joyous multi-monitor fullscreen.
16:19:01 <elliott> Gregor: Things you can't get with HTML5 = almost every single fucking video
16:19:20 <Gregor> elliott: Not in my experience *shrugs*
16:19:50 <itidus20> I suppose that 'a sphere' is to 'a ball' as 'a grid' is to 'tiles'
16:24:08 <kallisti> itidus20: a sphere is like an orange rind, and a ball is like the delicious squishy insides.
16:24:55 <ais523> elliott: please tell me that actually happened
16:25:09 <oklopol> if tiles is the subset of R^2 lacking the grid, that is, horizontal and vertical lines at integers, then no matter whether your ball is closed or not, the correspondence is that the former is the boundary of the latter
16:25:10 <lambdabot> oklopol: You have 1 new message. '/msg lambdabot @messages' to read it.
16:26:16 -!- elliott has quit (Ping timeout: 240 seconds).
16:26:57 -!- elliott has joined.
16:27:58 -!- monqy has joined.
16:29:13 <elliott> 16:24:55: <ais523> elliott: please tell me that actually happened
16:29:32 <oklopol> oerjan: are there cases where it's useful to change the topology of R^n? or even the uniform structure, i guess the usual metrics are uniformly equivalent?
16:29:35 <elliott> ais523: the paypal quote? apparently: http://www.regretsy.com/2011/12/05/cats-1-kids-0/
16:30:15 <elliott> yeah i guess the lack of quote marks was misleading
16:34:24 <elliott> "I don't know what you mean by "the general case" but that is exactly what ARC does, so I'm going to say it is possible.
16:34:24 <elliott> The clang static analyser traces through all possible code paths adding retains, releases and autoreleases where appropriate. It requires a little more programmer effort than GC because ARC can't detect cycles, but it is very fast."
16:34:41 <elliott> Gregor: I woke up in a fairytale universe where object lifetime is statically determinable in general.
16:35:02 <elliott> "I'm not going to get into a pissing match about whether GC or reference counting is faster. I don't really care, though I think you're wrong."
16:35:05 <elliott> Oh shit, he thinks I'm wrong!!!
16:35:41 <kallisti> elliott: are you in /another/ GC vs reference counting debate?
16:36:01 <elliott> no this is me just yelling at stupid redditors
16:36:09 <elliott> while my comment karma plummets
16:36:12 <kallisti> elliott: oh wait nevermind the last one was JIT vs interpreter (lol)
16:36:50 <elliott> Oh nooooooo, the guy I'm disagreeing with wrote a LOG VIEWER APP for the IPAD.
16:37:03 <elliott> I'm dealing with a SERIOUS DEVELOPER Here.
16:37:17 <elliott> http://itunes.apple.com/app/consuela/id481121105?mt=8
16:37:24 <elliott> good god this thing is hideous
16:37:38 <elliott> computationally intensive enough to give him data on refcounting vs. gc performance
16:37:50 <elliott> by which i mean to say there is no chance he isn't just parrotting this because apple likes refcounting
16:39:02 <itidus20> http://www.smbc-comics.com/index.php?db=comics&id=1593#comic
16:39:29 <kallisti> elliott: obviously the most naive implementation of automatic memory management is the best.
16:42:39 <elliott> http://a2.twimg.com/profile_images/1542684914/image_reasonably_small.jpg
16:42:45 <elliott> You can see his GC-related anger.
16:43:23 <kallisti> you can tell he passionately cares about this subject based on his statement: "I don't really care."
16:44:27 <elliott> kallisti: if he really didn't care he wouldn't follow it up with "but ur wrong" :)
16:47:38 <elliott> lmao, the GHC C codebase uses "nat" as an unsigned integer type
16:49:25 <Gregor> <elliott> Gregor: I woke up in a fairytale universe where object lifetime is statically determinable in general. // This fairytale universe is kind of terrifying what with how the halting problem is solvable :P
16:49:45 <elliott> Gregor: YOU DON'T UNDERSTAND: APPLE DECREED ITS O
16:49:56 <itidus20> Gregor: yeah.. dumb people have nicer dreams
16:50:05 <elliott> You're just an ACADEMIC with your ACADEMIC objections disproven by REFLECTIVE 3D DOCKS.
16:53:25 <Gregor> So I think I should put a donate button on codu.org for people to help my sick cat.
16:53:29 <Gregor> She's got diabetes y'know.
16:53:53 <Gregor> It's OK though; I'm not helping people.
16:54:51 <kallisti> elliott: I woke up in a fairtale universe where the result of a program is known statically.
16:55:09 <kallisti> you don't even need to run programs.
16:57:05 <Gregor> Also, everyone knows the outcome of their lives and the universe at large, yet they continue to act, powerless to stop or change the inevitable and yet drawn to participate in it.
17:01:11 -!- ais523 has quit (Remote host closed the connection).
17:02:00 <elliott> Maybe I'll just start talking about @ whenever anyone disagrees with me on reddit.
17:04:11 <quintopia> elliott: what comment thread is this in?
17:04:28 <elliott> Uh, http://www.reddit.com/r/coding/comments/n28zy/all_about_arc_on_ios/c35r1zm?context=3. I don't recommend it.
17:05:00 <quintopia> you underestimate my appetite for idiocy before breakfast
17:10:13 <quintopia> does apple support any interpreted, gc'd languages for recent iOS versions?
17:11:26 <kallisti> !perl print scalar "hi hi hi hi" =~ m/iejiwjer/g
17:11:38 <kallisti> !perl print scalar "hi hi hi hi" =~ m/iejiwjer/g == 0
17:12:06 <elliott> quintopia: i think you're allowed to use interpreters these days
17:12:23 <elliott> as long as you don't run anything that the user gives you. or from the network. or just about anything _empowering_ or useful
17:13:30 <quintopia> "allowed to use interpreters"? you mean, like, your app from the app store is allowed to be bundled with an interpreter that it runs on, or that there are actual gp interpreters in the app store that anyone can target?
17:14:19 <quintopia> like frex, is there a jvm i could put on an ipod that hasnt been rooted?
17:14:32 <elliott> the latter is covered by <elliott> as long as you don't run anything that the user gives you. or from the network. or just about anything _empowering_ or useful
17:14:38 <elliott> i may be wrong. but i'm not
17:15:26 <kallisti> "Can you measure gases in ounces? Because I just did. I don't even know if that's something you can do.." Husky, youtube starcraft commentator
17:20:47 -!- esowiki has joined.
17:20:52 -!- esowiki has joined.
17:20:53 -!- esowiki has joined.
17:21:09 -!- esowiki has joined.
17:21:14 -!- esowiki has joined.
17:21:14 -!- esowiki has joined.
17:22:01 -!- esowiki has joined.
17:22:06 -!- esowiki has joined.
17:22:06 -!- esowiki has joined.
17:22:49 -!- esowiki has joined.
17:22:53 -!- esowiki has joined.
17:22:54 -!- esowiki has joined.
17:23:33 -!- esowiki has joined.
17:23:33 -!- glogbot has joined.
17:23:37 -!- esowiki has joined.
17:23:38 -!- esowiki has joined.
17:39:20 <Gregor> Because fluid ounces are really liquid ounces. If it's a gas, its volume depends on its pressure. I suppose you could assume a pressure though *shrugs*
17:46:49 -!- Klisz has joined.
17:49:03 <quintopia> i wonder if there are compressible liquids...
17:49:22 <quintopia> answers.com is actually useful for once
17:49:25 <quintopia> http://wiki.answers.com/Q/Could_there_be_a_compressible_liquid
17:53:30 <Gregor> Oh god, I clicked on other links from that page X_X
17:53:35 <Gregor> "What day is Christmas celebrated in Portugal?"
17:55:55 <kallisti> !perl print "hi" =~ /(?{return 'hi'})/
17:55:56 <EgoBot> Can't return outside a subroutine at (re_eval 1) line 1.
17:56:03 <kallisti> !perl print "hi" =~ /(?{'hi'})/
18:07:42 <kallisti> !perl use strict; print "hi" =~ /(?{$x = 2})/
18:07:43 <EgoBot> Global symbol "$x" requires explicit package name at (re_eval 1) line 1.
18:08:18 <kallisti> !perl use strict; print "hi" =~ /(?{my $x = 2})(?{print $x})/
18:08:20 <EgoBot> Global symbol "$x" requires explicit package name at (re_eval 2) line 2.
18:10:06 -!- elliott has quit (Ping timeout: 240 seconds).
18:11:10 <Gregor> gelfload moves to bitbucket: PROGRESS
18:12:44 <Gregor> FireFly: Speaking of bitbucket, is it just me or is eldis trying very hard to be HackBot? ;)
18:13:29 -!- DCliche has joined.
18:15:02 <FireFly> Gregor, I dunno, I haven't looked at HackBot
18:15:25 <FireFly> So, well, it isn't intentionally at least
18:17:04 -!- Klisz has quit (Ping timeout: 240 seconds).
18:19:52 -!- zzo38 has joined.
18:20:03 <Gregor> FireFly: I haven't looked at the code, but, y'know
18:20:12 <Gregor> `run echo here are commands | sed 's/are/there be/'
18:23:55 -!- Klisz has joined.
18:27:38 -!- DCliche has quit (Ping timeout: 252 seconds).
18:29:28 <kallisti> !perl print "hi hi hi" =~ /(hi (?{print "1"}))+/
18:30:35 <kallisti> !perl print scalar "hi hi hi" =~ /(hi (?{print "1"}))+/
18:30:45 <kallisti> !perl print "hi hi hi" =~ /(hi )+/
18:32:00 -!- kmc has quit (Quit: Leaving).
18:33:06 <kallisti> !perl print "hi hi hi" =~ /(sup(?{print 'hi'}))?/
18:33:20 <kallisti> !perl print "suphi hi hi" =~ /(sup(?{print 'hi'}))?/
18:34:40 <kallisti> !perl my $x; print "suphi hi hi" =~ /(sup(?{$x = 1}))?/; print $x
18:36:08 <kallisti> my $parse_url = qr#(?{$p=0})([(]\s*(?{$p=1}))?\K(((https?|ftp)://)|www\.)(([0-9]{1,3}\.){4}|([a-z0-9\-]+\.)*[a-z0-9\-]+\.[a-z]{2,4})(:[0-9]+)?([/?][^ "]*(?{'[^ ,;\.:">' . ($p? ')' : '') . ']'}))?#i;
18:37:30 -!- zzo38 has quit (Remote host closed the connection).
18:37:39 <Deewiant> Looks like it accepts an extra dot
18:37:53 <kallisti> but it still doesn't work regardless of that.
18:39:00 <kallisti> my guess is probably the crazy parentheses hack.
18:42:12 <kallisti> Deewiant: the idea is to match URLs that are embedded in ()'s correctly when it's just the URL by itself
18:42:24 <kallisti> but to also match match URL's with () in them such as Wikipedia articles
18:42:57 <kallisti> but I may have to concede and pick one.
18:43:59 <Deewiant> Matching parentheses can't be done in a regular language and I don't know Perl's regex extensions well enough to help
18:45:02 <kallisti> there are examples of matching parentheses but that's not really what I'm doing
18:45:56 <Deewiant> And as I said, I don't know the extensions well enough
18:48:25 <kallisti> basically I just use (?{...}) which evaluated arbitrary Perl code and inserts the result into the regex at that position.
18:48:50 <kallisti> and \K which says to disregard everything before it for the purposes of capturing the result in the $& variable
18:49:27 <kallisti> though for some reason the \ appears red in emacs cperl-mode
18:49:39 <kallisti> so maybe I'm using it incorrectly?
18:50:51 <Sgeo> Is it unethical for me to ask for hints on https://docs.google.com/document/pub?id=1UK8EfHhrdZ2XrMMsvPk8DiEyQfaIbijkC4awkWFSdw4 ? (The problem asks if there are any series that converges but the series of the cubes of the terms diverges)
18:51:00 <Sgeo> (And if there are any such series, show it)
18:52:07 <Sgeo> I don't think I want the answer directly
18:53:20 -!- Phantom_Hoover has joined.
18:55:01 <Sgeo> Seriously, it sounds trivial but I keep running into exceptions and edge cases
18:56:16 <Phantom_Hoover> So, lambdabot, how many messages has elliott tried to jam into you in my absence?
18:56:17 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
18:56:51 <kallisti> Sgeo: no, it's not unethical. does that help?
18:57:12 <Sgeo> I guess. So, kallisti, any help?
18:57:28 <kallisti> I have 2 problems, one of them being a regex. :P
18:58:06 -!- ais523 has joined.
18:58:45 <Sgeo> kallisti, thing is, it's sort of a math contest going on at my school
18:58:49 -!- sebbu2 has joined.
18:58:50 -!- sebbu2 has quit (Changing host).
18:58:50 -!- sebbu2 has joined.
18:58:57 <Sgeo> Well, I guess I could talk and then mention that I was talking
18:59:11 <Sgeo> I'm probably not going to hand it in though, since I still have no idea
18:59:37 <Sgeo> Phantom_Hoover, all of them? Are you asking since a particular date, or?
19:00:00 <Phantom_Hoover> Sgeo, since last I trod the fair shores of Edinburgh and tasted its sweet, sweet wifi.
19:00:11 <Sgeo> What date was that?
19:00:15 -!- sebbu has quit (Ping timeout: 252 seconds).
19:00:53 <Sgeo> You missed a bunch
19:01:26 <Sgeo> Including Pesterlogs, I think... maybe
19:04:27 <kallisti> I wonder how many regexes match themselves
19:05:09 <Sgeo> Any regex with no special characters
19:06:02 <kallisti> you could probably write a quine-regex via (?{})
19:07:12 <kallisti> just stick code inside the {} that outputs a regex that matches the regex string itself
19:12:19 -!- MSleep has joined.
19:13:51 -!- MDude has quit (Ping timeout: 248 seconds).
19:15:27 -!- sebbu2 has changed nick to sebu.
19:18:46 <oklopol> "<Sgeo> Is it unethical for me to ask for hints on https://docs.google.com/document/pub?id=1UK8EfHhrdZ2XrMMsvPk8DiEyQfaIbijkC4awkWFSdw4 ? (The problem asks if there are any series that converges but the series of the cubes of the terms diverges)" this is trivial
19:19:33 <Sgeo> Comparison of terms doesn't work for conditionally convergent series, according to Wikipedia
19:19:45 <oklopol> conditionally convergent means what?
19:20:13 <kallisti> if a > 2 then this-thing-converges else this-thing-diverges
19:20:25 <Sgeo> The series converges, but the series made by the absolute values of the terms of the series does not.
19:20:35 <Sgeo> (Again, according to my memory of Wikipedia)
19:20:47 <oklopol> so umm i misunderstood the question, so let me think again :)
19:22:33 <oklopol> can you do it for series with positive entries?
19:23:13 <Sgeo> Yes, a series with all positive entries is absolutely convergent, and as such it's easy to use the direct comparison test
19:23:31 <Sgeo> (a convergent series with all positive entries, I mean)
19:27:20 <Sgeo> I'm not sure how that helps, though. Although if there is an example of series converging but the series of cubes diverging, it looks really really weird
19:27:58 <Sgeo> Ratio test has to fail, can't be all positive, can't be a simple alternating series (either abs values are non-monotonic or alternation of signs isn't straightforward)
19:30:05 <Sgeo> I think I'm going to head over to the school soon
19:30:21 <oklopol> Sgeo: i can think of two hints
19:30:44 <oklopol> 2) the crucial property of cubing
19:31:24 <oklopol> "<Sgeo> I'm not sure how that helps, though. Although if there is an example of series converging but the series of cubes diverging, it looks really really weird" i doubt it helps much, but it's a more interesting question
19:31:47 <oklopol> Phantom_Hoover: for all values of 3 more than 1
19:32:07 <Sgeo> What's so great about cubing? I mean, it preserves sign, and for b^3 where |b|<1 then b^3 < b, but I don't know if that really helps
19:32:40 <oklopol> Sgeo: not the crucial property
19:32:51 <oklopol> a crucial property, but not the one i used
19:33:09 * Sgeo doesn't really know of any other properties of cubing
19:33:27 -!- ais523 has quit (Ping timeout: 240 seconds).
19:33:50 <Sgeo> Wait, I mistated the property, it's |b^3|<|b|
19:34:23 <Sgeo> But I don't know other properties of cubing :(
19:34:56 <oklopol> if i stated you what 2) is, you'd say duh
19:36:02 <oklopol> that sure is true. also 2^3 = 8
19:36:08 <olsner> the sign of x^3 = the sign of x?
19:36:26 <Sgeo> But... is that supposed to be helpful? A series can diverge while the limit as n goes to inf of a_n goes to 0
19:36:27 <oklopol> it sure is, also ^ is called a caret
19:36:56 <olsner> I'm just playing guess the property
19:37:45 <Sgeo> olsner, I already guessed that property
19:37:54 <oklopol> Sgeo: well anyhow that's the two hints i can think of (assuming i haven't made a mistake myself, which i doubt because this is kind of simple)
19:38:00 <oklopol> tell me if you want one of them
19:38:11 <Sgeo> The property, I guess
19:38:20 <Sgeo> I don't know if I should ask for property or the yes/no
19:39:05 <oklopol> well by now you should know 1), but perhaps you don't have any idea.
19:39:21 <Sgeo> I'd say that no, there is no such series
19:39:25 <Sgeo> But not certain
19:39:32 <oklopol> anyhow, i shall tell you: restricting to abs less than 1, the smaller your abs is, the less you get smaller.
19:40:16 <Sgeo> I'm starting to re-evaluate my opinion on asking for 1
19:40:35 <oklopol> but i think for small enough abs
19:40:39 <Sgeo> I mean, as in, whether or not there's such a series
19:41:17 <oklopol> you have to wait for the derivative 3x^2 to get smaller than 1
19:42:09 <oklopol> there is a series that converges but doesn't after cubing
19:43:24 <Sgeo> Now I need to figure out how to find it, but it sounds like a pain in the ass. Maybe.
19:44:11 <Sgeo> But hmm, thanks
19:44:27 <oklopol> not really. make it converge to 0 and keep making the sum bigger and bigger.
19:45:57 <Sgeo> Thank you. I will work on it, no more hints
19:46:07 <Phantom_Hoover> <oklopol> anyhow, i shall tell you: restricting to abs less than 1, the smaller your abs is, the less you get smaller.
19:46:31 <oklopol> the property i stated was kind of wrong anyway, it's kind of hard to come up with a way that doesn't spoil the actual inequality :D
19:48:36 <oklopol> the property you need is (ax)^3 = a^3 x^3 really :P
19:57:33 -!- ais523 has joined.
19:58:23 <oklopol> it's true for all integer n greater than 1 actually, for even ones, quite trivially, for odd ones, by the same argument
19:59:47 -!- MSleep has changed nick to MDude.
20:01:27 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:02:30 <oklopol> that's a nice equality, it even lets you prove the converse
20:04:33 <Sgeo> I'm still thinking about it the wrong way
20:05:02 <Sgeo> I'm still consistently visualizing all positives, with the hint you gave me
20:05:05 <Sgeo> And that has to be wrong
20:06:27 <oklopol> the first hint was just silly, all you need is (ax)^3 = a^3 x^3
20:09:19 <oklopol> anyhow i think for all symmetric increasing functions not equal to y = x in any neighborhood of 0, you can find a series like this
20:09:52 <oklopol> even ones that aren't continuous
20:11:34 <Sgeo> What, do I want the cube root of -1 or something?
20:11:43 <Sgeo> Wait, that's just -1
20:11:53 <oklopol> you don't need any concrete values really
20:12:13 <Sgeo> I don't get it, I don't know what time I'd have to hand it in by, and I doubt they're ok with me using outside sources like this
20:14:03 -!- sebbu2 has joined.
20:14:03 -!- sebbu2 has quit (Changing host).
20:14:03 -!- sebbu2 has joined.
20:14:06 <oklopol> just take a sequence e_i going to zero, then keep the linear series near zero but never more than e_i in abs, while moving the cube series by a constant
20:14:45 -!- GreaseMonkey has joined.
20:14:51 <Sgeo> I didn't get anywhere
20:15:19 <oklopol> argh, remove the "but" there :D damn i'm being careful.
20:15:51 <Sgeo> I could just not do this one
20:16:23 <Sgeo> I'm going to go to the school and ask if having asked for help disqualifies my answer anyway. If so, I'm not going to bother
20:16:27 -!- sebu has quit (Ping timeout: 240 seconds).
20:16:28 <Sgeo> I'll just do the next one
20:16:51 -!- Phantom_Hoover has joined.
20:19:48 <oklopol> so for continuous functions i think i have an exact characterization for when this kind of series can be constructed (even without symmetry)
20:21:29 <oklopol> no works for all functions
20:21:52 <oklopol> okay so i'm rather sure f has the property iff it's not linear in any neighborhood of 0
20:22:29 <oklopol> the property that there's a converging series a_i such that f(a_i) doesn't converge
20:23:24 -!- pikhq has joined.
20:23:33 -!- pikhq_ has quit (Ping timeout: 244 seconds).
20:23:34 <oklopol> obviously if you are linear in some nbhd then you don't have this property, by looking at tails
20:24:26 -!- sebbu2 has changed nick to sebbu.
20:37:52 -!- atehwa has joined.
20:45:24 * Sgeo isn't bothering
20:52:52 * kallisti considers making a starcraft 2 mod.
20:55:30 <kallisti> I know there's a lot of units from story mod in the mod tool, but I wonder if you can get all of the upgrades as well.
20:56:10 <kallisti> there's a lot of random shit for terrans you could throw into the game, for a TvT map with all of Wings of Libery stuff available. It would be so incredibly broken.
21:03:53 -!- oerjan has joined.
21:05:57 <oerjan> <oklopol> oerjan: are there cases where it's useful to change the topology of R^n? or even the uniform structure, i guess the usual metrics are uniformly equivalent?
21:06:22 <oerjan> i know very little about uniform structure.
21:08:03 <oerjan> even the different banach space topologies that come to mind are the same on finite dimensional spaces, i think
21:11:16 <oerjan> hm maybe there's one based on considering only compact sets
21:12:17 <oklopol> how does that give a topology on R^n
21:12:35 <oerjan> if you make a topology where only the original compact sets of R^n and the whole of R^n are closed
21:13:23 <oerjan> it's not hausdorff, but might have some uses...
21:15:03 <oerjan> every nonempty open set contains everything outside some radius
21:16:29 <oerjan> in fact the whole space is compact, i think
21:16:30 <Gregor> (I suppose I should ask that in -minecraft ... )
21:17:06 <Phantom_Hoover> <oerjan> <oklopol> oerjan: are there cases where it's useful to change the topology of R^n? or even the uniform structure, i guess the usual metrics are uniformly equivalent?
21:17:07 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:17:33 <Phantom_Hoover> I was thinking about the metric-y topology in a Minkowski space, actually.
21:18:25 <Phantom_Hoover> i.e. an open ball is the set of points for which x^2 + y^2 + ... -t^2 < d.
21:19:45 <oerjan> this is relativistic proper time distance
21:20:05 <oklopol> do you mean the definition changes every second
21:20:21 <oklopol> no but umm for R^n, do you take one to be time or what?
21:21:14 <oerjan> so, the set of points at timelike or < sqrt(d) spacelike distance from the origin
21:21:43 -!- Sgeo has joined.
21:21:48 * oerjan forgot the term for exactly 0
21:21:51 <Phantom_Hoover> oklopol, no, I mean (R^n, relativistic proper time) isn't a metric space.
21:22:08 <Sgeo> Having the cover to the HD fall out onto your bed is awesome!
21:22:21 <oerjan> so it includes the light cone, and some more beside
21:23:01 <oerjan> well in any case i have no intuition for what kind of topology this is
21:23:22 <Phantom_Hoover> But all open sets are asymptotic to a double cone, so they all have infinite intersections.
21:24:18 <oklopol> not really asymptotic to a cone per se, since the radius grows squarely no?
21:24:28 <oklopol> but they sure are infinite
21:25:48 <oerjan> well i think that's T1 too, at least
21:26:37 <oerjan> well that is obvious from infinite intersections
21:28:01 <oklopol> i don't get this topology, is 0 really in all open sets?
21:28:20 <oerjan> oklopol: obviously you translate
21:28:34 <oklopol> you get a topology without doing that
21:29:37 <oerjan> Phantom_Hoover: proper time is imaginary not negative, you need to square
21:29:47 <oklopol> consider two points in the same point in space
21:30:05 <oklopol> their neighborhoods always contain the other no
21:30:37 <oklopol> what does it mean for a set to be T1?
21:30:52 <Phantom_Hoover> T1 is each has a neighbourhood that doesn't contain the other.
21:31:05 <oklopol> consider two points that are equal in space but not time
21:31:07 <oerjan> oklopol: i thought that for a moment, but you can separate with cones from other points
21:31:56 <oerjan> the sets Phantom_Hoover gave are just a basis, not all open sets, and not all neighborhoods of x
21:32:38 <oklopol> yeah but if the times are -1 and 1
21:33:04 <oerjan> Phantom_Hoover: a basis should be closed under finite intersection iirc
21:33:04 <ais523> "Adult X-rated Christmas Trivia Games Printables"
21:33:16 <ais523> OK, the spambots have gone beyond the plausible limits of "specific" now
21:33:19 <oklopol> since all open sets are symmetric around the space hyperplane at time 0
21:33:28 <oerjan> or not closed, but have smaller elements within
21:33:31 <Phantom_Hoover> oklopol, they're all hyperboloids, so you can fit one point into the gap around the middle of the other.
21:34:02 <oklopol> or do you also take time translations? i guess that would make sense.
21:34:15 <oerjan> oklopol: you take all translations
21:34:25 <oklopol> so T1 but no open sets are disjoint
21:35:13 <Phantom_Hoover> oerjan, hmm, WP just says that you can form all open sets from unions of the basis.
21:35:51 <oklopol> yes, that's the definition of a basis
21:35:55 <oerjan> Phantom_Hoover: yes. but your sets are weaker than that, since you cannot find one of them inside the intersection of two of them always
21:35:57 <oklopol> for subbasis, you also take finite intersections
21:37:44 <oerjan> iirc: given O1 and O2 in the basis, and x in their intersection, there must be O in the basis with x in O subset O1 intersect O2
21:38:00 -!- Phantom__Hoover has joined.
21:38:38 <oerjan> that's enough to make sure the intersection is a union from the basis
21:39:00 <oklopol> oerjan: did you read my characterization for functions f such that there's a series that converges but sequence of f images doesn't
21:39:26 <oerjan> i seem to have interrupted my log reading
21:39:42 <oklopol> it was that there's no nbhd of 0 where it's linear
21:40:27 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:45:41 <oerjan> <elliott> Maybe I'll just start talking about @ whenever anyone disagrees with me on reddit. <-- and then you can exchange strategy tips with Zephir_AWT
21:45:55 <oerjan> sorry, he's Zephir_Banned now
21:46:10 <oerjan> or was that Zephir_Banned2
21:46:44 -!- Jafet has quit (Quit: Leaving.).
21:54:36 <oerjan> <oklopol> "<Sgeo> Is it unethical for me to ask for hints on https://docs.google.com/document/pub?id=1UK8EfHhrdZ2XrMMsvPk8DiEyQfaIbijkC4awkWFSdw4 ? (The problem asks if there are any series that converges but the series of the cubes of the terms diverges)" this is trivial
21:55:06 <oerjan> i've got a hunch it should be possible to get it with negatives
21:55:27 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
21:55:57 -!- Phantom__Hoover has joined.
22:03:40 <ais523> I emailed graue about the spam, haven't got an answer yet
22:05:15 <oerjan> hm ok, i think your characterization is right
22:05:19 <Sgeo> I think it's too late to submit anything now
22:06:38 <oerjan> oklopol: or wait, don't you mean additive rather than linear
22:07:40 <oerjan> those are equivalent except for hideously nonmeasurable functions
22:08:21 <oklopol> okay, in any case i think y = ax gives a characterization for absolutely all functions
22:08:40 <oerjan> oh hm i think linear may be right
22:09:59 <oerjan> if f(ax) is not a f(x), then you can use x and ax at some point in a variation of your argument in the privmsg
22:10:19 <Gregor> Give me something to watch on the YouTuber.
22:10:25 <oklopol> yeah but you need exactly one to be negative
22:10:29 <oerjan> and by "no neighborhood of 0", you can pass on to a smaller one later
22:10:53 <oklopol> then make a sum out of them that gets either to zero or arbitrarily close, and you get f's to get bigger
22:11:07 <oklopol> but because of f not necessarily being symmetric, i needed some extra work
22:11:36 <oerjan> well, if f(-x) = f(x) fails enough, you can use those, and if f(-x) = f(x) _is_ true in a neighborhood, you can switch one of those for the other to get it negative
22:12:54 <oklopol> so at least it's symmetric in a nbhd of 0
22:15:28 <oklopol> then if you find arbitrarily small r, r' for which f(r)/r and f(r')/r' are not equal, if r/r' rational you can get to 0 without going further than r+r' away from 0 on the linear side, and obviously you get somewhere on the f side
22:15:45 <oklopol> for irrational, you note that their sums are dense
22:16:08 <oerjan> so you can get the leftover bits as small as you want, and so converging
22:16:18 <oklopol> so you get arbitrarily close to 0 without leaving r+r'-nbhd, and it should then be clear enough that the f-side won't do the same
22:16:40 <oklopol> not quite, we still need to move to smaller r, r'
22:17:06 <oklopol> otherwise our jumps will not get smaller and the sum refuses to converge
22:17:25 <oerjan> well i mean the leftover from _all_ the r, r' pairs used should be a converging series
22:17:51 <oerjan> say you could make it < 1/n^2
22:18:05 <oklopol> but the point is we can estimate how many r's and -r''s we used, and that will approach something like their quotient when we get close to 0, so on the f side, you don't approach 0.
22:18:17 <oklopol> because the quotient is different there
22:18:49 <oklopol> i love how i'm procrastinating from doing math by doing math
22:19:14 <copumpkin> aw, I was disappointed by your use of quotient
22:20:04 <oklopol> copumpkin: i think it's necessary to do concrete calculations in the case where f need not be continuous
22:20:17 <oklopol> for continuous f, it's kind of trivial
22:20:23 <oerjan> oklopol: now you need to generalize this to limits of diagrams in abelian categories to please copumpkin
22:20:32 <copumpkin> yeah, I just thought you were talking about a more general notion of quotient
22:21:02 <oklopol> not sure the general notion of quotient in any way generalizes division
22:21:04 <oerjan> copumpkin: sorry, this is R -> R functions
22:21:19 <oklopol> well. in many ways i guess.
22:22:10 <oerjan> Z_m / Z_n _is_ isomorphic to Z_(m/n) if n divides m, i think.
22:22:23 <oklopol> okay i have to go to work too. and by that i mean i have to go walk outside.
22:22:53 <oklopol> isn't A = A/B * B for abelian groups
22:23:25 <oerjan> e.g. Z_4 is not Z_2 * Z_2
22:23:31 -!- Patashu has joined.
22:24:58 <oerjan> basically, in module theory there is a concept of B being a summand in A
22:25:42 <oerjan> (abelian groups ~ Z-modules)
22:28:55 <oerjan> our wiki recent changes have gotten into the christmas spirit, i see
22:29:56 <oerjan> hark the herald spammers sing
22:31:46 <oerjan> the little spammer boy
22:31:57 <oerjan> silent spam, holy spam
22:32:14 -!- kwertii has joined.
22:33:55 <oerjan> spam nuts roasting on an open fire
22:38:20 <oerjan> spam the halls with bouts of holly
22:51:18 -!- Phantom__Hoover has quit (Quit: Leaving).
23:01:49 <oklopol> oerjan: please stop spamming
23:07:00 -!- zzo38 has joined.
23:07:36 <kallisti> oerjan: hi, we've recently been plagued by spam from a guy named oerjan. Can you please kickban him? This is getting out of control.
23:08:42 -!- ais523 has quit (Remote host closed the connection).
23:19:40 <oerjan> have yourself a spammy little christmas
23:21:11 -!- Jafet has joined.
23:33:05 <kallisti> huh there's apparently a Call of Cthulu video game.
23:34:34 <oerjan> darn, i guess there won't be an iwc eldritch christmas song this year