00:00:04 <Phantom_Hoover> The function actually has a hook that alerts them whenever it's used.
00:00:27 -!- Patashu[Zzz] has changed nick to Patashu.
00:02:11 -!- lament has left.
00:04:39 -!- augur_ has joined.
00:04:45 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:05:21 -!- augur has quit (Read error: Connection reset by peer).
00:05:22 -!- derdon has quit (Remote host closed the connection).
00:05:33 -!- azaq23 has quit (Quit: Leaving.).
00:05:49 -!- derdon has joined.
00:10:01 -!- derdon has quit (Ping timeout: 246 seconds).
00:16:04 -!- ais523 has quit (Ping timeout: 246 seconds).
00:17:59 -!- ais523 has joined.
00:33:49 -!- augur_ has quit (Remote host closed the connection).
00:34:16 -!- ais523 has quit (Ping timeout: 246 seconds).
00:36:45 -!- ais523 has joined.
00:40:49 -!- ais523 has quit (Remote host closed the connection).
00:52:02 -!- ais523 has joined.
01:39:18 <ais523> hmm, this year's junethack was fun; Berry played a game that scored more points than in all previous NetHack games ever added together
01:39:39 <elliott> how did they pull that off?
01:39:53 <ais523> they found a 64-bit server :)
01:40:06 <ais523> it actually took both him and me quite a bit of effort to work out how to max it on a 64-bit server
01:40:16 <ais523> there are quite a few plain "int"s that get in the way
01:40:52 <ais523> especially in encumberance
01:41:11 <ais523> he was billions of times over his encumberance limit on the turn he ascended
01:41:20 <ais523> but apparently that doesn't affect #offer
01:41:40 <elliott> ais523: there's a new roguelike that's popular in ##crawl you might like
01:41:41 <ais523> (he actually needed two tries to do the last bit; the first time, he dropped the amulet for spellcasting and couldn't pick it up…)
01:42:16 <elliott> ais523: Sil; http://www.amirrorclear.net/flowers/game/sil/ -- it has neat things like giving EXP just for encountering monsters, identifying items, and reaching new depths, so you can do fun stuff like pacifist diving
01:42:29 <elliott> ais523: it's technically a *band derivative, but rewrites almost all of the mechanics, and thoroughly discourages grinding
01:42:40 <elliott> (there's diminishing exp returns for killing creatures of the same type, for instance)
01:43:06 <elliott> it's supposed to focus on tactical combat and so on... elliptic is very good at it; I haven't had a chance to play it properly yet but mean to sometime
01:43:33 <ais523> and ofc, angband's engine doesn't necessarily lead to angbandy games
01:45:14 <elliott> a few tips if you do play it: the standard build works fine; pass -mgcu to use the curses interface, although you can also just build a curses-only build if you edit the makefile and choose that configuration; and the interactive tutorial is very good
01:46:47 <elliott> ais523: oh yes, and if you're in a menu, ignore wherever it places the cursor
01:46:55 <elliott> it may seem to correspond to where in the menu you are, but it is lies
01:47:14 <elliott> ais523: oh, and you can turn on vikeys control in the menu
01:50:14 <coppro> elliott: whywhywhywhywhy
01:50:19 <coppro> am i giving a talk on agda
01:51:27 <coppro> what's a good example of something interesting I can prove with it
01:51:39 <coppro> to a group that doesn't have a clue
01:52:18 <ais523> coppro: one I've seen is proving that the reverse of the reverse of a list equals the list itself
01:52:33 <ais523> (CSy lists, which have a head and a tail, and the standard recursive definition of reverse)
01:52:55 <coppro> elliott: undergraduate mathematics students
01:53:04 <coppro> ais523: looking for something more mathematically interesting
01:53:15 <coppro> I don't need to explain every step
01:53:25 <coppro> but it needs to be such that it doesn't explode minds
01:54:15 <coppro> (the exact audience is the canadian undergraduate mathematics conference; I have a 45-minute talk and I plan to spend the first half or so explaining curry-howard and giving the very basics in agda
01:55:41 <itidus21> well whats the most trivial proofs?
01:56:39 <coppro> I want something 'cool'
01:56:51 <itidus21> i assume that an equation such as 1+1=2 or c = sqrt(a^2 + b^2) alone is not sufficient to need proof
01:57:15 <coppro> like, uniqueness of the reals is cool and deep, but it's probably too complex for my talk
01:58:36 <coppro> (since it requires construction of the reals and field isomorphisms)
01:58:44 <coppro> /might/ be able to do construction of the reals if I hurry
01:58:53 <coppro> possibly a proof from group theory
01:59:39 <itidus21> agda has a surprising number of meanings
02:00:15 <coppro> elliott: also you have ruined my life
02:00:21 <coppro> I'm going to write a haskell package
02:00:34 <elliott> did you learn haskell because of me ror something
02:02:04 <coppro> elliott: no but you made me know about conduit
02:02:09 <coppro> and now I'm going to write a utility library for it
02:03:14 <coppro> all haskell libraries suck
02:17:26 <edwardk> i think its just that all haskell libraries that deal with anything called an iteratee, pipe or conduit tends to suck ;)
02:19:23 <shachaf> edwardk: Extrapolating, by 2013 over 50% of Haskell libraries are going to be called one of those things.
02:19:41 <edwardk> shachaf: i'll keep up the good fight against the tide
02:20:44 <elliott> i agree with the author of pipes on conduit but i don't like pipes either
02:20:52 <elliott> if only cmccann hasn't mysteriously vanished I could use his library
02:22:04 -!- Phantom_Hoover has joined.
02:23:16 <elliott> at least i haven't seen him anywhere for months
02:26:55 <elliott> Phantom_Hoover: I don't believe so???
02:27:53 <elliott> well he has referred to himself with male pronouns on IRC so...
02:28:09 <shachaf> I don't think he was female.
02:28:15 <shachaf> Maybe he was, though. Who knows.
02:28:26 <elliott> I like how we are using the past tense here.
02:28:38 <Phantom_Hoover> I distinctly recall there being some Haskeller on SO who you referred to with female pronouns but oh well.
02:28:40 <itidus21> Phantom_Hoover: well you did say cAmccann.. and shachaf said cmaccann
02:29:01 <itidus21> oops now i started making typos
02:29:21 <shachaf> @google "whoever invented the mysterious force"
02:29:33 <Phantom_Hoover> I note that his website has a single enigmatic message on it.
02:29:37 <coppro> edwardk: as far as I can tell, you produce interesting libraries
02:29:43 <coppro> conduit and co are useful ones :P
02:29:50 <coppro> and never the twain shall meet
02:29:51 <elliott> edwardk's libraries ar eperfectly useful
02:29:56 <itidus21> as for camccann on twitter she just "I just unlocked the 4sqDay 2012 badge on @foursquare! Cupcakes and crowns for all! http://4sq.com/HRIX9p"
02:34:07 <itidus21> camccann has a stack overflow rep of over 35,900
02:36:20 <Phantom_Hoover> Like a bloodhound catching a scent, itidus21 is on the case!
02:36:41 <itidus21> i don't care it's not my business
02:38:05 <elliott> Phantom_Hoover: Your first reaction to a dilemma *isn't* stalking?
02:44:47 -!- edwardk has quit (Quit: Computer has gone to sleep.).
03:01:28 -!- Phantom_Hoover has changed nick to Guest39099.
03:23:56 -!- zzo38 has joined.
03:28:35 -!- NihilistDandy has joined.
03:38:36 -!- edwardk has joined.
03:44:38 <edwardk> re: cmccann cmccann is definitely male. i've met him and offered him a job before. =P
03:45:54 <edwardk> he's also in michigan, while that christina person is in pennsylvania ;)
03:47:59 <zzo38> Do you know that I have recorded a Dungeons&Dragons game I was playing in (and it is still in progress)?
03:48:30 <zzo38> Do you ever use TeX?
03:52:22 -!- Maharba has joined.
04:06:17 <itidus21> http://en.wikipedia.org/wiki/Domain-specific_entertainment_language
04:14:40 <elliott> edwardk: pertinent questions from zzo38 I think
04:22:17 <zzo38> Other question includes:
04:47:40 <zzo38> Do you think it should be return and join methods of Monad and then have Functor as superclass and (>>=) is not a method? I have read why you wanted (>>=) a method so I instead proposal (in Ibtlfmm, perhaps) to have (=<<) as a method because that way works better with other categories.
05:05:10 -!- ais523 has quit (Ping timeout: 246 seconds).
05:05:35 -!- ais523 has joined.
05:07:09 <edwardk> Personally I prefer the use of (>>=) in code to the use of a separate join and fmap. The latter two are almost always used in conjunction, and are harder to optimize when written separately, while the (>>=) is rarely much more expensive than join
05:07:59 <zzo38> Then you have: type MonadCR (c :: k -> k -> *) (m :: k -> k) :: & = (CategoryR r c, EndofunctorCR c m, MonadLawsCR c m, method return :: r x => c x (m x), method join :: r x => c (m (m x)) (m x), method (=<<) :: (r x, r y) => c x (m y) -> c (m x) (m y)); together with default definitions.
05:09:32 <zzo38> edwardk: I understand, and I also agree that often you do want to use join and fmap together and >>= is convenient shortcut I use that a lot. However I still think join should be a method so that you can define it in that way, and also I explained why there should use =<< as some method rather than >>= what do you think of this? (You would still have >>= but it is not a class method)
05:09:44 <edwardk> You do realize by naming a language after map succ "haskell", you open yourself to jokes about making haskell succ, right? =)
05:10:24 <zzo38> edwardk: Now I do, and I have no problems with that.
05:11:07 <edwardk> the price of defining join with (>>=) is the evaluation of an identity function at each binding site. it has really near zero operational cost
05:11:51 <edwardk> i wouldn't mind defining them interrelatedly, but i don't really mind its absence
05:12:12 <zzo38> I agree; it could even be done and simplified at compile time if wanted somehow; but still you might want to define in terms of join.
05:12:59 <edwardk> aywys about the succ thing it only game up because i'm working on slides for a talk on how to use generalized de bruijn indices to make de bruijn succ less ;)
05:14:10 <zzo38> You should be able to define map/return/join or return/(=<<) and then the others (including (>>=)) defined from that.
05:15:03 <edwardk> well i don't bother defining the duals of (>>=) and (=<<) interrelatedly
05:15:24 <edwardk> making all 3 interconnected leads to a lot of excessive flipping
05:16:56 <zzo38> In Haskell you cannot always define these things interrelatedly but perhaps Ibtlfmm may allow it by specifying mahematical laws. And do you understand the reason why I wanted to define (=<<) instead of (>>=) for use with other categories? It is like a functor from the Kleisli category (but represented by the base category) to the base category.
05:41:03 -!- Maharba has quit (Quit: Page closed).
05:54:44 <edwardk> yes, i use the same justification for why extend is the way it is
06:04:01 <elliott> I think #haskell are migrating here one by one.
06:04:38 <elliott> That would probably result in a decrease of the net understanding of Haskell of the channel.
06:04:49 <zzo38> elliott: Well, those that are discussing things other than ordinary programming, anyways.
06:05:34 <zzo38> Some people can go on both channels, at least sometimes. Or even on other channels as well.
06:07:02 <elliott> edwardk: Did you ever get that revisions stuff working?
06:07:41 <elliott> Neat. What's wrong with replay? (What's replay?)
06:07:50 <edwardk> i plan to ship a new version using the 'lca' package to deal with the online lca
06:07:57 <edwardk> and then i'll upload it to hackage
06:08:22 <edwardk> the actual version control operations are to define version controlled variables with a 3 way merge strategy, read/write from them, and fork, and join
06:08:39 <edwardk> but breaking the version control metaphor lets you add record :: Rev s a -> Rev s (a, Rev s a)
06:09:00 <edwardk> that gives you incremental as well as parallel computation and is the key to the ridiculous speedups you can get with this technique
06:09:09 <edwardk> that is the part that i haven't bothered to get working
06:09:46 <elliott> That sounds like it would be useful for all kinds of things that I will never realise it would be useful for when coding them.
06:10:04 <edwardk> i haven't been using the general purpose library for this that i have lately but instead have been using a special case set of combinators for dealing with unification problems
06:10:20 <edwardk> in particular i wanted to use it for type error slicing
06:10:31 <edwardk> but that requires a few awkward extensions to the way the merge strategy works
06:10:37 <edwardk> have you read daan's paper?
06:11:06 <edwardk> http://research.microsoft.com/apps/pubs/default.aspx?id=150180
06:11:11 <edwardk> really sells the performance win
06:11:21 <elliott> I haven't; I'll do so tomorrow.
06:11:29 * elliott has been coding more C++ than Haskell recently :(
06:11:42 <edwardk> well, this ports cleanly to c++ as well ;)
06:11:51 <zzo38> What is your opinions of automatic type classes (meaning the instances are defined automatically by a macro defined at the same time as the class, and you cannot create your own instances)?
06:11:58 <shachaf> "I'll read that paper tomorrow" is one of the worst repeated lies I've told. :-(
06:12:12 <elliott> edwardk: I don't attempt anything even vaguely elaborate in C++.
06:12:12 * shachaf has a big pile of papers to read "tomorrow".
06:12:24 <elliott> shachaf: Hey, I specifically mentally noted to check the log for the link!
06:12:27 <shachaf> elliott: What are you doing in C++?
06:12:27 <elliott> That counts for something.
06:12:54 <edwardk> zzo38: my opinion is that i'd rather just use ghc.generics and defaultsignatures and be able to override where its beneficial
06:13:25 <edwardk> elliott: load the file and look at figure 11
06:13:29 <elliott> shachaf: Patching a tattered codebase from 2005 that thinks it's C for the most part.
06:13:31 <edwardk> elliott: that should motivate it ;)
06:13:44 <edwardk> 'parallel repeat' performance in particular
06:13:50 <zzo38> edwardk: It doesn't do the things I was intending though; also, this way I propose allows Typeable to be defined in this way, and so on, too.
06:14:24 <elliott> Wait, I think I have skimmed this paper on edwardk's behest before.
06:14:30 <edwardk> elliott: sounds like my personal hell
06:14:42 <edwardk> elliott: thought i'd sent you there
06:14:53 <edwardk> those numbers are on 8 cores
06:15:01 <zzo38> In Haskell it would be: auto_instance :: ([Type] -> Q [Dec]) -> Q [Dec] and then you can use this as a TH quotation inside of a class definition
06:15:27 <elliott> shachaf: (Also it isn't actually Crawl, it's an abandoned, unbalanced pre-alpha version of Crawl before it got cleaned up.)
06:15:37 <elliott> edwardk: I don't even have that many cores :(
06:15:40 <shachaf> Why are you patching that version?
06:15:51 <shachaf> elliott: Did your computer come back to life?
06:16:23 <elliott> shachaf: monqy and no. (But that one doesn't have eight cores, either.)
06:16:48 <zzo38> (Even if it defines instances for everything, you still need to indicate the constraint if you are using something polymorphic, to use the methods of this automatic class.)
06:17:06 <shachaf> elliott: You gotta, like, finish playing Portal, man. :-(
06:17:43 <zzo38> (For example, you still need the Typeable constraint to be able to use typeOf and so on even though all types would have instances for Typeable.)
06:18:29 <elliott> shachaf: I'll finish playing Portal by... 2015 at the latest.
06:18:46 <shachaf> elliott: Didn't we say something like a month?
06:18:55 <itidus21> it'll be 2015 sooner than later
06:19:13 <elliott> shachaf: I didn't agree to any such constraints!
06:19:18 <elliott> edwardk: What do you think of McBride's Frank?
06:19:42 <edwardk> i think i've largely given up on effect systems ;)
06:20:41 <edwardk> when you empower the language to automatically plumb effects around for you like that then all of a sudden a large number of previously equivalent programs are no longer equivalent. you are giving up information about internal workings, this means a lot of canonical combinators cease to be canonical
06:20:47 <elliott> I quite like them. What don't you like about them? The objection I'm familiar with is the standard "you can distinguish 'equivalent' actions in interpreters", but I don't really see that as a huge problem.
06:21:11 <edwardk> so while map and mapM don't need to be defined separately, you often wind up having to define multiple directional traversals to push the effects around
06:21:30 <edwardk> and you close the door to lots of optimizations
06:21:39 <elliott> I don't think it is strictly worse than what you have to do to define control structures in a strict language with explicit thunking?
06:21:46 <edwardk> when i code in a monadic style i'm at least explicit about what effects need to be serialized with regards to one another
06:21:58 <edwardk> and i don't introduce completely artificial sequencing barriers
06:22:23 <edwardk> working in a strict language with explicit thunking is just flipping terrible
06:22:51 <elliott> edwardk: I don't like explicit thunking. But I do quite like being explicit about effectful computation vs. result. So... I'm inconsistent.
06:23:14 <edwardk> well, my main data points are scala and haskell here
06:23:20 <edwardk> haskell is a dream to work with, scala is a nightmare
06:23:30 <edwardk> a part of why scala is a nightmare is because of the strict defaults
06:23:37 <edwardk> which make scala monads a damn joke
06:24:37 <elliott> Well, Scala is a nightmare in general. I was of the "total language and decide what evaluation order is later since it doesn't affect semantics" school before it came in vogue, but then Conor went and ruined it by getting it to the top of /r/haskell. :/
06:24:46 <edwardk> in scala if i program with a monad i'm choosing to either a.) blow the stack on any non-trivial example because flatMap can't be a 'self-tail-call' and hence isn't subject to their limited form of tail call optimization or b.) run VERY slowly, because i've operationally transformed the monad using an explicit trampoline
06:24:49 <elliott> (But then you end up with a notion of a thunk again if you introduce effects.)
06:25:14 <elliott> By "no worse than", I just meant that the number of combinators you have to write is no more than would be required in a strict langauge with explicit thunking.
06:25:15 <shachaf> edwardk: What did you think about monad-embed?
06:25:19 <elliott> Because that's essentially the distinction you're getting.
06:25:19 <edwardk> in a strict language with real tail call optimization, its a harder call, and you can get that in scheme.
06:25:49 <edwardk> shachaf: is that the scala abuse of delimited continuations to fake monads?
06:26:05 <lambdabot> http://timmaxwell.org/pages/monad-embed/
06:26:47 <edwardk> it looks a lot like andrej bauer's toy
06:26:58 <edwardk> same objections to it as i have to eff/frank
06:27:20 <edwardk> given the choice i'd probably go with mcbride's version since its the most principled of the 3
06:28:00 <edwardk> ddc is fine if the only effects you want to play with are boring crap involving scribbling to regions. if you need to talk about other effects its useless
06:28:12 <elliott> DDC is really complicated.
06:28:13 <edwardk> eff was invented to solve a non-problem
06:29:01 <edwardk> well, andrej wrote it because he claimed you couldn't solve certain things in haskell with monads
06:29:22 <edwardk> and i showed him 4 years ago that he was wrong, whereupon he promptly forgot that fact and went and wrote it anyways ;)
06:30:07 <edwardk> after he wrote up something recently i posted a rebuttal of sorts on my blog ;)
06:30:21 <edwardk> http://comonad.com/reader/2011/searching-infinity/
06:30:25 <elliott> I dislike monad transformers strongly enough that the downsides of effect systems seem minor in comparison, honestly.
06:30:41 <shachaf> elliott: Since when do you dislike monad transformers?
06:30:52 <edwardk> the problem is that you run into the same problems you get with monad coproducts
06:31:07 <edwardk> yes, i can define the coproduct of two monads, its just useless
06:31:28 <edwardk> i can define the coproduct of two effect systems, but its just as useless
06:31:45 <edwardk> did you see the traffic on reddit today about monad coproducts?
06:31:59 <edwardk> i gave a long enumeration of things that can't be done with monad coproducts
06:32:01 <elliott> I think Frank's effect system should suffice for a large variety of uses of monad transformers, really, although of course they can't do everything.
06:32:15 <elliott> edwardk: Yes. But I try to ignore tailcalled.
06:32:16 <edwardk> all of these problems hold when you try to sprinkle arbitrary effects into an effect system
06:33:00 <elliott> I still think the reduced power may be less annoying than monad transformers. But of course I've never actually tried to write a proper program in Frank.
06:33:19 <zzo38> I don't dislike transformers, but I also consider the transformers in a mathematical way
06:33:31 <edwardk> the -only- effects you can compose are reader/writer/state
06:33:55 <edwardk> all uses of non-determinism, local, pass, listen, callCC, etc. break this system
06:34:23 <elliott> RWST IO *is* approximately 90% of Haskell transformer stacks. But yes, it's hardly ideal. :/
06:34:27 <elliott> Can you invent something perfect instead?
06:34:36 <edwardk> and notice half of those operations were in reader/writer ;) so you lost half the effects you had in there
06:34:44 <zzo38> And I do not mean only effect composition; I mean the monad transformers in general, and other transformers too.
06:34:51 <elliott> Maybe you just didn't look hard enough!
06:35:17 <edwardk> i place the burden of the existence proof on you =P
06:35:40 <edwardk> i've done my due diligence here, and besides smarter people than me agree it can't exist
06:35:56 <zzo38> What I mean by that is a homomorphism of those kind of things to a new one made up from that, so in other words if M is a monad and T is a monad transformer then so is (T M) and then a forward transformer homomorphism from M to (T M) while backward transformer homomorphism in other direction.
06:36:13 <edwardk> ghani and luth, ghani and uustalu, kelly's paper on layered finitary monads, etc.
06:36:18 <elliott> edwardk: I'm just going to stick to C++.
06:36:25 <elliott> Like deciding to be homeless because you can't have a mansion.
06:36:44 <zzo38> I program in many programming languages, including C and Haskell.
06:36:48 <shachaf> It's a maze of twisty little passages, all different.
06:37:11 <elliott> Every time I think "this code could really use some more classes" a little bit of me dies.
06:37:43 <edwardk> well, monad transformers are stronger than the coproduct of the base monad and the State, etc monad they are transforming it with, which is the key insight into why they are better than coproducts
06:38:45 <elliott> Well, I know you can't compose monads perfectly independently.
06:38:47 <zzo38> To make a sum of two monads, does it have to be on a sum of two categories that those two monads are on?
06:38:52 <elliott> But transformers are so arbitrary. :(
06:38:54 <zzo38> And same with products too
06:39:01 <elliott> I'll let shachaf complain about transformers instead, he is better at it.
06:39:13 <edwardk> elliott: transformers each individually arise for very very different reasons
06:39:20 <edwardk> elliott: and each one is fundamental in its own way
06:39:27 <zzo38> How are transformers so arbitrary?
06:40:10 <elliott> zzo38: Good question! shachaf can answer it.
06:40:11 <edwardk> ReaderT works because (->) can distribute out over anything, WriterT because every functor is strong, state works because you can sandwich a monad inside an adjunction
06:40:23 <edwardk> cont works because (-> r) is self adjoint
06:40:44 <edwardk> there isn't a consistent way in which these things are the same
06:40:46 <itidus21> http://static.quickmeme.com/media/social/qm.gif
06:40:55 <zzo38> shachaf: Do you know how transformers so arbitrary?
06:40:55 <edwardk> except for the fact that they transform a simpler monad into a more complex one
06:41:13 <zzo38> edwardk: How do you mean? Isn't it a kind of monad laws, transformer laws, homomorphism, etc?
06:41:17 <shachaf> zzo38: elliott brought it up, not me.
06:41:19 <edwardk> if you start working with coproducts you _immediately_ quotient out the ability to allow them to interact
06:41:35 <elliott> edwardk: Anyway, both you and McBride sound so convincing.
06:41:36 <zzo38> edwardk: Yes I can see that
06:41:41 <edwardk> zzo38: no, they aren't just two monad homomorphisms in from their constituent parts
06:41:51 <elliott> So I'm going to go with McBride, because I'd prefer him to be right.
06:42:17 <edwardk> like i said, his is the best of a bad bunch ;)
06:42:26 <zzo38> edwardk: Yes there is something more too see what I have written above, is that it? Is it somewhat difference?
06:42:40 -!- NihilistDandy has quit (Quit: ["Textual IRC Client: www.textualapp.com"]).
06:42:58 <elliott> itidus21: Did you just search "RWST IO meme" or something?
06:43:06 <elliott> I'm upset that image exists. :(
06:43:23 <shachaf> That doesn't even kind-check.
06:44:12 <zzo38> Yes you are right it doesn't even kind-check.
06:44:16 <edwardk> zzo38: consider a monad coproduct defined by two monad homomorphisms, this isn't sufficient to give you what monad transformers give you, because it has to work symmetrically between the two monads. this means that there is quite literally no way for the coproduct of state and error to let you get the semantics of either of StateT s (Either e) or ErrorT e (State s), since the state effects backtrack or not depending on the layering y
06:44:58 <zzo38> edwardk: I didn't say a transformer is a coproduct though, or vice-versa
06:45:12 <zzo38> But I do believe what you wrote
06:45:18 <elliott> Ah, edwardk is talking to zzo38. I am free. Goodbye!
06:45:28 -!- elliott has quit (Quit: Leaving).
06:46:10 <edwardk> itidus21: you probably also want to cps that so you can use speculation ;)
06:46:48 <zzo38> I have thought and figured out to make a monad on a category which is a sum of two categories from monads on each one, and the same things with products too
06:47:33 <zzo38> But this is dealing with different categories not the same one (although you can have the sum or product of a category with itself)
06:51:19 <zzo38> Therefore I do not understand why you are relating transformers with coproducts.
06:53:39 <edwardk> zzo38: http://www.reddit.com/r/haskell/comments/vuty0/what_is_the_advantage_of_monad_transformers_over/
06:54:59 -!- edwardk has quit (Quit: Leaving...).
07:25:46 -!- ais523 has quit.
07:29:51 <zzo38> Do you like Famicom-MIDI?
07:29:52 -!- zzo38 has quit (Quit: zzo38).
08:35:51 -!- ais523 has joined.
08:47:49 -!- derdon has joined.
08:58:22 <ais523> huh, a spammer has apparently sent me $1.6 million via DHL because of my bad experiences with FedEx
08:58:27 <ais523> and is asking for contact details
08:58:53 <shachaf> I like to contact people through their credit card numbers.
08:59:11 <ais523> (have you seen the theory that scammers deliberately make scams full of warning signs for people who know anything about them, to ensure that the only people who respond are idiots, who have a higher conversion rate than people who know about scams?)
08:59:53 <ais523> 1. YOUR FULL NAME 2. YOUR HOME ADDRESS.OR OFFICE ADDRESS 3. YOUR CURRENT HOME TELEPHONE NUMBER .4. YOUR CURRENT OFFICE TELEPHONE .5. A COPY OF YOUR PICTURE, FOR WELL IDENTIFICATION.
08:59:57 <ais523> that's what they wanted
09:00:07 <ais523> oh, Konversation screwed up the spaces again
09:00:08 <shachaf> ais523: Yep. That's a pleasing theory.
09:00:19 <ais523> I'm not sure whether to believe it or not
09:00:25 <shachaf> I like it whether or not it's true.
09:00:36 <ais523> I also like the theory that half the scams you get are from scam /victims/ who've been scammed with "make money fast via internet scamming" schemes
09:00:55 <ais523> and thus are only designed to fool their perpetrators
09:14:21 -!- Slereah_ has quit (Read error: Connection reset by peer).
09:14:42 -!- Slereah has joined.
09:21:31 -!- ais523_ has joined.
09:21:42 -!- ais523 has quit (Disconnected by services).
09:21:43 -!- ais523_ has changed nick to ais523.
09:24:14 -!- Slereah has quit (Read error: Connection reset by peer).
09:25:18 -!- Slereah has joined.
09:28:49 -!- copumpkin has quit (Ping timeout: 265 seconds).
09:29:23 -!- copumpkin has joined.
09:53:47 -!- Vorpal has joined.
09:55:10 -!- itidus21 has quit (*.net *.split).
09:55:10 -!- atehwa has quit (*.net *.split).
09:55:10 -!- ssue has quit (*.net *.split).
09:55:10 -!- comex has quit (*.net *.split).
09:56:41 -!- itidus21 has joined.
09:56:42 -!- atehwa has joined.
09:56:42 -!- ssue has joined.
09:56:42 -!- comex has joined.
10:07:15 -!- Guest39099 has quit (Remote host closed the connection).
10:10:05 -!- Phantom_Hoover has joined.
10:41:55 -!- oerjan has joined.
10:42:09 -!- oerjan has set topic: Individuals guilty of ruining this channel: coppro, edwardk, itidus21 (ex officio), dbelange, oerjan | http://codu.org/logs/_esoteric/.
10:59:42 -!- ais523_ has joined.
10:59:43 -!- ais523 has quit (Disconnected by services).
10:59:45 -!- ais523_ has changed nick to ais523.
11:58:53 -!- DHeadshot has quit (Read error: Connection reset by peer).
11:59:10 -!- DHeadshot has joined.
12:01:05 -!- derdon has quit (Remote host closed the connection).
12:49:22 -!- Jafet has joined.
13:01:14 -!- pikhq has joined.
13:01:19 -!- pikhq_ has quit (Ping timeout: 246 seconds).
13:05:06 -!- oerjan has quit (Quit: leaving).
13:13:55 <fizzie> Hello from Belgland. (Is this what this place is called?)
13:14:06 <fizzie> They have all the keys in completely wrong order, at least.
13:25:42 -!- Taneb has joined.
13:26:52 <lambdabot> Local time for boily is Mon Jul 2 09:26:51 2012
13:28:53 <lambdabot> Local time for fizzie is Mon Jul 2 16:28:50 2012
13:34:25 <boily> -4 right now because of EST.
13:41:34 -!- ais523 has quit (Ping timeout: 246 seconds).
13:41:55 -!- ais523 has joined.
13:46:54 -!- copumpkin has quit (Ping timeout: 264 seconds).
13:47:32 -!- copumpkin has joined.
13:57:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:19:13 -!- DHeadshot has quit (Ping timeout: 246 seconds).
14:21:31 -!- copumpkin has joined.
14:25:22 -!- DHeadshot has joined.
14:29:43 -!- DHeadshot has quit (Ping timeout: 246 seconds).
14:51:10 -!- ais523_ has joined.
14:54:20 -!- ais523 has quit (Ping timeout: 244 seconds).
14:55:24 -!- augur has joined.
15:07:45 <Taneb> boily, east coast US?
15:12:13 -!- ais523_ has changed nick to ais523.
15:15:01 -!- ogrom has joined.
15:29:23 <boily> Taneb: east coast canada.
15:51:08 -!- elliott has joined.
16:03:45 -!- ais523 has quit (Quit: time to leave work).
16:11:49 <Phantom_Hoover> sanetemp is Fahrenheit -> Celsius, insanetemp is the other way.
16:15:14 -!- zzo38 has joined.
16:17:57 <Gregor> Ohhhhhhhhh, I thought it was for temporary values of some kind. I was really confused.
16:21:50 -!- Patashu has changed nick to Patashu[Zzz].
16:32:44 -!- zzo38 has quit (Remote host closed the connection).
17:02:05 -!- boily has quit (Quit: WeeChat 0.3.8).
17:05:40 -!- boily has joined.
17:07:01 -!- ais523 has joined.
17:18:44 <ion> It’s a brilliant idea to have locale settings affect how your code parses. https://bugs.php.net/bug.php?id=18556
17:24:18 <ion> “class_exists() function uses zend_str_tolower(). zend_str_tolower() uses zend_tolower(). zend_tolower() uses _tolower_l() on Windows and tolower() on other oses. _tolower_l() is not locale aware. tolower() is LC_CTYPE aware.”
17:25:50 <Lumpio-> Why do people still keep using that V:
17:26:12 <Gregor> In PHP, it used to be that 0x0+1 == 2. They fixed that, but now 0b0+1 == 2. YAY
17:27:07 -!- Taneb has quit (Quit: dinner).
17:27:44 <itidus21> information overload: 11 items on my Windows(tm) taskbar, 23 tabs in my firefox browser, 4 channels in irc. noone to blame but myself
17:28:23 <coppro> Gregor: is this on lolphp?
17:28:58 <Gregor> http://www.reddit.com/r/lolphp/comments/ps6x5/0x0_wat/
17:29:32 <Vorpal> <Gregor> In PHP, it used to be that 0x0+1 == 2. They fixed that, but now 0b0+1 == 2. YAY <--- how... did those happen?
17:29:38 <Vorpal> what did they interpret 0x0 as?
17:30:01 <Gregor> Vorpal: See http://www.reddit.com/r/lolphp/comments/ps6x5/0x0_wat/
17:32:28 <Vorpal> why does it skip the leading zeros, it doesn't hurt to interpret those...
17:33:16 <Vorpal> also yeah strtol handles 0x already
17:34:25 -!- edwardk has joined.
17:37:19 -!- ais523 has quit (Ping timeout: 246 seconds).
17:38:28 -!- canaima has joined.
17:39:06 -!- canaima has quit (Client Quit).
17:39:51 -!- ais523 has joined.
17:40:12 <Vorpal> Phantom_Hoover, which of course makes no sense
17:40:38 <Phantom_Hoover> No you see strtol probably handles those initial zeroes inefficiently.
17:44:12 <Vorpal> Phantom_Hoover, if you profiled and found that to be the case the right answer to that is writing your own strtol then
17:44:20 <Vorpal> it is not terribly complex to implement strtol
17:44:30 <Vorpal> I did it when I needed a different overflow behaviour
17:48:52 -!- elliott has left ("Leaving").
17:50:16 -!- Nisstyre has quit (Ping timeout: 246 seconds).
17:51:40 <Phantom_Hoover> Vorpal, you do not need to explain to me why it's stupid.
17:59:29 <Sgeo> "list all of your computer skills (software,
17:59:29 <Sgeo> hardware, operating systems, programming and other skills here)"
17:59:45 <Sgeo> ^^ career development center person
17:59:56 <Sgeo> That's..... uh.... what....
18:00:24 <Sgeo> There's no way that that's literal, is there?
18:00:36 <Sgeo> Is anyone really interested in the fact that I know how to use XChat?
18:00:59 <Sgeo> Yay! I know how to use a web browser
18:01:13 <Sgeo> She took the liberty of adding Windows XP as a skill.
18:01:16 <edwardk> sgeo: i hope they have a lot of paper
18:01:49 <edwardk> my rule of thumb is if one of those forms is involved i probably am not interested in the kinds of positions they can supply ;)
18:02:34 <Sgeo> Well, this isn't towards any particular position, just helping me write a resume
18:02:48 <edwardk> i'm sure my innate understanding of the inner workings of the 6502 will be critical to my future success.
18:03:26 <Sgeo> Well, still in college, want to get an internship while in college
18:09:17 -!- Nisstyre has joined.
18:15:55 <Gregor> Spam subject: "Gangbang tube full of desire"
18:21:39 -!- augur has quit (Remote host closed the connection).
18:24:07 <Sgeo> http://www.resumagic.com/computer_skills1.html
18:24:18 <Sgeo> A hardware section?
18:24:45 <Sgeo> I.... have the vague idea that I'm typing on a Toshiba computer right now
18:24:50 <Sgeo> I'm not really a hardware person
18:32:14 <itidus21> 6502 is great for making computer games
18:34:20 <itidus21> oh, wikipedia says bender on futurama has a 6502 brain
18:35:52 * itidus21 scuffles away back to his lab.
18:52:38 -!- elliott has joined.
18:53:00 <elliott> @tell oerjan If AlainD keeps doing it, let me know and I'll do something about it.
18:54:06 <elliott> maharba corrected the misspelling of "accumlator" in the python interpreter
18:57:10 -!- zzo38 has joined.
18:57:40 -!- edwardk has quit (Quit: Computer has gone to sleep.).
19:39:54 * olsner opens itidus21's skull and takes a spoonful of spaghettibrain bolognese
19:40:04 <itidus21> you... might not want to do that
19:40:14 <olsner> you might not want me to do that
19:40:47 <olsner> I might not want to do that
19:41:32 <itidus21> i think maybe the way i think is just a reflection of the chaotic nature of the world
19:42:31 <olsner> a reflection of the leftovers I left in there
19:43:07 <olsner> I wonder what happened to the stuff I ate though
19:43:29 <itidus21> basically, i am producing content but i'm not organizing it
19:44:09 <itidus21> and i don't want to burden anyone else with that either
19:44:51 <itidus21> where i am really going wrong is i don't actually take the time to study what i am doing
19:45:08 <olsner> watch a chilean monkey (ape?) speak about getting organized: http://www.youtube.com/watch?v=0zUbyL6yez4
19:47:14 <olsner> his son speaks a bit later
19:47:45 <itidus21> but i also realize that it's entirely natural that observing or studying something leads to other things to observe or study.. and there is no real end to that
19:48:44 -!- oerjan has joined.
19:49:17 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
19:49:22 <lambdabot> elliott said 56m 22s ago: If AlainD keeps doing it, let me know and I'll do something about it.
19:50:15 <oerjan> <elliott> maharba corrected the misspelling of "accumlator" in the python interpreter <-- SACRILEGE
19:50:34 <oerjan> i haven't even dared to fix the java one
19:51:46 <olsner> it was misspelled by design and is now completely broken?
19:52:38 -!- ogrom has quit (Ping timeout: 255 seconds).
19:52:40 <oerjan> ...i assume maharba's fix didn't change the semantics, i haven't looked at it yet.
19:52:59 <itidus21> organizing items into categories is a recursive process of generating new categories until there is no longer a miscellaneous category
19:53:41 <olsner> I think you should stop when the miscellaneous category is small enough, because it will never be eliminated
19:54:17 <itidus21> there is a finite set of items (in scope)
19:54:30 <itidus21> but admittedly new items can arrive any time
19:54:42 <olsner> although finite, the set can be very large
19:56:23 <itidus21> but it's really ugly... no library ever has a miscellaneous section
19:56:45 <itidus21> maybe this is because the authors categorize their books in advance
19:57:37 <itidus21> someone should troll the libraries by writing an uncategorizable book
19:57:42 -!- ais523 has quit (Quit: going to bed).
19:59:20 -!- edwardk has joined.
19:59:21 <zzo38> There is tensor category, and then perhaps you can make tensor diagram from that. But I suppose the lines are not allowed to cross unless it is commutative.
20:00:01 <olsner> was that a response to the idea about an uncategorizable book?
20:00:20 <itidus21> i'm not thinking of mathematical categories really, but just layman categories
20:00:23 <zzo38> I did not even read what was written above
20:01:21 <olsner> itidus21: I think they'll just add a new category for uncategorizable books and put your book in that category
20:02:24 <Phantom_Hoover> https://github.com/net-alper/php-src/commit/0515360e9a8dcc86facb38cddeebe759e87dca52
20:03:13 <olsner> yes, it follows the spirit and style of the surrounding code perfectly
20:03:54 <zzo38> Are any of the numbers for categorizing books not yet used? If so, then use those numbers.
20:04:38 <itidus21> zzo38: the system is kind of extensible really :D
20:05:17 <olsner> or they could just put the book in fiction since you made it all up to make it "uncategorizable"
20:06:18 <itidus21> anyway if you saw the kind of text files on my desktop you would understand why these things worry me
20:08:29 <olsner> you have some kind of illness involving text files?
20:11:33 <itidus21> heres an example of a file on my desktop http://pastebin.com/uXe6Jbi1
20:11:53 <itidus21> i wouldn't recommend reading it, but a quick glance will get the point across
20:15:19 <olsner> I think there's another word for written glossolalia, and doing it a non-religious context, though
20:16:28 <itidus21> one problem with that file is it requires context to make any sense
20:17:28 <olsner> hmm, ok, I don't have any context so it makes no sense
20:18:36 <itidus21> what the first part is saying is that there is a 12x12 bitmap using the alphabet {-,0} with rows and columns addressed by a letter followed by a number
20:19:13 <itidus21> and then it goes on to show the 4x4 bitmaps found at various addresses
20:20:02 <olsner> found at various addresses? so you're reverse-engineering something?
20:20:06 <zzo38> Does any ephemeris data include camera angles?
20:20:17 <itidus21> well addressing as in a chessboard
20:21:23 <itidus21> then it tries to do the same thing with another 12x12 bitmap, trying to use this system to represent tetris pieces via addresses
20:23:08 <itidus21> then it goes on to a 4x4 bitmap, with 9 addresses from a1 to c3 and at each address determining the 2x2 sub bitmap
20:23:58 <itidus21> then tries to use these subbitmaps as tiles in a 3x3 grid
20:25:17 <itidus21> then some waffling about using xml to represent operations on bitmap, as well as a random list of urls so that i can close the browser tabs
20:25:35 <olsner> why would you close those tabs?
20:29:01 <itidus21> lack of interest, or trying to focus on something else
20:29:40 <zzo38> How can I download an ephemeris with camera angles of camera satellites included?
20:33:11 <itidus21> next is a few random thoughts about video games, followed by an analysis of something called WarioWare D.I.Y. which is a nintendo game about making games which last about 8 seconds
20:34:28 <itidus21> so the last part i suppose is infact a reverse engineering
20:36:02 <olsner> I read a bit in the beginning and a bit in the end, scrolling past the rest of it very quickly
20:36:23 <olsner> so I found some bitmaps, some youtube links, and what looked like it could be some reverse engineering notes
20:36:38 <itidus21> so infact they are all unrelated
20:36:57 <olsner> and yet they are in the same text file
20:37:16 <olsner> I guess it's called New new New text file.txt or something like that?
20:37:36 <oerjan> i tried to see if the "scratch" file on my desktop was similar, but it seems to contain only the design for my deadfish in itflabtijtslwi
20:37:44 <olsner> do you have 122 previous text files that became full?
20:38:04 <itidus21> each one is a vain attempt at something substantial..
20:38:40 <itidus21> theres 1234.txt stuff.txt stuff2.txt gaming.txt Document.rtf
20:39:49 <itidus21> New OpenDocument Text (2).odt, New OpenDocument Text.odt, Games.odt
20:40:16 <olsner> I found /code/scratch/BaconCongdon758.txt
20:40:25 <olsner> it has tips on finding a good dentist, I think
20:41:13 <olsner> and here's a copy of an e-mail with 11469 > characters from excessive quoting of the entire previous thread
20:41:56 <olsner> (out of 837 lines ... but some of those came from line-wrapping the series of initial >s)
20:42:15 <itidus21> i even made a folder called Desk and copied my desktop into it mostly.. but that didn't stop it happening again
20:42:49 -!- ion has quit (Ping timeout: 246 seconds).
20:54:08 -!- elliott has quit (Quit: Leaving).
20:54:18 -!- elliott has joined.
20:56:59 * oerjan checks spelling and realizes alaind is probably not alan dipert
20:57:37 <olsner> otoh, if his actual name is alain dipert that might explain why alan dipert is sometimes so hard to find
20:58:10 <oerjan> elliott: wait, are you revealing secret wiki database stuff again
20:58:19 <olsner> double up if it's actually alain diperrier
20:58:42 <elliott> oerjan: i am irresponsible, not negligent.
20:59:05 <elliott> oerjan: however, note that, IIRC, realnames are public in mediawiki.
20:59:05 <oerjan> i... may not be entirely sure of the difference.
20:59:18 <elliott> one sounds worse than the other
20:59:28 <olsner> which one sounds worse?
20:59:41 <oerjan> but that's so negligible
20:59:46 <olsner> I think irresponsible sounds worse, it sounds more intentional
21:00:04 <olsner> negligent sounds like forgetful
21:01:03 <oerjan> elliott: i don't know how to find realnames...
21:01:06 <olsner> elliott is about to become one of those english people who go out in the world and discover that their words mean completely different things out there
21:03:00 <oerjan> "Real name is optional. If you choose to provide it, this will be used for giving you attribution for your work."
21:03:47 <oerjan> so presumably there's some way to make attributions...
21:09:05 -!- itidus20 has joined.
21:11:27 <zzo38> Is there any relation between tensor categories and Penrose tensor diagrams?
21:13:07 -!- itidus21 has quit (Ping timeout: 240 seconds).
21:13:32 -!- itidus20 has changed nick to itidus21.
21:59:07 <boily> AAAAAAAAAAAAAAAAAAAAAAAAAAAAH!
21:59:45 <oerjan> yeah that's what i'd say if i was boiling too
22:00:49 <boily> I always forget the fact that my family name sounds like boiling in English...
22:01:35 <boily> I'd probably be aaaaaahing too if I were boiled alive.
22:01:51 <oerjan> just change your nick to bwalee and we'll stop being confused
22:02:07 -!- boily has changed nick to bwalee-not-confu.
22:02:34 -!- bwalee-not-confu has changed nick to unconfused-bwale.
22:02:45 -!- unconfused-bwale has changed nick to unconf`d-bwalee.
22:04:37 <itidus21> so it's "oi" as in "au revoir"
22:12:24 -!- ion has joined.
22:12:28 -!- SimonRC has quit (Ping timeout: 244 seconds).
22:13:40 -!- SimonRC has joined.
22:15:29 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:28:51 <Phantom_Hoover> Apparently OpenOffice used to (as in 2011-and-possibly-still) delete all backup files when it crashed.
22:32:57 <Phantom_Hoover> Also found this gem: "In my experience, quality goes something like:
22:32:57 <Phantom_Hoover> (worst) commercial <<<< open source < (most) commercial << open source (best)"
22:33:35 <coppro> The best OSS stuff beats the commercial stuf
22:33:46 <coppro> OOo is far from the best
22:34:18 <Phantom_Hoover> Yeah, I just thought they were lumping all open-source stuff together whilst fractionating commercial software by quality.
22:34:37 <zzo38> Yes, actually I do think "proprietary < open-source < proprietary < open-source" does describe how good the software is. I have not thought of that before but it does look correct to me.
22:35:34 <zzo38> What document numbering system should I use, such as "I.2.iii" or "1.2.3" or etc?
22:36:31 <Phantom_Hoover> Roman numerals, then Arabic, then lowercase Roman, then Greek, then Hebrew (ask shachaf).
22:37:53 <zzo38> I only need three levels.
22:38:22 <zzo38> And it needs to work with TeX.
22:38:32 -!- copumpkin has joined.
22:38:43 <Phantom_Hoover> Does TeX not have the capacity to display the Greek alphabet.
22:39:09 <itidus21> Phantom_Hoover: not after the euro scandal
22:39:45 <zzo38> It can display math Greek alphabet.
22:39:57 <zzo38> But it doesn't have the ordering built-in
22:40:13 <zzo38> With the proper fonts you can display anything but I don't want to have to add fonts
22:40:39 <Phantom_Hoover> shachaf, didn't you say it's one of those sum-numeric-values-of-letters systems except you're not allowed to spell out any of the names of God.
22:41:12 <zzo38> itidus21: Yes, but even if it isn't, the printer may be monochrome anyways
22:41:52 <zzo38> I am starting to make the document for ITMCK.
22:43:43 <itidus21> the printer _should_ do subpixel dithering, in a perfect world >:-)
22:58:08 <zzo38> The fonts are stored as METAFONT programs which will output a metric file, and then when you tell it what printer you use can output the font raster for that printer as well.
22:59:18 <zzo38> How does a printer going to do subpixel dithering?
22:59:28 <itidus21> basically i think it would be fun to make a font based on NES tilesets
23:00:25 <itidus21> but then again, i am rambling nonsense
23:00:46 <ion> Printers have subpixels?
23:01:22 <zzo38> I did once write a program to make a METAFONT file from 8x8 monochrome character bitmaps; it could then be included from a METAFONT program that uses that data to apply effects and ship out.
23:11:05 <itidus21> ion: well, i don't know the correct terms to explain what i have in mind
23:12:14 <itidus21> if i have a 4 color image, and if it is to be printed in black and white, it needs to be dithered at some stage
23:12:18 <oerjan> just use nanobots to print
23:12:22 <itidus21> i guess its silly to demand the printer to do that
23:12:39 <itidus21> maybe the font should be dithered!
23:13:20 <itidus21> ya.. now i'm getting somewhere
23:13:21 -!- monqy has joined.
23:13:30 <zzo38> Well, it would be possible to program METAFONT to perform dithering although it cannot be subpixels
23:13:54 <lambdabot> monqy: You have 7 new messages. '/msg lambdabot @messages' to read them.
23:14:34 <shachaf> @ask monqy hi monqy, we missed you
23:14:34 <ion> itidus21: Isn’t that kind of dithering typical?
23:14:41 <oerjan> elliott: MONQY DETECTED
23:15:04 <itidus21> i dunno when it happens. maybe it's part of the vector rendering
23:16:30 <zzo38> Those belong to CP437 (and to Unicode)
23:16:38 <shachaf> monqy Are you going to the conference in San Diego?
23:16:43 <zzo38> They are often used in ZZT and MegaZeux games
23:19:27 -!- edwardk has quit (Quit: Computer has gone to sleep.).
23:21:34 <itidus21> zzo38: but suppose you are using graphics mode, and font resolution isn't a scarce resource... 1920 / 256 = 7.5; 1080 / 224 = 4.8; so you can get away with 7.5x4.8 black and white pixels per NES pixel (allowing for stretching)
23:22:29 <zzo38> You could convert the file into the format that METAFONT (or TeX) can read and then write the program to make it to print out.
23:22:36 <itidus21> but my eyes tend to percieve movement with some effects like that. really awkward
23:22:44 <zzo38> I have written a program in TeX to print ASCII PBM pictures on a document.
23:23:58 <zzo38> What is the postal address to send a note if you lost a copy of GNU GPL?
23:29:38 -!- oerjan has quit (Quit: Good night).