←2011-09-14 2011-09-15 2011-09-16→ ↑2011 ↑all
00:00:01 <HackEgo> ​#!/usr/bin/env python \ \ import os \ import sys \ import json \ import urllib2 \ \ proxy_handler = urllib2.ProxyHandler({'http': os.environ['http_proxy']}) \ opener = urllib2.build_opener(proxy_handler) \ urllib2.install_opener(opener) \ \ def lose(): \ print 'You get NOTHING! You LOSE! Good DAY sir!' \ sys.exit()
00:00:08 <itidus20> 99 repeats a single digit in base 10.
00:00:17 <elliott> `learn Monads are just monoids in the category of endofunctors.
00:00:19 <HackEgo> I knew that.
00:00:23 <elliott> `run ln -s wisdom/monad{,s}
00:00:24 <HackEgo> ln: creating symbolic link `wisdom/monads': File exists
00:00:25 <shachaf> @quote copumpkin lax
00:00:25 <lambdabot> copumpkin says: a monad is just a lax functor from a terminal bicategory, duh. fuck that monoid in category of endofunctors shit
00:00:28 <elliott> `run ln -s wisdom/monad{s,}
00:00:29 <HackEgo> No output.
00:00:33 <elliott> `learn monad
00:00:34 <monqy> `paste bin/wl
00:00:35 <elliott> erm
00:00:35 <HackEgo> ​/hackenv/bin/learn: line 4: wisdom/monad: No such file or directory \ I knew that.
00:00:35 <elliott> fuck
00:00:35 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3547
00:00:41 <elliott> `? monad
00:00:42 <HackEgo> monad? ¯\(°_o)/¯
00:00:44 <elliott> `? monads
00:00:45 <HackEgo> Monads are just monoids in the category of endofunctors.
00:00:51 <elliott> `run ln -s wisdom/monad{s,}
00:00:52 <HackEgo> ln: creating symbolic link `wisdom/monad': File exists
00:00:52 <elliott> oh
00:00:53 <elliott> duh
00:00:56 <monqy> what does wl do
00:00:57 <elliott> `run rm wisdom/monad
00:00:58 <HackEgo> No output.
00:01:01 <elliott> `run cd wisdom; ln -s monads monad
00:01:03 <HackEgo> No output.
00:01:05 <elliott> monqy: wikilates
00:01:05 <elliott> `? monad
00:01:07 <HackEgo> Monads are just monoids in the category of endofunctors.
00:01:13 <shachaf> `run mv wisdom foolishness
00:01:14 <HackEgo> No output.
00:01:20 <elliott> `run mv foolishness wisdom
00:01:21 <HackEgo> No output.
00:02:07 <elliott> `run echo $(($(cat /dev/null)+1))
00:02:09 <HackEgo> 1
00:02:12 <elliott> Excellent.
00:02:34 <shachaf> `run mv wisdom elliott
00:02:35 <HackEgo> No output.
00:02:39 <elliott> `run mv elliott wisdom
00:02:40 <HackEgo> No output.
00:02:47 <elliott> You're encouraging botnonsense mode, shachaf.
00:02:58 <shachaf> `? elliott/u
00:03:00 <HackEgo> elliott/u? ¯\(°_o)/¯
00:03:02 -!- augur has joined.
00:03:08 -!- MSleep has changed nick to MDude.
00:03:46 <shachaf> `> u
00:03:47 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: >: not found
00:03:48 <shachaf> `? u
00:03:50 <HackEgo> u monad?
00:03:56 <shachaf> `rm -rf wisdom
00:03:57 <HackEgo> rm: invalid option -- \ Try `rm --help' for more information.
00:04:04 <shachaf> `run rm -rf wisdom
00:04:05 <HackEgo> No output.
00:04:07 <shachaf> No more nonsense.
00:04:14 <elliott> `help
00:04:14 <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/
00:04:18 <shachaf> `run while true; do true; done
00:04:30 <elliott> shachaf: Do you really think you're going to break the bot?
00:04:34 <elliott> `revert 318
00:04:35 <HackEgo> Done.
00:04:45 <elliott> `revert 321
00:04:45 <HackEgo> Done.
00:04:49 <HackEgo> No output.
00:04:49 <shachaf> elliott: No.
00:04:55 <shachaf> I just think I'll encourage the nonsense to stop.
00:04:58 <shachaf> By being part of it.
00:05:01 <elliott> `run mkdir lib
00:05:02 <HackEgo> No output.
00:05:05 <tiffany> o.o
00:05:05 <elliott> The nonsense is over :P
00:05:46 <shachaf> Do you people ever talk about esoteric languages?
00:05:50 <elliott> Yep
00:05:58 <elliott> `fetch http://sprunge.us/MYMX
00:05:59 <HackEgo> 2011-09-15 00:05:59 URL:http://sprunge.us/MYMX [73] -> "MYMX" [1]
00:06:07 <shachaf> ?bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
00:06:07 <lambdabot> [
00:06:09 <elliott> `run mv MYMX bin/karma; chmod +x bin/karma
00:06:10 <HackEgo> No output.
00:06:14 <itidus20> `? esoteric
00:06:16 <HackEgo> Esoteric is an abbreviation for Esoteric Programming Languages as contrasted with Esoteric languages such as lojban and klingon and contrasted with the occult, however those topics may well be compatible with each other .. according to itidus20
00:06:23 <elliott> `fetch http://sprunge.us/RDIF
00:06:23 <HackEgo> 2011-09-15 00:06:23 URL:http://sprunge.us/RDIF [155] -> "RDIF" [1]
00:06:28 <itidus20> ok i just wanted to do it once
00:06:31 <elliott> `run mv RDIF lib/adjustkarma; chmod +x lib/adjustkarma
00:06:33 <HackEgo> mv: cannot move `RDIF' to `lib/adjustkarma': No such file or directory \ chmod: cannot access `lib/adjustkarma': No such file or directory
00:06:42 <elliott> `run mkdir lib; mv RDIF lib/adjustkarma; chmod +x lib/adjustkarma
00:06:44 <HackEgo> No output.
00:06:54 <elliott> `fetch http://sprunge.us/IVaB
00:06:55 <HackEgo> 2011-09-15 00:06:55 URL:http://sprunge.us/IVaB [35] -> "IVaB" [1]
00:06:58 <elliott> `fetch http://sprunge.us/RRje
00:06:59 <HackEgo> 2011-09-15 00:06:59 URL:http://sprunge.us/RRje [35] -> "RRje" [1]
00:07:07 <elliott> `run mv IVaB bin/'++'; mv RRje bin/'--'
00:07:08 <HackEgo> No output.
00:07:10 <itidus20> shachaf: as a newbie here i am not at liberty to make the comments i made
00:07:15 <elliott> `run chmod +x bin/'++'; chmod +x bin/'--'
00:07:17 <HackEgo> No output.
00:07:21 <elliott> `run mkdir karma; touch karma/.doorstop
00:07:23 <HackEgo> No output.
00:07:24 <itidus20> thats why i added "according to" clause :D
00:07:26 <elliott> `karma shachaf
00:07:27 <HackEgo> cat: karma/shachaf: No such file or directory \ shachaf has karma 0.
00:07:32 <elliott> Ugh
00:07:55 <elliott> `fetch http://sprunge.us/SUdf
00:07:56 <HackEgo> 2011-09-15 00:07:56 URL:http://sprunge.us/SUdf [85] -> "SUdf" [1]
00:08:01 <elliott> `run mv SUdf bin/karma; chmod +x bin/karma
00:08:02 <HackEgo> No output.
00:08:11 <elliott> `fetch http://sprunge.us/jcDD
00:08:12 <HackEgo> 2011-09-15 00:08:12 URL:http://sprunge.us/jcDD [167] -> "jcDD" [1]
00:08:17 <shachaf> `ls karma
00:08:19 <HackEgo> No output.
00:08:19 <elliott> `run mv jcDD lib/adjustkarma; chmod +x lib/adjustkarma
00:08:20 <HackEgo> No output.
00:08:23 <elliott> `karma shachaf
00:08:24 -!- Sgeo__ has joined.
00:08:24 <HackEgo> shachaf has 0 karma.
00:08:26 <elliott> `-- shachaf
00:08:27 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shachaf: not found
00:08:32 <elliott> Gregor?
00:08:41 <elliott> Think you have a problem with quoting -- there :P
00:08:44 <elliott> You want to put -- before all the arguments
00:08:47 <elliott> To denote end of options, etc.
00:08:50 <shachaf> itidus20: What?
00:09:00 <itidus20> nothing
00:09:40 <elliott> Gregor: BUUUUUUUUUUUUUUUUUUUGS
00:09:55 <elliott> `run mv bin/'++' bin/karma'+'; mv bin/'--' bin/karma'-'
00:09:56 <HackEgo> No output.
00:10:00 <elliott> `karma- shachaf
00:10:02 <itidus20> `log esperanto
00:10:02 <HackEgo> shachaf has -1 karma.
00:10:05 <HackEgo> 2007-07-13.txt:21:27:58: <oklokok> pikhq: esperanto isn't that good, judging by what i've read about it
00:10:25 <elliott> Ugh
00:10:27 <itidus20> `forget esoteric
00:10:27 <elliott> I forgot to case-normalise karma
00:10:28 <HackEgo> Forget what?
00:10:51 <itidus20> `forget esoteric
00:10:52 <HackEgo> rm: cannot remove `wisdom/esoteric': No such file or directory \ Forget what?
00:10:53 <itidus20> oops
00:10:55 <Gregor> elliott: ... huh?
00:10:56 <itidus20> `log esperanto
00:10:59 <HackEgo> 2007-05-31.txt:20:28:35: <Pikhq> Ne, ne, ne! Lernu Esperanton.
00:11:00 <Gregor> elliott: Oh
00:11:01 <elliott> Gregor: You handle `-- incorrectly
00:11:06 <shachaf> `karma+ shachaf
00:11:07 <itidus20> `log esperanto
00:11:08 <HackEgo> shachaf has 0 karma.
00:11:10 <HackEgo> 2006-08-26.txt:01:32:32: <pikhq> ihope: Ne. Esperanto.
00:11:13 -!- Sgeo_ has quit (Ping timeout: 260 seconds).
00:11:14 <elliott> `fetch http://sprunge.us/FPTI
00:11:15 <HackEgo> 2011-09-15 00:11:15 URL:http://sprunge.us/FPTI [117] -> "FPTI" [1]
00:11:17 <shachaf> `cat bin/karma+
00:11:17 <elliott> `fetch http://sprunge.us/RaVh
00:11:18 <HackEgo> 2011-09-15 00:11:18 URL:http://sprunge.us/RaVh [211] -> "RaVh" [1]
00:11:18 <HackEgo> ​#!/bin/sh \ lib/adjustkarma "$1" +1 \
00:11:23 <elliott> `run mv FPTI bin/karma; chmod +x bin/karma
00:11:24 <HackEgo> No output.
00:11:30 <itidus20> `log esperanto
00:11:31 <shachaf> `run lib/adjustkarma shachaf +1000
00:11:32 <elliott> `run mv RaVh lib/adjustkarma; chmod +x lib/adjustkarma
00:11:33 <HackEgo> shachaf has 1000 karma.
00:11:33 <HackEgo> No output.
00:11:34 <HackEgo> 2008-06-02.txt:15:08:16: <pikhq> I'd tend to say "Esperanto parolas vin", BTW.
00:11:39 <elliott> `rm karma/shachaf
00:11:40 <HackEgo> No output.
00:11:41 <shachaf> `cat RaVh
00:11:43 <HackEgo> cat: RaVh: No such file or directory
00:11:46 <shachaf> `ls
00:11:47 <HackEgo> bin \ canary \ karma \ lib \ paste \ quotes \ wisdom
00:11:49 <elliott> shachaf discovers that in an open-world bot it is possible to adjust any data.
00:11:52 <elliott> No shit, sherlock.
00:12:05 <shachaf> elliott: I wasn't particularly unaware of it beforehand.
00:12:17 <Gregor> elliott: Fixt.
00:12:22 <shachaf> This wasn't exactly a "zomg guys u have a bug!!!!"
00:12:26 <elliott> :P
00:12:27 <itidus20> `karma itidus20
00:12:29 <HackEgo> itidus20 has 0 karma.
00:12:29 <elliott> Gregor: Thx, not that I want it to be called `--
00:12:34 <elliott> Gregor: But speaking of message handlers
00:12:45 <shachaf> `echo 1337 > karma/elliott
00:12:46 <HackEgo> 1337 > karma/elliott
00:12:46 <elliott> Gregor: Can you cause any foo++ and foo-- in a message to run bin/karma+ foo or bin/karma- foo
00:12:48 <elliott> Thanks
00:12:52 <shachaf> `run echo 1337 > karma/elliott
00:12:53 <HackEgo> No output.
00:12:58 <elliott> `rm karma/elliott
00:13:00 <HackEgo> No output.
00:13:11 <Gregor> elliott: /just/ foo++, or anywhere in the message?
00:13:36 <elliott> Gregor: Anywhere in the message. Actually, you probably want to run it as "karma+ blah; karma+ blah; karma- blah" etc., otherwise it'll spam N lines for N karma adjustments.
00:13:49 <elliott> Gregor: You might want to special-case C++ and C--... but you might not, it's way more fun if you don't :P
00:13:55 <Gregor> Idonno if I like it being anywhere in the message ...
00:13:57 <elliott> Gregor: Actually just silence the output.
00:14:06 <shachaf> Gregor: That's how the cool bots do it.
00:14:08 <shachaf> @karma Gregor
00:14:09 <lambdabot> Gregor has a karma of 1
00:14:09 <elliott> It's true.
00:14:12 <elliott> preflex and lambdabot agree thoroughly.
00:14:12 <shachaf> Gregor++
00:14:14 <shachaf> @karma Gregor
00:14:14 <lambdabot> Gregor has a karma of 2
00:14:19 <Gregor> Oh, do it silently.
00:14:22 <Gregor> Silently works.
00:14:23 <elliott> <elliott> karma C
00:14:24 <elliott> <preflex> C: 174240
00:14:34 <shachaf> @karma c/c
00:14:35 <lambdabot> c/c has a karma of 650
00:14:39 <elliott> X-D
00:14:40 <shachaf> u mad kmc?
00:14:44 <Lymee> `run lib/adjustkarma elliott -100000
00:14:46 <HackEgo> elliott has -100000 karma.
00:14:49 <shachaf> Oops, he's in here.
00:14:51 <Lymee> `run lib/adjustkarma elliott -100000000000000000000000000000000000000000000000
00:14:53 <HackEgo> elliott has -6450984253743269536 karma.
00:14:53 <elliott> Lymee: You're not funny, you're just annoying.
00:14:55 <elliott> `rm karma/elliott
00:14:56 <Lymee> Okey.
00:14:56 <HackEgo> No output.
00:15:05 <monqy> `ls karma
00:15:06 <HackEgo> No output.
00:15:07 <shachaf> elliott: That's true of everyone in this channel.
00:15:14 <elliott> True.
00:16:12 <elliott> `run echo '#!/bin/sh' >bin/pastekarma; echo 'for thing in karma/*; do' >>bin/pastekarma; echo ' echo "$thing: $(cat "karma/$thing")"' >>bin/pastekarma; echo 'done | paste' >>bin/pastekarma
00:16:13 <HackEgo> No output.
00:16:15 <elliott> `run chmod +x bin/pastekarma
00:16:16 <HackEgo> No output.
00:16:17 <elliott> `pastekarma
00:16:18 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7337 \ cat: karma/karma/*: No such file or directory
00:16:22 <elliott> What.
00:16:26 <elliott> `url bin/pastekarma
00:16:27 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/pastekarma
00:16:32 <elliott> Oh, hmm.
00:16:38 <elliott> What's the right way to do it?
00:16:39 <elliott> I know that
00:16:42 <elliott> for thing in `echo karma/*`; do
00:16:46 <elliott> is meant to be a Useless Use of Whatever.
00:16:54 <elliott> oh hmm
00:17:00 <elliott> `run for thing; do echo $thing; done
00:17:01 <HackEgo> No output.
00:17:04 <elliott> huh
00:17:15 <elliott> Oh
00:17:17 <elliott> That's for argument processing
00:17:37 <Sgeo__> LOLOLOL at rather idiotic VirtualBox bug
00:17:43 <elliott> LOLOLOLOLOLOL UMAD
00:18:03 <Sgeo__> Try to import ovf file, change the name, and the extension of the disk image changes
00:18:04 <elliott> `fetch http://sprunge.us/FHcN
00:18:04 <HackEgo> 2011-09-15 00:18:04 URL:http://sprunge.us/FHcN [94] -> "FHcN" [1]
00:18:09 <elliott> `run mv FHcN bin/pastekarma; chmod +x bin/pastekarma
00:18:11 <HackEgo> No output.
00:18:12 <elliott> `pastekarma
00:18:14 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27268
00:18:28 <elliott> `karma- C++
00:18:30 <HackEgo> C++ has 0 karma.
00:18:33 <Lymee> `karma+ foo
00:18:35 <HackEgo> foo has 1 karma.
00:18:35 <elliott> Huh?
00:18:38 <Lymee> `karma+ bar
00:18:40 <HackEgo> bar has 1 karma.
00:18:41 <elliott> It should become minus one.
00:18:42 <Lymee> `pastekarma
00:18:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8129
00:18:46 <elliott> `karma- C++
00:18:48 <HackEgo> C++ has 0 karma.
00:18:51 <elliott> Oh
00:18:54 <elliott> Gregor: Did you implement it?
00:19:02 <elliott> Might wanna disable it on lines targeted at HackEgo X-D
00:19:13 <Gregor> elliott: Haven't even started :P
00:19:24 <elliott> `run rm -r karma; mkdir karma; touch karma/.doorstep
00:19:25 <elliott> Righty then
00:19:25 <HackEgo> No output.
00:19:49 <elliott> Gregor: When you do, it'd be nice if you routed ?foo, where the ? is at the start of the message, to bin/? foo
00:19:55 <elliott> But yeah, no big deal :P
00:20:01 <elliott> TIME TO SIT BACK AND RELAX
00:20:05 <elliott> `log relax
00:20:08 <HackEgo> 2008-10-29.txt:14:43:05: <ehird> Relax, sit back. It'll be alright.
00:20:15 <elliott> me too
00:20:31 <elliott> shachaf: Botmadness officially over.
00:20:31 <itidus20> `log horror
00:20:34 <HackEgo> 2007-04-29.txt:02:44:01: <bsmntbombdood> horror?
00:20:46 <itidus20> `log horror
00:20:49 <HackEgo> 2011-08-13.txt:12:50:59: <CakeProphet> I'm pretty sure CakeProphet: The Musical would be of the horror tradgedy genre
00:20:50 <oerjan> elliott: erm, ? is lambdabot prefix
00:21:04 <elliott> oerjan: All the better.
00:21:07 <Gregor> `url
00:21:09 <HackEgo> http://codu.org/projects/hackbot/fshg/
00:21:22 <elliott> Gregor: Whaddya doin' :P
00:21:24 <elliott> oerjan: btw
00:21:25 <elliott> `? welcome
00:21:27 <HackEgo> 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
00:21:28 <elliott> oerjan: the most useful???
00:21:28 <Gregor> elliott: EVIL
00:21:35 <elliott> Gregor: I am sceptical
00:21:41 <itidus20> `log evil
00:21:45 <HackEgo> 2010-10-30.txt:20:37:16: <Phantom_Hoover> Well, I can't see why you view it as evil.
00:21:57 -!- Jafet has joined.
00:22:03 -!- oerjan has quit (Quit: Good night).
00:22:15 <itidus20> `log evil
00:22:18 <HackEgo> 2010-11-17.txt:00:41:04: <elliott> Vorpal: (If I succumb to you and other evil people's wishes, I'll just put a huge gob of extra code in svmg so it can support start scripts that don't leave a process running around, but it will require donations.)
00:23:02 <elliott> `karma .doorstep
00:23:03 <HackEgo> ​.doorstep has karma.
00:23:05 <elliott> good old doorstep
00:23:08 <elliott> um
00:23:08 <elliott> wait
00:23:09 <elliott> doorstep
00:23:10 <elliott> its
00:23:12 <elliott> meant to be doorstop...
00:23:12 <shachaf> elliott: Doesn't look that way.
00:23:17 <elliott> `run mv karma/.doorstep karma/.doorstop
00:23:19 <HackEgo> No output.
00:23:22 <elliott> shachaf: This isn't botmadness, this is just botusage.
00:23:25 <elliott> `log happiness
00:23:28 <HackEgo> 2011-01-22.txt:11:51:53: <oklopol> well someone could be experiencing happiness in your backyard, so you tell them happiness is not allowed in there, and then he says "but the happinessness of my happiness is so overwhelming i can't control it!" and then you say "the happinessnessness your happiness' happinessness is feeling
00:24:29 <Lymee> `echo abcd > karma/test
00:24:31 <HackEgo> abcd > karma/test
00:24:32 <Lymee> `karma+ test
00:24:34 <HackEgo> test has 1 karma.
00:24:38 <Lymee> `run echo abcd > karma/test
00:24:39 <HackEgo> No output.
00:24:41 <Lymee> `karma+ test
00:24:43 <HackEgo> test has 1 karma.
00:24:50 <Lymee> `rm karma/tet
00:24:51 <Lymee> `rm karma/test
00:24:51 <HackEgo> rm: cannot remove `karma/tet': No such file or directory
00:24:52 <HackEgo> No output.
00:30:12 <elliott> `? shachaf
00:30:14 <HackEgo> shachaf mad
00:30:20 <elliott> Indeed, HackEgo. Indeed.
00:33:25 <elliott> Gregor: So what were you actually doing :P
00:34:47 <elliott> `log mad
00:34:50 <HackEgo> 2009-10-22.txt:07:54:39: <Oranjer> I must now reread your previous comments, madbrain, with that in mind
00:35:05 <elliott> `log \bmad\b
00:35:09 <HackEgo> 2007-11-21.txt:18:28:58: <Slereah-> "The barbarian messenger spoke: "You profane! You are all mad!" Replied Leonidas: "We are mad? WE ARE SPARTA.""
00:35:39 <itidus20> `log doing
00:35:42 <HackEgo> 2006-10-21.txt:01:11:47: <pikhq> jix: And why do you need an infinite loop that's doing no calculation?
00:35:48 <elliott> `log \bmad\b
00:35:52 <HackEgo> 2010-08-03.txt:03:49:52: <SgeoN1> My dad has been paranoid about mad cow disease
00:36:49 <itidus20> `log eiffel
00:36:52 <HackEgo> 2008-08-03.txt:19:13:23: <Deewiant> tusho: eiffel is from the USA
00:36:55 <Lymee> `log rabies
00:36:58 <HackEgo> 2010-10-24.txt:18:01:42: <elliott> Gregor: Also you have rabies.
00:37:16 <elliott> `log Lymee
00:37:19 <HackEgo> 2011-09-13.txt:03:16:33: <Lymee> That explains why every time I try to unbreak my system via sysrq nothing happens
00:37:26 <itidus20> `log \b^_^\b
00:37:30 <HackEgo> No output.
00:37:35 <elliott> `log \b\^_\^\b
00:37:39 <HackEgo> 2008-01-27.txt:21:49:49: -!- Asztal^_^_ has joined #esoteric.
00:37:44 <Lymee> `log \^___\^
00:37:47 <HackEgo> 2007-10-24.txt:02:41:29: <Fa1r> hum... sounds like useful one ^___^
00:37:56 <itidus20> `log \b\^_\^\b
00:37:59 <HackEgo> 2011-09-15.txt:00:37:39: <HackEgo> 2008-01-27.txt:21:49:49: -!- Asztal^_^_ has joined #esoteric.
00:38:06 <elliott> `log \b\^_\^\b
00:38:06 <itidus20> hahahah
00:38:06 <elliott> `log \b\^_\^\b
00:38:07 <elliott> `log \b\^_\^\b
00:38:07 <elliott> `log \b\^_\^\b
00:38:12 <HackEgo> 2009-05-29.txt:14:26:50: <Gracenotes> lereah_: O^_^O
00:38:12 <HackEgo> 2006-08-25.txt:23:57:49: <ihope> ^_^_^_^_^?
00:38:12 <HackEgo> 2008-01-27.txt:22:16:37: -!- Asztal^_^_ is now known as Asztal.
00:38:13 <HackEgo> 2011-09-15.txt:00:37:59: <HackEgo> 2011-09-15.txt:00:37:39: <HackEgo> 2008-01-27.txt:21:49:49: -!- Asztal^_^_ has joined #esoteric.
00:38:21 <Lymee> `log \^_\^
00:38:24 <HackEgo> 2006-01-16.txt:00:59:08: <GregorR-L> Figured, short lesson ^_^
00:38:28 <Lymee> `log \^\^
00:38:30 <elliott> `log \ \^_\^\
00:38:31 <HackEgo> egrep: Trailing backslash
00:38:32 <HackEgo> 2008-06-25.txt:11:46:02: <KingOfKarlsruhe> its a 10 minutes program ^^
00:38:33 <elliott> `log \ \^_\^
00:38:37 <HackEgo> 2010-02-01.txt:00:10:40: <bsmntbombdood> wouldn't like me use the quadratic formula ^_^
00:38:43 <Lymee> `log hugs
00:38:46 <HackEgo> 2009-04-30.txt:18:54:38: * oerjan hugs fungot
00:38:51 <Lymee> `log hugs
00:38:54 <HackEgo> 2007-03-29.txt:18:31:11: <oerjan> it's that in Hugs at least
00:39:19 <Gregor> ?elliott
00:39:19 <itidus20> `log hugs
00:39:19 <lambdabot> Unknown command, try @list
00:39:21 <HackEgo> elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things?
00:39:23 <HackEgo> 2010-10-28.txt:19:34:01: * Gregor hugs HackEgo
00:39:25 <Gregor> ...
00:39:35 <Gregor> elliott: That good idea seems to be a bad idea :P
00:39:36 <elliott> Gregor: Dude
00:39:38 <elliott> oerjan just said
00:39:42 <elliott> that ? was the lambdabot prefix :P
00:39:46 <Gregor> elliott: I've been implementin', not readin'
00:39:50 <elliott> Gregor: I propose "\w+\?"
00:39:58 <Gregor> >_O
00:39:59 <elliott> Then people asking "brainfuck?" might actually get a useful result, even :P
00:40:03 <elliott> COME ON YOU KNOW IT'S THE BEST.
00:40:09 <Gregor> So ... a postfix :P
00:40:11 <elliott> Yes
00:40:17 <itidus20> `log karma
00:40:18 <Gregor> That ... is wonderful.
00:40:18 <elliott> It's less spammy than fungot ;D
00:40:21 <HackEgo> 2009-01-13.txt:05:41:32: <bsmntbombdood> <3 job karma
00:40:26 <elliott> Gregor: ARE YOU BEING SARCASTIC
00:40:43 <elliott> poop++
00:40:45 <elliott> `karma poop
00:40:46 <HackEgo> poop has 0 karma.
00:40:54 <elliott> rip poop domed to krama
00:41:08 <itidus20> `log krama
00:41:11 <HackEgo> 2011-09-15.txt:00:41:08: <itidus20> `log krama
00:41:54 <Gregor> elliott: The only problem is that it would give output for all one-word questions, at least in the simplest mode :P
00:42:00 <elliott> Gregor: That's the POINT :P
00:42:01 <itidus20> `log gobshite
00:42:04 <elliott> brainfuck?
00:42:04 <HackEgo> 2011-09-15.txt:00:42:01: <itidus20> `log gobshite
00:42:08 <elliott> <HackEgo> Brainfuck HAS ENOUGH DERIVATIVES
00:42:13 <elliott> what?
00:42:13 <Gregor> elliott: Gobbledywtflol?
00:42:16 <elliott> <HackEgo> [something witty]
00:42:17 <Gregor> Or "what?"
00:42:23 <Lymee> `log cuddles
00:42:24 <elliott> Gregor: What?
00:42:25 <HackEgo> 2009-07-01.txt:00:53:25: * Zuu cuddles ehird ^^
00:42:28 <elliott> Gregor: You have ceased to make sense :P
00:42:51 <elliott> There is literally no way that answering to all one-word questions is the wrong decision... especially since come on they aren't THAT common.
00:42:55 <elliott> You can make an exception for "what" :P
00:42:58 <Gregor> lol
00:42:59 <monqy> ?karma poop
00:42:59 <lambdabot> poop has a karma of 1
00:43:01 <Gregor> Huh?
00:43:07 <elliott> ?
00:43:13 <Gregor> ¿Qué?
00:43:15 <elliott> ?
00:43:17 <elliott> Oh :P
00:43:21 <itidus20> `log poop
00:43:22 <Gregor> lol?
00:43:23 <elliott> Gregor: OK fine, huh and what get exceptions :P
00:43:24 <HackEgo> 2006-10-14.txt:22:29:02: <Razor-X> Of course, every other girl loves biology. I mean, who doesen't find pooping, mating, sleeping, and eating interesting?
00:43:28 <elliott> "lol?" is hardly common.
00:43:30 <Gregor> Why?
00:43:33 <elliott> OK
00:43:34 <elliott> huh
00:43:34 <elliott> what
00:43:35 <elliott> and
00:43:35 <elliott> what
00:43:36 <elliott> erm
00:43:46 <elliott> Gregor: huh, what, why, when, who, whom, where
00:43:46 <Gregor> Who?
00:43:48 <Gregor> Or is it whom?
00:43:49 <elliott> THERE
00:43:50 <Gregor> Aw damn :P
00:44:00 <elliott> THOSE EXCEPTIONS NONE OTHER
00:44:42 <monqy> my tendencies will trigger the bot a lot, but I do not care
00:45:04 <elliott> Gregor: And then just make it not say anything if the exit code is one
00:45:04 <itidus20> `log whom
00:45:08 <HackEgo> 2010-12-21.txt:20:05:08: <fizzie> "Noun, sense 1. An affectionate synonym for 'vagina'. See also gash. Noun, sense 2. Someone with whom you basically just get drunk and/or high and have sex, usually on a short term basis. Compare to "your girl" or "a ho", both are higher on the intimacy ladder." (Urban Dictionary.)
00:45:14 <elliott> Gregor: To avoid it going HUH WHAT to anything it doesn't know about. :P
00:45:23 <elliott> If you can't check exit code
00:45:24 <elliott> `? jfkljlsdfjksdf
00:45:26 <HackEgo> jfkljlsdfjksdf? ¯\(°_o)/¯
00:45:30 <elliott> just grep for the helpful i dunno lol.
00:46:47 <elliott> shachaf?
00:46:51 <elliott> (This is my implementation test.)
00:47:30 <itidus20> http://i.imgur.com/WNTDy.png
00:47:58 <elliott> Wasn't that on /r/,inecraft like a year ago :P
00:48:00 <elliott> s/,/m/
00:55:34 <itidus20> i found it in the log. fizzie was describing the word notch
00:56:10 <elliott> fizzie.
00:59:50 <shachaf> elliott: ?
00:59:51 * shachaf return
01:00:02 -!- sllide has joined.
01:00:28 <elliott> shachaf: Yes.
01:00:35 <elliott> shachaf?
01:00:39 <elliott> Gregor: I mad.
01:01:54 * shachaf isn't sure what's going on.
01:03:09 <elliott> shachaf: I mad.
01:03:25 <shachaf> u mad?
01:04:17 <Gregor> elliott: ... bro?
01:04:19 <Gregor> :P
01:04:22 <elliott> Gregor: Bro.
01:04:24 <elliott> shachaf?
01:04:26 <elliott> Gregor: Madness remains.
01:04:35 <Gregor> Yeah, I'mma not deal with that today :P
01:04:38 <Gregor> 'cuz lazy
01:04:48 <elliott> `log u mad
01:04:51 <HackEgo> 2010-12-06.txt:17:44:08: <ais523> some of those can't happen with the usage used in cat, e.g. EPIPE wouldn't happen as you use the default SIGPIPE handler, EINVAL wouldn't happen if you made sure you used valid arguments
01:04:56 <elliott> `log \bu mad
01:04:59 <HackEgo> 2010-12-27.txt:17:25:49: <Quadrescence> elliott: u mad
01:05:00 <elliott> Bu mad.
01:05:03 <elliott> Ugh.
01:05:07 <elliott> `log \bu mad
01:05:10 <HackEgo> 2011-09-15.txt:00:14:40: <shachaf> u mad kmc?
01:05:10 <elliott> This time give me a non-horrible person.
01:05:15 <elliott> No.
01:05:17 <elliott> I said non-horrible.
01:05:19 <elliott> `log \bu mad
01:05:22 <HackEgo> 2011-09-14.txt:23:31:27: <elliott> `learn shachaf heard u mad, so i put all the things in your things so u can mad while u mad?
01:05:26 <elliott> Ah.
01:05:28 <elliott> There we go.
01:05:37 <shachaf> Stop highlighting kmc's name.
01:05:41 <shachaf> He did nothing to deserve this.
01:05:42 <shachaf> Oops.
01:06:06 <elliott> Sorry kmc.
01:07:46 <itidus20> http://ko.wikipedia.org/wiki/HQ9%2B
01:08:56 <elliott> exceedingly notable
01:09:00 <elliott> david morgan-mar
01:09:01 <elliott> erm
01:09:03 <elliott> davia morgan-mar
01:10:14 <itidus20> http://ru.wikipedia.org/wiki/Feckfeck
01:10:36 <elliott> `log arse
01:10:39 <HackEgo> 2010-03-07.txt:11:42:25: <AnMaster> olsner, the use case is async threaded funge. And specifically it's funge space. Assuming we have (part of it) implemented as a static non-sparse array, and the rest of it as a tree structure or hash table, then it should be possible I think to only require locking for the the non-static part
01:11:09 <itidus20> feckfeck is notable in russia
01:12:27 <itidus20> and in discussion "Why do I write this article, if it did not understand? Wikipedia - the free encyclopedia, not a handbook for kulturschiny. Either be normal people, and make a story that she was for all, or be assholes, and mess up or delete the article."
01:14:05 <elliott> `log
01:14:06 <HackEgo> 2004-06-24.txt:06:22:05: -!- deltab has quit (sterling.freenode.net irc.freenode.net).
01:14:11 <elliott> `log
01:14:13 <HackEgo> 2007-02-04.txt:14:05:02: -!- ihope_ has joined #esoteric.
01:14:22 <elliott> `log
01:14:23 <HackEgo> 2007-07-15.txt:02:32:03: <Figs> or linguine!
01:14:57 <elliott> `log
01:14:59 <HackEgo> 2010-11-21.txt:20:34:24: <elliott> Phantom_Hoover: so?
01:15:16 <elliott> `log
01:15:17 <HackEgo> 2009-04-12.txt:00:33:15: <psygnisfive> WHAT IS LOVE
01:15:27 <elliott> tru
01:16:21 <monqy> `quote
01:16:22 <HackEgo> 612) <Gregor> ANOTHER THUNDERSTORM, INDIANA? <Gregor> That's three today. <elliott> Gregor: It FEELS like it should be a really simple fix :P
01:18:51 <elliott> `log
01:18:52 <HackEgo> 2010-08-06.txt:17:45:55: <alise> cpressey: In that it doesn't do deep sequencing?
01:20:08 <elliott> `log Obey Newton's laws or face elongation
01:20:11 <HackEgo> 2007-08-12.txt:00:05:15: <sp3tt> Obey Newton's laws or face elongation!
01:22:19 <Gregor> Ooh yeah, sequence me deep.
01:32:29 <elliott> `log
01:32:31 <HackEgo> 2009-09-09.txt:23:08:43: <Rugxulo> ah, out of memory
01:32:33 <elliott> `log
01:32:35 <HackEgo> 2007-03-08.txt:19:32:27: -!- ShadowHntr has joined #esoteric.
01:32:37 -!- sllide has quit (Read error: Connection reset by peer).
01:32:43 <elliott> ?Gregor
01:32:43 <lambdabot> Unknown command, try @list
01:32:49 <elliott> Gregor: You removed it D:
01:34:10 <Gregor> 'course I did :P
01:34:28 <elliott> `rm bin/.bashrc
01:34:30 <HackEgo> No output.
01:34:41 <elliott> `wl en poop
01:34:44 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/wl", line 52, in <module> \ q = query(continue_id) \ File "/hackenv/bin/wl", line 44, in query \ response = urllib2.urlopen(url).read() \ File "/opt/python27/lib/python2.7/urllib2.py", line 126, in urlopen \ return _opener.open(url, data,
01:34:49 <Gregor> lol
01:34:51 <elliott> Gregor what did you do
01:35:07 <elliott> `wl io Herono
01:35:10 <HackEgo> Traceback (most recent call last): \ File "/hackenv/bin/wl", line 52, in <module> \ q = query(continue_id) \ File "/hackenv/bin/wl", line 44, in query \ response = urllib2.urlopen(url).read() \ File "/opt/python27/lib/python2.7/urllib2.py", line 126, in urlopen \ return _opener.open(url, data,
01:35:17 <elliott> Gregor.....fix it....
01:35:26 <Gregor> elliott: Waaaaaaaaah
01:35:52 <elliott> it...worked....before...
01:35:53 <elliott> you...
01:35:54 <elliott> BROKE
01:35:54 <elliott> IT
01:35:57 <elliott> .:((((((((((((((99
01:39:09 -!- zzo38 has joined.
01:39:28 <elliott> Tart is designed to be easy to learn, but its also designed to be “expert-friendly”. Like a musical instrument, Tart enables a true master to create “virtuoso performances” of excellence and creative power.
01:39:33 <elliott> ahahahahahah
01:40:06 <Gregor> elliott: ?
01:40:32 <elliott> Gregor: ?
01:40:44 <Gregor> elliott: ‽
01:40:51 <elliott> Gregor: ‽
01:41:10 <monqy> whats tart is it a progragmeing langauge
01:41:14 <monqy> is it baAaad
01:41:42 <Gregor> monqy put that much better than I could have.
01:41:45 <elliott> im comment only on that paragraph
01:41:49 <elliott> but http://code.google.com/p/tart/
01:42:19 <monqy> it was a good paragraph
01:42:21 <elliott> zzo38: Can you write a one-line biography of yourself?
01:43:17 <Gregor> zzo38: And furthermore can you assure that that one-line biography begins with "zzo38 ", then prefix "`learn " to it and write that to the channel? :P
01:43:54 <zzo38> elliot, Gregor: I don't know. I don't think so, though.
01:44:12 <elliott> If you don't write one, you'll get an even worse one than you'd write, written by me.
01:44:18 <elliott> And that would be awful.
01:45:10 <Gregor> `learn augur took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
01:45:12 <HackEgo> I knew that.
01:45:56 <elliott> `forget augur
01:45:58 <HackEgo> Forget what?
01:46:02 <elliott> Gregor you are so irresponsible.
01:46:11 <Gregor> :(
01:47:02 <elliott> So
01:47:03 <elliott> Irresponsible
01:47:08 <Gregor> :'(
01:47:28 <augur> Gregor: :|
01:47:34 <augur> i took no cakes
01:48:17 <Gregor> LIES
01:48:56 <elliott> `learn augur took no cakes.
01:48:57 <HackEgo> I knew that.
01:49:06 <augur> lol
01:49:13 <augur> hows `learn work
01:49:16 <augur> what does `learn do
01:49:23 <monqy> `? augur
01:49:24 <HackEgo> augur took no cakes.
01:49:38 <monqy> `? elliott
01:49:39 <HackEgo> elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things?
01:49:44 * Sgeo__ is bored and wants to use VirtualBox for something fun
01:49:46 <monqy> oh right that entry
01:49:48 <monqy> `? sgeo
01:49:50 <HackEgo> sgeo? ¯\(°_o)/¯
01:49:57 <monqy> `? itidus20
01:49:58 <HackEgo> itidus20? ¯\(°_o)/¯
01:50:12 <Sgeo__> `learn add Sgeo hi
01:50:14 <HackEgo> I knew that.
01:50:17 <Sgeo__> ..?
01:50:21 <monqy> `? Sgeo
01:50:22 <HackEgo> Sgeo? ¯\(°_o)/¯
01:50:23 <Lymee> `? HackEgo
01:50:24 <Sgeo__> `? add
01:50:25 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
01:50:26 <HackEgo> add Sgeo hi
01:50:45 <monqy> lets just leave that there
01:51:42 <elliott> Sgeo__: What on earth made you think that was the syntax
01:51:52 <elliott> `karma- Sgeo
01:51:54 <HackEgo> Sgeo has 0 karma.
01:51:57 <elliott> GAH
01:51:58 <elliott> `karma- Sgeo
01:52:00 <HackEgo> Sgeo has 0 karma.
01:52:01 <Sgeo__> Having vague recollections of Rodney
01:52:02 <elliott> I must fix that :P
01:52:12 <elliott> `cat bin/karma-
01:52:13 <HackEgo> ​#!/bin/sh \ lib/adjustkarma "$1" -1 \
01:52:22 <elliott> `cat lib/adjustkarma
01:52:24 <HackEgo> ​#!/bin/sh \ thing=$(echo "$1" | tr A-Z a-z) \ newkarma=$(($(cat "karma/$thing" 2>/dev/null) $2)) \ if [ $newkarma -eq 0 ]; then \ rm "karma/$thing" 2>/dev/null \ else \ echo $newkarma >"karma/$thing" \ fi \ karma "$1" \
01:52:28 <elliott> Hey Gregor, fix it
01:52:40 <itidus20> `learn will demonstrate to sgeo the syntax.
01:52:42 <HackEgo> I knew that.
01:52:42 <elliott> `run echo $(($(cat /dev/null) -1))
01:52:43 <HackEgo> ​-1
01:52:45 <itidus20> `? will
01:52:46 <HackEgo> will demonstrate to sgeo the syntax.
01:52:49 <elliott> `forget will
01:52:51 <HackEgo> Forget what?
01:53:06 <elliott> Oh hmm
01:53:06 <Sgeo__> itidus20, it wasn't exactly hard to figure out after `? add
01:53:16 <elliott> `run [ -1 -eq 0 ]; echo $?
01:53:18 <HackEgo> 1
01:53:23 <elliott> Hmm
01:53:27 <elliott> `cat karma/Sgeo
01:53:28 <HackEgo> cat: karma/Sgeo: No such file or directory
01:53:29 <elliott> `cat karma/sgeo
01:53:30 <HackEgo> ​-2
01:53:33 <itidus20> `learn easy is figuring out the syntax of the learn command.
01:53:34 <elliott> `karma+ sgeo
01:53:34 <HackEgo> I knew that.
01:53:35 <elliott> shrug
01:53:36 <HackEgo> sgeo has -1 karma.
01:53:43 <elliott> `forget easy
01:53:45 <HackEgo> Forget what?
01:53:53 <elliott> `ls karma
01:53:54 -!- augur has quit (Remote host closed the connection).
01:53:54 <HackEgo> sgeo
01:53:59 <elliott> `ls wisdom
01:54:01 <HackEgo> add \ augur \ c \ elliott \ everyone \ finland \ friendship \ gregor \ hackego \ haskell \ intercal \ monad \ monads \ monqy \ oerjan \ qdb \ qdbformat \ shachaf \ u \ vorpal \ welcome \ wiki
01:54:06 <monqy> `run echo what > karma/monqy
01:54:07 <HackEgo> No output.
01:54:09 <monqy> `karma monqy
01:54:10 <HackEgo> monqy has what karma.
01:54:15 <elliott> `rm karma/monqy
01:54:16 <HackEgo> No output.
01:54:44 <itidus20> `? everyone
01:54:45 <HackEgo> Everyone in here is mad.
01:54:48 <Sgeo__> `run echo stolen elliotts karma >> karma/sgeo
01:54:49 <HackEgo> No output.
01:54:55 <Sgeo__> `karma sgeo
01:54:56 <HackEgo> sgeo has -1 \ stolen elliotts karma karma.
01:55:10 <Sgeo__> derp
01:55:15 <itidus20> `forget everyone
01:55:16 <HackEgo> Forget what?
01:55:37 <shachaf> `cat wisom/shachaf
01:55:38 <HackEgo> cat: wisom/shachaf: No such file or directory
01:55:43 <Gregor> Wow
01:55:44 <Sgeo__> wisom
01:55:53 <elliott> `rm karma/sgeo
01:55:55 <HackEgo> No output.
01:56:00 <elliott> `karma- sgeo
01:56:01 <Sgeo__> Woo! 0 karma again!
01:56:01 <elliott> Gregor: Wow what
01:56:01 <HackEgo> sgeo has -1 karma.
01:56:02 <Sgeo__> Damgit
01:56:12 <elliott> `learn Everyone in here is mad.
01:56:13 <HackEgo> I knew that.
01:57:02 <itidus20> `learn ievan is basically http://www.youtube.com/watch?v=4om1rQKPijI
01:57:04 <HackEgo> I knew that.
01:57:20 <elliott> Can we mark all entries itidus20 adds somehow?
01:57:29 <itidus20> sorry
01:57:37 <itidus20> i can just not add entries
01:57:42 <itidus20> i can do that
01:57:54 <itidus20> i have the self control
01:58:09 <Sgeo__> itidus20, thank you for that video
01:58:20 <elliott> Sgeo__: what
01:58:23 <elliott> itidus20: no they are good entries
01:58:26 <elliott> they just need marking or something
01:58:52 <itidus20> they're not meant to be good really
01:58:52 * Sgeo__ wonders where that old video went
01:59:50 <itidus20> `log itidus `learn
01:59:53 <HackEgo> 2011-09-15.txt:01:59:50: <itidus20> `log itidus `learn
02:00:07 <itidus20> ok.. closer..
02:00:20 <itidus20> `log <itidus20> `learn
02:00:23 <HackEgo> 2011-09-15.txt:01:52:40: <itidus20> `learn will demonstrate to sgeo the syntax.
02:00:29 <itidus20> `log <itidus20> `learn
02:00:32 <HackEgo> 2011-09-15.txt:01:57:02: <itidus20> `learn ievan is basically http://www.youtube.com/watch?v=4om1rQKPijI
02:00:34 <itidus20> `log <itidus20> `learn
02:00:37 <HackEgo> 2011-09-15.txt:02:00:29: <itidus20> `log <itidus20> `learn
02:00:39 <itidus20> `log <itidus20> `learn
02:00:40 -!- Jafet has quit (Quit: Leaving.).
02:00:42 <HackEgo> 2011-09-15.txt:02:00:39: <itidus20> `log <itidus20> `learn
02:00:44 <itidus20> `log <itidus20> `learn
02:00:48 <HackEgo> 2011-09-14.txt:23:01:30: <itidus20> `learn Esoteric is an abbreviation for Esoteric Programming Languages as contrasted with Esoteric languages such as lojban and klingon and contrasted with the occult, however those topics may well be compatible with each other .. according to itidus20
02:00:59 <itidus20> `log <itidus20> `learn
02:01:02 <HackEgo> 2011-09-15.txt:02:00:44: <itidus20> `log <itidus20> `learn
02:01:05 <itidus20> `log <itidus20> `learn
02:01:08 <HackEgo> 2011-09-15.txt:02:00:39: <itidus20> `log <itidus20> `learn
02:01:24 <itidus20> `pastelogs <itidus20> `learn
02:01:28 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8173
02:01:54 <itidus20> but 'everyone' was someone elses words
02:02:56 <itidus20> i forgot esoteric because of:
02:03:02 <itidus20> `pastelogs esperanto
02:03:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19927
02:05:37 <elliott> `log friend
02:05:40 <HackEgo> 2011-09-13.txt:20:28:48: <Taneb> One of my friends lives there
02:06:22 -!- Jafet has joined.
02:07:06 <itidus20> i don't know why i even made that post
02:08:35 <elliott> `run mv canary pigeon
02:08:36 <HackEgo> No output.
02:13:26 <itidus20> i wonder if foreign music is more enjoyable _because_ of not knowing what the words mean
02:15:32 <Gregor> itidus20: I can tell you that English opera is about the worst thing.
02:15:38 <Gregor> itidus20: But also that Italians like Italian opera.
02:15:38 <elliott> s/English //
02:15:46 <Gregor> Sooooooooo I think that English is just terrible.
02:15:53 <itidus20> yeah
02:16:07 <itidus20> and the language is terrible too
02:17:18 <itidus20> it's this new english that's the problem
02:17:24 <oklopol> have you heard french? now there's a language made of poop
02:17:39 <oklopol> american english is beautiful
02:18:12 <itidus20> hmm
02:19:03 <oklopol> italian is nice enough
02:19:40 <itidus20> theres definitely politics in languages
02:21:22 -!- augur has joined.
02:21:34 <itidus20> like a history told through where parts of the language have been borrowed or stolen
02:31:56 <elliott> oklopol: one line biography of you plz
02:32:41 <pikhq> <oklopol> \n
02:32:48 <Gregor> pikhq: YOU TOO
02:33:07 <elliott> no pikhq is uninteresting only oklopol needs biographising
02:33:19 <Gregor> `learn pikhq took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
02:33:21 <HackEgo> I knew that.
02:33:31 <pikhq> :D
02:33:41 <elliott> `forget pikhq
02:33:42 <HackEgo> Forget what?
02:33:44 * pikhq takes forty cakes.
02:33:46 <elliott> `learn Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
02:33:48 <HackEgo> I knew that.
02:33:56 * Sgeo__ ponders doing the Maybe monad in .NET via reflection
02:33:57 <Sgeo__> >.>
02:33:57 <Gregor> I find this 100% acceptable.
02:34:02 <pikhq> I'm taking 40 cakes. That's as many as four tens. And that's terrible.
02:34:06 <Sgeo__> Or, well, not sure if it would actually be nice and monadic
02:35:30 <Gregor> pikhq: Sorry, he erased that TRUISM from history.
02:35:52 <elliott> oklopol
02:35:52 <elliott> biographise
02:36:44 <oklopol> as if i'd write my own biography
02:37:27 <oklopol> now that would just be douchy. i'm gonna pay someone to do it for me.
02:37:31 <Gregor> `learn oklopol okokoko okloklokoko kokoko oko kook
02:37:32 <HackEgo> I knew that.
02:37:57 <oklopol> Gregor: how much do you charge?
02:38:11 <Gregor> oklopol: Sexual favors are my only accepted form of payment.
02:38:27 <oklopol> Gregor: i'll get back to you later
02:38:28 <elliott> `learn oklopol is one of the two citizens of Finland. He doesn't drive the bus.
02:38:30 <HackEgo> I knew that.
02:39:03 <Sgeo__> http://gbracha.blogspot.com/2011/01/maybe-monads-might-not-matter.html I'm starting to wonder if I should lose a bit of faith in Bracha
02:39:41 <aspect> he doesn't even mention burritos!
02:39:43 <Sgeo__> Or I should just read his replies to the criticism instead
02:40:34 <elliott> "The most important practical contribution of monads in programming is, I believe, the fact that they provide a mechanism to interface pure functional programming to the impure dysfunctional world."
02:40:35 <elliott> ahahaha
02:41:31 <Sgeo__> When criticised for that in the comments, he re-emphasizes practical
02:42:02 <elliott> if you think that makes that statement make any more sense
02:42:08 <elliott> then you're as ignorant as him
02:43:12 <elliott> wow, lot of high-profile folks in the comments telling him he's wrong there
02:43:30 <elliott> sigfpe, tony morris, someone who i assume is lennart augustsson
02:43:48 <pikhq> Funny, I always felt that monadic IO was almost tangential to the niceness of the abstraction.
02:43:56 <elliott> kmett... it's like #haskell descended at once :D
02:44:12 <elliott> oh i suspect chris smith is cdsmith
02:44:27 <oklopol> i had a dream that i showered. now i have to shower again.
02:44:30 <oklopol> fuck
02:44:51 <elliott> Carl said...
02:44:51 <elliott> Some researchers put forth the thesis that monads could help with concurrency. At this point, it looks like their thesis has failed.
02:44:51 <elliott> The Actor model (e.g. see ActorScript(TM) extension of C sharp (TM), Java(TM), and Objective C(TM)) is a better foundation for concurrency than monads.
02:44:52 <elliott> (TM)
02:44:55 <elliott> (TM) (TM) (TM)
02:45:31 <pikhq> What the what?
02:45:47 <Gregor> ™™™™™™™
02:45:48 <elliott> (TM)
02:45:49 <elliott> (TM) (TM) (TM)
02:45:49 <pikhq> I'm pretty sure actors are monadic.
02:46:01 <oklopol> but that is irrelevant, they say
02:46:19 <Gregor> Actors™ are Mo®onic.
02:46:30 <Sgeo__> This is the first I'm learning of an actor-monad connection
02:46:32 <Sgeo__> I don't get it
02:46:51 <aspect> it starts like this: Actors like burritos ...
02:47:06 <elliott> Actors honestly have to be the stupidest idea in computing yet.
02:47:08 <elliott> Stupider than objects.
02:47:24 <elliott> It takes something special to reinvent functions and claim they solve concurrency.
02:47:40 <aspect> no, that's Agents
02:47:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:48:17 <elliott> aspect: Well, OK, CS.
02:49:18 <aspect> ok I'll give you that
02:49:35 <aspect> "the stupidest idea in CS" is a pretty high accolade though
02:50:04 <aspect> it's not as though the field has experienced a shortage of stupid ideas for the past 30 years
02:51:41 -!- DH____ has quit (Read error: Connection reset by peer).
02:52:18 <elliott> aspect: Well, OK, stupidest idea that more than a hundred people have taken really seriously. :p
02:52:35 <elliott> Can I not even make bold statements on IRC without being challenged any more?!?!?!
02:52:48 <Gregor> See: STM
02:53:21 <elliott> Gregor: What's that meant to mean :P
02:53:37 <elliott> STM is a reinvention of functions?
02:54:00 <Gregor> No
02:54:10 <Gregor> STM is also way up there for worst possible ideas :P
02:54:21 <elliott> Whyso
02:54:36 -!- Jafet has quit (Quit: Leaving.).
02:54:42 <elliott> Obviously it doesn't work very well in languages with mutability and the like, but in functional languages it works pretty great for shared-state concurrency
02:55:18 <elliott> Certainly it seems to work fine for most people in Haskell
02:57:46 <elliott> Gregor: I see :P
02:58:13 * Gregor reappears.
02:58:35 <itidus20> ok i see what i need to research next]
02:58:49 <Gregor> So, it only works in places that get around the fact that it's hilariously, untenably slow by not using it much :P
02:59:16 <itidus20> Historically, some mathematicians can be regarded as having foreseen and come close to a modern formulation of the concept of function. Among them is Oresme (13231382) . . . In his theory, some general ideas about independent and dependent variable quantities seem to be present.
02:59:20 <elliott> Gregor: What makes you say it slow; I know the worst-case is pretty bad, but to my knowledge GHC's implementation performs pretty great in practice
02:59:33 <elliott> And people use algorithms with terrible worst-cases all day with no problems
02:59:47 <elliott> s/it/it's/
03:00:21 <itidus20> As a mathematical term, "function" was coined by Gottfried Leibniz, .. ok so thats the etymology
03:02:35 <itidus20> i can see this is not something wikipedia will answer for me
03:04:31 <elliott> Gregor: Hokay :P
03:06:01 <itidus20> "Descartes (1596-1650) clearly stated that an equation in two variables, geometrically represented by a curve, indicates a dependence between variable quantities." good for him, the showoff
03:07:33 <elliott> Gregor's IRC client uses STM, that's why his typing is so slow.
03:07:57 <Sgeo__> How do I misread a book that badly? Failing to notice that a character was in her bedroom, and thinking she fell asleep on the bus
03:09:58 <Gregor> Why do these C students think that if they just email us the code for their homework, we'll fix it for them and send it back >_<
03:09:59 <Gregor> WHYYYY
03:10:25 <elliott> Gregor: Should I stop waiting for a reply? :p
03:10:30 <Gregor> Now then, elliott: The "best case" for STM is not accessing any shared state, in which case it's effectively free, but the overhead of accessing any state at all is huge (it has to log everything)
03:11:02 <elliott> Sure, it has to log it, that's kind of the whole point. That's very different from a demonstration that STM is slow in practice.
03:11:15 <Gregor> Oy vey.
03:11:33 <Gregor> OK, let me go drag out a giant friggin' benchmark suite and compare it to hell knows what :P
03:11:36 <elliott> Plenty of things "sound" slow but work just fine in practice.
03:12:09 <elliott> But seriously, if STM was fundamentally unworkably slow, I think all the people working on and using GHC STM over the years would have noticed :P
03:12:40 <Gregor> So, show me the Haskell benchmarks where they implemented something (non-stupidly) with locks and with STM, and STM was faster *shrugs*
03:12:53 <Gregor> (Obviously you could serialize everything and go "Look! STM is faster!")
03:13:06 <elliott> Dunno of any; if I were the snarky type, I would say that everyone was too busy using them to bother :P
03:13:13 <elliott> Gregor: But no, I never claimed STM was faster than locking.
03:13:19 <itidus20> so it seems to me a nand gate could be implemented by defining 1 as a closed valve, and 0 as an open valve
03:13:44 <itidus20> err wait no that doesn't
03:13:52 <itidus20> d'oh
03:14:06 <Gregor> elliott: In every benchmark in languages that you have invalidated for having too much shared state anyway (a valid concern), the overhead has been lolhuge.
03:14:08 <itidus20> actually yeah
03:14:28 <elliott> Gregor: I don't consider locking concurrency to even be an option, it's just not a viable way to program. Certainly a locking program will generally be faster in general, but it's about balancing "humans can actually use this shit" and "it performs well".
03:14:48 <elliott> Gregor: And yeah, that's the exact reason I discounted languages with traditional state models :P
03:15:53 <elliott> I haven't used STM myself so certainly I'm not gonna claim to be any kind of expert.
03:16:08 <Gregor> But that being said, STM for Haskell isn't fundamentally different from STM for anything else except insofar as Haskell has so little state that you'd barely touch the STM. Which is to say, you may very well be getting 500% slowdown but never know it because that 500% is in the 2% of code that actually touches state. That is, until you run it on 100 cores.
03:16:09 <elliott> But certainly lots of things on Hackage use STM and I haven't seen any whining about it.
03:16:33 <elliott> Gregor: "Haskell has so little state" -- well this is bullshit.
03:16:39 <Gregor> *shared state
03:16:55 <elliott> Yes, but the WHOLE POINT of STM is to manage shared state :P
03:17:02 <elliott> Like, if you have unnecessary shared state in another language... that's just a bug.
03:17:11 <elliott> The amount of state you need to share is independent of language.
03:17:18 <Gregor> In other languages, you have state that it doesn't know is not shared.
03:17:24 <Gregor> So it has to log it, 'cuz wtf does it know.
03:17:35 -!- copumpkin has joined.
03:17:40 <Gregor> (As a slight generalization :P )
03:18:00 <elliott> Gregor: So what you're saying is, "if your program is entirely made out of modifications to a huge gob of shared state, STM will be slower than locks".
03:18:19 <elliott> But seriously, how many programs are like that?
03:18:24 <elliott> And how many of them actually benefit from concurrency?
03:18:28 <Gregor> Why are you so fucking argh
03:18:30 <elliott> The kind of locking you'd have to do anyway would be hellish.
03:18:38 <Gregor> No, what I'm saying is, if STM considers your heap to be shared state, which it usually does, then STM will have to log all sorts of ridiculous shit.
03:19:05 <Gregor> But since it DOESN'T in Haskell, due to the nature of state being so defined there anyway, it can get away with much more cleverness.
03:19:06 <elliott> Yeah, well, that's just a criticism of implementing STM idiotically.
03:19:17 <elliott> What I was trying to say is --
03:19:24 <Gregor> HOWEVER even that cleverness won't help you when you get to enough cores that that sharing is all bunched together again.
03:19:27 <elliott> "STM is slow but maybe it doesn't show up because you don't have much shared state."
03:19:46 <elliott> is an entirely worthless comment, since it doesn't matter how slow it is to run a bajillion STM operations if you don't NEED a bajillion STM operations.
03:19:49 <Gregor> Yes, that's what I'm saying, but with the giant friggin' caveat that how much it shows up scales with the number of cores.
03:20:20 <elliott> Gregor: I kind of have my doubts that locks will scale up to a hundred cores either...
03:20:44 <elliott> Once your computation is made trivial by the amount of iron you have, by definition you're spending all your time doing busywork bookeeping.
03:20:50 <elliott> s/bookeeping/bookkeeping/
03:21:57 -!- MDude has changed nick to MSleep.
03:22:28 <Gregor> STM works under the assumption that conflicts are rare. When conflicts occur, sadness (very bad performance and serialized execution) happens. As you scale up your cores, your chance of conflicts scales up, but the amount of time to fix a conflict does not scale down.
03:22:54 <Gregor> Eventually you're at 100% conflicts, and sequentializing everything, because you have too many cores.
03:22:57 <elliott> Gregor: Locks work under the assumption that conflicts are rare. When conflicts occur, sadness happens. Blah blah blah.
03:23:03 <elliott> I mean, sure, I agree.
03:23:03 <Gregor> Wrong.
03:23:18 <Gregor> The sadness of lock contention at least scales considerably better.
03:23:51 <Gregor> Classically, when STM conflicts occur, it retries. But this causes livelock in approximately 100% of all systems ever. So instead, when conflicts occur, it explicitly sequentializes them.
03:23:51 <elliott> This is basically just the "worst case O(n), real-world n=not many" thing again :P
03:24:09 <elliott> I think GHC actually retries.
03:24:12 <elliott> Don't quote me on that.
03:24:27 <Gregor> Oh, so even better, as cores scales up, chances of livelock approaches 100% :P
03:24:49 <elliott> Pretty sure someone will have thought about that at some point in time :P
03:25:01 <Gregor> Yes, they have. That's why they sequentialize when things fail.
03:25:09 <elliott> I mean someone=GHC developers.
03:25:27 <Gregor> OK, then it sequentializes when things fail :P. Maybe not on first failure, but eventually.
03:25:46 <elliott> Well, I'm definitely not gonna claim STM scales to a hundred cores.
03:25:50 <elliott> But I don't think locks will either.
03:26:12 <elliott> I don't know what will. But I'm also gonna claim that most concurrent programs are not run on a hundred cores today, or within four years :P
03:26:20 <itidus20> "<itidus20> so it seems to me a nand gate could be implemented by defining 1 as a closed valve, and 0 as an open valve" i drew a picture http://oi51.tinypic.com/315zlp2.jpg
03:26:23 <Gregor> Welllllll, my belief is that our current status w.r.t. concurrency is "we're so fucked"
03:26:46 <Gregor> However, the speedup curve of locks should at least be monotonic.
03:26:59 <Gregor> Just ... plateauy.
03:27:01 <elliott> Gregor: Yeah, but humans can't program lock-based systems, so it's kind of irrelevant.
03:27:18 <elliott> I mean, we can sometimes make it work now, but when you actually have a hundred cores going, our chances of getting it right are approximately 0.
03:27:25 <Gregor> That's also true :)
03:27:44 <Gregor> OK, I'll revise my former statement as such:
03:27:47 <Gregor> See: concurrency
03:27:52 <Gregor> Hahaha *stabs self*
03:28:03 <elliott> I concur :P
03:29:29 <elliott> Here's a wild, unjustified prediction: RAM is getting really cheap. Soon, our computers will have so much RAM that the best concurrency strategy involves treating the computer like a mini-internet, and just having each thread keep its own copy of the state, with explicit "database server" threads handling merging of state whenever an outside entity wants to query the current relevant state.
03:29:29 <itidus20> what wirth failed to understand in his comment the other day is that things operate on multiple levels
03:29:38 <itidus20> order can operate above a level of chaos
03:30:02 <elliott> That obviously doesn't work when you have a bunch of threads reading the writes of other threads as they happen, but I don't think that's a very common situation. Also this is a wild, unjustified prediction, so I don't have to care about that.
03:30:09 <itidus20> software operates on hardware
03:30:17 <Gregor> elliott: Sooooooooooooo ... ACTORS?
03:30:20 <itidus20> stateless operates above state
03:30:34 <elliott> Gregor: Har har har :P
03:30:51 <elliott> Gregor: It's... not quite the same thing. I mean, sure, you could implement that with actors.
03:31:04 <elliott> But the point is that on some level shared state fundamentally doesn't scale.
03:31:30 <elliott> But the internet does seems to scale, and it's based on tons of systems with their own private state that synchronise it explicitly when necessary.
03:31:33 <Gregor> A level described by Amdahl :P
03:31:45 <Gregor> The Internet is not a computation.
03:31:50 <itidus20> i am of course thinking of the tcp stack
03:31:54 <Gregor> (I'm gonna regret saying that)
03:31:58 <elliott> Gregor: It's a substrate on which plenty of computations take place.
03:32:02 <elliott> So are operating systems.
03:32:04 <itidus20> Gregor: maybe it is?
03:32:11 <itidus20> :))
03:32:27 <elliott> Gregor: The basic problem with all this is that you end up with literally thousands of copies of the same basic state with only small parts changed :P
03:32:32 <itidus20> says aloud "no how can it be"
03:32:39 <elliott> And you can't make it copy-on-write, because that reintroduces ALL THE SAME LOCKING PROBLEMS that you just got rid of.
03:32:47 <elliott> (OR DOES IT???? Yeah it probably does.)
03:33:04 <Gregor> Naw, it has considerably less locking problems, but is also nasty.
03:33:08 <elliott> But hey, if you have a hundred gigs of ram, maybe it all works out.
03:33:13 <elliott> God I hope it does.
03:33:25 <elliott> Gregor: OK, here's an idea.
03:33:30 <elliott> How about we all switch to smartphones with one core.
03:33:35 <elliott> And forget threads ever existed.
03:33:39 <elliott> Let's just... pretend.
03:33:43 <Gregor> SOUNDS GOOD
03:33:47 <itidus20> what about positioning stateless programming in the computer architecture?
03:33:53 <elliott> THEN IT'S SORTED
03:33:56 <elliott> itidus20: Reduceron
03:34:01 <elliott> Reduceron reduceron reduceron reduceron
03:34:35 <itidus20> i think by the time you get to 4th generation apps like sql (?) the path is lost
03:34:43 <itidus20> but maybe it fits in somewhere
03:35:25 <itidus20> hehdiuewhudiehwui
03:35:35 <elliott> Gregor: Wow I hate you, I had gone whole days without thinking about concurrency.
03:35:38 <itidus20> what do i know.. that topic is too hard
03:36:17 <itidus20> elliott: what about minecraft being played by the elderly
03:36:21 <oklopol> so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid.
03:36:25 <elliott> itidus20: wat
03:36:27 <Gregor> elliott: TEEHEE
03:36:43 <itidus20> its an attempt to distract you
03:36:58 <oklopol> i tried too
03:37:07 <elliott> ?learn oklopol "so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid."
03:37:07 <lambdabot> http://www.haskell.org/learning.html
03:37:08 <oklopol> this was all too complicated for me
03:37:09 <itidus20> horny 60 year olds having cybersex in minecraft
03:37:12 <elliott> `learn oklopol "so i hear these blogs are getting popular, people like writing about their lives and shit. on this thing called the internet which is like a neural network only really stupid."
03:37:14 <HackEgo> I knew that.
03:37:19 <elliott> `? itidus20
03:37:21 <HackEgo> itidus20? ¯\(°_o)/¯
03:37:27 <elliott> `learn itidus20 is horny 60 year olds having cybersex in minecraft
03:37:29 <HackEgo> I knew that.
03:37:32 <elliott> I hope you like your new biographies
03:37:37 <itidus20> i do
03:37:48 <oklopol> i am
03:37:54 <elliott> Gregor: Say... isn't HackEgo's concurrency mechanism kinda like STM? :D
03:37:58 <itidus20> i uhh
03:38:00 <elliott> (Note: KIND OF.)
03:38:16 <itidus20> elliott: "<itidus20> so it seems to me a nand gate could be implemented by defining 1 as a closed valve, and 0 as an open valve" i drew a picture http://oi51.tinypic.com/315zlp2.jpg
03:38:28 <elliott> It logs the changes all the threads make, then cancels the vast majority of them :P
03:38:30 <itidus20> distraction #2
03:38:38 <elliott> itidus20: It is beautiful.
03:38:55 <Gregor> elliott: Nope, it's more like COW.
03:39:02 <itidus20> i can't quite see it as a complete system though
03:39:24 <elliott> Gregor: Why didn't you want to make HackEgo locking-based, again?
03:39:28 <itidus20> like i wouldn't know how to take those pieces and make a computer
03:39:45 <Gregor> elliott: Because it was never a question of concurrency, it was a question of atomicity.
03:40:03 <elliott> Gregor: Okay, now pretend I'm three years old.
03:40:24 <Gregor> elliott: I hear Barney! Barney's on the tellie! Hooray!
03:40:35 <elliott> Gregor: WHY WON'T YOU MAKE HACKEGO SEQUENTIAL
03:40:53 <Gregor> So that people can't DoS it just by
03:40:55 <Gregor> `sleep 29
03:41:11 <elliott> Gregor: `kill :P
03:41:25 <Gregor> Ew
03:41:25 <HackEgo> No output.
03:41:35 <elliott> Gregor: You mean like EgoBot used to have? :P
03:42:02 <elliott> You could hook in to open() and have it block if there's a conflict.
03:42:04 <elliott> And still run them concurrently.
03:42:09 <elliott> That's probably a pain with UMLBox though :P
03:42:16 <Gregor> That's a pain any which way.
03:42:34 <elliott> Not really with LD_PRELOAD.
03:42:53 <Gregor> I mean implementation :P
03:42:59 <Sgeo__> GIVE ME AN ESOTERIC OPERATING SYSTEM TO RUN IN VIRTUALBOX
03:43:06 <elliott> Gregor: Weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeell
03:43:06 <Gregor> Sgeo__: ... ... ReactOS?
03:43:09 <itidus20> what is an esoteric operating system?
03:43:10 <elliott> It's not that hard, you just need some shared state :P
03:43:16 <elliott> It would be nice though.
03:43:23 <elliott> If I implement it will you add it? :P
03:44:35 <Gregor> If it's nonterrible.
03:44:42 <Gregor> But I am the sole judge of nonterrible.
03:44:45 <elliott> Sgeo__: I have vague plans for one but I am so lazy.
03:44:48 <elliott> Sgeo__: @ :P
03:44:54 <elliott> (Not the one I have plans for.)
03:45:09 <elliott> Gregor: How do you even implement the current system? Copying the whole state before running anything?
03:45:37 <Sgeo__> elliott, if it was implemented in such a way that I could download it, I would
03:45:37 <Gregor> hg clone
03:45:40 <Sgeo__> In a heartbeat
03:45:43 <itidus20> Gregor: directnet is a good idea.
03:45:49 <elliott> Sgeo__: What, @?
03:45:51 <Gregor> itidus20: It /was/ a good idea! :P
03:45:54 <elliott> Gregor: So, yes, it copies the whole state first :P
03:45:54 <Sgeo__> Yes
03:46:06 <Gregor> elliott: Yeah, I was just being specific in the means by which it does this.
03:46:31 <Gregor> elliott: I believe, by the way, that UML has a COW hostfs option, which I've considered adding support for to UMLBox.
03:46:33 <itidus20> i was in another chatroom the other day arguing that internets made entirely of wifi routers should be built
03:46:50 <elliott> Gregor: It really is a pain to do this and still keep the hg history stuff, isn't it >_>
03:46:58 <Gregor> itidus20: Add the word "rogue" and it'll become a good plan.
03:47:05 <itidus20> considered the farmer problem though
03:47:05 <Gregor> elliott: Why yeeeeeeeeeeeees!
03:47:12 <elliott> Gregor: OH WAIT
03:47:14 <itidus20> a farmer's wifi router is too remote
03:47:21 <elliott> Gregor: It's actually quite easy, because hg and git use the same terrible history-blind model.
03:47:41 <itidus20> and uh.. someone mentioned mesh-nets which i hadn't heard of before
03:47:58 <Sgeo__> As is, say, a British router from a router in, say, anywhere on the East Coast of the US
03:48:12 <Sgeo__> Which means I would no longer be a participant in this channel...
03:48:14 <Sgeo__> Oh crud
03:48:21 <elliott> Gregor: On open(): Consult the global table. If there's already this filename open in another thread, block until it's closed. Then, insert this thread into the table as having the file open. Then, /copy the file/ from that thread's FS to this one, and go on to the usual open() path.
03:48:33 <itidus20> but the problem that you can see a list of people with your wifi antenna but not communicate with them trivially is a tough one.. is it bad for privacy or good for society
03:48:34 <elliott> Sgeo__: What?
03:48:48 <Sgeo__> You lot would prefer that
03:48:54 <elliott> I have no idea what you are talking about.
03:48:55 <itidus20> im raambling aye aye
03:49:18 <Sgeo__> elliott, if I couldn't get to this channel
03:49:22 <elliott> Gregor: The only problem there is handling other FS operations like moving and unlink and the like :P
03:49:26 <elliott> But that handles open() perfectly, I think.
03:49:42 <elliott> And doesn't wait for the entire other command to finish or anything.
03:49:49 <Sgeo__> Due to separate Eurasian and American internets
03:50:21 <Gregor> elliott: If you don't wait for the other command to finish, you've gotten rid of atomicity. Which, frankly, is fine for this, but there are much simpler solutions that get rid of atomicity.
03:50:40 <elliott> The concurrency primitive you need is just... oh, it's just a box with a value in it; all you need is f(box,nevwal): block until this box is empty, insert newval into the box, and return the old value in the box.
03:50:56 <elliott> Gregor: What's a simpler solution that gets rid of atomicity?
03:51:02 <elliott> And really, it would be fine to block until the other revision changed too.
03:51:10 <elliott> It would only cause thirty-second waits in really pathological cases.
03:51:57 <Gregor> elliott: Copy-on-open.
03:52:15 <Gregor> (And don't copy while a commit is occurring)
03:52:16 * Sgeo__ opens ReactOS
03:52:18 <itidus20> elliott: as they asked ron gilbert when he was making maniac mansion... does he really need to use the word shithead? they sent him off to think about it
03:52:26 <itidus20> he came back and settled on the word tunahead
03:52:38 <Sgeo__> Text on buttons is very broken
03:52:41 * Sgeo__ boggles
03:52:47 <elliott> Gregor: That still leads to e.g. two addquotes at the same time causing an hg conflict.
03:53:03 <itidus20> now what i am thinking is you need to consider will you really enjoy hackbot more if the proposed changes are implemented?
03:53:15 <elliott> itidus20: Yes.
03:53:18 <Gregor> itidus20: elliott will :P
03:53:24 <elliott> It's really annoying having the conflicts.
03:53:33 <Gregor> elliott: Oh you're right. Both are nonatomic, but yours is atomic over individual files *shrugs*
03:53:52 <itidus20> oops hackego
03:53:55 <elliott> Gregor: But yeah OK, here's a simpler, atomic system:
03:54:22 <Lymee> `run echo *hugs elliott*
03:54:24 <HackEgo> ​*hugs elliott*
03:54:37 <elliott> Gregor: On open(): Consult the global table. If there's already this filename open in another thread, block until that thread completes, then restart this command starting from that new revision.
03:54:40 <elliott> Gregor: ...oh my god, it's STM.
03:54:46 <elliott> That was completely unintentional :P
03:54:59 <elliott> And s/already this filename open/this filename was open ever in another thread/
03:55:04 <elliott> But w/e, I understand it in my head :P
03:55:11 <Gregor> Thou shalt not STM :P
03:55:32 <elliott> Gregor: This is actually a good system though >_>
03:55:45 <elliott> Gregor: It's basically "do things sequentially whenever there's a conflict, otherwise be fully concurrent".
03:55:50 <elliott> And that actually works for HackEgo :P
03:57:07 * Sgeo__ cannot imagine anything like Active Worlds running well on ReactO
03:57:09 <Sgeo__> ReactOS
03:57:14 <elliott> Sgeo__: it's just wine: the os
03:57:26 <oklopol> how about multicore concurrency where only one processor works at a time and the others just like stretch and shit so they'll be faster when their turn comes
03:57:27 <elliott> Gregor: So how non-terrible is that eh eh eh :P
03:57:31 <elliott> oklopol: good
03:58:02 <itidus20> so my system would be good for implementing N-ary NAND gates
03:58:23 <pikhq> Sgeo__: It is quite literally WINE with a kernel.
03:58:37 <oklopol> itidus20: cool, i think that's actually an open problem
03:58:49 <itidus20> oklopol: http://oi51.tinypic.com/315zlp2.jpg
03:58:50 <Gregor> pikhq, Sgeo__: Only, with worse software support.
03:58:54 <itidus20> this is what i am talking about
03:58:57 <Sgeo__> Well, the version of WINE that the latest ReactOS is based off of has trouble displaying text
03:59:00 <elliott> Gregor: Eh eh eh eh eh eh eh eh :P
03:59:10 <elliott> I honestly will implement this given approval, I'm sick and tired of conflicts :p
03:59:32 <Sgeo__> "It is now safe to turn off your computer"
03:59:35 <oklopol> are you making a liquid computer?
03:59:49 <itidus20> oklopol: it is just an idea... i am wondering how far it could go
03:59:58 <elliott> Hmm, there's /one/ bad feature of it: If you send off two delquotes, one request will go through properly, and the other one will delete a quote off by one from the one you were trying to delete.
04:00:06 <elliott> The merge case actually handles that correctly, usually.
04:00:08 * Sgeo__ vaguely ponders whether VirtualBox Tools (I don't remember the real name) will help any
04:00:09 <elliott> But ehhhhhh nobody does that
04:00:13 <Gregor> elliott: You haven't actually seen HackEgo's code, have you :)
04:00:20 <elliott> Gregor: Try me :P
04:00:22 <pikhq> Gregor: Well, I think they had to do a manual reimplementation of e.g. user32.dll.
04:00:25 <Gregor> elliott: It's bash.
04:00:38 <elliott> Gregor: I thought it was C.
04:00:45 <Gregor> Only the IRC interface is.
04:00:47 <Gregor> It's multibot.
04:00:53 <elliott> `info
04:00:54 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir.Node: Top.This is the top of the INFO tree \ This (the Directory node) gives a menu of major topics. \. Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "mCoreutils<Return>" visits Coreutils topic, etc. \ Or click mouse button 2 on a
04:00:57 <elliott> ...
04:00:58 <Gregor> lol
04:01:02 <elliott> `help
04:01:03 <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/
04:01:12 <Gregor> Remove "fs" from there for hackbot itself.
04:01:21 <elliott> http://codu.org/projects/hackbot/hg/index.cgi/file/6a36bc81753b/multibot_cmds/PRIVMSG/tr_3F.cmd
04:01:24 <elliott> What the fuck is this shit.
04:01:25 <itidus20> oklopol: well i remembered "any gate can be built from nand" so i went to wikipedia, looked at the truth table, and envisioned the picture
04:01:39 <itidus20> but i forget why i did it to begin with
04:01:47 <Gregor> elliott: multibot is an IRC bot that just translates inputs into "run this command kthx"
04:01:59 <elliott> Yeah but what the fuck is this shit :P
04:02:03 <elliott> ?commands
04:02:03 <lambdabot> Unknown command, try @list
04:02:08 <elliott> HmmmmmmmmmmMMMMMMmmmmmmmmmmmmmmmm
04:02:13 <elliott> http://codu.org/projects/hackbot/hg/index.cgi/file/6a36bc81753b/multibot_cmds/PRIVMSG/tr_60.cmd
04:02:15 <elliott> Wow this is awful.
04:02:20 <Gregor> elliott: When it receives a line that starts with `, it tries PRIVMSG/tr_60.cmd
04:02:25 <Gregor> elliott: Because ` = hex 60
04:02:32 <elliott> Gregor: I hate that system and I hate you.
04:02:39 <Gregor> (Failing that, it also tries PRIVMSG.cmd)
04:02:53 <Gregor> elliott: It's very versatile :)
04:02:59 <elliott> Also: awful.
04:03:12 <elliott> BTW did you ever install gmp.
04:03:16 <Gregor> You misspelled awesome.
04:03:42 <Gregor> Wasn't I only asked to so that you could go on a ridiculous foolhearted quest to build GHC?
04:04:15 <elliott> Gregor: No, you installed ghc.
04:04:16 <elliott> `ghc
04:04:21 <HackEgo> ghc: no input files \ Usage: For basic information, try the `--help' option.
04:04:23 <elliott> Uh
04:04:24 <elliott> `ghci
04:04:27 <HackEgo> GHCi, version 7.2.1: http://www.haskell.org/ghc/ :? for help \ Loading package ghc-prim ... linking ... done. \ Loading package integer-gmp ... <command line>: can't load .so/.DLL for: libgmp.so (libgmp.so: cannot open shared object file: No such file or directory)
04:04:28 <elliott> Gregor: But the point is, ghc needs gmp :P
04:04:30 <elliott> And you ain't got gmp.
04:04:36 <Gregor> Oh
04:04:41 <elliott> So it's kind of useless :P
04:04:42 <Gregor> I don't recall that request :P
04:04:59 <elliott> 134 # Now commit the changes (make multiple attempts in case things fail)
04:05:00 <elliott> wjw
04:05:30 <pikhq> Gregor: So, I could actually add another escape sequence to HackEgo?
04:05:46 <Gregor> pikhq: multibot_cmds is not part of the environment it exposes to users :P
04:05:48 <elliott> Gregor: I like the part where lib/interp is terrible
04:05:52 <pikhq> elliott: So, the name is appropriate?
04:06:00 <elliott> So, ?
04:06:12 <elliott> Gregor: Sooooooooo will LD_PRELOAD work with umlbox X-D
04:06:13 <pikhq> Gregor: Okay, "Trivially if I had commit access", then.
04:06:23 <elliott> Also do you even use slox here.
04:06:42 <Gregor> elliott: It ought to.
04:06:47 <Gregor> elliott: Nope :)
04:06:54 <pikhq> Gregor: It'd be totally awesome if it were that hackable.
04:07:08 <pikhq> If also probably a bad idea to stick on an IRC channel long-term.
04:07:08 <elliott> Gregor: It ought to? But I thought UML was like... a totally separate system. :x
04:07:31 <Gregor> elliott: It ought to as in it ought to work ...
04:07:49 <Gregor> pikhq: Yes, trivially if you had commit access. I've considered making it that hackable, but decided that the ability to make it barf something to the channel after /every line/ is bad.
04:07:51 <elliott> Gregor: I'M JUST ASKING WHYYYYYY
04:08:04 <Gregor> elliott: ... UML is just a program ...
04:08:16 <elliott> Gregor: OK, let me rephrase.
04:08:23 <pikhq> Gregor: He wants it working inside the sandbox.
04:08:26 <elliott> Gregor: Can I use LD_PRELOAD to override the libc /the program running UNDER UMLBox uses/?
04:08:28 <pikhq> Not *on* the sandbox.
04:08:36 <Gregor> Oh. Sure, of course, why not?
04:08:53 <elliott> Because why would an entirely separate Linux instance use the host libc?
04:09:11 <Gregor> Because /lib is just a hostfs mount of the host's /lib.
04:09:23 <elliott> That's not the same thing as an environment variable :P
04:09:44 <Gregor> I don't see the relevance ... if you set LD_PRELOAD in the child, it will preload.
04:09:58 <pikhq> Is there a way to?
04:10:03 <elliott> OK, I conclude that I can add proper atomic mergeless transactions to HackEgo, but I'm too tired to do it today.
04:10:15 <elliott> pikhq: A way to what?
04:10:32 <Gregor> pikhq: The very file he was complaining about (lib/interp) adds environment variables to the guest :P
04:10:42 <pikhq> Gregor: Okay, then.
04:10:55 <Gregor> Also, excluding comments and blank lines, that file is 6 lines long :P
04:11:04 -!- Zuu has quit (Read error: Connection reset by peer).
04:12:46 <elliott> OK, here's the basic plan:
04:13:35 <elliott> LD_PRELOAD a library which, for every filesystem operation, checks to see if the "dirty files" table (file/whatever) contains the filename mentioned; if so, write out a note "need to restart this command" and kill the process. Otherwise, add it to the dirty files list, and continue as normal.
04:14:16 <elliott> In the bot: After all threads terminate, run all the commands that need to be restarted with the latest hg tree each time, sequentially.
04:14:22 <elliott> Then clear the dirty files list.
04:14:25 <elliott> Tadaaaaaaaaa
04:14:28 <itidus20> elliott, oklopol: here is the improved MK2 model.. actually becoming potentially useful: http://oi56.tinypic.com/kbq1di.jpg
04:14:41 <elliott> Note: Image is NSFW
04:15:16 <itidus20> it still doesn't quite make sense to me but it seems like a good idea
04:15:19 <oklopol> i don't get how that's a nand
04:15:38 <itidus20> my earlier post before you were here was worded thus
04:15:59 <itidus20> "<itidus20> so it seems to me a nand gate could be implemented by defining 1 as a closed valve, and 0 as an open valve"
04:16:01 -!- Zuu has joined.
04:16:42 <itidus20> maybe thats not how it works though.. it might be better to base this on NOR
04:16:53 <itidus20> i have certainly not thought this through and very unlikely that i ever will
04:18:22 <itidus20> yeah.. actually its best forgotten
04:20:11 <itidus20> one element missing from the diagram though is that 2 valves would flow through some kind of funnel onto one pipe-shaped thing
04:20:35 <itidus20> ugh.. time for mk3
04:25:45 <elliott> `log now consider that do-stuff might use a gc'd language
04:25:46 <HackEgo> ​/hackenv/bin/log: line 1: hr.1: command not found \ /hackenv/bin/log: command substitution: line 6: syntax error near unexpected token `.^.P./KD.J{.' \ /hackenv/bin/log: command substitution: line 6: `.v e.f0+HGm{g1;xz7j(.^.P./KD.J{.(r..N(&؈0y}|y.u#T..
04:25:55 <elliott> Gregor: ...
04:26:17 <Gregor> That's pretty good.
04:26:26 <elliott> .................
04:26:56 <elliott> ..........???????????????????????
04:27:03 <elliott> Gregor: ????????????/
04:27:12 <Gregor> I honestly have no answer for you at all :P
04:27:15 <Gregor> `log that was wtfy
04:27:17 <HackEgo> ​/hackenv/bin/log: line 1: hr.1: command not found \ /hackenv/bin/log: command substitution: line 6: syntax error near unexpected token `.^.P./KD.J{.' \ /hackenv/bin/log: command substitution: line 6: `.v e.f0+HGm{g1;xz7j(.^.P./KD.J{.(r..N(&؈0y}|y.u#T..
04:27:20 <Gregor> Hmm
04:27:25 <elliott> `cat bin/log
04:27:27 <HackEgo> ​hr.1 \ "R ;WER{n{̍p.s@#.g.\ws.#e-:..m._'m.b.&.A.Y'3U..Dh7R1..`.v e.f0+HGm{g
04:27:29 <Gregor> Hm
04:27:32 <elliott> wow
04:27:37 <elliott> `help
04:27:37 <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/
04:27:46 <elliott> Sigh
04:27:47 <elliott> Lymee: Fuck off
04:27:54 <elliott> `revert 405
04:27:55 <HackEgo> Done.
04:27:56 <elliott> `log test
04:28:07 <Gregor> `shred --help
04:28:09 <HackEgo> Usage: shred [OPTIONS] FILE [...] \ Overwrite the specified FILE(s) repeatedly, in order to make it harder \ for even very expensive hardware probing to recover the data. \ \ Mandatory arguments to long options are mandatory for short options too. \ -f, --force change permissions to allow writing if necessary \ -n,
04:28:11 <aspect> itidus20: http://www.blikstein.com/paulo/projects/project_water.html
04:28:15 <HackEgo> 2010-05-29.txt:17:04:22: <Mathnerd314> !c printf("test")
04:28:18 <Gregor> ... huh.
04:28:21 <elliott> Gregor: Seriously, please remove Lymee's bot access, she has not once done a single thing to the bots that wasn't abusive
04:28:35 <elliott> And that was in /msg so god knows how long it could have been before someone noticed.
04:28:39 <elliott> It's really irritating.
04:28:51 <Gregor> Fair 'nuff
04:29:15 -!- Zuu has quit (Ping timeout: 244 seconds).
04:30:21 <Gregor> `echo hi
04:30:21 <HackEgo> Mmmmm .... no.
04:30:30 <Gregor> `echo hi
04:30:32 <HackEgo> hi
04:30:32 <Gregor> Done
04:31:05 <elliott> X-D
04:31:07 <itidus20> aspect: before i click i just had to finish off this third diagram: http://oi55.tinypic.com/1231e2b.jpg
04:31:14 <elliott> Gregor: Bug report: Ellipses have three, not four dots
04:31:57 <aspect> I still have no idea how that's a nand
04:32:05 <Gregor> elliott: Fixt.
04:32:44 <itidus20> the theory being that the weight of the water could open the valves
04:33:02 <Gregor> elliott: I'm disappointed that you're not running any commands :P
04:33:03 <elliott> Gregor: Sweeeet
04:33:09 <elliott> `log I know what this will do.
04:33:09 <HackEgo> Mmmm ......................................... no.
04:33:19 <elliott> I guessed correctly.
04:33:22 <Gregor> :P
04:33:29 <elliott> `rm bin/EVERYTHING I WROTE
04:33:31 <HackEgo> rm: cannot remove `bin/EVERYTHING I WROTE': No such file or directory
04:33:40 <elliott> Gregor: Is it just random? X-D
04:33:53 <Gregor> No, I removed you from the blocklist :P
04:34:30 <elliott> :')
04:35:25 <itidus20> aspect: thanks for the link
04:36:03 * Sgeo__ ponders using TinyCore as a desktop
04:36:15 <pikhq> `echo hi
04:36:16 <HackEgo> hi
04:36:22 <elliott> Sgeo__: But how will you run Active Worlds?
04:37:00 <pikhq> elliott: Obviously he'll get a circa '96 Windows machine and a dialup line.
04:44:40 <itidus20> ok final version after spamming the room with it... behold my NAND gate http://oi55.tinypic.com/23sg2ki.jpg
04:46:04 <elliott> !bf_txtgen oklopol
04:46:08 <EgoBot> ​57 ++++++++++[>+++++++++++>+>><<<<-]>+.----.+.+++.+.-.---.>. [319]
04:46:16 <elliott> oerjan got it waaaaaaaaaaaaaaaaaaay lower
04:46:17 <elliott> 10:03:57: <oerjan> ^bf --[>-<-------]>+.----.+.+++.+.-.---.
04:47:19 <itidus20> what a useless thing i have depicted..
04:50:25 <pikhq> Looks like oerjan just massaged the loop a little bit.
04:50:50 <monqy> itidus20: how is that nand
04:51:15 <itidus20> monqy: well.. a stream of water represents a '0'
04:51:34 <monqy> oh
04:51:44 <itidus20> the stream of water hits the cup and opens the valve..
04:51:50 <pikhq> Or just did stringout "oklopol" in PEBBLE.
04:51:53 <itidus20> and thus creates another stream
04:51:58 <aspect> where does the water go?
04:52:19 <itidus20> i think there are certain aspects i am overlooking in this design
04:52:31 <itidus20> the water just leaks onto the floor
04:52:32 <pikhq> source ^stdcons.bfm;@ a;@ b;stringout "oklopol" : b a ;# gets that output.
04:52:34 <monqy> it still doesn't look quite like nand to me
04:52:43 <monqy> maybe im confused but
04:52:52 <aspect> it looks more like and to me
04:53:00 <itidus20> maybe
04:53:07 <itidus20> >.<
04:53:22 <itidus20> but well ..
04:54:03 <aspect> or perhaps nor
04:54:04 <itidus20> ignoring 0 and 1 it can be described this way
04:54:25 <monqy> can it?
04:54:26 <aspect> oh cool a logic gate that can be described without reference to 0 or 1
04:54:30 <monqy> what does ignoring 0 and 1 mean
04:54:35 * aspect gets some popcorn
04:54:45 <itidus20> if A recieves water, the gate outputs water. if B recieves water, the gate outputs water. if A and B recieve water, the gate outputs water. if neither A nor B recieve water then the gate does not output water.
04:55:00 <itidus20> ^that is the idea
04:55:07 <monqy> that's the same as 0 and 1
04:55:09 <monqy> with different names
04:55:29 <aspect> you need tiny perforations in the bottom of the tobacco-pipe-shaped-things
04:55:35 <aspect> so the gates don't latch
04:55:36 <Sgeo__> Would there be anything too wrong with using TinyCore as a preferred distro?
04:55:54 <Sgeo__> Why did I hate Puppy Linux, I forget
04:56:30 <elliott> It would be immoral.
04:56:37 <elliott> And you'd be contributing to global poverty.
04:56:39 <monqy> itidus20: anyway, with your device: 0, 0 -> 0; 0, 1 -> 0; 1, 0 -> 0; 1, 1 -> 1. looks like and to me
04:56:39 <elliott> But apart from that, no.
04:56:53 <itidus20> ok
04:57:22 <itidus20> well.. its food for thought at least
04:57:27 <monqy> itidus20: given 21:51:50 < itidus20> monqy: well.. a stream of water represents a '0'
04:57:49 <itidus20> monqy: i gave up on knowing what represents what :D
04:57:59 <Patashu> I thought a stream of water was a 1
04:58:06 <itidus20> i guess it has to be
04:58:13 <monqy> if a stream is 1 it's or
04:58:31 <monqy> still not anything really powerful
04:58:37 <itidus20> darn
04:58:56 <itidus20> it has to be 1 cos if there was a device at the end where the water turned on a switch
04:59:09 <monqy> you'll also have to deal with gravity porblems if you want to make interesting things
04:59:14 <Patashu> you could always have a device somewhere that emits water while not being given water
04:59:30 <itidus20> like it might have one of those cups complete a circuit for a lightbulb
05:00:09 <elliott> Patashu: i think africa would like one of those
05:00:18 <Patashu> XD
05:00:55 <itidus20> well it is very absurd thing i have drawn.
05:01:07 <Lymee> Dwarven physics is more practical.
05:03:20 <itidus20> Lymee: *nods*
05:05:02 <elliott> hi hi hi hi hi ih hiihi hi ih ihih
05:14:27 <Gregor> Man, when did I become such a GC fanatic.
05:15:09 <Gregor> More to the point: Why are there languages that aren't GC'd, and also aren't at the same level as C?
05:15:22 <Gregor> Ohwait, there aren't :P
05:16:41 <itidus20> back
05:17:21 <itidus20> Patashu: one benefit is i can use salt water (except machine will degrade one way or another
05:18:00 <pikhq> Gregor: Python isn't GC'd
05:19:27 <elliott> Gregor: http://codu.org/ugly.html this is beautiful
05:20:07 <elliott> Also, lol@anyone who thinks manual memory management is a good idea in any circumstance ever
05:20:14 <elliott> (Except maybe writing a memory manager :P)
05:20:16 <elliott> (Or embedded systems)
05:20:27 <pikhq> elliott: It's a wonderful idea in certain contexts.
05:20:52 <pikhq> Those contexts are either comically old or implementation details.
05:22:45 <Gregor> pikhq: Actually it is now, it has a GC as a backup for its wow-whotf-thinks-refcounting-is-good.
05:23:03 <Gregor> elliott: That's my desktop wallpaper at work.
05:23:08 <Patashu> python has had a gc for ages I thought
05:23:11 <elliott> Gregor: Seriously? X-D
05:23:18 <Gregor> elliott: Really an truly.
05:23:33 <elliott> Refcounting is utterly great, it combines all the slowness of manual memory management with all the accuracy of manual memory management.
05:23:36 <Gregor> Patashu: "now" doesn't mean "recently" :P
05:23:50 <pikhq> Patashu: As a cyclic-reference breaker.
05:23:51 <elliott> Gregor: It's been your wallpaper for three years, how are you still alive?
05:23:54 <Gregor> elliott: Actually it's slower and less accurate.
05:24:01 <elliott> Gregor: Well, yes :P
05:24:10 <Gregor> elliott: Lots of fullscreen windows.
05:24:23 <elliott> Gregor: ugly.html or just ugly.png?
05:24:27 <elliott> Oh
05:24:28 <elliott> Wait
05:24:31 <elliott> That's tiled??
05:24:37 <elliott> It PERFECTLY shows up my TFT's imperfections.
05:24:42 <pikhq> So it combines all the slowness of manual memory management with all the accuracy of manual memory management with all the implementation burden of automatic memory management.
05:24:45 <elliott> It's a gradient-ish thing here.
05:25:24 <Gregor> elliott: lul
05:25:31 <elliott> Gregor: http://wellnowwhat.net/trippy.html Make this your background
05:25:46 <Gregor> elliott: That wonderful combination was a non-match given by my color matcher, btw :P
05:26:01 <elliott> I know, I'm reading the log :P
05:26:09 <elliott> God trippy.html is hot.
05:26:18 <Gregor> elliott: Also a good wallpaper: http://codu.org/spinners.png
05:26:25 <elliott> Heh
05:26:37 <elliott> Nobody ever made my perfect wallpaper :(
05:27:29 <pikhq> Gray?
05:27:58 <Gregor> *Grey
05:28:15 <pikhq> Both are correct.
05:28:26 <Gregor> Mine is better.
05:28:47 <elliott> No my perfect
05:28:48 <elliott> wallpaper is
05:28:48 <Gregor> 9/10 dentists agree that "grey" is the superior spelling for their patients who chew gum.
05:28:55 <elliott> Imagine an infinite plane of lines.
05:28:56 <elliott> Specfiically
05:29:00 <elliott> Black background
05:29:02 <elliott> Zebra-style
05:29:07 <elliott> Black/white/black/white lines vertically
05:29:09 <elliott> Tiling the whole plane
05:29:13 <elliott> Now imagine rotating this place
05:29:14 <elliott> erm
05:29:15 <elliott> Now imagine rotating this plane
05:29:28 <elliott> Now imagine taking a screen-sized section of that rotating, animated plane
05:29:32 <elliott> And making it your desktop background.
05:29:34 <elliott> Discuss.
05:30:08 <itidus20> would make me dizzy i think
05:30:27 <Sgeo__> Eh?
05:30:32 <Sgeo__> How is reference counting slow?
05:30:35 <Sgeo__> I get the inaccurate part
05:31:24 <elliott> Sgeo__: One,
05:31:28 <Gregor> Sgeo__: It promotes stack writes into heap writes. It also promotes local heap writes into distant heap writes. Basically, it promotes all writes into "oh and also let's fuck up my cache just for fun".
05:31:30 <elliott> Because it's basically just like malloc()/free().
05:31:31 <pikhq> Memory access is slower than you think. No, slower still.
05:31:31 <elliott> Two,
05:31:41 <elliott> Because you branch on every ref--.
05:32:14 <elliott> Also what Gregor said :P
05:32:17 <Gregor> Heh. I focused on caching, elliott focused on branching, and pikhq focused on overutilization.
05:32:25 <Gregor> I think we've covered all the important bases :P
05:32:28 <elliott> Reference counting: literally the worst possible system.
05:33:09 <Sgeo__> Can it be modified to be accurate?
05:33:11 <elliott> Here's a better system than reference counting: free() is never called. Occasionally the interpreter just exits and your service manager restarts your server.
05:33:21 <Gregor> Sgeo__: Yes. It's called a mark and sweep garbage collector.
05:33:32 <pikhq> elliott: Win.
05:33:38 <elliott> Sgeo__: It's possible to do cyclic reference counting I think, but it's even slower.
05:33:45 <elliott> And a GC is better in every way.
05:33:58 <pikhq> Heck, manual memory management is better in most every way.
05:34:03 <Gregor> elliott: Every claim to that effect I've seen have been "delayed reference counting", which is a pseudonym for mark and sweep.
05:34:20 <pikhq> Gregor: Delayed reference counting? Lawl.
05:34:24 <elliott> Gregor: Heh
05:34:37 <elliott> Gregor: You could replace the reference integer with a list of referencing objects.
05:34:37 <Gregor> Yes. I have seen those words.
05:34:40 <Sgeo__> Is mark and sweep decent?
05:34:42 <elliott> And keep a "seen" list or...
05:34:50 <elliott> Gregor: What I'm saying is, you COULD do it without mark and sweep :P
05:34:57 <elliott> In the same way that eightebed disproved your claim.
05:35:01 <pikhq> Sgeo__: Not state of the art, but it definitely works.
05:35:05 <elliott> Sgeo__: It's pretty okay
05:35:24 <Sgeo__> Do I have a chance in hell of successfully implementing it myself?
05:35:25 <Gregor> elliott: ARGH. That. ARGH. We never defined "GC" precisely enough, it was all of a GC except for actual reclamation :P
05:35:39 <pikhq> Yes, actually. Though you'll probably want to read up on memory management.
05:35:40 <monqy> what is sgeo doing
05:35:45 <monqy> is it a bad
05:35:45 <elliott> Sgeo__: Here's mark and sweep: Start from the current closure. Traverse every pointer you see, set its "mark" bit.
05:35:45 <monqy> thing
05:35:56 <elliott> Sgeo__: Then, go through every object in the system, and free() every object without its mark bit set.
05:36:03 <elliott> And clear the mark bit on every object with a mark bit set.
05:36:04 <pikhq> monqy: No, he's merely inquiring about generalities.
05:36:10 <Gregor> Incidentally, all modern mark-and-sweep collectors have an O(1) sweep :P
05:36:15 <Sgeo__> Well, I do have a plan in mind...
05:36:16 <monqy> 22:35:59 < Sgeo__> Do I have a chance in hell of successfully implementing it myself?
05:36:21 <Sgeo__> WRT Second Life stuff
05:36:24 <elliott> I'm pretty sure this is the Active Wo-
05:36:25 <elliott> Same thing.
05:36:27 <elliott> Same goddamn thing.
05:36:28 <monqy> hehehehehehe
05:36:32 <elliott> Sgeo__: you should port gggggc to second life
05:36:37 <elliott> Gregor: Please tell him how easy this will be
05:36:42 <Gregor> elliott: TOO MANY GEES
05:36:44 <pikhq> You'd probably have an even easier time doing a copying GC. Which are pretty silly.
05:36:53 <elliott> Gregor: OGC
05:37:12 <Sgeo__> OGC has a meaning other than that logo?
05:37:56 <elliott> Oligarchical Gregor Collector
05:38:08 <pikhq> Here's copying collection: Start from the current closure. Traverse every pointer you see, copy that object into a new heap, making sure to not copy objects multiple times.
05:38:29 <Sgeo__> https://github.com/wvanbergen/ogc
05:38:51 * Sgeo__ is a little dizzy trying to follow that readme
05:39:04 <pikhq> Oh, yeah, and you'll probably want a pointer rewrite step there, XD
05:39:22 <elliott> pikhq: It's Second-Life; he'll already need heap-relative pointers.
05:39:26 <elliott> Not like they give you C.
05:39:30 <pikhq> Ah, right.
05:39:53 <Sgeo__> I should start actually thinking this through at some point
05:39:54 <elliott> Sgeo__: Does Second Life run on Linux? I think you need adult supervision trying to implement a VM.
05:40:01 <pikhq> elliott: Yes, it does.
05:40:12 <elliott> pikhq: Then the burden falls onto me to be a responsible guardian.
05:40:22 <elliott> http://secondlife.com/_img/pix.gif
05:40:26 <elliott> Can you get married if you upgrade to Premium.
05:40:28 <elliott> Is that what Premium is.
05:40:30 <elliott> Please say yes.
05:40:35 <elliott> Oh my god this Flash advert.
05:40:47 <elliott> http://secondlife.com/_img/pix.gif
05:40:49 <elliott> styling
05:40:49 <elliott> oh
05:40:50 <elliott> its
05:40:53 <elliott> not the real url of the pix
05:40:53 <elliott> :'(
05:40:56 <monqy> :'(
05:41:01 <elliott> monqy: http://secondlife.com/destination/911-memorial
05:41:08 <pikhq> And it running on Linux even predated them open-sourcing it.
05:41:08 <monqy> oh god what
05:41:10 <elliott> 911 victims....... looking ghostly
05:41:33 <pikhq> Incidentally, Second Life is horribly written.
05:41:35 <elliott> its the least classiest marble ive ever seen
05:41:49 <monqy> they also have a world trade centre memorial. and a rainbow gardens pet memorial centre
05:41:54 <elliott> http://secondlife.com/destination/lost-lovers-dancing-club---live-events
05:41:55 <monqy> http://secondlife.com/destination/rainbow-gardens-pet-memorial-center
05:42:00 <elliott> lost lovers dancing club
05:42:11 <elliott> monqy: oh sweet jesus
05:42:13 <Gregor> A VIRTUAL memorial: Worst memorial ever?
05:42:15 <monqy> http://secondlife.com/destination/club-graffiti
05:42:22 <elliott> Gregor: http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/5917.jpg
05:42:23 <elliott> Best.
05:42:24 <monqy> club graffiti
05:42:49 <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
05:43:00 <pikhq> elliott++
05:43:01 <Gregor> `addquote <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
05:43:02 <HackEgo> 666) <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
05:43:06 <elliott> "Club re:noize bills itself as "a distorted eargasm for noize-minded souls" and we don't disagree."
05:43:09 <Gregor> OH GOD IT'S SATAN'S QUOTE
05:43:14 <elliott> I don't either, but only because I have no idea what that means.
05:43:28 <pikhq> I understand it could be put to somewhat more interesting use, but holy fuck most of it is boring.
05:44:14 <elliott> I'd like to note we're all hypocrites who play a game that offers all the fun of mining with none of the real-world benefits :P
05:44:25 <Gregor> X-D
05:44:32 <elliott> OK, with slightly less risk, admittedly.
05:44:33 <elliott> Slightly.
05:44:42 <Gregor> Much greater obesity risk.
05:44:54 <pikhq> elliott: My criticism comes from first-hand experience.
05:44:59 <monqy> bad person risk
05:45:08 -!- CakeProphet has joined.
05:45:08 -!- CakeProphet has quit (Changing host).
05:45:08 -!- CakeProphet has joined.
05:45:16 <monqy> speak of the devil
05:45:19 <itidus20> elliott: well it certainly suggests a new way of thinking about mining in general
05:45:22 <elliott> Step into the grid and get lost in one of the many cyberpunk places in Second Life.
05:45:29 <elliott> This homage to classic computer games and cyberpunk culture places you "on the grid." Amidst bouncing balls and other surreal experiments, explore the multi-leveled displays — be bold and fly up. Hang out here and you may spot a Torley at work in its digital habitat!
05:45:43 <itidus20> mine trees! mine dirt!
05:45:44 <Gregor> "Cyberpunk"
05:45:46 <elliott> Spirituality & Belief (26)
05:45:51 <elliott> YES THIS IS GOING TO BE THE BEST CATEGORY
05:45:56 <elliott> Suicide City
05:45:56 <elliott> What terrors await you in this rain-swept, creepy town? Explore the horrors, but bring a friend — you might not be able to make it out alive!
05:45:58 <elliott> SUICIDE
05:45:58 <elliott> CITY
05:46:00 <Gregor> Most people who have used that word need a cyberpunch in the face.
05:46:09 <elliott> Gregor: At least it's not steampunk.
05:46:14 <monqy> steampunch in the face
05:46:21 <elliott> "Technology... but with COGS!"
05:46:23 <itidus20> :-?
05:46:25 <Gregor> elliott: I suspect a steampunch in the face would hurt considerably more.
05:46:39 <itidus20> ahh steam power
05:46:44 <elliott> I have to admit, I was hoping the "Cyber" category would be something else.
05:46:47 <CakeProphet> What's wrong with cyberpunk and steampunk?
05:46:48 <Gregor> I mean, let's face it, "cyber"technology isn't much on moving parts.
05:46:52 <elliott> By hoping, I mean for purely comedic purposes.
05:47:04 <elliott> Visit Duran Duran Universe, the official Second Life presence of the popular band.
05:47:06 <elliott> I......................
05:47:13 <elliott> Duran Duran — Secret Rehearsal Rooms
05:47:13 <elliott> Practice your musical skills in one of the many secret rehearsal rooms at Duran Duran Universe.
05:47:15 <elliott> ..........................................
05:47:19 <CakeProphet> lol
05:47:23 <elliott> I am completely devoid of words.
05:47:29 <itidus20> i personally think the steampunk world looks the most fun
05:47:31 <CakeProphet> I have only laughter.
05:47:40 <pikhq> elliott: Linden doesn't much like SL sex, so they make efforts to make it hard to find.
05:47:41 <CakeProphet> everything is more fun when steam powered.
05:47:44 <itidus20> given the choice between this world, the cyberpunk one, and the steam one
05:47:46 <elliott> Mud wrestling, arm wrestling and pillow fights. Anything can happen at The Skin Dive in Duran Duran Universe.
05:47:47 <pikhq> From what I understand, this doesn't do much.
05:48:00 <elliott> how do you even have a pillow fight in sl that has to be like
05:48:03 <elliott> the most awkward thing ever
05:48:11 <monqy> more awkward than sl sex
05:48:13 <monqy> more awkward than metaplace sex
05:48:21 <pikhq> Yes, all physical actions are awkward.
05:48:21 <elliott> `? Sgeo
05:48:22 <HackEgo> Sgeo? ¯\(°_o)/¯
05:48:23 <CakeProphet> "wow this scripting sure is neat!" "yeah!"
05:48:27 <elliott> `learn Sgeo invented Metaplace sex.
05:48:27 <pikhq> Except, like, walking.
05:48:29 <HackEgo> I knew that.
05:48:29 <itidus20> i think steampunk is kinda soft-anarcho-primitivism
05:48:37 <elliott> A good biography.
05:48:48 <Gregor> itidus20: I thought we were an anarchosyndicalist commune.
05:49:01 <Sgeo__> CakeProphet, that's kind of my main draw to SL >.>
05:49:03 <itidus20> i dont even know what that means`` yet
05:49:10 <Sgeo__> Or part of it
05:49:17 <CakeProphet> itidus20: is that kind of like rocktronicelectronintendowavecore?
05:49:24 <elliott> Duran Duran - TIon Love Chapel
05:49:25 <elliott> Get hitched at the TIon Love Chapel in Duran Duran Universe.
05:49:27 <elliott> DURAN DURAN LOVE CHAPEL
05:49:30 <pikhq> CakeProphet: Best thing?
05:49:38 <elliott> "LGBT Friendly"
05:49:44 <elliott> So are the other locations in Second Life not LGBT friendly?
05:49:48 <itidus20> CakeProphet: soft- is being used in the sense of "not taken to extremes, or allowing some room for vairance and exceptions"
05:49:52 <elliott> Set in the present-day urban Southern California, Rejectz immerses you in a bad part of town where anything can happen. This grungy role-playing area is a place for gay males to meet and play.
05:49:57 <elliott> jesus christ
05:50:09 <elliott> Learn more information about LGBT civil rights worldwide at the Brokeback Gay Civil Rights Center. This area, which is accessible to age-verified adult residents, also features a club, cathedral, art gallery, memorial park and "Drama Queen Theater."
05:50:16 <elliott> brokeback gay
05:50:16 <pikhq> Welp, found the sex.
05:50:19 <CakeProphet> itidus20: oh okay so it's soft punk fusion neo-grime
05:50:26 <elliott> pikhq: where da straight sex at
05:50:31 <pikhq> Beats me.
05:50:38 <elliott> Connect with your community and meet new friends at Gay Archipelago, an international LGBT-friendly cluster of 147 sims in Second Life.
05:50:38 <pikhq> I've not cared enough.
05:50:41 <elliott> garchypelago
05:50:53 <pikhq> "So... It's like porn, but badly animated?" "Yup." "Fuck that."
05:51:06 <itidus20> CakeProphet: i like the idea of human knowledge increasing but technology being more moderate
05:51:12 <elliott> oh no
05:51:15 <elliott> theres a steampunk category
05:51:16 * Sgeo__ needs to go eat
05:51:18 <elliott> There are no destinations in this category with the maturity rating of Any.
05:51:22 <coppro> hahaha
05:51:24 <elliott> are they all steampunk sex worlds
05:51:28 <coppro> yes
05:51:30 <elliott> amazing
05:51:31 <pikhq> YES
05:51:35 <itidus20> i guess its all the same in the end
05:51:36 <pikhq> YEEESS
05:51:41 <elliott> Vampire (18)
05:51:42 <elliott> oh no
05:51:46 <elliott> There are no destinations in this category with the maturity rating of Any.
05:51:48 <CakeProphet> itidus20: oh so you're more into abstract glitch-hop fusion?
05:51:49 <myndzi> didn't LGBT get some extra letters?
05:51:57 <elliott> LITERALLY ALL OF THESE "ROLEPLAYING COMMUNITIES" ARE SEX-BASED
05:52:02 <myndzi> why don't they just say EVERYTHINGEXCEPTNORMALPEOPLE
05:52:12 <myndzi> we can shorten it to N-
05:52:12 <itidus20> im not really thinking things out
05:52:14 <myndzi> :P
05:52:27 <CakeProphet> dude there's no like, pen and paper SL worlds?
05:52:45 <pikhq> myndzi: Some variants add "allies" to the mix.
05:52:48 <elliott> What is it with those blacks and, like, hispanics. Can't we just say normal people, and freaks?
05:52:54 <pikhq> Which leaves you including everyone except jerks.
05:52:57 <elliott> And those asians too. It's too many to remember.
05:53:05 <myndzi> i'm pretty sure i remember one with like 7 letters lol
05:53:10 <itidus20> CakeProphet: there is a problem that if you change the system to give everyone what they want, they will adjust their desires again
05:53:21 <elliott> monqy: there's a haunted category
05:53:22 <elliott> looking ghostly
05:53:34 <elliott> oh my god
05:53:35 <monqy> im spouked
05:53:40 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/6664.jpg
05:53:44 <elliott> just
05:53:45 <myndzi> LOLOL
05:53:45 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/6664.jpg
05:53:47 <myndzi> quiltbag
05:53:54 <myndzi> you know it's getting bad when you have to make mnemonics
05:54:03 <CakeProphet> itidus20: yeah that's the problem with genres like alternative, where the desire is to be something that isn't mainstream. So you give everyone what they want and then they want something alternative again.
05:54:03 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/6664.jpg
05:54:05 <elliott> monqy: guy inthe middle
05:54:07 <elliott> looking ghostly
05:54:08 <elliott> (because)
05:54:09 <elliott> (he is dead)
05:54:22 <CakeProphet> itidus20: that's why house is nice because everyone just likes the same four to the floor for hours and hours.
05:54:24 <monqy> sl murder
05:54:32 <elliott> Sgeo__: can you kill in sl
05:54:38 <pikhq> CakeProphet: Or you just go so far off the beaten path you're never mainstream ever.
05:54:44 <CakeProphet> noise.
05:54:52 <CakeProphet> is never mainstream.
05:55:02 <elliott> The Corn Field is a region of mythological status where once naughty avatars were sent to think about what they had done. Read more here: http://bit.ly/kmL0EF
05:55:06 <Sgeo__> elliott, "legally", in certain places, I think. And not so allowed, there is griefing
05:55:31 <quintopia> the corn field? is that a reference to "It's A Good Life"?
05:55:37 <elliott> quintopia: apparently
05:55:45 <CakeProphet> dark ambient music such as Voice of Eye: http://www.youtube.com/watch?v=jZ_fUZDeNQo
05:55:46 <quintopia> neat
05:55:46 <elliott> http://secondlife.com/destination/cyrus-apollo-s-giant-bears
05:55:47 <elliott> augh
05:55:47 <Sgeo__> There used to be devices that could send people up billions of meters against their will
05:55:49 <CakeProphet> is great.
05:55:50 <CakeProphet> everyone should like it.
05:55:57 <elliott> monqy: click
05:55:58 <elliott> that
05:56:00 <elliott> its augh
05:56:12 <monqy> augh
05:56:15 <monqy> who did that
05:56:17 <monqy> who
05:56:18 <monqy> would do that
05:56:21 <elliott> cyrus apollo i
05:56:23 <elliott> guess
05:56:23 <monqy> (a genouse)
05:56:25 <elliott> based on
05:56:26 <elliott> url
05:56:27 <monqy> (geniouse)
05:56:31 <Sgeo__> I mostly stick to the sandboxes
05:56:55 <monqy> https://d1yjxggot69855.cloudfront.net/images/3/3c/The_Corn_Field.jpg corn field
05:56:59 <Sgeo__> Oh huh, the place with the bears is apparently near a small sandbox
05:57:32 <elliott> Romantic Spots (47)
05:57:39 <elliott> awwww ye
05:58:06 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/5452.jpg
05:58:12 <elliott> i question the anatomy depicted in this picture
05:59:09 <elliott> Sgeo__: this is really bad good god
05:59:09 <monqy> good anatomy
05:59:25 <elliott> Strange & Mysterious (37)
05:59:31 <CakeProphet> Third Life community: have fun playing Third Life with your Second Life personas!
05:59:35 <elliott> Catalan Institute of Nanotechnology
05:59:35 <elliott> Don't let the name fool you — this ain't a sterile research facility. As you explore this forest of pulsating shapes and shifting structures, the wild textures you see were supposedly derived from actual nanoparticles.
05:59:45 <elliott> im sterile
05:59:55 <Sgeo__> I mostly don't get involved with that stuff. Except one of the sandboxes I _used_ to like was a furry sandbox
05:59:57 <CakeProphet> ACTUAL NANOPARTICLES?
06:00:01 <elliott> Visit this recreation of Robert A. Heinlein's "Crooked House" by Seifert Surface. Explore the interconnected rooms of the house, which is modeled on a four-dimensional hypercube. Learn more about the story behind the house's creation at http://pdx.be/efe8.
06:00:02 <elliott> ok that's cool
06:00:07 <elliott> that is the single cool thing i have seen so far
06:00:54 <Sgeo__> I don't see how that's possible in Second Life.
06:00:58 <Sgeo__> Worlds.com sure, but SL?
06:01:00 <elliott> http://nwn.blogs.com/nwn/2006/06/_and_he_rezzed_.html
06:01:15 <elliott> http://nwn.blogs.com/wja_hamlet_thumbnail.jpg
06:01:28 <Sgeo__> YouTube video not working for me
06:01:55 <elliott> I note there's no furry category in this thing
06:01:57 <elliott> OPPRESION
06:02:01 <Sgeo__> Oh, that sort of thing
06:02:11 <monqy> fursecution
06:02:14 <Sgeo__> Saw something like it before
06:02:18 <CakeProphet> @HOOGLE furry
06:02:18 <lambdabot> Unknown command, try @list
06:02:24 <CakeProphet> @hoogle furry
06:02:24 <lambdabot> No results found
06:02:27 <CakeProphet> WHAT?
06:02:38 <elliott> where the furry furry bondage girls at
06:03:04 <monqy> zzo made something called furryscript right what is that
06:03:27 <Sgeo__> I was banned from a furry sandbox
06:03:35 <elliott> did you try and have metaplace sex
06:03:48 <Sgeo__> I dropped a cube.
06:03:51 <monqy> oh
06:04:00 <elliott> NOOOOOOOOOOOOOOOOoooooooooooooo
06:04:03 <CakeProphet> Sgeo__: accidental bestiality?
06:04:05 <monqy> is that furspeak for fuck you
06:04:06 <CakeProphet> oh.
06:04:12 <elliott> he "dropped"
06:04:13 <elliott> a "cube"
06:04:16 <elliott> if you "know"
06:04:18 <elliott> what I "mean"
06:04:30 <monqy> dropped a fat beat
06:04:36 <elliott> dropped a bat feet
06:04:43 <CakeProphet> elliott just "dropped" some "knowledge" on these "bitches"
06:04:46 <Gregor> To elucidate: That's a euphemism for expressing anything short of a desire for immediate and ongoing bestiality.
06:04:55 <Sgeo__> Well, the script in the cube may have violated TOS, as well as being a physical cube that caused some lag
06:04:59 <elliott> Important: The Google Image Search API has been officially deprecated as of May 26, 2011. It will continue to work as per our deprecation policy, but the number of requests you may make per day may be limited.
06:05:09 <Sgeo__> (It was a chat transmitter thing)
06:05:17 <elliott> Gregor: Is there a successor API, I guess you know these things
06:05:20 <elliott> I suppose I should just screen-scrape???
06:05:28 <monqy> <sgeo> i dropped a chat transmitter thing
06:05:31 <Gregor> elliott: There will almost assuredly not be.
06:05:42 <elliott> Gregor: Google sure like being a closed system, don't they
06:05:49 <Gregor> elliott: They drop APIs whenever they feel it's important enough to their business that exposing it by any non-ad-laden means is bad.
06:06:14 <elliott> Google business model: You give us all your data --> We use it to profit forever --> The end
06:06:23 <elliott> --> So much money
06:06:31 <monqy> --> so mcuch
06:06:47 <elliott> Oh well, screen-scraping is easy
06:06:56 <elliott> Stonehenge Rebuilt
06:06:56 <elliott> This reconstruction of the Neolithic site of Stonehenge attempts to explain its lithology and show how it must have appeared in ancient times. It demonstrates how rays of sun passed between the megaliths during the summer solstice.
06:07:08 <elliott> oh my god
06:07:09 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com/new/destinations/en/_img/fullsize/2944.jpg
06:07:18 <monqy> megaliths reminded me of beedaweeda help
06:07:22 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com/new/destinations/en/_img/fullsize/2944.jpg
06:07:30 <monqy> wirdiculous
06:07:34 <monqy> that smile god damn
06:07:45 <elliott> oh my god
06:07:54 <elliott> Looking for a sexy shape for your avatar? Adult Second Shapes features a wide variety of attractive shapes, including curvy and realistic body shapes that will get you noticed.
06:07:54 <monqy> it would be staring into my soul but instead it is staring into its snout's soul
06:07:58 <elliott> they literally sell new skins
06:08:00 <monqy> maybe it has crosseye problems
06:08:29 <elliott> AKERUKA Italian Creations offers high quality skins for men and women along with shapes created and styled with perfection to suit different types looks, cultures and ages.
06:08:29 <Sgeo__> skin != shape
06:08:31 <elliott> so fuckin' classy
06:09:10 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com/new/destinations/en/_img/fullsize/4188.jpg
06:09:15 <Sgeo__> Maybe I shouldn't comment on the fact that my current avatar is mostly just a skin
06:09:18 <elliott> those faces to the right are so disturbing
06:09:56 <zzo38> monqy: Yes I did make something called FurryScript. Someone asked me to type in esolang wiki so I made a user subpage explaining it a bit
06:09:58 <elliott> its really painful how hard this is trying to emulate consumer culture
06:10:02 <Sgeo__> (+invisible hair +shape +i forgot the last necessity)
06:10:10 <elliott> the pain is intense
06:10:40 <Sgeo__> It kind of is consumer culture, I think
06:10:43 <monqy> does your avatar have clothes, sgeo
06:10:43 <Sgeo__> People pay for these things
06:10:52 <Sgeo__> monqy, no. But the skin isn't human skin
06:11:00 <zzo38> Specifically this document http://esolangs.org/wiki/User:Zzo38/FurryScript
06:11:35 <elliott> Sgeo__: are you a cube
06:11:43 <Sgeo__> N
06:11:45 <Sgeo__> no
06:11:48 <elliott> are you two cubes
06:12:04 <elliott> i see no denial
06:12:13 <Sgeo__> I'll get a pic
06:12:18 <elliott> oh no
06:12:24 <Sgeo__> No, that's not my current av
06:12:24 <monqy> the cube sgeo dropped was his naughty bits
06:12:50 <monqy> this is why he got banned
06:12:53 <Sgeo__> https://marketplace.secondlife.com/p/Editing-Appearance-HUD/219015
06:13:09 <Sgeo__> I think that's considered SFW
06:13:19 <monqy> it's gross
06:14:33 <monqy> so what is it you want to do again
06:14:35 <monqy> calculate sl gravity
06:14:49 <elliott> more like sl poop
06:14:51 <Sgeo__> That's a separate project
06:14:51 <itidus20> http://jyte.com/cl/i-have-used-at-least-10-different-programming-languages zzo38 has used at least 10
06:15:06 <elliott> itidus20: are you stalking everyone from this channel or sth :P
06:15:16 <itidus20> i actually searched for furryscript
06:15:21 <elliott> oh
06:15:29 <itidus20> so indirect stalking
06:15:35 <elliott> indiralking
06:15:44 <Sgeo__> Dear SL Marketplace: I'd appreciate it if you emailed me when I get reviews, like you used to
06:16:38 <Sgeo__> https://marketplace.secondlife.com/p/Antiposeball-5-SAVE-PRIMS-ON-FURNITURE/219014 I haven't updated this thing since 2007
06:16:40 <zzo38> itidus20: If you want FurryScript please look at article I linked to
06:17:07 <Sgeo__> "This is good if you only want avs to use ONE position for sitting. I wanted to add a variety and well..that just didnt happen with this, for some reason the instructions to use commas in between names just wasnt enough. Ah well. Not for me , but if you only need a single sit then this is very easy to use and recommended. =)P"
06:17:16 <Sgeo__> I've been intending to remove those instructions
06:17:16 <itidus20> i was trying to figure out if it was something you made or if it was something you merely documented
06:17:45 <itidus20> and just curious what this furryscript is used for. heh
06:18:06 <zzo38> itidus20: It is something I made. To see some of its use, look at external resources
06:18:07 <elliott> `? monq
06:18:08 <elliott> `? monqy
06:18:09 <HackEgo> monq? ¯\(°_o)/¯
06:18:10 <HackEgo> monqy dead :(
06:18:15 <elliott> tru
06:18:47 <zzo38> I used Haskell too since I typed on that Jyte page so I added it now
06:21:27 <itidus20> zzo38: im guessing that furryscript is too useful to be a regular topic :D
06:22:16 <itidus20> it's as if there is a one-to-one correspondancy between source code ascii text and outputted text...
06:22:17 <zzo38> itidus20: Sort of. That is one reason why it is user subpage. It does, however, have a few features which might be considered a bit strange. But, it works well for what it is trying to do, I think.
06:22:23 <itidus20> ^sickening
06:22:56 -!- Zuu has joined.
06:23:09 <itidus20> you can't just write an ascii character in source code and repeat that ascii character as program output!?! what do you think this is
06:23:14 <itidus20> some kind of joke
06:24:07 <itidus20> ahem.. sorry a bit cranky this afternoon
06:24:49 <zzo38> All script are included in here http://zzo38computer.cjb.net/furry/scripts/ If you write your own script, please tell me by writing on [[User talk:Zzo38/FurryScript]]
06:25:47 <itidus20> there is this kind of category of programming languages which doesn't really have much of a good name
06:26:17 <itidus20> that is not esoteric, not mainstream, not done in a university, possibly only a handful of users
06:26:40 <CakeProphet> post-rock indie programming languages.
06:26:55 <itidus20> punklangs?
06:26:55 <zzo38> TV PLOT is something I found in a very old book but I updated it with more choices
06:27:08 <itidus20> just kidding....!
06:27:35 <itidus20> yeah when programming language categories start to resemble music categories there is great danger
06:27:59 <itidus20> now i must lie down half awake
06:28:01 <zzo38> Or when you categorise chess variants by color
06:28:17 <CakeProphet> extreme thrash-step bebopcore metal.
06:28:48 <CakeProphet> dude...
06:28:51 <CakeProphet> so what if I made a program
06:28:55 <CakeProphet> that randomly generated genres.
06:29:26 <elliott> "Retry execution of the current memory transaction because it has seen values in TVars which mean that it should not continue (e.g. the TVars represent a shared buffer that is now empty). The implementation may block the thread until one of the TVars that it has read from has been udpated. (GHC only)"
06:29:32 <elliott> Gregor: Aww yeah, GHC STM has UDPATED
06:29:40 <elliott> I guess that's like an update... across UDP.
06:29:45 <zzo38> FurryScript can randomly generate stuff by templates; that was its original use. But it has other features too.
06:30:57 <zzo38> You can see stuff I made in Jyte by viewing the profile http://jyte.com/profile/zzo38computer.cjb.net In case it interest you; to login you simply need OpenID (there is other form to fill, but it is optional; OpenID is sufficient)
06:36:40 <zzo38> What does "The bigger the wheel, the ranger the forest." means?
06:37:07 <monqy> I've never heard it
06:37:53 <CakeProphet> itidus20: so you're more into Baroque industrial grimehouse?
06:40:58 <zzo38> Has there ever been a chess game properly notated "12. 0-0-0!!" ?
06:41:25 <CakeProphet> No but I bet someone's been like "12. !!!???!?!?"
06:44:16 <zzo38> CakeProphet: What is that?
06:44:24 <fizzie> "12. !!!???!?!? *throws table, pieces fly everywhere*"
06:45:34 <CakeProphet> I thought maybe I could combine programming language categories to make nonsense ones, but then I realized, sadly, that most of them make some sort of sense.
06:46:03 <CakeProphet> non-strict functional dataflow language.
06:46:05 <monqy> chess variant: in alternate universes, each of your pieces which can move to a given spot does so. the goal is to win in more universes than your opponent
06:46:45 <monqy> does this exist?
06:47:18 <CakeProphet> I think you'd just tie probably?
06:48:03 <monqy> what makes you think this?
06:48:09 <Patashu> http://i.imgur.com/lqcjm.png minesweeper is pretty hard
06:48:29 <CakeProphet> well you'd each have the same number of choices.
06:48:34 <Patashu> monqy: if you mean you elect a spot and branch universes into it
06:48:35 <elliott> Patashu: hot
06:48:46 <monqy> Patashu: yes
06:48:47 <Patashu> hmm
06:48:49 <elliott> are those non-grid boards playable
06:48:50 <elliott> or just the grid one
06:48:51 <elliott> s
06:48:54 <Patashu> I know of a variant where you elect to make branches however you like
06:49:02 <Patashu> apparently you could force a win as player 1 trivially in it
06:49:03 <Patashu> :(
06:49:10 <monqy> what? :(
06:49:15 <Patashu> let me see if I can find it
06:49:23 <CakeProphet> oh right, maybe white would win.
06:49:32 <Patashu> and elliott: every board is playable if you register it
06:49:45 <elliott> Patashu: including those non-grid ones?
06:49:49 <elliott> hot hot hot pirate it immediately
06:49:55 <Patashu> http://www.chessvariants.com/large.dir/contest/manyworlds.html http://www.chessvariants.org/index/listcomments.php?itemid=ManyWorldsChess
06:50:24 <itidus20> CakeProphet: i dunno what im into musically
06:50:52 <Patashu> elliott, you can download the trial version and see all the boards available, and have autoplay solve them for you http://www.software3d.com/Mines3D/download.php
06:51:14 <elliott> pirate pirate pirate then make youtube videos thanks
06:51:52 <monqy> Boards do not remember which player moved last; there is no rule preventing you from making a move on a given board even if you were the player whose move created the board.
06:52:00 <monqy> and the goal is to capture the king on any board
06:52:10 <monqy> so I guess to win as player 1 you just repeatedly move until you get the king?
06:52:28 <Patashu> read the comments
06:52:35 <Patashu> they explain how to mate in 4 as player 1
06:52:35 <monqy> oh where's that oh there
06:52:39 <Patashu> so your variant should make sure it isn't possible
06:53:24 <itidus20> A ship has crashed on the border between two kingdoms. You must decide where to bury the survivors. -- lol
06:53:32 <monqy> oh i guess you can only move on one board at a time
06:54:52 <itidus20> THIS REPORT IS ABOUT A INTELLIGENT FAERIE WHO IS A FLOP AT CHESS AND WHO OPPOSES THE GOVERNMENT
06:55:44 <Patashu> btw, if you want some crazy but cool chess variants from a master, look at Ralph Betza's http://www.chessvariants.org/index/mainquery.php?type=Any&orderby=Type&displayauthor=1&displayinventor=1&authorid=RalphBetza&usethisheading=Items+Authored+by+Ralph++Betza
06:55:53 <Patashu> The Game for the Trees and The Game of Nemoroth in particular are great
06:56:25 <Patashu> The Game of Nemoroth has its own -lore- and its own alternate universe chess rules. That's pretty cool
06:56:55 <itidus20> haha halflings
06:57:06 <Vorpal> <itidus20> A ship has crashed on the border between two kingdoms. You must decide where to bury the survivors. -- lol <-- where is that from?
06:57:25 <zzo38> It is from one of the files I have for FurryScript
06:57:33 <zzo38> (It is not part of FurryScript itself)
06:57:53 <zzo38> However, that in turn was taken from somewhere else which in turn from somewhere else and so on.
06:59:14 <Vorpal> Ad infinitum?
06:59:28 <itidus20> `log godzilla
06:59:31 <zzo38> No, I don't think so
06:59:35 <Vorpal> oh well
06:59:40 <itidus20> oh that bot is not about
06:59:48 <HackEgo> 2010-12-07.txt:21:06:31: <HackEgo> I&#39;m Godzilla coming! I want to die!
06:59:54 <itidus20> oh there he is
07:00:20 <Vorpal> I think the script needs to convert back from HTML escapes
07:00:22 <Vorpal> elliott: ^
07:00:32 <itidus20> `pastelogs godzilla
07:00:35 <elliott> Vorpal: What?
07:00:42 <Vorpal> <HackEgo> 2010-12-07.txt:21:06:31: <HackEgo> I&#39;m Godzilla coming! I want to die!
07:00:45 <Vorpal> that looks wrong
07:00:46 <elliott> The script does not make any HTTP requests.
07:00:53 <elliott> The logs are accurate.
07:00:53 <Vorpal> elliott: well was it like that in the original?
07:00:55 <Vorpal> ah
07:01:06 <HackEgo> No output.
07:01:17 <elliott> `? Vorpal
07:01:18 <itidus20> i will just let hackego rest
07:01:21 <HackEgo> Vorpal is really boring. Seriously, you have no idea.
07:01:23 <elliott> (I forgot what your biography is.)
07:01:26 <itidus20> he seems sleepy
07:01:39 <Vorpal> ^run type '?'
07:01:45 <Vorpal> `run type '?'
07:01:48 <HackEgo> ​? is /hackenv/bin/?
07:01:56 <Vorpal> `run file /hackenv/bin/?
07:01:57 <elliott> `pastewisdom
07:01:58 <HackEgo> ​/hackenv/bin/?: POSIX shell script text executable \ /hackenv/bin/k: POSIX shell script text executable
07:01:59 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22337
07:02:10 <elliott> `forget add
07:02:12 <HackEgo> Forget what?
07:02:34 <itidus20> `pastelogs monster
07:02:40 <monqy> "��V�>WIד�.��" - c
07:02:47 <Vorpal> what was the command to get the url of a file?
07:02:47 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30032
07:03:01 <Vorpal> `url /hackenv/bin/?
07:03:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip//hackenv/bin/?
07:03:05 <Vorpal> ah yes
07:03:06 <elliott> `url bin/?
07:03:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/?
07:03:11 <elliott> Except that won't work.
07:03:12 <Vorpal> `url bin/?
07:03:13 <elliott> Obviously
07:03:13 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/?
07:03:17 <elliott> `run paste bin/'?'
07:03:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25005
07:03:19 <elliott> That will though.
07:03:28 <elliott> Except it gets the encoding wrong.
07:03:39 <monqy> as always
07:03:40 <Vorpal> "elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things?"
07:03:40 <Vorpal> eh
07:03:42 <Vorpal> elliott: what db?
07:03:49 <elliott> Vorpal: the one you're looking at.
07:03:52 <Vorpal> it seems like plaintext
07:03:55 <itidus20> `pastelogs godzilla
07:03:55 <elliott> Gregor wrote that bio, anyway.
07:04:03 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.840
07:04:07 <Vorpal> elliott: right
07:04:15 <monqy> `? our
07:04:16 <elliott> Vorpal: So what's new that isn't you not understanding the definition of database?
07:04:17 <HackEgo> our? ¯\(°_o)/¯
07:04:18 <elliott> Data-base.
07:04:19 <elliott> Base of data.
07:04:22 <monqy> `? wiki
07:04:24 <HackEgo> The wiki is at http://esolangs.org/wiki
07:04:26 <monqy> `? the
07:04:27 <HackEgo> the? ¯\(°_o)/¯
07:04:36 <elliott> `cat wisdom/wiki
07:04:37 <HackEgo> The wiki is at http://esolangs.org/wiki
07:04:40 <Vorpal> elliott: well okay, yes a flatfile is a db, true.
07:04:42 <elliott> It... bends the rules a bit.
07:04:57 <itidus20> `pastelogs zombie
07:05:01 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8534
07:05:37 <Vorpal> elliott: anyway you should use sqlite, it is better tested than flatfiles.
07:05:43 <monqy> `? .doorstop
07:05:44 <HackEgo> You do not have the clearance necessary to view this entry.
07:06:12 <elliott> `karma- Vorpal
07:06:14 <HackEgo> Vorpal has 0 karma.
07:06:21 <elliott> `karma Vorpal
07:06:22 <monqy> vorpal had karma?
07:06:23 <HackEgo> Vorpal has 0 karma.
07:06:25 <elliott> Gah, what _is_ it with that bug.
07:06:27 <elliott> `karma- Vorpal
07:06:28 <Vorpal> elliott: do you think I care about karma?
07:06:29 <HackEgo> Vorpal has 0 karma.
07:06:31 <elliott> `karma Vorpal
07:06:33 <HackEgo> Vorpal has 0 karma.
07:06:36 <elliott> Come on.
07:06:38 <elliott> `karma+ Vorpal
07:06:40 <HackEgo> Vorpal has 0 karma.
07:06:42 <elliott> `karma- Vorpal
07:06:44 <HackEgo> Vorpal has 0 karma.
07:06:48 <Vorpal> elliott: well it seems broken whatever it is
07:06:49 <elliott> Dear god.
07:06:54 <Vorpal> elliott: and I don't really care about karma.
07:06:56 <elliott> Vorpal: it's a bug I can't figure out.
07:06:57 <elliott> `karma+ Vorpal
07:06:59 <elliott> `karma+ Vorpal
07:07:00 <HackEgo> Vorpal has 0 karma.
07:07:00 <elliott> `karma+ Vorpal
07:07:01 <HackEgo> Vorpal has 0 karma.
07:07:02 <Vorpal> elliott: so that isnt' going to stop me
07:07:02 <HackEgo> Vorpal has 0 karma.
07:07:04 <elliott> `karma- Vorpal
07:07:04 <elliott> `karma- Vorpal
07:07:05 <elliott> `karma- Vorpal
07:07:05 <elliott> `karma- Vorpal
07:07:06 <Vorpal> isn't*
07:07:08 <HackEgo> Vorpal has 0 karma.
07:07:08 <HackEgo> Vorpal has 0 karma.
07:07:08 <HackEgo> Vorpal has 0 karma.
07:07:08 <HackEgo> Vorpal has 0 karma.
07:07:17 <Vorpal> elliott: stop spamming me with highlights though
07:07:20 <monqy> @karma- vorpal
07:07:20 <lambdabot> vorpal's karma lowered to -1.
07:07:26 <elliott> @karma- Vorpal
07:07:26 <lambdabot> Vorpal's karma lowered to -2.
07:07:28 <elliott> I find this acceptable.
07:07:36 <itidus20> @karma++ Vorpal
07:07:36 <lambdabot> Vorpal's karma raised to -1.
07:07:39 <zzo38> @karma+ Vorpal
07:07:39 <lambdabot> Vorpal's karma raised to 0.
07:07:41 <elliott> @karma- Vorpal
07:07:41 <lambdabot> Vorpal's karma lowered to -1.
07:07:43 <elliott> You are all traitors.
07:07:44 <itidus20> @karma+ Vorpal
07:07:44 <lambdabot> Vorpal's karma raised to 0.
07:07:45 <elliott> You are all traitors.
07:07:46 <elliott> @karma- Vorpal
07:07:46 <lambdabot> Vorpal's karma lowered to -1.
07:07:49 <Deewiant> @karma- elliott
07:07:49 <lambdabot> elliott's karma lowered to 2.
07:07:53 <elliott> @karma+ elliott
07:07:53 <lambdabot> You can't change your own karma, silly.
07:07:57 <Deewiant> Silly.
07:08:01 -!- elliott has changed nick to fthepolice.
07:08:03 <fthepolice> @karma+ elliott
07:08:04 <lambdabot> elliott's karma raised to 3.
07:08:06 -!- fthepolice has changed nick to elliott.
07:08:08 <Vorpal> stop the highlight spam though.
07:08:08 <elliott> @karma- Deewiant
07:08:08 <lambdabot> Deewiant's karma lowered to -2.
07:08:16 <fizzie> "Silly" applies to the whole thing above.
07:08:17 <zzo38> O, I thought of that but thought you have to PART first
07:08:18 <monqy> `echo "a lot of" > karma/monqy
07:08:19 <HackEgo> ​"a lot of" > karma/monqy
07:08:20 <monqy> `karma monqy
07:08:20 -!- itidus20 has changed nick to itidus21.
07:08:21 <HackEgo> monqy has 0 karma.
07:08:23 <monqy> oops
07:08:24 <Vorpal> fizzie: agreed.
07:08:26 <monqy> `run echo "a lot of" > karma/monqy
07:08:27 <HackEgo> No output.
07:08:28 <monqy> `karma monqy
07:08:30 <HackEgo> monqy has 0 karma.
07:08:32 <monqy> oh nooo
07:08:33 <itidus21> `karma+ itidus20
07:08:35 <HackEgo> itidus20 has 1 karma.
07:08:41 -!- itidus21 has changed nick to itidus20.
07:09:09 <elliott> @karma- Vorpal
07:09:09 <lambdabot> Vorpal's karma lowered to -28.
07:09:10 -!- itidus20 has changed nick to itidus21.
07:09:17 <monqy> oh
07:09:20 <Vorpal> elliott: messing in /msg too. *shrug*
07:09:26 <elliott> No.
07:09:29 <elliott> That was just a really strong -.
07:09:34 -!- itidus21 has changed nick to itidus20.
07:09:36 <monqy> how do i get a lot of karma
07:09:42 <monqy> "a lot of" as my karma number
07:09:42 <elliott> @karma+ monqy
07:09:43 <lambdabot> monqy's karma raised to 1.
07:09:44 <elliott> @karma+ monqy
07:09:44 <lambdabot> monqy's karma raised to 2.
07:09:44 <Vorpal> elliott: as I said I don't care about it. I'm just annoyed at the highlight spam.
07:09:44 <elliott> @karma+ monqy
07:09:44 <lambdabot> monqy's karma raised to 3.
07:09:52 <elliott> Vorpal: Sorry, I'll fix the karma.
07:09:53 <monqy> i do not want numbers i want a lot of
07:09:54 <elliott> @karma+ Vorpal
07:09:54 <lambdabot> Vorpal's karma raised to -27.
07:09:55 <elliott> @karma+ Vorpal
07:09:55 <lambdabot> Vorpal's karma raised to -26.
07:09:55 <elliott> @karma+ Vorpal
07:09:55 <elliott> @karma+ Vorpal
07:09:55 <lambdabot> Vorpal's karma raised to -25.
07:09:55 <lambdabot> Vorpal's karma raised to -24.
07:09:56 <elliott> @karma+ Vorpal
07:09:56 <lambdabot> Vorpal's karma raised to -23.
07:09:58 <elliott> @karma+ Vorpal
07:09:58 <lambdabot> Vorpal's karma raised to -22.
07:09:59 <Vorpal> ...
07:10:00 <elliott> @karma+ Vorpal
07:10:00 <lambdabot> Vorpal's karma raised to -21.
07:10:04 <elliott> @karma+ Vorpal
07:10:04 <lambdabot> Vorpal's karma raised to -20.
07:10:06 <elliott> @karma+ Vorpal
07:10:06 <lambdabot> Vorpal's karma raised to -19.
07:10:08 <elliott> @karma+ Vorpal
07:10:08 <lambdabot> Vorpal's karma raised to -18.
07:10:09 <Vorpal> glad you like me at least
07:10:10 <elliott> friendship karma
07:10:30 <Deewiant> ?karma-all
07:10:31 <lambdabot> "pmichaud" 1018
07:10:31 <lambdabot> "moritz" 955
07:10:31 <lambdabot> "c/c" 650
07:10:32 <lambdabot> "jnthn" 607
07:10:34 <lambdabot> "lwall" 530
07:10:36 <lambdabot> [3660 @more lines]
07:10:37 <elliott> Oh dear god.
07:10:45 <coppro> hahaha
07:10:46 <elliott> @more
07:10:46 <lambdabot> "masak" 457
07:10:46 <lambdabot> "pmurias" 404
07:10:46 <lambdabot> "g" 400
07:10:46 <lambdabot> "Weed" 334
07:10:46 <lambdabot> "(" 286
07:10:47 <Deewiant> Wow, it really does what it says on the tin
07:10:48 <lambdabot> [3655 @more lines]
07:10:49 <elliott> @more
07:10:50 <lambdabot> "+" 257
07:10:52 <lambdabot> "br1" 182
07:10:54 <lambdabot> "colomon" 175
07:10:56 <lambdabot> "ruoso" 164
07:10:56 <elliott> We can do this, folks.
07:10:58 <fizzie> "+" is well-liked.
07:10:58 <lambdabot> "azawawi" 149
07:11:00 <elliott> We can do this.
07:11:00 <lambdabot> [3650 @more lines]
07:11:02 <elliott> @more
07:11:03 <lambdabot> "moritz_" 147
07:11:04 <lambdabot> "##c" 146
07:11:06 <lambdabot> "putter" 144
07:11:08 <lambdabot> "Tinned_Tuna" 143
07:11:09 <elliott> fizzie: You don't mind me doing this, right?
07:11:10 <lambdabot> "diakopter" 135
07:11:12 <Vorpal> ...
07:11:12 <lambdabot> [3645 @more lines]
07:11:14 <elliott> @more
07:11:14 <lambdabot> "erg0t" 130
07:11:16 <lambdabot> "tizoc" 108
07:11:18 <lambdabot> "kyle" 107
07:11:20 <Vorpal> this is absurd
07:11:20 <lambdabot> "jonathan" 102
07:11:22 <elliott> @more
07:11:22 <lambdabot> "TimToady" 95
07:11:24 <lambdabot> [3640 @more lines]
07:11:26 <elliott> Gotta get through them all
07:11:26 <lambdabot> "elpolilla" 91
07:11:28 <lambdabot> "mberends" 88
07:11:30 <lambdabot> "bonnie" 87
07:11:32 <lambdabot> "carlin" 85
07:11:34 <lambdabot> "Notepad" 81
07:11:36 <lambdabot> [3635 @more lines]
07:11:38 <elliott> @more
07:11:38 <lambdabot> "hinrik" 76
07:11:40 <lambdabot> "libstdc" 75
07:11:42 <lambdabot> "szabgab" 75
07:11:43 <itidus20> lmao @ notepad
07:11:44 <Vorpal> > a+4;
07:11:44 <lambdabot> "\"C" 74
07:11:46 <elliott> This should only take a few hours
07:11:46 <lambdabot> "Tene" 70
07:11:48 <lambdabot> <no location info>: parse error on input `;'
07:11:49 <elliott> <lambdabot> "\"C" 74
07:11:50 <elliott> wat
07:11:50 <lambdabot> [3630 @more lines]
07:11:53 <elliott> @more
07:11:56 <coppro> elliott: make a script
07:11:58 <elliott> Vorpal: YOU BROKE IT
07:12:02 <Vorpal> elliott: :D
07:12:05 <elliott> coppro: No need for a script, I can just
07:12:07 <elliott> @karma-all
07:12:08 <lambdabot> "pmichaud" 1018
07:12:08 <lambdabot> "moritz" 955
07:12:08 <lambdabot> "c/c" 650
07:12:08 <lambdabot> "jnthn" 607
07:12:08 <lambdabot> "lwall" 530
07:12:09 <elliott> @more
07:12:09 <elliott> @more
07:12:10 <lambdabot> [3660 @more lines]
07:12:10 <elliott> @more
07:12:10 <elliott> @more
07:12:10 <elliott> @more
07:12:10 <elliott> @more
07:12:11 <lambdabot> "masak" 457
07:12:12 <elliott> @more
07:12:13 <Vorpal> > a+4;
07:12:14 <lambdabot> "pmurias" 404
07:12:14 <elliott> @more
07:12:16 <lambdabot> "g" 400
07:12:16 <quintopia> :(
07:12:16 <elliott> @more
07:12:18 <lambdabot> <no location info>: parse error on input `;'
07:12:18 <elliott> @more
07:12:19 <lambdabot> "Weed" 334
07:12:20 <elliott> @more
07:12:20 <coppro> elliott: rate-limiting
07:12:22 <lambdabot> "(" 286
07:12:22 <elliott> @more
07:12:23 <lambdabot> [3655 @more lines]
07:12:24 <elliott> @more
07:12:26 <elliott> @more
07:12:28 <elliott> @more
07:12:30 <elliott> Oh dear.
07:12:32 <Vorpal> ...
07:12:34 <elliott> Aw.
07:12:50 <Vorpal> well I'll be off soon, someone else have to deal with it.
07:12:59 <elliott> There's something to deal with?
07:13:04 <elliott> There's something to deal with that you would be capable of dealing with?
07:13:17 <Vorpal> yes and yes
07:13:24 <elliott> What would that be?
07:13:49 <itidus20> the blackjack dealer
07:14:42 -!- sllide has joined.
07:14:54 <CakeProphet> itidus20: so something like 12-bar nano-stochastic lumberjack's swing.
07:15:24 <itidus20> it's a joke because of the word dealer used in another sense , and because of the implication that going off to gamble is a sign of not dealing with things very well
07:18:17 <Patashu> oh man you know what would be so awesome?
07:18:23 <zzo38> The various pictures I have sent to Jyte are missing there now. However, I still have copies of it in my computer
07:18:24 <Patashu> 3d minesweeper with a projection that lets you see every surface at once
07:18:26 <Patashu> like on maps of the world
07:19:07 <CakeProphet> wouldn't that be mostly like normal minesweeper but with a different shape?
07:19:24 <Patashu> 'different shape' changes a lot about how you play minesweeper
07:19:48 <fizzie> Different shape and presumably some wraparounding.
07:19:54 <Patashu> if a cell can have 7 or 9 or 11 adjacent to it instead of 8 you need new rules
07:20:15 <CakeProphet> still, saying it's a projection of a 3d surface doesn't really make it anything more than a different shape.
07:20:30 <itidus20> Patashu: ahh so like a continuous minesweeper surface.. some sort of torus?
07:20:34 <CakeProphet> Patashu: well if cells are squares then they would still have 8 adjacent ones...
07:20:42 <Patashu> http://www.software3d.com/Mines3D/index.php
07:20:43 <Patashu> This game
07:20:45 <Patashu> But change the perspective
07:21:02 <Patashu> CakeProphet, consider a cell in the corner of a cube and count the cells adjacent to it. I count 7, you?
07:21:29 <itidus20> Patashu: following your idea, what about minepsweeper played on a game of life that wraps around horizontally and vertically
07:21:35 <Patashu> been done too
07:21:42 <CakeProphet> Patashu: ah okay.
07:21:49 <Patashu> http://www.youtube.com/watch?v=7kVEdHSCwmg
07:23:45 <Patashu> the other thing I'd like for that program is, for the boards that have a hole in the middle, a hotkey to move your camera to the center looking outward
07:24:48 <CakeProphet> why does that when you could play a never-ending game of sierpinski's triangle minecraft.
07:27:57 <CakeProphet> surely someone has made minesweeper in minecraft...
07:28:25 <Patashu> http://www.youtube.com/results?search_query=minesweeper+minecraft&aq=f apparently so
07:28:38 -!- sllide has quit (Read error: Connection reset by peer).
07:29:20 <itidus20> can i assume you have all seen the minesweeper movie trailer
07:29:28 <Patashu> I have
07:29:34 <itidus20> right on
07:32:34 <itidus20> Why are you really here?
07:32:38 <elliott> dunno
07:32:40 <itidus20> I want to make this land safe!
07:32:42 <elliott> what
07:32:52 <itidus20> Why are you here soldier?
07:32:56 <itidus20> Because I'm bored!
07:33:01 <itidus20> Don't you ever forget that.
07:33:23 -!- aspect has left.
07:35:15 <elliott> you scared away aspect
07:35:27 <itidus20> http://www.youtube.com/watch?v=LHY8NKj3RKs
07:35:57 <CakeProphet> itidus20: so it's kind of like folk noise pop?
07:36:22 <itidus20> i'm fond of nirvana
07:36:38 <CakeProphet> that's not folk noise pop.
07:37:03 <itidus20> i like the music in the film pulp fiction
07:37:14 <itidus20> i don't know if that is the same thing as it's soundtrack
07:37:29 <CakeProphet> well the intro is surfer rock.
07:37:41 <CakeProphet> dude
07:37:42 <CakeProphet> surf metal
07:37:47 <CakeProphet> I'm going to start a surf metal band.
07:38:00 <itidus20> psha
07:38:04 <monqy> sour cereal band
07:38:58 <itidus20> i like ievan polkka
07:39:26 <CakeProphet> *distorted latin-influenced guitar licks with double bass pedals tapping out 32nd notes- GRRRRRRRRRRROOOOOOAAAAAAR.
07:39:28 <itidus20> oh uhmm
07:40:02 <itidus20> http://www.youtube.com/watch?v=CVAiGf-fku0
07:40:23 <itidus20> chances of anyone who clicks actually enjoying it are minimal.
07:43:17 <CakeProphet> *plays rapid palm muted licks while bending his vibrato arm while plugged into a maxed-out tremolo effect pedal* FEEEEEEL THE WAAAAVES ON YOUR SKIIIIIN. FEEEEEL THE SURF BLOOD IN YOUR VEEEEINS. UGH.
07:43:33 <CakeProphet> I have three arms.
07:45:56 <CakeProphet> all surf metal guitarists need a minimum of three hands.
07:46:20 <CakeProphet> it is suggested that drummers use all 8 limbs.
07:50:58 <elliott> fizzie: You never told me how awful Google markup is. :/
07:55:54 <elliott> ?hoogle Maybe a -> [a]
07:55:54 <lambdabot> Data.Maybe maybeToList :: Maybe a -> [a]
07:55:54 <lambdabot> Data.Foldable toList :: Foldable t => t a -> [a]
07:55:54 <lambdabot> Data.Maybe catMaybes :: [Maybe a] -> [a]
07:59:06 <elliott> fizzie: I suppose your Perl script used gd? :p
08:08:00 <fizzie> Yes, it did.
08:08:28 <fizzie> I anallllized only the thumbnail images, incidentally.
08:11:08 <elliott> *Main> head `fmap` (getSearchPage "hello world" >>= getThumbnails)
08:11:08 <elliott> [152,152,152,255]
08:11:12 <elliott> That looks a bit small, even for a thumbnail. :/
08:11:38 <elliott> I suppose I may have fucked up the parsing.
08:12:30 <elliott> How does one force wget to succeed? I want to see if what I'm getting back is an error pag.e
08:12:31 <elliott> page.
08:12:59 <elliott> It's going "oh, this is all http forbidden, I'm not downloading the error page".
08:15:43 <fizzie> Hrm; curl fetches the error pages by default, don't know about wget.
08:15:51 <elliott> I'll just use curl then. :p
08:17:33 <elliott> Hrm; it does indeed appear to be the correct search page that's downloaded.
08:18:41 <elliott> Aha, there we go.
08:18:44 <elliott> I just had to flush the file. :p
08:21:25 -!- nooga has joined.
08:23:56 <elliott> http://sprunge.us/BULB
08:23:59 <elliott> This sure is a thing.
08:24:03 <monqy> bulb
08:24:03 <elliott> fizzie: I blame you for this. :p
08:25:09 <elliott> I wonder if you can use the Google chart API to just give an image of a solid colour.
08:25:15 <CakeProphet> man Perl sure would be better for this.
08:25:25 <elliott> It would be nicer than fiddling around with SDL or whatever just to display a solid colour.
08:25:40 <elliott> CakeProphet: I am incredibly sceptical that Perl could do that in significantly fewer lines.
08:25:44 <elliott> Ignoring the imports which are a bit excessive.
08:26:20 -!- zzo38 has quit (Remote host closed the connection).
08:30:16 <CakeProphet> well it would involve either a lot of short regex or some shitty library
08:30:32 <CakeProphet> but would probably be fewer lines of code, I guess.
08:30:34 -!- ineiros has quit (Remote host closed the connection).
08:31:06 <CakeProphet> but I wasn't really talking about lines of code.
08:31:40 <CakeProphet> hmmm, dunno it's probably the same. What you save in terseness with Perl you lose in debugging.
08:32:53 <fizzie> http://chart.apis.google.com/chart?chs=200x200&cht=lc:nda&chf=bg,s,ff00bb <-- that's pretty close to a 200x200 square with that color only.
08:32:54 -!- Jafet has joined.
08:32:57 <elliott> http://chart.googleapis.com/chart?cht=p&chs=200x200&chf=bg,s,EFEFEF
08:33:06 <elliott> fizzie: If you use the pie chart, all the border things go away. :p
08:33:14 <elliott> This MAY be the ugliest hack ever.
08:33:20 <fizzie> So does the :nda suffix to a line chart.
08:33:40 <elliott> =p is fewer bytes. :p
08:36:39 <elliott> readImage :: FilePath -> IL (Array DIM3 Word8)Source
08:36:39 <elliott> Reads an image into an RGBA array. Indices are (row,column,color-channel).
08:36:42 <elliott> Oh, I just realised how horrific that API is.
08:36:48 <elliott> Colour channel as the third dimension. :-|
08:39:20 <fizzie> It sounds typicalish; MATLAB image-reading functions tend to return a [height]x[width]x[samples-per-pixel] 'matrix' too.
08:39:22 <elliott> > showIntAtBase
08:39:23 <lambdabot> Overlapping instances for GHC.Show.Show
08:39:23 <lambdabot> (a
08:39:23 <lambdabot> ...
08:39:25 <elliott> :t showIntAtBase
08:39:26 <lambdabot> forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String
08:39:46 <elliott> Bleh, I just want a padded hex. :/
08:39:55 <elliott> > ['0'..'F']
08:39:56 <lambdabot> "0123456789:;<=>?@ABCDEF"
08:40:00 <elliott> D'aww.
08:40:37 <elliott> > showIntAtBase 16 ("0123456789ABCDEF" !!) 99 ""
08:40:38 <lambdabot> "63"
08:40:43 <elliott> > showIntAtBase 16 ("0123456789ABCDEF" !!) 9 ""
08:40:44 <lambdabot> "9"
08:40:49 <fizzie> > showHex 99
08:40:50 <lambdabot> Overlapping instances for GHC.Show.Show
08:40:50 <lambdabot> (GHC.B...
08:40:59 <elliott> :t showHex
08:41:00 <lambdabot> forall a. (Integral a) => a -> String -> String
08:41:03 <elliott> "Oh."
08:41:05 <elliott> > showHex 99 ""
08:41:06 <lambdabot> "63"
08:41:06 <elliott> > showHex 90 ""
08:41:07 <lambdabot> "5a"
08:41:14 <elliott> Very well, then.
08:41:29 <fizzie> Right, it's one of those ShowSeses. Doesn't pad either, of course.
08:43:20 <fizzie> > printf "%02x" 15 :: String
08:43:21 <elliott> hex n = reverse . take 2 . reverse . ("0" ++) $ showHex n ""
08:43:21 <lambdabot> "0f"
08:43:22 <elliott> "Works."
08:43:27 <elliott> fizzie: printf is grosse.
08:43:31 <elliott> So unsafe. :/
08:43:51 <elliott> > printf "%02x" (print 99) () "hahaha" :: String
08:43:52 <lambdabot> No instances for (Text.Printf.PrintfArg (GHC.Types.IO ()),
08:43:52 <lambdabot> ...
08:44:00 <elliott> OK WELL _THAT_ WOULD FAIL WOULDN'T IT :P
08:44:06 <elliott> > printf "%02x" [99] () "hahaha" :: String
08:44:07 <lambdabot> No instance for (Text.Printf.PrintfArg ())
08:44:07 <lambdabot> arising from a use of `Text.P...
08:44:12 <elliott> > printf "%02x" [99] 99.999 "hahaha" :: String
08:44:13 <lambdabot> Ambiguous type variable `t' in the constraints:
08:44:13 <lambdabot> `GHC.Num.Num t'
08:44:13 <lambdabot> ari...
08:44:19 <elliott> > printf "%02x" [99::Int] (99.999 :: Float) "hahaha" :: String
08:44:20 <lambdabot> No instance for (Text.Printf.IsChar GHC.Types.Int)
08:44:20 <lambdabot> arising from a use of...
08:44:23 <elliott> Suicide.
08:44:33 <Deewiant> > printf "%02x" "foo" :: String
08:44:34 <lambdabot> "*Exception: Printf.printf: bad argument
08:44:38 <elliott> Thank you, sir.
08:45:48 <elliott> _ <-
08:45:49 <elliott> createProcess $
08:45:49 <elliott> (Process.proc "xdg-open" [chart ++ hex r ++ hex g ++ hex b]) {
08:45:49 <elliott> std_out = CreatePipe }
08:45:53 <elliott> What an ugly few lines. :/
08:46:12 <fizzie> > let p :: Int -> String; p = printf "%02x" in p 8
08:46:13 <lambdabot> "08"
08:46:13 <fizzie> > let p :: Int -> String; p = printf "%02x" in p "foo"
08:46:14 <lambdabot> Couldn't match expected type `GHC.Types.Int'
08:46:14 <lambdabot> against inferred type ...
08:46:21 <elliott> fizzie: IT'S NOT RIGHT TO EVEN _IMPORT_ SOMETHING THAT BAD
08:46:26 <Deewiant> You should totally use Pipe dude
08:46:27 <fizzie> Sure, sure. :p
08:46:34 <elliott> Deewiant: Mo dependencies mo problems
08:46:53 <fizzie> 99 problems but a Pipe ain't one.
08:46:59 <elliott> Yes. Exactly.
08:47:20 <Deewiant> It's less than 100 LOC :-P
08:47:56 <elliott> 100 lines of problem
08:48:07 <elliott> 100 lines of i mad.
08:49:26 <Vorpal> elliott: he said *less than*
08:49:42 <elliott> It'll be a hundred within the week.
08:49:47 <Vorpal> oh?
08:50:08 <elliott> I'll start depending on it and then find out it needs tons more features than it has and then eventually break down and write a patch myself.
08:50:14 -!- ineiros has joined.
08:50:47 <Vorpal> elliott: keep it simple and so on
08:50:59 <Vorpal> elliott: btw what are you trying to do?
08:51:10 <elliott> Recreate this thing fizzie had in the logs once. Except it's not quite Perl.
08:51:25 <elliott> Right now I'm at the exciting stage "wow, I totally don't know how HSV works".
08:51:28 <fizzie> Color name → RGB value via Google Image search.
08:51:56 <Vorpal> ah
08:52:54 <Vorpal> elliott: anyway I think I read somewhere that HSV -> RGB can be done with matrices. Or was it XYZ -> RGB maybe
08:53:00 <elliott> It's RGB -> HSV I want to do. :p
08:53:04 <elliott> Well, and the other way around, I suppose.
08:53:12 <elliott> http://hackage.haskell.org/package/colour Oh, this looks nice.
08:53:16 <Vorpal> well if you can do one with matrices then you could do the other I think
08:53:22 <Deewiant> Mo dependencies mo problems?
08:53:26 <elliott> Except it doesn't actually have HSV, oops.
08:53:33 <elliott> Deewiant: Mo having to understand colours mo problems
08:53:39 <Vorpal> elliott: http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB
08:53:39 <elliott> I understand process spawning
08:53:54 <fizzie> It's a bit messy conversion, I wouldn't be sure it's linear.
08:53:59 <Deewiant> http://hackage.haskell.org/packages/archive/colour/2.3.1/doc/html/Data-Colour-RGBSpace-HSV.html
08:54:04 <Deewiant> Is that not HSV?
08:54:06 <CakeProphet> http://www.cs.rit.edu/~ncs/color/t_convert.html
08:54:11 <Vorpal> fizzie: right, could have been XYZ -> HSV then maybe?
08:54:11 <CakeProphet> you're welcome.
08:54:18 <elliott> Deewiant: That might be HSV.
08:54:46 <CakeProphet> I mean, it's icky procedural code but I'm sure you can map it to functional code.
08:55:00 <fizzie> Vorpal: Or XYZ <-> RGB; they're sort of related.
08:55:01 <Vorpal> fizzie: right, it is XYZ<->RGB that is matrices
08:55:02 <Vorpal> yeah
08:55:20 <fizzie> I see the wikipage has the matrix and all.
08:55:36 <Vorpal> matrices are wonderful, there are so many cool things that you can do with them.
08:55:55 <itidus20> theres algos around on how to do RGB -> HSL
08:56:07 <itidus20> sorry i just don't like the term V
08:56:10 <elliott> Mo matrices mo problems.
08:56:18 <CakeProphet> itidus20: hey look I totally linked one
08:56:18 <itidus20> Luminance is so fitting
08:56:37 <fizzie> HSL != HSV, conventionally.
08:56:43 <itidus20> oh.. shit
08:56:53 <fizzie> They're very close though.
08:56:55 <itidus20> thanks for the protip fizzie
08:57:10 <elliott> instance Applicative RGB where
08:57:10 <elliott> pure c = RGB c c c
08:57:10 <elliott> (RGB fr fg fb) <*> (RGB r g b) = RGB (fr r) (fg g) (fb b)
08:57:12 <elliott> The most useful instance
08:57:17 <elliott> I have RGBs with function components ALL THE TIME
08:57:42 <CakeProphet> elliott: I mean... why wouldn't you?
08:58:24 <elliott> Deewiant: I like how it doesn't expose any way to go from RGB->HSV or HSV->RGB. :/
08:58:33 <elliott> I mean, it has an RGB type, but the only exposed constructor is from HSV.
08:58:34 <CakeProphet> elliott: see link make your own
08:58:42 <Deewiant> elliott: Um
08:58:47 <Deewiant> elliott: hsvView :: Rgb a -> (a,a,a)
08:58:53 <Deewiant> elliott: hsv :: a -> a -> a -> RGB a
08:58:59 <Deewiant> elliott: Modulo spelling and instances
08:59:18 <elliott> Deewiant: Yes, which will be id
08:59:22 <CakeProphet> you guys you can't take the remainder of the division of arbitrary words.
08:59:27 <CakeProphet> MODULO DOESN'T WORK LIKE THAT.
08:59:29 <elliott> Unless hsvView (hsv h s v) /= (h,s,v) which would be insane.
09:00:17 <Deewiant> It might be if they get normalized somehow in between and your initial values aren't
09:00:28 <Deewiant> E.g. your h is 360 instead of 0 or something
09:00:42 <Deewiant> But anyway, those two functions are exactly RGB->HSV and HSV->RGB
09:01:13 <shachaf> elliott: Why is one function using a tuple and the other not? How inconsistent.
09:01:16 <elliott> Deewiant: Yes, but /there are no exposed constructors for RGB/.
09:01:32 <elliott> The ONLY way to get an RGB is by converting it from HSV. The ONLY thing you can get out of an RGB is HSV values.
09:01:47 <CakeProphet> http://www.cs.rit.edu/~ncs/color/t_convert.html
09:01:48 <CakeProphet> http://www.cs.rit.edu/~ncs/color/t_convert.html
09:01:49 <CakeProphet> http://www.cs.rit.edu/~ncs/color/t_convert.html
09:01:54 <elliott> Prelude Data.Colour.RGBSpace.HSV> hsv 99 99 99
09:01:54 <elliott> RGB {channelRed = -6271.65, channelGreen = 99.0, channelBlue = -9702.0}
09:01:54 <elliott> Prelude Data.Colour.RGBSpace.HSV> channelRed (hsv 99 99 99)
09:01:54 <elliott> <interactive>:1:1: Not in scope: `channelRed'
09:02:00 <elliott> I suppose I could extract the data from "show"??????????
09:02:10 <Deewiant> read "RGB 1 2 3"
09:02:20 <elliott> Oh, that type is exported by Data.Colour.RGBSpace
09:02:21 <shachaf> elliott: Or just impor Data.Colour.RGBSpace?
09:02:21 <CakeProphet> you could just write these two very simple algorithms in Haskell.
09:02:29 <elliott> Which is conveniently not mentioned anywhere, and the module /source/ imports a different module
09:02:38 <elliott> Wooooooooooooooooo /waves a little American flag
09:02:47 <CakeProphet> god bless haskell america
09:03:19 <shachaf> elliott: :i is your friend.
09:03:35 * elliott continues waving a little American flag
09:03:55 <shachaf> You're not allowed to wave an American flag while working with a module named "colour".
09:04:01 <shachaf> I mean wourking.
09:04:15 <elliott> Now let's see if repa can go from (Array DIM3 Word8) to (Array DIM2 RGB) without, like, reallocating everything. (Probably: not.)
09:04:18 <elliott> Actually hmm.
09:04:32 <elliott> I should probably read my copied fizzie quotes on the actual algorithm to figure out whether I should even be doing that.
09:04:40 <CakeProphet> http://www.cs.rit.edu/~ncs/color/t_convert.html
09:04:46 * shachaf >>= undefined
09:04:54 <elliott> CakeProphet: Are you trying to be really irritating?
09:05:03 <elliott> shachaf: Is that, like, suicide?
09:05:03 <Vorpal> elliott: why not just convert it to a spectrum of wavelengths and then to HSV from there?
09:05:07 <elliott> God bless haskell america.
09:05:13 <elliott> Vorpal: A practical solution.
09:05:20 <Vorpal> elliott: absolutely!
09:05:38 <elliott> 22:34:39: <fizzie> GregorR: The statistics part was very very simple: it just converted all pixels to HSV, did separate histograms for H, S and V values, and interpolated the highest peak out of them histograms.
09:05:41 <Vorpal> elliott: anyway why do you need RGB <-> HSV?
09:05:41 <shachaf> elliott: Leaving the Internet for any period of time? Pretty much.
09:05:45 <elliott> Ah, histograms. The solution to every statistical problem.
09:05:53 <elliott> Vorpal: Because it's part of The Algorithm.
09:06:09 <fizzie> You don't really need to follow The Algorithm, though.
09:06:09 <Vorpal> elliott: the algorithm for what?
09:06:18 <elliott> fizzie: The Prophets demand it.
09:06:27 <Vorpal> fizzie: what algorithm?
09:06:35 <elliott> The Algorithm.
09:06:38 <CakeProphet> elliott: histogram = fromListWith (+) . (`zip` repeat 1)
09:06:47 <Vorpal> elliott: implementing some esolang?
09:06:58 <fizzie> Vorpal: The one to convert a set of images into a single RGB triplet.
09:07:05 <fizzie> (In some sort of meaningful way.)
09:07:17 <CakeProphet> elliott: can you do that w ith array thingies?
09:07:23 <Vorpal> fizzie: heh?
09:08:11 <fizzie> Vorpal: See, the whole point is to determine the color of "foo" from a hundred or so Google image search results for the word. So you need some way to classify the "most prominent" color of the whole set.
09:08:20 <Vorpal> ah
09:08:42 <elliott> :t find
09:08:43 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe a
09:09:16 <Vorpal> fizzie: idea: for each colour, count pixels with that colour, return the colour with most pixels?
09:09:44 <CakeProphet> elliott: hi am I /ignore'd
09:09:51 <Vorpal> sure, #fafafa and #fafafb for example would count as separate, so if you want to avoid that, maybe
09:10:07 <fizzie> Vorpal: That's certainly one way, but the whole 256*256*256-color RGB space will be rather sparsely populated by thumbnail-sized images.
09:10:11 <elliott> CakeProphet: yes
09:10:26 <Vorpal> fizzie: well yes, you could download the originals?
09:11:09 <fizzie> Vorpal: Sure, but that's annoying; it tends to run into all kinds of referer-checks and currently-down servers and whatnot. At least the thumbnails are always available.
09:11:11 <elliott> ?pl \x -> fmap f (g x)
09:11:12 <lambdabot> fmap f . g
09:11:16 <Vorpal> true
09:11:22 <CakeProphet> elliott: I will stop trying to help then.
09:11:24 <CakeProphet> good night.
09:11:30 <Deewiant> f .: g
09:13:27 <fizzie> Vorpal: Anyhow, what I did was to pick the most common H, S and V values for each image separately for each channel, and then take the weighted average over images, with weights derived from the standard deviation of hue, so that "single-colour" images (in some sense) got more weight.
09:15:18 <Vorpal> fizzie: ah
09:15:27 <elliott> fizzie: You lied, that's much more complicated than what you describe in this log. :p
09:15:54 <fizzie> elliott: Possibly I describe only the "color of a single image" case.
09:16:57 <elliott> nextPageURI :: [Tag ByteString] -> Maybe URI
09:16:57 <elliott> nextPageURI =
09:16:57 <elliott> find isNextPageURI >=>
09:16:57 <elliott> URI.parseURI . ("http://www.google.com" ++) . B8.unpack . fromAttrib "href"
09:16:57 <elliott> where isNextPageURI link@(TagOpen _ _) = fromAttrib "id" link == "pnnext"
09:16:57 <elliott> isNextPageURI _ = False
09:16:59 <elliott> This could be prettier. :/
09:17:08 <fizzie> If you want the details, for a standard deviation of hue (in degrees) of S, the corresponding weight W(S) = { 1 if S < 10; 0.02 if S > 50; linearly interpolated if 10 <= S <= 50 }. (Parameters selected using the Stetson-Harrison method.)
09:17:09 <elliott> fizzie: You literally just say
09:17:09 <elliott> 22:34:39: <fizzie> GregorR: The statistics part was very very simple: it just converted all pixels to HSV, did separate histograms for H, S and V values, and interpolated the highest peak out of them histograms.
09:17:19 <fizzie> Yes, well, that's for one image.
09:17:25 <elliott> Yes. Pah :P
09:17:32 <elliott> Well, I need to concentrate on actually getting a hundred thumbnails first.
09:17:38 <Vorpal> yay histograms
09:19:39 <fizzie> Incidentally, I think the newer MATLAB-dumping code was in order to fine-tune those parameters; I seem to have found a couple of color name lists (rgb.txt and some others), and I vaguely think I was going to use those as known targets to tune the color selection.
09:19:51 <fizzie> Possibly I never got around to it.
09:20:06 <fizzie> The rgb.txt names are somewhat nonsensical anyway.
09:20:58 <Vorpal> fizzie: rgb.txt?
09:21:22 <fizzie> The X11 color name list.
09:21:24 <Vorpal> ah
09:21:58 <Vorpal> yeah those tend to be nonsensical beyond the basic colours iirc.
09:22:32 <fizzie> 0,47,167,international klein blue
09:22:32 <fizzie> 255,79,0,international orange
09:22:36 <fizzie> Heh.
09:22:45 <Vorpal> 190 190 190gray
09:22:45 <Vorpal> 190 190 190grey
09:22:45 <Vorpal> 211 211 211light grey
09:22:45 <Vorpal> 211 211 211LightGrey
09:22:45 <Vorpal> 211 211 211light gray
09:22:46 <Vorpal> 211 211 211LightGray
09:23:01 <fizzie> It also has spelling variants, sure; and those numbered darker variants.
09:23:06 <elliott> 22:37:05: <fizzie> Hahah, I still have a ~/.gcolor/ directory which has 100 megabytes of them thumbnails -- I was trying to make it better by fetching various lists of defined colors (wikipedia color names, X11 rgb.txt) and using that for training data, so I wanted a local cache of the images.
09:23:12 <elliott> An remembering blast from the past courtesy past fizzie.
09:23:15 <Vorpal> 252 252 252 gray99
09:23:15 <Vorpal> 252 252 252 grey99
09:23:15 <Vorpal> 255 255 255 gray100
09:23:15 <Vorpal> 255 255 255 grey100
09:23:33 <fizzie> elliott: Ooh, I seem to have remembered right, then.
09:23:47 <fizzie> ~/.gcolor is gone now, though.
09:24:18 <elliott> http://sprunge.us/KiUL ;; Well, it's progress.
09:24:30 <elliott> It can now get the correct number of thumbnails for a given query, as (RGB) image arrays. :p
09:24:35 <Vorpal> <fizzie> 255,79,0,international orange <-- can't find that, which rgb.txt did you get that from?
09:24:42 <elliott> Oops, except I forgot to s/100/pics/ in one place.
09:25:10 <fizzie> Vorpal: Like I said, there were multiple sources. Those are from "colors.wikipedia.txt", I don't recall how I collected those.
09:25:18 <Vorpal> ah
09:25:26 <fizzie> http://en.wikipedia.org/wiki/List_of_colors maybe?
09:25:33 <fizzie> Yes, probably.
09:25:51 <fizzie> I'm not sure what's so international about that orange.
09:26:16 <fizzie> "Non-photo blue".
09:26:17 <elliott> fizzie: So how long is your Perl stuff? :P
09:26:24 <elliott> The one that actually worked, I mean.
09:26:26 <elliott> Not that MATLAB stuff.
09:26:27 <fizzie> Long.
09:26:46 <elliott> A specific answer indeed.
09:27:12 <fizzie> Almost 300 lines in all.
09:27:29 <elliott> Hokay, so I guess I want (Image -> RGB Word8) now.
09:27:42 -!- derdon has joined.
09:27:43 <elliott> fizzie: Aww, mine might actually end up longer, then.
09:28:30 <elliott> I wonder what I should do with that pesky alpha channel.
09:28:32 <elliott> Probably just ignore it.
09:28:49 -!- augur has quit (Remote host closed the connection).
09:28:51 <Patashu> leave it alone
09:32:11 <Vorpal> elliott: maybe ignore completely transparent pixels at least? Since those probably aren't part of the "image as such".
09:32:59 <elliott> Vorpal: Tooo much work.
09:33:06 <elliott> At least for now. :p
09:34:09 <elliott> No instance for (R.Elt (RGB Word8))
09:34:09 <elliott> arising from a use of `show'
09:34:10 <elliott> Augh
09:34:17 <elliott> repaaaaaaaaaaaaaaaaaaaaaaaaaaaa
09:35:29 * elliott just stores arrays of triplse instead
09:35:32 <elliott> GHETTO.
09:35:35 <elliott> s/triplse/triples/
09:39:19 <Vorpal> elliott: store it as (array of R, array of G, array of B)
09:39:46 <elliott> Vorpal: No, that's awful.
09:39:51 <Vorpal> right
09:39:53 <Vorpal> bbiab
09:40:29 <elliott> ?hoogle uncurry3
09:40:30 <lambdabot> No results found
09:40:59 <elliott> imageToHSV :: Image -> HSVImage
09:41:00 <elliott> imageToHSV (Image img) = HSVImage (R.map f img)
09:41:00 <elliott> where f = word . hsvView . (\(r,g,b) -> RGB r g b) . double
09:41:00 <elliott> double :: (Word8,Word8,Word8) -> (Double,Double,Double)
09:41:00 <elliott> double (r,g,b) = (fromIntegral r, fromIntegral g, fromIntegral b)
09:41:00 <elliott> word :: (Double,Double,Double) -> (Word8,Word8,Word8)
09:41:04 <elliott> word (h,s,v) = (round h, round s, round v)
09:41:08 <elliott> fizzie: Behold the ELEGANCE OF HASKELL.
09:43:22 <fizzie> How very.
09:43:23 <elliott> HASKELLEGANCE.
09:44:01 <elliott> I'm kind of way to write the (HSVImage -> RGB Word8) enflattener right now, so it shall SIT AND MATURE.
09:44:14 <elliott> But I shall be back to you very soon, dear code.
09:44:19 <elliott> s/way to/way too lazy to/
09:47:36 -!- augur has joined.
09:49:58 <Vorpal> elliott: new idea: store it as bitplanes for each colour, like [[(R1,G1,B1),...],[(R2,G2,B2),...],...]
09:51:00 <Vorpal> so the first "bitplane" contains the first bit of each colour, the second "bitplane" the second bit of each colour and so on
09:52:37 <elliott> fizzie: It's too bad the whole thing is so ridiculously IO-bound, or I'd TOTALLY thrash you in the benchmarks.
09:52:52 <elliott> (Also the "actually works with Google's current page" marks, which might be more important depending on your POV.)
10:00:01 <Vorpal> elliott: I guess it would even be pointless to download in the background of processing?
10:00:11 <elliott> Vorpal: Yes.
10:02:23 <elliott> Maybe I should just take the mean H, mean S, and mean V rather than bothering with, you know, all that fizzie magic. (My laziness cannot even be quantified.)
10:02:25 -!- ineiros has quit (Remote host closed the connection).
10:04:30 <Vorpal> not sure mean of those is all that useful though
10:05:14 <fizzie> At least for hue the regular mean is rather senseless, esp. for red images that straddle the 0/360 boundary.
10:06:11 <fizzie> For the other two the mean value could be something reasonable.
10:07:07 <elliott> fizzie can't even BEGIN to comprehend how lazy I am.
10:07:57 <fizzie> You do get a color our of it in any case, so in that sense it could work.
10:09:13 <elliott> [RGB {channelRed = 2.1418661116892126e-2, channelGreen = 2.122740927004503e-2, channelBlue = 2.122735673820327e-2},RGB {channelRed = 1.3108320251177395e-2, channelGreen = 1.2870692910211269e-2, channelBlue = 1.2870641916952748e-2},
10:09:21 <elliott> I... suspect something is going wrong.
10:10:17 <fizzie> Sounds quite black.
10:10:21 <elliott> Unless "hello world" really is just the blackest concept.
10:10:43 <Vorpal> it is so dark and grim you can't even begin to imagine
10:10:52 <fizzie> GRIMDARK.
10:11:02 <Vorpal> fizzie: where is that from now again?
10:11:13 <Deewiant> WH40K
10:11:17 <Vorpal> ah right
10:11:29 <Vorpal> wasn't there a gamed based on WH40K recently?
10:11:37 <Vorpal> computer game I meant
10:11:45 <Deewiant> Yes, and even more depending on what you mean by "recently"
10:11:57 <Vorpal> Deewiant: like, last 6 months.
10:12:09 <fizzie> One reasonable approach for the image->color case could be to take the mean (possibly in the RGB space, it doesn't have the hue discontinuity problem) of the most likely Gaussian distribution to have yielded the image pixels, considering each pixel as an independent sample.
10:12:30 <Deewiant> I think the second expansion to Dawn of War II came out within the last 6 months
10:12:32 <fizzie> Wait, that'd just be the mean. Never mind.
10:12:39 <Deewiant> Space Marine came out like a few weeks ago
10:12:48 <elliott> In the grim dark hello world there is only black.
10:12:58 <elliott> `addquote <fizzie> One reasonable approach for the image->color case could be to take the mean (possibly in the RGB space, it doesn't have the hue discontinuity problem) of the most likely Gaussian distribution to have yielded the image pixels, considering each pixel as an independent sample. <fizzie> Wait, that'd just be the mean. Never mind.
10:12:58 <Vorpal> Deewiant: ah yes I meant "space marine"
10:13:00 <HackEgo> 667) <fizzie> One reasonable approach for the image->color case could be to take the mean (possibly in the RGB space, it doesn't have the hue discontinuity problem) of the most likely Gaussian distribution to have yielded the image pixels, considering each pixel as an independent sample. <fizzie> Wait, that'd just be the mean. Never mind.
10:13:15 <fizzie> "You slip into the fabled blackdeath trance of the woegothics, quaking all the while in the bloodeldritch throes of the broodfester tongues. You advise the members of your Complacency not to be ala
10:13:15 <fizzie> rmed, as they chronicle the event in tomes bound in the tanned, writhing flesh of a tortured hellscholar, with runes stroked in the black tears bled from the corruption-weary eyes of fifty thousand imaginary occultists.
10:13:17 <elliott> Thank god mathematics exists to give us more and more complicated ways of defining the mean.
10:13:20 <fizzie> But they fail to not be alarmed.
10:13:21 <fizzie> This is because, as is now painfully obvious to anyone with a brain, you have basically gone completely off the deep end in every way.
10:13:25 <fizzie> You have officially gone grimdark."
10:13:30 <elliott> Oh no, I interrupted the quote.
10:13:42 <Deewiant> OH NO
10:13:44 <Vorpal> fizzie: that sounds lovecraftian
10:13:47 <fizzie> I managed to put a newline in the middle of "alarmed", so it was ruined anyhow.
10:14:00 * elliott weeps a tear for the newline.
10:14:03 <elliott> A tear for the newline, wept.
10:14:15 <fizzie> I don't think "as is now painfully obvious to anyone with a brain" sounds especially Lovecraftian.
10:14:39 <elliott> Also "basically gone completely off the deep end in every way".
10:14:48 <elliott> Then this Cthulhu dude came and everyone went WACK.
10:14:59 <elliott> It was, like, totally insane. Freakin' monster.
10:15:31 <Vorpal> fizzie: I meant the bit before
10:15:58 <elliott> I like how Vorpal devoted sixteen hours of his life to reading something he then promptly forgot and never picked up again.
10:16:13 <elliott> Would that we all learned to manage time and memory in such a garbage-collection-friendly manner.
10:16:15 <Vorpal> elliott: what do you refer to?
10:16:28 <fizzie> Vorpal: It's from the stuckhome.
10:16:36 <Vorpal> fizzie: oh right
10:16:47 <Vorpal> anyway, bbl university
10:17:27 <elliott> It occurs to me that maybe my imageToHSV isn't quite right.
10:17:58 <elliott> Specifically
10:18:03 <elliott> where f = word . hsvView . (\(r,g,b) -> RGB r g b) . double
10:18:06 <elliott> That truncation might be a bit iffy.
10:18:11 <fizzie> Anyway, maybe a GMM and then pick the mean of the highest-weight Gaussian, how would that sound like? It's almost like a soft clustering thing then.
10:18:42 <elliott> I should probably learn what HSV values tend to actually look like.
10:18:50 <elliott> I'm not a, you know, colour person.
10:19:24 <fizzie> It's not entirely well-established. The S and L components are often either [0, 1] or [0, 100] or [0, 255], while the H tends to be [0, 360].
10:19:34 <elliott> I should probably: check.
10:19:39 <fizzie> Or [0, 360) maybe.
10:20:18 <elliott> (126,1,62),(127,1,78),(131,0,119),(131,0,132),(129,1,57),(128,1,82),(126,0,112),(123,1,82),(116,1,97),(112,1,70),(110,1,76),(114,1,64),(126,1,79),(130,1,52),(125,1,46),(120,1,43),(120,1,18),(120,1,36),(112,0,125),(120,1,33),(120,1,51),(122,0,118),(120,1,39),(124,1,42),(126,0,74),(128,1,32),(120,1,8),(120,1,13),(120,1,25),(113,1,98),(117,1,54),(119,1,80),(120,1,67),(120,1,69),(116,1,46),(120,1,20),(106,
10:20:18 <elliott> 1,34),(100,1,54),(120,1,21),(102,1,68),(110,0,96),(120,1,19),(122,1,57),(123,1,100),(116,1,68),(117,0,95),(124,0,86),(120,1,41),(128,0,102),(128,0,106),(120,1,19),(124,1,44),(118,1,42),(120,1,21),(120,1,32),(120,1,16),(120,1,16),(120,1,24),(120,1,18),(120,1,20),(120,1,12),(120,1,22),(120,1,10),(120,1,11),(120,1,9),(120,1,11),(118,1,25),(120,1,11),(120,1,22),(120,1,14),(120,1,16),(120,1,22),(133,1,64),(
10:20:19 <elliott> 130,1,43),(133,0,107),(132,0,100),(127,1,41),(128,1,77),(128,0,92),(122,1,39),(12
10:20:31 <elliott> Uh.
10:20:38 <elliott> Is my S on a different scale to my V?
10:21:05 <fizzie> It certainly looks rather binary.
10:21:05 <elliott> (Also was it HSL or HSV you actually used, anyway? Da Log says HSV, but you know what past you is like.)
10:21:16 <elliott> fizzie: Well, it's post-perhaps-unclever-truncation.
10:21:18 <fizzie> HSV probably, though it doesn't really matter all that much.
10:21:28 * elliott makes HSVImages Double-componente.
10:21:29 * elliott makes HSVImages Double-componented.
10:23:02 <fizzie> It's also possible that your hsvView expects to get an RGB constructed from [0,1]-ranged values, while whatever you use for reading the image returns integers in the [0, 255] range.
10:23:26 <elliott> RGB {channelRed = 12, channelGreen = 57, channelBlue = 16},RGB {channelRed = 123, channelGreen = 122, channelBlue = 78},RGB {channelRed = 71, channelGreen = 95, channelBlue = 100},RGB {channelRed = 225, channelGreen = 227, channelBlue = 207},RGB {channelRed = 73, channelGreen = 181, channelBlue = 154},RGB {channelRed = 128, channelGreen = 123, channelBlue = 120},RGB {channelRed = 168, channelGreen = 17
10:23:26 <elliott> 9, channelBlue = 165},RGB {channelRed = 38, channelGreen = 73, channelBlue = 46},RGB {channelRed = 11, channelGreen = 17, channelBlue = 9},RGB {channelRed = 229, channelGreen = 237, channelBlue = 225},RGB {channelRed = 92, channelGreen = 117, channelBlue = 112},RGB {channelRed = 31, channelGreen = 32, channelBlue = 18},RGB {channelRed = 234, channelGreen = 244, channelBlue = 233},RGB {channelRed = 120,
10:23:27 <elliott> channelGreen = 133, channelBlue = 63}
10:23:34 <elliott> Eliminating the rounding seems to make everything 0kay.
10:23:45 <elliott> Though of course that's still the ridiculous "mean of H, S, V" method.
10:31:50 -!- ais523 has joined.
10:31:56 <elliott> hi ais523
10:32:33 -!- Phantom_Hoover has joined.
10:33:56 <elliott> hi Phantom_Hoover
10:34:52 <ais523> hi people who need hi saying to them
10:35:18 <elliott> hi
10:36:08 <Phantom_Hoover> hi ho, hi ho,
10:36:10 <monqy> hi
10:36:15 <elliott> hi
10:36:37 <Phantom_Hoover> monqy, so when are we doing that staring collaboration.
10:36:46 <fizzie> Hisayers are like a more positive breed of naysayers.
10:37:24 <monqy> all the time
10:37:30 <elliott> it's a lovely word, hi
10:37:31 <elliott> really lovely
10:37:37 <elliott> definitely, one of my top words
10:37:38 <elliott> in terms of
10:37:40 <elliott> words that i like
10:37:51 <monqy> hi is a Good Word
10:38:00 <elliott> hi
10:38:07 <monqy> hi
10:38:53 <elliott> hi
10:42:02 <Phantom_Hoover> elliott, what are other words that you like?
10:42:08 <Phantom_Hoover> 'Rabbit'?
10:44:08 <elliott> hi rabbit
10:52:12 -!- ais523 has quit (Read error: Connection reset by peer).
10:53:02 -!- ais523 has joined.
11:08:29 -!- derdon has quit (Remote host closed the connection).
11:11:42 <Phantom_Hoover> "The safest way through Mogadishu is escorted by Ethiopian and official Somalian troops, or African Union peacekeeping forces;"
11:11:45 <Phantom_Hoover> Best holiday.
11:17:56 <elliott> <ais523> [genuine concern]
11:18:44 <ais523> elliott: at what?
11:18:51 <elliott> <Phantom_Hoover> "The safest way through Mogadishu is escorted by Ethiopian and official Somalian troops, or African Union peacekeeping forces;"
11:18:51 <elliott> <Phantom_Hoover> Best holiday.
11:18:56 <ais523> ah, I see
11:19:24 <elliott> Something along the lines of "please don't go on holiday there".
11:19:55 <elliott> Where's oerjan when you need to complain to him about a deficiency in the Haskell report?
11:22:21 <elliott> ais523: can I have an asterisk?
11:22:34 <Phantom_Hoover> *
11:22:36 <ais523> *
11:22:39 <elliott> thanks
11:22:46 <elliott> would anyone like to buy an asterisk? I have one spare
11:23:01 <fizzie> Here, have three: ⁂
11:23:33 <fizzie> Any copy-paste systems around that could select a single asterisk of an asterism?
11:23:55 -!- FireFly has joined.
11:23:59 <ais523> probably not
11:26:18 <elliott> darn, I don't think zippers are monads
11:27:29 <elliott> perhaps not even applicatives
11:36:01 <Phantom_Hoover> Zippers are the things that tell you where stuff is, right/
11:36:28 <elliott> deep
11:36:46 <Phantom_Hoover> Where are we all, man?
11:37:07 <elliott> deep
11:39:29 <Phantom_Hoover> We're all just specks in that great zipper of the universe.
11:39:50 <elliott> What _are_ zippers, really?
11:39:55 <elliott> And what _is_ life?
11:40:17 <Phantom_Hoover> Life is an algebraic data structure, duh.
11:41:05 <elliott> Thanks, Conway.
11:41:36 <monqy> I think I remember reading something about zippers and comonads? I forget what or where it was.
11:41:36 <Phantom_Hoover> Hashlife is the key to existence.
11:41:56 <Phantom_Hoover> Comonads are monads the other way round, then?
11:42:27 <Phantom_Hoover> They are the least confusing thing ever, and tutorials on them are so scarce as to be nearly nonexistent.
11:42:32 <elliott> ?unmtl StaetT s Cont
11:42:32 <lambdabot> StaetT s Cont
11:42:39 <elliott> ?unmtl StateT s Cont
11:42:39 <lambdabot> err: `StateT s Cont' is not applied to enough arguments.
11:42:42 <elliott> ?unmtl StateT s Cont a
11:42:42 <lambdabot> err: `Cont (a, s)' is not applied to enough arguments, giving `/\A. (A -> (a, s)) -> (a, s)'
11:42:46 <elliott> ?unmtl StateT s (Cont r) a
11:42:47 <lambdabot> s -> (a -> s -> r) -> r
11:42:55 <elliott> ?unmtl ContT r (StateT s) a
11:42:55 <lambdabot> err: `StateT s r' is not applied to enough arguments, giving `/\A. s -> r (A, s)'
11:43:01 <elliott> >_<
11:43:03 <elliott> ?unmtl ContT r (State s) a
11:43:03 <lambdabot> (a -> s -> (r, s)) -> s -> (r, s)
11:53:25 * Phantom_Hoover → Ireland
11:53:27 -!- Phantom_Hoover has quit (Quit: Leaving).
11:58:45 -!- oerjan has joined.
11:59:13 <elliott> hi oerjan
11:59:19 <oerjan> hi elliott
11:59:36 <elliott> hi oerjan
11:59:51 * oerjan swats elliott -----###
11:59:56 <elliott> :'(
12:00:01 <oerjan> i mean hi
12:00:28 <elliott> :'(
12:01:28 <elliott> :t M.insertWith
12:01:29 <lambdabot> forall a k. (Ord k) => (a -> a -> a) -> k -> a -> M.Map k a -> M.Map k a
12:01:32 <oerjan> the beatings will continue until morale improves
12:01:39 <elliott> :'(
12:01:45 <elliott> im not going to stop the cry
12:03:16 <oerjan> <elliott> 10:03:57: <oerjan> ^bf --[>-<-------]>+.----.+.+++.+.-.---.
12:03:31 <oerjan> that looks distinctively short for oklopol
12:03:52 <oerjan> !bf --[>-<-------]>+.----.+.+++.+.-.---.
12:03:53 <EgoBot> oklopol
12:04:06 <oerjan> oh hm it's using wrapping
12:04:41 <oerjan> division by 7, bf_txtgen doesn't do that sort of thing
12:06:05 <oerjan> so basically it just starts with the optimal 'o', then adjusts that
12:06:57 -!- ineiros has joined.
12:07:02 <elliott> okokokokok
12:07:04 <elliott> kokokoko
12:07:06 <elliott> kpkps
12:07:09 <elliott> oklopol: im fail
12:09:17 <elliott> primitive ptr_to_int "unsafePtrToInt" :: a -> Int
12:09:17 <elliott> bothtruth2:: Bool -> Bool -> Bool
12:09:17 <elliott> bothtruth2 a b = a `seq` b `seq` (ptr_to_int a - ptr_to_int False) +
12:09:17 <elliott> (ptr_to_int b - ptr_to_int False) ==
12:09:17 <elliott> 2*(ptr_to_int True - ptr_to_int False)
12:09:18 <elliott> hi oerjan
12:10:19 <oerjan> <elliott> Where's oerjan when you need to complain to him about a deficiency in the Haskell report?
12:10:22 <oerjan> slepping
12:10:52 <elliott> YOU'RE a slep
12:12:14 <monqy> im a slep
12:12:17 -!- monqy has quit (Quit: hello).
12:12:54 <elliott> rip monqy "a slep"
12:14:45 <elliott> why can't every OS have @'s IO system :(
12:14:59 -!- oerjan has quit (Quit: Help I'm abducted by the reboot mafia).
12:18:18 <elliott> ais523: you missed a spam link
12:18:23 <elliott> in WLaquitaCuevasa
12:18:34 <ais523> go fix it for me, if you want the page around so much
12:18:41 <elliott> I'm doing so
12:18:43 <elliott> I was just letting you know
12:18:58 <elliott> oh, hmm, actually you didn't
12:19:04 <ais523> why do you like the page, btw? because it's almost ontopic?
12:19:14 <elliott> because it's amazing
12:19:19 <elliott> "However, some builders of Python and other languages disrespect PHP developers and deal with us like children of a lesser God. I have previously witnessed some Python developers particularly engaging in dislike speech towards PHP builders, in all probability because they do not have an understanding of why PHP received so well-known."
12:19:28 <elliott> i want to know who wrote this pro-php rant
12:19:44 <elliott> and also, who thought it'd be helpful for spam in any way whatsoever
12:19:49 <ais523> I think it's the same spambot that was spamming Google
12:19:57 <ais523> as in, "Google is a search engine http://google.com"
12:20:01 <ais523> not exactly like that, but close
12:20:04 <elliott> useful information
12:20:35 -!- oerjan has joined.
12:21:53 <elliott> helo oerjan
12:21:59 <oerjan> ehlo elliott
12:22:39 -!- Jafet has quit (Ping timeout: 276 seconds).
12:23:11 <elliott> I should read up on how GHC's event manager thing works, I wonder how similar it is to @ IO
12:24:30 -!- derdon has joined.
12:25:04 <oerjan> that would depend how much you steal from it, i think
12:25:29 <fizzie> oerjan: You might consider only using the EHLO verb if the greeting included the "ESMTP" string, that way you won't hit so many problems with old-fashioned IRCers that don't understand it.
12:25:42 <oerjan> fizzie: ah.
12:26:14 <oerjan> i don't think elliott counts as an old-fashioned IRCer, anyhow
12:26:37 <elliott> hi
12:26:42 <oerjan> de ho
12:26:57 -!- derdon has quit (Remote host closed the connection).
12:27:38 <fizzie> oerjan: Well, he didn't list the extensions he supported after your EHLO. Though I suppose it could be he only implements the mandatory commands.
12:28:07 <oerjan> ic
12:28:28 <elliott> whats a really dumb mail server that doesnt know a lot and forgets messages a lot, im that mails erver
12:29:19 <fizzie> If you were often infested by worms, I'd say Sendmail.
12:29:23 <elliott> o
12:30:42 <fizzie> Maybe "has opinions and is not afraid to share them" qmail could fit.
12:31:04 <ais523> elliott: cat
12:31:13 <ais523> admittedly, it's not very good as a mailserver at all
12:31:26 <ais523> but it succeeds at "really dumb", "doesn't know a lot", and "forgets messages a lot"
12:31:31 <elliott> i like cats
12:31:57 <fizzie> "cat --herd" should do something.
12:32:07 <elliott> implementing lambda without lambda is a difficult :(
12:32:41 <fizzie> Uh, GNU cat accepts the options AbeEnstTuv. That's a lot of options for a cat.
12:32:42 <ais523> elliott: you're getting dangerously close to my current Feather problem there
12:33:12 <elliott> cat --meow
12:33:21 <elliott> ais523: well, I think I've managed to do it
12:33:39 <ais523> what did you implement it in terms of?
12:34:11 <elliott> vau, if, eq?, quote, (), cons, car, cdr, eval
12:35:06 <elliott> hmm... you could eliminate quote if you made () self-evaluating :)
12:35:17 <ais523> what does vau do again?
12:35:19 <oerjan> they should expand to Abel Ernst Tuv so that it sounds like a norwegian name
12:35:59 <elliott> ais523: construct fexprs; they're like functions, but they receive their arguments as code, not evaluated
12:36:09 <elliott> or, in other words, a function is an fexpr that receives all its arguments pre-evaluated
12:36:22 <ais523> aha, so it's a generalisation on top of call by name
12:36:41 <elliott> it's similar; you can't deconstruct the ast of your argument in most call-by-name languages, though :)
12:36:45 <ais523> because as well as evaluating 0, 1 or more times, you can choose to do other things instead
12:36:51 <fizzie> oerjan: Unfortunately it would then be AbeElnrstTuv, because they insist on alphabetical order.
12:36:53 <elliott> and with vau you have to explicitly eval, it's never "implicit"
12:36:57 <elliott> although that's more of a library thing
12:37:00 <oerjan> um call by name preserves scoping, doesn't it, which is more than passing things unevaluated...
12:37:29 <elliott> well, vau is hygienic by default in kernel
12:37:32 <oerjan> aha
12:37:38 <elliott> it gets an environment parameter
12:37:50 <elliott> obviously you can break the hygiene since you can evaluate anything in the environment
12:37:55 <elliott> but it doesn't just throw away the scope
12:38:00 <elliott> I think you can make it unbreakably hygienic
12:38:27 <elliott> but I'm not sure that pays off
12:38:50 <elliott> ais523: wow, the IE in Windows 8 isn't going to support plugins
12:39:10 <ais523> does IE9 in Windows 7 support plugins? IIRC yes but hardly anyone uses them
12:39:13 <elliott> well, the Metro IE, but afaict Microsoft wants absolutely everyone to use Metro (it's that tablet-esque UI)
12:39:27 <elliott> ais523: Yes, absolutely nobody uses Adobe Flash or Acrobat Reader.
12:39:32 <elliott> Oh, wait, sorry, no, everyone does.
12:39:37 <ais523> oh right, that sort of plugin
12:39:42 <ais523> I thought you meant add-on, Firefox-style
12:39:45 <elliott> ah
12:39:59 <ais523> to be fair, Acrobat works just as well outside the browser as inside, and arguably better
12:40:11 <elliott> Acrobat works terribly everywhere, but that's not really the point :P
12:40:13 <ais523> the keyboard controls are much clearer as you don't have two programs competing with each other
12:40:17 * elliott wonders if Microsoft are deliberately trying to annoy as many people as possible
12:40:41 <ais523> the thing that amuses me about Metro is that Microsoft have seen Ubuntu going down the path of a UI everyone hates, and decided to copy it
12:40:42 <elliott> I mean, they just disabled Adobe's two most popular products
12:40:52 <ais523> not completely, but the same sort of idea
12:40:57 <fizzie> Our local Ubuntu installation has changed so that PDFs now open inside the browser; it works for one (1) PDF, after that it only opens a blank window.
12:40:58 <oerjan> it is somewhat annoying that ^W doesn't work inside the reader
12:42:32 <ais523> Flash is mostly used for video nowadays, rather than its original intended purpose
12:42:59 <ais523> so I suppose that replacing that with HTML5 could work, but IIRC Microsoft's implementation of HTML5 video is incompatible with other browsers' due to an argument over standards
12:43:02 <elliott> Damn that PH going off to Ireland, I can't contract him for hire to write my Haskell for me now.
12:43:23 * ais523 vaguely considers a "take that back!" comment
12:43:29 <fizzie> I still see flash-for-navigation-and-content-and-everything sites here and there.
12:43:30 <ais523> but I think we came to an agreement about that already
12:43:33 <elliott> ais523 is going to call this excessive, but it is very much deserved.
12:43:38 <elliott> Aww, too slow.
12:43:48 <elliott> Sorry PH I take it back your damnation is undone.
12:43:54 <elliott> You will instead go to puppy heaven.
12:44:03 <fizzie> Why was my first, immediate thought after "Damn that PH going off to Ireland, I can't contract him for hire to" that "oh, it's about an assassination"?
12:44:04 <ais523> fizzie: I don't, mostly because I literally wouldn't notice
12:44:26 <elliott> fizzie: Well, it /is/ me.
12:44:38 <fizzie> ais523: I've had the occasion to browse websites of hotels; quite many of those are, with no fallbacks.
12:44:42 <ais523> the name "Scots" comes from an Irish tribe
12:44:49 <ais523> fizzie: how bizarre
12:45:13 <ais523> normally when I come across a site like that, I just think "it's broken", and possibly enable JS experimentally if I really care badly about viewing the site
12:46:43 <ais523> I suppose I should make a list of what HTML features I consider as "generally makes a website look nicer/easier to read" and "generally annoys me"
12:46:53 <ais523> I think even <img> is sort-of on the borderline ther
12:46:55 <ais523> *there
12:47:04 <ais523> seeing images is important on many sites, but I don't like the unnecessary overuse of them
12:47:15 <ais523> on most webforums, I use AdBlock Plus to block avatars
12:47:29 -!- MSleep has changed nick to MDude.
12:47:34 <elliott> most forums let you disable display of avatars natively
12:47:50 <ais523> that requires having an account there
12:48:09 <elliott> not necessarily, you could just steal one
12:48:54 <ais523> *that requires being logged in there
12:50:09 -!- DH____ has joined.
12:51:32 <fizzie> I'm tempted to go all "not necessarily, some may stuff options into a permacookie".
12:51:50 <elliott> vacuum has some really terrifying types
12:52:42 <oerjan> but at least there's no pressure to make you use them
12:52:54 <elliott> vacuum :: a -> IntMap HNode
12:52:54 <elliott> Vacuums the entire reachable heap subgraph rooted at the a.
12:52:54 <elliott> vacuumTo :: Int -> a -> IntMap HNode
12:52:54 <elliott> Stop after a given depth.
12:52:54 <elliott> getClosure :: a -> IO Closure
12:52:56 <elliott> getInfoPtr :: a -> Ptr StgInfoTable
12:52:58 <elliott> AHHH YES THANK YOU FOR THE NIGHTMARES
12:53:03 <elliott> at least getClosure is in IO
12:53:09 -!- ais523 has quit (Remote host closed the connection).
12:53:23 -!- ais523 has joined.
12:53:28 <ais523> `log deployment
12:53:33 <HackEgo> 2011-02-02.txt:22:59:14: <fizzie> Ilari: Oh, and there's a set of TeliaSonera "IPv6 Deployment Plans" slides from RIPE-49 (September 2004) that say "We want to have support for IPv6 in all of our IP Networks both Mobile and Fixed within two years". :p
12:53:36 <ais523> `log deployment
12:53:40 <HackEgo> 2007-07-18.txt:05:12:03: <toBogE> #esoteric is a channel on irc.freenode.net. The topic is '+++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++. esoteric programming language design and deployment'
12:53:41 <elliott> `? welcome
12:53:43 <HackEgo> 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
12:53:53 <ais523> just wanted to make sure I had the wording right
12:54:03 <elliott> for what?
12:54:18 -!- ais523 has set topic: Freudian armchair psycho-babble | It is the 90s and there is time for an international hub for esoteric programming language design and deployment @ Hel/Finland on 3.10.2011: https://wiki.helsinki.fi/display/lambda/esoteeriset+ohjelmointikielet | god bless haskell america | 12345678!& | http://codu.org/logs/_esoteric/.
12:54:26 <oerjan> !bf +++++++++++++++[>++++++>+++++++>+++++++>++<<<<-]>------.>>-.---.>++.<<.+++++.++++++.>.<--.----.<+++++++++++++.>++++++.>++++.++++++.-.<<.>>--.>.<----.<+.<+.>>>.<--.<------.+++.
12:54:26 <EgoBot> The international hub for
12:54:26 <ais523> the topic had been like that for too long
12:54:57 <ais523> hah, is the 12345678!& bit in the topic for elliott to copy/paste from?
12:55:19 <oerjan> correct
12:55:20 <elliott> maybe
12:55:48 <ais523> !bf_txtgen 1234567*!&
12:55:51 <EgoBot> ​66 ++++++++++[>+++++>++++>+++>+<<<<-]>-.+.+.+.+.+.+.>++.>+++.+++++.>. [838]
12:55:58 <ais523> I wonder what the best algo for bf_txtgenning is
12:56:01 <fizzie> oerjan: Delayed groan.
12:56:05 <ais523> that one definitely isn't it
12:56:15 <oerjan> fizzie: i thought no one got it...
12:56:30 <elliott> ais523: pebble does fairly well, I think
12:56:37 <elliott> there's provably no best algorithm though, I think
12:56:42 <ais523> also, what was toBogE? I've forgotten
12:56:44 <fizzie> (Delay was due to a visiting supervisor.)
12:56:48 <elliott> bad
12:56:58 <fizzie> Seems like an evil clone of EgoBot from the mirror universe.
12:56:59 <elliott> oerjan: i just ignored
12:57:05 <oerjan> O KAY
12:57:33 <ais523> elliott: well, depends on what you mean by "best"
12:57:33 <ais523> but yes, brute-force works up to the point your termination-tester stops working
12:57:37 <elliott> it was immibis, enough said
12:57:37 <ais523> `? <zzo38>
12:57:39 <HackEgo> ​<zzo38>? ¯\(°_o)/¯
12:57:42 <oerjan> <ais523> I wonder what the best algo for bf_txtgenning is <-- kolmogorob complexity, dude
12:57:45 <oerjan> *v
12:57:51 <ais523> `? <alise>
12:57:52 <HackEgo> ​<alise>? ¯\(°_o)/¯
12:57:59 <elliott> ais523: what are you doing?
12:58:01 <ais523> oh, is that an error message
12:58:05 <ais523> elliott: trying to get random log lines
12:58:09 <elliott> ais523: with the learndb?
12:58:11 <oerjan> FAIL
12:58:11 <ais523> yep
12:58:14 <ais523> ah, I see
12:58:18 <ais523> `log <alise>
12:58:22 <HackEgo> 2010-08-23.txt:02:17:05: <Vorpal> <alise> and i have 0 interest in windows compatibility <--- wait, didn't you say cfunge was stupid because it didn't support windows at one point
12:58:26 <ais523> `log <zzo38>
12:58:30 <HackEgo> 2010-08-22.txt:02:29:39: <zzo38> I think the fundamental feature is connecting to the IRC server?
12:58:33 <ais523> haha, the one from you wasn't even by you
12:58:39 <ais523> `log <alise>
12:58:42 <HackEgo> 2010-08-31.txt:15:29:35: <alise> std, I think.
12:58:53 <ais523> `log <cpressey>
12:58:56 <HackEgo> 2010-10-25.txt:19:37:58: <cpressey> Mental note: Punxsutawney: avoid.
12:59:08 <fizzie> !bf +++++++++++++++[>++++++>++>+++++++>+++++++>++++++++>+++++++<<<<<<-]>------.>>-.---.<++.>>.+++++.>----.<<.>>--.<.<----.>>++.>.<<+.-.<.>--.<<.>>>>-.<+.<<+.<.>++++.>+++.+++.
12:59:08 <EgoBot> The international hub for
12:59:15 <fizzie> Slightly shorter with "-t 6".
12:59:17 <elliott> `ls wisdom
12:59:18 <HackEgo> augur \ c \ elliott \ everyone \ finland \ friendship \ gregor \ hackego \ haskell \ ievan \ intercal \ itidus20 \ monad \ monads \ monqy \ oerjan \ oklopol \ qdb \ qdbformat \ sgeo \ shachaf \ u \ vorpal \ welcome \ wiki
12:59:33 <ais523> `? qdb
12:59:35 <HackEgo> qdb is used like: `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also qdbformat
12:59:35 <elliott> ais523: quick, write yourself a one-line biography
12:59:41 <oerjan> !bf ++++++++[->+>++++++<<]>[->.+<]
12:59:42 <EgoBot> 01234567
12:59:44 <ais523> does it have to be accurate?
12:59:47 <elliott> ais523: no
12:59:49 <oerjan> !bf ++++++++[->+>++++++<<]>[->+.<]
12:59:49 <EgoBot> 12345678
12:59:55 <ais523> and how do you add qdb entries?
12:59:56 <elliott> `learn qdb is used like: `quote; `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also qdbformat
12:59:57 <HackEgo> I knew that.
13:00:02 <elliott> ais523: addquote
13:00:15 <ais523> umm, I meant bio/learndb entries
13:00:24 <ais523> even though that's not what I said
13:00:43 <elliott> there is a hint in the past few lines :P
13:00:56 <elliott> also enlightening:
13:00:58 <elliott> `cat wisdom/wiki
13:00:59 <HackEgo> The wiki is at http://esolangs.org/wiki
13:01:07 <elliott> (note first word differing from topic)
13:01:10 <ais523> ah, hmm, you have to echo the file in by hand?
13:01:15 <elliott> ...
13:01:16 <elliott> <elliott> `learn qdb is used like: `quote; `quote regexp; `quote id; `addquote ...; `delquote id; `pastequotes regexp; `pastenquotes [n]; see also qdbformat
13:01:19 <elliott> you _are_ blind, right?
13:01:24 <ais523> that explains how to use the qdb
13:01:32 <ais523> that's not the same thing as the learndb, is it?
13:01:36 <elliott> /facepalm
13:01:39 <elliott> oerjan: facepalm time
13:01:43 <ais523> oh, the see also
13:01:44 <elliott> synchronised facepalming gogogo
13:01:47 <elliott> ais523: facepalm
13:01:49 <ais523> `? qdbformat
13:01:50 <HackEgo> qdbformat is: <nick> message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two
13:01:56 <ais523> wait, no
13:01:57 <elliott> you have _no idea_ how hard i am facepalming
13:02:07 <fizzie> Three-hand facepalm time?
13:02:11 <elliott> Yes.
13:02:13 <elliott> Make it happen.
13:02:28 <ais523> elliott: whatever you think the obvious clue is, I can't see it
13:02:40 <fizzie> ais523: The "`learn" part, perhaps?
13:02:43 <ais523> also, there's a subversion of the "two spaces between messages" in there somewhere, I used a sequence of Unicode spaces that added up to two
13:03:02 <ais523> fizzie: well, HackEgo wasn't responding in any useful way
13:03:28 <ais523> `learn ais523 ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
13:03:30 <HackEgo> I knew that.
13:03:34 <elliott> fail
13:03:46 <elliott> `? ais523
13:03:48 <HackEgo> ais523 ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
13:03:54 <elliott> or is your name "ais523 ais523"? :P
13:04:07 <ais523> wait, that error message is singularily useless
13:04:11 <ais523> given that it happens even on success
13:04:14 <ais523> `learn ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
13:04:15 <HackEgo> I knew that.
13:04:18 <elliott> ais523: who says it happens on failure?
13:04:20 <ais523> `? ais523
13:04:22 <HackEgo> ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
13:04:26 <ais523> elliott: it looks like a failure message
13:04:40 <elliott> ais523: the bug is your preconceptions :)
13:04:51 <elliott> `forget ais523
13:04:53 <HackEgo> Forget what?
13:04:56 <elliott> `learn ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
13:04:58 <HackEgo> I knew that.
13:05:00 <elliott> See, it's very consistent.
13:05:02 <ais523> pretty much every learndb bot I've ever seen has actually given useful messages
13:05:11 <ais523> NO THAT DOES NOT COUNT AS USEFUL
13:05:12 <elliott> ais523: this is #esoteric, we do things differently around here
13:05:59 <ais523> I still don't think it's reasonable to expect me to deduce how the bot works from a sequence of misleading and unhelpful messages
13:07:13 <ais523> I think #nethack's qdb and learndb are both better
13:08:05 <elliott> what's wrong with our qdb?
13:08:22 <oerjan> `learn oerjan, Your future evil overlord, is an expert in lazy computation.
13:08:24 <HackEgo> I knew that.
13:08:27 <oerjan> `? oerjan
13:08:29 <HackEgo> oerjan is just zis guy, you know?
13:08:32 <oerjan> wat
13:08:41 <oerjan> i thought there was a syntax for that
13:08:46 <oerjan> `? oerjan,
13:08:47 <HackEgo> oerjan, Your future evil overlord, is an expert in lazy computation.
13:08:52 <oerjan> `forget oerjan,
13:08:54 <HackEgo> Forget what?
13:08:59 <elliott> oerjan: try echo :P
13:09:11 <elliott> learn is not going to start parsing punctuation to figure out what you mean
13:09:21 <elliott> "`run echo '...' >wisdom/x" works for non-standard usage
13:09:27 <oerjan> elliott: i had somehow got the impression it already did
13:09:38 <elliott> ais523: anyway, what's wrong with our qdb?
13:10:00 <ais523> well, the one for #nethack (and related channels) is http://qdb.rawrnix.com
13:10:05 <ais523> which seems to be running the same software as bash.org
13:10:15 <ais523> so it has things like voting on quotes, etc
13:10:17 <elliott> ais523: that's clearly inferior to an irc-based system for convenience
13:10:27 <ais523> there's an IRC-based system linked to it
13:10:28 <oerjan> `run echo "Your future evil overlord oerjan is an expert in lazy computation." >wisdom/oerjan
13:10:30 <HackEgo> No output.
13:10:37 <oerjan> `? oerjan
13:10:39 <HackEgo> Your future evil overlord oerjan is an expert in lazy computation.
13:10:51 <fizzie> Also "voting", what are we, a democracy?
13:10:53 <elliott> oerjan: I distinctly prefer the older version :P
13:11:03 <oerjan> elliott: KNEEL, SCUM
13:11:08 <ais523> fizzie: well, it's more for identifying which are actually good
13:11:17 <oerjan> or rebel, whatever
13:11:18 <elliott> ais523: we have a system to do that, it's called `delquote
13:11:48 <nooga> oh
13:11:50 <ais523> elliott: but there's more shades of good in quotes than true and false
13:11:50 <nooga> that again
13:11:55 <ais523> `log <nooga>
13:11:58 <HackEgo> 2007-02-22.txt:15:44:55: <nooga> what is V?
13:12:01 <elliott> ais523: we specialise in only the best
13:12:11 <elliott> `pastequotes
13:12:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21755
13:12:14 <ais523> but the less good ones that are still good can be fun to read too
13:12:25 <elliott> I wonder if quote one will ever be deleted
13:12:37 <elliott> it's not very funny, but it would feel wrong
13:12:52 <ais523> it's more funny than most of them
13:12:58 <elliott> No it's not.
13:13:04 <ais523> especially the early ones, most aren't very good at all
13:13:14 <elliott> The recent ones have been pretty consistently funny, IMO.
13:13:19 <oerjan> <ais523> I think #nethack's qdb and learndb are both better <-- suddenly ais523 somehow resembles zzo
13:13:32 <elliott> Anyway, adding new good quotes is far superior to decreasing the visibility of bad ones.
13:13:45 <ais523> `quote 109
13:13:46 <fizzie> oerjan: You just reminded me of http://www.ozyandmillie.org/d/20020318.html
13:13:47 <HackEgo> 109) <ais523> let's put that in the HackEgo quotes files, just to completely mystify anyone who looks back along them in the future
13:13:53 <elliott> `quote
13:13:55 <HackEgo> 326) <oklopol> okay see in my head it went, you send from your other number smth like "i'd certainly like to see you in those pink panties again" and she's like "WHAT?!? Sgeo took a pic?!?!?! that FUCKING PIG"
13:13:59 <elliott> `quote
13:14:00 <HackEgo> 113) <Warrigal> I seem to think of coaxial cables as being omnipotent somehow.
13:14:02 <elliott> `quote
13:14:04 <HackEgo> 141) <fungot> AnMaster: to any airbus plane. 3 passengers sadly died the most awesome thing ever.
13:14:11 <elliott> See, a fungot quote in three.
13:14:15 <elliott> That's quality.
13:14:22 <elliott> `quote
13:14:23 <HackEgo> 185) <alise> Phantom_Hoover: Don't be nasty; he's a lunatic, not a murderer.
13:14:27 <elliott> fizzie: Also the fungot; where is it.
13:14:28 <ais523> it's not as good as most of the other fungot quotes in there
13:14:31 <elliott> `quote
13:14:33 <HackEgo> 619) <fizzie> I tend to debase64 with perl -MMIME::Base64 -e 'print decode_base64("...");', because at least PERL stands for "PERL ein't-no ruddy-poo lol-GNU".
13:14:41 <elliott> `quote
13:14:42 <HackEgo> 609) <fizzie> They're (according to current plans/rumours) going to release a grand total of approximately 1.1 MeeGo devices; the N9, plus the N950 "developers only" phone, which I'm counting as 0.1 because (even though it is a MeeGo device) it's not going to actually be released.
13:14:56 <fizzie> It has gone -> RAW >>> :leguin.freenode.net NOTICE fungot :Server Terminating. Received SIGTERM <<<
13:14:57 <elliott> well, /I/ laughed
13:15:08 <elliott> `quote
13:15:09 <ais523> fizzie: that's, umm, bizarre
13:15:10 <HackEgo> 67) <oklopol> hmm, this is hard
13:15:13 <ais523> fungot killed the server?
13:15:14 <elliott> `quote
13:15:16 <HackEgo> 446) <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
13:15:19 <elliott> `quote
13:15:21 <HackEgo> 615) <zzo38> I think Perl is a programming language too. [...]
13:15:26 <elliott> ais523: we just need to filter out all the old quotes
13:15:31 <elliott> or at least bias heavily against them
13:15:35 <ais523> `quote 135
13:15:37 <HackEgo> 135) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it contains all the important words in the english language...
13:15:40 <elliott> /or/, add a bunch of new quotes so that we're more likely to get new ones
13:15:40 <ais523> the best quote there
13:15:49 <elliott> ridiculous, there are far better quotes
13:15:50 <fizzie> ais523: Freenode killed the server, I believe. That's a notice from the server to fungot about it.
13:16:08 -!- fungot has joined.
13:16:24 <elliott> `quote arrow
13:16:25 <HackEgo> 663) <Gregor> You know how the arrow pierces your skin, rearranging and randomizing vital internal structure? <Gregor> Monads are like that, only worse.
13:16:38 <ais523> `quote 188
13:16:40 <HackEgo> 188) <alise> "Europe is the national anthem of the Republic of Kosovo." <cpressey> alise: I <cpressey> I was going to say something then your last line floored me
13:16:42 <ais523> I like that too
13:17:48 <elliott> `quote
13:17:49 <HackEgo> 147) <oerjan> alise: mainly it's the fact it blows so hard i cannot avoid hitting the walls of the thing, which completely goes against my basic public toilet hygiene principles
13:17:56 <elliott> also, we need to get cpressey back in here
13:18:01 <fizzie> `quote 208
13:18:02 <HackEgo> 208) <fungot> ais523: my nose feels like a bad heuristic
13:18:03 <elliott> having time to actually do things be damned
13:18:11 <elliott> <ais> take that back
13:18:27 <ais523> daming abstract concepts doesn't really make sense at all
13:18:41 <elliott> daming
13:18:46 <elliott> making them become dames?
13:18:52 <ais523> *damning
13:19:14 <elliott> 602) <monqy> im sampling ultra hip holiday <monqy> hes the boogie woogie santa clause <monqy> switching to oktoberfest <monqy> yes i would love to shop to this
13:19:14 <elliott> See, these are quality quotes.
13:19:22 <ais523> `quote 288
13:19:24 <HackEgo> 288) <zzo38> ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least.
13:19:28 <ais523> that's probably the best zzo one
13:19:29 <elliott> As long as monqy is here we will have a guaranteed supply of above-average quotes for the rest of our lifetimes.
13:19:50 <elliott> 606) <Vorpal> elliott_, oh they are people known in the ruby community? <elliott_> Vorpal: Uh... you mean Hannah Montana? <Vorpal> elliott_, yeah. And Zed Shaw. Either they are that or they come from popular culture.
13:19:55 <elliott> Also, as long as Vorpal is here.
13:20:06 <ais523> `quote 300
13:20:08 <HackEgo> 300) <Deewiant> My STRN.G detects runoff strings that haven't been terminated but would hit a zero after wrapping and tries to allocate the 16+-gigabyte-stack required
13:20:13 <ais523> I like that one because of the thought involved
13:20:33 <ais523> just like implementing the + in HQ9+, but more awesome
13:20:38 <elliott> 648) <itidus20> according to physics and maths can we theoretically have a box with infinite cookies inside?
13:20:38 <elliott> Also iti.
13:21:58 <oerjan> itidus20: sadly, no. it would collapse into a black hole.
13:22:22 <elliott> 610) <monqy> game where you flip a coin but it's really really big
13:22:22 <elliott> GOOD. QUOTES.
13:22:44 <coppro> are we sure that the accumulator in HQ9+ is program-specific?
13:22:58 <oerjan> coppro: ooh
13:23:05 <elliott> 574) <Phantom_Hoover> What is it with Cardassians, they're all really nice and then they hit you with a rock.
13:23:06 <elliott> QUALITY
13:23:07 <elliott> QUOTES
13:23:08 <elliott> coppro: oh my
13:23:50 <oerjan> it's all in the "ass" part
13:24:58 <elliott> coppro: I'm trying to think of a suitable substrate to implement global HQ9+ on, now
13:25:28 <elliott> I know there's plenty of substrates that let you insert data immutably and address it by hash globally, but are there any that permit a mutable reference?
13:25:41 <elliott> I mean, that are properly distributed beyond just being "an HTTP server".
13:25:52 <elliott> I don't think freenet or Tor or anything offer that.
13:27:07 -!- Zuu has quit (Ping timeout: 244 seconds).
13:27:23 <elliott> V. disappointed that you're not all looking into this for me.
13:28:23 <ais523> just write it in Network Headache?
13:28:47 <ais523> (fun question: can an HQ9+ interp be written in Network Headache that always works regardless of what other programs are doing? my guess is no, but I'm not sure)
13:28:55 <elliott> but there isn't a proper Network Headache implementation, either
13:28:58 <elliott> it needs the same sort of substrate
13:30:06 <ais523> just write a self-interp, then push the lack of decentralized control backwards to infinity
13:30:11 <ais523> (note: wouldn't actually work even in Feather)
13:30:47 <ais523> `quote 460
13:30:49 <HackEgo> 460) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
13:30:50 <ais523> ah, the nostalgia
13:30:59 <elliott> did it?
13:31:05 <ais523> no, the computer crashed first
13:31:08 <elliott> nice
13:33:16 <ais523> `quote 526
13:33:18 <HackEgo> 526) <Vorpal> ais523, how are we supposed to guess before you tell us unless you give us more hints?
13:33:20 <ais523> secret project reference?
13:33:28 <elliott> yes
13:33:41 <elliott> hmm... I think tahoe-lafs may implement the necessary operations to allow Cloud HQ9+
13:33:46 <ais523> I need to start working on that again at some point
13:34:02 <ais523> hopefully implementing UNIX sockets will be enough to get pulseaudio to work
13:34:26 <elliott> I'm, umm, not sure there's a "main" tahoe-lafs network nowadays though
13:34:41 <elliott> ISTR the test grid was shut down
13:34:46 <ais523> `quote 549
13:34:48 <HackEgo> 549) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:34:50 <ais523> wow, I remember that
13:34:57 <elliott> `log beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:35:00 <HackEgo> 2011-09-15.txt:13:34:57: <elliott> `log beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:35:01 <elliott> maybe because it was mere weeks ago
13:35:07 <ais523> possibly the best haiku ever mentioned in this channel
13:35:10 <elliott> HackEgo...
13:35:16 <elliott> `log beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:35:19 <HackEgo> 2011-09-15.txt:13:34:57: <elliott> `log beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:35:23 <elliott> oh for chrissakes
13:35:31 <elliott> `log fuck fuck fuck fuck fuck fuck fuck
13:35:34 <HackEgo> 2011-09-15.txt:13:34:48: <HackEgo> 549) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
13:35:40 <elliott> :'(
13:35:41 <elliott> `log fuck fuck fuck fuck fuck fuck fuck
13:35:44 <HackEgo> 2011-09-15.txt:13:35:41: <elliott> `log fuck fuck fuck fuck fuck fuck fuck
13:35:49 <elliott> oh my god
13:36:06 <ais523> 'quote 590
13:36:09 <ais523> how did that end up there?
13:36:25 <ais523> ^[^`]* fuck fuck fuck fuck fuck fuck
13:36:28 <ais523> `log ^[^`]* fuck fuck fuck fuck fuck fuck
13:36:29 <elliott> `quote 590
13:36:30 <HackEgo> 590) <ais523> (Enigma is two games; one is solving Enigma puzzles, the other is working out how to represent things as Enigma puzzles, preferably with the minimal amount of lua and player-hidden information possible)
13:36:32 <HackEgo> 2011-09-13.txt:18:02:38: <HackEgo> 2010-08-30.txt:16:15:24: <alise> I can fix that! Fuck fuck fuck fuck fuck fuck fuck fuck fuck
13:36:50 <elliott> hmm, tahoe is really complicated :(
13:37:13 <ais523> `quote 600 has got me laughing in real life, even though it's not all that good
13:37:14 <HackEgo> No output.
13:37:21 <ais523> bleh, I can't give it trailing arguments?
13:37:29 <ais523> `quote 600 # has got me laughing in real life, even though it's not all that good
13:37:30 <HackEgo> No output.
13:37:34 <ais523> not even if I comment them out?
13:37:39 <ais523> `quote 600
13:37:41 <HackEgo> 600) <fizzie> That's the stupidest thing I've heard all morning. (Though I did wake up five minutes ago, so I haven't had a chance to hear very much.) <fizzie> The "Why are you still asleep? I told the cat to wake you up." comment does come pretty close, though.
13:37:58 <elliott> I laugh every time I remember it, so I think it's fairly objectively good :P
13:38:25 <ais523> `quote 629
13:38:27 <HackEgo> 629) <CakeProphet> monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] <CakeProphet> @messages <lambdabot> quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell
13:38:36 <ais523> pure awesome there
13:38:54 <elliott> yeah that was pretty much maximum synchronicity
13:38:59 <elliott> all downhill from there
13:41:50 <elliott> ais523: btw, I was going to make the learndb better, but Gregor refused to make HackEgo output multiple lines ever :P
13:41:58 <elliott> so the multiple-entry possibilities were rather limited
13:43:21 <oerjan> `run quote 600 #maybe like this?
13:43:23 <HackEgo> 600) <fizzie> That's the stupidest thing I've heard all morning. (Though I did wake up five minutes ago, so I haven't had a chance to hear very much.) <fizzie> The "Why are you still asleep? I told the cat to wake you up." comment does come pretty close, though.
13:43:54 <elliott> ais523: I have found clear evidence of inferiority of the nethack qdb to ours: http://qdb.rawrnix.com/?357
13:44:01 <ais523> now I'm wondering if fizzie's cat /tried/ to wake him or her up
13:44:07 <elliott> you won't see any anti-acehack propaganda in _this_ qdb!
13:44:16 <ais523> it's a funny statement
13:44:19 * elliott pats himself on the back for a logic well done
13:44:21 <ais523> also, look at who's saying it
13:44:26 <ais523> I'm pretty sure you know Wooble
13:44:29 <elliott> Yes, I have eyes
13:44:36 <elliott> Well, sometimes
13:44:40 <elliott> Sometimes I am just an amorphous blob
13:44:43 <elliott> It depends.
13:44:56 <ais523> sometimes I fly around in a spaceship :>
13:44:56 <oerjan> focus, elliott, focus
13:45:06 <ais523> wait, was it a lowercase i?
13:45:11 <ais523> `log fly around in a spaceship
13:45:12 <elliott> probably
13:45:14 <HackEgo> 2009-03-05.txt:16:10:34: <ais523> FireFly: sometimes I fly around in a spaceship?
13:45:20 <ais523> `log fly around in a spaceship
13:45:23 <HackEgo> 2011-09-15.txt:13:45:11: <ais523> `log fly around in a spaceship
13:45:27 <ais523> `log fly around in a spaceship :>
13:45:30 <HackEgo> 2011-08-26.txt:04:14:24: <elliott> "sometimes i fly around in a spaceship :>"
13:45:32 <oerjan> `cat bin/log
13:45:34 <HackEgo> ​#!/bin/sh \ cd /var/irclogs/_esoteric \ if [ "$1" ]; then \ egrep -i -- "$1" ????-??-??.txt | shuf -n 1 \ else \ file=$(shuf -en 1 ????-??-??.txt) \ echo "$file:$(shuf -n 1 $file)" \ fi \
13:45:34 <ais523> yep, lowercase i
13:45:43 <FireFly> uh-huh
13:45:49 <elliott> hi FireFly
13:45:53 <FireFly> Hello
13:45:57 <FireFly> I can't even remember that line
13:46:00 <ais523> FireFly: the thing about logquoting bots is that they have a tendency to randomly ping people
13:46:05 <FireFly> And I usually remember lines that HL me
13:46:23 <FireFly> 2009 was a while ago though
13:46:48 <ais523> `log <FireFly>
13:46:52 <HackEgo> 2009-07-31.txt:16:01:46: <FireFly> Well, I like my tabs as they are
13:47:01 <ais523> equivalent to eight spaces?
13:47:18 <ais523> (when at a multiple of 8 already)
13:47:38 <ais523> elliott: oh, I found another tab=to-multiple-of-8 source, it's the Google style guide for INTERCAL
13:47:39 <elliott> oerjan: op me so that i can institute a beautiful reign of kicking ais523 whenever he goes on about tabs
13:47:54 <ais523> elliott: but I haven't won this argument yet
13:47:56 <FireFly> I usually go with 4-space tabs, though I prefer actual tab characters to spaces
13:47:59 <FireFly> That's probably what the line refers to
13:48:08 <elliott> ais523: it's quite hard to win an argument that you've already lost, repeatedly, in the past
13:48:17 <ais523> I just haven't won it yet
13:48:20 <ais523> and I have so many sources on my side
13:48:29 <elliott> /ignore ais523
13:52:03 <ais523> p
13:52:04 <ais523> *o
13:52:28 <elliott> wat
13:53:16 <ais523> just randomly oing
13:53:28 <ais523> people don't seem to do that that much any more, not even oklopol
13:53:35 <ais523> but I typoed and randomly ped instead
13:53:43 <fizzie> ais523: If the cat tried, I did not notice. It's not the most reliable person, so I wouldn't be surprised if it just ignored the task it was given.
13:57:49 <elliott> OK, I'm laughing harder at http://qdb.rawrnix.com/?470 than any quote we've had here
13:57:55 <elliott> THIS IS UNACCEPTABLE
14:00:27 <Patashu> wat
14:00:36 <Patashu> oh, nethack
14:00:55 <Patashu> that's surreal humour. it...doesn't quite click but I see how it could
14:01:37 -!- Taneb has joined.
14:02:19 <elliott> Patashu: it's more the idea of someone cutting off their arm in nethack in /anticipation/ of maybe being able to eat it
14:02:34 <Taneb> I just read "armchair" as "slip" in the topic
14:03:20 <Taneb> Also, hello
14:04:34 <elliott> hi
14:05:29 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:06:44 <Taneb> I never got the hang of nethack
14:08:16 <elliott> ?src ap
14:08:16 <lambdabot> ap = liftM2 id
14:08:20 <elliott> ?src liftM2
14:08:20 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
14:09:22 <Taneb> You know that program I wrote in Haskell then everyone helped me improve and fix it?
14:09:32 <elliott> yes
14:09:52 <Taneb> I translated it back into Python for the hell of it
14:09:56 <Patashu> lol
14:10:02 <Taneb> Haskell is much more readable
14:10:27 <Taneb> And also, Python has no equivalent built in to [1..] unless you import itertools
14:10:57 <Taneb> And I have just had a thought to improve the Haskell version
14:11:42 <Taneb> Nevermind, wouldn't have worked
14:13:44 <elliott> oerjan: I wish there was a haskell uninliner :(
14:14:35 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:14:45 <oerjan> that's called refactoring isn't it
14:15:37 <elliott> oerjan: I mean more like, given an explicit implementation of return/(>>=), and an implementation of (<*>) in terms of them (i.e. ap), a pattern-matching definition is spat out
14:15:45 <elliott> preferably a flat one i.e. it's just not literally inlining as nested case clauses
14:16:45 <Taneb> I wonder if ~ATH is suitable for the wiki
14:16:53 <Taneb> I mean, we don't do fictional languages
14:16:54 <Taneb> Much
14:32:26 -!- copumpkin has joined.
14:32:44 <MDude> I could imagine an implementation of it that runs within a virtual world of some sort.
14:33:03 <MDude> Or set of virtual worlds, I suppose.
14:33:34 <elliott> ?pl f <*> pure x
14:33:35 <lambdabot> f <*> pure x
14:33:43 <elliott> oerjan: is there really no name for that?
14:34:36 -!- nooga has quit (Ping timeout: 276 seconds).
14:38:07 <oerjan> @hoogle m (a -> b) -> a -> m b
14:38:08 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
14:38:08 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
14:38:08 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
14:38:29 <elliott> makeZipper' = gfoldl f Done
14:38:29 <elliott> where f r h =
14:38:29 <elliott> case cast h :: Maybe d of
14:38:29 <elliott> Just h' -> Zip h' (ap r . pure . fromMaybe h . fmap (fromJust . cast))
14:38:29 <elliott> Nothing -> r <*> pure h
14:38:30 <elliott> turns out this doesn't work :P
14:38:48 <elliott> :(
14:38:52 <elliott> hmm
14:39:18 <oerjan> elliott: seems that one is missing yeah
14:39:52 <elliott> *Main> explore (makeZipper' [9,9,9,9] :: Zipper Int [Int])
14:39:52 <elliott> Current item: 9
14:39:52 <elliott> Insert new item or enter to keep: 99999999
14:39:52 <elliott> [99999999,9,9,9]
14:39:56 <elliott> that is not how it is supposed to work >:(
14:40:01 <oerjan> :t (.)
14:40:02 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
14:40:09 <elliott> hmm, I suppose the problem is that it sees the tail as Just Another Subterm
14:40:15 <elliott> one which happens to not be of type Int
14:40:15 <oerjan> :t flip
14:40:16 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
14:40:28 <elliott> *Main> explore (makeZipper' [9,9,9,9] :: Zipper [Int] [Int])
14:40:28 <elliott> Current item: [9,9,9]
14:40:28 <elliott> Insert new item or enter to keep: []
14:40:28 <elliott> [9]
14:40:29 <elliott> heh
14:40:31 <oerjan> elliott: wouldn't you know, it's precisely caleskell's flip :P
14:40:40 <elliott> oerjan: wonderful :P
14:45:54 <Deewiant> ?pl \ff x -> fmap ($x) ff
14:45:54 <lambdabot> flip (fmap . flip id)
14:46:33 -!- MDude has quit (Read error: Connection reset by peer).
14:46:48 <Deewiant> ?pl \ff x -> ff <*> pure x
14:46:48 <lambdabot> (. pure) . (<*>)
14:46:53 <Deewiant> Bah
14:51:00 <elliott> :{
14:53:09 <Deewiant> ?. hoogle type \f g -> (. g) . f
14:53:10 <lambdabot> Parse error:
14:53:10 <lambdabot> --count=20 "forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f a -> f1 (f b)
14:53:10 <lambdabot> "
14:53:14 <Deewiant> Bah
14:53:54 <Deewiant> ?. hoogle type \f g -> (Prelude.. g) Prelude.. f
14:53:54 <lambdabot> Parse error:
14:53:55 <lambdabot> --count=20 "forall b c a a1. (a1 -> b -> c) -> (a -> b) -> a1 -> a -> c
14:53:55 <lambdabot> "
14:54:08 <Deewiant> ?hoogle (a1 -> b -> c) -> (a -> b) -> a1 -> a -> c
14:54:08 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
14:54:09 <lambdabot> Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r
14:54:09 <lambdabot> Data.Data gmapQr :: Data a => (r' -> r -> r) -> r -> (d -> r') -> a -> r
14:54:19 <Deewiant> Bah
14:57:08 <elliott> Deewiant: Pretty sure gmapQr is the thing
14:57:19 <Deewiant> Yeah no
14:57:24 <Deewiant> ?src on
14:57:24 <lambdabot> (*) `on` f = \x y -> f x * f y
14:57:32 <Deewiant> ?ty let (*) `on` f = \x y -> f x * f y in on
14:57:33 <lambdabot> forall t t1 t2. (t -> t -> t1) -> (t2 -> t) -> t2 -> t2 -> t1
14:57:51 <oerjan> :t flip (curry . second)
14:57:52 <lambdabot> forall a b c. a -> (b -> c) -> b -> (a, c)
14:58:03 <oerjan> oops
15:01:29 <oerjan> @djinn (a1 -> b -> c) -> (a -> b) -> a1 -> a -> c
15:01:30 <lambdabot> f a b c d = a c (b d)
15:01:49 <oerjan> @pl f a b c d = a c (b d)
15:01:50 <lambdabot> f = flip . ((.) .)
15:02:24 <oerjan> most readable
15:03:12 <elliott> hmm I would _really_ like serialisation of Haskell functions
15:03:14 <elliott> (not in a portable manner)
15:03:21 <elliott> well, closures
15:06:27 <oerjan> \a b c d -> a c (b d) = flip (\a c b d -> a c (b d)) = flip (\a c b -> a c . b) = flip (\a c -> (.) (a c)) = flip (\a -> (.) . a) = flip ((.) .)
15:06:44 <oerjan> :t Prelude.flip ((.) .)
15:06:44 <lambdabot> forall a b (f :: * -> *) b1. (Functor f) => b1 -> (b1 -> a -> b) -> f a -> f b
15:06:54 <oerjan> :t Prelude.flip ((Prelude..) Prelude..)
15:06:55 <lambdabot> forall b c a b1. b1 -> (b1 -> b -> c) -> (a -> b) -> a -> c
15:06:57 <elliott> Deewiant: Lemme know when you've figured out how to do that
15:07:04 <oerjan> gah
15:07:45 -!- oerjan has quit (Quit: Anyway, later).
15:15:05 <Deewiant> elliott: instance Binary (a -> b) where something#
15:18:42 <elliott> Neat
15:24:57 <Taneb> I wonder if Uniquode, as specified, is Turing-Complete
15:28:45 -!- augur has quit (Remote host closed the connection).
15:50:31 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
16:03:48 <elliott> Deewiant: I don't think that's actually possible... you need to know the types of the stuff in the closure
16:05:02 <Deewiant> instance (Typeable a, Typeable b) => Binary (a -> b) where something#
16:05:19 <elliott> Deewiant: In the closure
16:05:20 <elliott> Consider
16:05:33 <elliott> foo :: SomethingRidiculouslyUnserialisable -> Int -> Int
16:05:37 <elliott> foo x y = y + magic x
16:05:55 <Deewiant> Right
16:05:56 <elliott> (foo x) is (Int -> Int), but its closure carries around a SomethingRidiculouslyUnserialisable that isn't referenced in the type at all
16:07:22 <elliott> So I think you need to explicitly specify the closure types, which involves just trusting whatever's given... so basically you have to make some TH magic to do it for people and tell them not to use anything more direct :P
16:08:33 <Lymee> What kind of Haskell type would be unserialisable?
16:09:01 <elliott> Well, in theory anything is serialisable; in practice something like a file handle is not very
16:09:13 <elliott> For obvious reasons
16:09:41 * tswett doesn't respond to that ping.
16:09:50 <Lymee> A file handle in pure code?
16:10:17 <elliott> Lymee: Eh?
16:10:38 <elliott> I don't THINK a Handle carries around any state you can access outside of IO, but certainly other types might.
16:10:42 <elliott> Consider StableName.
16:10:56 <elliott> http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.4.0.0/System-Mem-StableName.html
16:11:01 <elliott> No way you're gonna serialise one of those.
16:11:13 <tswett> You can't serialize an Internet connection.
16:11:17 <elliott> And you can hashStableName in pure code.
16:11:21 <tswett> Even in theory. I think.
16:11:33 <elliott> tswett: No, but you can serialise the bits representing the socket
16:11:34 <Lymee> elliott, yeah, good point.
16:11:36 <elliott> It's not just very useful, is all
16:11:52 <elliott> tswett: Also you totally should be able to serialise internet connections.
16:12:00 <tswett> Well, I meant connectivity, not connections.
16:12:01 <cheater> tswett, stateless protocols such as HTTP REST can be serialized.
16:12:20 <elliott> Start a connection, serialise it, destroy the machine on the other end, deserialise it... magically it still works
16:12:56 <tswett> I can't serialize the path that radio waves take when traveling betwen my laptop and the router.
16:13:10 <tswett> I mean, I guess I can. But, like before, it wouldn't be very useful.
16:13:11 <elliott> tswett: All I'm hearing is flaws in the universe.
16:13:26 <cheater> neither can you serialize the copper and nickel that the electrons traverse when going from your cpu to your ram.
16:13:27 <tswett> We should fix those. Quick, donate all your money to the SIAI.
16:34:01 -!- augur has joined.
16:34:01 -!- cheater has quit (Quit: Ex-Chat).
16:35:40 <Taneb> HellO!
16:35:48 <ais523> hi
16:35:55 <elliott> hell o
16:36:01 <Taneb> I liked todays IWC
16:36:28 <elliott> only six until it's over ;D ;D ;D; D
16:36:36 <elliott> my hobby: trolling iwc fans
16:47:03 -!- nooga has joined.
16:55:40 <Taneb> I've got my Gameboy Advance here
16:56:00 <Taneb> Going to play Pokémon
16:56:12 <Taneb> Dammit, Birch!
16:56:27 <Taneb> Nobody ever calls you the POKéMON PROFESSOR
16:57:33 <Taneb> I'm in a Truck
16:57:46 <ais523> Taneb: Ruby, Sapphire, or Emerald?
16:57:59 <Taneb> Emerald
16:58:07 <Taneb> Which, from my POV was the first one
16:58:38 <ais523> it was actually the last third-gen game
16:59:17 <Taneb> It was the first one I got
16:59:26 <Taneb> It was my first Pokémon game
16:59:35 <ais523> it also has the most abusable RNG in third gen, if you're into that sort of thing
17:00:03 <ais523> and it's still the easiest to do RNG abuse calculations for, although the actual abuse itself is easier on Black/White
17:00:08 <Taneb> I play these games for fun
17:00:15 <ais523> so do I
17:00:20 <Deewiant> That doesn't in any way exclude RNG abuse
17:00:28 <Taneb> It does if you're me
17:00:35 <Taneb> But you are not me
17:00:38 <Taneb> So it doesn;t
17:01:39 <Taneb> Apparently I'm Taneb, their new next-door neighbour!
17:10:02 <Taneb> Yay, I get a Pokéman
17:10:08 <Taneb> I will name it Deewiant
17:22:47 -!- sllide has joined.
17:28:25 <Gregor> `find
17:28:26 <HackEgo> ​. \ ./bin \ ./bin/? \ ./bin/addquote \ ./bin/allquotes \ ./bin/define \ ./bin/delquote \ ./bin/etymology \ ./bin/forget \ ./bin/google \ ./bin/json \ ./bin/k \ ./bin/karma \ ./bin/karma+ \ ./bin/karma- \ ./bin/learn \ ./bin/log \ ./bin/logurl \ ./bin/marco \ ./bin/paste \ ./bin/pastekarma \ ./bin/pastelog \ ./bin/pastelogs
17:30:05 <elliott> Gregor: ?
17:30:10 <elliott> hey someone give me a number sign
17:30:35 <ais523> you mean #?
17:30:38 <elliott> yes thanks
17:30:45 <ais523> strange name for it
17:32:33 <fizzie> Yes, it would have been far more obvious to say "give me a sink".
17:33:37 <shachaf> `? shachaf
17:33:38 <HackEgo> shachaf mad
17:33:43 <shachaf> `rm wisdom/shachaf
17:33:44 <HackEgo> No output.
17:36:24 <Taneb> Hello
17:36:42 <Taneb> I'm training ais523 tge Wingull
17:36:55 * ais523 makes Wingull sound
17:37:10 <ais523> (and I know what a Wingull sounds like, too...)
17:37:56 <Taneb> Level 6!
17:39:21 <elliott> waht does wingull sound like :(
17:39:29 <Taneb> eeh-eeh!
17:39:31 <elliott> `learn shachaf mad
17:39:32 <HackEgo> I knew that.
17:39:42 <elliott> Taneb: Congratulations you just described the sound of like half of all the pokemons.
17:39:52 <shachaf> `rm wisdom/shachaf
17:39:53 -!- sliddy has joined.
17:39:53 <HackEgo> No output.
17:39:58 <elliott> `learn shachaf mad
17:40:00 <Taneb> While being completely true
17:40:00 <HackEgo> I knew that.
17:40:01 <elliott> shachaf: u so mad.
17:40:02 <shachaf> elliott: Could you keep it that way, please?
17:40:04 <shachaf> `rm wisdom/shachaf
17:40:05 <HackEgo> No output.
17:40:09 <Taneb> And as accurate as I could
17:40:10 <elliott> The wisdom cannot be erased.
17:40:28 <elliott> The wisdom is Eternal.
17:40:36 <elliott> Eternalsdom.
17:40:39 <elliott> Wisdeternal.
17:41:35 -!- Zuu has joined.
17:41:35 -!- Zuu has quit (Changing host).
17:41:35 -!- Zuu has joined.
17:42:27 -!- sllide has quit (Ping timeout: 276 seconds).
17:45:49 <Taneb> ais523 is now may highest level POKéMON
17:46:07 <elliott> POKéMON
17:46:13 <Gregor> HEY GUYS THERE IS SUCH A THING AS A CAPITAL É
17:46:25 <Taneb> Not in the POKéMON font
17:46:31 <ais523> Gregor: however, the word itself is spelt POKéMON
17:46:36 <Gregor> The correct capitalization is POOKIEMANS
17:46:45 <ais523> writing POKÉMON is like writing Brainfuck
17:47:03 <elliott> ais523: you're lucky ph isn't here or he'd whine at you
17:47:17 <ais523> at what, BF's capitalisation?
17:47:41 <elliott> he's of the firm opinion that BrainFuck is an abomination but anyone who corrects Brainfuck to brainfuck is a pedantic asshole :P
17:48:24 <ais523> I think "Pokémon" is a valid capitalization too as of Black/White
17:48:35 <Taneb> This is Emerald
17:48:47 <Taneb> I may make a language called brianfcuk just to confuse everyone
17:49:02 -!- Jafet has joined.
17:49:38 -!- augur has quit (Remote host closed the connection).
17:51:29 <ais523> I was planning to make a language called brainfuck that was identical to Brainfuck apart from the name
17:51:33 <ais523> as a parody of bad BF derivatives
17:51:37 <Taneb> It will be as different from brainfuck as possible
17:51:48 <ais523> but I'm not sure I could do it in a suitably amusing way
17:51:54 <ais523> umm, swap brainfuck and Brainfuck there
17:52:42 <Taneb> Instead of a tape, have string of Unicode characters
17:53:16 <Taneb> And a character index rather than a pointer
17:53:49 <Sgeo__> What is a good bF derivative?
17:53:53 <Taneb> Ook!
17:54:20 <ais523> Ook! would be a pretty bad derivative if it didn't come early enough that it wasn't cliched
17:54:21 <Taneb> It was original, a reference to Discworld, and by David Morgan-Mar
17:54:34 <ais523> I think PaintFuck was considered a good BF deriv
17:56:27 -!- ive has joined.
17:57:24 <elliott> wow, generic zippers are a pain to make pretty
18:00:10 <Taneb> brianfcuk is too similar to Haskell.
18:00:14 <Taneb> Not esoteric enough
18:01:03 <Taneb> To the LIST OF IDEAS PAGE
18:02:15 <ais523> elliott: you still owe me My Name Is Johny, btw
18:03:07 -!- ais523 has quit (Remote host closed the connection).
18:03:38 <elliott> OR ELSE
18:05:50 -!- augur has joined.
18:21:48 -!- pikhq has quit (Quit: Later).
18:23:31 <Taneb> All my ideas for brianfcuk are lame
18:24:04 <oklopol> did you try renaming the operations
18:24:08 <oklopol> i hear that's cool
18:25:06 -!- oklopol has quit.
18:25:06 <elliott> we need a language called brainf***
18:25:41 <Taneb> One of my ideas was essentially a minimalistic notation for lambda calculus
18:25:51 <Gregor> ShaFuck iz da bezt.
18:25:53 <Taneb> Where the predeccessor function is \\\34(\\14(24114))(\24)(\14)
18:27:05 <elliott> Taneb: um is that not just de bruijn notation
18:27:29 <Taneb> Bijective base 3 de bruijn notation postpended with fours
18:27:56 <elliott> wow
18:29:25 <Taneb> Told you it was lame
18:30:38 <Taneb> I could use my loadsa combinators
18:30:40 <Taneb> ide
18:30:40 <Taneb> a
18:31:48 <Taneb> Screw this, I'm going to work on Salesman
18:34:21 <Taneb> I don't want to use a stack. I do not like stacks.
18:35:06 <Taneb> I could use an accumulator...
18:36:35 <Taneb> Or two
18:40:22 <Taneb> I do not like green queues and stacks
18:47:44 <Taneb> http://esolangs.org/wiki/User:Taneb/Salesman
18:49:00 <Taneb> The NP-Hard programming language!
18:50:36 -!- ive has quit (Ping timeout: 252 seconds).
18:56:32 <Taneb> Thoughts?
19:00:35 -!- ive has joined.
19:01:58 <elliott> Sorry, I was too busy writing an eloquent defence and analysis of wikispam.
19:02:00 <elliott> http://esolangs.org/wiki/User_talk:WLaquitaCuevasa
19:09:27 <elliott> good lord, I got into HWN /again/
19:09:29 <elliott> WHEN WILL MY FAME END
19:10:21 <Taneb> Can you check out salesman now?
19:11:59 <elliott> I'm a bit tired, 'mafraid.
19:12:07 <elliott> Perhaps in a minute.
19:16:50 <elliott> TODO: Optimise Shiro's IPLists
19:17:01 <nooga> ffffffuuuuu
19:17:16 <nooga> my USB mouse does not work with macbook pro
19:17:33 <nooga> or rather, macbook pro doesn't work with the mouse
19:17:43 <Taneb> Search for drivers?
19:19:02 <nooga> FOR GODDAMN USB MOUSE?
19:19:19 <Taneb> FOR A GODDAMN MAC BOOK PRO
19:20:15 <nooga> i hate this computer
19:23:42 -!- cheater has joined.
19:26:47 -!- sliddy has quit (Read error: Connection reset by peer).
19:37:13 <elliott> http://ompldr.org/vYWRiZw thanks duckduckgo
19:40:39 -!- oerjan has joined.
19:41:49 <elliott> hi oerjan hi hihi i hi hi oerjan hi
19:44:17 <oerjan> elliott seems very hi today
19:47:12 <itidus20> hmm
19:47:42 <oerjan> hindley-milner-mycroft
19:47:55 <itidus20> Another day anticipates the sunrise relative to the frame of reference of my window.
19:49:31 <oerjan> apparently that may not exist, but hindley-milner and milner-mycroft do
19:49:50 <itidus20> `log entertainment
19:49:55 <HackEgo> 2009-06-21.txt:20:50:59: <ehird> God, I hate people who say "tl;dr". Because your idiotic soundbites and bits of compacted media and entertainment that you love so much has made your brain incapable to read anything more than a paragraph or two lest your now severe ADHD kick in.
19:49:57 <Taneb> Mycroft as in Holmes?
19:50:03 <elliott> oerjan: ziepress are hard :(
19:50:06 <elliott> zierperpzerierps
19:50:08 <elliott> im
19:50:11 <elliott> cant type much
19:50:17 <elliott> its hard to type :'(
19:50:18 <elliott> and to think
19:50:20 -!- MDude has joined.
19:50:26 <elliott> but one thing is easy......
19:50:27 <elliott> that thing....
19:50:29 <elliott> is saying hi
19:50:29 <oerjan> elliott: and to read
19:50:32 <elliott> oerjan: hi hi hi hi hi hi hi
19:50:37 <elliott> hi
19:50:38 <elliott> hi hi
19:50:38 <elliott> hi
19:50:45 <oerjan> poor elliott, slowly turning into the winslow
19:51:01 <elliott> hi
19:51:03 <oerjan> it was not how he had envisioned eternal life
19:51:17 <elliott> what if i want to win quickly, what then
19:51:57 <oerjan> Taneb: no, as in the type theorist
19:52:25 <elliott> type theory is so gangsta. just saying
19:52:28 <Taneb> Also, I've done some more work on Salesman
19:53:48 <oerjan> mind you i have not yet any real idea what he's done, although "polymorphic recursion" seems a clue
19:54:22 <elliott> `run echo 'flower. what IS a flower?' >wisdom/flower
19:54:24 <HackEgo> No output.
19:54:49 <elliott> oerjan. what IS an oerjan?
19:54:50 <Deewiant> And yet, elliott's said "tl;dr" 92 times according to my logs (and ehird 41 times)
19:54:53 <oerjan> well he cannot be that important, no wikipedia page >:)
19:54:58 <elliott> hi. hi HI hi hi?
19:55:34 <elliott> Deewiant: wut
19:55:40 <elliott> oerjan: i hear he wrote the haskell nientryeight report.....
19:55:43 <elliott> if we're talking about oerjan
19:55:49 <elliott> which i guess acutally we were talking about that type theorists
19:55:50 <Deewiant> elliott: Re. `log entertainment some 20 lines ago
19:56:00 <elliott> Deewiant: oh i didn't pay attention, was it something about me
19:56:10 <Deewiant> I suppose it could've been something you were quoting
19:56:14 <oerjan> elliott: no i'm trying to find out who mycroft is
19:56:40 <elliott> how old was it, anything more than like eight months and i ain't even know who that guy that was me is
19:56:52 <elliott> well it's eight months right now it's kind of variable
19:56:56 <Deewiant> 2009-06-21
19:57:00 <elliott> maybe i'll decide i'm completely alienated with my five-minutes-ago self
19:57:04 <elliott> that would be uh
19:57:04 <elliott> fun
19:57:12 <elliott> Deewiant: oh well that's like before i even remember breathing.
19:57:33 <Deewiant> In fact, you'd used "tl;dr" several times before that, even.
19:57:55 <elliott> token laxative; dangerous recall
19:58:10 <oerjan> seems he was milner's student
19:58:37 <elliott> did he train in the craft of milnering
19:58:48 <Taneb> Milnercraft
19:58:57 <itidus20> Taneb: beat me to it
19:59:10 <elliott> that's a good kraft
19:59:12 <itidus20> i was about 2 keypresses away
19:59:18 <elliott> i didn't even think of that
19:59:22 <elliott> i remain unsmart
19:59:47 <oerjan> <elliott> what if i want to win quickly, what then <-- i detect insufficient phil foglio exposure
19:59:48 <Taneb> According to Wolfram Alpha, the name Haskell is dying out
19:59:54 <itidus20> elliott: you made the inspiring comment. "craft of milnering"
19:59:59 -!- Gregor has quit (Excess Flood).
20:00:04 -!- Gregor has joined.
20:00:04 <itidus20> you can't self-inspire
20:00:06 <elliott> oerjan: folio
20:00:10 <elliott> Gregor: stop flüd
20:00:31 -!- Gregor has changed nick to Guest53387.
20:00:35 <oerjan> <elliott> oerjan: i hear he wrote the haskell nientryeight report..... <-- well that is _so_ last millennium
20:00:46 <elliott> you need to keep contributing typofixes
20:00:47 <elliott> to stay relevant
20:00:48 <elliott> and hip
20:00:51 <elliott> :\
20:02:02 <oerjan> die zauberflüd
20:05:14 <itidus20> spellcraft, morecraft, warcraft, starcraft, minecraft, fortresscraft, fishcraft
20:05:38 <elliott> poopcraft
20:05:44 <Taneb> mincecraft
20:05:46 <itidus20> it's not entirely clear to me what -craft means in the context of video games
20:06:03 <itidus20> it has about as much meaning as super-
20:06:15 <Taneb> Supercraft 64
20:06:22 <Taneb> Advance
20:06:45 <fizzie> "Using closest Wolfram|Alpha interpretation: sun in moon" "Input interpretation: [ Moon | volume ] / [ Sun | volume ]" "Result: 1.556 x 10^-8"
20:06:56 <fizzie> I keep feeding it nonsense, but at least sometimes I get nonsense back.
20:07:05 <fizzie> W|A is unable to compute the length of the solar day of the Sun.
20:07:29 <fizzie> "Input interpretation: [ Sun | solar day ]" "Result: (data not available)"
20:07:35 <elliott> fizzie: Is this how you spend your life?
20:07:45 <fizzie> I is a bit tiered at the moment.
20:07:47 <elliott> Because I mean, I approve.
20:08:08 <Taneb> brb
20:08:38 <fizzie> "tiered sun" => "Using closest Wolfram|Alpha interpretation: ranked sun" => "Input interpretation: [ Sun | rank ]" => "Result: 2228th".
20:09:13 <oerjan> you'da thought it'd rank higher than that
20:09:43 <elliott> sad sun :(
20:10:03 <oerjan> fizzie: are you looking for the time the sun takes to rotate around itself?
20:10:09 <MDude> Of course it can't calculate the solar day of the sun.
20:10:13 <fizzie> "floating sun" gives this really complicated "option name: European lookback with floating strike" financial thingamajigger.
20:10:21 <itidus20> there is a band named supercraft
20:10:26 <MDude> What Oerjan jsut said.
20:10:38 <itidus20> ahh.. "SUPERCRAFT - a up 'n coming Norwegian band in synthpop / futurepop."
20:11:09 <fizzie> I like the comparisons, they're always so sensible.
20:11:38 <oerjan> "Solar rotation is able to vary with latitude because the Sun is composed of a gaseous plasma."
20:11:43 <fizzie> [ Sun | rotation frequency ] => 0.03993 rev / day; comparisons as angular velocity: ~ 0.002 ~ 1/600 x mean angular velocity of slow eye drift movements.
20:11:46 <oerjan> http://en.wikipedia.org/wiki/Solar_rotation
20:12:29 <fizzie> Next time you are having a slow eye drift movement, you can console yourself that the sun rotates only at 1/600th of the speed of your eye.
20:12:40 <itidus20> supercraft at elektrostat http://www.youtube.com/watch?v=r1jbycSRyBY
20:13:11 <MDude> "lunar day of sun" is inerpreted as [Moon | [this | Sunday]].
20:13:29 * oerjan ponders if it would have been better as "superkraft" or not
20:13:51 <oerjan> which incidentally is the norwegian word for superpower
20:14:08 <itidus20> the music is actually good though
20:15:38 <oerjan> i suppose with the c it sounds punny
20:16:11 <itidus20> i can relate to the lyrics a bit (maybe)
20:16:21 <itidus20> `log derealization
20:16:24 <HackEgo> 2011-09-14.txt:00:49:12: <itidus20> monqy: well, theres these feelings of derealization and depersonalization and psychosis which i seem to enter into at times
20:16:42 * oerjan sidles away from itidus20
20:17:08 <MDude> W|A is also unable to compute the solutions for "a ^ b = b ^ a, a != b".
20:17:23 <fizzie> Input interpretation: M_{sun} (solar mass) / housecat typical mass => 3 x 10^29.
20:17:29 <fizzie> That's how many cats there are in the Sun.
20:17:44 <elliott> Yes.
20:18:05 <oerjan> MDude: that's strange, probably doesn't parse the question correctly because mathematica has to have a function for that
20:18:46 <oerjan> b*log a = a*log b, b/log b = a/log a
20:20:40 <MDude> I tried inputing it when I read in Number Freak that and four were the only numbers that could be interchenged like that.
20:20:54 <oerjan> *that two, i assume
20:21:03 <oerjan> and presumably that's integers only
20:21:11 <MDude> Yes.
20:21:30 <oerjan> because clearly if 2,4 are solutions and b/log b is continuous, there have to be others nearby
20:21:48 <elliott> oerjan: have you got serialisation of closures working yet thx
20:22:09 <oerjan> elliott: that seems to be outside my area of expertise, but i hear erlang does that
20:22:34 <oerjan> and also there was a haskell project with a modified ghc iirc
20:22:44 <elliott> maybe that's what that cloud haskell thing does.
20:22:53 <elliott> I _think_ I can do it with vacuum... it'll just be such a huge unimaginable pain
20:22:55 <oerjan> that sounds about right
20:23:17 <oerjan> yes, vacuum is pretty painful i guess
20:24:44 <elliott> is that a pun
20:24:52 <oerjan> but of course
20:25:00 <elliott> :(
20:25:05 <fizzie> Plain "a^b = b^a" gives a ContourPlot[a^b == b^a, {a, 0.36, 6.3}, {b, 0.36, 6.3}] followed by a solution for b; b = -a W(-log(a) / a) / log(a), where W(z) is ProductLog[z], the principal solution for w in z = w e^w.
20:25:29 -!- itidus21 has joined.
20:25:52 <elliott> oerjan: did you like my analysis of wikispam.
20:26:13 <elliott> it is beautiful.
20:26:17 <oerjan> if you graph log b / b it is probably obvious that there are only finitely many options
20:26:32 <oerjan> elliott: i haven't got to that tab yet
20:26:39 <oerjan> ->
20:27:15 <elliott> oerjan: is that you moving tabs
20:28:52 -!- itidus20 has quit (Ping timeout: 276 seconds).
20:31:38 -!- itidus21 has quit (Quit: Leaving).
20:32:21 -!- itidus20 has joined.
20:34:17 -!- itidus20 has quit (Client Quit).
20:34:58 <elliott> `? oerjan
20:34:59 <HackEgo> Your future evil overlord oerjan is an expert in lazy computation.
20:35:04 <elliott> ok
20:43:50 -!- itidus20 has joined.
20:46:37 -!- itidus20 has quit (Client Quit).
20:50:26 -!- itidus21 has joined.
20:50:50 <Sgeo__> `? add
20:50:52 <HackEgo> add? ¯\(°_o)/¯
20:50:55 <Sgeo__> `? Sgeo
20:50:57 <HackEgo> Sgeo invented Metaplace sex.
20:51:31 <Sgeo__> ಠ_ಠ
20:51:51 <Taneb> `? What's all this then?
20:51:52 <HackEgo> What's all this then?? ¯\(°_o)/¯
20:52:36 <Taneb> Also, goodnight
20:52:40 -!- Taneb has quit (Quit: TTFN).
21:00:35 <elliott> https://github.com/xonatius/linux/commit/bdb25f1ee3bae85433d94e9192f8a18a880b28ac
21:00:37 <elliott> how not to patch
21:01:09 <elliott> oh my god people actually started spamming torvalds/linux pull request comments yelling at him for not liking them..........
21:05:55 -!- nooga has quit (Ping timeout: 260 seconds).
21:06:20 <Sgeo__> elliott, where are those comments
21:06:34 <elliott> https://github.com/torvalds/linux/pull/11
21:13:56 -!- sllide has joined.
21:25:27 -!- monqy has joined.
21:27:24 <elliott> ah, the friendship monqy
21:28:48 <elliott> oerjan: impart wisdom
21:28:50 <monqy> hi
21:32:09 <oerjan> `run echo "The friendship monqy is an ancient Chinese mystery; ask itidus21 for details." >wisdom/monqy
21:32:11 <HackEgo> No output.
21:32:26 <oerjan> `? monqy
21:32:28 <HackEgo> The friendship monqy is an ancient Chinese mystery; ask itidus21 for details.
21:32:36 <itidus21> :-s
21:33:14 <oerjan> elliott: like that?
21:33:18 <itidus21> i do have an extensive collection of english-translated ancient chinese books and ebooks... but i don't know much about it
21:33:57 <itidus21> and my memory is hopeless
21:34:25 <oerjan> although better than your joke detector
21:34:25 -!- augur has quit (Remote host closed the connection).
21:35:39 <elliott> oerjan: you keep ruining all the
21:35:40 <oerjan> (ok so there may be an oblique reference to the journey to the west in there)
21:35:40 <elliott> quotes :'(
21:35:42 <elliott> erm
21:35:44 <elliott> s/quotes/wisdoms/
21:35:45 <elliott> it was
21:35:46 <elliott> so wisdom before
21:35:47 <elliott> it was
21:35:50 <elliott> monqy dead :'(
21:35:55 <elliott> also
21:35:59 <elliott> you have anxetraneous
21:36:01 <elliott> space
21:36:03 <elliott> :'(
21:36:03 <elliott> im
21:36:03 <elliott> cry
21:36:08 <elliott> `run echo "The friendship monqy is an ancient Chinese mystery; ask itidus21 for details." >wisdom/monqy
21:36:10 <HackEgo> No output.
21:36:14 <elliott> is itidus20
21:36:18 <elliott> not suitable for asking
21:36:23 <elliott> must we only ask the upgraded
21:36:26 <elliott> version
21:36:34 <elliott> ????
21:37:39 <elliott> oerjan: ???
21:38:19 <oerjan> a complicated question. is his memory getting worse or better with time?
21:38:48 <elliott> help
21:39:11 <oerjan> is itidus21 using mystery to reverse entropy?
21:39:42 <elliott> looking ghostly
21:40:44 <itidus21> i don't know the stuff seriously
21:41:11 <itidus21> i do know that leibniz was curious about the i ching
21:41:35 <itidus21> and wolframalpha says that yin yang is like mathematical monad
21:42:17 * elliott logreadnotes to self
21:42:19 <elliott> --
21:42:19 <elliott> -- TODO: Shorten this and other functions by using (~==) from TagSoup,
21:42:19 <elliott> -- see e.g. http://neilmitchell.blogspot.com/search/label/tagsoup
21:42:19 <elliott> --
21:42:43 <elliott> (for my fizzie-clone :P)
21:43:34 <oerjan> fizzie: what do you feel about being cloned?
21:44:08 <itidus21> oerjan: if you clone your enemy can you find his weaknesses?
21:44:40 <oerjan> some of them, maybe
21:45:00 <itidus21> perhaps having a dna sample of your enemy could give insight into their weaknesses
21:45:13 <itidus21> im not meaning that this is a good thing..
21:45:23 <itidus21> but seems like an inevitable military application
21:45:50 <itidus21> you could discover allergies they don't know they have
21:46:23 <itidus21> but on the topic of allergies i have heard it might not be genetic.. i dunno
21:47:59 -!- Zuu has quit (Ping timeout: 260 seconds).
21:53:07 <itidus21> back. a topic i am interested in is definitions of difficult and easy
21:54:00 <itidus21> for me easy to difficult is a continuum, easy being involuntary, difficult being impossible
21:54:48 <elliott> impossible is nothing
21:56:01 <itidus21> i think a task moves towards impossible as the ratio of required materials, time, kilojoules moves away from the available materials, time, kilojoules
21:56:38 <itidus21> but also the capacity to bridge the gap between the required and available affects it
21:57:32 <elliott> oerjan: are you learning, im learning
21:57:53 <itidus21> you just don't like the word difficult
21:58:05 <itidus21> noone seems to
21:58:43 <itidus21> impossible to me is if any chatter here is not dead within 130 years
21:59:03 <itidus21> i don't believe any amount of science will manage it
21:59:19 <itidus21> because for one thing science requires money
21:59:25 <itidus21> and money is a finite resource
22:00:33 <itidus21> so this time constraint of 130 years may just make it unworkable
22:01:08 <itidus21> sure if you remove constraints then things become possible
22:02:34 -!- DH____ has quit (Ping timeout: 260 seconds).
22:02:56 <itidus21> impossible is also if i held up fingers anyone being able to count them..
22:03:34 -!- DH____ has joined.
22:04:13 <itidus21> although there is a possibility that someone really does have a camera in place to count them, it is not a real possibility
22:05:07 <itidus21> ok ill go chill out
22:05:10 -!- itidus21 has left ("Leaving").
22:06:47 -!- itidus21 has joined.
22:07:44 -!- itidus21 has left ("Leaving").
22:10:09 -!- sllide has quit (Ping timeout: 260 seconds).
22:10:50 -!- itidus21 has joined.
22:12:04 <itidus21> lagging bad
22:12:10 <itidus21> maybe impossible is a limit
22:12:24 <itidus21> which you can only approach,kind of like infinity
22:15:03 <itidus21> ^not that i want to be here in 130 years
22:17:04 <itidus21> `log shenanigan
22:17:09 <HackEgo> 2011-08-16.txt:12:46:24: <fizzie> For a piece of real hardware, BytePusher's screen is particularly anemic. No sprites, no hardware scroll, no programmable palette, no mid-frame interrupts to do shenanigans, just in general no help from the hardware at all.
22:18:07 <itidus21> `log random
22:18:11 <HackEgo> 2008-10-31.txt:22:36:45: <ehird> h = randomColorScheme(h, ...)
22:18:37 <itidus21> `log impossible
22:18:41 <HackEgo> 2009-07-25.txt:00:36:02: <ehird> that's impossible
22:18:48 <monqy> good log
22:19:42 <itidus21> `log world
22:19:45 <HackEgo> 2008-08-08.txt:12:10:10: <tusho> optbot: you wanna be on #worlddomination too right?
22:20:00 <itidus21> `log world
22:20:04 <HackEgo> 2011-02-04.txt:22:36:46: <elliott> Man, I woke up in a strange new world where "poop" is a swear word.
22:20:40 <itidus21> `log dwarf
22:20:41 -!- elliott has quit (Ping timeout: 252 seconds).
22:20:43 <HackEgo> 2011-02-01.txt:21:00:17: <ais523> elliott: I'm trying to make a comment on Dwarf Fortress' astonishing CPU usage
22:20:51 <oerjan> `log hid the body
22:20:54 <HackEgo> 2011-09-15.txt:22:20:51: <oerjan> `log hid the body
22:21:02 <monqy> `log hide the body
22:21:05 <HackEgo> 2011-09-15.txt:22:21:02: <monqy> `log hide the body
22:21:16 <itidus21> `log the body
22:21:19 <HackEgo> 2011-03-21.txt:15:30:31: <Gregor> Does the body actually have a "drowning" reflex per se?
22:21:23 <oerjan> darn, my attempt to use the logs to solve crime, thwarted
22:21:24 <olsner> `log the log
22:21:27 <HackEgo> 2011-01-21.txt:23:03:59: <ais523> set it to remember the login
22:21:45 <itidus21> @gregor, yeah.. the reflex is discussed on wiki page of common misconceptions
22:24:03 <itidus21> impossible = talking someone out of doing something malicious to you
22:24:51 <olsner> sounds quite useless to have a drowning reflex, I can see the use for a non-drowning reflex though
22:25:20 <itidus21> basically the drowning reflex is not social
22:25:29 <itidus21> its not designed to draw others attention
22:25:34 -!- FireFly has quit (Quit: FireFly).
22:25:42 <itidus21> all energy becomes concentrated on survival
22:25:52 <itidus21> unfortunately its quite useless
22:26:37 <itidus21> if drowning reflex worked you wouldn't need bodyguards
22:26:44 <itidus21> ^lifeguards
22:29:47 -!- Patashu has joined.
22:34:28 <Guest53387> itidus21: You're responding to RANDOM LINES FROM THE LOG?!?!
22:35:05 <monqy> hi Guest53387
22:35:42 <itidus21> Guest53387: yeah, except, i must add that it migt be a social thing.. but the point is the drowning reflex is something you could be 5 feet away from someone and not know they're drowning
22:35:50 <itidus21> unless you know what to look for
22:36:26 <monqy> I'm going to try this responding to random lines from the log thing
22:36:27 <monqy> `log
22:36:29 <HackEgo> 2007-05-03.txt:15:29:14: -!- crathman has joined #esoteric.
22:36:34 <monqy> hi crathman
22:36:36 <monqy> `log
22:36:38 <HackEgo> 2006-10-13.txt:23:38:47: <ihope> RodgerTheGreat: wait, writing all this on the alphasmart thing?
22:36:45 <itidus21> human body is not good at a few things "rotting teeth"... "drowning"
22:36:55 <Guest53387> HALLO I AM GUEST
22:37:02 <olsner> human body is bad at many things
22:37:20 <monqy> `log
22:37:20 <Guest53387> SHALL WE WORSHIP THE GREAT OVERSEER NOW?
22:37:21 <HackEgo> 2007-11-19.txt:23:09:02: <oklopol> unfortunately people don't seem to be able to learn an alphabet no matter how many memory pegs you give them
22:37:28 <itidus21> i mean we need a dentist industry to avoid chronic tooth pain? its really that bad?
22:37:43 <itidus21> evolution fucked up on the teeth department
22:37:52 <monqy> :'(
22:38:14 -!- Guest53387 has changed nick to Gregor.
22:38:27 <DH____> Pfft. You're just being picky...
22:38:41 <monqy> `log
22:38:43 <HackEgo> 2005-01-25.txt:05:06:25: -!- calamari has joined #esoteric.
22:38:50 <monqy> hi calamari
22:38:54 <oerjan> itidus21: evolution may not have foreseen industrial sugar
22:38:57 <itidus21> well i feel bad about my rant before
22:39:12 <itidus21> so im overcompensating :)
22:39:24 <DH____> As long as you don't care what you look like you rarely need to go to a dentist...
22:39:43 <itidus21> but a toothache won't just stop
22:39:44 <Gregor> To be fair, evolution has no interest.
22:40:05 <Gregor> Evolution cares only enough about you to make sure you get laid.
22:40:11 <Gregor> After that, it leaves you on the curb.
22:40:18 <itidus21> dh_ ok you're right
22:40:21 <Gregor> Evolution is the ultimate wham-bam-thank-you-{ma'am,sir}
22:41:00 -!- ive has quit (Ping timeout: 260 seconds).
22:41:10 <oerjan> Gregor: there _is_ a theory that humans have evolved the ability to be grandparents, you know
22:41:44 <Gregor> oerjan: OK, OK, it's more like "until children are weaned", but basically its influence drops quite fast after your kids are likely to have kids.
22:41:46 * oerjan does suspect Gregor is not entirely serious
22:41:50 <monqy> I've even heard myths of great grandparents
22:42:07 <oerjan> i think i met my great grandfather once
22:42:24 <oerjan> but i was quite small
22:42:26 <itidus21> :o
22:42:36 <itidus21> ability to be grandparents
22:42:42 <itidus21> thats pretty intense
22:42:45 <monqy> it's like a superpower
22:42:48 <olsner> woah, GRANDparents
22:43:00 <itidus21> most animals don't become grandparents?
22:43:31 <oerjan> erm, i mean ability to have a _role_ as grandparents, as opposed to just generally existing (or not)
22:43:50 <itidus21> `log sandwich
22:43:53 <HackEgo> 2009-02-28.txt:20:19:26: <GregorR> People need to replace the term "GLBT" with "GBLT". Support your local gay bacon lettuce and tomato sandwich.
22:44:03 <olsner> `log sammich
22:44:06 <HackEgo> 2009-05-28.txt:21:28:38: <GregorR-L> !bfjoust make_me_a_sammich (>)*10+>->+[[-]>+]
22:44:19 <itidus21> `log bread
22:44:20 <oerjan> perhaps some other very social animals do too
22:44:23 <HackEgo> 2007-04-09.txt:00:51:29: <SevenInchBread> but I'm assuming that's what they exist for.
22:44:31 <itidus21> `log toast
22:44:31 <olsner> Gregor's spelling of sandwich is inconsistent :/
22:44:34 <HackEgo> 2010-12-17.txt:19:31:42: <Deewiant> elliott: No, but my toaster is.
22:44:48 <itidus21> `log crossaint
22:44:52 <HackEgo> 2011-09-15.txt:22:44:48: <itidus21> `log crossaint
22:44:53 <monqy> samwich, sandmich
22:45:06 <olsner> `log burrito
22:45:09 <HackEgo> 2011-03-20.txt:22:26:31: <myndzi> aw, i put a burrito in the microwave on defrost and it burst
22:45:18 <monqy> that happens to me too
22:45:20 <itidus21> `log sandwich
22:45:24 <HackEgo> 2010-01-17.txt:00:13:34: <Gregor> I am eating a turkey sandwich made with it /right now/.
22:45:24 <oerjan> olsner: not every sandwitch raises to the quality needed to be a sammitch. or so i hear.
22:45:32 <oerjan> *sandwich
22:45:35 <itidus21> `log sandwich
22:45:37 <Gregor> I believe
22:45:39 <HackEgo> 2010-12-09.txt:19:07:39: <fizzie> Phantom_Hoover: Or lightly-garnished sandwiches.
22:45:40 <Gregor> That the "it" there
22:45:43 <olsner> oerjan: so you hear, so you hear
22:45:43 <Gregor> Was BACONNAISE
22:45:47 <monqy> sandwhich
22:46:03 <itidus21> `log sammich
22:46:06 <HackEgo> 2009-11-13.txt:20:03:58: <zzo38> I found a page on the wiki called [[Sammich]] but it seems it so far is only a example program, do you think anything should be done with that?
22:46:46 <monqy> sammich is a bad wiki page
22:48:09 <oerjan> sammizdat
22:49:30 -!- nooga has joined.
22:52:19 <itidus21> http://blog.progopedia.com/2011/jul/31/gourmet-programming/
23:04:06 <itidus21> ok so i was thinking and reading,
23:04:29 <itidus21> it has occured to me that chessboard does not contain an encoding of the rules of chess within itself
23:04:38 <Patashu> yup
23:04:45 <itidus21> this is a terrible situation
23:05:15 <itidus21> so i thought of a possible solution
23:05:50 <oerjan> the quineboard!
23:07:52 <DH____> Not a cheeseboard for gourmet programming?
23:08:07 <Patashu> There are chess variants about food
23:08:44 <itidus21> i was reading hither and thither
23:09:49 <itidus21> ok this is the general idea http://oi53.tinypic.com/21jtzs5.jpg
23:10:31 <itidus21> someone in here once mentioned to me that some game where each piece was a chessboard of its own
23:11:09 <itidus21> but the idea i am looking at here is each piece is an address of some program section which defines it
23:11:35 * oerjan suddenly is reminded of titan
23:12:03 <oerjan> oh, also shogun
23:12:27 <itidus21> so the chessboard itself i am trying to see as being just a part of a program
23:12:39 <oerjan> although that wasn't every piece, just a smaller board for battles
23:12:55 <Patashu> there are plenty of chess programs
23:13:34 <itidus21> humm.. so how would it work.. it would be
23:14:22 <itidus21> well firstly you might have a data structure representing a chess piece
23:15:08 <itidus21> and each class of chess piece could be some numbers plugged into that data structure
23:16:01 <itidus21> and, so, you could, say each piece was a pointer to a chess piece data structure
23:16:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:18:00 <itidus21> ok Betza defines a pawn as "mfWcfFimfW2" and Parlett defines a pawn as "o1>, c1X>, io2>"
23:18:20 <itidus21> so you could store "mfWcfFimfW2" at say, address 100
23:18:50 <itidus21> and your row of pawns would then all be pointers to address 100
23:19:50 <itidus21> now if a piece could break out of the board.. and tamper with the definition of a pawn
23:20:03 <itidus21> it could start getting quite interesting
23:23:15 -!- nooga has quit (Ping timeout: 240 seconds).
23:29:39 -!- Jafet has quit (Quit: Leaving.).
23:29:44 <itidus21> Patashu: so the program becomes the board.. and pieces are presumably tracked by some kind of array or list
23:34:36 <itidus21> so when it is your turn you would select a cell from those available in your list of cells, and a desired place to move it, and it would look up the instructions of the piece by following its address
23:34:39 -!- augur has joined.
23:35:05 <itidus21> for example pawns might be described at address 100, and then, if your move is possible it would be made
23:37:05 -!- ive has joined.
23:52:03 <CakeProphet> itidus21: there is no fenestrated wall in programs.
23:53:11 <CakeProphet> ^style europarl
23:53:11 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
23:53:14 <CakeProphet> fungot: you make me fun
23:53:15 <fungot> CakeProphet: mr president, as a result of this position, which is the accelerated procedure allowing the implementation of the civil aspects of the euro is not just thought about young people we should recognise that we must not allow ourselves to create a specialized, centralized courts in all our countries are going to guarantee the democratic legitimacy of the european union
23:53:30 <CakeProphet> fungot: you make me fun
23:53:31 <fungot> CakeProphet: mr president, i should like to start by thanking mr salafranca snchez-neyra has said, i have to say. because development cooperation has been placing increasing emphasis on development by integration into the market of genetically-modified maize modified by fnord, the parameters of the berlin wall, which amounts to resigning itself to a structural reform of its organisation and is asking the commission to consult
23:56:46 <oerjan> there should be a fenestrated wall in programs, so that you can have a defenestrate command.
23:57:58 -!- fungot has quit (Ping timeout: 244 seconds).
23:59:11 <oerjan> ouch
←2011-09-14 2011-09-15 2011-09-16→ ↑2011 ↑all