00:00:17 you can make it a username-only ban rather than an IP ban, but sometimes people forget 00:00:18 Oh, I assumed you meant a username ban. 00:00:40 Well, presumably you won't be doing it more than once... 00:00:52 I'm banning myself from ais523 for Lent. 00:00:59 lent hasn't started yet 00:01:01 It isn't Lent yet. 00:01:09 It’s Lens. 00:01:27 pred Lent 00:01:28 Um, it's Lent where I live. 00:01:39 -!- sebbu has quit (Ping timeout: 272 seconds). 00:01:39 don't you live very near hexham? 00:01:41 Lens lens lent lena lenb 00:01:46 (hexham is very near hexham) 00:02:30 `? hexham 00:02:39 Hexham is a European town. There are nine people in Hexham, and at least two of them are in this channel. Taneb looks after the ham. 00:03:53 just heard in an advert on TV: "The Daily Mail says it really works" 00:03:58 is this a point in favour of the product, or against? 00:04:10 lens lentium 00:05:27 ais523: haha 00:05:39 sorry, *lentum 00:05:52 ais523: :-D 00:06:09 -!- Bike has joined. 00:06:15 ais523: is it a cancer cure 00:06:23 no, it's a skin product 00:06:27 um same thing? 00:06:35 cures ugly cancer 00:06:53 ais523: It is a point against the Daily Mail, I guess. 00:07:20 oh Lent isn't from latin at all 00:07:27 zzo38: there were enough of those already :) 00:07:36 "Shortened form of Lenten, from Old English lencten. Related to German Lenz (“springtime”), which is derived from a word related to long, because of the longer days." 00:11:04 -!- jdiez has joined. 00:16:21 -!- sebbu has joined. 00:16:21 -!- sebbu has quit (Changing host). 00:16:21 -!- sebbu has joined. 00:21:17 monqy: speaking of reddit have you seen http://www.reddit.com/r/EFLcomics/top/?sort=top&t=all 00:23:56 awesome 00:26:15 i've seen stuff in that vein before but i don't do reddit so i havent seen that sub reddit 00:27:12 good reddit is pretty bad 00:31:29 did Sgeo survive his coffee-trip? 00:36:07 what kind of editor puts a BOM on a UTF-8 file?? 00:39:30 :set bomb, :w 00:39:39 oh, notebad 00:39:52 i meant to type 'notepad' there but i'll let it stand 00:39:54 it's a bøm! 00:44:48 according to /lastlog Sgeo he has not spoken since 00:44:49 21:49:36 have you ever had caffeine before, sgeo 00:44:49 21:50:01 Yes 00:44:51 RIP 00:44:58 oerjan, what is a bøm? 00:45:32 oerjan, as opposed to a BOM 00:45:44 is it just a Norwegian BOM? 00:49:35 who can quess what this does before running it? http://ioccc.org/1987/korn.c 00:53:39 nortti: purely from the year and filename, a hello world? (I haven't actually clicked the link, nor ever run the program) 00:55:48 no 00:56:00 main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);} 00:56:06 oh, that one 00:56:29 I already know what it does, so I'll leave it to someone else 00:58:22 Vorpal: it's the kind of bøm which blows up things, i refer to the expertise of inspector clouseau on this matter 01:03:15 once you realize what unix is and how it works it becomes pretty to understand 01:04:52 did you accidentally a word there or not 01:05:25 it's a perfectly grammatical sentence as is 01:05:27 and I rather like it 01:05:49 (also, side effects of memes: "accidentally" has become a verb) 01:05:51 which is why i am unsure 01:06:15 verbing weirds language 01:06:26 oerjan, oh okay 01:07:38 (also, side effects of memes: "accidentally" has become a verb) <-- Does OED recognize it as such though? 01:07:53 who cares 01:08:00 fair enough 01:08:59 -!- Bike has quit (Quit: leaving). 01:17:05 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter). 01:17:21 -!- c00kiemon5ter has joined. 01:20:49 -!- Bike has joined. 01:30:19 nortti: heh, glorious, took me a while to get it 01:35:17 FireFly: I think I solved your Pokemon Card puzzle, but it seems to be win in three, not win in two. 01:36:36 -!- aloril has joined. 01:37:32 FireFly: Is it supposed to be like that? 01:38:22 Hm 01:38:33 No, but I might've missed something 01:38:38 What is your solution? 01:39:14 I didn't type it but I will and will send you the file. 01:39:34 All right 01:40:22 where is the puzzle? 01:41:14 coppro: Same where the others are. http://zzo38computer.org/textfile/miscellaneous/pokemon_card/puzzle.4 Also look at puzzle.3 if you haven't done yet. 01:43:11 -!- WeThePeople has quit (Quit: Leaving). 01:43:41 zzo38: what does 'rc' on the active pokemon mean? 01:44:10 coppro: It means recycle energy. FireFly failed to specify; in my puzzles I have made it more clear. 01:44:12 That's a recycle energy 01:44:18 Oh, oops. 01:44:52 * FireFly fixes it in his local copy 01:44:58 what does it do, again? 01:45:15 coppro: It is described in the Card Data. 01:48:53 -!- mig22 has joined. 01:49:44 FireFly: I concur with zzo38; the game cannot be won in two turns assuming optimal play by the opponent 01:49:56 FireFly: because the Charmander has insufficient energy 01:50:20 in fact, I do not know if it is winnable at all 01:51:02 -!- aloril has quit (Ping timeout: 276 seconds). 01:51:14 actually, yeah 01:51:41 I think it isn't solvable 01:52:03 Will this work? http://sprunge.us/OYeR 01:52:05 Note Charizard's Energy Burn, which allows you to turn the double colorless energy into providing 2x { M } (after it's been attached) 01:52:15 FireFly: no, it provides only one 01:52:22 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter). 01:52:23 pretty sure 01:52:28 although I'm not up on the Pokemon rules 01:52:38 -!- c00kiemon5ter has joined. 01:52:40 coppro: Does it? I thought it provided two, but even if it does I don't see how to win in two turns. 01:53:10 (It says "all energy" rather than "all energy cards", so I am assuming it is two.) 01:53:17 ah 01:53:19 hmm 01:53:26 -!- mig22 has quit (Ping timeout: 252 seconds). 01:53:37 FireFly: I could do it in two if the Gust of Wind were the one that swaps *your* pokemon 01:53:48 Do you mean SWITCH? 01:54:01 yeah 01:54:25 Oh, darn 01:54:26 The problem is Sticky Goo 01:54:36 You can't swap the Rattata out 01:55:08 Did you look at puzzle.3? 01:55:16 not yet 01:55:34 coppro: Do you need to activate Rattata? 01:55:56 zzo38: don't you need it to be active to use its power? 01:56:11 I think I screwed up when choosing pokemon for the opponent to have in play 01:56:12 trickery 01:56:19 No, powers could be used from the bench 01:56:23 oh ok 01:56:23 coppro: No. Unless it says it needs to be active, it does not have to be. 01:56:27 ok 01:56:50 there's still a reason, though. Rattata can survive an attack from the Dark Muk 01:57:10 so Gust of Wind isn't required 01:57:13 That is true; and I have seen that. 01:57:14 you still can't retreat though 01:57:34 Yeah, you're lacking one energy to be able to retreat, due to sticky goo 01:58:34 Does the solution I gave have any errors in it? 02:00:05 -!- DHeadshot has joined. 02:00:17 I can't spot any, at least 02:00:19 Hmm 02:00:43 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter). 02:00:54 Maybe we should just relabel it to be win-in-three instead 02:00:55 -!- c00kiemon5ter has joined. 02:01:01 -!- mig22 has joined. 02:01:38 OK. 02:03:08 What I generally do in my puzzles is to limit the number of cards in your draw pile instead. 02:03:37 That's also an approach I guess 02:04:01 Btw, have you finished PTCG GB2? 02:04:57 FireFly: Yes, I have won the game, however I have not beaten the computer 100 times, yet. 02:19:44 -!- Vorpal has quit (Ping timeout: 246 seconds). 02:34:26 -!- nys has quit (Read error: Connection reset by peer). 02:34:46 -!- nys has joined. 02:36:53 I was thinking, you can only encode balanced trees in terms of lists within lists, right? The type system wouldn't allow unbalanced ones 02:37:24 There are lots of ways of encoding balanced trees that don't involve lists. 02:37:34 Well, it depends on how broad your meaning of "list" is. 02:38:04 FreeFull: you can use an empty list at any level to stop there, that's what lambdabot's Tree does 02:38:09 :t Node 02:38:10 a -> Forest a -> Tree a 02:38:10 Actually, the list wouldn't store the values at the various nodes that have children 02:38:14 Just at the leaves 02:38:27 ah ok 02:38:58 You probably could store the values at nodes if you got tuples involved 02:39:33 FreeFull: note that even if all leaves have the same depth (as using a fixed nesting level of lists would do) that still says nothing about the _number_ of leaves in each branch 02:39:47 so it can still be grossly imbalanced in that way 02:40:03 If it only at the leaf then you have (Free []), I think 02:40:13 but there are many ways of encoding trees as a Haskell datatypes, some autobalancing, some not 02:40:21 *-a 02:40:22 Although that isn't balanced 02:40:28 oerjan: Oh yeah 02:40:30 I didn't think of that 02:40:57 How would you encode an autobalancing one? 02:41:01 hi zzo38 02:41:15 zzo38: what's the best comic strip (other than calvin and hobbes) 02:41:26 shachaf: I don't know 02:41:30 print [[3,4],[5]] 02:41:33 > print [[3,4],[5]] 02:41:34 No instance for (GHC.Show.Show (GHC.Types.IO ())) 02:41:35 arising from a use of ... 02:41:35 zzo38: IN YOUR OPINION 02:41:43 > [[3,4],[5]] 02:41:44 [[3,4],[5]] 02:41:50 Even in my opinion, I don't know. 02:42:01 halvin and cobbes 02:42:31 halvin' calvin 02:42:41 modern-day zeno? 02:43:38 FreeFull: well for example a full binary tree can be encoded as Tree a = Leaf a | Branch (Tree (a,a)) 02:44:09 Non-uniform data types: THE DEVIL? 02:44:24 Polymorphic recursion: THE DEVIL? 02:44:26 oerjan: Not necessarily balanced though 02:45:25 yes it is 02:45:42 it is a complete binary tree with exactly 2^n elements 02:45:54 Can you give an example usage? 02:46:06 How do you use the Branch constructor? 02:46:08 it's either Leaf a or Branch (Leaf (a,a)) or Branch (Branch (Leaf ((a,a),(a,a)))) or etc. 02:46:28 It encodes the log of the number of elements as a peano natural. 02:46:34 it's a bitmisleading to call it 'Branch' imo 02:46:50 because there is only one value under that Branch constructor 02:46:52 OKAY 02:47:12 i got a bit confused during writing that, but it ended up in the right form 02:47:13 kmc: It's foreshadowing branches yet to come. 02:47:14 FreeFull: it's an usual sort of type because it invokes itself recursively at a different type than it was 'called' with 02:47:33 Is (a,a) a tuple here? 02:47:39 Yes. 02:47:40 yes a pair 02:47:48 also, this is a full binary tree, but i believe you can modify the (,) parts to make it e.g. a red-black tree instead. 02:48:06 * shachaf thinks non-uniform data types are "pretty cool if i do say so myself" but also rather tricky to work with. 02:48:22 you should check out edwardk's finger trees talk: http://comonad.com/reader/2010/finger-trees/ 02:48:31 I saw those slides. 02:48:47 ah yes finger trees use such a trick as well 02:48:49 I went through the exercise. They were trickier than they seemed. 02:49:02 it has a type for ensuring that a 2-3 tree has the right properties 02:49:16 i don't recall if they're autobalanced by type though 02:49:29 Inferring polymorphic recursion is undecidable, too, I'm told. 02:49:51 I should learn about type checking and things. 02:49:59 All the ( and ) get confusing 02:50:36 FreeFull: A tree is of the form Leaf a or Leaf (a,a) or Leaf ((a,a),(a,a)) or so on. 02:50:52 Well, the bottom of the tree is. 02:50:56 The number of tuples is decided by the number of Branch constructors. 02:51:08 Have you seen FunList? 02:52:15 shachaf: well haskell doesn't even try inferring it 02:52:24 data Bazaar a b t = Buy t | Trade (Bazaar a b (b -> t)) a 02:52:35 oerjan: Sure. 02:53:16 shachaf: What sort of types would make sense for a, b and t here? 02:54:05 a and b could be the same type in the simple case. 02:54:16 So Int, Int, [Int]? 02:54:21 Char, Char, Text 02:54:29 i have a hunch that polymorphic recursion is the main thing preventing you from implementing haskell typeclasses entirely at compile time like i think C++ templates do 02:54:49 C++ templates just inline everything, yes 02:54:49 What does jhc do about polymorphic recursion? 02:56:43 * oerjan thinks he's seen this discussed about jhc before but doesn't remember how it went 02:56:53 i don't know much about jhc 02:57:16 i love polymorphic recursion 02:57:20 it is so easy 02:57:45 Speaking of completely unrelated things 02:57:57 I need to write a fromInteger for my balanced ternary 02:58:30 hm... 02:58:34 Or was it fromIntegral 02:58:40 * FreeFull checks 02:58:41 :t readInt 02:58:42 Num a => a -> (Char -> Bool) -> (Char -> Int) -> ReadS a 02:59:42 > readInt 3 (`elem` "-0+") (\c -> case c of '-' -> -1; '0' -> 0; '+' -> 1) "0-+0-" 02:59:43 [(-19,"")] 02:59:50 FreeFull: :) 03:00:18 fromInteger 03:00:25 oh right 03:00:38 hmph 03:00:45 :t fromInteger 03:00:46 Num a => Integer -> a 03:01:05 -!- TeruFSX has joined. 03:01:11 (fromInteger (3 :: Integer)) :: Double 03:01:15 > (fromInteger (3 :: Integer)) :: Double 03:01:16 3.0 03:01:22 that was the wrong way of course 03:02:07 and the function the other way cannot be told to produce -1,0,1 digits 03:02:19 (showIntAtBase btw) 03:02:34 HOWEVER 03:03:02 oerjan: Can you figure out a type which is isomorphic to lists *AND* composable with (.)? 03:03:46 shachaf: isn't that what difference lists are supposed to be? 03:03:59 No, the type [a] -> [a] is much bigger than the type [a] 03:04:01 I was planning to do it with `mod` and case matching, although that would be clunky 03:04:18 FreeFull: not _that_ clunky, surely? 03:04:21 oerjan: Feel free to substitute some other thing for lists, like monads. 03:04:22 `? isomorphic 03:04:25 isomorphic? ¯\(°_o)/¯ 03:04:29 * oerjan was about to start writing it himself 03:04:42 shachaf: no particular idea 03:04:47 oerjan: Slightly clunkier for balanced ternary than unbalanced ternary I think 03:04:57 FreeFull: yeah but hm i have an idea 03:05:10 everything is represented internally as a bunch of bits. ipsofacto, arbitrary functions are both isomorphic to lists and composable with dot. 03:07:31 Thike 03:08:40 oerjan: I wrote a function for adding two balanced ternary digits, and I have no idea if it could be terser or not 03:08:44 Let me dpaste it 03:10:00 > let toBT 0 = ""; toBT n = c : toBT d where (d,m) = divMod (n+1) 3; c = head (show (d-1)) in toBT (-19) 03:10:01 "----" 03:10:11 http://dpaste.org/8CpZt/ 03:10:15 oops 03:10:27 > let toBT 0 = ""; toBT n = c : toBT d where (d,m) = divMod (n+1) 3; c = head (show (m-1)) in toBT (-19) 03:10:28 "-01-" 03:10:35 helloerjan 03:10:40 welcome back to #esoteric 03:10:48 The first digit in the tuple is the result, the second is the carry 03:10:50 hi shachaf 03:11:46 FreeFull: the above does most of your fromInteger i think, you probably need reformatting 03:12:20 PrimFunc (PrimSi PrimSort) PrimSort 03:12:21 > let toBT 0 = ""; toBT n = c : toBT d where (d,m) = divMod (n+1) 3; c = head (show (m-1)) in toBT (-1) 03:12:23 "-" 03:12:28 I think I may be prefixing my identifiers with "Prim" a little too much. 03:12:36 > let toBT 0 = ""; toBT n = c : toBT d where (d,m) = divMod (n+1) 3; c = head (show (m-1)) in toBT (1) 03:12:38 "1" 03:14:12 Hmm, [] might be a saner representation of zero over [Zero] 03:15:36 well i thought it was easier to fix that with a reformatting step if you needed it 03:16:40 Although 03:16:55 With my show instance, [] would just end up as an empty string 03:17:28 Because I basically made a show instance for BTDigit and then used concatMap 03:17:50 Easy to fix though 03:18:08 -!- lightquake has left ("Textual IRC Client: www.textualapp.com"). 03:19:22 oerjan: Do you think my addBTDigit does something wrong? 03:22:24 i think it gives the correct result, as for style i think it depends on what you are going for - speed, readability, shortness? 03:22:53 oerjan: so what do you think about lenses 03:22:56 seems readable enough, anyway 03:23:39 shachaf: lenses are a must for any aspiring astronomer 03:24:05 Computer science is no more about lenses than astronomy is? 03:25:02 I have heard of someone who made their own telescope lenses at home, without any professional anything. Someone thought they bought them from elsewhere, even though they made it at home. 03:25:46 What if they bought them from elsewhere, and lied about it? 03:26:18 It is possible, but unlikely, because they showed how they made the lenses, and try it and it works. 03:26:55 FreeFull: btw if you use the hpaste.org pastebin it can give automatic haskell style hints 03:27:21 oerjan: Readability is nice 03:27:31 It's hard to go wrong on speed for something this simple, right? 03:27:38 (although you can also use hlint yourself) 03:29:14 FreeFull: depends whether you want adequate speed or bleeding speed. in the latter case i wouldn't be competent to advise, anyway :P 03:30:02 oerjan: It's not like I'm doing recursion or anything 03:30:22 The only place I see where there might be a speed reduction is the min/max 03:32:00 FreeFull: indeed i suspect it would be faster if you wrote it as a case branch directly on the function without the min / max 03:32:07 which would be longer of course 03:32:26 Well, conciseness and readibility is why I got the idea to use min/max =P 03:32:41 yep 03:33:25 I wonder if there is a function Ord a => (a,a) -> (a,a) which would always put the smaller a in the tuple first 03:33:32 -!- DHeadshot has quit (Read error: Connection reset by peer). 03:33:45 I don't think it's a common thing to do 03:33:49 -!- DHeadshot has joined. 03:34:09 FreeFull: you can do [x,y] = sort [a,b] 03:34:24 might be slower though, or not 03:34:54 oerjan: probably slower =P 03:35:27 also, if you use Control.Arrow you have min &&& max 03:35:36 :t min &&& max 03:35:36 Ord b => b -> (b -> b, b -> b) 03:35:41 oops 03:36:01 needs more spice 03:36:18 Hmm, I don't see sort in http://www.haskell.org/onlinereport/standard-prelude.html 03:36:19 :t curry min &&& curry max 03:36:20 (Ord b, Ord b2, Ord b1) => b -> (b1 -> (b, b1) -> (b, b1), b2 -> (b, b2) -> (b, b2)) 03:36:25 sorry, _less_ 03:36:31 :t uncurry min &&& uncurry max 03:36:32 Ord c' => (c', c') -> (c', c') 03:36:52 FreeFull: it's in Data.List 03:37:05 @hoogle sort 03:37:06 Data.List sort :: Ord a => [a] -> [a] 03:37:06 Data.List sortBy :: (a -> a -> Ordering) -> [a] -> [a] 03:37:06 Data.ByteString sort :: ByteString -> ByteString 03:37:12 > (uncurry min &&& uncurry max) (4,9) 03:37:13 (4,9) 03:37:18 > (uncurry min &&& uncurry max) (9,7) 03:37:20 (7,9) 03:37:35 Oh right 03:37:41 It's not in prelude 03:37:52 -!- aloril has joined. 03:40:37 sort = sortBy compare 03:40:51 sortBy is pretty large 03:40:52 -!- ChanServ has set channel mode: +o oerjan. 03:41:05 +oerjan 03:41:06 -!- oerjan has set channel mode: -b *!*@unaffiliated/phantom-hoover/x-3377486. 03:41:19 Phantom_Hoover was banned? 03:41:20 -!- oerjan has set channel mode: -b *!*sploknee@unaffiliated/phantom-hoover/x-3377486. 03:41:32 :t (&&&) 03:41:33 Arrow a => a b c -> a b c' -> a b (c, c') 03:41:35 yep 03:41:39 -!- oerjan has set channel mode: -o oerjan. 03:41:49 Oh, it's arrow stuff. No wonder I never saw it, haven't looked at arrows yet 03:42:02 @arrow 03:42:02 Swab the deck! 03:42:38 is an Arrow just a thing like -> 03:42:49 Yes(ish). 03:42:55 best answer 03:43:03 an arrow is something weird nobody likes 03:43:04 banswer 03:43:10 in particular, (->) is an Arrow instance 03:43:11 Bike: listen to monqy 03:43:23 and probably the most used one 03:43:24 monqy, i am prepared to receive thine wisdom. 03:43:30 monqy: ok now Bike is listening 03:43:32 say somethign wise 03:43:35 oerjan: what is another one 03:43:35 an arrow is something weird nobody likes 03:43:42 monqy: something else 03:43:45 hmmmmm 03:43:49 something about music? 03:43:51 i like music 03:44:42 i need more wise things to say i cant think of anything 03:45:22 oh, meta. that's deep 03:45:31 monqy: something about oerjan? 03:45:46 (->) is a lot of instances 03:45:46 like "oerjan's name starts with o. therefore all all things that end with o lead to oerjan" 03:45:49 oerjan is norwegian, or so they say 03:46:04 mønjanqy... or somethinig 03:46:49 :t (uncurry min &&& uncurry max) 03:46:50 Ord c' => (c', c') -> (c', c') 03:46:54 Oh yeah 03:47:01 :t (uncurry &&& uncurry) 03:47:02 (a -> b -> c) -> ((a, b) -> c, (a, b) -> c) 03:47:17 monqy: did you know i'm your "third biggest fan" 03:47:26 or maybe fourth 03:47:28 not sure 03:47:40 :t (\x y -> uncurry x &&& uncurry y) 03:47:41 (a -> b -> c) -> (a -> b -> c') -> (a, b) -> (c, c') 03:47:51 Bike: Monad m => Arrow (Kleisli m) 03:48:02 cool 03:48:25 newtype Kleisli m a b = Kleisli (a -> m b) iirc 03:48:26 So Arrow pretty much covers everything you could do? 03:48:43 oerjan: You know how (forall c. (b -> m c) -> a -> m c) is like Kleisli but composable with (.)? 03:48:51 Comonads obviously would be Arrow instances too 03:48:54 what 03:48:58 Er, wait. 03:49:08 Well, yes? 03:49:19 (Except the type is too big!!!!!!) 03:50:38 http://www.haskell.org/arrows/ I see haskell.org has a big arrow tutorial thing 03:50:48 FreeFull: Ignore arrows. 03:50:57 There's no point. 03:51:16 I hear they're something weird nobody likes. 03:51:29 what about all those libraries that use arrows!!! god knows why 03:51:37 "They serve much the same purpose as monads -- providing a common structure for libraries -- but are more general." hahaha 03:51:57 shachaf: er not really. 03:52:25 the point of arrows is stupid lambdabot 1liners 03:52:43 and maybe jokes??? 03:52:44 oerjan: Not really what? 03:52:50 monqy: i like jokes, tell me a joke 03:53:01 "arrows" 03:53:27 yeah i noticed it said artwork by cale. is this the cale of the infamously fabulous caleskell 03:53:54 Surely. 03:54:18 shachaf: not really know how. 03:54:37 oerjan: The same way (x ++) is like x, but composable with (.) 03:54:53 Could you make arbitrary C code into valid haskell by adding something at the top of the file? No adding anything at the bottom 03:54:55 O KAY 03:56:10 FreeFull: i don't think so, you need an end marker for both template quasiquotes and comments 03:56:31 FreeFull: or wait, _maybe_ you could have an extra preprocessing directive 03:57:03 i don't know if ghc supports doing that from top pragmas without parsing the rest, though 03:57:42 it would certainly not be _portable_ haskell, anyway. 03:58:06 A C string could just happen to contain, say, -} 03:58:22 So the comment solution wouldn't work for all C code 03:58:57 it wouldn't work for _any_ C code which doesn't end with -} followed by valid haskell :P 03:59:01 do you actually need this for something? 03:59:41 How about {-# OPTIONS_GHC -x c #-} 03:59:42 Or something. 04:02:16 x={-5}; int main() { printf("C!\n"); } /* -} 0; main = putStrLn "Haskell!" -- */ 04:02:17 -!- aloril has quit (Remote host closed the connection). 04:04:40 kmc: i don't think you can put that in front of arbitrary C 04:05:13 it wasn't directly an answer to FreeFull's question 04:05:30 just wanted to show off dat polyglot 04:05:45 I didn't know {-5} was legal there, though. 04:06:36 it's not 04:06:42 shachaf: -x c is static, so cannot be used in OPTIONS_GHC 04:06:52 oh, well then. 04:06:57 oerjan: Oh. 04:08:01 this is remedied, though, by using "int x [] =" which is valid in both languages 04:08:13 only dynamic ones 04:09:41 int x [] = {-5}; int main() { puts("Yeah, C!"); return 0; } /* x -- */ 04:10:11 Wait, no 04:10:15 int x [] = {-5}; int main() { puts("Yeah, C!"); return 0; } /* -} x -- */ 04:10:44 int x [] = x, perfect 04:11:16 > int 3 [] where int x [] = {-5}; int main() { puts("Yeah, C!"); return 0; } /* -} x -- */ 04:11:18 :1:10: parse error on input `where' 04:11:25 Stupid lambdabot 04:11:33 shachaf: -F might work 04:11:45 FreeFull: you know i don't think that's valid c precisely? 04:12:28 Bike: Well, not what I fed to lambdabot 04:13:30 anyway is there some way you can make the haskell parser hang on the first line? that would "work" 04:14:43 FreeFull: {-# OPTIONS_GHC -F -pgmF yourProcessingProgram #-} should work if you make yourPreprocessingProgram munge the file appropriately. 04:16:13 -!- aloril has joined. 04:17:10 -!- impomatic has quit (Quit: impomatic). 04:21:19 * oerjan files away http://hackage.haskell.org/packages/archive/acme-inator/0.1.0.0/doc/html/Acme-Inator.html for future use 04:21:54 oerjan: Have you seen acme-php? 04:22:00 nope 04:22:03 http://hackage.haskell.org/packages/archive/acme-php/0.0.1/doc/html/src/Prelude-PHP.html 04:26:12 shachaf: am i correct this could be done _much_ more concisely with lenses? 04:26:25 @quote shachaf lens 04:26:26 shachaf says: I'm not sure what your question is, but maybe lens is the answer. 04:26:53 -!- DHeadshot has quit (Read error: Connection reset by peer). 04:27:01 -!- DH____ has joined. 04:30:36 hmm, my nose is a flute 04:32:15 shachaf: i sense this library may have some unfortunate corner cases. 04:33:48 -!- nys has quit (Quit: quit). 04:35:34 might be fun trying to use the php prelude 04:37:40 oerjan: quite like its name sake 04:37:43 shachaf: i think the foldr and elem functions might be a bit off 04:38:29 Is elem wrong? 04:38:36 Oh, that's what you mean. 04:38:44 Yes, I remember wondering about that. 04:38:48 I guess it's just another gotcha. 04:39:35 -!- DH____ has quit (Read error: Connection reset by peer). 04:40:05 -!- DHeadshot has joined. 04:43:57 Can we make a probabilistic Pokemon card puzzle where your chance to win is not 100% but you have to maximize it? 04:47:01 zzo38: perhaps if you knew the opponent's deck, but not the order of cards in it 04:47:14 or if the opponent's deck didn't matter, and you knew your deck, but not the order of cards in it 04:47:34 (if you have a good memory, you always know your deck, and if you haven't used cards that manipulate deck order, you don't know the order) 04:47:55 ais523: Yes, those are some, but then there are also coin tossing 04:49:06 Maybe on can be made somehow involving Imakuni?'s card. 04:51:00 `? finland 04:51:01 Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus. 04:51:11 `? america 04:51:13 america? ¯\(°_o)/¯ 04:51:21 oerjan: how come america doesn't have a wisdom entry 04:55:14 `echo "This wisdom entry had to be removed due to a DMCA takedown notice." >wisdom/america 04:55:15 ​"This wisdom entry had to be removed due to a DMCA takedown notice." >wisdom/america 04:55:17 `run echo "This wisdom entry had to be removed due to a DMCA takedown notice." >wisdom/america 04:55:20 No output. 04:55:25 BETTER NOW? 04:55:53 `? united states 04:55:54 united states? ¯\(°_o)/¯ 04:56:57 `run echo "See America." | tee wisdom/usa >wisdom/'united states' 04:57:01 No output. 04:57:11 `? the us 04:57:13 the us? ¯\(°_o)/¯ 04:57:44 `run echo "The US is the country opposed to the THEM." >wisdom/'the us' 04:57:47 No output. 04:58:04 `? the them 04:58:06 the them? ¯\(°_o)/¯ 04:59:08 an endless chain of cia world factbook lite 04:59:09 -!- DHeadshot has quit (Read error: Connection reset by peer). 04:59:27 -!- DHeadshot has joined. 04:59:27 -!- aloril has quit (Ping timeout: 260 seconds). 04:59:38 `run echo "Information on the THEM has been removed for national security reasons." >wisdom/'the them' 04:59:41 No output. 05:00:57 `? north america 05:00:58 north america? ¯\(°_o)/¯ 05:01:00 huh, do we add wisdom via creating the files directly? 05:01:05 I thought there was a command 05:01:12 learn? 05:01:19 ais523: The command can only create entries of a certain form. 05:01:31 ah right 05:01:41 Of course, we *could* just make another command. 05:01:45 But that would be too easy? 05:02:30 it wouldn't be much easier than `run echo 05:05:38 I have thought once, I wanted to make up a Pokemon card puzzle involving the Imakuni?'s cards, but I don't know how. 05:05:38 -!- DHeadshot has quit (Read error: Connection reset by peer). 05:06:38 `run >'hello there' echo helloerjan 05:06:41 No output. 05:06:47 `cat hello there 05:06:49 helloerjan 05:06:57 `rm hello there 05:07:00 No output. 05:07:10 oh good grief 05:07:26 Oh Nø 05:07:28 Er. 05:07:32 Oh Nø 05:07:45 "What is the single mechanism or dual mechanisms that allows a conduncting filament to grow in the vertical direction immediately after breakdown and then at a later time and with the reapplication of a higher current to undergo radial growth to a lower resistance state?" 05:07:53 identify the object, subject, and verb 05:09:13 the verb is 'identify', the subject is (implied) us, the objects are the object, subject and verb 05:10:05 what 05:10:10 that's not even... what 05:10:32 happy to help! 05:17:10 * oerjan gives olsner a gold star for being helpful * 05:18:39 coppro: the verb is "is", which means there wouldn't be an object, and "What" is probably the subject. hth. 05:18:41 coppro: the single mechanism..., what, is 05:18:57 oerjan is correct 05:19:17 i don't remember the name in english of what goes on the other side of "is". 05:19:21 subject predicate 05:19:54 i thought predicate included the verb 05:22:42 sorry, subject predicat*ive* 05:22:55 * coppro grumbles about the choice of language by linguists 05:23:40 you just be happy they didn't choose chinese! 05:24:02 chinese physics terms rock, though 05:24:58 `? denmark 05:25:00 denmark? ¯\(°_o)/¯ 05:25:09 ............ 05:25:27 `? maldives 05:25:29 maldives? ¯\(°_o)/¯ 05:25:35 i shall leave that to the danish esotericians present. 05:25:48 there are no danes 05:25:53 (are there?) 05:26:03 well they lucked out, then 05:26:36 Why did it surprise me that Yogi Berra is still alive? 05:27:12 hi sgeo 05:27:17 hi 05:27:21 how was the caffeine 05:27:29 frankly i'm surprised that you're alive, after that trip of yours 05:27:35 I think in the future it would be a bad idea to drink that much coffee 05:27:57 maybe you'll get used to it 05:28:32 Maybe it's terrifying that, even many hours later, my heart went from a normal rhythm to rapid beats for a few seconds 05:28:54 no more than six cups a day for you, young man! 05:30:16 maybe you have a heart condition such that you should not consume caffeine 05:30:58 maybe he does't 05:31:00 *doesn't 05:32:02 does anyone have source for a markov chain bot handy? 05:32:08 we really need to have one trained on this channel 05:32:24 ^source 05:32:24 http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 05:32:27 HTH 05:32:53 -!- ogrom has joined. 05:32:55 `? burma 05:32:56 burma? ¯\(°_o)/¯ 05:33:04 `run echo "ask Bike" >wisdom/burma 05:33:08 No output. 05:33:27 -!- ogrom has quit (Client Quit). 05:33:48 Sgeo: http://www.sheldoncomics.com/archive/121224.html 05:34:37 Bike: tell me all there is to know about burma 05:34:55 Sgeo: https://www.youtube.com/watch?v=dZ2q9NmYf6g 05:35:30 elliott: There are whole fucking shittons of people there, almost as many mountains, and also some dictatorships. 05:36:03 Bike: have you ever been to burma 05:36:09 Sgeo: be sure to read to the end hth 05:36:37 monqy: yes i love lasanga cat.... 05:36:39 No, but one time I was at a place where some other people had once been to burma, and then had been to that place. 05:36:43 monqy: Good, good. 05:36:51 i love lasagna cat too 05:37:01 also i hear they are good at shaving 05:38:14 monqy: what about infinite solutions 05:38:35 I should probably eat food 05:40:03 ive never heard of infinite solutions before, but how about wonderfulstories aka thejunkwizards 05:40:32 oh maybe ive seen this before 05:40:37 infinite solutions is by the same people as lasanga cat 05:40:43 monqy: what do you know about "equirecursive types" 05:40:50 shachaf: i know the stuff 05:40:54 oh boy 05:40:57 the stuff 05:40:59 that's the stuff 05:41:07 can you tell me a bit about them 05:41:15 `list 05:41:16 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/list: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/list: cannot execute: Permission denied 05:41:23 `cat bin/list 05:41:24 echo Taneb atriq Ngevd Fiora nortti elliot 05:41:44 shachaf: whats to know about them 05:41:52 elliott: this infinite solutions thing is good 05:42:04 it is 05:42:16 monqy: well if i knew i wouldn't ask right 05:42:27 it looks like they deleted some of the videos :( 05:42:38 trickster mode + ikeda -> something pretty weird 05:43:23 `run ls -l bin/list 05:43:24 ​-rw-r--r-- 1 5000 5000 43 Jan 12 20:33 bin/list 05:45:06 shachaf: like their definition or something specific about them or 05:45:10 Look at his shirt 05:45:18 monqy: well i think i know the definition "more or less" 05:45:26 but like what happens when you allow them 05:45:33 is it "bad because too many things type check?" 05:46:33 Is there a three-dimensional Fourier transform? 05:47:31 there should be 05:47:51 http://en.wikipedia.org/wiki/Fourier_transform#Fourier_transform_on_Euclidean_space that was easy. 05:47:52 zzo38: you can apply a fourier transform to functions on R^3, if that is what you mean. any locally compact group works. 05:48:14 Actually I mean a discrete Fourier transform. 05:48:19 Z (giving series) and R are just the most common examples. 05:48:27 `cat bin/list 05:48:28 echo Taneb atriq Ngevd Fiora nortti elliot 05:48:31 (Sound added) 05:48:32 zzo38: well Z^3 would also work 05:48:44 oerjan: OK. 05:49:02 is Z^3 compact? 05:49:11 no, it's discrete 05:49:19 right 05:49:28 any discrete _or_ compact group is locally compact 05:49:33 Oh. 05:49:49 T = unit circle is a compact example, whose dual group is Z 05:49:51 Sgeo: are you really going to cat out that program instead of making it work 05:50:03 `run chmod a+x bin/list 05:50:04 shachaf: there's also the thing where typechecking/inference/error-reporting gets a bit dumb 05:50:06 No output. 05:50:21 oh hum it's T which gives series, which are of course just functions on Z. 05:50:28 Fourier transform is sometimes used on sounds and on pictures, so I thought, would it work on videos (with two spatial dimensions and one temporal dimension)? 05:50:31 starting with functions on Z gives you functions on T instead. 05:51:10 zzo38: do you know about jpeg compression? 05:51:18 Bike: I know a few things about it. 05:51:53 well, maybe asking about video compression would be better. i bet they use a lot of the same fouriery techniques. 05:52:25 zzo38: computer tomography is essentially using fourier transforms in 3 _space_ dimensions, do convert rays captured through your body into a 3-dimensional model of the inside 05:53:13 OK 05:55:49 *to 06:29:56 http://mspabooru.com/index.php?page=post&s=view&id=83857 (arguably homestuck spoilers) 06:30:28 Sgeo: it's the sort of spoiler that if you didn't say it was a spoiler, no one would know 06:36:08 hi 06:38:11 `addquote hi 06:38:20 `quote hi 06:38:23 6) His body should be given to science. He's alive :P Even so. \ 9) Lil`Cube: you had cavity searches? not yet trying to thou, just so I can check it off on my list of things to expirence \ 14) Finally I ha 06:38:30 `quote .*\bhi\b 06:38:32 733) Sgeo: I used to have strict requirements for when I said hi but then everyone started saying hi and it all got weird \ 757) hack and back? works on anything much slower than you at the cost of: guilt, hating yourself, me sending you the message "hi" am I also forbidden to cast mephitic cloud and cb 06:39:46 `quote \bhi\b 06:39:48 152) comex: what? *vorpal comex: hi, tab-complete completed c to comex instead of Vorpal, dunno why \ 209) [on Walter Bright] I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!" \ 733) Sgeo: I used to have strict requirements 06:40:09 monqy = Walter Bright????? 06:40:50 no 06:43:02 monqy = just bright in general??? 06:43:26 a mystery 07:19:20 -!- oerjan has quit (Quit: leaving). 07:21:15 -!- zzo38 has quit (Remote host closed the connection). 07:50:11 -!- Bike has quit (Quit: t hurts). 08:14:09 -!- ogrom has joined. 08:19:07 Oh it is so sparkly, https://dl.dropbox.com/u/113389132/Misc/20130112-icicles2.jpg 08:19:57 -!- epicmonkey has joined. 08:20:06 (Taken yesterday, it's decidedly less sparkly today.) 08:20:38 `quote 757 08:20:45 757) hack and back? works on anything much slower than you at the cost of: guilt, hating yourself, me sending you the message "hi" am I also forbidden to cast mephitic cloud and cblink i will also send you "hi" if you: kite excessively, use mephitic cloud, -yes 08:20:55 (Or arguably it's as sparkly but less sunny.) 08:21:31 I don't understand the 757. 08:21:41 it's not a very good quote 08:21:49 fizzie: it's a reference to Crawl, the computer game 08:22:12 this also explains the meme of me getting annoyed when elliott says "hi" to me, because I'm intentionally misinterpreting it as a monqy-style hi 08:22:12 Oh, that explains why it didn't make sense. 08:22:21 basically if he says hi to you unsolicited, he disapproves of what you're doing 08:22:30 I know mephitic cloud, but what’s kiting? 08:22:37 either that or he's trying to start a conversation 08:22:51 ion: general battle tactic (mostly used in computer games, but can also work in real life) where you both outrange and outrun someone 08:23:03 it involves repeatedly firing at them and then running away 08:23:03 Ok, thanks 08:23:36 ais523: Have you tried it out in real life? 08:24:06 fizzie: no; I'm not that fast a runner, and don't own effective ranged weapons, and tend not to get into fights, and am unwilling to kill people 08:24:17 so opportunities have been limited 08:25:05 I suppose there's the conversational version where you shout insults and then run away. 08:25:06 I guess the real life equivalent of pillar dancing would be that, but running round and round in circles around a gun store, and every time you reach the entrance you stop to buy more ammo 08:25:29 fizzie: that's not quite the same because it relies on reaction time, rather than limited range, to avoid getting shot back at 08:26:09 It could be a range thing if you can shout (much) louder. 08:27:35 Though I suppose generally the insultee would not maybe start to chase you. (Perhaps depending on the insult.) 08:27:48 -!- Taneb has joined. 08:30:16 i approve of this conversation 08:32:22 Complaint of the day: this client does not support an encoding fallback, so on one channel where half the people use ISO-8859-1 and half UTF-8 it's either full of mojibake or Unicode replacement characters. (And the encoding setting is per-connection, not per-channel.) 08:32:36 I feel like a wreck 08:32:50 I think I'm going to lay off the caffeine for a while 08:33:04 -!- aloril has joined. 08:34:13 * Sgeo can't figure out how to upgrade this obsolete Linux distro 08:34:28 And I really want to run modern LyX but because of this I can't 08:34:41 woops!! 08:34:53 Which one is it? 08:35:44 i still use a two year old lyx 08:35:52 what's so much better about today's 08:36:03 modern or something 08:36:33 10.10 08:36:39 ha 08:36:49 So the next Ubuntu in my upgrade path is also End of Life 08:36:53 There was quite a large improvement in LyX between some versions a few years back. 08:37:03 i'm using 10.04 :P 08:37:56 wait how can they not upgrade you all the way? 08:38:38 sgeo: Just reinstall, it’ll be faster. 08:39:00 Hmm, there's some sort of old releases thing 08:40:23 I'd probably also just reinstall. But I'm sure it can be done. Somehow. 08:40:53 There's an old-releases thingy 08:41:17 reinstalling would be a bitch and a half for me, but i know i'll have to do it eventually ;_; 08:41:18 You can upgrade using an unsupported update path (i.e. skip over releases in the supported path) manually, but you get to keep the parts when it breaks. :-P 08:41:52 But can the upgrade manager use the old-releases thingy? 08:41:54 deb http://old-releases.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse 08:42:13 -!- aloril has quit (Ping timeout: 245 seconds). 08:45:25 When Ubuntu on PowerPC went from Canonical-supported to community-supported, and consequently was left out of most mirrors, all updates got real slow. 08:45:54 -!- aloril has joined. 08:46:27 Maybe at least I can get new LyX on here, even if the 11.04 idea isn't working out 08:52:36 You can always just compile one from the official sources. 08:53:22 I have a vague feeling I did that when our workstations at work were stuck with a really old Ubuntu. 08:57:27 -!- aloril has quit (Ping timeout: 260 seconds). 08:59:49 LyX works 09:00:51 -!- aloril has joined. 09:18:53 -!- Nisstyre-laptop has quit (Quit: Leaving). 09:26:26 -!- AnotherTest has joined. 09:26:32 Hello 09:30:24 OH NO! 09:31:01 (No reason.) 09:40:17 -!- DHeadshot has joined. 09:48:03 fizzie: RIP. 09:49:34 Rip and tear. 09:50:18 I can't stop typing stupid stuff just because I like this swipe action so much. 09:50:51 It draws this decaying track kind of thing when I do. 09:52:12 (My first time using a swipeable touchscreen keyboard. If you couldn't tell.) 09:55:30 -!- sebbu has quit (Read error: Connection reset by peer). 09:55:57 -!- sebbu has joined. 10:23:38 -!- Vorpal has joined. 10:24:15 Is there a file system that works well on windows and linux that supports files larger than 4 GB? 10:24:37 last I looked exFAT was a mess on linux, and I presume NTFS is not rock solid still? 10:32:51 -!- Fiora has joined. 10:57:13 I was under the impression that NTFS works reasonably these days. 10:57:54 NTFS has a different featureset from, say, ext4 10:58:03 With ntfs3g. Or something. It's worked well enough for me, though I haven't used it much. 10:58:11 but I haven't had problems reading from and writing to an NTFS partition just with this Ubuntu default install 10:58:27 (and holding large files is the purpose I use that partition for, as well as holding an install of Windows just in case) 11:09:44 -!- sirdancealot has joined. 11:16:05 The NTFS partition where the Windows is installed on the laptop is what I use for transferring data too on the dual-boot laptop, also with a standard Ubuntu install. (Which I believe does use ntfs3g.) 11:16:31 Or ntfsprogs was combined with it. Or something. 11:17:02 I don't know, It Just Works. 11:19:49 hm 11:20:43 okay 11:20:54 might be worth trying then 11:21:10 Just don't blame me when it eats your data. 11:21:23 or not :P 11:21:43 fizzie, I need something to use on an external HDD for backup that will be used from both windows and linux 11:22:16 Haven't heard of any data-loss bugs with it or anything, it was just a standard disclaimer. 11:22:23 true 11:34:26 -!- monqy has quit (Quit: hello). 11:43:49 -!- sploknee has joined. 12:09:59 -!- epicmonkey has quit (Ping timeout: 272 seconds). 12:58:08 -!- carado has joined. 13:33:07 -!- sploknee has changed nick to Phantom_Hoover. 13:33:32 -!- Phantom_Hoover has quit (Changing host). 13:33:33 -!- Phantom_Hoover has joined. 14:19:55 A modest proposal: since "const int foo = 100;" doesn't make a constant integer expression in C, and macros are evil, let's start using "const char foo[100]; ...(sizeof foo)..." for compile-time constants from now on. (Insert here an argument against enums.) 14:23:37 fizzie: nobody can argue a cause like you do 14:24:22 I don't understand C 14:24:51 Is it right that in 2013 we still need to tell computers exactly how to do something? 14:29:02 Doesn't Haskell solve that issue? 14:30:46 Or Prolog, where you just specify goals. That sounds nice! 14:31:16 Computer, make me a sandwich 14:32:06 fizzie: Unfortunately Prolog doesn't work for those who have yet to find meaning in life. 14:34:08 What I learned on the Prolog course is that it's a good language if you need a thing that can say "No" a lot. 14:34:53 `addquote What I learned on the Prolog course is that it's a good language if you need a thing that can say "No" a lot. 14:35:01 913) What I learned on the Prolog course is that it's a good language if you need a thing that can say "No" a lot. 14:35:53 > repeat "no" 14:35:54 ["no","no","no","no","no","no","no","no","no","no","no","no","no","no","no"... 14:36:09 @faq Can Haskell say "No" a lot? 14:36:10 The answer is: Yes! Haskell can do that. 14:36:21 but what if you occasionally want it to say yes 14:36:45 > cycle (replicate 30 "No" ++ ["Yes"]) 14:36:47 ["No","No","No","No","No","No","No","No","No","No","No","No","No","No","No"... 14:37:07 > take 10 $ filter (== "Yes") $ cycle (replicate 30 "No" ++ ["Yes"]) 14:37:09 ["Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes"] 14:38:28 What are you trying to do 14:38:42 Who knows 14:38:59 Who "no"'s indeed 14:39:59 One of my friends is entering a competition where the prize is "you go to space. And probably come back" 14:40:34 Anyone feel like voting for him? 14:41:01 Can you get your money back if you don't come back? 14:41:09 Yes! 14:41:14 Also free deoderant! 14:41:29 I suppose he's not paying though. If it's a prize. 14:41:36 https://www.lynxapollo.com/en_GB/48041/jonnie-barnes 14:42:31 -!- ais523 has quit. 14:49:04 -!- ogrom has quit (Quit: Left). 15:02:28 -!- epicmonkey has joined. 15:07:46 "We call on our local, state and federal governments to uphold our First Amendment right to free speech by vigorously enforcing all laws against obscenity." 15:10:56 -!- DHeadshot has quit (Read error: Connection reset by peer). 15:10:59 -!- augur has quit (Remote host closed the connection). 15:11:25 -!- DHeadshot has joined. 15:13:57 -!- DHeadshot has quit (Read error: Connection reset by peer). 15:14:25 -!- DHeadshot has joined. 15:35:20 * Sgeo wonders if he should try writing his resume in LaTeX rather than using LyX 15:35:40 You’re writing it in LaTeX when you’re using LyX. 15:36:17 Don’t forget about Markdown with some LaTeX additions, converted to LaTeX with pandoc. 15:38:10 "In LaTeX, you have to set up each of the margins manually, which can seem tedious at first. " 15:38:13 o.O 15:46:16 -!- DHeadshot has quit (Read error: Connection reset by peer). 16:16:27 The sketch where they're debating how cheese is made made me realize I know nothing about cheese 16:20:12 which sketch is that? 16:25:22 It's in season 2 episode 3 16:25:30 OK 16:37:12 Things that make translating C code into Haskell #3: global variables 16:38:05 they sure do make it #3 17:19:29 uh usually you use default margins or \usepackage{fullpage} 17:20:06 kmc, ah, ok 17:20:49 ion: Have you seriously started to use proper ’s? 17:21:06 fizzie: A number of years ago, yes. 17:21:17 I have so not noticed that. 17:24:14 Is it right that in 2013 we still need to tell computers exactly how to do something? 17:24:18 no but fortunately it's not the case 17:24:35 there are a lot of extremely popular high level languages 17:25:11 you can find lots of people who are productively employed as programmers, and have no clue how things work below the layer of Ruby or even Drupal 17:25:21 we may make fun of them, but this is basically a sign of progress 17:25:43 * Sgeo now worries that he might be one of those people 17:26:00 I have some idea of ... how things operate on a C level I ... guess 17:26:05 programming as lifestyle v. programming as tool 17:26:10 Is C level even really a thing 17:26:10 C is used a) for things that need that level of control, b) by people who don't know better, c) by people who think it proves they have the biggest hacker penis 17:26:12 both problematic :( 17:26:25 Sgeo: yes 17:26:50 and C is not telling "exactly how to do something" either 17:27:11 C compilers perform all kinds of transformations, and then the CPU performs more on the fly 17:27:12 the main problem with C is that it impedes the progress that can be made even at the levels for which C is used 17:27:22 should ban its use or something 17:27:25 yeah 17:27:40 it certainly should be possible to make a better systems programming language than C 17:28:01 but it's hard to make one which is better by a large enough fraction to beat out the current lingua franca 17:28:12 programming languages almost never succeed or fail on their technical merits 17:28:17 There are several projects working on that, aren't there? 17:28:34 it was a fairly depressing realisation for me that reading about Multics' design made me think it was a billion times better than Unix and that it was terrible that it was abandoned 17:28:51 it means I really am doomed to vapourware Right Thing second-system syndrome 17:29:24 What are the highlights of its design? 17:29:49 ion: well if you think of all the misfeatures unix has saddled us with then it basically just didn't do those 17:30:08 single-level store rather than a separate limited filesystem for one 17:30:15 I remember reading a thing saying that one of the reasons why a lot of the C replacements haven't caught on is that many don't have easy linking with existing C code 17:30:36 ABI-wise and so on 17:30:43 yeah 17:30:48 I think Rust is explicitly trying to be compatible like that 17:31:18 I might have picked Rust for an embedded-ish project, but it doesn’t support Arm yet. :-( 17:31:19 C++ has taken off at least! if you need a C replacement with all the mistakes carefully left intact and some new ones added on 17:31:41 p.s. also not actually suitable for the exact same purposes as C 17:33:33 I tried to look for the current state of the art for thread IPC in C++ and gave up. 17:36:07 Someone wrote an OS in haskell 17:36:10 Not a very good OS 17:44:05 what makes a good OS? 17:45:39 -!- Nisstyre-laptop has joined. 17:53:02 Steve 18:06:04 And how much Steve does an OS need? 18:21:03 fizzie, one cubic meter of it 18:21:32 copumpkin: the only way to create a good OS is to let elliott make it 18:26:01 Sometimes I wonder what W|A profiling will say of me. (Context: just queried for "volume of human body".) ((It's only 0.066 cubic metres.)) 18:26:45 apparently human bodies are very close to the density of water 18:26:48 which I guess makes sense 18:27:26 What codensity? I heard codensity was "cooler than density". 18:27:31 You need 15 bodies to make up a cubic metre of Steve, if people are what you're using. 18:27:43 I'm not sure why they have those names, though. Something from topology? 18:28:13 1 cubic meter is apparently 22 fioras 18:28:54 Fiora: Did you do a quick water displacement experiment to figure out your volume? 18:29:19 http://www.aqua-calc.com/calculate/weight-to-volume I used this thing 18:29:48 ... water displacement experiment ... 18:29:55 Human body as 0.98 the density of water 18:29:58 The bath tub thing. 18:30:05 yeah, I know 18:30:07 I don't think my bath is big enough to fully submerge me 18:30:36 the emergency drain wouldn't let it get that deep I think 18:30:51 this is silly 18:31:12 You just need to liquify yourself first. Except then you could measure the volume much more easily. 18:31:24 but wouldn't that change the volume? 18:32:05 I suppose that depends on how you do it. I guess the empty spaces would at least get lost. 18:32:14 phase changes change volumes though, right? 18:32:40 No, why would they do that? 18:32:48 Oh wait 18:32:53 I mean, ice is less dense than water, right? 18:32:56 You are talking about materials, not sound 18:32:59 as an example 18:33:10 pffff 18:33:23 Yeah, in general phase changes change pressure/density/volume 18:33:27 Especially liquid/gas 18:35:29 The W|A volume estimate was "as measured by water displacement; data based on sample of 521 people, age range 17-51 years". 18:36:03 -!- Bike has joined. 18:36:30 There's also the useful "corresponding quantities" box, which lets you know you can make a cube 40 cm across out of a person. 18:54:27 Ugh, watching Enterprise. Why. 18:54:34 "Your vessel is under quarantine. Prepare to be boarded." 18:54:44 Yeah, because that's what quarantine means. Fucking idiot. 18:55:06 maybe the speaker wants to try out being quarantine! you know, just for shiggles 18:55:14 being in* 19:02:40 I should resume watching DS9 19:02:45 And eat some food 19:02:51 And keep doing LinkedIn stuff 19:03:24 This one professor who I know would give me recommendations isn't on LinkedIn 19:04:26 is linkedin the one that spams you constantly 19:06:09 A lot of spammers pretend to be LinkedIn I think 19:06:51 As far as LinkedIn itself being spammy... I never seem to bother unsubscribing from stuff, so I just ignore all the newsletters I'm subscribed to from various sources 19:06:55 I have 5,696 unread emails 19:08:20 so... the answer is yes? 19:09:27 -!- fungot has quit (*.net *.split). 19:09:28 -!- lambdabot has quit (*.net *.split). 19:17:25 I've heard SkillPages (which is kind of like LinkedIn except you're supposed to have some sort of a skill, presumably as opposed to having some sort of a profession) is spammy in the "asks you for address book permissions, spams invites to all your contacts" kind of way. 19:19:28 Bike, I'm sure I could unsubscribe from the LinkedIn emails if I wanted 19:20:43 -!- impomatic has joined. 19:24:18 Hmm 19:24:31 I like how AdBlock Plus is trying to have an agreement with advertisers to allow "acceptable" adds 19:24:34 *ads 19:25:10 trying to have an agreement = getting a lot of money? 19:25:36 As in, "if the ads meet certain requirements, they will be let through" 19:26:32 what requirements? 19:26:40 $$$ 19:26:58 https://adblockplus.org/en/acceptable-ads#criteria 19:27:38 I don't block ads 19:29:13 I think it's a good idea to effectively encourage advertisers to use non-obtrusive ads 19:29:41 If by default static, non-obtrusive ads are let through, if a majority of people are using this filter, those will be the only effective ads 19:29:51 Contrast if all ads are blocked, then, there's a problem 19:32:45 I hate auto playing audio ads and pop-over ads, but apart from those I'm not too bothered. 19:33:34 I also hate ads disguised as content... e.g. paid blog posts. 19:45:49 -!- sebbu has quit (Ping timeout: 264 seconds). 19:52:46 -!- sebbu has joined. 19:52:46 -!- sebbu has quit (Changing host). 19:52:46 -!- sebbu has joined. 20:04:59 -!- sebbu has quit (Ping timeout: 272 seconds). 20:11:17 -!- zzo38 has joined. 20:12:22 -!- sebbu has joined. 20:12:22 -!- sebbu has quit (Changing host). 20:12:22 -!- sebbu has joined. 20:17:00 -!- sebbu has quit (Ping timeout: 272 seconds). 20:21:06 -!- copumpkin has quit (Ping timeout: 264 seconds). 20:21:25 -!- AnotherTest has quit (Quit: Leaving.). 20:21:37 -!- copumpkin has joined. 20:27:01 -!- copumpkin has quit (Ping timeout: 248 seconds). 20:27:38 -!- copumpkin has joined. 20:29:23 -!- sebbu has joined. 20:35:17 O....k.... 20:35:25 I need to learn to bite my tongue sometimes 20:36:52 impomatic: I can't say I've ever read a blog which had something like that 20:41:43 -!- epicmonkey has quit (Ping timeout: 272 seconds). 20:46:31 -!- azaq23 has joined. 20:46:40 -!- azaq23 has quit (Max SendQ exceeded). 20:59:41 -!- oerjan has joined. 21:01:26 -!- trout has quit (Quit: I found 1 in /dev/zero). 21:03:48 -!- sebbu has quit (Ping timeout: 264 seconds). 21:06:44 -!- TeruFSX has quit (Ping timeout: 246 seconds). 21:07:10 -!- asiekierka has quit (Excess Flood). 21:08:28 -!- sebbu has joined. 21:08:28 -!- sebbu has quit (Changing host). 21:08:28 -!- sebbu has joined. 21:09:30 -!- Vorpal has quit (Ping timeout: 276 seconds). 21:11:06 -!- asiekierka has joined. 21:11:50 Sgeo: biting your tongue will only hurt you 21:30:09 FreeFull: I've come across a few... It's usually pretty obvious that it's a paid post. 21:30:22 impomatic: What sort of blogs? 21:31:41 like people pretending to be unrelated to some company but have a blog that all it talks about is how awesome that company's products are 21:31:43 I guess 21:32:13 impomatic: While I'm sitting here drinking my delicious Coca-Cola zero®, I'd just like to point out I think the paid post problem is greatly overrated. 21:32:39 I've seen a few on photography blogs. Several posts about photography, then a random one about "dentists in cleveland" or something. 21:34:21 -!- lambdabot has joined. 21:34:39 Lol 21:40:51 -!- sebbu2 has joined. 21:41:09 -!- sebbu2 has quit (Changing host). 21:41:09 -!- sebbu2 has joined. 21:41:23 -!- sebbu has quit (Ping timeout: 245 seconds). 21:41:35 -!- sebbu2 has changed nick to sebbu. 21:41:36 well the best ad one could have is make his company a meme, these days 21:44:29 Why am I looking at Smalltalk again 21:45:10 Sgeo: Because it's the OO language? 21:45:42 No I don't really care for OO, and especially not single-dispatch class-based OO 21:45:48 I just really like the IDE I think 21:52:47 http://www.reddit.com/r/haskell/comments/16iakr/what_happens_when_a_monad_violates_monadic_laws/ should have an answer in terms of burritos 21:52:55 or not 21:56:27 -!- Taneb has quit (Ping timeout: 272 seconds). 21:58:26 -!- TeruFSX has joined. 21:59:33 -!- Arc_Koen has joined. 22:00:30 `list 22:00:34 Taneb atriq Ngevd Fiora nortti elliot 22:00:35 ... 22:01:27 ,,, 22:01:37 ''' 22:02:20 I AM NOT A LIAR 22:02:22 http://www.mspaintadventures.com/trickster.php?s=6&p=007623 22:03:19 I liar is not believed even though he tell the truth. 22:13:29 It's just started snowing! :-) 22:14:46 yay 22:15:02 hmmmmmmm hello 22:18:08 -!- Arc_Koen has quit (Quit: Arc_Koen). 22:18:38 -!- monqy has joined. 22:19:11 What codensity? I heard codensity was "cooler than density". <-- on the flip side, density is oler. 22:19:20 "How do I use the GNU Smalltalk REP-loop?" 22:19:30 I think that is the first time I have ever seen the phrase "REP-loop" 22:19:38 read-epl 22:19:50 r-eval-pl 22:19:56 re-print-l 22:21:00 re-print-loop could be confusing 22:21:25 -!- Arc_Koen has joined. 22:21:53 (as it tends to read as a 'loop' that 'print's 're'peatedly) .. or something 22:22:39 http://www.aqua-calc.com/calculate/weight-to-volume I used this thing <-- 1 dm^3 (liter) of water is about 1 kg. hth. 22:23:27 (in fact that was the original intended definition of kg) 22:23:39 ...i just got a phone call from a number 1 digit off from my own number 22:23:43 and they hung up immediately 22:25:09 ^ul (sp)S((o)S)(~:^~:^):^(ky!)S 22:25:18 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 22:25:28 fizzie: a ghost ate fungot! 22:25:28 -!- azaq23 has joined. 22:26:58 Oh no ho ho. 22:27:41 It is not a connecting. 22:28:57 I even tried to change servurs. 22:29:24 -!- fungot has joined. 22:30:03 ^ul (sp)S((o)S)(~:^~:^):^(ky!)S 22:30:04 spoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo ...too much output! 22:30:27 somewhere out at infinity, a lonely ky! calls 22:31:17 > x 22:31:19 x 22:31:23 > x * (y-y) 22:31:25 x * (y - y) 22:31:44 FreeFull: it's a _very_ primitive symbolic type 22:31:59 So no simplification 22:32:07 > sin(x) 22:32:08 sin x 22:32:38 oerjan: What is it useful for? 22:32:57 demonstrating code 22:33:14 > foldr f a [x,y,z] 22:33:15 f x (f y (f z a)) 22:33:46 > fmap f [1,2,3] 22:33:48 Ambiguous type variable `b0' in the constraints: 22:33:48 (GHC.Show.Show b0) 22:33:48 ... 22:33:55 > fmap f [x,y,z] 22:33:57 Ambiguous type variable `b0' in the constraints: 22:33:57 (GHC.Show.Show b0) 22:33:57 ... 22:34:08 tends to require some explicit :: Expr here and there 22:34:17 > fmap f [x,y,z] :: [Expr] 22:34:19 [f x,f y,f z] 22:34:24 because f,g,h are so overloaded 22:38:57 > let f x x = 2*x in f x x 22:38:58 Conflicting definitions for `x' 22:38:59 Bound at: :1:7 22:38:59 > let f x x = 2*x in f y y 22:39:03 Conflicting definitions for `x' 22:39:03 Bound at: :1:7 22:39:03 > let f x y = 2*x in f y y 22:39:12 2 * y 22:39:23 Hrm 22:39:31 How do you do Expr pattern matching 22:41:46 -!- nys has joined. 22:43:41 > let f v = case show v of "x" -> 1; _ -> v in map f [x,y,z] 22:43:43 [1,y,z] 22:44:12 i'm not sure there's an intended way. 22:45:11 note that in let f x y = 2*x in f y y only the final two y's are actually Expr constants 22:45:35 the others are simply ordinary variables bound by the f declaration 22:47:13 > let f v | v == x = 1 | otherwise = v in map f [x,y,z] 22:47:14 [1,y,z] 22:47:18 that works too 22:47:45 > (x+1) == (1+x) 22:47:47 False 22:48:10 > (x+0) == x 22:48:11 False 22:48:50 oerjan: Good point. 22:51:51 * oerjan finds the ntext 22:52:28 oerjan: Try this one: 22:53:00 Hmm, how did it go? 22:53:41 wat 22:54:53 -!- carado has quit (Ping timeout: 246 seconds). 22:55:17 I don't remember the really odd example. 22:55:19 But there's this. 22:55:24 > compare a (-a) 22:55:26 LT 22:55:27 > compare x (-x) 22:55:28 GT 22:55:48 cute 22:55:49 monqy: You have 3 new messages. '/msg lambdabot @messages' to read them. 22:56:23 "wat" 22:56:40 monqy: btw did you hear about the "latest advances in profunctor lenses" 22:56:51 something about sharing 22:56:53 > compare a x 22:56:54 LT 22:57:01 > compare (-a) (-x) 22:57:02 LT 22:57:22 monqy: well that too 22:57:31 but also it's "pretty cool now??" 22:57:45 old profunctor lenses = worst thing ever 22:57:50 > sort [a,-a,x,-x] 22:57:52 [a,negate a,negate x,x] 22:57:59 Aw. 22:58:02 ah of course 22:58:10 what happened to profunctor lenses, what did you do, to them 22:58:14 There's a way of expressing it that doesn't involve explicitly negating. 22:58:25 monqy........thats classified.. 22:58:41 "elliotts shame" 22:59:09 monqy: Remember when you were elliotts? 22:59:27 vaguely 22:59:29 -!- asderca77 has joined. 23:00:16 monqy vaguely remembers all his past, future and simultaneous lives 23:00:31 And he remembers his dreams. 23:00:34 Not so vaguely. 23:00:37 ooh spooky 23:00:38 monqy: got any good dreams for us 23:00:48 alt. some wise wisdom 23:00:59 shachaf: only vaguely, this time 23:01:00 no..dreams only plz 23:01:03 too vague for words!! 23:01:11 monqy: thats "pretty vague" imo 23:01:15 but can you get any vaguer 23:01:43 maybe 23:01:52 > compare a (-a) 23:01:53 LT 23:02:09 > compare a b 23:02:10 Oh, shachaf already did that 23:02:10 LT 23:02:13 heh 23:02:16 > compare compare compare 23:02:18 No instance for (GHC.Classes.Ord (a0 -> a0 -> GHC.Types.Ordering)) 23:02:18 arisi... 23:03:26 You know, one advantage of lisp over haskell, you can always treat functions as data, and can do things like displaying functions or reading functions in 23:03:54 (< < <) is still wrong, sorry 23:04:05 since when is that an advantage :-) 23:04:32 concision is equivalent to powerfulness monqy 23:05:28 language with a primitive to solve sudoku. now that's power. 23:06:11 In Haskell though, you can also make up a data type, which can be used to make functions, although it does not have that normally. 23:06:52 Quick: 23:06:58 Treating functions as data to change parts of it can be useful though; but depending what you do, there might be other ways 23:06:58 What should p a b -> p (r,a) (r,b) be called? 23:07:06 edwardk wants to call it Strong. 23:07:11 I don't like that class?? 23:07:27 class name 23:07:35 Fucksterson 23:07:42 "second" :-) 23:08:14 monqy: the class provides p a b -> (a,r) (b,r) too though. 23:08:34 "(***)" :-) 23:08:36 FirstOrSecond 23:08:39 Quick, edwardk will "ship" this as soon as he finishes cleaning up the haddocks! 23:08:48 Bike: More like FirstAndSecond!! 23:08:56 :O 23:09:18 A category with *** making a monoid is called a tensor category, I think. 23:09:24 how about just use some symbols 23:09:29 "(*&*)" 23:09:38 zzo38: It doesn't have (***) 23:09:40 It's not a category. 23:09:54 I don't know why you don't like Strong, I think Strong is OK. 23:10:11 :t (***) 23:10:12 Arrow a => a b c -> a b' c' -> a (b, b') (c, c') 23:10:16 The same thing with Either is called Choice. 23:10:40 "cochoice" 23:10:49 > [1,2,3] *** [4,5,6] 23:10:49 Cochoice, perhaps? 23:10:51 Couldn't match expected type `a0 b0' with actual type `[]' 23:11:07 Wait 23:11:11 Need something with two constructors 23:11:23 No 23:11:26 confused 23:11:30 zzo38: Well, it's been pushed to Hackage. 23:11:30 FreeFull: Such as, (->) is a tensor category too, can be use with *** 23:11:33 So Strong it is. 23:11:36 OK 23:12:23 > ((\x y -> x*y) *** (\x y -> x+y)) 23:12:24 No instance for (GHC.Show.Show ((a0, a1) -> (a0 -> a0, a1 -> a1))) 23:12:25 arisi... 23:12:37 > ((\x y -> x*y) *** (\x y -> x+y)) (1,2) 23:12:39 No instances for (GHC.Show.Show (a0 -> a0), 23:12:39 GHC.Show.Sho... 23:12:49 > ((\x y -> x*y) *** (\x y -> x+y)) ((1,3),(2,4)) 23:12:50 No instances for (GHC.Num.Num (t0, t1), GHC.Num.Num (t2, t3)) 23:12:50 arising fr... 23:12:59 :t ((\x y -> x*y) *** (\x y -> x+y)) 23:12:59 > ((\x y -> x*y) *** (\x y -> x+y)) (1,2) 9 23:13:00 (Num a1, Num a) => (a, a1) -> (a -> a, a1 -> a1) 23:13:00 The function `(\ x y -> x GHC.Num.* y) 23:13:01 Control.Arrow.*** (\ ... 23:13:06 nice 23:13:42 I'm confused about how you use *** 23:14:05 > ((+1) *** length) (4,"hello") 23:14:06 (5,5) 23:14:34 > const "hello" $ (***) *** (***) 23:14:35 Ambiguous type variable `a0' in the constraint: 23:14:35 (Control.Arrow.Arrow a0)... 23:14:38 oh nooo 23:15:18 shachaf: Why does the result take a tuple argument 23:15:24 @ty (***) 23:15:25 Arrow a => a b c -> a b' c' -> a (b, b') (c, c') 23:15:37 have fun explaining arrows 23:15:42 "the true arrows joke" 23:16:04 monqy: well if you understand monads understanding arrows is just the next thing to do 23:16:08 "the next step in the progression" 23:16:10 :k (->) 23:16:12 * -> * -> * 23:16:15 shachaf: Wouldn't comonads come first 23:16:26 FreeFull: The joke is that arrows are terrible 23:17:10 I also think Arrow is not so good, it should just have category, and then tensor category, and functor between categories, Arrow tries to put it together in the wrong way. 23:17:25 zzo38: We've figured out what the "true hierarchy" should look like. 23:17:49 fmap (atob) somea 23:18:37 What does $! do differently from $ ? Is it less lazy? 23:18:54 Haskell does not allow you do define class hierarchies in both ways; you cannot define a automatic superclass later on, or define splits and automatic subclass and combine and whatever like that! 23:19:08 FreeFull: yes 23:19:09 @src ($!) 23:19:09 f $! x = x `seq` f x 23:20:29 @src (->) 23:20:29 Source not found. :( 23:20:31 Such as, (arr) is a functor from (->) to this other category, (***) defines a tensor category, etc, really they should be separate 23:21:07 zzo38: I agree completely. 23:21:45 And not all tensor categories have a functor from (->) and anyways you might want to define a functor from some other category. 23:22:13 the arrow combinators are pretty useful if you specialize them to (->) 23:22:18 but the Arrow generalization is crap 23:22:33 kmc: Our new generalization for lenses looks a whole lot like the Arrow methods. 23:22:39 oh dear 23:22:39 Except split up differently. 23:22:43 good 23:22:47 kmc: Yes, they are useful with (->) but still, they could be generalized but Arrow is the wrong way to do generalize. 23:23:10 We don't even want the Category superclass. 23:23:16 Lots of useful profunctors aren't categories. 23:23:30 profunctor protip 23:23:44 Hah, our "id" method is called "tip" 23:23:50 We should call it "protip" 23:23:58 :t fmap id 23:23:59 Functor f => f b -> f b 23:24:59 ..ok 23:25:02 «id ≡ fmap id» is a functor law 23:25:05 Programming from the debugger is weird 23:25:28 How sane/insane is it to write a program in Smalltalk starting from the high level and just writing methods as the debugger keeps complaining? 23:26:54 mm, pH of 10 or so, I'd say. 23:27:11 Sadly many functors don't satisfy that law. 23:27:13 Like (r ->) 23:27:18 Bike: pH of 10 isn't insane, just basic 23:27:25 shachaf: due to strictness? 23:27:28 Yes. 23:27:28 Exactly. 23:27:44 haskellers tend to ignore that when talking about laws :) 23:27:52 True. 23:28:15 In lens we unsafeCoerce instead of using (foo . Newtype) 23:28:35 :( 23:28:46 Even if you define strict composition, GHC doesn't manage to optimize (foo `dot` id) to foo. 23:28:55 I originally introduced the idea but now edwardk is a much bigger fan of it than I am. 23:28:57 fmap id = (.) id - how is that not id? 23:29:11 > ((.) id) undefined `seq` () 23:29:13 Ambiguous type variable `f0' in the constraint: 23:29:13 (GHC.Base.Functor f0) ar... 23:29:26 hmph 23:29:27 > ((P..) id) undefined `seq` () 23:29:28 () 23:29:30 thanks Cale 23:29:30 "cool" 23:29:36 caleskell is beauty 23:29:55 caleskell: more like annoyingskell?? 23:31:45 "hackskell" imo 23:32:03 -!- augur has joined. 23:32:15 Yes useful profunctors may be not categories, but, yet it is why I wanted to make Ibtlfmm to change a lot of things about the type classes to not have such problems as these. 23:32:38 monqy: btw edwardk shipped the new profunctors 23:32:40 with the name Strong 23:32:46 So one thing that would be needed for this, is kinds to also have constraints, as well as types. 23:33:09 shachaf: yeah i need to install them if i want to install the new lenses because dependencies... 23:33:20 monqy: wait do you even install lenses 23:33:25 like lens HEAD?? 23:33:28 yes 23:33:30 wow 23:33:37 you're more "into lenses than i thought" 23:33:59 i guess it's monqy, lenxpert 23:34:53 installed :0 23:35:01 * Sgeo freezes Pharo 23:35:29 Turns out modifying stuff in order to let the declare inst var thingy redefine UndefinedObject is a bad idea 23:41:37 -!- impomatic has left. 23:48:48 -!- sirdancealot has quit (Remote host closed the connection).