00:13:14 -!- ais523 has quit (Remote host closed the connection). 00:21:45 -!- zzo38 has joined. 00:31:35 -!- cheater has joined. 00:41:50 -!- DCliche has quit (Quit: SLEEP, GLORIOUS SLEEP). 01:19:26 @tell elliott update 01:19:26 Consider it noted. 01:19:32 @tell kallisti update 01:19:32 Consider it noted. 01:32:34 @tell Sgeo thanks 01:32:34 Consider it noted. 01:32:50 Finally, I figured out, and wrote down, my and my brother's character's age. 01:33:27 They said, you are enslaved a while and didn't keep track; but I could use the Object Reading spell to figure out the age of anyone if I have an object they own. 01:33:40 But even then, we couldn't do it until we know the age categories for the creatures, which I have done. 01:34:23 The dungeons master told me to calculate 60% of middle age, so I did that. 02:08:10 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 02:20:44 > replicateM 3 (Just 2) 02:20:44 Just [2,2,2] 02:21:07 :t replicateM 02:21:08 forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a] 02:21:31 @hoogle Int -> (a -> m a) -> m [a] 02:21:31 Test.QuickCheck.Arbitrary shrinkList :: (a -> [a]) -> [a] -> [[a]] 02:21:31 Control.Monad forM :: Monad m => [a] -> (a -> m b) -> m [b] 02:21:31 Prelude mapM :: Monad m => (a -> m b) -> [a] -> m [b] 02:23:22 > iterate (>>= (+1)) Just 2 02:23:23 Occurs check: cannot construct the infinite type: b = m b 02:23:24 > iterate (>>= (+1)) (Just 2) 02:23:25 Occurs check: cannot construct the infinite type: b = m b 02:23:35 > iterate (>>= (return.(+1))) (Just 2) 02:23:37 [Just 2,Just 3,Just 4,Just 5,Just 6,Just 7,Just 8,Just 9,Just 10,Just 11,Ju... 02:35:41 -!- Klisz has joined. 02:43:07 -!- itidus21 has quit (Quit: Leaving). 02:45:24 :t on 02:45:25 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 03:13:25 -!- Scriptor has quit (Ping timeout: 248 seconds). 03:13:40 -!- Scriptor has joined. 03:16:41 Should there be a command-line option for FerNANDo to change the PRNG bit to always 1? 03:17:26 (As well as another option to make it always 0) 03:19:30 @hoogle uncurry 03:19:30 Prelude uncurry :: (a -> b -> c) -> ((a, b) -> c) 03:19:30 Data.Tuple uncurry :: (a -> b -> c) -> ((a, b) -> c) 03:26:51 -!- kallisti has quit (Quit: leaving). 03:53:16 -!- Klisz has quit (Ping timeout: 252 seconds). 04:31:19 -!- Klisz has joined. 04:35:46 -!- Jafet has quit (Quit: Leaving.). 04:39:29 -!- kallisti has joined. 04:39:30 -!- kallisti has quit (Changing host). 04:39:30 -!- kallisti has joined. 05:07:41 -!- azaq23 has quit (Quit: Leaving.). 05:08:02 Creatures with larva you need to keep the components separately, but you can still add them to make the total, and age categories can still work 05:33:13 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP). 05:52:04 I hope LogicT is more efficient on mplus than list is. 05:52:11 because I do a lot of that. 05:52:55 I think by deferring construction of the list it reduces the need for multiple concatenations. 05:53:01 if I understand it correctly. 06:00:17 -!- Klisz has joined. 06:13:09 -!- zzo38 has quit (Remote host closed the connection). 06:22:35 > 2 + 2 `mod` 5 06:22:36 4 06:22:49 > 4 + 2 `mod` 5 06:22:50 6 06:22:59 > (4 + 2) `mod` 5 06:23:00 1 06:38:19 :t arr 06:38:20 forall b c (a :: * -> * -> *). (Arrow a) => (b -> c) -> a b c 06:38:31 > arr (+1) (1,2) 06:38:32 (2,3) 06:38:40 > arr (+1) (9000,9000) 06:38:41 (9001,9001) 06:42:31 > arr id (9000,9000) 06:42:32 (9000,9000) 06:53:37 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP). 06:58:56 Substitute (->) for a, (b -> c) -> ((->) b c) = (b -> c) -> (b -> c) = ($) 06:59:16 (I was thinking id, but id and ($) are the same anyway except $ is type-restricted) 06:59:42 > (+1) `id` 5 06:59:43 6 07:04:00 ever get that feeling 07:04:04 that what you're describing 07:04:07 is a monad. 07:04:11 when programming in Haskell? :P 07:05:12 -!- itidus21 has joined. 07:05:37 Why? 07:05:47 because I am right now. 07:09:04 I'm using combinators on functions in order to describe the set of rules a walk across the chess board must follow. 07:09:18 I think it could probably be generalized into something else. 07:14:28 :t join (***) 07:14:29 forall (a :: * -> * -> *) b c. (Arrow a) => a b c -> a (b, b) (c, c) 07:15:01 @hoogle (Arrow a) => a b c -> a (b, b) (c, c) 07:15:01 Control.Arrow (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c') 07:15:01 Control.Arrow second :: Arrow a => a b c -> a (d, b) (d, c) 07:15:01 Control.Arrow first :: Arrow a => a b c -> a (b, d) (c, d) 07:23:14 -!- oerjan has joined. 07:23:31 :t (>>) 07:23:32 forall (m :: * -> *) a b. (Monad m) => m a -> m b -> m b 07:33:47 -!- Phantom_Hoover has joined. 07:35:50 -!- oerjan has set topic: Now open for Chinese to buy | Get your esoil and esoline here! | Optators' gold-embossed biography "Our Trip to Power" now available in fine bookstores | Ministry of Truth says "exiled editor" never existed in the first place, "grieving family planted by Americans" | Spotted marsh elliott still unspotted | Gregorian chants outlawed, "American" | http://codu.org/logs/_esoteric/. 07:37:23 diagonalCapture = runWalk . captureDirs . getDiags . startDirFor 07:37:23 where 07:37:23 captureDirs = 07:37:23 uncurry mplus . join (***) (stepWith oneStep captureRule board) 07:37:23 captureRule = ifBlocked `orRule` (followPortal `thenRule` ifBlocked) 07:37:25 getDiags = join (***) (Move c) <<< rotateCW &&& rotateCC 07:37:30 beautiful semi-pointless code. 07:37:57 Semi? 07:38:08 I guess naming functions in the chain doesn't count actually. 07:39:02 also I use free variables that aren't functions. I'm sure some contrived purist would say that it's not actually pointfree. 07:39:12 if such a person even exists. 07:39:48 :t join (***) 07:39:49 forall (a :: * -> * -> *) b c. (Arrow a) => a b c -> a (b, b) (c, c) 07:40:03 Sgeo: READ AS: apply this shit to both elements in a 2-tuple kthx 07:40:09 at least, that's how I'm using it 07:40:40 because for reason I'd rather do this crap instead of just writing names to my function arguments. 07:40:43 +some 07:42:14 (the above code, btw, defines the moveset for pawns when a capture is available) 07:44:12 > (+1) `mplus` (+2) $ 3 07:44:13 No instance for (Control.Monad.MonadPlus ((->) a)) 07:44:13 arising from a use of... 07:44:38 > const Nothing `mplus` Just $ 3 07:44:39 No instance for (Control.Monad.MonadPlus ((->) a)) 07:44:39 arising from a use of... 07:45:47 -!- monqy has quit (Quit: hello). 07:47:05 also I use free variables that aren't functions. I'm sure some contrived purist would say that it's not actually pointfree. 07:47:15 You have no idea what pointfree means, do you. 07:47:51 does a vague idea that seems pretty accurate count? I know what it means in the context of Haskell, but I don't understand where the name comes from. 07:48:20 from topology, iirc 07:48:25 yes I know that much. 07:49:27 i think the FP (?) language may have been involved, too 07:49:47 basically you are free to name functions, but not their arguments 07:50:43 formal arguments, that is. you're of course allowed to pass something named as an argument. 07:50:59 yes which is why I say a free variable that's not a function is, in some sense, not pointfree. Perhaps the code I quoted is pointfree but it's written using the arguments of the function that it's defined within. 07:51:36 @. unpl pl \f g (a,b) -> (f a, g b) 07:51:36 (\ aa f -> (\ p w -> ((,)) (aa (fst p)) (f w)) >>= \ af -> snd >>= \ ae -> return (af ae)) 07:51:51 :') 07:52:26 > (f *** g) $ (x,y) 07:52:26 @. unpl pl \ f g x -> f (g x) 07:52:26 (\ a b c -> a (b c)) 07:52:27 Ambiguous type variable `c' in the constraints: 07:52:27 `GHC.Show.Show c' 07:52:27 a... 07:52:42 > (f *** g) $ (x,y) :: (Expr, Expr) 07:52:43 (f x,g y) 07:52:57 I think pl missed something... 07:53:33 -!- Scriptor has quit (Ping timeout: 252 seconds). 07:54:05 oh that's unpl... 07:54:39 In the ideal case, @. unpl pl won't do "anything". 07:54:50 The plain pl isn't exactly readable either. 07:54:52 @pl \f g (a,b) -> (f a, g b) 07:54:53 flip flip snd . (ap .) . flip flip fst . ((.) .) . flip . (((.) . (,)) .) 08:07:10 as always, @pl knows nothing about arrow functions. 08:09:45 can you add more functions to pl's repertoire? 08:10:01 @list pl 08:10:02 pl provides: pointless pl-resume pl 08:10:20 seems not 08:11:22 :t uncurry $ flip . ((.) . (,) .) 08:11:23 The operator `.' [infixr 9] of a section 08:11:23 must have lower precedence than that of the operand, 08:11:23 namely `.' [infixr 9] 08:11:33 :t uncurry $ flip . (((.) . (,)) .) 08:11:34 forall (f :: * -> *) a (f1 :: * -> *) a1. (Functor f, Functor f1) => (f a1, f1 a) -> f (f1 (a1, a)) 08:11:44 CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALE 08:12:02 :t let (.) = (Prelude..) in uncurry $ flip . (((.) . (,)) .) 08:12:03 forall b a b1 a1. (a1 -> b1, a -> b) -> a1 -> a -> (b1, b) 08:12:16 oops 08:12:20 :t let (.) = (Prelude..) in curry $ flip . (((.) . (,)) .) 08:12:21 Couldn't match expected type `(a, b)' 08:12:21 against inferred type `a1 -> b1' 08:12:21 In the second argument of `(.)', namely `(((.) . (,)) .)' 08:12:33 er 08:12:52 :t Prelude.flip 08:12:53 forall a b c. (a -> b -> c) -> b -> a -> c 08:12:56 hth 08:13:17 wat 08:13:43 oh wait duh 08:17:38 :t let (.) = (Prelude..) in flip . (uncurry .) . (.) . (. (,)) . flip (.) 08:17:39 forall a b b1 a1. (a1 -> b1) -> (a, a1) -> (a -> b) -> (b, b1) 08:18:06 darn 08:22:17 ah 08:22:23 :t let (.) = (Prelude..) in flip $ (uncurry .) . (.) . (. (,)) . flip (.) 08:22:24 forall a b b1 a1. (a -> b) -> (a1 -> b1) -> (a, a1) -> (b, b1) 08:22:49 SO MUCH SIMPLER 08:53:01 -!- ais523 has joined. 08:56:28 -!- pikhq_ has joined. 08:56:56 -!- pikhq has quit (Ping timeout: 252 seconds). 09:24:33 -!- Jafet has joined. 09:49:05 oerjan: Sure it knows about timed hi... I mean, arrows: 09:49:06 @pl \(a,b) -> (f a, g b) 09:49:06 f *** g 09:49:49 -!- Phantom_Hoover has quit (Remote host closed the connection). 09:50:22 darn 09:50:23 fizzie: I'm pretty sure that's new. 09:50:52 That's very possible. 09:50:58 * oerjan fails at pun recognition 09:51:34 http://tvtropes.org/pmwiki/pmwiki.php/Main/HeKnowsAboutTimedHits if you meant that one, though it's not exactly a pun. 09:51:38 @pl \(a,b) -> (f b, g a) 09:51:39 uncurry (flip ((,) . f) . g) 09:52:10 I guess it's not new, it's just very special-cased. :-P 09:53:11 @pl \b a -> (f b, g a) 09:53:12 (. g) . (,) . f 09:53:49 @pl \(a,b) -> (f a, b) 09:53:50 first f 09:53:53 @pl \f (a,b) -> (f a, b) 09:53:53 (`ap` snd) . (. fst) . ((,) .) 09:53:57 Good, good. 09:54:00 @_@ 11:11:59 -!- oerjan has quit (Quit: leaving). 11:47:35 -!- FireFly has quit (Excess Flood). 11:48:48 -!- aloril has quit (Ping timeout: 244 seconds). 12:01:27 -!- aloril has joined. 12:09:08 -!- ais523 has quit (Ping timeout: 245 seconds). 12:14:26 -!- ais523 has joined. 12:20:55 -!- ais523 has quit (Ping timeout: 255 seconds). 12:21:52 -!- elliott__ has quit (Ping timeout: 244 seconds). 12:23:37 -!- ais523 has joined. 12:58:58 -!- _Slereah has quit (Ping timeout: 240 seconds). 13:03:21 -!- _Slereah has joined. 13:05:23 -!- elliott__ has quit (Ping timeout: 240 seconds). 13:07:18 -!- hagb4rd has quit (Ping timeout: 240 seconds). 13:52:47 -!- augur has quit (Remote host closed the connection). 14:09:20 -!- kallisti has quit (Ping timeout: 252 seconds). 14:25:18 -!- ais523 has quit (Read error: Operation timed out). 14:25:28 -!- augur has joined. 14:27:27 -!- elliott__ has quit (Read error: Operation timed out). 14:30:36 -!- FireFly has quit (Excess Flood). 14:51:01 -!- ais523 has joined. 14:56:08 -!- ais523 has changed nick to ais523|away. 15:30:06 -!- FireFly has quit (Excess Flood). 15:37:02 -!- Scriptor has joined. 16:03:39 -!- Phantom_Hoover has joined. 16:04:29 -!- Phantom_Hoover has set topic: Now open for Chinese to buy | Get your esoil and esoline here! | Optators' gold-embossed biography "Our Trip to Power" now available in fine bookstores | Ministry of Truth says "exiled editor" never existed in the first place, "grieving family planted by Americans" | Spotted marsh elliott spotted in other marsh | Gregorian chants outlawed, "American" | http://codu.org/logs/_esoteric/. 16:12:46 hel 16:12:47 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 16:12:47 o 16:28:17 -!- itidus20 has joined. 16:28:48 -!- Ngevd has joined. 16:28:54 Hekki 16:29:11 -!- Scriptor has left ("ERC Version 5.2 (IRC client for Emacs)"). 16:31:23 -!- itidus21 has quit (Ping timeout: 240 seconds). 16:33:19 -!- Taneb has joined. 16:33:38 -!- Ngevd has quit (Ping timeout: 252 seconds). 16:33:47 My connection is worse than I thought 16:36:04 -!- ais523|away has quit (Ping timeout: 276 seconds). 16:37:27 -!- Frooxius has quit (Quit: ChatZilla 0.9.88-rdmsoft [XULRunner 1.9.0.17/2009122204]). 16:37:43 -!- Taneb has changed nick to Ngevd. 16:37:48 -!- Frooxius has joined. 16:40:54 -!- ais523|away has joined. 16:46:32 -!- kallisti has joined. 16:46:32 -!- kallisti has quit (Changing host). 16:46:32 -!- kallisti has joined. 16:46:46 Hello kallisti 16:47:50 hi 16:48:02 can you fix my horrible chebyshev calculating thingy? 16:48:40 I actually don't even know if it works I haven't tested any of this because I am really not even sure how to test Haskell aside from probably using one of those testy things that people use but I don't know how to use those either. 16:49:47 Link? 16:50:02 http://sprunge.us/UgdA 16:50:07 search chebyshev 16:50:13 ugda 16:50:20 dialect of agda good 16:51:42 actually why don't I just generate an infinite list. 16:53:41 Ngevd: basically I just noted that you can step out N-1 times at both right angles from every cardinal point to get all the points that are N distance away 16:54:04 ....if that makes any sense 16:54:41 then you just tack the diagonals on. 16:55:26 I'm pretty much 99.99999999...% sure that there's a better way that doesn't involve mutability. 16:55:59 Couldn't you do coord -> Int -> [coord]? 16:56:25 that's basically what I'm doing 16:56:26 -!- Sandelkoenig has joined. 16:56:48 Move is a coordinate + direction, I just kept them together because it's simple. 16:57:16 also it's how my step function works. 16:57:28 I plug this thing into my step function which wants Moves 16:57:36 because direction is important on that one. 16:59:54 Ngevd: oh, also 17:00:09 the way this algorithm works is it pairs the coordinate of the input to every cardinal direction 17:00:13 and then advances that way 17:00:17 so it could be like... 17:00:21 Move -> [m Move] 17:00:25 er 17:00:30 Coord -> [m Move] 17:00:56 What's the MonadPlus for? 17:01:20 MonadPlus is a subclass of MonadLogic 17:01:34 it's the only "concatenation" I know of. 17:03:17 so to "concatenate" the results of all of these different steps I use msum and mplus 17:04:33 though maybe I actually want >> 17:04:35 I'm not entirely sure. 17:04:40 Can pieces move to their own location? 17:04:43 no 17:04:51 well... 17:04:58 yes 17:05:06 hmmmmmmm 17:05:20 the directional pieces are supposed to be able to shift direction as a turn. 17:05:26 but this is awfully similar to a "do nothing" 17:07:09 no pretty sure I want mplus 17:07:14 >> would not concatenate lists 17:07:20 and I'm pretty sure LogicT is based on a list. 17:07:53 I think I'll go read that paper associated with LogicT so I can figure out wtf I'm doing. :P 17:09:35 so for all the directional pieces 17:09:39 I'll just add a coord : 17:09:42 to their movesets 17:11:00 I think I'm worrying too much 17:11:12 "oh no it's different from chess" probably doesn't indicate anything too flawed. 17:11:44 Ngevd: is any of this code legible? 17:11:49 I'm not sure why I decided to take this route honestly. 17:11:51 Not really 17:11:56 I'm not that great at Haskell 17:12:02 I guess because there's a lot of repetitive tasks to do 17:12:07 so I just make this generalized board walker thing 17:12:54 stepWith (followPortal `thenRule` unlessVisited) 17:13:19 says that when you make a step on the board you want to follow portals, unless you've previously visited them. 17:13:36 stepWith also takes an actual step function, that defines what a step is 17:13:50 the simplest one is forwardStep, which is just a single step forward in whatever direction the move is. 17:14:08 er oops 17:14:18 step (followPortal `thenRule` unlessVisited) 17:14:20 not stepWith 17:14:25 step = stepWith forwardStep 17:15:24 then walkWith is just an iteration of stepWith, that stops whenever its step function or rule function returns an mzero 17:15:24 so it turns out ultimate sets can be RE^RE^RE-complete :o 17:15:30 even from the full shift 17:15:34 isn't that just insane 17:15:35 oklopol: ultimate sets? sounds like a game. 17:15:38 like ultimate frisbee. 17:15:40 :D 17:15:48 also I have no clue what any of that means, sorry. 17:15:54 kallisti, do you have a chessboard, some matchsticks, some string, and a webcam? 17:15:56 -!- ais523|away has changed nick to ais523. 17:16:05 well the arithmetic hierarcy, just like all quantifier stuff, can be though of as a two-player game 17:16:06 Ngevd: I actually have absolutely none of those things. 17:16:26 So, you can't play portal chess for realz. 17:16:39 I don't see why I need matchsticks 17:16:45 string would be useful but not strictly necessary. 17:16:50 Marking direction 17:16:56 the ultimate set of a CA is the set of (infinite) configurations which are limit points of subsequences of orbits, everyone knows that. 17:16:57 basically just need a chessboard and contact with another interested human being. 17:16:59 For cannons 17:17:03 Ngevd: ah yes. you could use markers for those. 17:17:08 cannons don't have directions actually. 17:17:14 Do they not? 17:17:16 in the product topology obtained by having the discrete topology on the alphabet 17:17:16 nope 17:17:24 Matchsticks are not necassary, then 17:17:30 well the queen now has a direction 17:17:36 Oh yes 17:17:37 and I think most queen pieces are radially symmetrical. 17:17:44 even some bishops are actually. 17:17:55 not every bishop piece used by chessboards has "the notch" 17:18:03 You could swap the king and queen? 17:18:51 does the king indicate a direction? 17:19:02 Damn 17:19:05 it has a cross but that's ambiguous. 17:19:11 They have rotational symmetry order 2 17:19:15 uh, yeah that. 17:19:32 We need an odd number for unambiguity 17:19:33 not a problem 17:19:42 tape, marker, or any other indicator is not hard to find. 17:19:51 True 17:20:04 Do you have a chessboard? 17:20:13 actually the main reason I made the lens directionless intially was because queens don't have a direction 17:20:35 but I think requiring extra physical implements is worth simplifying the game. otherwise you have to kind of awkward explain what's going on. 17:20:58 I think with the cannons no declaration is required. 17:21:12 you just take a piece from the board 17:21:22 and then if your friend is like "wtf" then you explain. :P 17:21:37 IT'S LIKE THAT COMMERCIAL FOR CONNECT FOUR 17:21:47 but instead of like "I got you diagonally!" "ohhhhh" 17:22:15 it's like "I redirected my cannon laser through this portal and then through this arrow and now your portal is dead" 17:23:58 also I don't think I'm going to do any kind of infinite loop teleporting piece weirdness 17:24:05 like where you can basically make a piece vanish for a while 17:24:22 But that leaves ambiguity in the game 17:24:45 I'm... sure it can be explained away. 17:24:50 it's explained away in my implementation. :P 17:25:02 you just have to be fluent in Haskell to find it. 17:25:57 So what happens if you have two portals are around a piece pointing to eachother and one of them moves over the piece 17:26:01 I might special case it later. 17:26:22 So, what happens? 17:26:51 well... 17:27:13 unless I decide to re-add the infinite loop capture thing (lol needs better name) then the move isn't valid. 17:27:45 Also, #esoteric-chess-variants isn't used very much 17:27:53 a portal can't transport a piece if the piece has nowhere to go. 17:28:12 How do arrows move again? 17:28:22 bishoply + any cardinal step 17:28:45 essentially they move like bishops except they can also sidestep into the other square color. 17:28:51 Okay 17:29:10 should I allow friendly capture? 17:29:21 this has a number of consequences 17:29:38 Only with cannons 17:29:56 a portal can land on a piece, and thus transport it somewhere, capturing a piece 17:29:59 because it is a valid move 17:30:11 Hmm 17:30:13 Yes 17:30:16 if friendly capture weren't possible then the move would be invalid because the capturing piece is friendly to the captured piece. 17:30:31 and that would violate my piece transport rule as described above. 17:31:03 note that 17:31:07 not many pieces can actually capture. 17:31:10 currently. 17:31:12 ...uh, two. 17:31:13 to be precise. 17:31:25 King, pawn, Ccannon, dcannon 17:31:29 oh 17:31:32 well yes the cannons count as well 17:31:35 I meant capture-by-movement 17:31:42 Arrow? 17:31:45 not currently no. 17:32:20 also... 17:32:26 things are kind of tricky with pawns. 17:32:42 so like..... 17:33:13 if you were to transport a pawn, then in order to capture a piece on the other side the pawn needs to be facing the correct direction coming out of the portal. 17:33:30 diagonally forward. forward being defined by the pawns color. 17:33:51 :) 17:34:00 Ooh, tricky 17:34:04 I think that's perhaps unecessarily complicated. 17:34:09 with one n 17:34:30 I mean 17:34:31 it's not 17:34:33 that complicated 17:34:49 but, I am bad at explaining things. So I don't know if I can make these points clear in The Rules. 17:35:37 as long as I like... explicitly define how a pawn works 17:35:52 instead of, say, just saying something like "oh yeah pawns they're like chess" 17:38:09 then there's less ambiguity when I later say "a portal can only move to an occupied square if transporting the piece occupying that square is a valid move" 17:38:25 where I then should probably note how transporting works... 17:38:35 Would you like a game of portalchess? 17:38:41 hm? 17:38:48 go on. 17:38:55 Hang on 17:39:15 I think the best way to describe transportation is that the act of transporting a unit is essentially like moving it a single step in the direction of the output portal. 17:39:28 it has to be a valid move. 17:39:30 for that piece 17:39:35 to move in that direction 17:39:46 -!- ais523 has quit (Remote host closed the connection). 17:40:02 so for example, you can only transport a pawn if the output portal is facing the correct direction 17:40:09 otherwise the transportation is not a valid move. 17:40:38 is that a good rule? it seems overly complex. I could remove that restriction 17:41:20 Yes 17:41:30 ...yes to my question I'm assuming. 17:41:52 It is a good move 17:41:58 also 17:42:00 it means 17:42:00 Rule 17:42:01 you can 17:42:01 chain 17:42:04 portal transports 17:42:27 by transporting a portal that then transpots another piece. :> 17:42:29 oh god. 17:42:32 NO 17:42:35 MUST STOP MAKING THESE RULES 17:42:54 I will be unable to distinguish expected and unexpected behavior when testing my implementation. 17:43:10 Well, do you want to be black or white? 17:44:41 uh how is this going to work. 17:44:53 I have a chessboard 17:44:55 I'll be black because that's what color I am in my fantasies. :> 17:45:18 (ha ha americans find race funny) 17:45:43 I have no idea how to start 17:45:59 King's knight's pawn forward 2 17:46:14 s/kight/arrow/ 17:47:00 this isn't going to work I AM BLIND 17:47:17 Hmm 17:48:17 I should probably just add some code so that I can move pieces around without doing all the rule calculations 17:48:24 I don't know. 17:48:32 Or I could Livestream my board 17:49:39 b7 to b6 17:50:10 (queen's side knight's pawn forward 1) 17:50:36 uh... 17:50:37 wait 17:50:37 I shoot your dcannon with my dcannon 17:50:41 wat? 17:50:47 oh 17:50:55 -!- Klisz has joined. 17:50:57 I thought you said king's pawn 17:51:08 I'll give you that again 17:51:09 THIS ISN'T GOING TO WORK WHAT IS THIS. 17:52:44 Just do your move again 17:53:05 f8 to e5 facing southwest 17:53:44 queenside portal's pawn 1 forward 17:54:55 How do lenses move? 17:54:58 queens 17:55:01 can't capture currently 17:55:53 c2c3 17:55:59 right 17:56:14 c1c2 facing south 17:56:18 I'll let you figure out what happens. 17:56:32 er 17:56:32 hm 17:56:39 technically I think I just broke a rule. :P 17:56:53 That was a silly rule 17:57:09 yes but I don't know how to explain that behavior much better. 17:57:17 Just play 17:57:17 I guess pawns are a special case. 17:57:22 I did. :P 17:57:31 b1 e4 17:57:36 North 17:58:58 e5 facing south 17:59:43 ....it's getting hard to remember everything. 18:00:15 c3 d4 18:00:33 huh? 18:00:55 I lost track of it 18:00:58 that's a... pawn right. 18:01:01 Yes 18:01:05 That took a pawn? 18:01:18 oh no the pawn should be at like.... 18:01:26 oh 18:01:28 yes d4 :P 18:02:10 Your turn 18:02:11 :) 18:02:29 hold on while I use my feeble monkey brain to reprocess the entire state of the game repeatedly until I have some sense of what's going on. 18:04:42 e5e4 facing southeast 18:05:31 note that currently there is no overcomplicated direction reorienting 18:05:47 pieces maintain an absolute direction until the player changes it as part of their turn. 18:06:30 uh can I have like... a picture of the board? or something. :P 18:07:43 C6c5 facing south 18:08:41 And no 18:08:46 ... 18:08:55 fine I'll just be awesome while completely blind. 18:09:13 b7b6 18:11:11 How do cannons move? 18:11:16 kingly 18:11:28 they're kind of a glass cannon. HA HA HA HA HA HA HA HA 18:12:35 c5 facing NE 18:14:19 bbl, dinner 18:15:37 b8b7 facing southeast also LAME 18:15:48 oh wait 18:15:51 lol 18:15:55 bad idea what am I even doing. 18:16:59 actually no that's not a bad idea. 18:17:31 -!- Ngevd has quit (Read error: Connection reset by peer). 18:17:53 -!- Ngevd has joined. 18:19:49 wow this game got weird very quickly. 18:25:27 Ngevd, for god's sake, stop feeding him. 18:25:36 -!- Madoka-Kaname has quit (Quit: Hug~♪). 18:25:53 Just pay him no attention and this will die, rather than constituting half the remaining 'discussion' in the channel. 18:28:21 yes then we can all be silent together. 18:28:31 * kallisti cherishes the day. :') 18:29:38 I'd rather that than you speaking another word. 18:30:34 I have a question: why are you so aggressive towards me when I'm practically doing zero harm? I haven't prevented you from idling in the channel as you seem to want to do. The only thing I've done is speak about something when no one else is speaking. 18:30:55 What's the problem exactly? 18:33:27 if you have some kind of legitimate complaint about what I'm doing then I would like to hear it. If a substantial number of people would like me to stop talking about this, then I'll gladly move to another channel of communication. but as it currently stands you're just being a dick for no discernable reason other than the fact that you don't like me personally. 18:34:32 -!- ais523 has joined. 18:34:52 ooh, the bishops are rebelling 18:35:07 they don't end up relevantly involved in politics very often 18:35:12 and besides, they can be outvoted very easily 18:35:17 but it's interesting to see them make a stand 18:35:25 what are they rebelling about? 18:35:49 child benefit 18:35:59 they don't think it should be included in the government's proposed benefits cap 18:36:37 -!- ais523 has quit (Remote host closed the connection). 18:36:57 -!- ais523 has joined. 18:37:16 also, X just restarted for no obvious reason 18:37:28 that's always fun. 18:37:41 Back 18:37:55 I remember when X used to freeze completely on me for no apparent reason. 18:38:21 Ngevd: I doubt I can keep of track of these game much longer. I just remember that I had an awesome plan that was totally awesome. 18:38:26 *this 18:39:23 Also, I'd like to remind everyone that #esoteric-chess-variants is a thing in potentia 18:40:05 -!- yorick has quit (Read error: Connection reset by peer). 18:40:42 -!- yorick has joined. 18:51:14 Oh, kallisti talked. 18:51:50 Oh, look. Nobody's talking. It's OK if I spam the channel, then. 18:52:44 yes feel free to write meaningful sentences 19:00:21 -!- Frooxius_ has joined. 19:01:39 -!- Frooxius has quit (Ping timeout: 240 seconds). 19:01:48 -!- Frooxius_ has changed nick to Frooxius. 19:03:42 -!- Frooxius has quit (Client Quit). 19:04:11 -!- Frooxius has joined. 19:55:44 -!- azaq23 has joined. 19:55:54 -!- azaq23 has quit (Max SendQ exceeded). 19:56:00 -!- GreaseMonkey has joined. 19:56:00 -!- GreaseMonkey has quit (Changing host). 19:56:00 -!- GreaseMonkey has joined. 19:56:19 -!- azaq23 has joined. 20:00:55 -!- oerjan has joined. 20:15:19 -!- Taneb has joined. 20:19:17 -!- Ngevd has quit (Ping timeout: 244 seconds). 20:21:51 -!- zzo38 has joined. 20:25:08 -!- Taneb has quit (Ping timeout: 248 seconds). 20:26:44 -!- Ngevd has joined. 20:55:50 Phew; one more "use of #esoteric logs as data for course exercise session examples" point achieved. 20:56:45 HEY U R VOILATING MY COPYRIGHT 20:56:54 HA HA HA AH 20:57:06 ^ha 20:57:06 ha. ha. ha ha. ha ha ha. ha ha ha ha ha. ha ha ha ha ha ha ha ha. ha ha ha ha ha ha ha ha ha ha ha ha ha. ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha. ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha. ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ...too much output! 20:57:48 (This is the first exercise session for the course this year, and the lecturer had promised them there's not going to be any actual assignments, so I prepared a demonstration of sorts.) 20:58:14 Also I wanted something that's tangentially related to the real world, so they can "relate", but couldn't invent anything. 20:58:19 IRC is obvsly the next best thing. 20:58:43 Anyway, I've "anonymized" this by replacing names with numbers, no worries. 20:59:56 http://users.ics.tkk.fi/htkallas/esodemo.pdf if you want to try your luck at deanonymization based on the one (1) example comment I've included of each person by means of "shuf -n 1". 21:00:01 we're all just numbers anyway, man 21:00:05 Uh... use of grep will be considered cheating, though. 21:00:38 I said none of those things. 21:01:00 That is the true; I took the ten most linesome nicks over all my own logs. 21:01:10 ....linesome? 21:01:18 Said-the-most-lines. 21:01:21 oh 21:01:32 I wonder where I'm at on that ranking now. 21:01:52 Three turned out to be one person, and two also another, but that's all right, that just gets nicely illustramated in the PATTERNS of the results slide. 21:02:01 am i one of those? 21:02:04 Also disregard the very last slide, it has nothing to do with anything. 21:02:09 oklopol: You're one of the numbers, yes. 21:02:14 several of the quotes sound elliott-esque 21:02:16 i mean in example comments 21:02:25 oklopol: You're the 1208. 21:02:36 that's what i figured, but wasn't sure 21:02:36 "so, the codomain is the domain of the cofunction 21:02:42 That's what you have said, apparently. 21:02:51 makes sense :d 21:03:05 I'm none of the examples 21:03:10 oerjan's copyright is also there. 21:03:25 Ngevd: Well, half of them are made of two people, thanks to those serial nick-changers. 21:03:36 1682 is oerjan maybe? 21:03:45 kallisti: Sadly, no. 21:04:33 I'm probably not revealing any huge secrets if I reveal that all the three red ones (in the table) are instances of elliott, and the two blue ones are Vorpals. 21:06:35 it was a secret to me. :P 21:06:42 fizzie... serial nick changers!? I'm one of them! 21:07:09 * kallisti is opposite of that. 21:07:14 except for two large nick changes. 21:07:34 Ngevd, Taneb, Taneb|Hovercraft, Taneb|Kindle... 21:07:36 in revulsion of my past self's naming aesthetics. 21:07:49 What were you before CakeProphet? 21:08:03 * oerjan isn't sure what he said but he sort of hopes it was 889 21:09:09 oerjan: You are: correct. 21:09:24 yay 21:09:41 -!- monqy has joined. 21:09:47 I'm hoping some of the students ask me "what the what sort of channel is this anyway". 21:11:55 fizzie: you mentioned the channel to your students? 21:12:20 did you not at least check to ensure none of them lived in Hexham first? 21:12:43 * kallisti imagines the commute time from Hexham to fizzie's class 21:12:47 Not yet, but see above: I'm using some #esoteric logs as data in this probabilistic-models demo I have in lieu of actual exercises for the first session. 21:12:50 unless it's an online thing. 21:13:11 was 1319 me? 21:13:13 I don't think I'll be mentioning it unless they explicitly ask. 21:13:13 -!- Sandelkoenig has quit (Quit: ChatZilla 0.9.88 [Firefox 9.0.1/20111220165912]). 21:13:24 ais523: Yes, the INTERCAL is a bit of a giveaway. 21:13:25 `pastlog I'm not in a mood for non-trivial INTERCAL programs 21:14:03 hmm, it's not just the word INTERCAL, but the context it's in 21:14:06 2008-07-14.txt:22:09:27: I'm not in a mood for non-trivial INTERCAL programs 21:14:22 wow, that's not the answer I was expecting 21:14:53 'shuf' got me quite good examples, though I had to reroll a couple when they had "foo: ..." style attribution names in front. 21:15:16 ais523: Actually your initial random sample was too long to fit in the slide, horizontally speaking. 21:15:34 heh, do I have a tendency to make unusually long comments? 21:15:59 It wasn't maybe so unusually long, it's more that the slide-font is awfully big. 21:16:05 It was "I use always-on-top a lot for watching people play NetHack in a corner of the screen while doing other things, too". 21:16:30 (I think I did some statistic plots on line length a while ago, though.) 21:16:32 that seems like something I would say 21:20:54 Averange line lengths for the same 10 nicks: http://p.zem.fi/nhrv 21:20:59 s/range/rage/ 21:21:38 Seems that it's meself that's the odd one out, really. Also I think I need to say something fluffy and needless here in order to not to slide down in the statistics. Oh, this is going to be annoying to keep up. 21:25:38 And the same thing but top-50 and based on post-2010-01-01 data only so that currently active people don't feel left out: http://p.zem.fi/avn8 21:25:53 fungot: You're so longwinded. 21:25:54 fizzie: this one ended fnord to nasty spice, tried it and it wasn't me. 21:25:58 -!- Ngevd has quit (Quit: NO LONGER NEEDED). 21:29:07 And finally sorted by average line length, too: http://p.zem.fi/57g6 -- it's nice how elliott and elliott_ have ended right next to each other; very dependably standardized comment lengths there. (Though ehird is quite a bit lower down.) 21:29:46 but ehird and alise are right next to each other :D 21:29:56 eerm 21:29:58 alise__ 21:30:02 *alise_ 21:32:01 CakeProphet/kallisti, ais523/ais523_ and Sgeo/Sgeo_ also only have just one person in-between. And itidus20/itidus21 are neighbours. There must be something in there. 21:32:16 CakeProphet = kallisti? I never realised 21:32:38 I was just going by what Ngevd said up there. 21:32:45 oh yes I thought everyone knew by now. 21:33:10 I suppose the hostname cloak is a bit confirmationary, though. 21:33:22 thanks wikipedia 21:33:27 site I haven't logged into for years. 21:35:44 -!- monqy has quit (*.net *.split). 21:36:02 -!- monqy has joined. 21:40:59 j-invariant/MissPiggy are also neighbors 21:42:58 er wait 21:43:06 looking at the wrong link 21:44:07 quite far apart in the intended one, actually 21:45:38 * oerjan notes how the top consists of bots, finns and zzo38 21:52:44 fizzie, no love for Phantom__Hoover? 21:52:56 heh i noticed that 21:53:01 `? Phantom___Hoover 21:53:08 Phantom___Hoover ? ¯\(°_o)/¯ 21:53:13 wat :( 21:53:24 `? Phantom__Hoover 21:53:29 Phantom__Hoover ? ¯\(°_o)/¯ 21:53:33 `? Phantom_Hoover 21:53:35 OUTRAGE 21:53:37 Phantom_Hoover ? ¯\(°_o)/¯ 21:53:40 wtf 21:53:41 OUTRAAAAAAAAAAAAAAAAAAGE 21:53:45 `ls wisdom 21:53:45 `ls wisdom 21:53:49 ​? \ ais523 \ augur \ banach-tarski \ c \ cakeprophet \ category \ comonad \ coppro \ egobot \ elliott \ endofunctor \ esoteric \ everyone \ finland \ finns \ fizzie \ flower \ friendship \ functor \ fungot \ glogbot \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ itidus21 \ kallisti \ lifthrasiir \ mad \ misspellings of croissant \ monad \ monads \ monoid \ monqy \ ngevd \ nooga \ oerjan \ oklopol 21:53:56 `? monad 21:53:57 WHOEVER DID THIS WILL DIE 21:54:00 Monads are just monoids in the category of endofunctors. 21:54:03 HackEgo: I WILL KILL YOU 21:54:21 Well, this is some ... errr ... excitement. 21:54:31 Gregor: why hello 21:54:35 * augur is excited 21:54:36 Gregor: you sound guilty 21:54:40 `? misspellings of croissant 21:54:43 ​? \ ais523 \ augur \ banach-tarski \ c \ cakeprophet \ category \ comonad \ coppro \ egobot \ elliott \ endofunctor \ esoteric \ everyone \ finland \ finns \ fizzie \ flower \ friendship \ functor \ fungot \ glogbot \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ itidus21 \ kallisti \ lifthrasiir \ mad \ misspellings of croissant \ monad \ monads \ monoid \ monqy \ ngevd \ nooga \ oerjan \ oklopol 21:54:44 misspellings of crosant? ¯\(°_o)/¯ 21:54:52 .. 21:55:10 what was previously at PH's wisdom entry? 21:55:10 lmfao what 21:55:33 `? esoteric 21:55:36 `? augur 21:55:36 This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net. 21:55:40 augur took no cakes. 21:55:45 its true 21:55:49 i took no cakes 21:55:51 `? monad 21:55:55 monad ? ¯\(°_o)/¯ 21:55:56 `? Gregor 21:55:56 good to know. 21:55:58 aha! 21:55:59 Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible. 21:56:02 `? Phantom_Hoover 21:56:06 Phantom_Hoover is a true Scotsman and hatheist. 21:56:18 it's that damn space bug again 21:56:28 `? misspellings of croissant 21:56:31 misspellings of crosant? ¯\(°_o)/¯ 21:56:37 i cannot recall it from before. hm. 21:56:48 monqy: ha ha 21:56:55 Gregor: did you very recently change HackEgo to preserve spaces at the end of command lines? 21:57:09 Nope. 21:57:27 because some stuff that i don't recall breaking before, now seems to. 21:57:45 `cat bin/? 21:57:48 ​#!/bin/sh \ topic=$(echo "$1" | tr A-Z a-z) \ [ -e "wisdom/$topic" ] || { echo "$1? ¯\(°_o)/¯"; exit 1; } \ cat "wisdom/$topic" \ 22:01:40 `? Phantom___Hoover 22:01:43 Phantom___Hoover sucks at ghosting himself. 22:03:44 `? kallisti 22:03:47 kallisti is a former prophet swearing off his pastry deity 22:05:07 hm perhaps what happens is that i simply stopped deleting invisible spaces at the end of lines... 22:05:13 *ed 22:05:49 a sign of my becoming a much more relaxed person, i'm sure. although exceedingly slowly. 22:11:12 oerjan: surely 22:11:30 * kallisti has become a /less/ relaxed person as of late. :P 22:13:35 `? finland 22:13:38 Finland is a European country. There are two people in Finland, and at least five of them are in this channel. Corun drives the bus. 22:13:40 `? finns 22:13:44 Finns are helpful, albeit grossly overpopulated (cf. 'Finland'). 22:13:53 `? functor 22:13:56 Functors are just morphisms in the category of small categories 22:14:05 `? ievan 22:14:09 ievan is basically http://www.youtube.com/watch?v=4om1rQKPijI 22:24:42 -!- augur has quit (Remote host closed the connection). 22:38:19 * Phantom_Hoover notes that the Finnish lyrics to Ievan Polkka take up about twice the space of the English ones in those subtitles. 22:38:36 It's true: Finnish is just English with all the letters doubled. 22:41:26 also english used to have a dot on top of vowels but we took all of them delicious dotties for ourselves. 22:41:36 That video link up there has both English and Finnish lyrics in the description bit; from a quick glance, they'd seem to take about the same amount of letters. 22:42:27 If anything, the English versions seem wider. 22:42:28 fizzie, yes, shortly after I resumed watching, the Finnish lyrics became about half as long as the English ones. 22:42:40 Banach-Tarski Finnish. 22:45:50 That loop of that thing they loop in the leek thing has managed to take the bit with no actual Finnish in it, unless I misremember. 22:47:22 kurikan kukka 22:49:06 Ja kirikan kuu. 22:49:21 `words --finnish 20 22:49:27 diakilöltä synapsoiselviytymä satumiisin fundameressä olemiäsi intuhaaviltaneuvot veksuaan lainammustuskä koettumissasi runtalvamme salaisemme riistäni filmaistani ladoksesi paljailemmäksyt pelömmiksemältäkö ihaamilla emältäsi aakintämista manamassanne 22:49:50 wut 22:51:59 And that's not all. 22:52:08 `words --finnish --swedish 10 22:52:11 -!- Madoka-Kaname has joined. 22:52:12 mexiä kuumennelensammattlarinanisemme jourisutt ahdeimpeimma tartymolemass lamaltisfull uportein hybritelemmille entakar härlottavis 22:52:16 (Those tend to be stupid.) 22:52:46 please elaborate 22:53:10 a bit hybritelemmille, those words 22:53:34 It's not my thing, I don't think I should. But it does pretty much what fungot does, except characters instead of words. 22:53:34 fizzie: i always have wanted that :d 22:53:56 fungot: Yeah, well, you can code it yourself then. 22:53:57 fizzie: what did you type the comma, for example. interoperability is one issue enough for him. :p 22:54:30 `words --english 20 22:54:34 Unknown option: english 22:54:50 `run words --norwegian --swedish 20 # these, on the other hand, will probably be just fine. 22:54:55 nøda snøskjuksjon sinnekropolycker totrollinge telsettinsterlig bygenasjovindning bedömennas kornpens industgörent fasciets horn ramstrivittéernen biopptiverksföret omdel regene utgåndbrat neutbevaktiede anglida rulla utrykarp 22:55:10 It's --eng-something. 22:55:23 `words --eng-all 10 22:55:30 benken nonpy blado nuainlex coaf meth monorre deloping try are 22:55:41 (There's some other sets.) 22:56:30 oerjan: What's "snøskjuksjon"? 22:57:02 obviously it's snow suction 22:58:30 -!- ais523 has quit (Remote host closed the connection). 22:58:44 -!- azaq23 has quit (Quit: Leaving.). 22:58:54 `run words --eng-all --finnish 15 # I'm not sure I've seen the Anglo-Finnish combo yet. 22:59:02 fightenaruit pysyitäjäht histely koteutuven pylxa nistanneyhexasti numan provanair mah wortiltamllenenbera kil näyten maat squa huolia 22:59:03 i'm afraid i don't know a meaning of sjuksjon 22:59:06 er 22:59:11 *i'm afraid i don't know a meaning of skjuksjon 22:59:18 or sjuksjon, for that matter 22:59:33 It sounds sick. 22:59:51 * oerjan swats fizzie -----### 23:00:33 sinnekropolycker sounds like something you don't want. 23:00:50 -!- Phantom_Hoover has quit (Quit: Leaving). 23:01:00 mental body accidents 23:01:32 oh right, olycker 23:02:09 * oerjan interpreted kropolycker as something you'd probably see in a microscope 23:02:49 what would that be? 23:02:52 and what's sinne 23:02:56 anger 23:03:12 o 23:03:38 i don't know what it would be, but it sounds like some kind of single-cell organism 23:03:54 Angry single-cell organisms. 23:04:09 no, not angry. causing anger. 23:04:20 Angry! 23:04:45 angerrrrrrrrrrrrrr 23:05:29 fungot: Are you angry? Or hungry? Or... what was that third one again? 23:05:29 fizzie: there has been talk of starting up a scheme user's group along the lines of a file 23:05:56 Sounds like the best group. 23:13:14 -!- kallisti_ has joined. 23:13:30 `run words --eng-all 100 | xargs -n1 echo | grep gry 23:13:32 -!- kallisti has quit (Read error: Connection reset by peer). 23:13:38 No output. 23:13:43 shocking! 23:13:47 -!- Frooxius_ has joined. 23:14:00 `run words --eng-all 1000 | xargs -n1 echo | grep gry 23:14:09 No output. 23:14:52 oerjan: I think I might have accidentally invented a ReaderT State monad 23:14:59 -!- Frooxius has quit (Ping timeout: 240 seconds). 23:15:03 -!- Frooxius_ has quit (Client Quit). 23:15:17 kallisti_: Describe it 23:16:40 -!- Frooxius has joined. 23:19:18 -!- oerjan has quit (Quit: Good night). 23:19:55 `run words --eng-all 20 | xargs -n1 | sed -e 's/$/gry/' | xargs 23:20:03 Aw, e left. 23:20:04 czekgry taceaegry maurnegry liltigry xitgry mortigry nyadovgry skadenberagry lientgry regalgry roumegry vesiniegry komugry froygry oreingry categry scionagemoigry naragry isonpoetgry irrotigry 23:20:33 fizzie: ha, nice. 23:21:23 "If you don't find the gry, you make the gry", is what I always say. 23:21:25 -!- sebbu2 has joined. 23:21:25 -!- sebbu2 has quit (Changing host). 23:21:25 -!- sebbu2 has joined. 23:22:19 -!- sebbu has quit (Ping timeout: 240 seconds). 23:23:20 categry theory 23:24:36 hi