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