00:01:05 `interp glass {M[m(_o)O!"Hello World!"(_o)o.?]} 00:01:07 Hello World! 00:01:17 it seems like the simple interpreters are working 00:01:57 Can I consider an Applicative to basically be a function `lift` that lifts a function of any arguments to a stream of arguments in an... um, applicative 00:02:04 *in the same applicative 00:02:31 Applicative is liftN 00:04:59 (~~>) :: [*] -> * -> *; [] ~~> r = r; (t:ts) ~~> r = t -> (ts ~~> r); liftN :: (ts ~~> r) -> (map f ts ~~> r) 00:04:59 * oerjan is still not quite sure what Sgeo means by using streams. 00:05:18 (map f ts ~~> f r), rather 00:05:23 I mean Racket streams, which are approximately heterogenous lazy lists 00:05:32 this is just an ugleir form of the HList thing. 00:05:36 *uglier 00:05:37 Not quite, since I think you can't traverse the spine wiithout forcing the contents 00:07:17 i understand what you mean by streams, i just have no idea how they fit into applicative 00:08:53 traverse would be a really nice definition of Applicative if you could define Traversable in some nice way without Applicative. 00:09:10 elliott: I thought I did that >.> 00:09:18 Or something like that 00:09:59 Actually, no.... my function to extract a traverse out of my encoding knows what an Applicative is, even if the traversal-like thing itself doesn't 00:11:02 data Fn a = Ret a | a :~> Fn a deriving Functor; i :: Fn * -> *; i (Ret r) = r; i (t :~> fn) = t -> i fn; liftN :: i fn -> i (fmap f fn) 00:12:14 How would you use traverse to define Applicative? 00:12:27 by defining Traversable without Applicative and then putting traverse in Applicative 00:13:24 class ??? (t :: k -> *) where { type MapArg t :: (* -> *) -> k -> k; ... }; class Functor f => Applicative f { where liftN :: ??? t => t x -> t (MapArg t f x) } 00:14:47 data family Fn :: ([*], *) -> *; data instance Fn '('[], r) = FnRet r; data instance Fn '((t ': ts), r) = FnArg (t -> Fn '(ts, r)) 00:15:26 instance ??? Fn where type instance MapArg f '(ts, r) = '(Map f ts, f r); ... 00:16:31 i think we are approaching the schwarzschild radius of type level programming 00:17:03 ??? is some kinda weird type functor thing. 00:17:33 well, this isn't actually interesting <_< 00:17:44 ooh 00:19:16 oerjan gets interested right as I admit I'm not. 00:19:39 you're good at reverse psychology? 00:19:50 ('s ok i'm not really interested) 00:22:49 <-- technically that _would_ be sane (and equivalent to ({})*n) if it was required that a ()*n which contains unmatched brackets must match precisely with another ()*n (same n) 00:22:52 oops 00:22:57 ([)*n (])*n might work directly <-- technically that _would_ be sane (and equivalent to ({})*n) if it was required that a ()*n which contains unmatched brackets must match precisely with another ()*n (same n) 00:23:21 No such requirement 00:23:30 It's a plain bug in this implementation 00:23:35 well naturally not in the broken impl. 00:23:45 but i'm saying it could be done. 00:24:36 can (a)*m b (c)*n for m =/= n be efficiently implemented? 00:24:48 it doesn't seem inherently impossible to do it without expanding fully 00:24:53 i think i recall pondering that 00:25:46 i think you can expand cleverly to avoid blowup in many case, but _possibly_ there are cases where you cannot avoid exponential expansion 00:25:46 -!- Patashu_ has joined. 00:25:46 -!- Patashu has quit (Disconnected by services). 00:25:50 *+s 00:27:20 how would you go along renaming a wiki page? 00:27:25 and you'd need some good modulo arithmetic 00:27:48 CrazyM4n: you can Move it, and if you wish, the admins can delete the old one if it's unnecessary 00:28:44 it's in the down arrow dropdown menu 00:28:48 [wiki] [[Special:Log/move]] move * CrazyM4n * moved [[Brainfunge]] to [[Simplefunge]]: Brainfunge was kind of a terrible name and already taken 00:29:07 got it, thanks 00:29:34 can you, uh, rename a github repo also? 00:29:45 oh i have no idea how you do that. 00:29:53 * oerjan doesn't do git 00:30:33 I think I'll just use my multilens encoding but keep the name multilens and not traversal, in case I change my mind 00:30:34 whether you want to delete the old page might depend on whether you've linked to it otherwise 00:30:43 just on the esolang wiki 00:30:59 i think i saw you post in /r/haskell? but i guess that didn't link to the wiki. 00:30:59 you can rename github repos yes 00:31:14 [wiki] [[Simplefunge]] http://esolangs.org/w/index.php?diff=40412&oldid=40410 * CrazyM4n * (-58) Renamed language 00:31:25 oh yeah, I did post that 00:31:33 shall i delete the old wiki page? 00:31:35 but it´s so buried that it shouldn´t matter 00:31:38 and yes please 00:31:59 now if the wiki weren't molasses 00:32:10 haha 00:32:52 [wiki] [[Special:Log/delete]] delete * Oerjan * deleted "[[Brainfunge]]": Author request: content was: "#REDIRECT [[Simplefunge]]" (and the only contributor was "[[Special:Contributions/CrazyM4n|CrazyM4n]]") 00:34:54 other than just manually moving it, eliott: how would i rename the github repo then? 00:35:03 -!- Phantom_Hoover has quit (Quit: Leaving). 00:35:21 please spel names corectly twh 00:35:30 my bad 00:35:50 elliott: how would I go along renaming the github repo then? 00:35:58 it's in the repo admin somewhere. 00:36:04 click around and you'll find it 00:36:27 -!- Phantom_Hoover has joined. 00:36:28 never mind, I just remembered that google is a thing 00:36:36 got it 00:39:16 once again i find my bfjoust comments have already been anticipated in the logs. 00:39:29 [wiki] [[Simplefunge]] http://esolangs.org/w/index.php?diff=40413&oldid=40412 * CrazyM4n * (+1) 00:40:28 Even if the moved-to-HackEgo bfjoust thing worked, it wouldn't affect the actual scorecards and such on codu.org. 00:40:42 right, but i 00:40:45 argh 00:41:04 t should be possible to transfer those too and use the repository browser 00:41:31 would be more vulnerable to someone breaking it, of course 00:42:38 Technically speaking, it would be possible for me to set it up on e.g. esolangs.org/bfjoust/ or some-such and have HackEgo feed it stuff, since they're the same machine. But that's perhaps going a bit above my mandate of wiki maintenance. 00:43:02 (And anyway it'd involve some work.) 00:49:56 -!- augur has quit (Remote host closed the connection). 00:52:00 oh hm wait 00:53:34 hm _is_ (a)*n b (c)*n equivalent to (a { b } c)%n if implemented simply by jumping between matching brackets and keeping loop count in each ()*n ? 00:53:57 (rather than full expansion, which is clearly equivalent) 00:54:32 because i'd suspect the "buggy" impl. to be closer to the former. 00:55:56 i suspect it isn't, because in the algorithm i developed they shared a counter and the c part _decrements_ instead of increments. 00:56:41 but maybe it accidentally works... 00:57:41 hm dubious 00:59:42 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 01:01:00 ( ... [ ... )*n ... ( ... ] ... )*n let's say the cell checked is 1 on first try, 0 on second and third, then both counters will be 1 when it's supposed to leave 01:01:00 (input):1:1: error: no implicit 01:01:00 arguments allowed 01:01:00 here, expected: ":", 01:01:00 dependent type signature, 01:01:00 end of input↵… 01:01:07 ...darn :P 01:01:31 POSSIBLY NOT MY BEST IDEA 01:03:14 oerjan: pretty much all the bots have been accidentally triggered at one time or another 01:04:30 -!- augur has joined. 01:05:08 @tell Lymia It is possible that (a)*n b (b)*n is not always equivalent to (a{b}c)%n if the loop counters for the two parts are separate. 01:05:09 Consider it noted. 01:05:35 @tell Lymia Or, in oerjan's example, if b != c. 01:05:35 Consider it noted. 01:05:45 OKAY 01:05:47 fizzie: that was evil :-) 01:06:28 I'm aware. :P 01:06:50 ah 01:06:55 The behavior in the interperter I'm working with is plain weird. 01:07:09 (a[b)*10c] is also accepted 01:07:13 And [a(])*0 01:08:02 < Sgeo> Can I consider an Applicative to basically be a function `lift` that lifts a function of any arguments to a stream of arguments in an... um, applicative – I have written such a function in Idris, using an Applicative constraint, and then of course one can recover the zero- and one-arg forms. 01:08:08 sounds like the interpreter is so weird it's an esolang of its own 01:08:42 -!- augur has quit (Remote host closed the connection). 01:09:05 Lymia: although my comment wasn't specifically targeted at that interpreter (which i haven't looked at), but at the idea of treating unmatched [] in ()*n simply by jumping to the matching one 01:10:22 it is becoming clear that ()*n loops sharing matched [] need to share counters too, and adjust them in different directions 01:10:49 Assuming the cell is always true, I guess (a[b)*4c] translates to ababababcababababc... 01:11:18 Lymia: does it even attempt to check balancedness at all? 01:11:22 elliott, yes. 01:11:26 aw. 01:11:27 It matches [] and () separately 01:11:30 Leading to "fun" behavior. 01:11:59 the most fun: (a{b)%m c (d}e)%n 01:12:13 don't ask me. I don't know. 01:12:14 Luckily there is no ({}) support. 01:12:14 :D 01:14:52 ideally () and {} would be defined entirely independently of each other. just to let you do more confusing things. 01:15:07 The description does say it's only "inspired by" BF Joust. 01:16:14 Oh, the cycle limit is also only one tenth of that of the "real thing". I was wondering why the performance difference was so moderate. 01:16:39 Excepting obvious bugs (the behavior here is contradicatry to what they state in the OP!), it's pretty much BF Joust without the flipped configuration. 01:20:04 Lymia: Looking at Arena.py, I think it also doesn't implement the rule that the "second" program's [] instructions look at the original value of the tape cell, even if the "first" program did + or - on it. 01:20:17 yep~ 01:20:39 I don't think that's common enough to be a major difference? 01:21:00 it's relevant for shuddery type things, isn't it...? 01:21:07 locky things. I forget the terminology >_> 01:22:57 I don't know how much it matters, but it's not very elegant to not be commutative. (Then again, if it doesn't run the full set of tape lengths either.) 01:23:38 you could be non-commutative _and_ check both orders, i guess 01:25:22 Whoops, something like 4:30am with visitors tomorrow. -> 01:27:44 -!- doesthiswork has joined. 01:28:43 have you folk heard of pattern calculus? http://www.pps.univ-paris-diderot.fr/~kesner/papers/purepattern.ps 01:29:02 Lymia: does it parse []s in a more reasonable way than ()s? 01:29:13 That code parsers both []s and ()s 01:30:54 -!- ais523 has quit (Read error: Connection reset by peer). 01:31:08 -!- ais523 has joined. 01:31:11 ...so can you do weird things with loops like you can with the ()*2? 01:32:54 perhaps each of the parsings are correct separately, and you only get weird things when you _combine_ ()* and [] 01:32:57 -!- augur has joined. 01:33:23 oerjan: I mean the thing where it overloads hash values while parsing for both "code position" and "scope depth". 01:33:28 so you can do. 01:33:30 weird things. 01:34:08 okay 01:34:32 oerjan: https://github.com/redevined/brainfuck/blob/master/BrainFuckedBotsForBattling/Arena.py#L94 01:35:26 -!- lambdabot has quit (Remote host closed the connection). 01:35:52 Is there likely to be any ... harm if I go ahead and use my encoding for now? 01:38:44 -!- ais523 has quit. 01:38:51 -!- ais523 has joined. 01:39:42 -!- lambdabot has joined. 01:49:24 is there any difference between using rbraces()[scope] there and braces[scope] at all? 01:49:49 oerjan: it's reverse lookup 01:49:51 (value to key) 01:49:56 oh 01:50:01 (the logs have a spoiler as to the problem) 01:50:51 i assume a collision might be possible. if so, will the last colliding pair be used? 01:51:23 hm wait this is hashed right 01:51:30 so you cannot assume anything about order 01:51:48 (i'm sure i read the spoiler already) 01:52:02 it's just like a haskell Map 01:52:10 hm? 01:52:19 elliott, you can probably 01:52:24 But that's harder to control 01:52:27 And [] takes ticks unlike () 01:52:36 a haskell Map gives the listing in order by keys, but does python dicts do that? 01:52:41 *do 01:53:00 oerjan, I'm p. sure the hash is i%bucketSize 01:53:37 Apparently zip(map.values(), map.keys()) is actually legit. 01:53:38 Lymia: um that's too low level to answer my question without hurting my brain 01:53:55 oerjan, the order is predictable, but very non-intuitive. 01:54:17 .()*2<<<<<<<<<<((((-)*5>[(-)*4.[+.]].)*10000)*1)*1 01:54:22 ()*2 makes an entry 1:2 01:54:30 -!- callforjudgement has joined. 01:54:37 -!- callforjudgement has quit (Changing host). 01:54:37 -!- callforjudgement has joined. 01:54:40 The second ( in the second part makes an entry 16:2 01:54:48 Obvious results occur. 01:55:02 right. so what i'm implying is, we can assume no sensible behavior in which (value, key) pair ends up in rbraces() if there is a collusion of values? 01:55:04 (since 16 ends up in bucket 0, and 1 in 1 apparently) 01:55:11 No sensible behavior, nope 01:55:22 *collision :P 01:55:22 -!- augur has quit (Read error: Connection reset by peer). 01:56:25 -!- augur has joined. 01:57:34 are you going to make a bfjoust bot or something? 01:57:42 -!- ais523 has quit (Ping timeout: 246 seconds). 01:57:47 CrazyM4n: we already had one, in theory 01:57:55 I'm disappointed 01:58:00 because preparation beat every other warrior 01:58:01 but Lymia found another one someone made, which is horribly buggy 01:58:04 yet didn't come top of the hill 01:58:22 oerjan: wait, someone made a BF Joust bot who isn't a regular in this channel? 01:58:33 There's a BF Joust hill on Stack Overflow 01:58:49 link? 01:58:51 A fairly trivial program I just submitted gets a 93% win rate ove rit. 01:58:53 because preparation beat every other warrior 01:59:01 "beat"? 01:59:09 42:0 or what? 01:59:11 Lymia: won on over 50% of tape lengths and polarities 01:59:18 http://codegolf.stackexchange.com/questions/36645/brainfedbotsforbattling-a-brainf-tournament 01:59:23 most of the wins were quite slow, because preparation uses a probabilistic lock algorithm 01:59:41 meaning that it's almost guaranteed to win on some proportion of tape lengths and lose on others 02:00:25 ... well, you know. 02:00:30 The rules here only say it has to be your own code. 02:00:39 Right? 02:01:15 ? 02:01:37 callforjudgement: this seems somehow similar to how tit-for-tat never loses big in any PD game yet doesn't always win tournaments 02:01:38 oh, 10000 cycle limit on that hill 02:01:40 that isn't enough 02:02:07 There's an extra rule that seems to "make up" for the cycle limit 02:02:25 -!- augur has quit (Remote host closed the connection). 02:02:28 If the opponent flag is "smaller" than yours, you win. 02:02:34 (When the cycle limit is reached) 02:02:36 well, not really 02:02:44 that completely misunderstands defence programs and counter-turtles and so on 02:03:17 are there any turtles on that hill yet? 02:03:28 A few attempts at it 02:03:30 They don't do well 02:03:34 if not, you should be able to get a very good score with one (although that highly upvoted vibration program would beat it) 02:03:36 perhaps not so much "misunderstands", as makes it a completely different game 02:03:41 Or, well. 02:03:44 What's a turtle? 02:04:09 Oh, careless clear? 02:04:20 yes 02:04:43 oerjan: well, it's more that "doing well on the tiebreak" and "doing well on the rest of the game" aren't very correlated 02:05:21 The tiebreak earns my bot, like, 10 wins. 02:05:33 So, it's not insignificant. 02:05:43 But, you still need a normal clear 02:05:48 Or you lose by falling off the tape. 02:06:35 well the idea of a turtle is that you win before the point where you fall off 02:08:39 -!- scarf has joined. 02:08:43 [03:07] Lymia: huh, you won with an evolved prograM? 02:08:44 [03:08] I'm not sure whether to be impressed at the evolver, or horrified at how bad the programs there are 02:09:06 Horrified at how bad the programs are. 02:09:12 Look at the analysis of that evolved program 02:09:38 (-)*5(>.(-)*7)*3(>[(-)*8[.+]](-)*2)*-1 < Reduces to this basically 02:09:50 ooh, someone submitted a defence program 02:10:07 even if it has one of the worst tripwire setups ever 02:10:18 Yanderebot? 02:10:31 Polar bear 02:11:14 Is this.... a careless clear? 02:11:32 -!- callforjudgement has quit (Ping timeout: 245 seconds). 02:11:33 Oh, yep 02:13:45 scarf, Yeah, uh 02:13:51 My bot screws this over in 19 cycles 02:14:02 (-)*19 02:18:00 -!- scarf has quit (Read error: Connection reset by peer). 02:18:14 -!- scarf has joined. 02:22:25 -!- Bicyclidine has joined. 02:29:11 -!- Male has joined. 02:29:32 -!- scarf has changed nick to ais523. 02:29:52 -!- Male has quit (Client Quit). 02:34:47 -!- Bicyclidine has quit (Ping timeout: 245 seconds). 02:43:19 Lymia: where is the hill posted 02:48:20 http://codegolf.stackexchange.com/questions/36645/brainfedbotsforbattling-a-brainf-tournament 03:12:40 -!- variable has joined. 03:34:37 -!- doesthiswork has quit (Quit: Leaving.). 03:40:51 so I don´t understand 03:41:00 in the brainbots tournament 03:41:40 what´s stopping you from just doing ¨(>[-])*100¨ 03:45:06 well in bfjoust, you can defend by putting some "traps" in between 03:45:28 which slows down that strategy enough that you may get to their flag first 03:45:59 -!- variable has quit (Ping timeout: 276 seconds). 03:47:00 * oerjan doesn't at the spot recall what the traps are actually called in bfjoust terminology 03:47:53 decoys 03:48:00 right 03:48:08 CrazyM4n: you can do that, it's known as a fast rush program 03:48:20 it'll fall to a program that does >-(>[-])*100, though 03:48:26 the very basics of BF Joust strategy is understanding why 03:52:02 :/ 03:54:12 hm well given that the other hill is working _somewhat_ different than bfjoust and iirc never reverses +- polarity, i can see one way that could fail: if cells don't wraparound and decrementing 0 is a loss. 03:54:43 a decoy wouldn't be _nearly_ as effective if you couldn't do that 03:55:20 * oerjan has no idea if the brainbots game would do that, mind you 03:57:55 CrazyM4n: the basic idea is that with wrapping 8-bit cells, if a cell is -1 or +1 but you don't know which, then you waste 127 steps or thereabouts if your [-] clearing goes the wrong way 03:58:14 you can me more clever, but then the defender can be too 04:11:54 -!- tromp has joined. 04:13:57 -!- tromp__ has quit (Ping timeout: 245 seconds). 04:24:26 -!- augur has joined. 04:25:05 oerjan: cells do wrap on the other hill 04:26:18 ok 04:27:11 mind you a decoy could _still_ work somewhat because a -] is slower than a + 04:28:09 oerjan: indeed, setting decoys is faster than clearing them even if the opponent knows which polarity you're using 04:28:37 in decrementing-0-is-death BF Joust, vibration seems like a pretty powerful strategy 04:28:57 if you can decrement your flag from 1 to 0 at the same time the opponent does 04:28:59 then, umm 04:29:01 you both lose? 04:29:21 heh 04:29:22 vibration? 04:29:47 i understand the brainbot game doesn't have simultaneous moves though 04:30:08 coppro: changing your flag between 0 and 1 rapidly 04:30:20 oerjan: it says it does from the description, but it may be lying 04:30:22 don't you lose, then? 04:30:29 has to be 0 for two cycles to lose 04:30:33 and many programs just move on if they see a 0 04:30:38 oh right 04:30:39 so you have a 50% chance of beating those programs 04:30:45 it's pretty easy to counter if you know what you're doing, though 04:30:55 i think it was said 1 cycle in brainbots 04:31:25 vibration programs have topped the hill (anticipation2), but that only works if people aren't paying attention to them 04:41:11 -!- CrazyM4n has quit (Quit: Leaving). 04:51:23 -!- ais523 has quit (Read error: Connection reset by peer). 04:51:38 -!- ais523 has joined. 04:53:58 -!- callforjudgement has joined. 04:53:59 -!- ais523 has quit (Disconnected by services). 04:54:03 -!- callforjudgement has changed nick to ais523. 05:09:21 > join [[1,2],[3,4,5],[6]] 05:09:22 [1,2,3,4,5,6] 05:12:44 I'm wrong, you can traverse the spine of a Racket stream without forcing each element 05:13:26 Sgeo: why the sudden interest in Racket? 05:14:10 I think because I got a sudden interest in Haskell and then lens reminded me of my intentions to make an optics library in Racket 05:23:27 My stream-join is a bit haiy 05:23:57 https://github.com/Sgeo/racket-optics/blob/417c0c5ff91dc9cee9e402c6f479abafa5b3275d/profunctors.rkt#L72-L81 05:24:01 hairy 05:35:32 DrRacket has a code coverage tool built-in. That and module+test might encourage me to actually write unit tests 05:40:09 -!- shikhin has joined. 05:51:24 oh, haha 05:51:32 I /finally/ figured out what causes my compose key to stop working 05:51:43 it's alt-tabbing from Firefox to Konversation; alt-tabbing from any other program to Konversation fixes it 06:15:32 Hmm. Firefox in general or in particular Firefox with focus on the URL bar or something? 06:15:46 shachaf: not sure yet 06:15:50 I think there's at least one other condition 06:15:58 but at least this means that I can easily fix it when things go wrong 06:16:05 * Sgeo wonders what distro ais523 uses... mostly because Kubuntu sucks 06:16:11 Sgeo: Ubuntu, with Unity 06:16:18 I like Unity, pity it's so buggy and so unperformant 06:16:29 Focus in the Chrome URL bar misbehaves in all sorts of ways. 06:16:48 I think I tend to prefer using GNOME and GTK+ apps when in GNOME and KDE and Qt apps only in KDE 06:16:48 I vaguely remember similar issues with Firefox. 06:28:52 -!- callforjudgement has joined. 06:29:21 -!- ais523 has quit (Ping timeout: 260 seconds). 06:38:54 -!- CrazyM4n has joined. 06:52:53 -!- CrazyM4n has quit (Quit: Leaving). 07:01:50 Hmm... is IO the main interesting side-effect in non-Haskell languages? 07:02:52 Sgeo: variable mutation's a big one 07:03:08 Variable mutation doesn't fall under IO? 07:03:22 well, everything falls under IO, because it's basically the most general possible monad 07:03:26 the ST monad does variable mutation without IO 07:03:30 you can do it with much less than IO, though 07:04:05 and it's definitely impure because it lets you observe evaluation order 07:04:09 But if I want to encode the concept of side-effect in a non-Haskell language, it should be sufficient to support IO, with 0-argument functions since it's a side-effecty language 07:04:25 Sgeo: one of my colleagues made the point that the "IO monad" of Haskell is basically OCaml 07:04:29 rather than IO generally 07:04:58 you can think of the ML family as basically being Haskell only everything is forced to be in the IO monad 07:05:46 Sgeo: the "concept of side-effects" in haskell is really the "concept of _distinction_ of side effects", so using only IO misses much of the point. 07:06:53 * Sgeo is mostly not trying to let all of the abilities of traversal go to waste just because I don't feel like encoding applicatives 07:10:03 I think the main distinction between explicit support vs. letting users 'cheat' with over and a side-effecting function is that the former forces the traversed structure 07:11:32 Hmm... is it possible to write a Traversal' (a -> b) b? 07:11:48 If it is, I'm abandoning my encoding... I can't see how to write a getter 07:15:31 > (cos & traverse %~ (*2)) 0 07:15:33 No instance for (GHC.Show.Show a0) 07:15:33 arising from a use of ‘M288691002170012585531335.show_M2886910021700125855... 07:15:33 The type variable ‘a0’ is ambiguous 07:15:33 Note: there are several potential instances: 07:15:33 instance [safe] GHC.Show.Show 07:15:36 wat 07:15:48 :t cos & traverse %~ (*2) 07:15:49 (Traversable ((->) b), Floating b) => b -> b 07:15:57 oh hm 07:16:50 it's possible if a is a finite type, i think. 07:19:26 It is not possible in general. 07:19:31 You can write a Setter. 07:19:49 A Traversal needs to traverse at most a countable number of things. 07:29:05 I feel like I'm going through contortions to serve a use-case I'm not sure exists 07:29:26 I don't know if there really are that many lazy structures used in Racket 07:29:29 You tend to do that. 07:34:35 Allowing users to 'cheat' would feel worse 07:34:55 Also the reason I can't merely encode lenses as setters 07:52:01 -!- callforjudgement has quit. 07:52:17 -!- callforjudgement has joined. 07:52:38 -!- xTREM has joined. 07:52:48 -!- xTREM has left ("Saliendo"). 07:55:08 -!- AnotherTest has joined. 08:01:35 -!- drdanmaku has quit (Quit: Connection closed for inactivity). 08:07:00 -!- oerjan has quit (Quit: leaving). 08:27:51 Reader r and List seem to suggest that maybe IO doesn't cover all side effects 08:28:34 Is there an Applicative that describes all applicatives, the way Cont describes all monads? 08:29:02 http://mandalicgeometry.tumblr.com/ 08:31:35 I was going to say 'I would be happy if that didn't have a name implying pseudomath and pseudoscience', but I take it back. 08:34:30 Cont doesn't describe all monads. 08:34:45 Well. I don't know what it means to describe a monad. But I bet Cont doesn't do it. 08:35:22 X describes Y = X Y 08:36:01 That article says Cont but I'm pretty sure it really means Codensity. 08:38:02 -!- shikhout has joined. 08:40:54 -!- shikhin has quit (Ping timeout: 246 seconds). 08:43:40 Bike: huh, what now? 08:59:49 oh it's a "cross-disciplinary blog", I guess that's one way of putting it... 09:25:34 -!- callforjudgement has quit. 09:31:06 -!- shikhout has changed nick to shikhin. 09:31:13 -!- shikhin has quit (Remote host closed the connection). 09:34:58 [wiki] [[Talk:Suicide]] N http://esolangs.org/w/index.php?oldid=40414 * Rdebath * (+1813) /* Appears to be NOT turning complete */ new section 09:43:30 -!- shikhin has joined. 09:46:56 hmm, another language with a weird specification. 09:50:53 Turning complete 09:51:25 I missed that. 09:52:12 A language that is not actually complete, but could almost be 09:52:17 imo 09:52:56 "It has a limit of 676 variables, but if these are unbounded it might still be able to emulate a Minsky machine." 09:54:14 Yes, it'll be able to do that, all one needs is a single loop with a body of if-then-else checking the current state and doing the corresponding updates. 09:56:08 The funny thing about that page is that it describes a language, and then, in the examples, uses < and << which have not been mentioned before. 10:52:49 -!- J_Arcane has joined. 11:46:15 -!- J_Arcane has quit (Quit: WeeChat 0.4.4-dev). 11:50:41 -!- J_Arcane has joined. 12:29:06 -!- Phantom_Hoover has joined. 12:31:54 -!- jix has quit (Remote host closed the connection). 12:32:28 -!- jix has joined. 12:41:02 -!- Sprocklem has quit (Ping timeout: 245 seconds). 12:41:17 -!- Sprocklem has joined. 12:58:09 -!- Patashu_ has quit (Ping timeout: 264 seconds). 13:26:17 -!- Phantom__Hoover has joined. 13:29:06 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 13:35:44 man, ARIN is down to less than a /8 13:36:32 (not counting the reserve /10 for IPv6 transition) 13:37:26 Better prepare the fallout bunker 13:41:05 -!- boily has joined. 13:47:29 Interesting that most countries don't have a /8, but some american organizations have two. 13:50:08 not only American, but Canadian too :D 13:50:54 (okay, they aren't quite pure /8 as they are fragmented around, but they occupy the same address space.) 13:51:05 my university only has a /16 13:54:07 many years ago I made a list of quite a few Canadian /16, mainly universities. mine was 132.203.0.0/16. 13:55:43 a list I just found. 13:56:54 aaaurgh. pastebin is rebarbative. 13:57:34 http://pastebin.ca/2839477 14:01:15 Why does BC need so many? 14:02:36 I have absolutely no clue. 14:09:13 Why did the Ford Motor Company need 19.0.0.0/8? It probably didn't. 14:09:22 surely ARIN should be putting pressure on them to give up parts of their address space by now 14:10:07 I'm actually hoping that we run out of v4 faster 14:10:20 RegDate: 1988-06-15 14:10:34 back then the IPv4 address space was huge ;) 14:11:27 They didn't need to share it with the commies 14:12:03 And this was class-based routing. So if 64k addresses of a class B net were not enough, I suppose you'd get a class A net. 14:13:46 I hope we completely switch out to IPv6 soon, because then I'll be forced to learn it correctly. 14:14:08 address scopes confuse the fungot out of me. 14:14:08 boily: you're back!! i'm not made of cons cells though. how can the code be wrong? 14:14:34 fungot: of course I'm back. I'm always back, and you guys are going to be stuck with me a loooong time. 14:14:34 boily: they are definitely a lot of schemes seem to dislike the way gimp does stuff in scheme, or programming in general) 14:19:48 Your search - "I'm not made of cons cells" - did not match any documents. ... pity. 14:20:19 It sounded like such a sensible thing to say. 14:20:31 :D 14:20:55 Of course, you're made of atoms, the cons cells are just how they're bound together. ;) 14:21:18 Ow. 14:21:29 So does anybody call S-expressions "molecules"? 14:21:44 Heh heh. Not that I know of. 14:23:31 http://www.google.com/patents/CN102625850A?cl=en mentions "LISP molecules", but LISP stands for "labeled probe identification sequence" 14:25:51 'your lisp code is terrible, look at all these texas IFs' 14:27:05 Phantom__Hoover: can you explain? 14:27:22 "texas IF" is not a very good search term. 14:27:29 https://www.google.co.uk/search?q=texas+carbon 14:32:06 okay. (if a b c d) would be wrong indeed. 14:32:34 (though I wonder whether that should count as four bounds) 14:33:32 bonds. luckily, I don't do chemistry. 14:34:34 if “a” is true then “b” else “c” else else “d”??? 14:35:00 @google things I won 14:35:02 http://pipeline.corante.com/archives/things_i_wont_work_with/ 14:35:02 Title: In the Pipeline: 14:35:08 that's funny. 14:35:26 (even more funny is the fact that this was what I was looking for) 14:36:15 boily: something like that 14:36:23 s/else else/otherwise/ 14:37:31 -!- shikhout has joined. 14:37:46 int-e: I reject your reality and placidly continue to munch on some toasts with nutella. 14:40:45 -!- shikhin has quit (Ping timeout: 264 seconds). 14:43:17 -!- shikhout has changed nick to shikhin. 14:43:41 [wiki] [[Archway]] http://esolangs.org/w/index.php?diff=40415&oldid=36068 * 76.100.81.188 * (+5) /* Example */ Fix Archway2 cat example. 14:44:12 my personal most memorable quote from that blog: "At seven hundred freaking degrees, fluorine starts to dissociate into monoatomic radicals, thereby losing its gentle and forgiving nature." http://pipeline.corante.com/archives/2010/02/23/things_i_wont_work_with_dioxygen_difluoride.php 14:48:31 my favourite, where he mentions shrapnel: “Ranking my equipment in terms of its shrapneliferousness is not something that's ever occurred to me, I have to say.” http://pipeline.corante.com/archives/2009/03/18/things_i_wont_work_with_chalcogen_polyazides.php 15:04:05 "There are no conceivable uses for [N-amino azidotetrazole] - well, other than blowing up Raman spectrometers, which is a small market - and the number of research groups who would even contemplate a resynthesis can probably be counted on one well-armored hand." 15:04:48 Hmm, that blog used to have a table of contents per category, now the best I can find is http://pipeline.corante.com/archives/things_i_wont_work_with.xml which lists only 16 of 29 posts :-( 15:08:15 if “a” is true then “b” else “c” else else “d”??? 15:08:28 if a is true, b; if a is false, c; if a is filenotfound, d 15:10:28 boily, you were interested in writing IRC bots in Haskell, write? 15:10:30 ... 15:10:38 *right? 15:11:31 Self-writing self-righting irc bots 15:11:37 Phantom__Hoover: point. 15:11:59 Taneb: uhm, yes? afaicr, I think it is so. 15:12:06 Jafet: a self-modifying fungot! 15:12:06 boily: could it be done without a wrapper 15:12:18 fizzie: could it? 15:12:41 fungot is pushing the boundaries here. 15:12:41 Jafet: it requires a full ai to parse it 15:12:44 boily, one of my friends is writing a bunch of IRC-related Haskell libraries 15:12:55 you didn't just mix up fungot and fizzie, did you... 15:12:56 int-e: i just a new module that provides a full build environment in fnord. 15:13:24 I swear fungot knows how much I hate that word. 15:13:24 int-e: the addition of addmov and submov :) fnord/ pictures/ flow.gif hofstadter would probably enjoy it very much. it's not bad, but if it's so important that people get the false impression that fnord and start hacking. 15:13:42 exactly. 15:14:03 Taneb: interesting. fascinating. appropriatable, and on-top-of-it codeable. 15:14:13 * Taneb whistles for barrucadu 15:14:30 Yes? 15:14:36 barrucadu, advertise to boily your IRC stuff 15:14:39 int-e: fungot is smart. fungot knows you. fungot will assimilate you, and in the befunge bind you. 15:14:39 boily: is this the esolang channel? i mean, can you send the generated code 15:16:00 Well, I've got a library on hackage to encode and decode CTCPs (https://github.com/barrucadu/irc-ctcp), and plan to put up today a message decoder using conduits (https://github.com/barrucadu/irc-conduit) 15:16:38 I've got a haskell irc bot running atop all this stuff, and am just gradually breaking it up into libraries 15:19:48 has your bot joined this channel? 15:20:14 -!- yukibot has joined. 15:20:18 Has now 15:20:58 At the moment it's not doing much 15:21:05 I've mostly been playing with the underlying stuff 15:21:28 en.wiktionary.org/wiki/sorry 15:21:43 Hmm, its URL shouter isn't working 15:21:49 Do I need the protocol, barrucadu? 15:21:50 Yes it is 15:21:53 https://en.wiktionary.org/wiki/sorry 15:21:54 Title: "sorry - Wiktionary" 15:22:28 yukibot: botsnack 15:23:33 At the moment it basically does link info and !seen 15:24:12 But it handles multiple networks with ease, which is nice 16:16:50 this is cute, http://img.thedailywtf.com/images/14/q2/e115/Pic-1.png 16:17:38 the point being, it's a perfectly sensible graph. 16:22:17 -!- drdanmaku has joined. 16:37:12 helloily 16:38:59 Interesting error. 16:40:48 Oh, it's exactly one hour. Well, I consider that an error anyway. 16:42:19 It clearly depicts a DST switch. 16:46:35 Melvar wins. 16:48:02 In fact, a graph which did not contain the loop would be erroneous. 16:54:35 Arguably there should be two curves in the [2,3) interval, without any line going back in time. But that's a minor complaint. 16:57:43 It's a mapping from linear time (presumably utc) to some political abomination that allows time travel 16:58:05 -!- oerjan has joined. 16:58:42 "god damn politicians", i complain to myself, as i orbit the infinitely long spinning cylinder 16:59:23 rotating yourself into an early grave? 17:03:32 hey guys 17:17:51 hey Soul 17:23:35 I'm learning C++ 17:23:52 oh no! 17:23:58 why the hell would you do that 17:23:58 It's pretty hard, considering I'm used to Python and Ruby. 17:24:06 speed, mostly 17:24:55 also, pointers confuse me. 17:25:18 I managed to implement brainfuck though 17:25:27 https://gist.github.com/TieSoul/688e7326453384862ce1 17:25:28 Title: "brainfuck.cpp" 17:25:34 so... 17:25:50 Java? 17:25:51 @Speed 17:25:51 Unknown command, try @list 17:26:09 I don't like Java, I'd actually rather C++ than Java 17:26:36 well 17:26:42 If you'd really care about speed you'd learn Ada 17:29:22 -!- NeroReflex has joined. 17:29:31 hi 17:29:40 although on alioth g++ is just barely better than Ada 17:29:42 hey 17:29:54 but considering that it's C++ :) 17:30:46 -!- oerjan has quit (Quit: leaving). 17:42:19 quintopia: quinthellopia! 17:43:21 TieSoul: you are wrong. Wrong, I say! 17:43:32 wrong about what? 17:44:41 java is less despicable than C++, imso. 17:46:08 NeroReflex: hi! 18:12:52 imso, hmm. "superior"? 18:14:07 The Internet (tm) suggests "sovereign". 18:14:12 C++ has all the bad traits of C you don't really want anymore 18:14:18 and it's got ugly syntax 18:14:46 @quote int-e C++ 18:14:46 Plugin `quote' failed with: user error (parseRegex for Text.Regex.TDFA.String failed:"C++" (line 1, column 3): 18:14:46 unexpected '+' 18:14:46 expecting empty () or anchor ^ or $, an atom, "|" or end of input) 18:14:51 @quote int-e C\+\+ 18:14:51 int-e says: C++ does make a reasonably usable high-level assembler 18:15:02 Java on the other hand is so easy it makes people write so bloaty code that complies to "clean code" but is split into 1k files which makes it unreadable as fuck 18:15:19 mroman_: the PHP effect 18:15:47 mroman_: see FizzBuzzEnterpriseEdition? ;) 18:15:54 J_Arcane: like that, yes 18:15:58 -!- ais523 has joined. 18:16:02 (Hmm, not quite. The PHP effect is that the language is so easy that every wannabe programmer uses it.) 18:16:08 you have to look at dozens of classes and packages to figure out what's going on 18:16:23 and then there's an injection framework that just changes everything again :( 18:16:29 what's the deal with giving every class its own interface anyway?! 18:16:50 I think you need that for Injection und some other Frameworks @interface for every class 18:16:59 i.e. FooClass is an interface 18:17:07 and then there's RealFooClass 18:17:11 which is the real thing 18:17:59 I just balk at the idea of providing an interface for something that has a single implementation. 18:19:02 int-e: the best argument I know is that it lets you later swap out the class without changing code that uses it 18:19:10 I guess a possible excuse is that you want a mock object for everything for testing purposes. 18:19:26 Also for binary compatibility. 18:19:38 ais523: I don't buy it. Anyway, eclipse has a ready-to-use refactoring tool for that purpose. 18:19:45 binary compa... 18:19:51 ah I never care about that. 18:20:00 but I guess it's a semivalid point. 18:20:01 int-e: I didn't say it was a /goo/d/ argument 18:20:22 ais523: right. 18:21:32 fizzie: my thinking about binary compatibility is influenced too much by Haskell, which offers none. Oh and Open source which means that recompiling stuff is always an option. But thanks for the argument :) 18:21:56 I've browsed through Effective Java once, that's all I know. 18:22:30 It has some leanings towards the "prefer interfaces" side, though not so strong as to prefer them blindly. 18:23:32 Hmp, I just broke gearlance. 18:24:06 anyone solve botguard.js yet? 18:24:27 newsham: apparently not, or we'd see a noticeable increase in spam 18:25:18 The downside is that when browsing source code, in a top-down manner, one usually finds that the interesting functionality is hidden behind some interface ... and then one has to go looking for classes implementing it, possibly digging in xml configuration files to find out which one is actually used. It's awful. 18:25:23 ais: not necessarily 18:26:09 I guess figuring such stuff out is what makes the difference between a Java programmer and a JavaEE programmer. 18:30:20 Welp, I unbroke gearlance, but my "optimization" is a... if "pessimization" is something that makes it worse, what's it called when it has no effect? "Status quptimization?" "Futilization?" 18:30:30 boily: you take long time to respond 18:31:00 fizzie: what was it you changed? 18:31:33 "Refactoring" 18:33:29 quintopia: I switched it from the current "almost computed-goto threaded code except it keeps the original parsed program around to look up repeat counts and jump targets" to a slightly more compact "computed-code threaded code with target/count operands intermixed for those operands that need them" form, as a side effect of adding support for doing the threaded-code translation and actual ... 18:33:35 ... tournament-running as separate stages. 18:34:11 depending on whether it adds code complexity, "Obfuscation", or "Simplification" 18:34:34 From what I recall from my last benchmark, a large amount of time is spent in parsing the (larger) programs, and I thought if I at some point want to maintain a hill with the code, it'd make sense to keep the existing programs around in a precompiled form. 18:34:47 ah 18:35:01 i am in favor of the idea of fizzie hill. 18:35:16 since perhaps fizzie will implement fixed point scoring :P 18:35:24 That sounds like a place. 18:35:40 it should be a place 18:36:26 a pub. a pub called Fizzie Hill. 18:36:35 (I won't have actual time to think about this until the week after next, so don't expect miracles. So far I'm just fiddling a bit.) 18:36:59 no miracles????? but aren't you C Jesus? 18:38:17 fungot: While I'm busy, you work on that thing for me, m'kay? 18:38:17 fizzie: by the way? :d: :d :d :d) 18:39:32 i agree fungot. you should definitely be in charge of the hill. 18:39:33 quintopia: maybe for arithmetic. see http://www.gehennom.org/fis/ fib.sed for an example. of course 18:40:16 sed hill 18:40:16 there is no such file fungot 18:40:16 quintopia: this is scary. 18:43:14 what's up with the trend towards increasingly wider aspect ratios in screens? would it stop if we started measuring screen surfaces instead of diagonals? 18:43:40 quintopia: https://dl.dropboxusercontent.com/u/113389132/Misc/20140907-fib.sed there you go 18:43:57 > let x a b = (a^2 + b^2)/(a*b) in (x 17 9/x 16 9,x 16 9/x 16 10,x 16 10/x 4 3) 18:43:59 (1.0333391516844126,1.0518102372034956,1.068) 18:44:01 FizzBuzz in a tweet (clojure): (map #(cond (= 0 (mod % 15)) "FizzBuzz" (= 0 (mod % 3)) "Fizz" (= 0 (mod % 5)) "Buzz" :else %) (range 1 100)) 18:44:02 (It's just a recursive-sed experiment.) 18:44:04 The human field of vision is pretty wide. 18:44:49 [a 4:3 monitor has 6.8% more surface area than a 16:10 one with the same diagonal... etc.] 18:46:14 The forthbuzz I pasted the other day also fits in a tweet. 18:47:34 What was a tweet again, 140 characters? 18:47:39 fizzie: Yeah, I remember that. I was just amused that I could do it in clojure. Not sure I could in my usual Lisp, too verbose. 18:47:41 Yeah, 140. 18:48:19 75 tweetable languages in the http://golf.shinh.org/p.rb?FizzBuzz then. 18:48:23 Title: "anarchy golf - FizzBuzz" 18:48:36 That's new. 18:49:01 I'd consider any language that could not do this in a tweet to be a joke language somehow 18:49:23 The shortest Erlang solution there is 150 characters, and Erlang's no joke. 18:49:51 Its syntax is imo 18:50:01 Many of the others are esolangs, though. 18:50:04 Prolog scoping needs to die 18:50:12 befunge has a 54-byte solution 18:50:26 Shorter: (map #(condp = 0 (mod % 15) "FizzBuzz" (mod % 3) "Fizz" (mod % 5) "Buzz" %) (range 1 100)) 18:51:21 Prolog itself is only 91. 18:52:41 I wonder if 150 represents trying very hard, considering that brainfuck scores 180. 18:58:50 -!- variable has joined. 19:07:22 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds). 19:13:10 So what's the story with this yukibot? 19:16:11 quintopia: I was out to lunch, and now I just woke up from a nap. 19:19:06 it'd be nice to know whose bot it is 19:19:11 or if it just decided to turn up one day 19:20:41 -!- metasepia has joined. 19:23:07 boily: guess we can't hang out yet again as usual. :P 19:24:40 Well, hacksoc.org is the York thing, right? 19:25:09 And Taneb's going there, ISTR. 19:25:19 Aww. Well, I have a code-golf passing solution but it doesn't work with anarchy golf's clojure evaluator. 19:25:23 fizzie, it's barrucadu's bot 19:26:11 There we go. Do you happen to know if it does something exciting too? 19:26:49 fizzie: it just reads titles from links 19:27:33 now I'm trying to work out how to create a botloop with that 19:27:43 with no "Title: " prefix or quotes, it would be easy 19:28:10 -!- AnotherTest has quit (Ping timeout: 252 seconds). 19:28:14 ^source 19:28:14 https://github.com/fis/fungot/blob/master/fungot.b98 19:28:16 Title: "fungot/fungot.b98 at master · fis/fungot · GitHub" 19:28:16 yukibot: what happened to offby1!!! rampage!!! 19:28:31 That's not much of a loop, but at least it was already built-in. 19:30:51 http://zem.fi/crlf.html 19:30:51 Title: "this title has a newline PRIVMSG #esoteric :and this is a private message" 19:30:56 Aw. 19:31:10 Well, it's the kind of thing that has to be tried. 19:31:58 I think it's just a coincidence that that doesn't break it 19:32:06 Damn. there's a 77-char Clojure solution. I wonder how they did it. 19:32:17 Multiple spaces get stripped out to give a more useful title, I guess it's also eating newlines 19:32:49 http://zem.fi/ctcp.html 19:32:49 Title: "this title has an embedded CTCP PING 123 in it" 19:32:50 fizzie: i need to use fcolor but i can't find it 19:33:20 quintopia: http://zem.fi/2012-03-15-fcolor -- you're in luck, I think I fixed it just the other month. 19:33:21 Title: "Use Flickr to Define Colors | 2012-03-15 | zem.fi" 19:33:28 yukibot: blacklist linkinfo 19:33:59 Aw, and I didn't even get to the web page with a six-gigabyte title yet. 19:34:07 Hmm 19:34:15 It truncates titles over a certain length 19:34:30 Does it fetch the entire page in any case, though? 19:34:35 * barrucadu checks how he does that 19:34:55 …but that works by checking the length of the title 19:35:15 And yes, it fetches the page with wreq, and then processes it with HXT, so that's probably not going to be sufficiently lazy either 19:36:32 Just run the bot on a slow network 19:38:16 fizzie: the weight of each image in the average is inversely proportional to the standard deviation of its histogram? 19:39:22 quintopia: It's slightly complicated, http://zem.fi/2012-03-14-gcolor has a "technical details" paragraph, it's the same thing for fcolor. 19:39:51 yeah but i didn't read that paragraph, which is why i asked you :P 19:41:00 Well. It's related to the variance, that's for sure. 19:42:23 I didn't remember myself exactly. There's both the directionality parameter of the von Mises-Fisher hue distribution, and the variance matrix of the (saturation, lightness) bivariate Gaussian fit. 19:43:05 But also the average log-likelihood of each pixel, which is kind of a measurement of how well the image fits the (unimodal) distributions. 19:43:50 It doesn't really have any very good theoretical foundation, I just did something that seemed to make a bit of sense. 19:43:56 yeah i don't know that i could understand that without an hour of research, as i've never worked with directional stats 19:45:17 You can mentally replace the first one with "inverse variance", it's pretty much the same thing. 19:45:19 ion: thion 19:45:45 shachaf: you’re wachaf 19:45:54 true 19:47:27 Internet suggests that for large values of κ, it in fact asymptotically approaches a normal distribution with variance 1/κ. 19:49:44 -!- Sorella has joined. 19:50:22 -!- Sorella has quit (Changing host). 19:50:22 -!- Sorella has joined. 19:51:21 Anyway, to summarize, the weight is a geometric mean of "how narrow the peaks of the distributions are" plus "how well the pixels match the distributions". 19:51:32 fizzie: wouldn't it make more sense to use the square root of that? 19:53:09 fcolor seems to be giving waaaay to much weight to grayscale images 19:53:30 ideally, it wouldn't include them at all 19:54:02 That's pretty much due to there being no built-in bias for saturation. 19:54:19 But yes, it could be improved. 19:58:00 I'm reasonably sure I thought "I'll tweak this to be more sensible later" when writing that. 19:58:18 My own client automatically responded to the embedded CTCP PING 123 in the title (it says AUTO ANSWERED to indicate that) 19:58:35 zzo38: You're probably in the minority. 19:58:51 you can say that again 19:59:17 fizzie: Does anyone else do, though, or only mine does? 20:01:22 More Markdown drama: http://blog.codinghorror.com/standard-markdown-is-now-common-markdown/ 20:01:29 This message has an embedded CTCP PING 123 in it. 20:01:42 I found one bot-building library that supports them, but that's not a client. 20:01:46 Only weissschloss responded 20:02:50 Only one bot-building library does? 20:04:43 Perhaps several do, but that's the one I found quickly. 20:07:05 I didn't know mIRC is compatible with Linux. 20:07:07 -!- Frooxius has quit (Quit: *bubbles away*). 20:10:15 -!- Frooxius has joined. 20:14:26 -!- Phantom__Hoover has joined. 20:17:51 -!- ais523 has quit. 20:18:01 -!- ais523 has joined. 20:27:11 -!- NeroReflex1 has joined. 20:28:56 -!- NeroReflex has quit (Ping timeout: 276 seconds). 20:33:39 -!- NeroReflex has joined. 20:35:26 -!- NeroReflex1 has quit (Ping timeout: 276 seconds). 20:36:52 -!- ais523 has quit. 20:38:19 -!- shikhout has joined. 20:41:27 -!- shikhin has quit (Ping timeout: 245 seconds). 20:42:30 fizzie: fcolor is proving to me that fact that the phrase "purple mountain's majesty" is not entirely absurd. "dark mountain" gives a shade of lilac. 20:43:47 Going purely on anecdotal evidence, gcolor was giving me "better" results, but Google was bad about having an API for the image search. 20:53:13 Pikes Peak in certain conditions does actually look faintly purple. 20:57:43 lots of mountains do 20:58:11 Pikes Peak is the relevant one for the quote. :) 21:00:40 -!- Patashu has joined. 21:17:17 -!- KingOfKarlsruhe has quit (Ping timeout: 245 seconds). 21:23:56 -!- perrier_ has quit (Read error: Connection reset by peer). 21:25:08 -!- perrier has joined. 21:26:36 -!- perrier has quit (Remote host closed the connection). 21:26:49 -!- KingOfKarlsruhe has joined. 21:27:42 -!- Patashu has quit (Ping timeout: 245 seconds). 21:27:45 -!- perrier has joined. 21:35:29 -!- ^v has joined. 21:44:21 -!- KingOfKarlsruhe has quit (Ping timeout: 264 seconds). 21:44:27 -!- int-e has quit (Ping timeout: 245 seconds). 21:45:23 -!- ^v has quit (Ping timeout: 240 seconds). 21:47:04 -!- Jafet has quit (Ping timeout: 250 seconds). 22:00:47 -!- Phantom___Hoover has joined. 22:02:03 -!- heroux has quit (Read error: Connection reset by peer). 22:03:06 -!- zzo38 has quit (Remote host closed the connection). 22:03:52 -!- Jafet has joined. 22:04:21 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds). 22:11:36 -!- TieSoul has quit (Read error: Connection reset by peer). 22:11:54 -!- TieSoul has joined. 22:12:00 -!- heroux has joined. 22:12:30 -!- conehead has joined. 22:13:38 -!- ^v has joined. 22:13:46 -!- int-e has joined. 22:18:34 -!- NeroReflex has left. 22:35:52 -!- ^v has quit (Ping timeout: 240 seconds). 22:39:30 -!- int-e has quit (Ping timeout: 246 seconds). 22:46:10 -!- int-e has joined. 22:51:31 -!- ^v has joined. 22:58:44 -!- KingOfKarlsruhe has joined. 23:17:53 fizzie, fcolor for "york" yields a disappointing amount of images of New York 23:18:33 (nothing you can do about this, though) 23:41:37 -!- CrazyM4n has joined. 23:42:46 fcolor? 23:43:41 it's the best color