00:01:21 Jafet: ha, your suggestion might actually be required to implement e.g. 99bob 00:01:23 to terminate a loop 00:02:08 -!- derdon has quit (Remote host closed the connection). 00:04:55 No loops are necessary to implement 99bob ;) 00:06:14 True :P 00:06:28 Ohh, I don't need dynamic statement creation 00:06:32 Just line templates 00:06:46 Except I'd need universally quantified don't-come-froms >_> 00:08:00 don't-come-froms in the type system 00:09:18 How does one describe a programming language capable of implementing 99bob through more interesting means than cat does :) 00:10:06 nbob in O(log n) strokes 00:10:19 If you're feeling particularly generous, o(n) 00:10:30 Uhhh, O(log n) is impossible. 00:10:38 As usual, see Knuth for more information 00:11:33 Aha, waitasecond 00:11:42 At the very least, the number of bytes you have to write is O(n), so there will be an O(n) multiplier. You can't do better than O(n). And cat can do it in O(n). 00:11:55 Friendship: i think he's referring to program size 00:11:59 Ohhhhhhhhhh 00:12:09 I wasn't sure what "stroke" meant X-D 00:12:29 The program is extensionally equivalent to the output, anyway, so the output size is also o(n). 00:12:33 I think the intuition we want is that an nbob program can be written which is parameterized on n. 00:13:43 OK, 00:13:44 10 don't come from 20 and don't come from 199 and set n to 100 00:13:44 20 don't come from 10 and set n to n-1 00:13:44 30 don't come from 100+(n==0) and exit 00:13:44 101 don't come from 10 and don't print n 00:13:52 But having (==) is totally cheating, so lemme rework this... 00:14:23 The fun thing is that your programs are mostly uncomposable. 00:14:31 10 don't come from 20 and don't come from 100 and set n to 100 00:14:31 20 don't come from 10 and set n to n-1 00:14:31 30 don't come from 100-n and exit 00:14:31 100 don't come from 10 and don't print n 00:14:35 Well, it is less fun when you write the programs. 00:14:43 Tada, that's for (int i=99;i;i--) printf("%d\n",i) 00:14:49 *i); 00:14:51 Or close to it, anyway. 00:15:25 This is the best paradigm, you guys. 00:15:39 Ooh, "exit" is redundant 00:15:46 Just create a line that nothing can come from, and that can't come from itself 00:15:52 That will lead to execution. 00:15:55 err 00:15:56 *termination 00:16:02 Or execution of the program's life :P 00:16:33 The best thing about the CAPTCHA is it tells me when I forget to log in X-D 00:16:51 10 don't come from 20 and don't come from 30 and don't come from 100 and set n to 100 00:16:51 20 don't come from 10 and don't come from 30 and set n to n-1 00:16:51 30 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 100-n and exit 00:16:51 100 don't come from 10 and don't come from 30 and print n 00:16:57 Friendship: The old wiki had a CAPTCHA too :P 00:16:59 It was just bad. 00:17:11 Oh? I ... never noticed somehow??? 00:17:18 It was just a trivial sum. 00:17:37 Was it already visible before you tried to edit? Maybe I just never thought about it because it didn't really interrupt me. 00:18:04 10 don't come from 20 and don't come from 30 and don't come from 200 and set n to 100 00:18:04 20 don't come from 10 and don't come from 30 and set n to n-1 00:18:04 30 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 200-n and exit 00:18:04 200 don't come from 10 and don't come from 30 and print n 00:18:05 Fix't 00:18:14 (100-n would be actual program lines sometimes >_>) 00:18:21 Friendship: It showed up once you tried to edit for the first time. 00:18:26 elliott: is this a mix of INTERCAL and Forte? 00:18:37 It was based on the same "framework", just disabled for registrations and using a simpler CAPTCHA module. 00:18:40 ais523: No Forte, numbers don't change :P 00:18:52 ais523: But it's an INTERCALish-control-flow constraint-solving tarpit. 00:18:57 C-INTERCAL, to be precise. 00:19:03 CLC and J-INTERCAL, too. 00:19:09 So no, every INTERCAL apart from the original. 00:19:14 And COME FROM is undeniably INTERCALish :P 00:19:46 ais523: Basically, all you have on every line is an arbitrary number of don't come froms and one optional "additional" command (set, print, input or exit). 00:20:06 Control flow starts at line 10, and then goes wherever it's not banned. 00:22:41 -!- zzo38 has joined. 00:22:53 Come on, this is great!!!!!!!!! ! ! 00:27:12 -!- pikhq_ has joined. 00:29:19 -!- pikhq has quit (Ping timeout: 252 seconds). 00:35:28 Friendship: I pronounce fancy L as "L". 00:35:41 "Fancy L" is an ugly pronunciation. 00:35:57 I pronounce fancy l as "ℒ" 00:36:17 me 2 00:36:38 I pronounce fancy L as ⅃ 00:37:11 -!- pikhq has joined. 00:37:19 Quadruple L: 卐 00:37:46 box :'( 00:39:20 -!- pikhq_ has quit (Ping timeout: 265 seconds). 00:40:08 :'( 00:40:11 me 2 00:45:40 卍卍卍? 00:47:01 me 3 00:47:29 me 9 00:47:52 me G_{G_64} 00:48:12 help 00:48:45 wow at some date observations on Reddit 00:49:00 dobservations 00:49:11 HTML and Linux were initially announced within a week of each other 00:50:21 hmm, print and input should probably operate with ASCII, not digits 00:50:30 but one statement per character would be... 00:50:34 incredibly tedious 00:50:46 oh, I'll just have both print and print 00:57:58 -!- ais523 has quit (Remote host closed the connection). 01:04:43 I have added a few more to Truth-machine 01:06:35 yay 01:07:05 zzo38: are you sure dc is an esolang? :P 01:07:20 -!- pikhq has quit (Ping timeout: 245 seconds). 01:08:51 No 01:09:38 But it can be implemented anyways just to show the use of a few other programming languages that are different from others common ones. 01:10:05 righ 01:10:07 tt 01:12:42 -!- cheater_ has quit (Ping timeout: 244 seconds). 01:13:13 Deewiant: How painful is using Trifecta? 01:25:02 -!- cheater_ has joined. 01:33:54 -!- pikhq has joined. 01:38:01 @hoogle (a -> Bool) -> [a] -> m a 01:38:01 Data.List find :: (a -> Bool) -> [a] -> Maybe a 01:38:01 Prelude dropWhile :: (a -> Bool) -> [a] -> [a] 01:38:01 Data.List dropWhile :: (a -> Bool) -> [a] -> [a] 01:38:10 @hoogle (a -> Bool) -> [a] -> m (Maybe a) 01:38:10 Data.List find :: (a -> Bool) -> [a] -> Maybe a 01:38:10 Data.Foldable find :: Foldable t => (a -> Bool) -> t a -> Maybe a 01:38:10 Data.List findIndex :: (a -> Bool) -> [a] -> Maybe Int 01:40:53 @hoogle local 01:40:53 System.IO localeEncoding :: TextEncoding 01:40:54 GHC.IO.Encoding localeEncoding :: TextEncoding 01:40:54 Data.Time.LocalTime module Data.Time.LocalTime 01:41:35 -!- pikhq_ has joined. 01:41:38 kmc: I solved today. It was fun. You recommended io.smashthestack.org once, right? 01:42:21 i too solved it today 01:42:28 looking forward to my free t-shirt 01:42:32 io.sts is a lot of fun 01:42:44 level06 was insidious. 01:42:57 I spent far too long trying to do it in ways that didn't work. 01:43:06 of the stripe one? 01:43:10 Maybe it's not that I'm insidious so much as that I'm stubborn. 01:43:14 Yes, I haven't done other ones. 01:43:29 if you enjoyed it you should play io :D 01:43:42 I also spent far too long trying to stuff use argv[0] instead of buf in level03 01:43:58 *nod* 01:43:59 I got it working without ASLR. 01:44:02 -!- pikhq has quit (Ping timeout: 276 seconds). 01:44:03 (how does this channel feel about spoilers?) 01:44:55 Hmm, I guess that was a spoiler. 01:45:02 kmc: Well, I just /clear'd in case I want to try it later. 01:45:09 But I probably won't. 01:51:09 any opinions on Enlightenment? 01:53:55 *Opinions 01:54:53 kallisti: Mu. 01:55:22 any opinions on the Enlightenment desktop environment? 01:55:54 sux 01:55:56 hth 01:56:01 thx 01:56:11 Lisp or Tcl? 01:56:25 Lisp 02:03:30 -!- pikhq has joined. 02:04:01 -!- pikhq_ has quit (Ping timeout: 260 seconds). 02:13:55 have any of you guys switched to Gnome 3 and found it usable? 02:22:50 no 02:23:13 # of people in here who have tried gnome 3: at least 2 02:23:17 # of people in here who have tried gnome 3 and disliked it: at least 2 02:26:11 I feel so stuck when it comes to desktop environments... 02:26:19 I just want a well-maintained GNOME 2 forever. :P 02:26:22 basically. 02:27:45 -!- [insertnickhere] has joined. 02:27:55 maybe one day GNOME will be like "okay guys we were wrong we're switching back to a traditional desktop environment!" 02:28:06 (hahaha) 02:28:25 kallisti: just use xfce or switch to something better 02:28:26 @hoogle lookupWithDefault 02:28:26 No results found 02:28:37 "something better" what would that be. 02:28:47 what's a desktop environment 02:28:48 that's the one I'm looking for. 02:28:59 /kick monqy 02:29:04 @hoogle liftIO 02:29:04 Network.CGI liftIO :: MonadIO m => IO a -> m a 02:29:04 Control.Monad.IO.Class liftIO :: MonadIO m => IO a -> m a 02:29:04 Network.CGI liftIO :: MonadIO m => forall a. IO a -> m a 02:29:12 kallisti: Something that isn't a DE. 02:29:31 I use xmonad. 02:29:35 me too 02:29:36 eh..... 02:29:51 <[insertnickhere]> eh? 02:30:05 I'd have to invest a lot of time to even figure out if I want to use it. 02:30:16 so I haven't. 02:30:18 That applies to every environment equally. 02:30:22 (It took me 2 days.) 02:30:37 I suppose it would be easier to get accustomed to than something like gnome 3 02:30:42 due to the minimal features. 02:30:49 xmonad is not minimal. 02:30:52 Not with xmonad-contrib, anyway. 02:31:05 you're running Arch now right? 02:31:38 Yes, but I plan to migrate to Debian. 02:31:43 hm, why? 02:32:09 Because Arch is annoying me and I use Debian on solidity anyway. 02:32:22 I've heard bad things about out-of-date packages, which is the main reason I want to try something like Arch. 02:33:09 Debian stable is out-of-date. Debian testing is not. 02:33:27 Debian unstable is even less out-of-date (by a few weeks, and it keeps going through the release freeze), but is unstable. 02:33:31 what's the version of GHC for testing? 02:33:34 You use Ubuntu, yes? 02:33:37 (this is the ultimate test) 02:33:38 yes. 02:33:41 If so, then testing will be more up to date than what you have. 02:33:44 11.04, still. 02:33:50 because lolunity 02:33:57 http://packages.debian.org/testing/haskell/ghc6 7.0.4 02:34:04 http://packages.debian.org/unstable/haskell/ghc6 has 7.4.1, so testing should get it sometime soonish. 02:34:17 (within the next few weeks, or maybe a month or two at the worst) 02:34:18 I see I see. 02:34:24 that's not bad at all. 02:34:33 (Arch has 7.0.3.) 02:34:41 (7.2 was in [testing], but got removed.) 02:35:04 Oh, it's just called "ghc" nowadays, not ghc6. 02:35:07 Presumably because it's no longer version 6. 02:35:17 heh, good call Debian. 02:35:35 I was basically debating Debian vs. Arch 02:35:41 I think I'll just try Debian. 02:36:01 http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/ 02:36:07 (http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/amd64/iso-cd/debian-testing-amd64-netinst.iso to be specific.) 02:36:21 Use the graphical installer (not expert), use empty root password to get sudo. 02:36:28 Remember to de-check "Desktop environment", or it'll install GNOME. 02:36:34 Do it in a VM first. 02:36:42 oh wait I have to decide on what WM/DE I want. 02:36:49 You can do that after installation. 02:37:15 that requires me to actually make a swift decision. 02:37:41 well, not with a VM 02:39:36 kallisti: If you do use xmonad, don't use Debian's. 02:39:41 okay. 02:39:42 (This applies to Haskell packages in general.) 02:39:47 It is OK to use Debian's cabal-install, however. 02:39:51 I'll try it out in VirtualBox. I've certainly procrastinated long enough. 02:40:22 you cabal install xmonad is fine? 02:40:37 Yes, that's fine. (You'll want cabal install xmonad-contrib pretty soon after that for non-trivial configuration.) 02:40:45 Note that occasionally the nightly installer can fail to install a working system, but that's rare and will fix itself in a day or two. 02:41:00 (The testing installer image is actually the nightly testing build of the installer itself that just happens to install testing.) 02:41:14 is there such a thing as a command line web browser? 02:41:56 Do you seriously not know the answer to that? 02:42:34 yes 02:42:52 I haven't had a need for a command line web browser. 02:43:10 sudo apt-get install (w3m|lynx) 02:43:12 (Preferably w3m.) 02:43:17 But come on, how do you not know about lynx? 02:43:32 what set of circumstances would lead me to know about lynx? 02:44:09 wget $1 --output-document=- | html2text | less 02:44:24 kallisti: The internet. 02:45:00 -!- aloril has quit (Ping timeout: 265 seconds). 02:46:52 lol this flash support SUCKS 02:46:58 come on where's my Web 2.0? 02:47:18 whats that 02:47:27 it's the second version of Web 02:47:42 :o 02:47:44 kallisti: Come on, w3m can do images. 02:49:10 reading Wikipedia is actually pretty reasonable. 02:50:03 -!- [insertnickhere] has changed nick to PiRSquared. 02:50:37 hmmm # thingies don't work correctly... 02:50:40 I don't remember what they're called 02:51:05 oh wait 02:51:07 suddenly, they work! 02:51:30 what 02:52:05 you know, # thingies 02:52:06 in the URLs 02:52:26 pound/hash/bangs? 02:52:37 no they have a name... 02:53:43 elliott: I have 4 GBs of memory, is 500 MBs reasonable for a VirtualBox install of Debian? 02:53:46 kallisti: anchors 02:53:59 and 512 is reasonable, 1024 would be reasonable too 02:54:11 check free -m (second line) to see how much you can give away 02:54:26 I'm using exactly half of my memory right now. 02:57:43 VirtualBox.exe Private Bytes 144,520 K Working Set 108,544 K 02:57:54 -!- aloril has joined. 03:03:09 Jafet: WINDOWS USER DETECTED 03:03:12 * elliott sirens 03:04:46 mv /usr/bin/VirtualBox /usr/bin/VirtualBox.exe 03:05:37 -!- NihilistDandy has quit. 03:06:05 -!- oerjan has quit (Quit: Good night). 03:08:13 wow this installer is really swift... 03:08:32 Longer than Ubuntu's... 03:08:44 I mean the interface part. 03:08:48 not the actual installation. 03:08:52 kallisti: Oh, and you don't want the automatic HD formatting stuff. 03:08:58 It creates like 4 partitions. 03:09:01 ?? 03:09:08 It'll offer to organise the HD partitions for you. 03:09:12 lol 03:09:13 no thanks 03:09:15 Just choose the manual partitioner and create one big jfs partition or whatever. 03:09:34 why not have an encrypted home? 03:09:44 Why not have an encrypted /? 03:09:47 I mean, for this VM it matters not... 03:09:50 or that 03:10:03 kallisti: You can do that by doing that. 03:10:12 It'll offer to do LVM stuff for you. 03:10:12 All that /home stuff only makes sense for multi-user systems. 03:10:16 But, err, have you ever used LVM? 03:10:19 no 03:10:34 I'd recommend not caring about encryption, then. 03:11:01 unless that's what Ubuntu does.. 03:11:56 Oh, well, probably. 03:12:28 "All files in one partition" that doesn't sound like 4 partitions to me. 03:12:30 is it lying? 03:13:28 Well, that might work. But it'll use the wrong filesystem. 03:13:57 fsvoe wrong 03:14:11 (note: that's "for some value of elliott") 03:14:33 maybe I should say fsvoe-wrong 03:15:09 kallisti: Well, ext3 is deprecated. 03:15:13 ext4 is planned to be deprecated by design. 03:15:17 btrfs is unstable and Oracle-controlled. 03:15:23 It's almost certainly going to select ext4. 03:16:15 -!- aloril has quit (Ping timeout: 255 seconds). 03:16:56 kallisti: So unless you *want* to store your data on something planned-obsolete for btrfs by design... 03:17:26 >_> 03:17:42 maybe? 03:17:49 maybe I just don't give a shit for this install... 03:19:30 The idea of a test install is that you do what you plan to do for real, but whatever. 03:19:34 what is the One True Elliott filesystem. 03:19:45 or, put more simply 03:19:47 what do you recommend/ 03:20:08 I use jfs. 03:20:11 my main goal is to see how I like Debian with various interfaces on top. 03:20:19 the filesystem choice isn't really crucial to any of that. 03:20:36 By the way, if you try Xfce, don't install xfce4-goodies. Just install the core xfce package. 03:21:21 Second by the way: Use XFCE. It's the only tolerable one ^^ 03:22:50 I'm pretty sure I already know what to expect from XFCE, but I might try it if I don't like xmonad. 03:22:57 and then, there's always KDE... 03:22:58 *Xfce 03:22:59 *Xfce 03:22:59 -!- zzo38 has left. 03:23:02 -!- zzo38 has joined. 03:23:07 *Eliot 03:23:07 xFCE 03:23:07 KDE 4 is unmitigated shit. 03:23:28 (You can also ask Friendship, pikhq and Vorpal, former users of KDE 3, if you want a second opinion on this.) 03:23:37 At least I think pikhq used KDE 3. 03:24:13 it's for some reason taking a reaaaalllly long time to erase data on the virtual hard drive its installing itself on... 03:24:22 Why would it erase data? 03:24:25 There are no existing partitions. 03:24:36 uh, I don't know. it is. 03:24:44 should I be concerned? :P 03:24:49 How did you set up the filesystems? 03:25:22 with the automatic settings, on the one sda device available to install on, using encrypted LVM 03:25:32 and /home partitions 03:25:37 / 03:25:51 Have fun with that. 03:28:01 okay. 03:29:37 -!- aloril has joined. 03:47:09 -!- Nisstyre has quit (Quit: Leaving). 03:48:54 KDE 4 is so, so, so bad :'( 03:49:04 And KDE 3 was so, so, so good :'( 03:50:45 As much as ais wants me to keep this nick, I think I prefer "Gregor" 03:51:13 Gergor 03:52:45 shachaf: Why is Parsec? 03:53:58 elliott: Ask ddarius. 03:54:16 Wait, ddarius isn't the maintainer anymore. 04:06:33 -!- augur has joined. 04:11:57 -!- PiRSquared has quit (Quit: restarting client). 04:15:38 -!- pikhq_ has joined. 04:18:21 -!- pikhq has quit (Ping timeout: 240 seconds). 04:22:41 Hmm, starting execution at line 10 is ugly. 04:22:50 @hoogle findMin 04:22:50 Data.IntMap findMin :: IntMap a -> (Key, a) 04:22:50 Data.IntSet findMin :: IntSet -> Int 04:22:51 Data.Map findMin :: Map k a -> (k, a) 04:22:52 @hoogle minView 04:22:52 Data.IntMap minView :: IntMap a -> Maybe (a, IntMap a) 04:22:52 Data.IntSet minView :: IntSet -> Maybe (Int, IntSet) 04:22:52 Data.Map minView :: Map k a -> Maybe (a, Map k a) 04:23:16 > M.findMin M.empty 04:23:17 *Exception: Map.findMin: empty map has no minimal element 04:23:23 shachaf: Look at that shit. 04:23:51 elliott: M.minView? 04:24:00 Oh. 04:24:02 You just said that. 04:24:26 Well, ASCII partial question, get a partial ANSI 04:25:10 :( 04:25:36 type Exec = ReaderT Program (StateT Env (RandT StdGen IO)) 04:28:27 Do I have enough monads yet? 04:30:10 You should name your program ExecMonad 04:36:36 wait what distinguishes RandT from StateT 04:40:35 *Main> System.Random.newStdGen >>= (Control.Monad.Random.runRandT (Control.Monad.State.runStateT (Control.Monad.Reader.runReaderT run test) M.empty) $) 04:40:35 Hello, world! 04:40:35 woot 04:42:08 -!- MoALTz has quit (Read error: Operation timed out). 04:42:26 well, according to the source, RandT is just a newtype of StateT 04:42:51 -!- MoALTz has joined. 04:44:28 kallisti: What's the difference between anything and \mathbb{N}? 04:44:37 yes we've been over this. 04:44:48 notice I didn't say anything about it being useless as a result. 04:45:01 RandT, e.g. has no put. 04:45:05 Or get. 04:45:07 Or modify. 04:45:12 I was curious as to what the implementation difference was, I found that the answer was "not very much", and commented on it. 04:48:11 Do you think you are going to lose if you have PROFESSOR OAK card? 04:49:06 cat in Tangle: 04:49:08 10 don't come from 10 and don't come from 21+c and getchar c 04:49:08 20 don't come from 11+c and don't come from 20 and putchar c 04:49:28 Sometimes my opponent's resistance to my attacks is actually to my advantage 04:49:45 And it isn't really rare either 04:50:04 Come on, guys, this is literally the perfect paradigm. 04:50:19 Wait, it's slightly broken. 04:50:30 10 don't come from 10 and don't come from 21+c and getchar c 04:50:30 20 don't come from 11+(c%2) and don't come from 20 and putchar c 04:50:33 There. 04:50:36 > (-1) `mod` 2 04:50:36 1 04:50:39 > (-1) `rem` 2 04:50:40 -1 04:50:51 Right. 04:51:26 % almost makes loops TOO EASY. 04:51:45 They don't have enough energy to attack, they won't get knocked out, they have not enough energy to retreat either, and they are also confused. 04:51:58 I bet zzo38 likes my language. :( 04:52:29 How much do you want to bet? 04:52:37 $9,99999999,9999,4 04:52:46 thats a lot of 4s 04:52:54 I do not have that much money do you have a lot of money? 04:53:23 yes lots infinite 04:53:55 Friendship: BTW, sorry for omitting the fact that ℒ is defined as P restricted to just the program L from [[ℒ]]. 04:53:56 Can you bet against someone who does have a lots of money? 04:53:59 Not quite sure how I managed that. 04:54:03 elliott might even have... An awful lot of money. 04:54:12 Which is enough for a big diamond, you know. 04:55:29 -!- MoALTz has quit (Read error: Operation timed out). 04:56:16 shachaf: Do *you* like my language? 04:56:47 I think you should mind your language, young man. 04:57:05 Do you ever say anything interesting? 04:57:10 I mean, I don't. 04:57:18 elliott: *defined as L restricted to ust the program P 04:57:26 -!- MoALTz has joined. 04:57:28 * shachaf hasn't been reading the logs. 04:57:36 Wait, an esoteric language in #esoteric? 04:57:40 Yes. 04:57:49 10 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 200 and set n to 100 04:57:49 20 don't come from 30 and set n to n-1 04:57:49 30 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 200-n and exit 04:57:50 200 don't come from 10 and don't come from 30 and print n 04:57:54 Go to, like, some other channel for that, man. 04:57:57 This program prints 99, 98, ..., 0 and then stops. I think. 04:57:58 No, I don't like your language. 04:58:06 But it's the best. 04:58:25 Needs more indirect comefrom. 04:59:10 My opponent is idiotic they keep playing bench pokemon cards but in fact their bench pokemon cards keep getting knocked out due to their resistance to my cards. But even if they didn't do that, they would still lose due to running out of cards in their draw pile because they have card "advantage"... ya, right... what kind of "advantage" is that??? 05:00:01 zzo38: Are you confused about the notion of card advantage or quoting? 05:00:26 -!- coppro_ has changed nick to coppro. 05:00:28 coppro_: I am not confused. It is my opponent who is confused 05:00:35 elliott: Why doesn't 200 come from 200? 05:00:48 I told you already 05:00:52 zzo38: card advantage is a significant advantage 05:00:57 shachaf: Because it shouldn't jump straight from 200 to 200. 05:01:02 It should go to 20 (to decrement) first. 05:01:17 coppro: Only if the cards can get them out of the bad situation in time..... 05:03:50 coppro: What kind of "advantage" is that? 05:04:37 zzo38: In specific moments it may not be the ideal play to go for more cards 05:04:44 but in the long term, the player with more cards wins most TCGs 05:04:47 -!- MoALTz has quit (Read error: Operation timed out). 05:05:56 and most games end before anyone gets decked 05:07:24 I usually win a quarter of the time due to opponent getting decked because my defense is strong enough (often my opponent's resistance to me and stuff like that is what is to my advantage, not theirs) 05:10:04 huh 05:12:44 If you think that resistance is good thing to have then you are also confused 05:13:10 everyone is confused 05:13:31 zzo38: you should use your Secret Strategy and use it to win pro games. 05:13:42 doubly used. 05:13:52 kallisti: It isn't secret I told you what it is. 05:14:00 BUT DO THE PROS KNOW? 05:14:04 you could capitalize off of that. 05:14:06 revolutionize the game. 05:14:21 I suppose the pros must know too, isn't it? 05:14:31 probably 05:14:36 but you never know 05:15:35 coppro just threw some fancy strategy-related terminology and you demonstrated how it's meaningless. maybe the pros are just stuck in a broken vocabulary. 05:16:03 I judge Magic tournaments 05:16:08 It's OK: coppro is just confused. 05:16:23 coppro: OK; well, I was talking about Pokemon card it is a different game. Specifically, Pokemon card old-style. 05:16:32 coppro: STICK TO YOUR OWN GAME. 05:16:32 I know in SC2 strategy it's very common that a strategy "just works" because it beats the common trend in that matchup. 05:16:49 10 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 200 and set n to 100 05:16:49 20 don't come from 30 and set n to n-1 05:16:49 30 don't come from 10 and don't come from 20 and don't come from 30 and don't come from 200-n and exit 05:16:49 200 don't come from 10 and don't come from 30 and print n 05:16:49 (10) [10, 20, 30, 200] n = 100 05:16:51 (20) [30] n = n-1 05:16:53 (30) [10, 20, 30, 200-n] exit 05:16:55 (200) [10, 30] print n 05:16:57 shachaf: The former is, like, the better syntax, right? 05:17:26 well, most of those strategies are reliable in their own right, but they're especially effective because they beat the common strategy of the month, or whatever. 05:17:33 I don't believe there could be a good syntax for this language. 05:17:51 shachaf: You're just jealous because you haven't invented your own esolang. 05:18:13 elliott: that's definitely shorter, which is better for an esolang IMO. 05:18:17 the words are very COBOLy 05:18:57 elliott: I totally did! 05:19:08 kallisti: What does SC2 strategy mean? 05:19:16 starcraft 2 05:19:21 The definition went something like s/blah/>/ s/bluh/ shachaf: Go on, then. 05:19:28 I did it just to annoy you, or someone in this channel. 05:19:36 kallisti: Shorter is not better for esolangs. That's terrible. 05:19:38 You're terrible. 05:19:41 It's meant to be COBOLy. 05:19:44 That was the idea. 05:19:46 You're terrible. :( 05:19:48 elliott: Yes, OK, I'm just jealous. 05:19:49 elliott: s/shorter/more concise/ there is that better? 05:19:50 Also, die. 05:20:25 elliott: all of the english word bloat is just obfuscating the computational model blah blah 05:21:02 give me a reason I shouldn't moderately improve the semantics of Dupdog, and then name the result "Dupdog" 05:21:07 +why 05:21:20 Because you'd "improve" it by making it trivially TC and also you're dumb. 05:21:24 no 05:21:26 that's not what I mean 05:21:29 I plan to name that language something else. 05:22:07 Call the result Dupdog++ or something. 05:22:11 ew. 05:22:25 ZUPDOG 05:22:29 there we go. 05:22:37 Hey shachaf, how should I handle EOF on numeric input? 05:22:50 implementation defined. problem solved. 05:23:04 elliott: Undefined behavior. 05:23:13 shachaf: Gross. 05:23:27 Implementation-defined behavior. 05:23:32 Wait, are we still talking about your language? 05:24:37 Yes. 05:25:49 Define EOF to launch missiles. 05:26:18 I hate you. 05:26:42 Why does eliot hate me. :-( 05:26:47 Have you ever read about Washizu Mahjong? The reason Washizu lost is because he made up a rule that only he is allowed to decide whether to continue or to stop after every 2 hanchan. Akagi did multiply all money/blood lost by ten which is why Washizu was allowed to make up that rule. Both rules combined is what make such things happens 05:29:25 elliott: just have the program terminate if it attempts to read numeric input on EOF. 05:30:30 That's horrible. That makes numeric input unusable. :( 05:30:42 ? 05:30:49 it does? 05:31:09 Because you can't handle EOF. 05:31:23 EOF = -1 05:31:50 That makes inputting -1 impossible. 05:32:02 None 05:32:03 No, represent -1 with -2. 05:32:03 nil 05:32:06 Null 05:32:08 Nothing 05:32:14 kallisti: No. 05:32:26 That makes inputting -2 impossible. 05:32:42 Well... 05:32:48 Just represent n with n-1 05:32:55 1 05:33:17 quick! exception system! 05:33:29 also what's the name of this language so I read about it. 05:33:37 Uh-oh. 05:33:47 Tangle might be the name. 05:33:49 I haven't decided yet. 05:33:59 just make an esoteric exception system 05:34:00 "@" stands for "Tangle"?! 05:34:06 I recommend the one that I and, I think ais, came up with 05:34:18 that has a "lower" in addition to a "raise" 05:34:49 And what does the "lower" mean? 05:35:07 (throw/unthrow works as well, as far as naming) 05:35:27 lower would signal the exception down a stack level, or terminate the program if it's at the lowest point already. 05:35:37 raise is your typical exception throw, which travels upward. 05:35:57 I think you have your directions reversed. 05:36:04 But running code is always at the (top|bottom)most element of the stack. 05:36:07 So I don't see how that would work. 05:36:20 well, that would have to not be the case. 05:36:28 during exception handling. 05:36:29 at least. 05:36:40 Oh, so unthrow would work in a catch block only? 05:36:54 yeah that's the simplest way I see it working.. 05:37:05 there's possibly other ways to do it that I haven't considered, of course. 05:37:11 CL's conditions can do that. 05:37:23 i.e. you can raise a condition in the code that raised one, inside a handler thing. 05:38:26 also in terms of raise/lower mismatch. I'm sorry that I was once a heavy Python user. 05:39:38 but yeah esoteric exception system 05:39:39 best option. 05:40:33 otherwise a) terminate b) use some special value c) implementation defined 05:41:25 (b) is impossible 05:41:27 (a) sucks 05:41:31 (c) i'm writing the impl right now 05:41:48 then yeah, since those four options are the DOMAIN OF ALL POSSIBILITY 05:42:01 that means you have to make an esoteric exception system. 05:43:22 I'm considering just removing numeric IO support. 05:43:47 But since there's no way to abstract anything since every change affects the whole program, decimal conversion would be... "fun". 05:44:28 Other than that, I'll probably go with (a). 05:52:50 nexts :: Integer -> Program -> Exec [(Integer, Command)] 05:52:51 nexts i = fmap (`appEndo` []) . execWriterT . mapM_ consider . M.toList 05:52:51 where 05:52:51 consider (j, Line es c) = do 05:52:51 ok <- lift $ noneEqual i es 05:52:51 when ok . tell . Endo $ ((j, c) :) 05:52:55 This would be elegant, were it not so slow. 05:55:07 -!- Tiktalik has changed nick to Captain_Obvious. 05:55:13 -!- Captain_Obvious has changed nick to Tiktalik. 06:06:41 fizzie: Where fungot 06:10:25 Friendship: Ping 06:12:04 What if you use indexed writer monad, in case you can use morphisms that are not endomorphisms? 06:27:30 elliott, I assume you keep up with /r/haskell 06:27:38 Note the separation of conduits from resourcet 06:39:29 I do keep up with /r/haskell, yes. 06:39:54 @hoogle m a -> k -> Map k a -> m a 06:39:54 Data.Map findWithDefault :: Ord k => a -> k -> Map k a -> a 06:39:54 Data.Graph.Inductive.Query.BFS lesp :: Graph gr => Node -> Node -> gr a b -> LPath b 06:39:54 Data.Graph.Inductive.Query.BFS esp :: Graph gr => Node -> Node -> gr a b -> Path 07:33:06 Friendship: Ping2 07:37:10 ah, I see some good ideas came about during the night... don't come from :) 07:37:45 elliott: have you implemented that yet? 07:37:57 olsner: i have a haskell implementation, yes, though one without a parser 07:39:33 ah, neat 07:41:14 it's just 07:42:03 lineno don't come from X and don't come from Y and ... and (set VAR to EXPR | getint VAR | getchar VAR | putstr "literal string" | putint EXPR | putchar EXPR) 07:42:08 except you can also leave out the command on the end 07:42:11 also X and Y are exprs 07:42:20 and expr is const/var/negate/add/sub/mul/div/mod 07:42:28 dunno whether it needs anything more for the turingosity 07:43:03 sounds like it has too little state, unless the variables are arbitrary-precision 07:43:12 they're bignums 07:43:14 integers 07:43:41 though, yes, you might need "infinite lines" to do BF or such because of that 07:43:41 ah, beegnooms 07:43:41 > 1000000000000000000000000000000000000000 - 1 07:43:42 999999999999999999999999999999999999999 07:43:44 however modulo is very helpful there 07:44:41 olsner: so how much do you know about rsync :P 07:45:06 rsync? I've used it 07:45:19 excellent, how decent is the daemon stuff 07:45:31 no idea, I've only used it over ssh 07:46:36 pah 07:48:40 -!- pikhq has joined. 07:48:48 -!- pikhq_ has quit (Ping timeout: 252 seconds). 07:52:35 -!- fungot has joined. 07:53:17 fizzie: Thanks; WHAT DO YOU KNOW ABOUT SRYNC 07:53:18 RSYNC 07:53:43 Isn't it some kinda band? Wait, no, that was 'N Sync. 07:54:32 I know it does deltas. 07:54:43 ∆s. 07:54:55 :( 07:55:08 Like, be more helpful, 'n shit. 07:55:16 (That's not even a Greek Δ, it was the mathematical-operator ∆.) 07:55:29 I'm not sure what you want to know about it. 07:57:29 Like, the daemon, and shit. 07:59:58 'vn't used it; I've just done the pass-over-ssh one. (Though I guess technically it runs the same code, it just spawns the remote side over ssh instead of having a DEMONIC.) 08:00:19 NOT YOU TOO 08:00:23 What about zsync? 08:02:04 Oh, I see you interromagated others, like, just before. (Also haven't done any zsyncing.) 08:02:57 You should kick yourself. 08:03:00 For being unhelpful. 08:03:04 As God I demand it. 08:03:34 -!- ChanServ has set channel mode: +o fizzie. 08:03:36 -!- fizzie has kicked fizzie We don't tolerate unhelpful people around these parts.. 08:03:36 -!- fizzie has joined. 08:03:45 Thank you. 08:04:05 Have you considered that you may be feeding my narcissistic God complex? 08:04:47 I don't generally "consider". 08:05:03 Hmm. I didn't think it'd autojoin. I'm not supposed to have anything like that on. Though maybe it's the bouncer. 08:05:15 "autojoin_on_kick (default: true): If set to false bip will not attempt to re-join a channel from which you were kicked." 08:05:19 What sort of foolishness. 08:05:43 I know channels where you get autobanned for autojoining after an (auto)kick. (Okay, the last one is not typically auto.) 08:06:27 It should be. Can you set up a bot to automatically kick people? 08:06:28 ಠ_ಠ What client defaults that to true? 08:06:51 Oh, bip. Missed it. 08:07:01 Note to self: avoid bip 08:07:19 It's not exactly a client, but still. 08:07:43 It's a bouncbereoubrcaerboaercoaerc bonbon. 08:11:00 If I make document new programming language similar Haskell but half of things difference and other things too, then maybe it can be called "Ibtlfmm"? (O, it is like, "Iuckqlwviv Kjugobe", but completely difference except first letter? Also the letter they seem to just put together... but both of these thing have their ways of making the letters) 08:11:35 yes 08:11:37 > map pred "Iuckqlwviv Kjugobe" 08:11:37 "Htbjpkvuhu\USJitfnad" 08:12:33 Both of these thing have their *different* ways of making the letters. 08:14:18 How many Scrabble variants have you played? 08:15:12 1 08:15:37 How many have you heard of, read about, and/or invented? 08:17:44 9 08:18:29 elliott: SCRABBLE EXCEPT ALL THE TILES ARE BLANK 08:18:39 scrabble is called alfapet over here 08:18:46 I know about Ecology Scrabble, where if there is blank tile on the board, and you have a letter in your rack which can be used in its place, then you can switch it around (and it is still your turn). 08:19:07 shachaf: Scrabble where you flip a coin but it's really really big. 08:19:22 I also know a variant where the game is timed using chess clocks. Each player is given 18 minutes per game. 08:19:41 I also know a variant where the game is timed using chess clocks. Each player is given 19 minutes per game. 08:20:22 Is it the same except the time limit? 08:20:47 Yes. 08:20:58 I also know a variant where the game is timed using chess clocks. Each player is given 40000 minutes per game. 08:21:45 I also know a variant where the game is timed using chess clocks. Each player is given 30 minutes per game. 08:22:17 I also know a variant where the game is timed using chess clocks. Each player is given G_64 minutes per game. 08:22:30 I also know a variant where the game is timed using chess clocks. Each player is given -1 minutes per game. 08:22:58 And there is double-bag Scrabble, in which you put all the consonants in one bag and vowels in another, and then when you pick up tiles from the bag you select at first, how many consonants do you want and how many vowels do you want. 08:23:35 Another idea would be double-deck, where there is twice as many of all tiles; possibly you can extend the board by adding an extra row/column at each edge. 08:25:26 The way I prefer to treat blanks is that the letter it corresponds to can change at any time as long as it is the same letter at the beginning of your turn as it is at the end of your turn, and the same letter horizontally as it is vertically. 08:27:10 Scrabble in 4D! 08:27:17 scrabble in 1d 08:28:34 I wonder what they’ll call 3D movies when real 3D display technology becomes available, since they call stereo-2D “3D” now? “4D”? 08:29:15 conti-- contingent on it being scrabble 08:29:32 ion: Perhaps 3.5D. (See: 3.5G networks.) 08:29:36 heh 08:29:48 ;-o 08:29:51 The way I usually play is "challengeless"; you are allowed to view the dictionary at any time whether or not it is your turn, and if you challenge a word there is no penalty; if it is a correct word nothing happens and if it is incorrect the player takes back the tiles and can play again. It can be combined with timed games to make time penalties for such things 08:29:53 ion: TruD 08:29:58 RealD 08:30:00 TurD 08:30:03 3+1D 08:30:12 ion: There's already a "4D movie theatre" at the Linnanmäki amusement park. (It's got chairs that wiggle and some water-sprayers or whatevers.) 08:30:26 ion: I dislike calling those movies "3D"; I call it "stereovision" instead 08:30:31 shachaf: Can you write my declarative debugger for me? 08:30:33 hmm 08:30:34 Three spatial dimensions and one wetness dimension 08:30:48 It doesn't do stereo-2D, though. :p 08:30:53 ................... getting ideas 08:30:57 quick somebody help 08:30:59 (At least IIRC.) 08:31:05 shachaf: Also, have you rsync? 08:31:06 (It's been there long before "3D" movies popularimatized.) 08:31:14 elliott: Sure. 08:31:19 "I declare this program debugged" 08:31:19 shachaf: Have you rsync daemon? 08:31:22 Oh. 08:31:40 What's the rsync question? 08:31:44 scrabble using an alphabet in mathematical sense 08:32:08 hence, brainfuck scrabble 08:32:13 Scrabble where the board gets random reärranged on every turn. 08:32:16 Scrambble. 08:32:37 each [ must have a matching ] 08:32:41 shachaf: rsync daemon? 08:32:43 That is the question. 08:32:44 ...... oh wait 08:32:50 what about.. a befunge scrabble 08:33:11 Scrabble where the tiles have single digits and the words must be base-36 numbers which represent ASCII strings. 08:33:41 I repeat: Scrabble where you flip a coin but it's really really big. 08:33:56 The that’s-what-she-said scrabble? 08:34:37 Scrabble where the only legal move is to describe a Scrabble variation. 08:34:41 ion: No. 08:34:54 itidus20: Yes I have thought of various things like that, not only brainfuck with matching [] but also where pipes must be connected, where numbers are used and you must subtract or multiply or compare them or something, and even an idea where the tiles have one meaning horizontally and another vertically 08:35:46 i think we can safely agree that continuous scrabble is only going to derail the conversation, and thus disregard.. lions tigers and bears 08:37:01 A scrabble board with a torus topology. 08:37:23 ack.. ive been here long enough that the tropes seem old 08:37:42 Scrabble in rot-13. 08:38:01 Scrabble where the only letter is Q. 08:38:04 And there's only one. 08:38:04 ion: that one has the nice benefit that we already know what tile distribution to use 08:39:08 What about, a Scrabble game where the tiles are marked on both sides, with different letters on each side so that each tile has two purposes 08:39:19 That already exists. 08:39:28 Little known fact: The other side of every scrabble tile is blank. 08:40:07 shachaf: if you know the paddle move, you can win at scrabble every time 08:40:10 shachaf: I know that, but the other side is not usable in the game 08:40:14 Palindrome scrabble 08:40:36 zzo38: Sure it is. 08:40:50 Some people play by mixing tiles face down, others in a bag. Another way is to use the bag and gloves like Washizu Mahjong does. 08:40:51 (until your friends notice there are five blank tiles on the board...recommend getting them drunk first) 08:41:05 But that is cheating 08:41:25 zzo38: yes, zzo38. Cheating is a scrabble variant 08:41:40 (Unless you make a variant where it is allowed, of course; in which case you can play any tile blank and not earn points for it) 08:41:50 indeed, zzo38, i just used "zzo38" twice in that last post, zzo38 08:44:44 I also know a variant where the game is timed using chess clocks. Each player is given 20 minutes per game. 08:47:03 Is there a way to use TFM ligature/kern programs or combining with something, and will make it Turing complete? 08:58:47 There's also the variant where all the tiles are blank and each one is worth more points than all the others put together. 08:59:49 -!- NihilistDandy has joined. 09:00:21 Make up some esolang that forms a category, but that it is not Cartesian-closed, that the objects do not correspond to the types, and the morphisms do not correspond to functions 09:00:37 So it is a completely different kind of category than would be used in such as Haskell and so on. 09:13:30 "Catch-22 (logic): A situation where someone is in need of something that can only be had by not being in need of it." I have once made up a computer game like that, where at one point in the game you are offered two water energies, but they say they will only give it to you if you don't need it. (You do need it later in the game.) However, if you say you don't need it they do believe you anyways 09:14:27 That's not how Catch-22 works. 09:15:43 I know, it is not quite like that. I simply copied the description from Wikipedia and then mentioned something I made before, based on what the description reminded me of. 09:16:31 a real catch-22 is the newcomb paradox played by someone with a $1,001,000 debt 09:17:21 O, now I understand! 09:27:24 Friendship: PINGGGGG 09:30:48 I have read article about "Chainstore paradox" in Wikipedia; what is the goal? If the goal of each player is to maximize his own score, it seem A should always select COOPERATIVE (since that gives A two points) and therefore everyone else should always select IN (since that gives them two points when A selects COOPERATIVE). I am a bit confused? 09:39:59 As far as I can tell they should not select OUT just because if AGGRESSIVE is selected once in order to deterence, it seem wrong since that prevents earning a score, just once, while it is each one an individual adding to the score you cannot affect the past 09:45:07 -!- NihilistDandy has quit. 09:56:16 -!- elliott has set topic: So good to be in the Morning....In America! | http://codu.org/logs/_esoteric/ | http://esolangs.org/wiki/ has moved servers!. 09:59:12 In here, is night time 09:59:25 That's because you're not in True America. 09:59:32 I know I'm not. 10:01:14 “So good to be in the Morning....In America!” doesn’t necessarily imply it *is* morning in America. 10:01:45 No, the reason is because of timezone; whether or not you are in True America is irrelevant. 10:01:47 but it is though 10:01:54 it is morning in True America 10:01:55 right now 10:10:46 in True America it is always morning 10:10:52 this is how I can tell it is morning in True America 10:11:00 right now 10:11:36 I have a map of where the sun rises. 10:15:52 i'll give you a hint everyone: anywhere outside the arctic circle, and most places within it 10:16:19 No, I mean for a given date and time 10:17:22 quintopia: not in True America 10:17:26 the sun never sets, so it never rises 10:17:41 an eagle cries off in the desert, weeping for Freedom; he dwells in False America 10:18:18 elliott: you are a liar and a heretic 10:18:31 the sun is always rising in true america! because it is always morning! 10:19:11 a moving sun would be imperfect 10:19:18 it's So Good morning because it's always the best 10:19:20 no need for change 10:19:24 So Good in America 10:19:36 NOTE : this america ( C ) president of america 10:20:30 elliott: it is not the sun that moves. it is the hopes and dreams of True Americans that is truly rising! 10:21:51 Foul! Cretin! Devil! They cannot rise because they are already at maximum levels of dreaming and hoping! 10:21:58 So Good in America! 10:23:01 they rise beyond the maximum 10:23:06 they never stop 10:24:17 http://esolangs.org/wiki/Basic_Input/Output_Commander i am not sure what to make of this 10:24:53 mythical? 10:40:30 Seriously mythical. 10:41:41 yay spam 10:44:27 hmm 10:45:13 i kind of like the insane-ness of BIOC 10:46:18 insanity? 10:46:20 write vga0:587:172 127 .. writes color 127 to pixel at (587,172) 10:46:33 diabolical 10:47:14 diabolical 10:47:14 marvelous 10:47:18 oops i mean 10:47:19 diabolical 10:47:55 and.. write con:0 65 66 67 68 .... writes ABCD to the console 10:48:21 diabolical 10:48:27 splendid 10:48:38 diabolical 10:49:51 if i can understand it, it probably isn't very esoteric 10:50:14 if it could somehow be granted permission to write to any memory location, it could be, in combination with a turing-complete cpu, a turing-complete language, yes? 10:50:16 itidus20, the new standard for esoteric 10:50:51 i dont fully understand it though 10:51:44 so is it more of an almost esoteric, or a just barely esoteric 10:52:17 like i dont see why vga0 is a word but con:0 is delimeted by the : 10:52:25 but that could just be the way it goes 10:52:34 what 10:52:40 vga0 is a device name 10:52:45 con is a device name 10:52:48 ah ok 10:52:57 esoteric no more 10:53:03 diabolical 10:53:05 the magic, the mystery 10:53:06 it's all gone 10:53:14 (diff | hist) . . N Home insurance‎; 10:46 . . (+6,544) . . Krishna1 (Talk | contribs | block)‎ (Created page with "Home insurance, also commonly called hazard insurance or homeowner's insurance (often abbreviated in the real estate industry as HOI), is the type of [http://reslife.tamu.edu/...") 10:53:15 no no it's still mythical 10:53:15 (User creation log); 10:44 . . Krishna1 (Talk | contribs | block)‎ New user account 10:53:17 krishan1. 10:53:18 i trusted u. 10:53:23 you-- 10:53:26 Wait, what the FUCK? 10:53:32 How did that get past the CAPTCHA? 10:53:38 @tell ais523 A spambot just got past the CAPTCHA. help 10:53:38 Consider it noted. 10:53:49 time to beef it up 10:53:52 doublecaptcha 10:54:12 lets not insult the spammers though... 10:54:31 the new captcha is to write an essay about how spammers are dumb and totally suck 10:55:35 I can tell you how; they made a copy of the CAPTCHA for another service in real time 10:55:45 the new captcha is to create an esolang and write the first draft of the spec that you will post on the wiki 10:55:51 I suspect they paid someone to fill it out. 10:55:56 or 10:55:57 you know 10:56:02 just filled it out themselves 10:56:06 But, err, solving the CAPTCHA involves clicking a link and reading a paragraph of fairly technical English. 10:56:19 i hope they realize.. this means war 10:56:21 quintopia: The existence of CAPTCHA-filling farms is well-known. 10:56:31 elliott: indeed 10:56:32 I doubt any one spambot operator would bother to fill in Esolang's. 10:56:40 Anyway, this is troubling. 10:57:00 I was banking on the people being paid not being able to click links, read a paragraph of text, go back, and fill in an answer based on information from that link. 10:57:02 Or not bothering. 10:57:18 I'll look into more "behind-the-scenes" techniques before changing the CAPTCHA itself. 10:57:24 does the paragraph change? does the answer change? 10:57:27 I get paid to look at car commercials, not read all this paragraph. 10:57:47 "not bothering" 10:57:58 - a captcha farm 10:58:02 quintopia: What? 10:58:11 There are about 5 CAPTCHAs. They're all esoteric programming trivia. 10:58:17 aha 10:58:18 They link to articles on the wiki which contain the answers in the first paragraph. 10:58:26 new esolang policy all articles are distorted beyond readability 10:58:27 aha 10:58:30 The chances of any CAPTCHA farming pawn knowing the answers without clicking the links is 0. 10:58:37 i have an idea 10:58:40 monqy: agreed 10:58:50 lets replace all esolang articles with spam 10:58:59 and then we can not care about spammer 10:59:01 ok i have an idea.. make the questions really long 10:59:20 like.. 60 seconds of reading 10:59:42 124.123.139.13 - - [24/Feb/2012:10:46:56 +0000] "POST /w/index.php?title=Home_insurance&action=submit HTTP/1.1" 302 5 "http://esolangs.org/w/index.php?title=Home_insura 10:59:43 nce&action=edit" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 10:59:44 Fuck you man!!!! 10:59:54 the new captcha is a turing test vs. itidus20, with itidus21 as the judge 11:00:37 Wow, this thing is actually loading the JS and everything. 11:00:45 Maybe it wasn't a spambot; someone entered the spam manually. 11:00:46 124.123.139.13 - - [24/Feb/2012:10:44:59 +0000] "POST /w/index.php?title=Special:UserLogin&action=submitlogin&type=signup&returnto=Main+Page HTTP/1.1" 200 4871 "http:// 11:00:46 esolangs.org/w/index.php?title=Special:UserLogin&type=signup&returnto=Main+Page" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 2.0.5 11:00:46 0727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 11:00:46 Man. 11:00:51 Fuck you so much, POSTer!!! 11:01:04 zzo38: A lot of the spambots in the logs seem to have hostnamse with a bunch of ".NET CLR" in them. 11:01:14 So I'm sceptical. 11:01:17 abuse a msie8 bug to make esolang unusable for the spam farme 11:01:30 But it could be some automated thing where people are given an automated IE frame thing loaded to random wikis and have to create an account there. 11:01:36 well what matters is they don't know that at this wiki people literally discuss each spammer and collaborate on how to react 11:02:02 in the battle against spam, 11:02:05 it's the thought that counts 11:02:28 http://reslife.tamu.edu/current/insurance/propertyInsurance.asp 11:02:33 this is a link krishna spammed 11:02:34 ,,, 11:02:58 how about the new CAPTCHA be...visit this channel and convince someone that you are worth giving the CAPTCHA answer to 11:03:02 that's the system SCP uses 11:03:26 -!- pikhq_ has joined. 11:03:44 One way, is use other protocols (other than HTTP and SMTP). Or else, use HTTP but use PUT rather than POST 11:03:46 and we don't say in the instructions how to find this channel 11:03:50 quintopia: No, I hate that. 11:03:55 That's effectively locking people out. 11:04:06 Better to think smart than to think obstructive. 11:04:20 -!- pikhq has quit (Ping timeout: 276 seconds). 11:04:45 damn. we could meet so many people that way :P 11:05:10 captcha where you write the answer but it's really really big 11:05:15 maybe krishna1 was a systemic anomaly 11:05:40 btw 11:05:43 who wants a lot of boring tedious work 11:05:55 itidus20: krishna2 will be a trend 11:06:24 I nominate "not monqy" for tedious work 11:06:24 elliott: boring tedious work...like deleting spam accounts? 11:06:36 could admin itidus20 11:06:55 but i don't blame you to be afraid 11:07:17 quintopia: specifically, filtering spam accounts from non-spam accounts 11:07:19 the "smart" solution would be a bot that classfies wiki articles as spam/not-spam, and flags the spam articles for deletion/userbanning after hiding them 11:07:22 http://esolangs.org/w/index.php?title=Special:ListUsers&limit=5000 11:07:41 mind you I have some SQL queries that turn up a few hundred of them 11:07:48 a few more queries should get even more 11:08:09 as IBM once said: machines should work, people should think 11:08:37 maybe i'll just put them all on mechanical turk 11:08:44 If people don't want to think, should machines think for them? 11:08:46 haha 11:09:07 Jafet: the only time people dont want to think is when the thinking is too much work :P 11:09:16 quintopia: i was only half-kidding 11:09:29 elliott: if you're willing to pay 11:09:33 but i think they'd be too conservative 11:09:43 "959 buy viagra" or whatever is obviously a spam username 11:10:01 but they won't know that e.g. redlinked username = more likely to be a spammer, and integrating viewing deleted contributions and the like would be a huuuge pain 11:10:10 so probably easier to use SQL queries to get the bulk of them + manual filtering for the rest 11:10:18 elliott: if you frame the question as "on a scale of 1-10, how likely is this user to be a spambot" 11:10:21 we have 4,501 or so users and all but a few hundred at maximum are spammers 11:10:26 then you can set the threshold yourself after the fact 11:10:37 -!- Ngevd has joined. 11:10:39 quintopia: the idea that humans can accurately rate things on a 1-10 scale seems nonsense to me. 11:10:45 but yes, that would help. 11:10:52 otoh the whole thing would take more time and effort than doing it locally :P 11:10:53 Ngevd! 11:11:00 do you want a boring, tedious but REALLY WORTHWHILE task? 11:11:08 elliott: it doesnt rely on accuracy if enough people do it. eventually you'll find the good threshold. 11:11:23 (using averages) 11:11:28 new users must pass the trials of heart. everyone knows robots and spammers have no hearts, so this will stop them. 11:11:57 Hello! 11:11:58 Aaaah! 11:12:03 that many spammers!?! 11:12:06 trials of heart: name the captain planet character with the power of heart 11:12:14 What's going on? 11:12:43 have you passed the trials of heart yet 11:13:15 mati or matee .. i never really saw it spelled out 11:13:17 Ngevd: a spambot passed the captcha 11:13:20 so i'm going ALL OUT 11:13:35 Ngevd: http://esolangs.org/w/index.php?title=Special:ListUsers&limit=5000 please sort these usernames into three piles: definite spammers, possible spammers, not spammers 11:13:36 thanx 11:13:42 you can only do the first thousand or so if you must 11:13:50 also, any user with a bluelink i.e. existing user page is certainly not spammer 11:14:05 any user with no contributions is suspicious (i can confirm by looking at deleted contributions) 11:14:06 THANXE 11:14:28 what about spammers whose userpages didn't get deleted or did they all get deleted 11:14:42 elliott: since most of those users registered while the site was at its old location, probably the spam users wont find the new site. thus, you could clear them all out by simply deleting EVERYONE who hasn't visited the site at its new location. after perhaps sending an email telling everyone that you're gonna do that 11:14:46 monqy: There's no spam existing on the wiki. 11:14:49 quintopia: "find the new site"? 11:14:55 Yeah, it'll be incredibly difficult to go to the EXACT SAME DOMAIN AS BEFORE. 11:15:13 They, like, go by geographic location of data centres. 11:15:19 $username: probably spam 11:15:32 elliott: sorry. was operating on bad info. 11:15:37 Anyway, that's a terrible idea, because (a) tracking "visited site at new location" is basically impossible with the logs we have; 11:15:50 00Davo: not spam 11:15:56 (b) 90% of the wiki's legit users will be inactive enough that they probably won't see such an email. 11:16:02 (c) emails aren't even required 11:16:05 elliott: in any case, deleting all inactive accounts will not annoy too terribly many people :P 11:16:13 a few hundred tops 11:16:15 :P 11:16:30 1079844050: possibly spam? 11:16:31 quintopia: I really don't like user-hostile solutions like that. 11:16:43 quintopia: The terrorists have won, etc. 11:16:56 Ngevd: OK, I wasn't completely serious. 11:16:57 elliott: i'm being absurd because i don't see the point in deleting inactive spam accounts really 11:17:03 114 buy levitra: probably spam 11:17:06 I DON'T CARE 11:17:14 Ngevd: If you gotta do it, at least do it in a text file :P 11:17:17 Actually, I'll stop 11:17:19 But "buy levitra" is most cetainly spam. 11:17:22 quintopia: They're not inactive. 11:17:29 quintopia: They keep coming back and creating new pages. 11:17:42 elliott: if they are doing that then we can identify them based on their activity 11:17:49 Go on. 11:18:06 I already have some obvious SQL queries to try, but it's still just based on finding mass lists of users to delete. 11:18:09 Also, they clog up the user list and such. 11:18:19 meh who uses the user list 11:18:38 i think anything with integer space buy space text is a spammer 11:19:13 Indeed, but there's few of them. 11:19:25 You could also try hiding the wiki from Google; see if that helps 11:19:30 My queries have produced 200-600 users or so each. 11:19:47 what about captchas on [create page]? how likely is that to help without being annoying? 11:19:48 zzo38: That could conceivably help, but it'd also remove 99% of traffic to the wiki and make sure nobody finds it ever. 11:19:57 quintopia: There are CAPTCHAs for every single anonymous edit. 11:20:01 And for user registration. 11:20:04 Oh, I see. 11:20:07 For registered users. 11:20:07 elliott: i meant for registered yeah 11:20:26 I think that would be possible. But it would be annoying. What would be nice is if I could add e.g. three broken tries at the CAPTCHA and your account is blocked. 11:20:41 But the time spent writing such an extension is, again, longer than the time it'd take to round up every existing spammer and delete them. 11:20:51 doesnt mean it isnt worth it 11:21:04 since you could improve all mediawikis everywhere that way :D 11:21:24 I would not like to contribute to editor annoyance on MediaWikis. 11:21:39 Anyway, the only MediaWikis really infested with spam are the ones ignored by their admins. 11:22:18 you could reduce editor annoyance by making it possible to become a Trusted User with admin intervention... 11:23:06 I don't see why you're so attached to solutions that involve more user annoyance and more long-term effort than a one-time purge operation. 11:23:28 because i don't know that it is a one-time purge operation? 11:23:40 What is that supposed to mean? 11:23:52 The only way any new users can trickle in is by solving a CAPTCHA. You proposed a CAPTCHA on the create page function. 11:23:56 krishna1 could be an anomaly...or a sign of things to come 11:24:03 So there is no benefit if the spammers can solve CAPTCHAs. 11:24:27 Anyway, ominous language aside, spambots that can solve CAPTCHAs are not the issue I'm dealing with. 11:24:32 how fast do wiki spambots usually work? 11:24:39 Spambots that can't solve CAPTCHAs but get through with existing accounts are the issue I'm dealing with right now. 11:24:44 quintopia: Fast howso? 11:24:55 how many articles do they post a second around the web 11:25:17 I'm not omniscient. 11:25:22 Perhaps you can somehow use time to discourage spams? Will changing the default skin to an uncommon one do anything? 11:25:25 Google it or something if you want statistics. 11:25:49 zzo38: that was my thought, but i suspect that wiki spambots are slow, so not a good idea 11:26:06 elliott: how many captchas are there? 11:26:14 quintopia: There are certainly spambots per minute hitting the wiki. 11:26:17 (Unsuccessfully.) 11:26:31 Ngevd: How many CAPTCHAs what? Pages with CAPTCHAs? CAPTCHA Q&A pairs? 11:26:33 I think hiding it from Google is a way to do so anyways. I set up the robots.txt to hide everything from Google, and then removed all internal (and external) links, and changed the root page to redirect to the root gopher menu instead, and then I told the gopherproxy owner to block access to my computer from there. Therefore, this help a lot. 11:26:37 elliott, the latter 11:27:12 zzo38: Yes, it helps a lot. It also ensures nobody visits your site. 11:27:37 Ngevd: Five. But if people are manually clicking links and filling them out, adding new ones won't help. 11:28:31 elliott: Not true... a few people do. They can tell other people manually if they like to do so. 11:29:28 Can you block account creation and anonymous edits from Internet Explorer clients? 11:30:17 Yes, which would exclude legitimate IE users. 11:30:24 For instance, oerjan uses IE. 11:30:34 But oerjan already has an account. 11:30:39 Sure, he already has an account, but it's an example that IE users can be valuable. 11:30:44 He's unlikely to be the last helpful IE user. 11:32:30 Unlikely, but wouldn't it make one spiffy business card title? "oerjan oerjan\nthe last helpful IE user", centered. 11:32:46 (I'm not so sure about the names, so I improvised.) 11:33:15 Like the last of the mohicans. 11:33:31 :D 11:33:38 ([fancy O]rjan Johansen.) 11:33:54 AKA oerjan "[fancy O]rjan Johansen" oerjan. 11:34:16 rjan 11:34:55 Ørjan "Fancy Ørjan" Johansen. 11:35:06 O^H/rjan 11:35:13 $\emptyset$rjan 11:35:37 Φrjan 11:35:43 ∅rjan looks just silly. 11:35:54 Phirjan? 11:36:09 ⎈rjan 11:36:19 No, the correct TeX symbol is {\O rjan Johansen} 11:37:00 ∅h 11:37:22 ⊅rjan 11:37:28 œrjan, to keep in touch with the nickname. 11:37:45 ⏁rjan? 11:37:53 023C1 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE [⏁] 11:37:59 ☺rjan. 11:38:08 ☹rjan 11:38:26 ☻rjan in my terminal. 11:38:41 You've got an ☿rjan in your terminal? That's fancy-o. 11:38:59 😸rjan 11:39:15 😹rjan 11:39:26 King ♔rjan, like e's known to the populace. 11:40:27 And of course the famed activist, ☮rjan. 11:40:27 ☃rjan 11:40:39 💩rjan 11:40:54 ♳ 11:40:59 ♳rjan 11:41:06 Or would that be ♹rjan? 11:41:22 ⎋rjan 11:41:34 -!- Phantom_Hoover has joined. 11:41:56 Hey, it's Phantom_H∞ver 11:42:09 O̸⃥rjan. 11:42:15 ∞rjan? 11:42:26 ∮rjan 11:42:33 Also known as "Contourjan" 11:42:44 rjan 11:42:53 Wow, the combining slashes are so not centered with the O. 11:43:28 Have to try O⃠rjan. 11:43:42 Well, that's fancy. Though horrible in a terminal. 11:44:18 I suppose it should've been Ø⃠rjan, though. 11:45:34 ^show celebrate 11:45:34 ( \o| |o| |o/ \m/ \m/ |o/ \o/ \o| \m/ \m/ \o| |o| |o/)S 11:45:34 | | | `\o/´ | | | `\o/´ | | | 11:45:35 |\ |\ /| | |\ /´\ /| | /< /'\ /| 11:45:35 /`\ /'¯|_) 11:45:35 (_| |_) (_| 11:46:21 yay celebration 11:46:21 Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. 11:46:26 ⬠̸rjan, the Five-Sided. (Okay, that's enough for me.) 11:46:27 also myndzi has been fixed yay 11:46:55 ^def test ul Can you just put any sort of text in to be show'd for an ul thing? 11:46:55 Defined. 11:46:58 ^show test 11:46:58 Can you just put any sort of text in to be show'd for an ul thing? 11:47:00 only a true masochist could click on every name for > 1000 names and determine from it's contribution history if its a spam bot 11:47:03 Well, that's just silly. 11:47:22 ^def test bf I don't think the same thing works for bf at all. 11:47:22 Defined. 11:47:24 ^show test 11:47:24 . 11:49:00 Hmm, I wonder if it tape-cell-size modulo's the numbers already at that stage. 11:49:04 ^def test bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11:49:04 Defined. 11:49:09 ^show test 11:49:09 +2 11:49:15 Appa-rently. 11:50:05 -!- derdon has joined. 11:50:20 ^bf +100. 11:50:20 11:50:21 -!- zzo38 has quit (Quit: NO DIAL TONE). 11:50:35 It doesn't understand that notation as input. 11:50:35 Woops 11:50:38 So that was just +. 11:50:50 I may have killed zzo38 11:51:14 Sounds unlikely. Unless you e.g. shot him while saying that, or something. 11:53:22 some of the spam names are obvious like AkylazgWUY and ScottTuckerPaydayLoansyyy ... but then theres names like Alexander88 and Alhirzel. and i see that most of the names fall into the painful reasonable doubt category 11:58:31 -!- ais523 has joined. 11:59:35 hi ais523 11:59:39 check @messages 12:00:22 @messages 12:00:23 elliott said 1h 6m 44s ago: A spambot just got past the CAPTCHA. help 12:00:37 elliott: clearly the spammers are solving a few of the questions by hand 12:00:51 adding more would help, as would checkusering and blocking the spambot that did it, as would abusefiltering its patter 12:00:54 *pattern 12:01:29 ais523: adding more I'd prefer to avoid; I already blocked the spambot but didn't checkuser yet 12:01:30 if it happens again we'll be able to spot the pattern 12:01:36 I'll go checkuser it 12:01:41 well, hold off for a bit 12:01:46 that and abusefilter would work, but I'd prefer to block more than one spambot in one go 12:02:01 with less user-visible solutions; I'm looking at the available anti-spam extensions for MW 12:02:51 ais523: I'm surprised whoever it was that filled it out managed to click the link, read the page, and understand it enough to fill in the CAPTCHA 12:03:10 right, indeed 12:03:17 I'm more trying to see what sort of range it's in 12:03:25 it seems to be a /18, which is rather uncomfortably large to block 12:04:20 I don't think an IP block would work there anyway 12:04:29 too large a range 12:04:45 the pattern in the access logs used similar hostnames to other spambots 12:04:49 with lots of .NET CLRs in them 12:04:54 I suspect it's some kind of embedded IE browser 12:05:11 that directs the CAPTCHA-farmer to a wiki and tells them to register or such 12:05:16 because it followed slow, browser-like patterns 12:05:18 loading all the JS, etc. 12:05:27 as opposed to most spambots in the logs, which just blindly shoot off a few requests 12:05:46 if that's correct, then there's basically nothing that can be done, if there's a human behind the wheel of a real browser who will follow links to fill in a CAPTCHA 12:05:52 Incidentally, did you see the fetch of the page with the CAPTCHA answer too? 12:06:00 fizzie: oh, good point, I didn't check 12:06:04 silly me 12:06:43 124.123.139.13 - - [24/Feb/2012:10:43:50 +0000] "GET /wiki/IRP HTTP/1.1" 200 7685 "http://esolangs.org/w/index.php?title=Special:UserLogin&type=signup&returnto=Main+Pag 12:06:43 e" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 12:06:44 yep 12:06:50 human-controlled, without a doubt 12:07:14 that's also the easiest CAPTCHA to answer, since it's in the first few words of the article... but I'm not sure that's relevant 12:09:04 The 124.123.139.13 you mentioned is from a DHCP range for some Indian ISP, Beam Telecom. (In particular, from a /24 that's labeled "Mehdi Patnam Zone (DHCP)".) I don't know how CAPTCHA-answer farms operate, whether they bother to forward traffic through botnets or just have the "employed" person just use their 'net connection, since it doesn't really hurt them so much if some random people get IP-blocked. 12:10:55 Googling for various hostnames of bad-behaving spider bots and the like suggests to me that the common solution to all this rubbish is to, like, block the entirety of India, Russia and Asia. 12:10:59 I find that somewhat undesirable. 12:11:02 (Okay, not the entirety.) 12:11:05 (But pretty huge ranges.) 12:11:47 http://sprunge.us/BLIW 12:12:32 type error, or typo? 12:12:36 I'm surprised it got that far, actually 12:14:02 looks like an actual type error 12:14:21 ais523: did you ever decide whether underload is cbpv? 12:14:41 elliott: no, I'm having that discussion at the moment, actually 12:14:43 this is part of that 12:14:47 cbpb? 12:14:53 s/pb/pv/ 12:14:58 call-by-push-value 12:15:48 if I replace that cat with a free variable, it types ;) 12:15:52 anyway, lunchtime 12:16:00 More like... BRUNCHTIME. 12:16:16 Nah, bruch is 10-12 12:16:25 Lunch is 12-2:15 12:17:58 HOW RUDE. 12:18:01 :( 12:18:02 of you. 12:18:27 brunch is if I haven't eaten breakfast 12:18:48 so really it ends up being from 13-15 12:18:50 brunch is if ur not fuly human 12:18:55 monqy: wow you get up early, monqy, 12:19:29 i thought it was well-established I was subhuman, months ago 12:19:38 I forget why. 12:20:38 maybe because 12:20:40 monqy 12:21:00 perhaps 12:25:32 -!- ais523 has quit (Ping timeout: 244 seconds). 12:28:16 Aaargh 12:28:37 -!- Ngevd has changed nick to Taneb. 12:28:46 I feel better when I'm Taneb 12:28:59 hi 12:29:03 Hello! 12:43:09 brb 12:48:24 -!- monqy has quit (Quit: hello). 12:56:47 -!- ais523 has joined. 12:57:25 OK, so without forcing the type of that cat, it types, although it doesn't type /correctly/ 12:58:58 anyway, typed underload, it's impossible to do an infinite loop without adding an explicit fix combinator 12:59:06 (dup // eval is a type error) 12:59:16 (as expected, really) 13:00:53 obviously 13:00:55 ap id id and so on 13:01:07 ais523: I bet you can do it with rank-n types or something 13:01:12 the problem is that dup forces the two copies to have the same type 13:01:23 which fails the occurs check later on 13:09:05 Back 13:09:27 -!- ais523 has quit (Ping timeout: 244 seconds). 13:25:48 Friendship: Pingpingpingg 13:28:16 -!- Taneb|Hovercraft has joined. 13:31:31 -!- Taneb has quit (Ping timeout: 245 seconds). 13:38:34 -!- pikhq has joined. 13:38:36 -!- pikhq_ has quit (Ping timeout: 252 seconds). 13:39:28 elliott: Friendship pong ^^ 13:41:48 -!- Taneb|Hovercraft has quit (Quit: Goodbye). 14:08:14 -!- ais523 has joined. 14:09:06 elliott: right 14:09:19 heh 14:09:35 anyway, the point is that in typed lambda calculus, you can't write an infinite loop 14:09:42 unless you add a constant to the language whose purpose is to make loops possible 14:09:53 and if dup // eval worked, then you could 14:10:56 (the mockingbird combinator is the dirtiest of used-in-the-implementation-of-recursion combinators, it doesn't type in anything) 14:10:59 (probably not even Anarchy) 14:11:25 so, hmm, I wonder if Underlambda's continuation primitives work typed 14:12:24 hmm, the very basic one is n, but n is really weird in its own right 14:12:32 (n determines whether the stack is empty) 14:12:57 it's backwardsly scoped, or something 14:13:32 hmm, and C, I'm not even convinced it's expressible in a pure language 14:22:49 elliott: in Haskell, is there any way to express a type A such that A = (A, Int)? 14:22:54 without adding extra type constructors? 14:25:47 ais523: no, by design 14:25:51 ocaml can do it with -rectypes 14:25:58 ooh, awesome 14:26:04 (I think) 14:26:07 (it can certainly type Y) 14:26:12 (so I don't see why type synonyms would be restricted) 14:26:18 ais523: you may need special syntax for it, though 14:26:25 try writing some recursively-typed stuff to find out the syntax 14:26:27 oh, hmm 14:26:32 I wonder if you can type Y in Anarchy 14:26:32 I've done it before 14:26:47 ais523: -rectypes is sound I think 14:26:48 I guess you probably could, because it's possible to write an infinite loop in it 14:26:49 but very confusing 14:26:59 elliott: that's exactly the type system I've been looking for, I think 14:26:59 Y doesn't type in Haskell and it has infinite loops 14:27:07 but it has let rec 14:27:13 i.e. a fixed-point constant 14:27:21 it has no "let rec" construct :) 14:27:21 oh, so does Anarchy, I'm being stupid 14:27:28 but it has fix and recursive bindings, yes 14:27:33 fix being defined in terms of the latter 14:27:48 I can call the construct in general let rec, even if Haskell's impl of it isn't called that 14:27:50 it's a good name for it 14:29:14 # dup // eval ;; 14:29:16 - : '_a * ('_a * 'b -> '_c as 'b) -> '_c = 14:30:01 hey, I've just realised that Anarchy trivially compiles into OCaml -rectypes! :) 14:30:30 instead of using T (a, b), you use (T, a, b), where T is the only value of a type with one value 14:31:26 this is actually mindblowing :) 14:32:35 # q(dup // eval) // dup // eval ;; 14:32:35 lol 14:32:37 - : '_a -> 'b = 14:32:47 in retrospect, /that/ was inevitable :) 14:33:10 ofc, (:^):^ really can map any stack to any other stack 14:33:11 ais523: note that LC is trivially typeable with -rectypes 14:33:20 so, you're giving up a lot by adopting it as your type system 14:33:28 you may end up rejecting no programs at all 14:33:37 I don't think so 14:33:39 -!- Taneb has joined. 14:33:43 Hello! 14:33:48 the idea is to reject programs that have non-total pattern matches 14:34:50 e.g. (+) "a" "b" would be rejected in Anarchy, because "a", being a list of chars, uses type constructor Cons, and (an assumed natural number +) only pattern-matches against Succ and Zero 14:34:56 so the program wouldn't type 14:34:58 hi Taneb, btw 14:35:32 hmm, I guess (+) 2 "a" /would/ type, the return value would be something that gave a string if decremented twice 14:36:33 but (+) n "a", for an n calculated at runtime, could only be pattern-matched by things that expected a number, a string, or a successor of a string 14:36:42 which is a kind-of silly combination 14:39:31 elliott: put it this way: not all types are function types, so programs still get rejected 14:40:12 :t Cont 14:40:13 Not in scope: data constructor `Cont' 14:40:17 :k Cont 14:40:18 * -> * -> * 14:41:53 hmm, actually, I'll still need sum types 14:42:09 so -rectypes isn't enough by itself 14:42:25 (this is not the same as ADTs, as they have a fixed list of type constructors) 14:43:22 I guess I can build them by hand using Either 14:48:32 anyway, oerjan-swap doesn't give the right type with -rectypes either (it gives a general type where function = stack->stack, stack = stack*function, which can describe any Underload-minus-S program, not just swap in particular) 14:56:40 actually, no, /actually/ got it 14:56:44 say we have three tags, A, B, and C 14:57:24 then a function which accepts type A(X) + B(Y) + C(Z) can have type (X -> Q, Y -> Q, Z -> Q) -> Q 14:58:38 err, hmm, is that right? 14:58:44 ah, no 15:00:53 -!- augur has quit (Remote host closed the connection). 15:02:23 -!- Taneb has quit (Quit: Goodbye). 15:03:41 [[A(x)]] = (x -> q, j1 -> k1, j2 -> k2) -> q; [[A(x)->y]] = ((x -> y, j1 -> 0, j2 -> 0) -> y) -> y; [[B(x)]] = (j1 -> k1, x -> q, j2 -> k2) -> q; [[(A(x)+B(y))->z]] = ((x -> z, y -> z, j1 -> k1) -> z) -> z 15:04:20 (where 0 is assumed to be a type with no values) 15:04:46 that way, a function of type A(x)->y can't take an argument of type B(x), as that'd try to match y with 0 15:04:59 and that's where the typing failure comes in 15:06:00 and that's how you get a type error in Anarchy 15:09:50 an actual implementation of, say, A(4), would be fun (f, g, h) -> f(4); of B(4) would be fun (f, g, h) -> g(4); of function | A(x) -> x would be fun a -> a (id, fail::0, fail::0); of function | A(x) -> x | B(x) -> x would be fun ab -> ab (id, id, fail::0) 15:10:10 hmm, I wonder how you write a type with no values in OCaml 15:10:53 ais523: does ocaml have newtypes? 15:10:59 with rectypes, 'a as 'a might work 15:11:06 hmm, let me try it 15:11:55 I guess I could, alternatively, give it one constructor that I just didn't use for anything else 15:14:02 that's gross, don't do that 15:14:15 but does ocaml have newtypes? basically one-constructor one-field data types with no runtime overhead 15:14:20 i.e. the type is erased at compile-time 15:14:31 I don't think so 15:14:35 I've just been looking up the syntax 15:14:52 and the only type definition keywords are "type" and "exception", both of which need at least one constructor 15:15:30 wait no, that's the name of the type, misleadingly named 15:15:39 oh, wait 15:15:43 ais523: what's wrong with just 15:15:46 oh, it seems you can just write "type zero;;" 15:15:46 data Void = Void Void 15:15:47 -equivalent? 15:15:52 OCaml is strict, after al 15:15:53 *all 15:15:58 and it creates a type with no constructors for you :) 15:15:59 oh, wait, you could do it cyclically 15:16:01 bleh 15:16:02 but yes 15:16:04 that would work :P 15:16:31 # type zero = zero ;; 15:16:33 Error: The type abbreviation zero is cyclic 15:17:13 # type zero = Zero of zero ;; 15:17:14 type zero = Zero of zero 15:17:16 ah, there we go 15:17:35 that type has no values, due to being in a strict language 15:17:55 out of curiosity, does 'a as 'a work? 15:18:10 I couldn't figure out what you meant by that 15:18:21 I tried a few permutations but they were all equivalent to things you obviously didn't mean 15:18:35 e.g. type 'a zero = 'a as 'a;; is the same as type 'a zero = 'a;; 15:18:55 and type zero = 'a as 'a gives an unbound type parameter message 15:19:01 -rectypes 15:19:05 - : '_a * ('_a * 'b -> '_c as 'b) -> '_c = 15:19:09 I am using -rectypes 15:19:16 so try and type something as ('a as 'a), and that should be the type A = A 15:19:19 which should have no values 15:20:31 I just get "unbound type parameter 'a" when I try that 15:20:48 whereas # type zero = (('a * 'a) as 'a) ;; works 15:21:05 so I guess it's just a scoping thing 15:21:17 I guess it needs to be a non-type-variable on the lhs of as 15:21:21 yep 15:21:39 # type ursala = 'a list as 'a ;; 15:21:40 type ursala = 'a list as 'a 15:21:42 heh :) 15:23:14 ooh, hmm, this Anarchising program transformation, I recognise seeing it before 15:23:21 in an Underlambda header 15:23:48 and Paul Levy proved it equivalent to a sum type on a whiteboard in front of me a few weeks ago 15:23:55 so it should be safe to use 15:24:28 ais523: Has Paul Levy kindly informed you that Underlambda is weird as heck yet? 15:24:42 no, because I haven't managed to explain it to him yet 15:25:23 ais523: Have you told him about Feather yet? 15:25:36 typed underlambda seems neat, the type-checker can statically prove that the stack never underflows 15:25:47 and no, I haven't managed to explain that to /anyone/ yet, including myself 15:28:28 lots of stack-typed languages can do that 15:28:30 Factor, for instance 15:29:04 JVM bytecode 15:29:14 Friendship: FINALLY 15:29:22 Friendship: You run an rsync server thing. How does it, how good it, how easy it, how it 15:29:23 Guh? 15:29:28 Hrm 15:29:53 Since I have absolutely no memory of how I set it up, those questions are hard to answer ;) 15:29:57 But I assume it wasn't too bad. 15:30:54 Friendship: Do you use rsync --daemon? 15:31:01 -!- augur has joined. 15:31:02 I installed rsyncd, then did what seems to be extremely minor twiddling of /etc/rsyncd.conf 15:31:02 I'm trying to decide between rsync and zsync for the esowiki XML dumps. 15:31:29 zsync has the advantage that I don't need to run another server, and people can still download the file through "normal" means (I think). 15:31:35 rsync is probably a lot more common though. 15:32:22 Well, here's my /etc/rsyncd.conf (minus comments): http://sprunge.us/OEag 15:32:38 Thx 4 ur password 15:33:24 Mmhm 15:34:14 Oh look, somebody removed my parade o' death. 15:34:14 Friendship: I was gonna ask whether your distro has zsync, but loldebian so yeah it does 15:34:20 Arch don't. 15:34:26 (But AUR do.) 15:34:33 Friendship: That was me. 15:35:21 what's a good REPL for r5rs Scheme/ 15:36:31 Scheme48? SISC? 15:36:52 MIT Scheme? 15:39:20 -!- kmc has left ("Leaving"). 15:39:23 -!- kmc has joined. 15:39:34 MIT Scheme seems to be i386-only 15:40:32 i'm looking for good readline-like behavior, e.g. tab completion of identifiers 15:40:47 I don't know of anything like that. 15:41:01 Gambit's REPL (gsi) does that well 15:41:02 MIT Scheme supports x86-64. 15:41:06 There's always rlwrap :) 15:41:13 (The program that proves that readline's license is pointless) 15:41:15 Friendship: which won't tab-complete identifiers 15:41:20 rlwrap won't give me tab completion of what elliott said 15:41:26 not without extra work 15:41:31 but yeah, rlwrap might be good enough 15:41:42 I suggest you take typing lessons or something, since nothing like that exists AFAIK :P 15:42:05 I want to be able to tab-complete my parentheses. 15:42:45 elliott, gsi exists 15:42:48 but it has other problems 15:58:06 kmc: Use gsi to drive an R5RS-compliant interpreter underneath. 15:58:24 -!- pikhq_ has joined. 15:58:27 -!- pikhq has quit (Ping timeout: 248 seconds). 16:14:24 go deeper 16:14:49 actually the reason i want a scheme interpreter is to run a little interpreter i wrote 16:15:01 for a fexpr / vau calculus thingy 16:15:28 i like kernel 16:15:40 anyway SISC has very good R5RS compliance iirc 16:15:58 i haven't used it 16:16:00 and doesn't seem to suffer too much being JVM-based (in that it doesn't go for "java interop" at all) 16:16:07 working my way through the 416 page PhD thesis 16:16:25 but s48 is more popular and mit too I think (although perhaps less so) 16:16:41 zombie 6.001 uses racket 16:16:45 which causes no end of trouble 16:16:52 because it only reluctantly sort of acts like a scheme implementation 16:17:07 it used to use MIT Scheme but switched 16:17:10 for reasons i do not recall 16:17:39 MIT Scheme itself might work on x86-64, but the Debian packages are i386-only 16:18:12 mm 16:18:35 give scheme48 and sisc a try then :P ... i like several other implementations but they're not too r5rs-strict 16:19:02 i don't really need strict compliance 16:19:07 just annoyed by a few of racket's divergences 16:19:15 like distinguishing mutable pairs from pairs 16:19:20 right. then pretty much anything that isn't racket should suit you fine 16:19:25 kmc: erm, that goes away if you turn on the R5RS language 16:19:31 racket is a multi-language environment 16:19:35 #lang r5rs at the top of a file 16:19:51 i think that's still not strictly compliant. but it won't have a major divergence like that 16:23:23 -!- pikhq has joined. 16:23:37 -!- pikhq_ has quit (Ping timeout: 252 seconds). 16:25:04 i don't wanna put garbage at the top of my file ;) 16:25:15 there's a command-line thing for it, sheesh 16:25:30 which in turn interferes with racket's readline mode 16:25:40 bah 16:25:46 well racket supports per-language modules 16:25:49 i don't feel like shaving all these yaks 16:25:51 figure out how to divide it properly or something :P 16:25:52 but yeah 16:25:55 just use something else 16:26:04 fizzie is a schemester, ask his opinions 16:26:41 http://sisc-scheme.org/r5rs_pitfall.php is a helpfully pedantic r5rs comparison :p 16:39:41 ^bf +.>+++++++[<++++++++++++>-]<+.-----------------.+++++++++++++.+.----------.++++++.-.>+++++++[<----------->-]<. 16:39:41 VERSION 16:40:35 ion: Don't make fungot said CTCPs. You know what happened the last time it did that. 16:40:35 elliott: i was thinking 16:40:43 If you don't, all the more reason! 16:41:27 What happened the last time it did that? 16:41:31 -!- Guest66243 has joined. 16:41:57 And why hasn’t it been fixed to send automatic messages as NOTICEs? :-P 16:42:19 ion: Some shit who remains anonymous to this day whined to a staffer, fizzie was forced to take fungot down until he fixed it, and a staffer lurked in the channel for montsh. 16:42:20 elliott: the lexically-scoped nature of the god object notation." if you want real efficiency, i'd download textgen.java. 16:42:21 *months. 16:42:46 wtf 16:42:47 (OK, "anonymous" as in "everyone thinks it's the same person but won't say it publicly".) 16:42:55 ion: Someone used it to send the sendkeylogger thing IIRC. 16:43:02 Which of course did nothing, since nobody here has a broken router. 16:43:08 Ah, duh. 16:43:35 Of course it's nonsense because anyone who could make the bot send it could just as easily send it themselves. 16:43:43 yeah 16:46:10 I take it fungot does at least handle newlines in bf output properly? :-) 16:46:10 ion: that's a traditional chinese character meaning " education".) 16:47:25 ion: hopefully 16:48:39 ^bf ++++++++++.>+++++++[<++++++++++>-]<.++.---------.+++++++++++++.---------.++++++.------------.>+++++[<------->-]<----.>+++++++[<++++++++++>-]<+++.++++++.-.>+++++++[<----------->-]<-.>+++++[<+++++>-]<+.>+++++++[<+++++++>-]<++++.>+++++++[<----------->-]<--.>+++++++[<++++++++++>-]<++.-------.++++++++. 16:48:40 .PRIVMSG ion :o hai 16:48:45 It does. :-) 16:49:58 # pop ;; 16:49:59 - : (('_a * '_b -> '_a) * ('_c -> zero) -> '_d) -> '_d = 16:50:01 # q 4 // pop ;; 16:50:02 - : '_a -> '_a = 16:50:04 # pop ;; 16:50:05 - : (('_a * int -> '_a) * ('_b -> zero) -> '_a) -> '_a = 16:50:10 do people agree with me that this can only possibly be a compiler bug? 16:50:47 no 16:50:52 ocaml is probably unifying types as it goes 16:50:58 trying to make pop more monomorphic or sth 16:51:24 but, the whole point of it is to be polymorphic 16:51:36 as in, I don't see how using a function can make it less polymorphic 16:52:33 -!- Guest66243 has changed nick to PiRSquared. 16:53:06 # q 5 // pop ;; 16:53:07 - : '_a -> '_a = 16:53:09 # q "x" // pop ;; 16:53:10 Error: Unbound constructor 16:53:30 so, is /that/ a compiler error? the error message makes no sense any more 16:55:13 ais523: well consider ML references 16:55:18 they can be polymorphic 16:55:22 but as soon as you fill a type in it's fixed 16:55:27 that's what the '_a stuff means after all 16:55:43 oh, is there a difference between '_a and 'a? 16:57:11 I'd love it if there was a way to do types that didn't get instantly fixed 16:57:25 that just stayed polymorphic if they could 16:58:11 ais523: oh, maybe i'mt hinking 'a vs. ''a 16:58:20 anyway, polymorphic references are a well known problem in ml community 16:58:26 indeed 16:58:29 you must disallow putting in an int and taking out a string and such 16:58:31 but this is pure functional, no mutable values anywhere 16:58:34 so some "fixing" must be required 17:02:07 I think with references it's fine; if a ref is both read and written, it fixes its type from both variances 17:02:42 nah 17:02:45 if you have a ref 'a 17:02:47 then you can use it as a ref int 17:02:51 and you can use it as a ref string 17:02:55 that's how polymorphism works 17:05:24 no, because it depends on variances 17:09:13 -!- kallisti has quit (Ping timeout: 265 seconds). 17:11:09 -!- kallisti has joined. 17:12:12 wtf internet 17:12:15 WHY U NO WORK 17:13:39 please /part the channel to punish yourself, thanks 17:13:58 ais523: erm 17:14:18 ais523: if (r :: forall a. IORef a), are you denying that (writeIORef r (42 :: Int)) and (readIORef r :: IO String) are both perfectly valid expressions? 17:14:56 yes, I am 17:15:27 :o 17:15:52 ais523: then, I accuse you of not understanding polymorphism 17:16:00 for reference, writeIORef :: forall a. IORef a -> a -> IO () 17:16:04 readIORef :: forall a. IORef a -> IO a 17:16:08 I assume you're looking at each expression seperately 17:16:12 and not, say, combined with a >> 17:16:18 ais523: i think you are mixing up your quantifiers 17:16:22 probably because OCaml leaves them implicit 17:16:32 those two programs are undeniably well-typed for an r of that type 17:17:03 I think the types of writeIORef and readIORef that you've listed are wrong, or at least don't reflect what those functions actually do 17:17:13 ok, so you're lying 17:17:36 elliott: "lying"? 17:17:39 when you say, "it's fine" and contradict my statement with "no, because it depends on variances", you actually mean "it *should* be fine" and "ideally no, because it should depend on variances" 17:17:55 well, I was rather clearly not talking in the context of some hypothetical system 17:17:56 elliott: I think we're defining "references" differnetly 17:18:06 I didn't realise you were referring to a particular broken system of references 17:18:06 those types for {read,write}IORef are perfectly correct, and they match the corresponding types for ref in ML 17:18:13 I'm referring to ref 17:18:14 I think ref is broken in ML too 17:18:17 sigh 17:18:46 note however that: writeIORef r (42 :: Int) >> (readIORef r :: IO String) 17:18:48 i can only assume you are being deliberately obtuse, since I was explaining why that behaviour is valid in an ML derivative, relating it to the solution to the polymorphic references problem 17:18:49 is not a valid program. 17:18:59 which obviously applies to actual references that exist, not ones you imagine 17:19:04 kallisti: yes it is, if r has the type I gave 17:19:12 try it yourself, stub out r = undefined 17:19:13 oh, it was rank-2. 17:19:14 let's see… writeIORef should have type "forall a. IORef (a or more specific) -> a -> IO ()", readIORef should have type "forall a. IORef (a or more general) -> a -> IO ()" 17:19:15 ? 17:19:16 no 17:19:18 no rank-2 at all 17:19:44 oh wait nevermind 17:20:39 and that "forall a. IORef a" is a type that can't possibly have the semantics you'd want from a reference, unless it does unsafe casting or something, because it /would/ be able to store arbitrary types and convert them to arbitrary other types 17:21:11 of course you don't want a reference witht ype (forall a. IORef a), that's the entire polymorphic references problem 17:21:35 but I won't bother discussing this further since you're just going to end up rehashing the whole standard problem without actually reading up on it... 17:22:40 elliott: well, I don't get what's wrong with this suggested solution 17:22:43 so uh, what happens semantically in that example. 17:22:50 ais523: nobody said it was wrong 17:22:53 it is, however, beyond irrelevant 17:22:55 and going back to the original point, this all seems irrelevant to the polymorphic non-references problem I was describing earlier 17:23:09 I was describing why your observed behaviour was not _unambiguously_ a compiler bug. that is all. 17:23:17 well, OK 17:23:17 types changing due to use is accepted in ML. whether it is what you are observing, I cannot say. 17:23:25 kallisti: the evaluator hits r and an exception is thrown 17:23:34 the program then terminates with "*** Exception: Prelude.undefined" or such 17:23:37 it's not documented in the manual, but then the manual doesn't even explain type inference 17:23:48 elliott: huh, okay. 17:23:57 I guess I've just never encountered a polymorphic reference. 17:24:00 kallisti: this tends to happen when stubbing things out with undefined. 17:24:10 it seems almost like an unsafeCoerce. 17:24:25 yes, you can implement unsafe coercion with a polymorphic reference. 17:24:41 o_O 17:24:46 So, graue joined for three hours to say ... nothing. 17:24:50 say r :: forall a. IORef a, then cast :: a -> IO b; cast x = writeIORef r x >> readIORef r 17:24:55 :( 17:24:57 (obviously) 17:25:09 other things you can implement unsafe coercion with: 17:25:11 - unsafeCoerce 17:25:12 - unsafeCoerce# 17:25:16 well, at least it's IO-ified 17:25:20 - other features that are unsafe and thus provide unsafe coercion 17:25:27 I... guess. 17:25:34 polymorphic references should not make you frown any more than these 17:25:44 you may be assuming there is a way to get one without unsafe mechanisms 17:25:48 which is completely false 17:25:54 by the way, I'm grumpy and tired, have a nice day 17:25:56 elliott: btw, does IOT exist? I can't remember whether it does or not 17:26:00 ais523: no 17:26:00 no it just seems to destroy type safety... 17:26:02 ais523: time travel 17:26:13 kallisti: yes. just like unsafeCoerce, unsafeCoerce#, other features that are unsafe and thus provide unsafe coercion 17:26:20 right, but there's no warning here. 17:26:23 lots of things that are not possible in haskell 98 break type safety. 17:26:28 why can't it be implemented the same way as ReaderT and WriterT? 17:26:29 which isn't a huge deal. 17:26:31 getting a polymorphic reference is one of these. 17:26:38 you seem to be ignoring the point i am beating into your head. 17:26:45 unsafeThisIsAWarningCoerce 17:26:47 it is impossible to get a polymorphic reference by design 17:26:50 without unsafe* 17:26:55 ais523: IOT Cont 17:27:03 ReaderT and WriterT seem irrelevant 17:27:09 elliott: I'd just expect the IO to end up outside the continuation, then 17:27:10 IO isn't ReaderT and it isn't WriterT 17:27:14 it's not StateT, either 17:27:17 ais523: no, that's ContT IO 17:27:21 oh, I see 17:27:23 IOT Cont would let you reverse IO 17:27:32 anyway, IO is only State if you ensure linearity 17:27:35 or repeat IO computations multiple times. 17:27:36 more likely. 17:27:37 which is the whole thing IOT needs to break 17:27:43 because the underlying monad can cause you to jump around 17:27:50 and as you can't replace the real world, it all falls apart 17:27:58 anyway, Paul Levy claimed today that StateT Cont and ContT State happened to be the same, was he wrong? 17:28:13 (claiming that monad transformers didn't commute in general, but those two did) 17:28:22 i think he's right, but i'm too tired to think about it 17:28:25 but it'd seem to me that one would leave the state inside the continuations, and the other the state outside 17:28:35 or perhaps he had a different definition of continuations 17:28:38 hmm 17:28:39 right, he is wrong 17:28:42 my favorite thing about [State s a] is State s [a] 17:28:42 one lets you rewind state 17:28:45 the other advances state blindly 17:28:49 regardless of continuationing 17:28:53 yep, that's what I thought 17:29:00 so my guess is that his ContT doesn't affect state 17:29:04 even if it's inside 17:29:12 because it specifically aims only at a part of the language 17:30:13 i don't think his definition of "monad transformer" can be very standard then 17:30:17 if it's "looking" at parts of the underlying monad 17:30:24 hm, I think ReaderT Cont and ContT Reader would be the same though? 17:30:48 elliott: it's more that his effects are impure, so they don't work quite the same way as Haskell monads 17:31:01 kallisti: yes, ReaderT commutes with just about everything 17:31:15 distribute is a more accurate word than commute methinks 17:31:28 is there any underlying property of ReaderT that makes so. something you could, say, generalize to other monads to show that they're also commutative? 17:31:34 or distributive or whatever may be the case. 17:31:51 distributive sounds right... 17:32:53 sequence is basically the distributive law for the list monad, it would seem. 17:32:56 most monads are functions underneath 17:32:59 ReaderT is a function 17:33:02 right. 17:33:04 (a -> b -> c) ~ (b -> a -> c) 17:33:05 q.e.d. 17:33:12 ah okay. 17:33:16 i'm not convinced ReaderT and ListT distribute in the same way 17:33:27 sequence is a distributive law, yes 17:33:29 traversable generalises it 17:33:41 Traversable t = t distributes over any Applicative 17:33:43 or w/e 17:33:46 :t sequenceA 17:33:47 Not in scope: `sequenceA' 17:33:50 fuck you 17:33:52 @hoogle sequenceA 17:33:52 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 17:33:52 Data.Foldable sequenceA_ :: (Foldable t, Applicative f) => t (f a) -> f () 17:34:03 i'm still not entirely clear on why Kernel needs the wrap/unwrap primitives in addition to vau 17:34:14 but, i seem to have shot myself in the foot by lacking them in my toy language 17:34:31 kmc: to be able to evaluate anything 17:34:36 kmc: you can also just have eval, I think 17:34:43 but you can implement eval with wrap 17:34:44 oh nice I was wondering if sequence was generalized. 17:34:46 I forget what unwrap is for though 17:35:02 unwrap is used to implement apply 17:35:12 i think my real problem is, i'm trying to use apply on operatives 17:35:20 and the paper explicitly states that this is terrible and disgusting 17:35:34 i feel kernel has some concepts it could unify and clean up 17:35:55 i'm unconvinced the distinction between thingys (the normal functiony things) and fexprthingys is productive 17:36:05 as opposed to just having fexprthingys that happen to evaluate their arguments in an orderly fashion 17:36:19 right 17:36:32 applicatives vs. operatives 17:36:33 that's my feeling as well 17:36:41 but i haven't used this stuff very much 17:37:03 my toy language lacks that distinction 17:38:01 so basically you look at the underlying structure of the type to determine if it distributes. showing that ListT is distributive is done recursively -- basically it's the code of sequence. :P woah it's like curry-howard, man. 17:41:19 -!- tzxn3 has joined. 17:42:00 I think real distributivity is a biconditional though. here we're talking about a single implication unless both of the monad transformers are "distributive" 17:42:50 there's [m a] -> m [a] but no m [a] -> [m a] forall Monad m => m 17:44:20 well, that's how I know distributivity. Perhaps in abstract algebra it's only required that one operator distributes over the other. 17:46:59 pure . fmap head 17:47:00 what now 17:47:05 nooooooo 17:47:15 -!- oklopol has quit. 17:47:30 -!- Taneb has joined. 17:47:30 wait what. 17:47:40 no... 17:47:43 Hello! 17:47:46 hi!! 17:48:19 elliott: also pure is Applicative not Monad nyahahahaha blah blah. 17:48:43 why do you like pure so much? 17:48:52 Because it's shorter? 17:48:53 you seem to prefer it to return. 17:48:57 from the examples I've seen. 17:49:12 I usually use whichever requires the fewest class constraints. 17:49:35 I use pure whenever using it as a unit (as opposed to as part of a larger monad computation) when the type is monomorphic. 17:49:42 For instance I always use pure :: a -> [a] rather than return. 17:49:53 which is the type it was used as above 17:50:00 elliott: seems '_a really is different from 'a 17:50:01 http://sprunge.us/aFRG 17:50:39 so I suppose the question is, what technical limitation of OCaml causes it to type q and r differently? 17:50:46 see I would use pure if I were only using Applicative functions, and return if only using Monad functions... I guess I would pick pure if both were already in use and there was no way to simplify the code to use only one constraint. 17:51:16 # let s x = c i i x ;; 17:51:17 val s : (('a -> 'a) -> ('b -> 'b) -> 'c) -> 'c = 17:51:45 oh, aha, eta-expansion causes it to work, it must not like polymorphic function values (as opposed to polymorphic function definitions) 17:54:39 wow, this type is beautiful, if ultimately not what I wanted: http://sprunge.us/HGXN 17:55:41 heh 17:56:02 pretty 17:56:25 it's also not actually usable for swapping :) 17:56:29 (q 4 // q 5 // oerjanswap doesn't type) 17:57:36 ais523: what do you make of http://esolangs.org/wiki/Basic_Input/Output_Commander? 17:57:41 it's... 17:57:59 -!- Deewiant has quit (Quit: Solaris + USB disks = ffffffuuuuuuu). 17:58:12 it's kind of risky to implement 17:58:22 given that it has a command that's entirely capable of repartitioning the hard drive 17:58:44 virtualbox that shit 17:58:47 and it doesn't have any memory storage, or any control flow 17:59:04 wouldn't writing to RAM be memory storage? 17:59:04 it's from the person who brought us [[mindscrew]] 17:59:08 clearly a visionary we're working with here 17:59:08 -!- Taneb has quit (Ping timeout: 240 seconds). 17:59:14 ais523: no, obviously the ip is a file thing 17:59:16 presumably it's nonetheless TC as it can rewrite your OS to run the program for oyu 17:59:17 *you 17:59:24 and automatically order more storage from Amazon when it runs out 17:59:46 given a suitable credit card 18:00:04 TC dependent on available lines of credit and liquid assets 18:00:07 interesting properties. 18:01:45 ais523: haha, I really hope AWS starts expanding before it reaches capacity and then never stops and entropy is halted 18:01:56 just so your proof by Amazon ends up being inadvertently valid 18:02:43 has anyone managed to successfully use AWS? 18:02:53 it's quite a mess of services. 18:03:08 by "anyone" I mean people in this channel, of course. 18:03:13 the only relevant people in the universe. 18:04:15 i'm sure someone in here has used EC2 before 18:04:22 I gather that apart from S3 and EC2 they're mostly rubbish 18:05:11 I tried to use it once... and decided that it would be easier to just use a dedicated server. 18:06:41 elliott, how much have you used Kernel, and what for? 18:07:00 kmc: 0, nothing 18:07:06 I don't "use" languages ;) 18:07:27 but I read at *least* 25% of the paper! 18:07:35 I perform theoretical language abuse on a theoretically daily basis. 18:08:23 -!- Taneb has joined. 18:09:54 I swear my dreams are becoming increasingly rave + computer science oriented 18:10:01 sounds goofd 18:10:08 not to be confused with good 18:10:44 `addquote I swear my dreams are becoming increasingly rave + computer science oriented 18:10:47 my personal Heaven would be endless computer science raves where I have magical powers such as flight 18:10:52 809) I swear my dreams are becoming increasingly rave + computer science oriented 18:11:35 Today's Dinosaur Comics is pretty much awesome. 18:15:53 `quote 18:15:55 `quote 18:15:56 387) Lymia, I don't know what that is but I want to hit you for it on principle. 18:15:56 `quote 18:15:57 Failed to clone the environment! 18:15:57 Failed to clone the environment! 18:15:58 `quote 18:16:00 Failed to clone the environment! 18:16:00 `quote 18:16:02 Failed to clone the environment! 18:16:05 hmm 18:16:28 We've hit quote limit 18:17:33 Friendship: ^ 18:18:18 `quote 18:18:21 694) Vorpal: I was paying too much attention to elliott and not enough to my HP 18:18:25 `quote 18:18:27 Failed to clone the environment! 18:18:37 Headlines: FBI investigation of chat logs reports illegal #esoteric environmental cloning experiment fails catastrophically 18:21:03 gah, the force-quit tool's malfunctioned and left a window covering my screen, how do I force-quit it? 18:21:09 ais523: hey, what ad/script-blocking/anonymising FF extensions do you use? I'm becoming sufficiently annoyed by Google's context-sensitivity and YouTube ads to want to do something about it 18:21:26 I can tell you the ones I use in Chrome... 18:21:29 oh, killall gnome-panel worked 18:21:36 which is a sign that they must be doing something /really/ wrong, if it's so terrible they're overwhelming my immense apathy 18:21:39 elliott: AdBlock Plus, NoScript, and RefControl 18:21:39 kallisti: sure 18:21:49 combined with turning off Flash in Firefox, and using a different browser when I want it 18:21:54 oh, and I want to block Analytics too, although I can't quite articulate why 18:21:57 I use AdBlock Plus as a general annoyance-blocker 18:22:14 * elliott was considering http://disconnect.me/ 18:22:16 elliott: because they're taking information from you that is worth money, and if they're taking it without your consent you can't sell it to them later 18:22:22 -!- Deewiant has joined. 18:22:26 which purports to disable google's bubbling and facebook's cross-site stuff and the like 18:22:36 what does "bubbling" mean, exactly 18:22:44 result personalisation, essentially 18:22:47 ah, OK 18:22:49 that annoys me 18:22:53 ais523: well, it's not an ethical objection per se, those don't bother me enough to do something 18:23:04 I think it's that Analytics tracks slightly more than I'm OK with 18:23:07 for the same reason that kerio plays computer games in English despite setting everything else to Italian 18:23:08 for Chrome: Ghostery, No Track Plus, Adblock Plus 18:23:18 Ghostery is kind of like noscript but less annoying 18:23:19 iirc it tracks which links you click, right? 18:23:33 * elliott isn't really interesting in blocking scripts in general 18:23:35 *interested 18:23:51 elliott: I blacklist by default but am free with adding to my whitelist if I find a site whose scripts I want to use 18:23:51 also here's ABP lists related to privacy protection: http://adversity.uk.to/ 18:24:02 elliott: oh, I also set cookies to no third-party, prompt for first-party, in Firefox 18:24:04 elliott: Ghostery specifically targets a huge list of advertising company tracker script things. 18:24:06 that's not an extension but a core setting 18:24:24 kallisti: doesn't blocking ads take care of that? 18:24:25 but it's pretty annoying, because if you reject one cookie from a site, Firefox then prompts you for all the others it tries to set, unless you choose "always reject" 18:24:30 there should be a "deny for session" option or something like that 18:24:38 ais523: first-party cookies I'm OK with too 18:24:56 elliott: well, say, first-party cookies from Google I'm not OK with 18:24:59 as they can be used to personalise results 18:25:01 elliott: I don't think so. Ghostery blocks scripts. I'm not sure if Adblock can block scripts... 18:25:03 mostly I want to banish ads/tracking, and preferably disable "customisation" like Google's 18:25:17 if I need to store a Google cookie, I'll use Chromium 18:25:33 elliott: http://lifehacker.com/5887140/everyones-trying-to-track-what-you-do-on-the-web-heres-how-to-stop-them 18:25:34 "• Truly depersonalize searches on search engines like Google and Yahoo (by blocking identifying cookies not just changing the appearance of results pages), while staying logged into other services — e.g., so you can search anonymously on Google and access iGoogle at once." 18:25:36 that sounds useful 18:26:22 has extensions listed for FF and Chrome 18:26:22 kallisti: ABP handles YouTube video ads, right? 18:26:28 eh, it's spotty. 18:26:31 but it can. 18:26:32 those are really what's driving me up the wall sufficiently to do this :P 18:26:38 sometimes I still get ads. 18:26:41 but not often 18:26:52 but yes ABP should be installed regardless 18:27:07 it's an essential web browsing tool. :P 18:27:23 i'll probably go with just AdBlock, IIRC it's slightly better than ABP for Chrome 18:28:10 I also recommend http://adversity.uk.to/ 18:28:11 hmm, I wonder what would happen if I wrote an extension to accept cookies but randomly change their contents 18:29:07 ais523: anyway, you clearly accept cookies from esolangs.org 18:29:08 also the priv3 extension looks interesting. 18:29:15 I'm surprised you trust me more than :P 18:29:25 elliott: but I want the site to track me 18:29:37 so that it can attach my user name to my edits and let me make admin actions 18:29:42 I'm actually bubbling everybody's recent changes. 18:29:46 Phantom_Hoover doesn't see any BF derivatives. 18:29:52 ais523 only sees things needing cleaning up. 18:30:00 What do I see? 18:30:05 heh, that gave me a good laugh 18:30:07 shachaf: Nothing. 18:30:14 elliott: Correct! 18:30:23 in which we learn that shachaf is actually blind 18:30:39 Champagne. 18:31:12 -!- zzo38 has joined. 18:31:31 elliott: which kernel should I install: linux-image-3.2.0-1-adm64, linux-image-amd64, or none. 18:31:42 kallisti: Which one is the default? 18:31:45 first 18:31:47 And why are you using the expert install? 18:31:51 Pick whichever one is the default. 18:31:53 I am? 18:31:59 I picked "graphical install" 18:32:00 Maybe they prompt for kernel on regular installs now. Silly. 18:32:02 there was no expert option. 18:32:47 I wonder what happens when I install none. 18:33:04 what exactly is Debian without a kernel? 18:33:33 Debian without a kernel. 18:33:38 unbootable, obviously. but... why would you do that? 18:34:11 are there other ways to install kernels into a "Debian without a kernel"? 18:34:27 BSD Debian. 18:34:29 You could boot the kernel on something else and point it at the partition. 18:34:34 And yes, there is Debian/kFreeBSD. 18:34:41 Debian is also the official GNU HURD distribution. 18:34:42 neat 18:35:13 (Seriously: http://www.debian.org/ports/hurd/) 18:35:25 I... believed you the first time. 18:36:20 I think the hardware erasing section of the install was doing one of those "make multiple passes with random bytes" things. 18:36:23 because it took forever. 18:37:00 That was probably because you selected encryption. 18:37:03 yes. 18:37:06 pretty sure that's why. 18:37:11 otherwise it wouldn't be so paranoid. 18:37:15 (I would hope) 18:37:41 elliott: To my knowledge, Debian is not "the official" GNU HURD distribution, it's merely "the only" GNU HURD distribution. GNU is still the official one, in spite of the fact that it hasn't had a release in a decade. Unless this policy has changed recently. 18:38:14 what is GNU even doing today. 18:38:16 I wonder. 18:38:19 working on HURD? 18:38:22 Friendship: Hmm, yes, you're probably right. But it's what everybody uses, and what the LiveCDs are :P 18:38:24 kallisti: ...? 18:38:28 kallisti: Maintaining hundreds of software packages? 18:38:32 glibc? Emacs? gcc? 18:38:34 Have you heard of these? 18:38:37 yes. 18:38:37 elliott: Eeyup. 18:38:46 GNOME? 18:38:53 GNU is not a centralised organisation, so they don't really "do" anything. 18:39:00 I mean, beyond administration and advocacy and so on. 18:39:13 Individual GNU projects range from incredibly active and ubiquitous to dead dead dead. 18:39:17 they have an office don't that? I'm wondering what they do on a daily basis. 18:39:48 It's awesome that the "official GNU snapshot" has a link to a 404, and isn't even hosted at gnu.org 18:40:14 kallisti: Boring administration, I suspect. 18:40:23 Are you sure GNU have an office? 18:40:25 The FSF do. 18:40:29 I'm not sure GNU does. 18:40:30 that's probably what I'm thinking of. 18:40:50 Well, the FSF handle lots of legal matters, do lots of promotional campaigns, advocacy, is rms' nanny... 18:41:20 They maintain the licenses, have servers, etc. 18:41:20 sounds good 18:41:34 "is rms' nanny" X-D 18:41:43 root mean square? 18:41:51 rusrs 18:42:06 whut 18:42:08 Friendship: Someone's gotta pay the guy's expenses :P 18:42:10 kallisti: r u srs 18:42:11 Raytheon Missile Systems? 18:42:17 troll 18:42:30 no I actually have no clue what that acronym is supposed to expand to. 18:42:47 ... 18:42:54 stallman you dimwitted dimwit 18:42:55 It expands to "rms m stallman" 18:43:05 ..wat 18:43:09 Friendship: Watch as we find out that kallisti does not know who Stallman is. 18:43:09 why 18:43:14 no I do. 18:43:36 rms = Richard Matthew Stallman. HTH HAND 18:43:36 MORE LIKE RMS M STALLAN 18:43:42 *STALLION 18:43:45 D-8 18:43:47 WHY WOULD YOU EXPECT ME TO KNOW STALLMAN'S MIDDLE FUCKING INITIAL. 18:43:53 M 18:44:02 Friendship: my little rms freedom is magic 18:44:11 kallisti: Dude. 18:44:14 kallisti: It's "rms". 18:44:16 Everyone calls him rms. 18:44:26 It's like esr, except rms is more tolerable. 18:44:32 ...sorry I wasn't born in the 70s hacker culture as you apparently were. 18:44:41 .................. 18:44:50 Friendship: So, if you got op status, would you kick kallisti right now? 18:44:54 I'm planning my votes. 18:44:57 (They count extra, since I'm God.) 18:45:10 -!- PiRSquared has changed nick to HalfTauRSquared. 18:45:38 "memorize Wikipedia" is still on my list of todos 18:46:18 I hate to say it, but willful ignorance isn't necessarily kick-worthy. 18:46:26 :( 18:46:37 willfull? 18:46:44 with two l's 18:46:48 extra ful 18:46:50 Friendship: Dude. 18:46:53 You are The Problem now. 18:46:56 :'( 18:46:58 But, but ... 18:47:01 * Friendship is Magic 18:47:12 I would say that ignorance of some subjects is... necessary. 18:47:15 to like, functioning daily. 18:47:20 and being a human being. 18:47:25 Friendship: Come on man. 18:47:28 Stand up for what's right here. 18:50:00 Friendship: so, if you don't know the name of every episode of Supernatural because the list freely available on the internet 18:50:05 is that willful ignorance? 18:50:13 or, a result of opportunity costs? 18:50:16 kallisti: This is #esoteric, not #shitty-tv-shows 18:50:28 esoteric free software advocates. 18:51:00 -!- Friendship has set topic: Home of esoteric free software advocates | So good to be in the Morning....In America! | http://codu.org/logs/_esoteric/ | http://esolangs.org/wiki/ has moved servers!. 18:51:02 Yup. 18:52:11 just you wait until I get a chance to chastize your lack of knowledge of middle initials.. 18:52:16 there will be hell to pay. 18:52:30 YOU BETTER START STUDYING. 18:52:51 <-- GFR 18:53:04 (Because I have established in the imaginary canon of #esoteric that my middle name is Friendship) 18:53:11 <-- ALC 18:53:17 Noted. 18:53:18 oh we weren't actually listing our actual initials actually. 18:54:02 K"LP"K 18:54:12 short for kallisti "likes Perl" kallisti 18:54:46 * Friendship nods sagely. 18:54:54 <-- NGEvD 18:55:01 Except without the e 18:55:08 :o( 18:55:31 I think ":o(" are much better initials. 18:56:13 (The "E" stands for Elliott. And I almost actually had that as my middle name) 18:56:24 -!- augur has quit (Remote host closed the connection). 18:57:10 IAGTSAAOMSVTUOA 18:59:09 League for Programming Freedom sounds like a superhero organization. 19:04:24 http://www.gnu.org/graphics/bwcartoon-m.jpg <-- it is 19:04:44 how does one program freedom? 19:04:54 import freewill; 19:05:17 while(1){ doWhatYouWant() } 19:05:52 Hoorah! 19:10:29 -!- kallisti_ has joined. 19:10:36 -!- kallisti has quit (Ping timeout: 244 seconds). 19:14:46 I found something else wrong with esolang wiki. If you select what you want from special pages dropdown list, it is 404 error. 19:16:33 Example? 19:17:02 I think you forgot to install the "redirect.php" file 19:17:21 -!- augur has joined. 19:22:23 http://codepad.org/mpf1KzFL <- truth-machine gone OOP 19:24:07 zzo38: the manual says redirect.php is only for legacy stuff 19:24:20 i did install it but didn't map it to the web server; I can if it's causing you problems 19:24:27 what was the other thing wrong with the wiki? 19:24:39 spam 19:24:59 zzo38: is the moon waxing or waning? 19:25:01 elliott: have you installed apache before 19:25:11 esolangs.org is using nginx 19:25:17 but i have used apache in the past 19:26:08 (I meant, the other thing zzo38 found that's wrong) 19:26:55 quintopia: why do you ask? 19:28:06 Taneb: I thjink waxing? 19:28:26 Okay 19:28:54 elliott: The thing about redirect.php (the special pages dropdown in the Nostalgia skin uses it) is the only thing I was saying is wrong 19:29:13 OK. 19:29:16 I'll fix it. 19:29:37 Done. 19:29:40 I can say a lot of other things are wrong but the things other than that are mostly just a matter of my opinion. 19:30:20 hope it works now :P 19:30:28 Yes, it works now 19:30:54 yay 19:31:21 Taneb: Can't you look it up yourself the phase of the moon? Why did you ask me? Sure, I can figure it out too, but still 19:31:28 elliott: because i am considering installing it now on my vps and want an idea of what kind of task it is to install 19:31:52 zzo38, you just seemed the right person to ask 19:32:11 So long as mRoman is making it OO, I'll make it Smalltalk (but with no real OO ^^) 19:32:13 http://sprunge.us/BjbO 19:33:07 quintopia: There is absolutely no reason to make a new Apache installation today. 19:33:15 Especially not on a VPS which will have comparatively low memory. 19:33:21 Use nginx. 19:33:27 ok 19:33:42 how is that? 19:33:54 Apache is a memory hog and pretty slow to boot. Also, its configuration is really baroque. 19:34:11 I mean, not that it can't be made performant. 19:34:18 But it's definitely not optimised for the kind of environment you get on a VPS. 19:34:20 elliott prefers more romantic configuration styles. 19:34:21 so nginx is easier to install and use? 19:34:25 Does nginx support CGI, or only FastCGI? Looking at documentation for nginx, it seem various things I use in Apache which nginx don't have 19:34:29 kallisti_: me too 19:34:33 Definitely. (It's also pretty popular.) 19:34:39 Taneb: Why did I seemed the right person to ask? 19:34:52 zzo38: because you know where the sun is rising 19:35:03 http://news.netcraft.com/archives/2012/01/03/january-2012-web-server-survey.html (third most popular webserver) 19:35:16 The only alternatives in the "server that can do general stuff" stakes are... uhh, ISS and lighttpd. 19:35:21 [Did you know...] that the Sri Lanka Eye Donation Society has donated over 60,000 corneas for transplantation in 57 countries, including those of the late President of Sri Lanka, J. R. Jayewardene? 19:35:30 I want those corneas. 19:35:32 lighttpd leaks memory like a sieve, or did, and isn't all that popular; IIS is... presumably not one of your options. 19:35:34 elliott: so how long do you think it will take to configure? 19:35:37 quintopia: I only know where the sun is rising and what phase of moon and these things because of the computer program Astrolog, can plot charts which makes it clear these things. 19:35:47 zzo38, I dunno, I just thought "Hmm, the moon. Is it waxing or waning? I know who to ask! zzo38!" 19:35:51 quintopia: It depends on what you want to do. 19:35:59 zzo38: There are CGI<->FastCGI bridges. 19:36:19 elliott: Hm, I'm surprised that lighttpd isn't higher on the list ... 19:36:22 It's true that nginx doesn't support CGI OOTB but it's easy to make it do so. 19:36:27 elliott: i will probably put a wordpress or something like that in it. some well-supported and documented content manager 19:37:12 quintopia: Wellll, since I'm assuming you don't know what you're doing (no offence), I'd assign half a day or so to the task. 90% of that will be reading http://wiki.nginx.org/WordPress. 19:37:15 You're using Debian, right? 19:37:35 Taneb: Download Astrolog onto your own computer and then figure out phase of moon and these things by yourself (although you would have to learn how to read the horoscopes and other charts) 19:37:37 yes 19:37:46 If so, setting up PHP for FastCGI is really easy (install one package and you're done), so the only thing you'll likely need to do is write a ~50-line nginx site description. 19:37:50 quintopia: (What Debian release?) 19:37:54 Not sure stable has php-fpm. But it might. 19:38:16 its actually ubuntu maverick 19:39:01 thanks for the link 19:39:12 Yeah, it's in Maverick. 19:39:21 Be careful with WordPress. 19:39:53 Taneb: You can do that, learn phase of moon and that stuff by yourself. Why don't you learn it by yourself in this way? 19:40:46 elliott: i know not to download templates from non-wordpress sites, and keep it up-to-date 19:41:33 quintopia: That does nothing to protect you from the countless security flaws that have been discovered in the core code in the past... but perhaps they're better these days. Anyway, how big is your VPS? 19:41:36 zzo38, I don't know. 19:41:37 You'll want to install that WP Super Cache thing. 19:41:56 In addition to phase of moon, and where sun is rising, I used Astrolog to figure out when is Chinese New Year, when is solar noon, and more things. 19:42:32 quintopia: Oh, and you'll want to install APC, there are guides on the net... ignore most of the tuning advice for your purposes except upping the memory to 64 megs. 19:42:38 * elliott must ask why quintopia doesn't go with wordpress.com or something. 19:42:56 elliott: 1kRAM, 1TB bandwidth, 60GBHDD 19:43:15 i'm not committed to wordpress. if you know a better CM 19:43:25 One kilobyte of RAM? Impressive. 19:43:38 Less than a VIC-20. 19:43:45 lol 19:43:46 sorry 19:43:47 What kind of terrible VPS host is that that's giving you 1 terabyte of bandwidth per month on a RAM/HD plan that small? 19:43:48 (It's got four.) 19:43:54 You're being ripped off. 19:43:54 1kMBRAM 19:44:18 its not a ripoff. its fairly cheap 19:44:34 It is a ripoff, in that there's no way they'll be happy if you use all that bandwidth. 19:44:38 Thus they're overselling. 19:44:45 A kilomegabyte is the funniest unit. 19:44:47 sure 19:45:05 but i'm not paying for the transfer really 19:45:16 i just want the RAM and the always-on status 19:45:26 Anyway, I'm not sure why you're using a VPS if you just want to run a single CMS like WordPress. I mean, there are hosted solutions. But it's your time. 19:45:31 fizzie: I like the grambit more. 19:46:48 I wonder about prgmr's bandwidth limits. Technically they have those, but no-one has even clarified me the units (it's probably /month, but it's *almost* within the realm of possibility it's /day), and the billing site's "view my usage" page always shows only zeroes. 19:46:50 i already have the VPS. i would have the VPS with or without the webface 19:47:06 but i figure since i have it, i can put a blog on it too yeah 19:47:33 anyway, i eventually want to plug my bot into the webserver 19:47:40 "If you had it, you should have put a blog on it", doesn't someone rap like that? 19:47:40 so i have ulterior motives 19:47:41 fizzie: It's most definitely per-month, unless prgmr have wildly differing bandwidth plans to the rest of the universe. 19:48:01 Probably first thing you should do if you install Astrolog, is to adjust the configuration settings in ASTROLOG.DAT file to your timezone, geographic location, preferences, and macros. 19:48:28 OK, there is no way The Lorax is not going to be the most terrible film ever created. 19:48:50 only one way to find out! 19:48:56 [[Now people are having a (rather justified) heart attack about the fact that The Lorax is now being used to cross-promote a new SUV. Earlier this week, Mazda announced that it has partnered with Universal Pictures to promote the new "'Seuss-ifed' 2013 Mazda CX-5 crossover SUV." The cross-promotion includes commercials with a cartoon version of the car driving through a valley of Truffula trees. The ads claim that the car is "Truffula tree friend 19:48:56 ly"]] 19:49:00 Literally no way. 19:49:31 Heh, you've seen that, eh :) 19:49:58 Why did you want the phase of moon anyways? 19:50:18 elliott: It's not *that* different from e.g. buyvm, which is another cheap thing. I mean, they give 1000GB of bandwidth for the 256M/30G $5/month plan. 19:51:01 fizzie: You suggesting buyvm will be happy if you use all that? 19:51:17 elliott: Perhaps not, but that's their nominal "BW" number. 19:51:34 Right, which just means they, too, are overselling, which is unsurprising for an ultra-budget provider like that. 19:52:32 elliott: they wont be upset though, since they are selling based on the fact that for every person that does use it, 100 others won't. it works out. 19:53:21 Sure, "works out". 19:53:38 That's why everybody ran into all those horrible clogging problems with that overselling provider -- was it DreamHost? -- some years ago. 19:53:59 Lying to your customers works OK, because most of them won't realise it! 19:54:05 elliott: that still happens to BlogNomic occasionally 19:54:07 (it's hosted there) 19:54:54 elliott: as long as they stay on top of adding bandwidth when they need to, they shouldn't be causing problems 19:55:31 quintopia: That same argument would suggest that they should just offer completely "unlimited" bandwidth. 19:55:41 And heck, RAM too, because for every person that uses it... 19:55:44 elliott: no it wouldnt 19:56:07 your extrapolation tactics wont work on me, fallacious arguer 19:56:17 I am undone. 19:56:17 1000 GB/month equals 3 Mbps; that much per customer is I guess slightly much. 19:56:23 -!- ais523 has quit (Remote host closed the connection). 19:57:14 Anyway, I was more wondering whether prgmr actually has a counter or not at all, since it doesn't seem to be user-visible. 19:57:38 My best guess is that it doesn't. 19:57:49 They just set a number so that if somebody starts being a problem they can point to it. 19:57:52 Wow, that's a handy escape route out of TVTropes 19:57:58 Genius Programming links to our wiki 19:58:09 prgmr don't really watch anything. 19:58:14 The limits are more like... guidelines :P 19:59:40 Welllll, the HD and RAM limits are pretty well limits. 20:00:07 DRAW OUTSIDE THE LINES 20:00:10 I seem to have moved a total of 4 GiB in 75 days (unless these counters have wrapped around), so I suppose I'm one of their "not a problem" users when it comes to that. 20:00:36 2.21 gigs in however long the esowiki's been up here. 20:00:46 99% of that is spambots and rogue crawlers from less-regulated parts of the globe. 20:00:55 I should probably block the latter. Except they don't actually look at /robots.txt. 20:00:58 Taneb, I think I added that link. 20:01:05 Thanks, Phantom_Hoover 20:01:13 Thantom_Hoover? 20:01:20 You're still my favourite person in Northern Edinburgh 20:02:16 True love. 20:02:33 `quote now is not the time 20:02:36 No output. 20:02:42 `quote Dammit 20:02:44 Failed to clone the environment! 20:02:47 O_O 20:02:51 FFFFFFFFFFFFFFUUUUUUUUUUU 20:02:54 It keeps happening, yes. 20:03:09 DAMMIT 1.19 COME OUT FASTER 20:03:18 Now I just have an image of HackEgo endlessly falling down a staircase ENDLESSLY 20:03:25 WHERE DID ALL MY SPACE GO?! 20:03:25 Friendship: You should make Transactional HackEgo hapen. 20:03:36 `pastequotes 20:03:39 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29212 20:04:01 `quote 668 20:04:02 Failed to clone the environment! 20:04:11 Taneb: Foiled by the clone army. 20:04:13 I'll do this manually 20:04:14 668) 678) Dammit, Gregor, this is not the time to fall in love 187) Gregor: You should never have got her pregnant. what whaaaaaaaaaaaat 20:05:20 It's the only way to make file pile stop from getting taller, etc. 20:05:57 elliott: I don't think it's all HackEgo though ... but if it's not, I don't know what it is >_> 20:06:09 Friendship: Shhh, I just have to shoehorn as many SBAHJ references in as I can. 20:06:11 Blame fizzie. 20:06:17 Friendship: Would it help if I deleted some quotes? 20:06:22 lol 20:06:29 (http://www.mspaintadventures.com/sweetbroandhellajeff/?cid=031.jpg, for posteriority.) 20:10:28 "I LIKE WRITING BIG, IT MAKES ME FEEL COOL" -- Friendship, 2005 20:10:31 I can't remember the context to... 20:10:34 `quote 511 20:10:42 511) So it's like... Rummy mixed with... breakout? 20:11:58 http://www.ihopandthelorax.com/ 20:12:01 WHAT 20:21:53 How do you mix rummy with breakout? 20:22:53 You have to destroy the blocks in a specific order or you lose? 20:30:16 `pastelogs Rummy mixed with... 20:30:48 No output. 20:30:55 `help 20:30:57 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 20:33:00 Help! 20:35:02 Mahjong! 20:35:10 That's what's like rummy mixed with breakout! 20:35:34 How is mahjong like rum mixed with breakout? 20:36:41 -!- oerjan has joined. 20:37:14 You asked me that last time 20:37:15 `welcome oerjan 20:37:19 oerjan: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 20:37:27 yay! 20:37:37 my what a nice wiki 20:38:47 Yes, I run it. 20:38:49 It's the best. 20:38:53 By the way, 20:38:57 `@ oerjan ? esoteric 20:39:00 oerjan: This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net. 20:39:04 You don't believe in astrology or anything, right? 20:39:09 i did not realize that there were 5 billion different PHP CMS's 20:39:17 * elliott awaits swattage. 20:40:13 * oerjan swats precognizant elliott -----### 20:45:03 oerjan: So do you want to be a wiki admin yet? 20:45:09 Oerjan did do the horoscope for Agora Nomic, although that is not entirely relevant. and anyways they just used the default settings without adjusting them so you just do it without understand really 20:45:39 Yeah, that oerjan is a poser astrologist. 20:47:36 fortune -o offended me. It considered a quote I don't find offensive as offensive. 20:47:57 Sgeo: is that a quote? 20:48:22 the logs are just too long today 20:48:58 -!- augur has quit (Remote host closed the connection). 20:49:01 No, I'm just being silly. In my UNIX class, I showed someone the fortune command, and noted the -o option, so he installed it. The first two quotes that came out of fortune -o may have been from the atheism vocabulary or something? 20:49:12 oerjan: hope you enjoy RECENT CHANGES, then 20:49:57 Third one was some limerick about a whore. 20:50:00 Sgeo: -o mostly enables stuff that isn't actually offensive, and things that you don't *want* it to output because they're actually blatantly offensive rather than interesting or amusing. 20:50:18 I think the fortune program also has option to select from both offensive and nonoffensive? The one I have always selects from both offensive and not offensive files, it doesn't have option to change them 20:50:18 So you just have to deal with not seeing any swear words and missing out on a bunch of unobjectionable stuff because the organisation is crap. 20:51:44 I think you can list the ... files it uses? 20:52:26 * oerjan wonders if today's xkcd has a point he's not getting 20:53:03 It looks pretty? 20:53:15 no, not that. 20:53:31 it is very pretty :D 20:53:35 Reminds me of the <100 days. 20:53:51 Can't tell whether actually pencil-drawn, or just made to look it. 20:54:32 Actually I like it. 20:54:44 A lot of the really old comics were essentially meaningless too. 20:55:04 Phantom_Hoover: Make sure I'm not just going crazy. 20:55:21 i like trying to draw beach scenes sometimes.. and i am not good at drawing.. that scene is so well drawn i would want to pack my bags in 20:58:26 ok so the bread represents gathering people together... eg facebook 20:58:45 and then selling those people off 20:59:29 uh.. that is to say, a website business.. you attract users.. and then sell their personal data etc 20:59:54 thats my interpretation 21:00:11 diabolical 21:00:51 elliott, I like it too; it doesn't have that "look at me I'm funny" feeling that most newer xkcd does. 21:01:14 I like white beret guy 21:07:26 I don't like black hat guy any mor. 21:07:28 *more 21:08:00 He stopped being an entertaining sociopath and started just being an asshole ages ago. 21:11:46 http://xkcd.com/284/ OK, xkcds used to be entertaining even if you didn't get them at all. 21:12:12 I liked that one because I have done pretty much that 21:16:13 -!- elliott has quit (Quit: Leaving). 21:19:22 Wait how did he not get that 21:19:23 has 21:19:31 has he never tried to extend a tape measure 21:20:04 elliott is a recluse. He has no access to tape measures. 21:20:21 what if he needs to measure something 21:20:36 He gets a meter stick 21:20:37 sometimes "you didn't get them" doesn't mean "i didn't get them" 21:21:06 itidus20: i do not think that applies 21:22:49 to me the funny part is that it's a reference on the internet to the activity of extending tape measures in the air and seeing them collapse 21:25:20 sort of like if he did a comic book about losing the end of a stickytape roll when using the tape.. to the extent that some companies started to include a tab of paper to make it easier, and others included a plastic dispensor with a metal cutter 21:25:59 and needing to have scissors on hand... the way tape can distort and get ruined when you try to break it by hand 21:26:15 -!- azaq23 has joined. 21:26:28 -!- azaq23 has quit (Max SendQ exceeded). 21:26:35 elliott is British. They don't use tape measures, because tape measures don't support fathom/hand/centimeter measurements. 21:27:08 Sorry, *centimetre*. 21:27:27 * oerjan has a plastic dispensor with a plastic cutter 21:28:15 and a tape measure 21:28:29 (um, not as one item) 21:29:04 i meant plastic dispensor in terms of what the dispensor was made of( an adjective), not what the dispensor dispensed (a noun) 21:29:27 but so did you 21:29:31 now i feel like a fool 21:29:41 ahh the ambiguity is diabolical 21:30:07 i suspect the tape may be plastic too? 21:30:23 (in the dispensor. the tape measure is metal.) 21:30:46 s/o/e/g, i suspect 21:32:15 i was kinda imagining a dispensor dispensing plastic for the purpose of manufacturing things with plastic 21:33:19 those 3d printers might have some 21:35:44 * Sgeo writes a Common Lisp macro 21:35:54 (Just a duplicate of an existing macro, to help me get the hang of macros) 21:37:35 write a macro for duplicating macros, duh 21:41:46 -!- Nisstyre has joined. 21:44:01 -!- pikhq has quit (Ping timeout: 245 seconds). 21:44:10 -!- pikhq has joined. 21:45:02 -!- KingOfKarlsruhe has joined. 21:46:29 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 21:47:25 -!- TeruFSX has quit (Read error: Connection reset by peer). 22:17:57 -!- Taneb has quit (Quit: Goodbye). 22:31:32 -!- pikhq_ has joined. 22:33:40 -!- pikhq has quit (Ping timeout: 244 seconds). 22:53:10 -!- HalfTauRSquared has changed nick to PiRSquared17. 22:55:50 -!- monqy has joined. 23:00:46 -!- Ngevd has joined. 23:02:51 "I LIKE WRITING BIG, IT MAKES ME FEEL COOL" -- Friendship, 2005 23:02:55 I /probably/ said this. 23:03:15 Hello! 23:04:42 He picked up way too many cards! Now he has only ten turns remaining and still needs to pick up six side cards to win, I don't think so especially since they keep getting paralyzed 23:05:58 `pastelogs [1!]{5,} 23:06:08 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28199 23:09:33 Keymaker did a lot of them 23:11:33 That being said, I assumed he was talking about caps, not exclamation points? 23:11:47 And my main thing is that I used to overuse the tongue-face smiley, anyway. 23:14:33 They have a lot of ENERGY REMOVAL and stuff, but none of that will help if you are just going to deck yourself. 23:15:05 wtf was with !!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!! 23:15:08 ??? 23:16:00 i suspect he may have wanted some !!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!!ATTENTION!!!!!!!! 23:16:21 Especially if your opponent has enough defense. 23:16:54 * Friendship nods sagely. 23:17:56 http://codu.org/logs/_esoteric/2005-01-21.txt 23:18:06 it doesn't clarify very much 23:19:53 Friendship: what's more strange is that that log file seems to contain everything twice 23:26:16 mRoman: Discuss similarities re Stlang and Glass kthx? 23:27:08 `pastelogs [1!]{5,} 23:27:31 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24049 23:28:14 oerjan: In response to your previous statement, that is a lie and you should feel bad. 23:28:17 >_> 23:28:17 <_< 23:28:19 -!- pikhq has joined. 23:28:52 -!- pikhq_ has quit (Ping timeout: 240 seconds). 23:34:21 ;_; 23:36:28 -!- Ngevd has quit (Quit: Goodbye). 23:36:51 wow that jhix guy.. he's 14 and he's writing interpreters in haskell and he knows lambda calculus and everything!!!!!! 23:37:17 what's so special about that 23:38:32 that depends on whether writing interpreters, coding in haskell, and knowing LC is special or if not really 23:40:23 the jury is out... unfortunately i selected a jury of lollypop ladies 23:41:10 itidus20: Special relative to the general populace. Not very special relative to the set of people for whom that sentence makes sense. 23:45:13 the trick [as trick identification is always important when describing things] is to extend every other activity and skill a person does and has by the development of new skills and activities 23:49:40 i think i wanted to say something like "extend every extra" 23:51:36 -!- pikhq_ has joined. 23:54:43 -!- pikhq has quit (Ping timeout: 248 seconds). 23:59:43 -!- hagb4rd has joined. 23:59:49 * Phantom_Hoover -> sleep 23:59:51 -!- Phantom_Hoover has quit (Quit: Leaving).