00:00:10 <Sgeo> I mean, I have new rants about the intellect of the community, but that's separate
00:03:56 <kmc> what are they
00:04:14 <elliott> i don't generally take notes of the exact details of what people rant about
00:04:40 <oerjan> YOU'RE SO STUPID YOU CANNOT FIND YOUR WAY OUT OF A SLEEPING BAG hth
00:05:16 <Sgeo> Well, I guess more about one specific person. I mean, how do you manage to make a monad library and just break the monad laws for one of the provided monads?
00:06:49 <kmc> probably by concluding that haskellers are full of shit when they tell everyone it's very important to follow the laws and then fail to give any concrete reason for it
00:09:03 <oerjan> Arc_Koen: btw was chris pressey's message on Talk:Maze what got you started on this? It's essentially the same as what you are doing. :)
00:12:17 -!- ais523 has joined.
00:15:18 <Sgeo> I do think you can sensibly do something similar to what algo.monads does, though. Wait, hmm, not like that
00:15:30 * Sgeo needs to think a bit
00:15:42 <oerjan> elliott: his mom, probably
00:16:14 <oerjan> unless she's the only person in the world to inscrutably use his middle name
00:16:16 <elliott> q: does ais523 even have parents. do parents even exist?
00:17:00 <oerjan> his grandmother _thinks_ she's using his middle name, but has forgotten that the i isn't for isaac
00:17:17 <quintopia> though i've known people to utter that pornographic obscenity "mother" from time to time
00:17:50 <Sgeo> "ais523" reminds me of "sam512"
00:19:28 <quintopia> two different personalities in the same body
00:22:08 <Sgeo> http://everything2.com/title/The%2520Teach%2520Yourself%2520to%2520be%2520a%2520Dummy%2520in%252024%2520Hours%2520Bible
00:22:59 <elliott> do i really want to click that link
00:23:23 <Sgeo> There's a really weird Perl subroutine.
00:23:28 <Sgeo> Assuming that it really is valid Perl
00:23:50 <kmc> http://everything2.com/title/Primality+testing+with+Perl+regexs
00:24:50 <kmc> oh this is pretty simple actually
00:25:49 <kmc> /^(11+)\1+$/ is a perl "reg"ex matching composite unary numbers
00:25:54 <kmc> /^(11+)\1+$/ is a perl "reg"ex matching composite unary numbers
00:27:01 <kmc> (11+) captures 2 or more '1' digits
00:27:17 <kmc> \1+ matches one or more copies of what was captured
00:27:24 <kmc> \1 meaning "first capture group"
00:27:50 <kmc> a unary number is composite if you can take off 2 or more 1s, and then represent the rest of the number by n copies of that
00:27:57 <kmc> (in which case it is divisible by n+1)
00:30:05 -!- augur has joined.
00:32:58 <kmc> exercise: prove that the language of all composite unary numbers is not actually regular
00:34:00 <Phantom_Hoover> if composite numbers were regular, primes wouldn't be half as interesting as they are
00:44:33 <Sgeo> I guess regexes aren't always efficient
00:45:17 <kmc> perl regexes can do a lot of things, you can even embed arbitrary perl code in them
00:45:28 <kmc> but also some cases even of actual regular expressions are very slow on some common interpreters
00:45:31 <kmc> http://swtch.com/~rsc/regexp/regexp1.html
00:45:45 <oerjan> proof: if it's regular then there is a DFSA recognizing it. for a long enough string of 1's it must repeat state, which means there is some number k that can be added to any sufficiently large number and keep it as prime or composite. but if p is a large prime then p+k*p is then also prime, a contradiction.
00:51:16 -!- yiyus has quit (Ping timeout: 245 seconds).
00:55:54 <pikhq> kmc: Of course, common interpreters are often very poorly implemented.
00:56:55 <pikhq> ... As that article describes. :)
01:01:39 <Arc_Koen> ok, [ and ] translated into maze as well
01:01:48 <Arc_Koen> Maze successfully passed its Turing final exam!
01:05:30 <Sgeo> `run java -jar clojure-1.4.0.jar -e "(use 'clojure.template) (macroexpand-1 '(do-template [a b c] (+ a b (- a c)) 1 2 3 4 5 6 7 8 9))"
01:05:52 <HackEgo> (do (+ 1 2 (- 1 3)) (+ 4 5 (- 4 6)) (+ 7 8 (- 7 9)))
01:08:58 * Sgeo couldn't think of a useful and easily demonstratable demonstration off the top of my head, but I think it's useful in general
01:09:45 <Sgeo> <Sgeo> How common is do-template/
01:09:45 <Sgeo> <Sgeo> *Commonly used
01:09:50 <Sgeo> <amalloy> Sgeo: ~never
01:10:19 <kmc> what is it for
01:10:55 <Sgeo> I can imagine using it for defining a bunch of similar functions with different distinct parts
01:11:09 <Sgeo> Erm, and what parts are different fixed
01:11:43 <kmc> didn't you just describe all macros
01:13:20 <Sgeo> Well, yes, but if I have a series of these things, I might not want to write a macro name repeatedly. I could just write a macro that takes a bunch of forms the way do-template does, but why not just use do-template?
01:15:17 * oerjan thinks he just finished his construction proving reversible brainfuck TC
01:15:43 <Sgeo> reversible brainfuck?
01:16:01 <oerjan> like brainfuck, except [ jumps when _not_ zero
01:16:46 <oerjan> this makes it reversible (apart from possibly I/O, dependent on how you look at it)
01:22:26 <shachaf> What about reversible boof?!
01:28:34 -!- DHeadshot has joined.
01:30:35 <Sgeo> `run java -jar clojure-1.4.0.jar -e "(repeat 5)
01:30:36 <Sgeo> `run java -jar clojure-1.4.0.jar -e "(repeat 5)"
01:30:38 <HackEgo> bash: -c: line 0: unexpected EOF while looking for matching `"' \ bash: -c: line 1: syntax error: unexpected end of file
01:31:11 <HackEgo> (5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
01:35:13 <HackEgo> exe: cannot set terminal process group (-1): Inappropriate ioctl for device \ exe: no job control in this shell \ exe-4.1$
01:37:42 <Arc_Koen> oerjan: do you have a link to your proof that 3-cell brainfuck is turing complete?
01:41:34 -!- augur has quit (Remote host closed the connection).
01:42:07 -!- DHeadshot has quit (Read error: Connection reset by peer).
01:42:21 -!- DHeadshot has joined.
01:43:04 <shachaf> `run cat /proc/$PPID/cmdline
01:46:11 <oerjan> Arc_Koen: http://esolangs.org/wiki/Collatz_function
01:46:58 <Arc_Koen> well that link is missing both from the brainfuck page and your user page
01:47:28 <Jafet> n-cell brainfuck is similar to an n-counter minsky machine.
01:49:09 <Arc_Koen> well that's easy to say now that both have been shown turing complete ;)
01:50:08 <Jafet> They are obviously similar. Now they're proved to be equivalent.
01:53:11 <Jafet> 98 bottles of champagne
01:54:50 * itidus21 spasms and shrieks. emits hq9c+
01:55:21 <oerjan> Arc_Koen: no it is in the brainfuck page under computational class
01:55:55 <oerjan> Jafet: n-1 or n-2 counter minsky machine, actually. that restricted control flow _hurts_.
01:56:52 <Arc_Koen> oh... I checked that but somehow the sentence "Oerjan has made a conversion from iterated Collatz functions to 3-cell brainfuck." did not make me realize the proof was at the Collatz functions page
01:57:03 <Jafet> Ok, so you need to encode the input as fractran does.
01:57:15 <Arc_Koen> let's say that's because it is 4am
01:57:38 <oerjan> it's also linked on my own article, although as "brainfuck"
01:57:42 <itidus21> if the accumulator could be used as input for the h and 9 functions in hq9+, being reset to zero after
01:58:19 <itidus21> so in the case of 9, in the case that the accumulator is not zero, it would count accumulator bottles of beer
01:59:00 <itidus21> and for h it would do something or other
01:59:24 <Arc_Koen> well let's say I did not spot it, once again because of the time!
01:59:38 <itidus21> nevermind.. creeps back into my corner
02:04:08 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
02:05:52 <oerjan> http://esolangs.org/wiki/Reversible_Brainfuck#Computational_class
02:25:32 -!- DH____ has joined.
02:25:54 <HackEgo> bin \ dev \ etc \ hackenv \ home \ lib \ lib64 \ opt \ proc \ sbin \ sys \ tmp \ usr \ var
02:26:01 -!- DHeadshot has quit (Read error: Connection reset by peer).
02:27:33 <Jafet> `run echo 'import Data.List;import System.Process;import System.Posix;main=do x<-readProcess "ps"["axo","pid,ppid"]"";s<-getProcessID;let{ps=map((\[a,b]->(read a,read b)).words)$tail.lines$x;c=unfoldr(\p->case lookup p ps of Just pp->Just(pp,pp);_->Nothing)$fromEnum s};print c' | runghc
02:27:38 <HackEgo> ghc: can't find a package database at /usr/lib/ghc-6.12.1/package.conf.d
02:29:13 <oerjan> `pastelogs <gregor.*ghc
02:29:45 <HackEgo> mkdir: cannot create directory `/hackenv': File exists \ http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.23181
02:29:52 <oerjan> `pastelogs <gregor.*ghc
02:30:03 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9081
02:30:08 <oerjan> Gregor: WHAT THE FUCK IS WRONG WITH YOUR BOT
02:30:35 <Jafet> I'll just have to exploit it in a less elegant language.
02:30:40 <oerjan> Jafet: <Gregor> I removed ghc because it was friggin' enormous
02:30:57 <Jafet> `run ghc --version
02:31:01 <HackEgo> The Glorious Glasgow Haskell Compilation System, version 6.12.1
02:31:20 <oerjan> except not the actual binary
02:31:45 <shachaf> GHC should ship the base compiler for free and charge for extensions.
02:32:14 <oerjan> Jafet: <Gregor> I removed ghc because it was friggin' enormous
02:32:16 <Jafet> Monad transformer SDK
02:32:24 <Jafet> oerjan: why keep the binary
02:32:34 <kmc> Jafet: wtf does that do
02:32:46 <oerjan> because it wasn't in the directory he deleted with everything else in it
02:34:30 <shachaf> Looks like it traces a process tree or something?
02:36:53 <shachaf> `run i=$$; while [ $i -ne 0 ]; do echo $i; i=$(ps -p $i -o ppid=); done
02:38:47 <Jafet> `run echo /proc/272/cmdline
02:38:57 <Jafet> `run cat /proc/272/cmdline
02:40:19 <HackEgo> stat: cannot stat `/init': No such file or directory
02:41:39 <shachaf> `run cat /proc/272/cmdline | tr '\000' ' '
02:41:47 <shachaf> `run cat /proc/$PPID/cmdline | tr '\000' ' '
02:41:51 <HackEgo> sh -c 'env' 'PATH=/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin' 'HACKENV=/hackenv' 'http_proxy=http://127.0.0.1:3128' '/home/hackbot/hackbot.hg/multibot_cmds/lib/limits' 'bash' '-c' 'cat /proc/$PPID/cmdline | tr '\''\000'\'' '\'' '\''' | cat
02:53:58 <Gregor> Jafet: You can "hack" in PM, btw.
02:55:10 <Jafet> Good to know. But collaborative hacking is better.
02:55:56 <Gregor> And yes, the binary is only there because everything else was in /opt/ghc :)
02:56:24 <shachaf> Gregor: Can you "hack" a working GHC onto the server?
02:57:53 <Gregor> shachaf: I could. I choose not to.
02:58:14 <shachaf> Gregor: Would you "hack" yourself so that you choose to install GHC?
02:58:27 <Gregor> shachaf: I could. I choose not to.
02:59:11 <kmc> hack, n. to connect a bunch of LEDs to an Arduino
02:59:28 <Gregor> Interesting how that definition is for a verb, right —
02:59:37 <Gregor> Corrected yourself before I could finish ^^
03:01:42 <shachaf> fine, v. Punish (someone) by making them pay a sum of money, typically as a penalty for breaking the law.
03:02:35 <kmc> shacha, f.
03:02:51 <itidus21> the difficult verb in that sentence, as always, is "making them"
03:03:07 <itidus21> the transitive verb of making someone do something is always awkward
03:07:18 <oerjan> http://en.wikipedia.org/wiki/Causative
03:07:47 <oerjan> "There are no regular causative inflections in English, nor in any of the major European languages, which resort to idiomatic uses of certain verbs like English make or have, French faire or laisser, or German lassen."
03:10:06 <oerjan> @tell Arc_Koen I think your [ in Maze is buggy, (1) It checks the rightmost cell not the middle, but only on the initial iteration (2) There shouldn't be any delays at the end of the straight down path.
03:11:26 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:14:41 -!- DH____ has quit (Read error: Connection reset by peer).
03:18:16 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
03:19:47 -!- epicmonkey has joined.
03:19:54 -!- Nisstyre-laptop has joined.
03:40:06 -!- nys has quit (Quit: quit).
03:48:04 -!- epicmonkey has quit (Ping timeout: 248 seconds).
03:53:17 <Sgeo> There was a bot in #jesus that would ban people if they said anything that matched the regex an[^t]s
03:53:40 <Sgeo> (Among other regexes)
03:55:48 <Jafet> They don't like angst.
03:56:16 <oerjan> and they never read manuscripts
03:56:54 <Jafet> The intelligence of civilization waxes and wanes.
03:58:06 <zzo38> Did they remove it?
03:59:50 <zzo38> Did it strip control characters?
04:00:09 <zzo38> And Unicode zero-width spaces?
04:00:35 <zzo38> What if your nickname, username, domain name, or cloak included such words?
04:01:36 <Jafet> Technically, irc doesn't have unicode.
04:02:01 <Sgeo> zzo38, I don't remember, it was a time ago
04:06:11 <zzo38> I know, IRC is ASCII, although you can use any encodings compatible with ASCII in your message texts.
04:09:28 -!- augur has joined.
04:11:34 <zzo38> Some IRC servers do not allow to send certain words in PRIVMSG and NOTICE, and if you send it in a QUIT your entire quit message will be erased, but allows it in NS INFO and so on. I have also been told some IRC servers disconnect you if you send certain words to the server at all, regardless of message. But what if you put it in your reverse DNS?
04:16:28 <kmc> is Freenode like this?
04:16:41 <shachaf> kmc: Do you know about & channels?
04:16:44 <shachaf> Freenode doesn't have them.
04:17:23 <kmc> or i forgot what they are
04:17:32 <shachaf> Some networks have channels that start with & instead of #
04:17:38 <shachaf> They're specific to one IRC server.
04:18:58 <kmc> are they server-local?
04:19:05 <Sgeo> Java interop confuses me
04:19:10 <Sgeo> require vs import vs use
04:19:16 <zzo38> I suppose you might use the & channel for server status, for discussion of only one server, etc. There are four channel types in IRC: !#&+ and # is the only one subject to takeovers during a split.
04:19:23 <shachaf> Sgeo: Is Java Inte a new kind of ROP?
04:22:49 <Jafet> No no, java uses exceptions for control flow.
04:26:54 <kmc> what are ! and + channels like
04:27:27 -!- oerjan has quit (Quit: leaving).
04:27:54 <zzo38> Channels with + do not support MODE; it is fixed at +nt. Channels with ! are like # except that there is some hidden numbers before the name which is used by servers, so if you try to takeover during a split you will end up with a new channel instead.
04:28:24 <zzo38> Therefore, # is the only one which is vulnerable to takeovers.
04:30:36 <shachaf> zzo38: Where are you getting that?
04:30:44 <shachaf> http://www.ietf.org/rfc/rfc1459.txt
04:30:54 <shachaf> Channels names are strings (beginning with a '&' or '#' character) of length up to 200 characters.
04:31:48 <zzo38> Maybe the ! and + channels are a different RFC. I don't know.
04:39:35 <kmc> that is mega ad hoc
05:24:50 * Sgeo does something with the dual intentions of being useful to him and perplexing to #esoteric
05:26:44 <Sgeo> You'll find out
05:27:29 <elliott> Sgeo: i'm about to leave and then not join this channel again for another few weeks so probably not
05:27:58 <Sgeo> Well, in less than 15 minutes, I just gave it away.
05:28:38 <Sgeo> Hmm, it actually might not work as I'm hoping, hmm
05:29:13 <Sgeo> (I'm abusing /timer to issue a thing to lambdabot in #esoteric to tell me when the water I'm boiling is done boiling)
05:36:12 <kmc> #cslunch has a bot specifically for that
05:36:30 -!- ogrom has joined.
05:38:12 <Sgeo> How do I use it?
05:39:17 <kmc> %time 15 rice
05:40:16 <Sgeo> Cool, I'll use it, thanks
05:41:00 <Sgeo> > "Sgeo: Water done boiling"
05:42:14 <Sgeo> Oh, actually, sending it privately doesn't work
05:42:24 <Sgeo> It doesn't respond in private to setting it, but it does when the timer completes
05:42:55 -!- elliott has quit (Remote host closed the connection).
05:46:27 <shachaf> kmc: #cslunch seems to exist.
05:48:17 <kmc> it is the food topic channel associated with #cslounge
05:48:36 <kmc> a more creative name than #cslounge-food, is all
05:48:50 <shachaf> Did you leave all associated channels when you left?
06:08:02 <Sgeo> kmc, is "going on tangents" one of the reasons you left #haskell ? Because #cslounge is now debating over the meaning of the word "forum" after someone used "forum" instead of "channel"
06:09:40 <kmc> no, tangents are fine in general
06:09:55 <kmc> my complaints with #haskell are more specific than that
06:22:09 <kmc> it would be pretty hard to have any interesting conversations with any interesting people if you minded tangents
06:22:37 <pikhq> And this is the wrong room to be in if you hate tangents.
06:25:44 <shachaf> Tangents are hardly a sin.
06:26:12 <pikhq> Hmm, we were on topic today.
06:31:50 <kmc> let's debate the merits of tactile vs. linear keyswitches
06:36:06 <kmc> shachaf: is your "sin" comment also a pun?
06:36:09 <kmc> oh, yes. yes it is.
06:36:24 <kmc> of cos it is
06:36:51 <shachaf> kmc: Everything I say has at least one pun hidden in it.
06:36:58 <shachaf> If you look deeply enough.
06:37:21 <kmc> everything i say has at least one gun hidden in it
06:37:55 <shachaf> If you see a loaded pun in the first act, it'll be used in the second act.
06:38:54 <kmc> http://www.jerkcity.com/jerkcity1151.html
06:40:11 <pikhq> Man, Comic Chat was weird.
06:41:04 <pikhq> I bet nobody here's tried IRCing with it. Maybe I should be the first to do so.
06:41:20 <kmc> in my time in #haskell i saw at least one comic chat user
06:41:36 <shachaf> I don't know what Comic Chat is.
06:41:43 <shachaf> But I once set my font in irssi to Comic Sans.
06:41:48 <pikhq> shachaf: http://upload.wikimedia.org/wikipedia/en/6/62/MsComicChat.png This sums it up.
06:41:51 <shachaf> That has to count for something, right?
06:41:58 <kmc> i always find it odd to see comic chat screenshots that aren't full of obscene nonsense
06:42:12 <pikhq> Comic Chat used Comic Sans.
06:42:56 <pikhq> Sorry, minor correction, *shipped with*.
06:43:22 <kmc> you know, just because drugs make music sound better, is no excuse to make awful music that's only tolerable when you're on drugs
06:43:38 <kmc> just throwing that out there
06:43:39 <shachaf> Which drugs are we talking about?
06:43:44 <pikhq> I have no experience with the former, but have to agree with the latter.
06:43:52 <shachaf> I'd ask which music, but it's terrible, so why bother.
06:43:56 <kmc> lots of them but marijuana in particular
06:44:39 -!- zzo38 has quit (Remote host closed the connection).
06:44:52 <kmc> nah, trance is one of the lesser offenders here, as far as electronic genres go
06:45:02 <kmc> at least, i find psytrance pretty enjoable to listen to while sober
06:45:14 <kmc> and by "psytrance" i mainly mean "infected mushroom"
06:45:18 <kmc> accept no imitations
06:45:37 <kmc> but i have just written a script which plays a random genre from di.fm and i am sort of regretting it
06:46:12 <kmc> Space Dreams - DIGITALLY IMPORTED - ambient space music for expanding minds
06:46:18 <Jafet> I still don't really know what dubstep is.
06:46:25 <Jafet> Or trance, for that matter
06:47:33 <kmc> http://gizmodo.com/5894092/dubstep-explained-with-hilarious-animation
06:47:59 -!- Slereah_ has quit (*.net *.split).
06:47:59 -!- copumpkin has quit (*.net *.split).
06:47:59 -!- aloril has quit (*.net *.split).
06:47:59 -!- hogeyui_ has quit (*.net *.split).
06:47:59 -!- atehwa has quit (*.net *.split).
06:47:59 -!- ssue has quit (*.net *.split).
06:48:00 -!- fizzie has quit (*.net *.split).
06:48:00 -!- ion has quit (*.net *.split).
06:48:00 -!- Jafet has quit (*.net *.split).
06:48:00 -!- Cryovat has quit (*.net *.split).
06:48:00 -!- mroman has quit (*.net *.split).
06:48:01 -!- fungot has quit (*.net *.split).
06:48:01 -!- comex has quit (*.net *.split).
06:48:01 -!- kallisti has quit (*.net *.split).
06:48:01 -!- ogrom has quit (*.net *.split).
06:48:01 -!- coppro has quit (*.net *.split).
06:48:01 -!- shachaf has quit (*.net *.split).
06:48:02 -!- Dovregubben has quit (*.net *.split).
06:48:02 -!- FireFly has quit (*.net *.split).
06:48:02 -!- HackEgo has quit (*.net *.split).
06:48:02 -!- Sanqui has quit (*.net *.split).
06:48:03 -!- lahwran has quit (*.net *.split).
06:48:03 -!- variable has quit (*.net *.split).
06:48:03 -!- FreeFull has quit (*.net *.split).
06:48:03 -!- soundnfury has quit (*.net *.split).
06:48:03 -!- lifthrasiir has quit (*.net *.split).
06:48:03 -!- Zuu has quit (*.net *.split).
06:48:04 -!- sivoais has quit (*.net *.split).
06:48:04 -!- sirdancealot7 has quit (*.net *.split).
06:48:04 -!- ineiros_ has quit (*.net *.split).
06:48:04 -!- tswett has quit (*.net *.split).
06:48:05 -!- carado has quit (*.net *.split).
06:48:05 -!- rodgort has quit (*.net *.split).
06:48:05 -!- kinoSi has quit (*.net *.split).
06:48:05 -!- subleq has quit (*.net *.split).
06:48:05 -!- chicken1 has quit (*.net *.split).
06:48:05 -!- jix_ has quit (*.net *.split).
06:48:05 -!- Lumpio- has quit (*.net *.split).
06:48:06 -!- nvt has quit (*.net *.split).
06:48:06 -!- Tod-Autojoined has quit (*.net *.split).
06:48:06 -!- Deewiant has quit (*.net *.split).
06:48:06 -!- sebbu has quit (*.net *.split).
06:48:06 -!- ais523 has quit (*.net *.split).
06:48:06 -!- kwertii has quit (*.net *.split).
06:48:06 -!- yorick has quit (*.net *.split).
06:48:07 -!- Sgeo has quit (*.net *.split).
06:48:07 -!- hagb4rd has quit (*.net *.split).
06:48:07 -!- olsner has quit (*.net *.split).
06:48:07 -!- glogbackup has quit (*.net *.split).
06:48:07 -!- EgoBot has quit (*.net *.split).
06:48:07 -!- pikhq has quit (*.net *.split).
06:48:07 -!- augur has quit (*.net *.split).
06:48:08 -!- Gregor has quit (*.net *.split).
06:48:08 -!- nortti- has quit (*.net *.split).
06:48:08 -!- lambdabot has quit (*.net *.split).
06:48:08 -!- heroux has quit (*.net *.split).
06:48:08 -!- itidus21 has quit (*.net *.split).
06:48:08 -!- clog has quit (*.net *.split).
06:48:08 -!- Nisstyre-laptop has quit (*.net *.split).
06:48:09 -!- kmc has quit (*.net *.split).
07:11:38 -!- ogrom has joined.
07:11:38 -!- Vorpal has joined.
07:11:38 -!- glogbackup has joined.
07:11:38 -!- augur has joined.
07:11:38 -!- Nisstyre-laptop has joined.
07:11:38 -!- ais523 has joined.
07:11:38 -!- kwertii has joined.
07:11:38 -!- kinoSi has joined.
07:11:38 -!- carado has joined.
07:11:38 -!- yorick has joined.
07:11:38 -!- Jafet has joined.
07:11:38 -!- pikhq has joined.
07:11:38 -!- FreeFull has joined.
07:11:38 -!- Sgeo has joined.
07:11:38 -!- fungot has joined.
07:11:38 -!- sivoais has joined.
07:11:38 -!- hagb4rd has joined.
07:11:38 -!- subleq has joined.
07:11:38 -!- coppro has joined.
07:11:38 -!- atehwa has joined.
07:11:38 -!- Gregor has joined.
07:11:38 -!- soundnfury has joined.
07:11:38 -!- ssue has joined.
07:11:38 -!- Cryovat has joined.
07:11:38 -!- sirdancealot7 has joined.
07:11:38 -!- nortti- has joined.
07:11:38 -!- chicken1 has joined.
07:11:38 -!- mroman has joined.
07:11:38 -!- lambdabot has joined.
07:11:38 -!- ineiros_ has joined.
07:11:38 -!- shachaf has joined.
07:11:38 -!- fizzie has joined.
07:11:38 -!- lifthrasiir has joined.
07:11:38 -!- heroux has joined.
07:11:38 -!- ion has joined.
07:11:38 -!- olsner has joined.
07:11:38 -!- jix_ has joined.
07:11:38 -!- Tod-Autojoined has joined.
07:11:38 -!- Lumpio- has joined.
07:11:38 -!- kmc has joined.
07:11:38 -!- itidus21 has joined.
07:11:38 -!- Zuu has joined.
07:11:38 -!- Dovregubben has joined.
07:11:38 -!- Deewiant has joined.
07:11:38 -!- rodgort has joined.
07:11:38 -!- tswett has joined.
07:11:38 -!- Sanqui has joined.
07:11:38 -!- FireFly has joined.
07:11:38 -!- lahwran has joined.
07:11:38 -!- variable has joined.
07:11:38 -!- HackEgo has joined.
07:11:38 -!- clog has joined.
07:11:38 -!- nvt has joined.
07:11:38 -!- sebbu has joined.
07:11:38 -!- EgoBot has joined.
07:11:38 -!- comex has joined.
07:11:38 -!- kallisti has joined.
07:11:43 -!- glogbackup has left.
07:11:43 <pikhq> (who the hell tried that?)
07:11:43 <kmc> http://www.seattlepi.com/national/article/Woman-accused-of-giving-husband-lethal-sherry-1165596.php
07:11:50 <shachaf> "You can't drink anymore." "Is that a challenge?"
07:11:55 -!- copumpkin has joined.
07:11:55 -!- aloril has joined.
07:11:55 -!- hogeyui_ has joined.
07:11:58 <pikhq> Well, I suppose it'd be more of an enema.
07:12:10 <kmc> obviously the best way to take any drug is to dissolve it in DMSO and then just stick your hand in
07:13:39 <kmc> if you put your hand in DMSO you will taste garlic a moment later
07:14:02 <itidus21> this sounds like a highly dangerous thing
07:14:20 <kmc> allegedly it is pretty safe by itself
07:14:30 <kmc> but it lets other stuff through your skin
07:14:45 <itidus21> theres a lot of evil things that could be done with something liek that
07:15:13 <kmc> squirt gun full of LSD and DMSO
07:15:59 <kmc> also someone should just genetically engineer e. coli to produce psilocybin
07:16:02 <kmc> what could go wrong
07:16:20 <kmc> i think this is a hilarious apocalypse scenario
07:16:37 <pikhq> Nah, it's better to just convert cellulose to ethanol.
07:16:52 <pikhq> Thereby turning all plants into booze.
07:17:05 <shachaf> That way you get drunked with every brain cell u lose, right?
07:17:15 <kmc> your aim gets hecked
07:17:31 <shachaf> kmc: Everyone is trying to get me to move to Boston these days.
07:17:38 <kmc> people besides me?
07:17:44 <pikhq> Have you considered moving to antiBoston?
07:17:52 <shachaf> Yes, all the other Bostonpeople.
07:20:14 <itidus21> i heard that boston came second on a biased list of world's most livable cities.
07:20:56 <shachaf> kmc: Have you ever tried DMSO?
07:21:54 -!- ais523 has quit.
07:32:27 -!- parapooper has joined.
07:48:55 -!- itidus20 has joined.
07:52:16 -!- itidus21 has quit (Ping timeout: 252 seconds).
07:53:23 -!- Dovregubben has quit (Ping timeout: 246 seconds).
07:56:08 -!- itidus20 has changed nick to itidus21.
08:00:49 -!- itidus21 has changed nick to bf.
08:01:04 * bf is brainfuck, and brainfuck is bf.
08:01:28 -!- bf has changed nick to itidus21.
08:12:27 -!- Dovregubben has joined.
08:39:29 -!- ogrom has quit (Quit: Left).
09:09:11 <kallisti> so, GHC 7.6 now has a lambda case extension
09:12:00 -!- nooga has joined.
09:14:02 <shachaf> kmc: Did you see http://blog.ezyang.com/2012/01/problem-set-the-codensity-transformation/ ?
09:22:59 -!- Tod-Autojoined has quit (Read error: Connection reset by peer).
09:23:12 -!- Tod-Autojoined has joined.
09:32:49 -!- oerjan has joined.
09:47:39 -!- Tod-Autojoined2 has joined.
09:49:02 -!- Tod-Autojoined has quit (Read error: Connection reset by peer).
10:08:16 -!- Vorpal has quit (Changing host).
10:08:16 -!- Vorpal has joined.
10:08:44 -!- parapooper has changed nick to Guest34907.
10:09:02 -!- Guest34907 has left.
10:11:23 -!- Slereah has joined.
10:16:42 -!- yiyus has joined.
10:19:39 -!- nooga_ has joined.
10:21:16 -!- nooga has quit (Ping timeout: 245 seconds).
10:26:02 -!- Arc_Koen has joined.
10:26:13 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
10:26:17 <lambdabot> oerjan said 7h 16m 11s ago: I think your [ in Maze is buggy, (1) It checks the rightmost cell not the middle, but only on the initial iteration (2) There shouldn't be any delays at the end of the
10:26:52 <oerjan> to clarify, it doesn't do _any_ test of a cell other than on the initial iteration
10:26:54 <lambdabot> <no location info>: parse error on input `:'
10:27:19 <Arc_Koen> I wanted to make the rightmost cell the "current" cell to ease things, but I forgot
10:27:28 <oerjan> yeah that does look simpler
10:27:44 <Arc_Koen> and yes you're right it doesn't do tests besides the first iteration, I'll change that
10:44:00 <Arc_Koen> oerjan: as for %D and others being usable in functions, that's one of the things the page is very imprecise about; I suspect you could use ## or -- or whatever as well in a function
10:45:51 <oerjan> Arc_Koen: erm the original text before you formatted said a lot of "maze only" and "functions only"
10:46:23 <oerjan> i just fixed the remaining exception
10:46:45 <Arc_Koen> you're sure it was the only one?
10:46:54 <oerjan> actually comments should also be allowed everywhere
10:47:49 <Arc_Koen> though if I was to implement Maze I wouldn't bother with comments in the maze
10:48:17 <oerjan> the 99 bottles has lots of comments
10:48:20 <Arc_Koen> I'd store everything in a 2d array and only check where the car is going
10:48:39 <Arc_Koen> yes, but I mean, it's like in Befunge - as long as you don't drive through the comments, there is no need to mark them as such
10:50:12 <Arc_Koen> ok, other bug in '[': if the condition is met in the first occurrence (so cars must continue downwards without bothering), they'd be desynchronized by the timings
10:50:20 <Arc_Koen> oh right that's what you meant
10:52:49 -!- Phantom_Hoover has joined.
10:53:04 -!- oerjan has quit (Quit: Later).
11:19:54 -!- Jafet has quit (Quit: Leaving.).
12:10:51 -!- ogrom has joined.
12:48:09 -!- ogrom has quit (Ping timeout: 256 seconds).
12:54:17 -!- nooga_ has quit (Ping timeout: 244 seconds).
13:17:39 -!- kinoSi has quit (Read error: Connection reset by peer).
13:18:07 -!- kinoSi has joined.
13:45:04 -!- nooga has joined.
13:51:25 -!- AnotherTest has joined.
13:57:42 -!- nooga has quit (Ping timeout: 268 seconds).
14:17:52 -!- MoALTz has joined.
14:49:02 -!- ogrom has joined.
15:30:13 -!- nooga has joined.
15:41:23 -!- nooga has quit (Ping timeout: 272 seconds).
16:07:07 -!- ogrom has quit (Ping timeout: 255 seconds).
16:24:45 <kmc> shachaf: did you know that Ivy Bridge contains a hardware RNG? http://spectrum.ieee.org/computing/hardware/behind-intels-new-randomnumber-generator/0
16:25:56 <nortti> shouldn't the first example on the page http://esolangs.org/wiki/Real_Fast_Nora%27s_Hair_Salon_3:_Shear_Disaster_Download be LAMBDA LAMBDA LAMBDA APPLY ONE MORE THAN ONE MORE THAN ONE MORE THAN ZERO APPLY ONE MORE THAN ONE MORE THAN ZERO ONE MORE THAN ZERO ?
16:35:42 <Sgeo> I think JNAerator may be more tuned to generating code made to be accessible in Java vs making it easy to use from Clojure
16:35:51 <Sgeo> (No actual shock intended)
16:40:31 <Phantom_Hoover> You have to love the way that the site uses XHTML and CSS.
16:41:31 <nortti> well I didn't notice that when using links2
16:43:41 <Sgeo> "IE6 is the only browser that gets the box model right. Content + padding + border = overall width. What else should it be?"
16:43:47 <Sgeo> What is it supposed to be?
16:44:00 <Sgeo> And what's ... wrong with whatever it is that IE6 is described as doing there?
16:50:32 <fizzie> VIA PadLock has had a hardware on-chip RNG since January 2003.
16:51:54 <coppro> Sgeo: In the CSS model, the width is content only
16:51:59 <coppro> padding and border are on top of widht
16:52:03 <coppro> http://en.wikipedia.org/wiki/File:W3C_and_Internet_Explorer_box_models.svg
16:52:30 <kmc> fizzie: yeah
16:52:41 -!- impomatic has joined.
16:55:33 <FreeFull> The IE model does make sizing easier
16:55:47 <FreeFull> I think nowadays you can switch box models in CSS though?
16:58:11 <fizzie> You can box-sizing: border-box; though.
16:58:47 <FreeFull> http://www.css3.info/preview/box-sizing/
16:59:32 <Sgeo> "Internet Explorer 8, WebKit browsers such as Apple Safari 5.1+ and Google Chrome, Opera 7.0 and later, and Konqueror 3.3.2 and later support the CSS3 box-sizing property. Gecko-based browsers such as Mozilla Firefox support the same functionality using a proprietary "-moz-box-sizing" property,"
16:59:38 <Sgeo> (From Wikipedia)
16:59:45 <Sgeo> Are we allowed to have Firefox over this?
17:05:37 <fizzie> Sgeo: They're probably dropping the prefix as soon as https://bugzilla.mozilla.org/show_bug.cgi?id=243412 gets closed.
17:06:03 -!- carado has quit (Remote host closed the connection).
17:08:18 <Sgeo> fizzie, so, never?
17:11:30 <fizzie> Well now... they've closed a few of the depends.
17:25:03 <Sgeo> Why do both <embed> and <object> exist?
17:29:54 -!- atriq has joined.
17:39:00 <Sgeo> Hmm, Acid3 requires a web server that knows what it's doing
17:43:52 -!- AnotherTest has quit (Quit: Leaving.).
17:44:12 -!- AnotherTest has joined.
17:47:51 <nortti> please sign this petition: http://saveie6.com/
17:52:39 -!- atriq has quit (Ping timeout: 240 seconds).
17:53:22 -!- zzo38 has joined.
17:53:25 -!- oerjan has joined.
17:58:46 <FreeFull> nortti: Where will I get IE6 for Linux from
18:00:16 <nortti> then sign the petition so ie6 will be ported to other architectures
18:00:22 -!- atriq has joined.
18:02:30 <zzo38> Why do you need IE6 on Linux?
18:02:58 <kmc> qemu is surprisingly fast
18:03:13 <nortti> zzo38: http://saveie6.com/
18:03:30 <oerjan> <nortti> shouldn't the first example on the page http://esolangs.org/wiki/Real_Fast_Nora%27s_Hair_Salon_3:_Shear_Disaster_Download be LAMBDA LAMBDA LAMBDA APPLY ONE MORE THAN ONE MORE THAN ONE MORE THAN ZERO APPLY ONE MORE THAN ONE MORE THAN ZERO ONE MORE THAN ZERO ?
18:03:43 <oerjan> i think i checked the example was correct...
18:04:56 <oerjan> \ \ \ (3 (2 1)), or \x y z -> x (y z). that is composition, not church addition.
18:05:16 <atriq> Indices are zero-based
18:05:36 <oerjan> well it's wrong even so
18:06:12 <oerjan> atriq: i'm not sure if you've been on since i made the implementation
18:06:39 <atriq> Haven't looked at it in detail, though
18:06:44 <atriq> I've been a crazy homestuck this weekend
18:07:03 <oerjan> crazy homestuck, or crazy with homestuck?
18:07:53 <atriq> Been hanging out with all the other readers of homestuck
18:08:03 <atriq> In the North-East of England
18:08:09 <atriq> Who are willing to be hung out with
18:08:29 <atriq> Yesterday was a meet-up
18:09:46 <atriq> Well, less a con and more "let's see if we can get 200 people in anime costumes into two small rooms"
18:09:50 <oerjan> so we now know who here is a con man
18:10:04 <atriq> I reckon it's zzo38
18:10:08 <fizzie> 1. (1) victimize, swindle, rook, goldbrick, nobble, diddle, bunco, defraud, scam, mulct, gyp, gip, hornswoggle, short-change, con -- (deprive of by deceit; "He swindled me out of my inheritance"; "She defrauded the customers who trusted her"; "the cashier gypped me when he gave me too little change")
18:10:51 <oerjan> no:mulkt means en:fine
18:11:00 <lambdabot> *** "mulct" wn "WordNet (r) 3.0 (2006)"
18:11:00 <lambdabot> n 1: money extracted as a penalty [syn: {fine}, {mulct},
18:11:00 <lambdabot> v 1: deprive of by deceit; "He swindled me out of my
18:11:19 <fizzie> Apparently no:mulkt also means en:mulct.
18:11:45 <fizzie> Sorry, but it's a silly word.
18:11:49 <oerjan> although no:bot is more common
18:12:07 <atriq> I should not be allowed to dance
18:12:19 <fizzie> "no:bot" is some kind of an IRC bot.
18:12:33 <lambdabot> *** "win" wn "WordNet (r) 3.0 (2006)"
18:12:33 <lambdabot> n 1: a victory (as in a race or other competition); "he was
18:12:33 <lambdabot> 2: something won (especially money) [syn: {winnings}, {win},
18:12:38 <lambdabot> {profits}] [ant: {losings}, {losses}]
18:12:39 <lambdabot> v 1: be the winner in a contest or competition; be victorious;
18:12:41 <lambdabot> "He won the Gold Medal in skating"; "Our home team won";
18:12:47 <lambdabot> 2: win something through one's efforts; "I acquired a passing
18:12:51 <lambdabot> Plugin `todo' failed with: @todo has no args, try @todo-add or @list todo
18:13:38 <oerjan> <atriq> I reckon it's zzo38 <-- hm this idea gives me cognitive dissonance - it is both obviously true and obviously false
18:14:01 <oerjan> for the other "con" meaning, that is
18:14:14 <oerjan> i doubt zzo38 would ever defraud anyone
18:15:32 <oerjan> zzo38: do you go to cons?
18:21:42 -!- subleq has quit (Disconnected by services).
18:23:01 -!- MoALTz_ has joined.
18:25:52 -!- MoALTz has quit (Ping timeout: 252 seconds).
18:29:45 <zzo38> oerjan: I go to anime convention in August
18:31:34 * oerjan adjusts the real fast nora implementation slightly
18:32:30 <oerjan> i think this makes it impossible for the program to make any use of the particular number calculation mechanism used
18:32:36 <zzo38> If you know some things about hardware design with discrete logic: http://forums.nesdev.com/viewtopic.php?p=99641#p99641 How simple do you think such a design would be? How much would it cost?
18:33:38 <oerjan> basically v, which is borrowed from unlambda, is a function which is entirely unusable in a pure language without continuations
18:33:53 <oerjan> since applying it to anything gives itself back
18:34:10 <zzo38> Do you know if it is even possible to use an audio signal to clock anything?
18:34:29 <oerjan> zzo38: that would be a rather slow clock, wouldn't it?
18:36:20 <oerjan> (unlambda of course perversely ties it in with i/o, so you _have_ to use it.)
18:36:45 <oerjan> (but then unlambda is impure and has continuations.)
18:42:23 -!- ais523 has joined.
18:42:57 <atriq> A pure language is kind of like a particle collider
18:44:11 <zzo38> oerjan: Yes it is a slow clock, but read what I wrote I did not intend it to clock a CPU, I intend it to clock a 4-bit counter, which is then mixed with the audio.
18:44:31 <atriq> I actually had thoughts behind that statement
18:44:42 <zzo38> Would that even work, though?
18:45:01 <oerjan> atriq: i feel it may tend to understate the messiness of particle collisions
18:45:40 <atriq> I have a function q :: Int -> IO [Int].
18:45:43 <oerjan> zzo38: i cannot see any reason why that couldn't be made... but i'm no circuit designer.
18:45:49 <atriq> How can you work out what it does?
18:46:02 <atriq> Throwing stuff at it and seeing which countries you destroy
18:46:48 <oerjan> nah q is harmless. it's blofeld you should be wary about.
18:47:48 <atriq> There was a Doctor cosplayer today, and a doctor (from yesterday's episode) cosplayer too
18:47:55 <zzo38> The audio is already amplified, it may be a square wave (with different volume settings and duty settings) but can also be triangle wave, what happen if that is used for clock?
18:49:40 <kmc> shachaf: I can't decide whether to add CVE-2012-0056 to my kernel exploits talk
18:50:09 <kmc> it's an interesting and unusual sort of vulnerability, but for exactly this reason it will be annoying to explain, and will break the flow of everything else (which is mostly about memory corruption)
18:50:21 <kmc> atriq: hey, all the *function* does is return an inert IO action ;)
18:50:53 <oerjan> IO actions don't kill people. Runtime systems with IO actions kill people.
18:51:13 <kmc> programming languages don't kill people, interpreters do
18:52:28 <atriq> Maybe I'm evil and that contains unsafePerformIO
18:53:51 <kmc> :t \k -> let x = unsafePerformIO k in x `seq` (return x `asTypeOf` k)
18:59:32 <oerjan> hm i don't know what to answer on today's iwc poll. i'll have to wait until a night i can see the big dipper.
18:59:54 <atriq> oerjan, did I thread-title well?
19:00:30 <oerjan> um i haven't got to that forum section yet
19:00:47 <oerjan> i only read the forum twice a week
19:01:08 <atriq> At one point, I was only reading them twice an hour
19:01:27 <atriq> That's how I'm in the top 25 posters
19:02:02 -!- AnotherTest has left.
19:02:46 <FreeFull> Functional programming works best with a little impurity mixed in (but not too much)
19:03:04 <atriq> I think everything works best with other things thrown at it
19:03:15 <atriq> Hence why we're not all using Lazy K in our day-to-day lives
19:05:02 <Sgeo> Huh. So psyduck is a pokemon.
19:05:49 <Sgeo> I just knew it from that ... thing in Canada
19:06:11 <Sgeo> And by Canada I mean IRCnomic
19:06:50 <oerjan> <atriq> oerjan, did I thread-title well? <-- ACCEPTABLE
19:07:04 <Sgeo> http://www.mail-archive.com/agora-business@agoranomic.org/msg04249.html
19:16:45 <kmc> FreeFull: i agree
19:16:51 <kmc> people always say that as though it's a damning criticism of haskell
19:16:58 <kmc> as though haskell has no way to handle IO, state, etc.
19:17:22 <kmc> imo Haskell's is the pragmatic moderate position
19:17:29 <FreeFull> Haskell allows impurity if you really want to
19:17:37 <kmc> rather than "side effects everywhere for no reason" it's "effects where you need them, and pay attention"
19:17:59 -!- nooga has joined.
19:18:09 <kmc> i blame the haskell beginners who write breathless excited blog posts where they completely misunderstand the language and what its "purity" actually means
19:18:22 <kmc> but i'm just bitter
19:25:39 <kmc> imo people should stop talking about "pure" vs "impure" functions
19:25:52 <kmc> in haskell you have functions and you have actions; they are separate and complimentary things
19:26:17 <zzo38> O no!!! Basketball is difficult! My best PG and SF are injured! I have only one SF remaining! And, I only have one PF and one C remaining! I want to buy more but it is too expensive!!!!
19:26:33 <kmc> zzo38 you are employee of the month
19:27:26 <kmc> that's why i buy basketball players in bulk over the internet
19:27:29 <zzo38> I don't think there is "employee of the month", either in this computer game or in places where I do work.
19:27:53 <shachaf> kmc: You're doing the talk again?
19:28:04 <zzo38> kmc: You buy basketball players in bulk over the internet?
19:28:47 <shachaf> Ah, this is the one where a program overwrites its memory by writing to /proc/mem?
19:32:13 <zzo38> Do you know of Csound can use audio signals to clock other signals?
19:37:59 <fizzie> There was the author of Nyquist (the synthesis language) at this speech conference giving a talk about computers and music. (They like to schedule keynotes that are a bit "different".)
19:38:33 <oerjan> Arc_Koen: your Maze [ looks good now :)
19:45:58 <zzo38> I do not know if any Famicom cartridge uses the Audio Out pin for any purpose other than mixing with its own audio, although it seem that it could be used for other things too, such as: * Controllable filter * Controllable volume (which affects even triangle and DPCM, and gives more levels for square) * Amplitude modulation or frequency modulation of other audio
19:51:26 <Arc_Koen> oerjan: I'm too lazy to implement an interpreter for Maze. Do you know of another language I might want to work on? :)
20:08:56 <Arc_Koen> are we sure any graph can be represented as an eodermdrome string of characters?
20:09:07 <Arc_Koen> well obviously it has to be connex, but appart from that
20:10:12 -!- Vorpal has quit (Ping timeout: 276 seconds).
20:10:58 <Arc_Koen> for instance if the graph is a "star" (A, B, C, D, E, with A connected to every other and others not connected between them), I don't see how it can be represented in an eodermdrome way
20:13:10 <fizzie> And certainly one string can't represent any graph; e.g. if the graph has more than 26 nodes.
20:13:12 <Arc_Koen> ohhh you can duplicate edges, ok
20:13:36 <fizzie> "There is an arc between any two letters which are consecutive in the string, but not otherwise."
20:18:02 <fizzie> Annoys me every time I see it: esolang wiki Eodermdrome article mentions that the initial state graph is planar, yet the illustration has crossing edges. (And it would need relatively minor changes to avoid those.)
20:20:07 <tswett> Technically, there's no such thing as a "string of whitespace that contains punctuation marks".
20:23:12 <atriq> fizzie, it is planar. That particular representation has crossing edges.
20:23:24 <tswett> That's fizzie's point.
20:23:31 <tswett> It should br drawn without crossing edges.
20:23:37 <atriq> I don't see why anyone should worry
20:23:47 <atriq> It's not stopping it from actually being planar
20:24:48 <fizzie> I didn't say I had logically immaculate reasons for being annoyed by it.
20:25:11 <fizzie> It doesn't "look planar" when it has "unnecessary" crossing edges, is all.
20:25:34 <tswett> I like how oerjan's bct.sss (a BCT interpreter in ///) starts by making ///'s syntax nicer.
20:34:12 <tswett> I notice that the /// quine is completely unexplained.
20:35:27 <olsner> tswett: is it not obvious?
20:35:53 <oerjan> <fizzie> Annoys me every time I see it: esolang wiki Eodermdrome article mentions that the initial state graph is planar, yet the illustration has crossing edges. (And it would need relatively minor changes to avoid those.) <-- yeah that annoys me too, especially as i carefully made the previous ascii version have none :(
20:35:53 <tswett> Those slashes go that way, and *those* slashes go *that* way.
20:36:34 <olsner> indeed.. the significant realization is that there are two kinds of slashes being used
20:36:45 <oerjan> tswett: it does use _almost_ the same principles as the bct interpreter, though.
20:37:26 <oerjan> i needed to use 3 /'s instead of 2 to start tokens, though.
20:41:35 <tswett> Obviously, this will cause it to cease to be a quine.
20:42:39 <oerjan> fwiw ///\\ is the quoting prefix in the quine, iirc
20:44:06 <oerjan> hmph elliott has still not fixed the broken /// links
20:46:28 * tswett introduces syntactic sugar for ///\\
20:46:38 <tswett> As well as syntactic sugar for... everything.
20:46:51 <oerjan> that's essentially what . is in most of my other programs
20:47:02 <tswett> (, |, and ) are all replaced with /. ! and _ are \/ and //, respectively.
20:47:18 <oerjan> (well sugar for whatever the quoting prefix is)
20:47:19 <tswett> Also, the first two lines are, of course:
20:47:44 <tswett> Sending those two messages was not trivial.
20:47:47 <tswett> Well... it was trivial.
20:47:54 <tswett> But not absolutely trivial.
20:48:48 <oerjan> i don't see the point of ! and _ there
20:48:59 <tswett> It makes substitutions easier to read.
20:49:16 <tswett> Instead of \/\/\/\\\\ for ///\\, you can see !!!__ for ///\\.
20:50:48 <oerjan> oh and things starting with ///\/ are other tokens.
20:51:28 <oerjan> you'll have to find out yourself where they end :)
20:51:47 <tswett> / I don't know what . is //
20:51:56 <tswett> / Whatever this is, I don't know what it is, either //
20:55:23 <oerjan> i vaguely recall when i made the bct interpreter, i considered introducing syntactic sugar for combinations of escaping with \ and escaping with //\\ (its quoting token), but i thought better of it
20:57:25 <oerjan> i think it has spots with \ escaped //\\ escaped \ escaped //\\ escaped something
20:57:34 <tswett> So, uh, _ is quoted \, = is quoted _, and # is quoted =. ///\\ is replaced with a triply quoted version of itself, followed by a doubly quoted backslash and a singly quoted backslash.
20:57:48 <oerjan> or wait, maybe the last was just //\ for a general token
20:59:48 <tswett> Er, no, remove one quotation level from what I just said.
21:00:48 <oerjan> well the code contains a \\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/ replacement
21:01:11 <tswett> So, the replacement for ///\\ ends with an unescaped backslash, doesn't it?
21:01:20 <oerjan> btw i distinguish quoting from escaping. quoting is prepending ///\\ while escaping is prepending \
21:01:47 <tswett> Okay, s/quote/escape/ in everything I said.
21:01:54 <oerjan> @show \\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/
21:01:54 <lambdabot> "\\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/"
21:02:08 <oerjan> @read "\\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/"
21:02:08 <lambdabot> Plugin `dummy' failed with: Prelude.read: no parse
21:02:25 <oerjan> > "\\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/"
21:02:26 <lambdabot> lexical error in string/character literal at chara...
21:02:40 -!- kwertii has quit (Quit: kwertii).
21:02:43 <oerjan> there is something fishy here
21:02:58 <oerjan> oh wait the last / doesn't belong
21:03:05 <oerjan> @read "\\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\"
21:03:05 <lambdabot> Plugin `dummy' failed with: Prelude.read: no parse
21:03:13 <oerjan> > "\\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\"
21:03:15 <lambdabot> lexical error in string/character literal at chara...
21:03:41 <lambdabot> lexical error in string/character literal at chara...
21:04:23 <tswett> Clearly, we need @sssshow and @sssread commands.
21:05:03 <oerjan> @show \\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\
21:05:03 <lambdabot> "\\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
21:05:41 <oerjan> this may not be helping
21:06:13 <oerjan> ^unesc \\\\\\\/\\\\\\\/\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\
21:06:13 <fungot> \\\/\\\/\\\/\\\\\\\\\\\
21:06:59 <oerjan> now imagine that in front of some arbitrary character c
21:07:08 <oerjan> \\\/\\\/\\\/\\\\\\\\\\\c
21:07:30 <oerjan> ^unesc \\\/\\\/\\\/\\\\\\\\\\\c
21:08:11 -!- atriq has quit (Ping timeout: 272 seconds).
21:09:05 <tswett> So ///\\c is replaced with a doubly escaped version of itself, followed by a singly quoted backslash, then a singly quoted c. So...
21:09:25 <FireFly> #esoteric is probably the only channel where you see people implement handy utility programs.. in brainfuck
21:09:29 <oerjan> um no ///\\c is replaced with a doubly escaped version of itself, period
21:09:58 <tswett> And how the Flynn–Fletcher does that help anything...
21:10:18 <oerjan> now you can copy it twice without losing data...
21:11:13 <tswett> How do you copy something, again. You stick a pair of slashes before it, and one after, and wait for it to be executed.
21:11:47 <tswett> Which, in this case, you can, of course, do twice without losing data.
21:13:21 <oerjan> to be more precise, you can first make two copies, then make a new copy of one of the copies. and the two versions will look _different_.
21:13:52 <oerjan> one will be quoted with ///\\, while one will be quoted with \/\/\/\\\\\
21:14:57 <oerjan> which means you can now do a substitution on just one of the copies, to replace its quoting with just \-escaping
21:15:34 <oerjan> _then_ you can copy/move the other version into a designated spot of that
21:16:15 <oerjan> while still losing no data, as that still remains ///\\ quoted
21:16:51 <oerjan> and finally you replace that remaining ///\\ with \/\/\/\\\\\ again.
21:17:16 <oerjan> at which point you will have constructed something which prints as the original program
21:17:59 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
21:18:45 <oerjan> this is all very similar to the principle of all the looping programs since the second one made, except you construct something printable instead of something executable.
21:21:05 <oerjan> <_< any questions? >_>
21:22:45 <Arc_Koen> hmmmmm that was something about reversible brainfuck but I can't seem to remember what
21:25:52 <tswett> Yeah, isn't there some remarkably simple modification you can do to BF to make it reversible?
21:26:38 <tswett> Something like... make it so that brackets are entered if the value is 0 and skipped if the value is not 0.
21:26:44 <shachaf> oerjan: the guilting only works in PM.
21:32:07 <oerjan> tswett: um like http://esolangs.org/wiki/Reversible_Brainfuck you mean? *cough*
21:32:36 <oerjan> shachaf: what guilting?
21:32:49 <tswett> oerjan: yeah. That's exactly the same as what I just described, right?
21:32:50 <shachaf> oerjan: I don't know. elliott told me to tell you.
21:33:08 <oerjan> oh the /// links right
21:35:53 <Arc_Koen> wait, so it's possible to be turing-complete and reversible at the same time?
21:37:26 <oerjan> Arc_Koen: for turing machines themselves that's an old result
21:38:54 <oerjan> yes you can make turing machine tables that are reversible
21:39:45 <tswett> There are Turing machines that are both universal and reversible?
21:39:47 <kmc> also you can make an idealized reversible computer which uses no energy
21:39:55 <kmc> it's only when you want to forget stuff that you need to take in energy
21:39:55 <tswett> Getting rid of heat could be interesting.
21:40:40 <oerjan> for such a machine, the bit bucket is physically real :P
21:42:52 <kmc> also quantum computation is reversible
21:43:08 <kmc> except for making observations (?????? this is where i run out of knowledge)
21:43:47 <tswett> Under the many-worlds interpretation, that part's reversible, too.
21:44:10 <tswett> Given the talk about eigenratios that's happened, I'm pondering an assembly language that admits an extremely efficient self-interpreter.
21:44:18 <tswett> I guess it would be pretty easy.
21:44:50 <tswett> exec <register> - execute one instruction, using the memory pointed to by <register> as the register bank.
21:45:21 <tswett> But wait, that doesn't work. You could write a one-instruction infinite loop with that.
21:45:47 <oerjan> that is a problem how?
21:46:03 <tswett> Well, I think we should have an upper bound on the amount of time that executing a single instruction can take.
21:46:04 <olsner> jmp $ is also a one-instruction infinite loop
21:46:42 <tswett> olsner: yeah, true. But that one works by executing a single instruction infinitely many times. Each individual execution is finite.
21:47:00 <tswett> With this instruction, however, executing that one instruction, once, could take arbitrarily long.
21:47:37 <olsner> nah, it would just take one instruction time to update the pointed-to program counter and continue after the exec instruction?
21:49:14 <tswett> Well, suppose that $2 points at a piece of memory whose instruction pointer points at the exec instruction.
21:50:20 <tswett> Then if you tell the interpreter to exec $2, it will look up the instruction pointer at $2, load its pointee (which is exec $2), and execute exec $2, and in doing so, it will look up the instruction pointer at $2, and ...
21:59:37 -!- nooga has quit (Ping timeout: 240 seconds).
22:02:58 -!- impomatic has left.
22:13:05 -!- MoALTz_ has quit (Quit: Leaving).
22:16:08 <tswett> Whelp, I've made a subleq self-interpreter. It works by copying parts of the interpretee into itself.
22:16:09 <zzo38> Can we make esolang that can program hardware instead of only software?
22:16:26 <tswett> I'm pretty sure it's impossible to write a subleq self-interpreter that doesn't do that.
22:16:54 <tswett> zzo38: those exist. Two-dimensional esolangs where all state is local.
22:20:44 <tswett> I think BackFlip is a good example.
22:21:21 <oerjan> never managed to make any real programs in that
22:21:49 <oerjan> well, real computation. of course it doesn't have io
22:23:19 <tswett> zzo38: you've heard of Wireworld, I assume?
22:29:27 <zzo38> tswett: I have heard and know about both BackFlip and Wireworld.
22:30:02 <zzo38> However, I mean making actual hardware gates from it.
22:32:23 <zzo38> Such as: discrete logic connected manually, CPLD (such as a JEDEC file), FPGA (such as AT40k bitstreams, since someone has documented their format), ASIC, compiling into a hardware description language, or something else.
22:39:44 <zzo38> But regardless, these are for digital electronics. What if, you make esolang for analog electronics?
22:42:03 -!- oerjan has quit (Quit: RRRRRRRRR).
22:42:34 <Sgeo> Does Game of Life count as an esolang?
22:42:56 <zzo38> I don't know if it counts as a programming language at all, whether or not esoteric.
22:43:32 <tswett> The semantics of Proce are perhaps best defined in terms of analog electronics.
22:45:17 <zzo38> Can you make up a Proce->SPICE compiler, if such thing would be possible?
22:45:39 <shachaf> If such thing would be possible, then it would be possible.
22:45:47 <tswett> It's certainly possible, yes.
22:46:26 <tswett> Each signal is simply a wire. i! is an integrator, + is an adder, * is an amplifier, r! is a rectifier, and so on.
22:47:42 <Arc_Koen> Sgeo: game of life is turing complete :)
22:48:47 <zzo38> Yes, I saw once the turing machine in game of life.
22:49:12 <zzo38> I requires a large number of cells.
22:50:57 <Gregor> I don't think most people would consider Turing-completeness as necessary /or/ sufficient for the descriptor “programming language”
22:55:08 <tswett> Yeah, I guess I'd say that to be a language, the input has to consist of text.
22:56:14 <itidus21> the act of programming in such cases becomes loading the initial GoL cells, and uh.. afterwards im not quite sure
22:56:18 <tswett> ...Or speech or gestures.
22:57:49 <tswett> What if the input is an arbitrary real number, and the "language" is simply a continuous function R -> R?
22:57:57 <Sgeo> Is Smalltalk texty enough? What about where someone drags building blocks together?
22:58:17 <tswett> Could it be Turing-complete? Would it then be a language?
22:58:52 <Sgeo> GoL can be fitted to that definition
22:58:58 <tswett> I wonder if there's a Turing-completely dynamical system whose step function is a holomorphic function of the complex numbers.
22:59:18 <tswett> There are certainly languages for describing GoL patterns. Such languages would themselves probably be considered Turing-complete programming languages.
22:59:20 <Sgeo> With an isomorphism from boards with a finite number of live cells to real numbers
22:59:32 <zzo38> tswett: Is it possible to prove whether or not there is a Turing-completely dynamical system whose step function is a holomorphic function of the complex numbers?
22:59:47 <tswett> ais523: is there a Turing-complete dynamical system whose step function is a holomorphic function of the complex numbers? Thanks.
22:59:51 -!- Arc_Koen has quit (Quit: Arc_Koen).
23:00:15 <Sgeo> What's a holomorphic function?
23:00:17 <tswett> Uhh, make that a computable function.
23:00:28 <tswett> Sgeo: a differentiable one.
23:00:41 <tswett> Which, in the complex numbers, is the same thing as a smooth one.
23:00:49 <tswett> Which I think is the same thing as an analytic one?
23:01:25 <tswett> Differentiable = holomorphic = analytic, for functions of the complex numbers. According to Wikipedia.
23:01:37 <tswett> The Mandelbrot set definitely looks like the sort of thing that could be computational.
23:01:51 <Sgeo> Is there a way to make a smooth function which at integer inputs matches a GoL function?
23:02:15 <tswett> There's a way to make a smooth function which, at integer inputs, matches any function Z -> R whatsoever.
23:02:25 <tswett> Wait, that's not true.
23:02:39 <tswett> Well, maybe it is. But in any case.
23:02:50 <tswett> It's definitely possible for any bounded function Z -> R.
23:05:06 <tswett> If F : Z -> R, then f(x) = sum_{n in Z} F(n) sinc(x - n) ought to coincide with it.
23:17:43 -!- kinoSi has quit (Read error: Connection reset by peer).
23:18:09 -!- kinoSi has joined.
23:19:47 -!- ais523 has quit.