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:23 <elliott> `run ln -s wisdom/monad{,s}
00:00:24 <HackEgo> ln: creating symbolic link `wisdom/monads': File exists
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:35 <HackEgo> /hackenv/bin/learn: line 4: wisdom/monad: No such file or directory \ I knew that.
00:00:35 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.3547
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:01:01 <elliott> `run cd wisdom; ln -s monads monad
00:01:07 <HackEgo> Monads are just monoids in the category of endofunctors.
00:01:13 <shachaf> `run mv wisdom foolishness
00:01:20 <elliott> `run mv foolishness wisdom
00:02:07 <elliott> `run echo $(($(cat /dev/null)+1))
00:02:47 <elliott> You're encouraging botnonsense mode, shachaf.
00:03:02 -!- augur has joined.
00:03:08 -!- MSleep has changed nick to MDude.
00:03:47 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: >: not found
00:03:57 <HackEgo> rm: invalid option -- \ Try `rm --help' for more information.
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:55 <shachaf> I just think I'll encourage the nonsense to stop.
00:05:46 <shachaf> Do you people ever talk about esoteric languages?
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:09 <elliott> `run mv MYMX bin/karma; chmod +x bin/karma
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: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: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:21 <elliott> `run mkdir karma; touch karma/.doorstop
00:07:24 <itidus20> thats why i added "according to" clause :D
00:07:27 <HackEgo> cat: karma/shachaf: No such file or directory \ shachaf has karma 0.
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: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:19 <elliott> `run mv jcDD lib/adjustkarma; chmod +x lib/adjustkarma
00:08:24 -!- Sgeo__ has joined.
00:08:27 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shachaf: not found
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:09:40 <elliott> Gregor: BUUUUUUUUUUUUUUUUUUUGS
00:09:55 <elliott> `run mv bin/'++' bin/karma'+'; mv bin/'--' bin/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:27 <elliott> I forgot to case-normalise karma
00:10:52 <HackEgo> rm: cannot remove `wisdom/esoteric': No such file or directory \ Forget what?
00:10:59 <HackEgo> 2007-05-31.txt:20:28:35: <Pikhq> Ne, ne, ne! Lernu Esperanton.
00:11:01 <elliott> Gregor: You handle `-- incorrectly
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 <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:31 <shachaf> `run lib/adjustkarma shachaf +1000
00:11:32 <elliott> `run mv RaVh lib/adjustkarma; chmod +x lib/adjustkarma
00:11:34 <HackEgo> 2008-06-02.txt:15:08:16: <pikhq> I'd tend to say "Esperanto parolas vin", BTW.
00:11:43 <HackEgo> cat: RaVh: No such file or directory
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:12:05 <shachaf> elliott: I wasn't particularly unaware of it beforehand.
00:12:22 <shachaf> This wasn't exactly a "zomg guys u have a bug!!!!"
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 <elliott> Gregor: Can you cause any foo++ and foo-- in a message to run bin/karma+ foo or bin/karma- foo
00:12:52 <shachaf> `run echo 1337 > karma/elliott
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:12 <elliott> preflex and lambdabot agree thoroughly.
00:14:44 <Lymee> `run lib/adjustkarma elliott -100000
00:14:46 <HackEgo> elliott has -100000 karma.
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:15:07 <shachaf> elliott: That's true of everyone in this channel.
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:15 <elliott> `run chmod +x bin/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:27 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/pastekarma
00:16:38 <elliott> What's the right way to do it?
00:16:42 <elliott> for thing in `echo karma/*`; do
00:16:46 <elliott> is meant to be a Useless Use of Whatever.
00:17:00 <elliott> `run for thing; do echo $thing; done
00:17:17 <elliott> That's for argument processing
00:17:37 <Sgeo__> LOLOLOL at rather idiotic VirtualBox bug
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:14 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27268
00:18:41 <elliott> It should become minus one.
00:18:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8129
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: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:20:01 <elliott> TIME TO SIT BACK AND RELAX
00:20:08 <HackEgo> 2008-10-29.txt:14:43:05: <ehird> Relax, sit back. It'll be alright.
00:20:31 <elliott> shachaf: Botmadness officially over.
00:20:34 <HackEgo> 2007-04-29.txt:02:44:01: <bsmntbombdood> 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:09 <HackEgo> http://codu.org/projects/hackbot/fshg/
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: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: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:12 <shachaf> elliott: Doesn't look that way.
00:23:17 <elliott> `run mv karma/.doorstep karma/.doorstop
00:23:22 <elliott> shachaf: This isn't botmadness, this is just botusage.
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:38 <Lymee> `run echo abcd > karma/test
00:24:51 <HackEgo> rm: cannot remove `karma/tet': No such file or directory
00:33:25 <elliott> Gregor: So what were you actually doing :P
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: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: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:52 <HackEgo> 2010-08-03.txt:03:49:52: <SgeoN1> My dad has been paranoid about mad cow disease
00:36:52 <HackEgo> 2008-08-03.txt:19:13:23: <Deewiant> tusho: eiffel is from the USA
00:36:58 <HackEgo> 2010-10-24.txt:18:01:42: <elliott> Gregor: Also you have rabies.
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:39 <HackEgo> 2008-01-27.txt:21:49:49: -!- Asztal^_^_ has joined #esoteric.
00:37:47 <HackEgo> 2007-10-24.txt:02:41:29: <Fa1r> hum... sounds like useful one ^___^
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: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:24 <HackEgo> 2006-01-16.txt:00:59:08: <GregorR-L> Figured, short lesson ^_^
00:38:32 <HackEgo> 2008-06-25.txt:11:46:02: <KingOfKarlsruhe> its a 10 minutes program ^^
00:38:37 <HackEgo> 2010-02-01.txt:00:10:40: <bsmntbombdood> wouldn't like me use the quadratic formula ^_^
00:38:46 <HackEgo> 2009-04-30.txt:18:54:38: * oerjan hugs fungot
00:38:54 <HackEgo> 2007-03-29.txt:18:31:11: <oerjan> it's that in Hugs at least
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:35 <Gregor> elliott: That good idea seems to be a bad idea :P
00:39:42 <elliott> that ? was the lambdabot prefix :P
00:39:46 <Gregor> elliott: I've been implementin', not readin'
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: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: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:04 <HackEgo> 2011-09-15.txt:00:42:01: <itidus20> `log gobshite
00:42:08 <elliott> <HackEgo> Brainfuck HAS ENOUGH DERIVATIVES
00:42:13 <Gregor> elliott: Gobbledywtflol?
00:42:16 <elliott> <HackEgo> [something witty]
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: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:46 <elliott> Gregor: huh, what, why, when, who, whom, where
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: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:30 <elliott> just grep for the helpful i dunno lol.
00:46:51 <elliott> (This is my implementation test.)
00:47:58 <elliott> Wasn't that on /r/,inecraft like a year ago :P
00:55:34 <itidus20> i found it in the log. fizzie was describing the word notch
01:00:02 -!- sllide has joined.
01:01:54 * shachaf isn't sure what's going on.
01:04:35 <Gregor> Yeah, I'mma not deal with that today :P
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:59 <HackEgo> 2010-12-27.txt:17:25:49: <Quadrescence> elliott: u 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: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:37 <shachaf> Stop highlighting kmc's name.
01:05:41 <shachaf> He did nothing to deserve this.
01:07:46 <itidus20> http://ko.wikipedia.org/wiki/HQ9%2B
01:10:14 <itidus20> http://ru.wikipedia.org/wiki/Feckfeck
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: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:06 <HackEgo> 2004-06-24.txt:06:22:05: -!- deltab has quit (sterling.freenode.net irc.freenode.net).
01:14:13 <HackEgo> 2007-02-04.txt:14:05:02: -!- ihope_ has joined #esoteric.
01:14:23 <HackEgo> 2007-07-15.txt:02:32:03: <Figs> or linguine!
01:14:59 <HackEgo> 2010-11-21.txt:20:34:24: <elliott> Phantom_Hoover: so?
01:15:17 <HackEgo> 2009-04-12.txt:00:33:15: <psygnisfive> WHAT IS LOVE
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: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:31 <HackEgo> 2009-09-09.txt:23:08:43: <Rugxulo> ah, out of memory
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: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: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: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:41:10 <monqy> whats tart is it a progragmeing langauge
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:45:10 <Gregor> `learn augur took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible.
01:46:02 <elliott> Gregor you are so irresponsible.
01:48:56 <elliott> `learn augur took no cakes.
01:49:16 <augur> what does `learn do
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: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:45 <monqy> lets just leave that there
01:51:42 <elliott> Sgeo__: What on earth made you think that was the syntax
01:52:01 <Sgeo__> Having vague recollections of Rodney
01:52:13 <HackEgo> #!/bin/sh \ lib/adjustkarma "$1" -1 \
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:40 <itidus20> `learn will demonstrate to sgeo the syntax.
01:52:42 <elliott> `run echo $(($(cat /dev/null) -1))
01:52:46 <HackEgo> will demonstrate to sgeo the syntax.
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:28 <HackEgo> cat: karma/Sgeo: No such file or directory
01:53:33 <itidus20> `learn easy is figuring out the syntax of the learn command.
01:53:54 -!- augur has quit (Remote host closed the connection).
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:48 <Sgeo__> `run echo stolen elliotts karma >> karma/sgeo
01:54:56 <HackEgo> sgeo has -1 \ stolen elliotts karma karma.
01:55:38 <HackEgo> cat: wisom/shachaf: No such file or directory
01:56:12 <elliott> `learn Everyone in here is mad.
01:57:02 <itidus20> `learn ievan is basically http://www.youtube.com/watch?v=4om1rQKPijI
01:57:20 <elliott> Can we mark all entries itidus20 adds somehow?
01:58:09 <Sgeo__> itidus20, thank you for that video
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:53 <HackEgo> 2011-09-15.txt:01:59:50: <itidus20> `log itidus `learn
02:00:23 <HackEgo> 2011-09-15.txt:01:52:40: <itidus20> `learn will demonstrate to sgeo the syntax.
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:37 <HackEgo> 2011-09-15.txt:02:00:29: <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: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:01:02 <HackEgo> 2011-09-15.txt:02:00:44: <itidus20> `log <itidus20> `learn
02:01:08 <HackEgo> 2011-09-15.txt:02:00:39: <itidus20> `log <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:03:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19927
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: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:46 <Gregor> Sooooooooo I think that English is just terrible.
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: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: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: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:56 * Sgeo__ ponders doing the Maybe monad in .NET via reflection
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: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: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: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: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: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:45:49 <pikhq> I'm pretty sure actors are monadic.
02:46:01 <oklopol> but that is irrelevant, they say
02:46:30 <Sgeo__> This is the first I'm learning of an actor-monad connection
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:24 <elliott> It takes something special to reinvent functions and claim they solve concurrency.
02:47:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
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:53:21 <elliott> Gregor: What's that meant to mean :P
02:53:37 <elliott> STM is a reinvention of functions?
02:54:10 <Gregor> STM is also way up there for worst possible ideas :P
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: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
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: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: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: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: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: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: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: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: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: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: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:44 <Gregor> OK, I'll revise my former statement as such:
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:17 <Gregor> elliott: Sooooooooooooo ... ACTORS?
03:30:20 <itidus20> stateless operates above state
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: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: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: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:47 <itidus20> what about positioning stateless programming in the computer architecture?
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: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:43 <itidus20> its an attempt to distract you
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:27 <elliott> `learn itidus20 is horny 60 year olds having cybersex in minecraft
03:37:32 <elliott> I hope you like your new biographies
03:37:54 <elliott> Gregor: Say... isn't HackEgo's concurrency mechanism kinda like STM? :D
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: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: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:23 <elliott> If I implement it will you add it? :P
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: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:43 <itidus20> Gregor: directnet is a good idea.
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: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: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: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:48 <Sgeo__> You lot would prefer that
03:48:54 <elliott> I have no idea what you are talking about.
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: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: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: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:55 <elliott> Gregor: But yeah OK, here's a simpler, atomic system:
03:54:22 <Lymee> `run echo *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: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: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: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:22 <pikhq> Gregor: Well, I think they had to do a manual reimplementation of e.g. user32.dll.
04:00:38 <elliott> Gregor: I thought it was C.
04:00:45 <Gregor> Only the IRC interface is.
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: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: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: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: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:21 <HackEgo> ghc: no input files \ Usage: For basic information, try the `--help' option.
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: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: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: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: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: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:28 <itidus20> elliott, oklopol: here is the improved MK2 model.. actually becoming potentially useful: http://oi56.tinypic.com/kbq1di.jpg
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: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:26:56 <elliott> ..........???????????????????????
04:27:12 <Gregor> I honestly have no answer for you at all :P
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: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: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: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: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:29:15 -!- Zuu has quit (Ping timeout: 244 seconds).
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: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:09 <elliott> `log I know what this will do.
04:33:09 <HackEgo> Mmmm ......................................... no.
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:36:03 * Sgeo__ ponders using TinyCore as a desktop
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: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: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:54:04 <itidus20> ignoring 0 and 1 it can be described this way
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: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: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: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: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:13 <monqy> if a stream is 1 it's or
04:58:31 <monqy> still not anything really powerful
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:55 <itidus20> well it is very absurd thing i have drawn.
05:01:07 <Lymee> Dwarven physics is more practical.
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: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: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: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:10 <Gregor> elliott: Lots of fullscreen windows.
05:24:23 <elliott> Gregor: ugly.html or just ugly.png?
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: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:18 <Gregor> elliott: Also a good wallpaper: http://codu.org/spinners.png
05:26:37 <elliott> Nobody ever made my perfect wallpaper :(
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:29:07 <elliott> Black/white/black/white lines vertically
05:29:13 <elliott> Now imagine rotating this place
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:30:32 <Sgeo__> How is reference counting slow?
05:30:35 <Sgeo__> I get the inaccurate part
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:41 <elliott> Because you branch on every ref--.
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: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: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: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 <elliott> Sgeo__: Here's mark and sweep: Start from the current closure. Traverse every pointer you see, set its "mark" bit.
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:24 <elliott> I'm pretty sure this is the Active Wo-
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: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: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:35 <elliott> Oh my god this Flash advert.
05:40:47 <elliott> http://secondlife.com/_img/pix.gif
05:40:53 <elliott> not the real url of the pix
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: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: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:49 <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
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:32 <elliott> OK, with slightly less risk, admittedly.
05:44:42 <Gregor> Much greater obesity risk.
05:44:54 <pikhq> elliott: My criticism comes from first-hand experience.
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:46 <elliott> Spirituality & Belief (26)
05:45:51 <elliott> YES THIS IS GOING TO BE THE BEST CATEGORY
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: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:25 <Gregor> elliott: I suspect a steampunch in the face would hurt considerably more.
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: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:23 <elliott> I am completely devoid of words.
05:47:29 <itidus20> i personally think the steampunk world looks the most fun
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: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 <itidus20> i think steampunk is kinda soft-anarcho-primitivism
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: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:30 <pikhq> CakeProphet: Best thing?
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: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 <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: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: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:15 <elliott> theres a steampunk category
05:51:18 <elliott> There are no destinations in this category with the maturity rating of Any.
05:51:24 <elliott> are they all steampunk sex worlds
05:51:35 <itidus20> i guess its all the same in the end
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: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:40 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/6664.jpg
05:53:45 <elliott> http://common-flash-secondlife-com.s3.amazonaws.com//new/destinations/en/_img/fullsize/6664.jpg
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: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: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: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:45 <CakeProphet> dark ambient music such as Voice of Eye: http://www.youtube.com/watch?v=jZ_fUZDeNQo
05:55:46 <elliott> http://secondlife.com/destination/cyrus-apollo-s-giant-bears
05:55:47 <Sgeo__> There used to be devices that could send people up billions of meters against their will
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: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: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:55 <Sgeo__> I mostly don't get involved with that stuff. Except one of the sandboxes I _used_ to like was a furry sandbox
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: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:02:01 <Sgeo__> Oh, that sort of thing
06:02:14 <Sgeo__> Saw something like it before
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:04:00 <elliott> NOOOOOOOOOOOOOOOOoooooooooooooo
06:04:05 <monqy> is that furspeak for fuck you
06:04:30 <monqy> dropped a fat beat
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:47 <elliott> Oh well, screen-scraping is easy
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: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:34 <monqy> that smile god damn
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: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: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: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:14:33 <monqy> so what is it you want to do again
06:14:35 <monqy> calculate sl gravity
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: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: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: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: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:55 <zzo38> TV PLOT is something I found in a very old book but I updated it with more choices
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: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: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: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:49 <elliott> are those non-grid boards playable
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:15 <Patashu> let me see if I can find it
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: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: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:31 <zzo38> No, I don't think so
06:59:48 <HackEgo> 2010-12-07.txt:21:06:31: <HackEgo> I'm Godzilla coming! I want to die!
07:00:20 <Vorpal> I think the script needs to convert back from HTML escapes
07:00:42 <Vorpal> <HackEgo> 2010-12-07.txt:21:06:31: <HackEgo> I'm Godzilla coming! I want to die!
07:00:46 <elliott> The script does not make any HTTP requests.
07:00:53 <Vorpal> elliott: well was it like that in the original?
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:56 <Vorpal> `run file /hackenv/bin/?
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: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:02 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip//hackenv/bin/?
07:03:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/?
07:03:13 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/?
07:03:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25005
07:03:28 <elliott> Except it gets the encoding wrong.
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:49 <elliott> Vorpal: the one you're looking at.
07:03:52 <Vorpal> it seems like plaintext
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:16 <elliott> Vorpal: So what's new that isn't you not understanding the definition of database?
07:04:24 <HackEgo> The wiki is at http://esolangs.org/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: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:44 <HackEgo> You do not have the clearance necessary to view this entry.
07:06:25 <elliott> Gah, what _is_ it with that bug.
07:06:28 <Vorpal> elliott: do you think I care about karma?
07:06:48 <Vorpal> elliott: well it seems broken whatever it is
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:07:02 <Vorpal> elliott: so that isnt' going to stop me
07:07:17 <Vorpal> elliott: stop spamming me with highlights though
07:07:53 <lambdabot> You can't change your own karma, silly.
07:08:01 -!- elliott has changed nick to fthepolice.
07:08:06 -!- fthepolice has changed nick to elliott.
07:08:08 <Vorpal> stop the highlight spam though.
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:20 -!- itidus20 has changed nick to itidus21.
07:08:26 <monqy> `run echo "a lot of" > karma/monqy
07:08:41 -!- itidus21 has changed nick to itidus20.
07:09:10 -!- itidus20 has changed nick to itidus21.
07:09:20 <Vorpal> elliott: messing in /msg too. *shrug*
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:44 <Vorpal> elliott: as I said I don't care about it. I'm just annoyed at the highlight spam.
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:10:09 <Vorpal> glad you like me at least
07:10:47 <Deewiant> Wow, it really does what it says on the tin
07:11:09 <elliott> fizzie: You don't mind me doing this, right?
07:11:26 <elliott> Gotta get through them all
07:11:46 <elliott> This should only take a few hours
07:11:48 <lambdabot> <no location info>: parse error on input `;'
07:11:56 <coppro> elliott: make a script
07:12:05 <elliott> coppro: No need for a script, I can just
07:12:18 <lambdabot> <no location info>: parse error on input `;'
07:12:20 <coppro> elliott: rate-limiting
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: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: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: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: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:32:40 <itidus20> I want to make this land safe!
07:33:23 -!- aspect has left.
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: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:39:26 <CakeProphet> *distorted latin-influenced guitar licks with double bass pedals tapping out 32nd notes- GRRRRRRRRRRROOOOOOAAAAAAR.
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: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 <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:28 <fizzie> I anallllized only the thumbnail images, incidentally.
08:11:08 <elliott> *Main> head `fmap` (getSearchPage "hello world" >>= getThumbnails)
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: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:44 <elliott> I just had to flush the file. :p
08:21:25 -!- nooga has joined.
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: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: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:23 <lambdabot> Overlapping instances for GHC.Show.Show
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:40:37 <elliott> > showIntAtBase 16 ("0123456789ABCDEF" !!) 99 ""
08:40:43 <elliott> > showIntAtBase 16 ("0123456789ABCDEF" !!) 9 ""
08:40:50 <lambdabot> Overlapping instances for GHC.Show.Show
08:41:00 <lambdabot> forall a. (Integral a) => a -> String -> String
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:51 <elliott> > printf "%02x" (print 99) () "hahaha" :: String
08:43:52 <lambdabot> No instances for (Text.Printf.PrintfArg (GHC.Types.IO ()),
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:12 <elliott> > printf "%02x" [99] 99.999 "hahaha" :: String
08:44:13 <lambdabot> Ambiguous type variable `t' in the constraints:
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:33 <Deewiant> > printf "%02x" "foo" :: String
08:44:34 <lambdabot> "*Exception: Printf.printf: bad argument
08:45:49 <elliott> (Process.proc "xdg-open" [chart ++ hex r ++ hex g ++ hex b]) {
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 <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: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:34 <elliott> Deewiant: Mo dependencies mo problems
08:46:53 <fizzie> 99 problems but a Pipe ain't one.
08:49:26 <Vorpal> elliott: he said *less than*
08:49:42 <elliott> It'll be a hundred within the week.
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: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: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: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: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: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:37 <fizzie> HSL != HSV, conventionally.
08:56:53 <fizzie> They're very close though.
08:57:10 <elliott> instance Applicative RGB where
08:57:10 <elliott> (RGB fr fg fb) <*> (RGB r g b) = RGB (fr r) (fg g) (fb b)
08:57:17 <elliott> I have RGBs with function components ALL THE TIME
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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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> URI.parseURI . ("http://www.google.com" ++) . B8.unpack . fromAttrib "href"
09:16:57 <elliott> where isNextPageURI link@(TagOpen _ _) = fromAttrib "id" link == "pnnext"
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:32 <elliott> Well, I need to concentrate on actually getting a hundred thumbnails first.
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:21:22 <fizzie> The X11 color name list.
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: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: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:26 <fizzie> http://en.wikipedia.org/wiki/List_of_colors maybe?
09:25:51 <fizzie> I'm not sure what's so international about that orange.
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: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:49 -!- augur has quit (Remote host closed the connection).
09:32:11 <Vorpal> elliott: maybe ignore completely transparent pixels at least? Since those probably aren't part of the "image as such".
09:34:09 <elliott> No instance for (R.Elt (RGB Word8))
09:34:09 <elliott> arising from a use of `show'
09:34:17 <elliott> repaaaaaaaaaaaaaaaaaaaaaaaaaaaa
09:35:29 * elliott just stores arrays of triplse instead
09:39:19 <Vorpal> elliott: store it as (array of R, array of G, array of B)
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: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: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: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: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:11:02 <Vorpal> fizzie: where is that from now again?
10:11:29 <Vorpal> wasn't there a gamed based on WH40K recently?
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: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:47 <Vorpal> anyway, bbl university
10:17:27 <elliott> It occurs to me that maybe my imageToHSV isn't quite right.
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: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: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:32:33 -!- Phantom_Hoover has joined.
10:34:52 <ais523> hi people who need hi saying to them
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:37 <elliott> definitely, one of my top words
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:17:56 <elliott> <ais523> [genuine concern]
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: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:46 <elliott> would anyone like to buy an asterisk? I have one spare
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: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: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:41:36 <monqy> I think I remember reading something about zippers and comonads? I forget what or where it was.
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:39 <lambdabot> err: `StateT s Cont' is not applied to enough arguments.
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: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:03 <elliott> ?unmtl ContT r (State s) a
11:53:27 -!- Phantom_Hoover has quit (Quit: Leaving).
11:58:45 -!- oerjan has joined.
11:59:51 * oerjan swats elliott -----###
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: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: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: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:10:19 <oerjan> <elliott> Where's oerjan when you need to complain to him about a deficiency in the Haskell report?
12:12:17 -!- monqy has quit (Quit: hello).
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:34 <ais523> go fix it for me, if you want the page around so much
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: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:35 -!- oerjan has joined.
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:26:14 <oerjan> i don't think elliott counts as an old-fashioned IRCer, anyhow
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: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:30:42 <fizzie> Maybe "has opinions and is not afraid to share them" qmail could fit.
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: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: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: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: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: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: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: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: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> 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: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: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: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: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: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:58 <fizzie> Seems like an evil clone of EgoBot from the mirror universe.
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:42 <oerjan> <ais523> I wonder what the best algo for bf_txtgenning is <-- kolmogorob complexity, dude
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: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: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:42 <HackEgo> 2010-08-31.txt:15:29:35: <alise> std, I think.
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: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: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:44 <ais523> does it have to be accurate?
12:59:49 <oerjan> !bf ++++++++[->+>++++++<<]>[->+.<]
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
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: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: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: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:44 <elliott> synchronised facepalming gogogo
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:57 <elliott> you have _no idea_ how hard i am facepalming
13:02:07 <fizzie> Three-hand facepalm time?
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: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:18 <elliott> ais523: who says it happens on failure?
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:56 <elliott> `learn ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented.
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:29 <HackEgo> oerjan is just zis guy, you know?
13:08:41 <oerjan> i thought there was a syntax for that
13:08:47 <HackEgo> oerjan, Your future evil overlord, is an expert in lazy computation.
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: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:08 <ais523> fizzie: well, it's more for identifying which are actually good
13:11:18 <elliott> ais523: we have a system to do that, it's called `delquote
13:11:50 <ais523> elliott: but there's more shades of good in quotes than true and false
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: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: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: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: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:14:00 <HackEgo> 113) <Warrigal> I seem to think of coaxial cables as being omnipotent somehow.
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: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: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: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: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: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: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: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: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: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: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: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: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:27 <ais523> daming abstract concepts doesn't really make sense at all
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: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: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: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:44 <coppro> are we sure that the accumulator in HQ9+ is program-specific?
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: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: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:31:05 <ais523> no, the computer crashed first
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: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:48 <HackEgo> 549) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
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: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: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: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: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: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: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:34 <ais523> not even if I comment them out?
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: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:54 <elliott> yeah that was pretty much maximum synchronicity
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:40 <elliott> Sometimes I am just an amorphous blob
13:44:56 <ais523> sometimes I fly around in a spaceship :>
13:45:06 <ais523> wait, was it a lowercase i?
13:45:11 <ais523> `log fly around in a spaceship
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: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: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: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: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
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:05:29 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:06:44 <Taneb> I never got the hang of nethack
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:52 <Taneb> I translated it back into Python for the hell of it
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: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: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> Just h' -> Zip h' (ap r . pure . fromMaybe h . fmap (fromJust . cast))
14:38:30 <elliott> turns out this doesn't work :P
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> Insert new item or enter to keep: 99999999
14:39:56 <elliott> that is not how it is supposed to work >:(
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: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> Insert new item or enter to keep: []
14:40:31 <oerjan> elliott: wouldn't you know, it's precisely caleskell's flip :P
14:46:33 -!- MDude has quit (Read error: Connection reset by peer).
14:53:09 <Deewiant> ?. hoogle type \f g -> (. g) . f
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:54 <Deewiant> ?. hoogle type \f g -> (Prelude.. g) Prelude.. f
14:53:55 <lambdabot> --count=20 "forall b c a a1. (a1 -> b -> c) -> (a -> b) -> a1 -> a -> c
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:57:08 <elliott> Deewiant: Pretty sure gmapQr is the thing
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)
15:01:29 <oerjan> @djinn (a1 -> b -> c) -> (a -> b) -> a1 -> a -> c
15:01:49 <oerjan> @pl f a b c d = a c (b d)
15:03:12 <elliott> hmm I would _really_ like serialisation of Haskell functions
15:03:14 <elliott> (not in a portable manner)
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:45 -!- oerjan has quit (Quit: Anyway, later).
15:15:05 <Deewiant> elliott: instance Binary (a -> b) where something#
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:33 <elliott> foo :: SomethingRidiculouslyUnserialisable -> Int -> Int
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:41 * tswett doesn't respond to that ping.
16:09:50 <Lymee> A file handle in pure code?
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: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: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:27 <Taneb> Nobody ever calls you the POKéMON PROFESSOR
16:57:46 <ais523> Taneb: Ruby, Sapphire, or 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: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: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: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:10 <elliott> hey someone give me a number sign
17:32:33 <fizzie> Yes, it would have been far more obvious to say "give me a sink".
17:36:42 <Taneb> I'm training ais523 tge Wingull
17:37:10 <ais523> (and I know what a Wingull sounds like, too...)
17:39:21 <elliott> waht does wingull sound like :(
17:39:42 <elliott> Taneb: Congratulations you just described the sound of like half of all the pokemons.
17:39:53 -!- sliddy has joined.
17:40:00 <Taneb> While being completely true
17:40:02 <shachaf> elliott: Could you keep it that way, please?
17:40:09 <Taneb> And as accurate as I could
17:40:10 <elliott> The wisdom cannot be erased.
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: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: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: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: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: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: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:29:25 <Taneb> Told you it was lame
18:30:38 <Taneb> I could use my loadsa combinators
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: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).
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:10:21 <Taneb> Can you check out salesman now?
19:11:59 <elliott> I'm a bit tired, 'mafraid.
19:16:50 <elliott> TODO: Optimise Shiro's IPLists
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: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: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:20 -!- MDude has joined.
19:50:26 <elliott> but one thing is easy......
19:50:32 <elliott> oerjan: hi hi hi hi hi hi hi
19:50:45 <oerjan> poor elliott, slowly turning into the winslow
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: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: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:57:00 <elliott> maybe i'll decide i'm completely alienated with my five-minutes-ago self
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:59:18 <elliott> i didn't even think of that
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: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:05:14 <itidus20> spellcraft, morecraft, warcraft, starcraft, minecraft, fortresscraft, fishcraft
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: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: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: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: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: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:21:03 <oerjan> and presumably that's integers only
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: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: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: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:59 <HackEgo> Your future evil overlord oerjan is an expert in lazy computation.
20:43:50 -!- itidus20 has joined.
20:46:37 -!- itidus20 has quit (Client Quit).
20:50:26 -!- itidus21 has joined.
20:50:57 <HackEgo> Sgeo invented Metaplace sex.
20:51:51 <Taneb> `? What's all this then?
20:51:52 <HackEgo> What's all this then?? ¯\(°_o)/¯
20:52:40 -!- Taneb has quit (Quit: TTFN).
21:00:35 <elliott> https://github.com/xonatius/linux/commit/bdb25f1ee3bae85433d94e9192f8a18a880b28ac
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:32:09 <oerjan> `run echo "The friendship monqy is an ancient Chinese mystery; ask itidus21 for details." >wisdom/monqy
21:32:28 <HackEgo> The friendship monqy is an ancient Chinese mystery; ask itidus21 for details.
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: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:36:08 <elliott> `run echo "The friendship monqy is an ancient Chinese mystery; ask itidus21 for details." >wisdom/monqy
21:36:23 <elliott> must we only ask the upgraded
21:38:19 <oerjan> a complicated question. is his memory getting worse or better with time?
21:39:11 <oerjan> is itidus21 using mystery to reverse entropy?
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: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: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: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: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: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: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: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: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:11 <HackEgo> 2008-10-31.txt:22:36:45: <ehird> h = randomColorScheme(h, ...)
22:18:41 <HackEgo> 2009-07-25.txt:00:36:02: <ehird> that's impossible
22:19:45 <HackEgo> 2008-08-08.txt:12:10:10: <tusho> optbot: you wanna be on #worlddomination too right?
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: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: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: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: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:29:47 -!- Patashu has joined.
22:34:28 <Guest53387> itidus21: You're responding to RANDOM LINES FROM THE LOG?!?!
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:29 <HackEgo> 2007-05-03.txt:15:29:14: -!- crathman has joined #esoteric.
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:37:02 <olsner> human body is bad at many things
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:38:14 -!- Guest53387 has changed nick to Gregor.
22:38:27 <DH____> Pfft. You're just being picky...
22:38:43 <HackEgo> 2005-01-25.txt:05:06:25: -!- calamari has joined #esoteric.
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: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: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:45 <monqy> it's like a superpower
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: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:06 <HackEgo> 2009-05-28.txt:21:28:38: <GregorR-L> !bfjoust make_me_a_sammich (>)*10+>->+[[-]>+]
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 <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:52 <HackEgo> 2011-09-15.txt:22:44:48: <itidus21> `log crossaint
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: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:39 <HackEgo> 2010-12-09.txt:19:07:39: <fizzie> Phantom_Hoover: Or lightly-garnished sandwiches.
22:45:43 <olsner> oerjan: so you hear, so you hear
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: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:05:15 <itidus21> so i thought of a possible solution
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: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 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
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: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).