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