←2012-09-07 2012-09-08 2012-09-09→ ↑2012 ↑all
00:33:19 <kmc> Sgeo: you're not allowed to "use" things in Java, only "leverage" them
00:38:05 <elliott> kmc: did you enjoy
00:41:53 <Arc_Koen> ok, someone has implemented Conway's game of life, and someone else a brainfuck interpreter... *in spacechem*
00:41:53 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
00:41:58 <Arc_Koen> @messages
00:41:58 <lambdabot> oerjan said 2h 32m 30s ago: doesn't your brainfunct truth-machine have an off-by-one error? i.e. loops on '0' rather than '1'
00:41:59 -!- evincar has joined.
00:42:16 -!- elliott has left ("Leaving").
00:43:18 -!- Dovregubben has quit (Ping timeout: 264 seconds).
00:43:40 -!- Dovregubben has joined.
00:43:41 <Arc_Koen> > chr 48
00:43:42 <lambdabot> '0'
00:44:09 -!- copumpkin has quit (Ping timeout: 244 seconds).
00:44:30 <Arc_Koen> oerjan: I wrote an interpreter for brainfunct and I checked the truth-machine, it was working
00:44:41 -!- copumpkin has joined.
00:44:49 <oerjan> i wrote another interpreter and it didn't :/
00:45:01 <Arc_Koen> hmm maybe the functions are numbered differently
00:45:16 <oerjan> the cat works
00:45:41 <Arc_Koen> weird
00:45:53 <oerjan> > length "///////////////////////////////////////////////"
00:45:54 <lambdabot> 47
00:46:07 <Arc_Koen> oh
00:46:15 <Arc_Koen> maybe I just copypasted it wrong
00:46:21 <oerjan> there are 47 initial /'s, so the .@ function following them is on 48
00:47:01 <Arc_Koen> indeed
00:47:14 <Arc_Koen> and my interpreter just looped on 0
00:47:57 <Arc_Koen> ok, should be better now
00:49:07 <oerjan> now it works
00:49:24 <Arc_Koen> funny thing, the brainfunct program is tail-recursive but my interpreter doesn't acknowledge that, because of the 'for' loop
00:49:55 <Arc_Koen> I guess I should fix that by taking the last step out of the for loop
00:50:17 <oerjan> should I/O be binary or text-mode?
00:50:40 <Arc_Koen> textmode
00:50:52 <Arc_Koen> like all brainfuck-likes
00:51:06 <Arc_Koen> > length "///////////////////////////////////////////////"
00:51:08 <lambdabot> 47
00:51:10 <Arc_Koen> erk
01:01:21 <Arc_Koen> weird, it should be tail recursive now, but it still says Stack_overflow
01:03:13 <FreeFull> > length [1..]
01:03:17 <lambdabot> mueval-core: Time limit exceeded
01:08:45 <zzo38> G. Steele seems to be much better than my current PG (Cahill) but they are too expensive.
01:09:35 * oerjan puts his haskell interpreter on the wiki page
01:10:22 <Sgeo> Wait, what, a Haskell interpreter in an esolang?
01:10:36 <oerjan> i distinctly expected that comment
01:10:49 <oerjan> but no, it's brainfunct in haskell
01:10:51 <zzo38> Then your expectations are correct.
01:11:02 <Sgeo> I honestly was confused, not trying to make a joke. I am unconfused
01:11:27 * Arc_Koen fought hard not to make the joke
01:11:46 <Arc_Koen> so, hum, some guy wrote a brainfuck interpreter in spacechem
01:11:51 <oerjan> and i couldn't resist keeping it in
01:12:06 <oerjan> Arc_Koen: btw i support nesting
01:12:13 <Arc_Koen> nice
01:12:22 <zzo38> I have made one Haskell program on esolang wiki on its own page; the raw contents of the page are a valid Haskell program and the page can also be read like other wiki page. Such thing can be done with Haskell.
01:12:23 <oerjan> in theory anyhow, i haven't tested except by modifying the cat
01:12:40 <Arc_Koen> I have no idea how useful nesting can be, though
01:13:15 <Sgeo> " This is great news for you, and bad news for malware generators, because:"
01:13:26 <Sgeo> Hey, for all you know, blog post, I might be a malware generator!
01:13:34 * Sgeo is not in fact a malware generator.
01:13:41 <Arc_Koen> http://www.youtube.com/watch?v=EzzLzUCRmBw&feature=player_embedded
01:14:08 <Arc_Koen> oerjan: Haskell sounds like a very hard to read ocaml
01:14:39 <oerjan> XD
01:14:53 <kmc> ocaml syntax is fugly
01:14:58 <kmc> haskell syntax is more complicated but nicer
01:15:41 <kmc> zzo38: is it Literate Haskell?
01:16:10 <zzo38> This game is difficult I only have one C so if he is injured, I am probably going to lose.
01:16:31 <kmc> i just checked and Literate Haskell is in the Report
01:16:32 <zzo38> kmc: Yes, it is Literate Haskell. You can embed Literate Haskell in HTML, XML, MediaWiki, TeX, and other formats without much difficult.
01:16:35 <kmc> i thought it wasn't
01:16:47 <zzo38> kmc: Well, now you know.
01:17:13 <kmc> and knowing is haf the battle
01:17:42 <Arc_Koen> oerjan: I'm not sure brainfunct is equivalent to brainfuck, actually
01:17:59 -!- evincar has quit (Read error: Connection reset by peer).
01:18:52 <Arc_Koen> it lacks a test instruction - the truth-machine is a good example of this lack
01:20:18 <kmc> someone should start a band named The Regents of the University of California
01:20:33 <zzo38> kmc: Are you going to do so?
01:20:39 <kmc> no
01:21:16 <oerjan> Arc_Koen: you can simulate brainfuck with a smaller cell size, i think
01:21:27 <Arc_Koen> how so?
01:23:08 -!- evincar has joined.
01:23:20 <oerjan> let's say you need k branch points in the program, and your brainfuck has cells 0 ... n-1, then you can add n*i where i is the number of your branch
01:23:43 <oerjan> may need some off by one tweaking
01:24:32 <Arc_Koen> hummmm I'm pretty sure I did not understand what you just said
01:24:33 <oerjan> and for this you need brainfunct cell values 1 .. n*k
01:25:45 <Arc_Koen> but it is 3 in the morning and I'm tired and I have to get up in 4h and a half so I'll read the logs tomorrow to try to understand
01:25:49 <Arc_Koen> see you
01:25:54 <oerjan> bye
01:26:06 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!).
01:33:45 -!- evincar has quit (Read error: Connection reset by peer).
01:35:18 <Sgeo> Does HackEgo have the JVM? Can it be installed?
01:35:51 <Sgeo> `where java
01:35:58 <Sgeo> `run where java
01:36:03 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: where: not found
01:36:11 <Sgeo> buh
01:36:20 <HackEgo> bash: where: command not found
01:37:16 <oerjan> `run ls bin/j*
01:37:19 <HackEgo> bin/joustreport \ bin/jousturl \ bin/json
01:37:23 <oerjan> `run ls /bin/j*
01:37:26 <HackEgo> ls: cannot access /bin/j*: No such file or directory
01:37:32 <oerjan> `ls /
01:37:35 <HackEgo> bin \ dev \ etc \ hackenv \ home \ lib \ lib64 \ opt \ proc \ sbin \ sys \ tmp \ usr \ var
01:38:05 <oerjan> `run ls /bin/*jc
01:38:08 -!- evincar has joined.
01:38:08 <HackEgo> ls: cannot access /bin/*jc: No such file or directory
01:38:14 <oerjan> `where gjc
01:38:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: where: not found
01:38:37 <oerjan> oops
01:39:15 <oerjan> `run ls /usr/bin/j*
01:39:19 <HackEgo> ​/usr/bin/jar \ /usr/bin/jarsigner \ /usr/bin/java \ /usr/bin/javac \ /usr/bin/javadoc \ /usr/bin/javah \ /usr/bin/javap \ /usr/bin/javaws \ /usr/bin/jcf-dump \ /usr/bin/jcf-dump-4.3 \ /usr/bin/jcf-dump-4.4 \ /usr/bin/jconsole \ /usr/bin/jdb \ /usr/bin/jexec \ /usr/bin/jhat \ /usr/bin/jinfo \ /usr/bin/jmap \ /usr/bin/join \ /usr/bin/jps \ /usr/bin/jrunscript \ /usr/bin/js \ /usr/bin/jsadebugd \ /usr/bin/jstack
01:39:24 <oerjan> there you go
01:39:31 <Sgeo> I am now reading Java documentation
01:39:33 <Sgeo> I feel sad at this
01:39:46 <Sgeo> Like I shouldn't have to read Java documentation
01:41:09 -!- evincar has left.
01:43:06 -!- Dovregubben has quit (Ping timeout: 252 seconds).
01:43:42 <Sgeo> ObjectFactoryBuilder
01:44:04 -!- Dovregubben has joined.
01:44:13 <Sgeo> StateFactory
01:44:24 <Sgeo> ValueFactory
01:46:00 <kmc> the workers in your factory are going to unionize
01:46:19 -!- FreeFull has quit (Ping timeout: 272 seconds).
01:46:29 <Sgeo> Why does the Factory pattern have ... a name, exactly?
01:46:40 <Sgeo> What's so esoteric about a function that returns an object?
01:47:26 <Sgeo> Oh... hm
01:47:55 -!- FreeFull has joined.
01:48:07 <Sgeo> It seems like a problem easily solved by having classes be first-class
01:49:44 -!- lexande_ has joined.
01:50:18 -!- lexande_ has quit (Remote host closed the connection).
01:50:39 -!- lexande_ has joined.
01:50:49 -!- elliott has joined.
01:50:50 <elliott> shachaf
01:50:56 <elliott> why isn't arch linux's ghc package 7.6.1 yet
01:51:32 <oerjan> shocking
01:51:47 -!- Dovregubben has quit (Ping timeout: 252 seconds).
01:52:28 -!- Dovregubben has joined.
01:53:37 -!- zzo38 has quit (Ping timeout: 252 seconds).
01:53:41 <elliott> I am very displeased shachaf
01:57:14 <oerjan> elliott: i _almost_ made my first brainfuck interpreter today
01:57:22 <oerjan> except it was brainfunct instead.
01:58:49 <elliott> oerjan: sounds like you're brainfunct in the head
01:59:18 <oerjan> yep
01:59:19 <elliott> HA HA HA HA HA HA HA HA [audience applauds] [member of audience shot] [bomb explodes in the air] [confetti comes out of the bomb] [spontaneous party begins]
01:59:40 <elliott> [everyone wakes up the next day smelling of petrol and thinking about puppies]
02:00:53 -!- trout has changed nick to variable.
02:01:47 <Phantom_Hoover> elliott is alive??
02:02:26 <oerjan> as long as he gets fed enough brains
02:02:52 <Phantom_Hoover> ah
02:03:02 <elliott> [the face of a well-known politician covered in chocolate smiling forever]
02:03:32 <elliott> [an image of your death but instead of you it's a cardboard cutout of bill, the guy in the photocopier]
02:03:46 <Sgeo> Is doall vs dorun always going to trip me up?
02:04:00 <Sgeo> (For the Clojure impaired, doall is like sequence and dorun is like sequence_)
02:05:06 -!- lexande_ has quit (Remote host closed the connection).
02:05:25 <Phantom_Hoover> elliott, racist
02:06:28 -!- lexande_ has joined.
02:08:44 -!- mig22 has joined.
02:29:14 -!- lexande_ has quit (Remote host closed the connection).
02:31:43 -!- lexande_ has joined.
02:36:41 -!- quintopia has quit (Quit: Lost terminal).
02:36:56 -!- quintopia has joined.
02:42:05 -!- lexande_ has quit (Remote host closed the connection).
02:47:30 <shachaf> elliott: Sorry. :-(
02:47:50 <shachaf> elliott: The Arch maintainers tried, but I kept getting in their way.
02:48:40 <elliott> shachaf: Thank you for your apology.
02:48:49 <elliott> shachaf: Do you know about upgrading GHc with the binary distribution?
02:48:57 <elliott> Will it correctly uninstall stuff if I just run it or do I need to rm -r /opt/ghc?
02:48:58 -!- zzo38 has joined.
02:49:10 <shachaf> elliott: Why rm?
02:49:13 <shachaf> Disk space is cheap.
02:49:23 <shachaf> Also a bunch of things aren't 7.6-compatible yet.
02:49:39 <elliott> shachaf: rm as opposed to what?
02:50:08 <shachaf> As opposed to not uninstall the old GHC.
02:50:12 <shachaf> You can have more than one, you know.
02:50:16 -!- Phantom_Hoover has changed nick to Phantom__Hoover.
02:50:41 <oerjan> shocking
02:51:06 <zzo38> I have a combination VHS/DVD I want to know how to write software to replace the one on there, to add some features which are missing and to make it run faster.
02:57:41 <elliott> shachaf: but /opt/ghc
02:57:46 <elliott> it's not /opt/ghc-whateverversion
02:57:52 <elliott> /opt/ghc-7.4.1 apparently
02:57:59 <shachaf> elliott: So?
02:58:06 <shachaf> Where did it come to /opt/ghc from, anyway?
03:01:05 <elliott> shachaf: From me putting it there.
03:01:27 <shachaf> elliott: Well, put GHC 7.6.1 in /opt/ghc-7.6.1
03:01:29 <shachaf> QED
03:01:46 <elliott> That's inconsistent.
03:02:07 <shachaf> Well, so's your AXIOM SYSTEM!!!!!
03:04:56 -!- kinoSi has quit (Read error: Connection reset by peer).
03:05:22 -!- kinoSi has joined.
03:06:12 -!- Dovregubben has quit (Ping timeout: 244 seconds).
03:06:54 <elliott> shachaf: So what's not 7.6 compatible?
03:06:58 <elliott> I have this thing I want to write in 7.6.
03:07:11 <shachaf> elliott: Just install 7.6 and keep 7.4.
03:07:12 -!- Dovregubben has joined.
03:07:23 <shachaf> Then you can find out "4 urselv!!"
03:07:45 -!- lexande_ has joined.
03:07:57 <elliott> shachaf: I don't want to.
03:08:10 <elliott> shachaf: You have to tell me as an apology for stopping the Arch maintainers.
03:08:16 <shachaf> Oh.
03:08:23 <shachaf> TypeCompose is broken in 7.6!!!!!!!
03:09:09 <elliott> Oh no!!!
03:09:12 <elliott> I don't use that package.
03:09:16 <elliott> Does edwardk's stuff work?
03:09:42 -!- Phantom__Hoover has quit (Quit: Leaving).
03:10:30 <shachaf> elliott: Want a "free tip" on making things not break with 7.6?
03:10:49 <shachaf> Take "constraint: containers < 0.5" out of your ~/.cabal/config
03:11:07 <shachaf> "ur wellcome :\"("
03:11:37 <elliott> shachaf: I don't think I have that in my ~/.cabal/config.
03:11:43 <elliott> shachaf: So what's broken, seriously?
03:12:08 <shachaf> I don't remember.
03:12:24 <shachaf> happy is broken unless you meddle with it.
03:12:26 <shachaf> (Which I did.)
03:12:31 <elliott> How do you have to meddle it?
03:12:38 <shachaf> Something about exceptions.
03:12:48 <shachaf> ghc-core is broken.
03:12:55 <shachaf> Because they took out Control.OldException.
03:12:59 <shachaf> Everything that uses that is broken.
03:14:03 <Sgeo> Hmm, good thing about the Clojure ecosystem, which I assume is because of Java classpaths: There's no system-wide library installation
03:14:11 <Sgeo> Just project-local installation
03:14:32 <Sgeo> It's not enough to solve all issues with dependencies, but it's a start
03:18:44 <elliott> `1`0`9i90`i190`i190`i1u90348u5901809t89008210`0`0`89`8989`89189`18989`891889`8989289`89289`89289`89289`89289`892`8929`8939128989489`89589`9789`89589`8975897`897587`894892899899042045t89290845t9030r90u90gjrtgjr
03:18:47 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: 1`0`9i90`i190`i190`i1u90348u5901809t89008210`0`0`89`8989`89189`18989`891889`8989289`89289`89289`89289`89289`892`8929`8939128989489`89589`9789`89589`8975897`897587`894892899899042045t89290845t9030r90u90gjrtgjr: not found
03:18:51 <elliott> Hey shachaf
03:19:17 <shachaf> hi monqy
03:19:22 <elliott> [elliott@dinky tmp]$ sudo rm -rf /opt/ghc/
03:19:22 <elliott> Password:
03:19:22 <elliott> [elliott@dinky tmp]$
03:19:25 <elliott> :-)
03:22:03 <elliott> checking for path to top of build tree... utils/ghc-pwd/dist-install/build/tmp/ghc-pwd: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
03:22:03 <elliott> configure: error: cannot determine current directory
03:22:05 <elliott> shachaf: Help
03:22:30 <shachaf> elliott: Should've mved instead of rmed.
03:22:39 <shachaf> elliott: You need libgmp3, not libgmp10.
03:22:51 <shachaf> elliott: If you still had GHC 7.4 you could use it to compile 7.6!
03:23:16 <elliott> I don't have enough time to compile GHC.
03:23:23 <elliott> Why do I need GMP 3?
03:23:27 <elliott> That makes me unhappy.
03:23:39 <shachaf> File a bug report on it.
03:23:43 <shachaf> Oh, wait, there already is one!
03:23:51 <shachaf> Which says that the next release will use a newer GMP.
03:24:04 <elliott> And when was that written?
03:25:10 <zzo38> Did I miss anything in RogueVM? I want to ensure I have not missed anything important!
03:26:04 <shachaf> elliott: About a week ago?
03:26:17 <shachaf> elliott: I think I've made up for the thing I did.
03:26:32 <elliott> :: Replace libsystemd with core/systemd? [Y/n] y
03:26:33 <elliott> :: Replace systemd-tools with core/systemd? [Y/n] y
03:26:34 <elliott> shachaf: Help?
03:26:54 <shachaf> elliott: You know I've never used Arch, right?
03:27:06 <elliott> Who cares?
03:27:26 <shachaf> You should try rm -rf /opt
03:27:47 <elliott> $ ls /opt
03:27:47 <elliott> df_linux
03:27:51 <elliott> Oh no, I'd lose Dwarf Fortress!!!
03:28:24 <shachaf> df - report file system disk space usage
03:28:34 <shachaf> That's not darawfw froteres!
03:28:55 <ion> % ls /opt
03:28:57 <ion> amnesia apt-local google
03:30:54 -!- kmc has quit (Quit: Lost terminal).
03:31:08 -!- ogrom has joined.
03:31:41 -!- kmc has joined.
03:43:04 -!- lexande_ has quit (Remote host closed the connection).
03:59:00 <elliott> shachaf: Is GHC's kind-level programming still basically unityped?
03:59:16 <elliott> I don't know if I'm expressing what I mean properly.
04:00:17 <shachaf> elliott: There's this whole promotion thing...
04:00:22 <elliott> shachaf: Here's what I mean:
04:00:23 <elliott> If I do
04:00:36 <elliott> data Foo a where Blah :: (C a) => a -> Foo a,
04:00:41 <elliott> what happens to the (C a) when I do 'Blah?
04:00:45 <elliott> Oh, wait, GADTs don't get lifted.
04:00:50 <elliott> OK, translate that into the relevant ADT syntax.
04:00:57 <elliott> Hmm, I guess I can just use an existence proof, actually.
04:01:02 <elliott> Except I don't think that will translate. Woe.
04:01:18 <shachaf> whoa is me, dude
04:02:09 <elliott> shachaf: What's the extension to allow type-level literals again?
04:02:45 <shachaf> elliott: GHC will tell you if you try to use one!
04:03:33 <elliott> shachaf: Have you guessed what I'm trying to do yet?
04:03:38 <shachaf> No.
04:03:42 <kmc> look around you, just look around you
04:03:47 <kmc> have you worked out what we're looking for?
04:05:19 -!- kmc_ has joined.
04:05:37 -!- Dovregubben has quit (Ping timeout: 240 seconds).
04:06:30 -!- Dovregubben has joined.
04:07:18 <elliott> shachaf: Do you have TypeEq handy?
04:07:25 <elliott> I need it. For this thing.
04:07:39 <elliott> Wait, is "type instance Foo t t = ..." valid?
04:07:41 <elliott> If so I might not need it.
04:08:07 <elliott> Ooh wait, there's
04:08:08 <elliott> class m (<=) n Source
04:08:08 <elliott> Comparsion of type-level naturals.
04:08:28 <elliott> Wait, why is there <= but no ==?
04:08:35 <elliott> Oh, hmm.
04:09:00 <zzo38> You could make == by using <= I suppose
04:11:49 -!- Jafet has joined.
04:20:37 <elliott> shachaf: Hah! I did it! Well, partially, at least.
04:20:59 <shachaf> elliott: In spite of my best afforts!
04:21:12 <elliott> shachaf: http://sprunge.us/RAHN
04:21:21 <elliott> You can RAHN but you can't HIDE.
04:21:31 <shachaf> Ran and Lan, right?
04:22:40 <elliott> Such lovely types, too: test :: Record (Cons * * "x" Integer (Cons * * "y" Integer Empty))
04:23:07 <elliott> Data constructor `Empty' cannot be used here
04:23:08 <elliott> (it is defined and used in the same recursive group)
04:23:09 <elliott> Aw, c'mon.
04:24:20 <elliott> shachaf: Do you like it?
04:25:06 <shachaf> I haven't read it.
04:25:25 <elliott> shachaf: Now's your chance to change that!
04:37:35 <elliott> <BMeph> JoeyA: They make Haskell compilers in Haskell for the same reason that ugly men date beautiful women: 1) Because it's enjoyable; 2) Because they can. ;)
04:37:42 <elliott> shachaf: You know, I didn't think it was possible, but #haskell actually got worse since I left.
04:37:57 <elliott> kmc the prophet
04:38:17 <pikhq> Haskell failed at its primary mission.
04:38:22 <pikhq> And now it is but an abomination.
04:38:42 <zzo38> Its primary mission is what?
04:38:51 <elliott> shachaf: YayMe is one of Those Guys, right?
04:39:52 <kmc_> its primary mission was to unify research in lazy functional programming behind one language
04:39:56 <kmc_> i think it succeeded at that
04:40:07 <kmc_> i think that's a mission that's only relevant to like 100 people
04:40:26 <pikhq> zzo38: Its primary mission is to avoid popularity at all costs.
04:40:35 -!- kmc has quit (Disconnected by services).
04:40:37 -!- kmc_ has changed nick to kmc.
04:42:13 <elliott> kmc: I'm trying GHC 7.6 but its kind system isn't advanced enough. :(
04:42:20 <elliott> I need kind-level typeclass constraints, you see.
04:42:31 <elliott> And proper GADT lifting.
04:42:49 <zzo38> I wanted to invent Ibtlfmm, to have kind-level typeclass constraints and various other things
04:44:13 <oerjan> eek
04:44:33 <zzo38> Because typeclass constraints on kinds is something I wanted too
04:44:35 * oerjan is imagining elliott being tempted by Ibtlfmm
04:44:48 <zzo38> It isn't only you!
04:45:34 <elliott> I... guess that's reassuring?
04:45:41 <zzo38> I don't know.
05:10:15 <shachaf> elliott: :-(
05:10:54 -!- oerjan has quit (Quit: leaving).
05:11:02 <elliott> shachaf: : - )
05:31:34 <Sgeo> elliott, what's your opinion of the Eclipse Public License?
05:31:57 <shachaf> elliott: I think so.
05:33:29 <elliott> hi
05:34:16 <shachaf> elliott: Am I one of "Those Guys"?
05:34:35 <zzo38> Make a pokemon card puzzle requiring to retreat six times.
05:41:49 -!- elliott has quit (Remote host closed the connection).
06:27:32 <zzo38> Have you ever tried inverting some piece of music?
06:32:31 -!- Dovregubben has quit (Ping timeout: 268 seconds).
06:33:11 -!- Dovregubben has joined.
06:34:14 -!- elliott has joined.
06:34:20 <elliott> shachaf: You didn't tell me *cabal-install* was broken.
06:34:26 <elliott> shachaf: Come on, now my window manager is broken.
06:35:35 <elliott> shachaf: And *mtl* is broken.
06:37:02 -!- elliott has quit (Client Quit).
06:54:05 -!- Dovregubben has quit (Ping timeout: 244 seconds).
06:59:59 -!- Dovregubben has joined.
07:13:16 -!- nooga has quit (Ping timeout: 246 seconds).
07:18:46 -!- epicmonkey_ has joined.
07:27:55 -!- zzo38 has quit (Remote host closed the connection).
07:33:44 -!- ogrom has quit (Read error: Operation timed out).
07:38:42 <impomatic> elliott, sgeo: what's your opinion on EPL. What's your preferred license?
07:39:23 <Sgeo> I haven't read it, but from what I know about it, it seems like an interesting idea
07:41:42 <Sgeo> Although... I do think I'd prefer my code to be usable from/with proprietary code, so I'd probably lean more BSD-ish. But EPL might be better than GPL for that goal
07:41:48 <Sgeo> (the goal that GPL has)
07:42:20 <impomatic> I like the fact the BSD license is short.
07:43:37 <Sgeo> Hmm, if Clojure, and about a million Clojure libraries, are under the EPL, does that make Clojure unsuitable for making proprietary programs?
07:43:39 <shachaf> @ask elliott Worked fine for me.
07:43:39 <lambdabot> Consider it noted.
07:49:03 <impomatic> This is shorter though -> "Do What The Fuck You Want To Public License" http://sam.zoy.org/wtfpl :-)
07:49:54 <Sgeo> I'm narciccistic enough to want my name attached to code I write
07:49:54 -!- nooga has joined.
07:51:46 <olsner> I strive to only write things that are useless enough that the license is irrelevant
07:56:37 -!- Dovregubben has quit (Ping timeout: 252 seconds).
07:57:07 -!- Dovregubben has joined.
08:03:00 <Sgeo> My gf linked me to http://www.esecurityplanet.com/hackers/yahoo-password-breach-puts-sql-injection-in-the-crosshairs.html
08:03:31 <Sgeo> HOW DOES ANYONE IN THIS DAY AND AGE STILL BE VULNERABLE TO SQL INJECTION
08:18:07 -!- soundnfury has joined.
08:28:23 -!- sirdancealot has quit (Ping timeout: 246 seconds).
08:30:42 -!- AnotherTest has joined.
08:30:48 <AnotherTest> Hello
08:35:15 -!- ogrom has joined.
08:54:39 -!- sirdancealot has joined.
08:57:48 -!- impomatic has left.
09:18:17 -!- MoALTz has joined.
09:34:26 -!- nooga has quit (Ping timeout: 268 seconds).
11:10:01 -!- Vorpal has joined.
11:22:45 -!- Arc_Koen has joined.
11:23:17 <Arc_Koen> hello
11:24:26 <Slereah_> Hi
11:25:25 <AnotherTest> Hello
11:35:02 -!- shubshub has joined.
11:42:39 -!- itidus20 has joined.
11:42:51 -!- itidus20 has changed nick to itidus21.
12:17:52 -!- shubshub has quit (Quit: Make it idiot proof and someone will make a better idiot.).
12:31:42 -!- AnotherTest has quit (Quit: Leaving.).
12:42:43 -!- Phantom_Hoover has joined.
12:53:05 -!- knott_rays has joined.
12:53:25 -!- knott_rays has left.
12:54:00 -!- atriq has joined.
13:00:11 <atriq> @messages?
13:00:11 <lambdabot> Sorry, no messages today.
13:32:57 -!- ogrom has quit (Ping timeout: 255 seconds).
13:51:01 <mroman> Sgeo: Simple.
13:51:10 <mroman> Universities don't teach that.
13:57:17 <itidus21> theres several things
13:58:05 <itidus21> if you invest more time and energy in security systems, the people breaking the systems will simply adapt, and find new vulnerabilities
13:59:22 <itidus21> hmm
14:01:54 <itidus21> universities aren't going to spontaneously change, students aren't going to spontaneously change, i don't forsee anything changing
14:06:44 <Jafet> Software development involves writing software to address the problems found in previous software development.
14:09:25 <olsner> s/found/created/ ? :)
14:16:34 <FreeFull> Sgeo: Same how buffer overflows are still the most common kind of vulnerability
14:16:58 <FreeFull> Well, I guess SQL injections aren't as fundamental
14:17:23 <itidus21> i guess what im wondering is whether it is important to place blame, and also who is to blame for sql injection vulnerabilities
14:17:44 <itidus21> or is the whole system to blame
14:18:02 <FreeFull> itidus21: Clearly the people who created SQL are to blame
14:18:15 <FreeFull> How dare they invent database technology
14:18:43 <itidus21> basically i don't think blame is a perfect system, it's more like garbage collection
14:19:21 * FreeFull references itidus21 without incrementing the reference counter
14:19:59 <itidus21> its better that rubbish be centralized in landfills rather than distributed across the suburbs :D
14:20:22 <itidus21> but landfills are still a bother
14:20:57 <olsner> I think the root problem is that too many programmers just don't know or care enough about security
14:21:17 <itidus21> olsner: but what is the cause of that :D
14:21:24 <itidus21> rather, what is that a symptom of?
14:21:52 <olsner> if "everyone" cared about preventing sql injections, maybe we wouldn't let all these database apis make it so simple to create them
14:21:58 <atriq> itidus21, bad teaching
14:22:14 <itidus21> i have also noted the ugly reality that in such an arms race the bad guys will also adapt and find new ways
14:22:47 <itidus21> atriq: (im certainly trolling) what causes bad teaching?
14:23:08 <olsner> it's bad turtles all the way down
14:23:09 <atriq> Itself
14:24:38 <itidus21> if things are allowed to have causes, or if things are allowed to be symptoms of other things, then the buck can be hard to stop
15:01:31 -!- ogrom has joined.
15:10:49 -!- Nisstyre-laptop has joined.
15:13:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:27:33 -!- ogrom has quit (Quit: Left).
15:36:52 -!- copumpkin has joined.
15:49:55 <atriq> :t (0 $ 0 `on`)
15:49:56 <lambdabot> The operator `on' [infixl 0] of a section
15:49:56 <lambdabot> must have lower precedence than that of the operand,
15:49:56 <lambdabot> namely `$' [infixr 0]
15:51:03 <atriq> > ((*) `on` (+ 1)) 7 8
15:51:04 <lambdabot> 72
15:51:07 <atriq> > ((*) `on` (+ 1)) 7 3
15:51:08 <lambdabot> 32
15:51:20 <atriq> > ((*) `on` negate) 7 3
15:51:21 <lambdabot> 21
15:51:44 <atriq> Exersize: do I get to set exersizes?
15:51:48 <atriq> Discuss
15:52:10 <olsner> exersize is probably not the right spelling
15:52:21 <atriq> ...
15:52:24 <atriq> You are right!
15:52:33 <atriq> So the answer is "probably not"!
15:52:36 <atriq> Well done!
15:52:43 <olsner> thank you
15:52:50 <olsner> what did I win?
15:52:56 <atriq> I dunno
15:53:07 <atriq> The right to go through to your kitchen and get a biscuit?
15:53:46 <olsner> but I have no biscuits
15:54:51 <atriq> Go out to the store and buy some buscuits?
15:54:57 <atriq> *biscuits
15:54:57 <olsner> no!
15:55:08 <atriq> Do you not want a biscuit?
15:56:35 -!- mig22 has quit (Quit: mig22).
15:57:40 <olsner> I don't want to have to go and buy it myself
15:57:49 <atriq> Hmm
15:57:56 <atriq> Next time you are shopping
15:58:13 <atriq> See if you can convince the people
15:58:17 <atriq> Who sell you stuff
15:58:23 <atriq> To make me pay for the biscuit
15:59:34 <olsner> besides, the end result of buying biscuits is just running out of biscuits again
16:00:06 <atriq> But during the process of running out of biscuits
16:00:11 <atriq> You get to eat biscuits!
16:00:21 <atriq> Hexham has a biscuit store
16:00:32 <olsner> do they sell cookies?
16:02:33 <atriq> Who knows?
16:02:52 <atriq> (yes)
16:03:15 <olsner> what's the difference between cookies and biscuits anyway?
16:09:33 -!- Sgeo has quit (Read error: Connection reset by peer).
16:10:30 -!- Sgeo has joined.
16:12:18 <atriq> Not much unless you're in the US
16:14:57 <itidus21> hmm
16:15:26 <itidus21> nevermind
16:15:33 <itidus21> my comment is unhelpful
16:15:59 <olsner> indeed :)
16:16:36 <itidus21> oh but it must be said
16:17:10 <itidus21> the best way to find out the difference between a biscuit and a cookie is to get both and compare them
16:17:42 <itidus21> one trouble here is...
16:17:48 <itidus21> you might like the one you eat first more
16:17:55 <itidus21> because it satiates your appetite
16:18:02 <itidus21> the second one is making you feel full
16:21:04 -!- Nisstyre-laptop has quit (Remote host closed the connection).
16:21:07 <itidus21> but if we take away all such bias factors
16:21:43 <itidus21> one way to experience a cookie is to see it, another is to eat it
16:22:00 <itidus21> even to just look at the cookie we might be biased by which one we see first
16:23:26 <itidus21> i give up
16:27:20 <atriq> This is what large sample sizes are for
16:28:27 <itidus21> so in the limit we find the actual thing?
16:29:39 <itidus21> sorry, thats a reference to your in the limit you find douglas hofstadter
16:30:30 <atriq> That was..
16:30:32 <atriq> Sort of mine
16:30:44 <atriq> Yeah
16:30:45 <itidus21> ok you didn't say it
16:30:53 <itidus21> well.. i mean maybe but probably not
16:31:06 <atriq> Phantom_Hoover was partially responsible for it
16:31:18 <atriq> By partially I mean almost entirely
16:32:11 <itidus21> so are humans good at sampling?
16:32:44 <itidus21> another dumb question of mine
16:34:54 <atriq> Not really
16:37:55 <itidus21> i have at least a vague connection with this room. i don't really understand it.
16:38:11 <atriq> It's called friendship?
16:38:46 <itidus21> uh.. i'm not sure. but something else. like i had been thinking about topics which come up here.
16:39:53 <atriq> Maybe you are actually #esoteric
16:40:32 <itidus21> like i had been thinking about fairy chess, and i was fascinated by the NES, and i had a strange habit of buying foreign language dictionaries
16:41:10 <itidus21> and... i had been gradually converging on grammar and language as being important.
16:41:57 <itidus21> so i was buying up cheap books which had any relation to language
16:43:35 <itidus21> and i heard about state machines from the mugen fighting game engine
16:44:15 <itidus21> i still haven't gone back to take a closer look at it
16:47:45 -!- ais523 has joined.
16:50:17 <atriq> Bye!
16:50:18 -!- atriq has quit (Quit: Leaving).
16:59:44 -!- zzo38 has joined.
17:05:02 -!- nooga has joined.
17:39:27 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
17:41:36 -!- AnotherTest has joined.
17:41:40 <AnotherTest> Hello
17:42:11 <AnotherTest> What Haskell IDE do you people use (if any)?
17:51:00 <kmc> i just have vim and ghci open in two windows
17:51:35 <kmc> haskell is potentially a great language for very clever IDEs but i haven't seen a good one
17:51:45 <kmc> i used leksah for a little while but it was buggy
17:56:05 <AnotherTest> I might try leksah and hope it's not as buggy on my system
17:57:13 <AnotherTest> although I have the impression that most buggy software is buggy invariant of the system
17:58:48 <kmc> it depends
17:58:54 <kmc> inkscape is much worse on mac than on linux
17:59:13 <kmc> it's also possible that leksah got better in the intervening time
17:59:29 <AnotherTest> well it is taking a long time to collect information about Haskell packages on my system
17:59:37 <kmc> at the risk of unfounded generalization, i think haskell appeals more to the kinds of programmers who don't typically use IDEs
17:59:56 <kmc> and to some degree this blinds people to the advantages a haskell IDE could have, compared to IDEs for other languages
18:00:26 <AnotherTest> I actually don't, but I think a good IDE can definitely be useful (which is why I want one)
18:00:36 <kmc> i would love to use something like the emacs Agda mode for Haskell
18:00:39 <nortti> kate is pretty good ide
18:00:54 <kmc> "what is the type of the expression which could go here"
18:01:04 -!- Phantom_Hoover has joined.
18:01:11 <kmc> "write out the pattern-matching cases for this function based on its type"
18:01:30 <kmc> "look up functions that could go here in Hayoo, add the package to my .cabal file, and import the module"
18:01:44 <kmc> http://www.jerkcity.com/jerkcity4997.html
18:03:18 <Sgeo> kmc, I'd feel more comfortable with lighttable for Haskell than I would for Clojure, merely because I can know that each function really is not doing side-effects
18:03:27 <Sgeo> (Unless someone's abusing unsafePerformIO)
18:04:11 <AnotherTest> I might just use vim
18:07:16 <Sgeo> Then again, I don't know how difficult it might be to do a lighttable thing for Haskell
18:11:50 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
18:20:07 -!- impomatic has joined.
18:26:52 -!- oklofok has quit (Ping timeout: 240 seconds).
18:27:42 -!- oklopol has quit (Ping timeout: 264 seconds).
18:40:18 -!- impomatic has quit (Ping timeout: 264 seconds).
18:41:14 <Arc_Koen> zzo38: what do you mean "there are no left turns" in Half-Broken Car in Heavy Traffic?
18:42:48 <Arc_Koen> there is a '<' command
18:44:03 <zzo38> Arc_Koen: No I mean turning left relative to the straight direction the car only turn right no left
18:44:13 -!- ogrom has joined.
18:44:21 <zzo38> It says so in the linked documentation too
18:44:24 <Arc_Koen> hum I followed the external link and then I understood
18:44:39 <Arc_Koen> my confusion comes from the difference between "go left" and "turn left"
18:45:08 <Arc_Koen> I think it would be less confusing if directions were west and east instead of left and right
18:45:48 <zzo38> I agree. Ask the people who invented that programming language.
19:05:56 -!- kinoSi has quit (Read error: Connection reset by peer).
19:06:24 -!- kinoSi has joined.
19:12:56 -!- Arc_Koen has quit (Quit: Are you telling me you can build a time machine but you can't cook a cheese soufflé? You've got your priorities all wrong!).
19:13:17 -!- Arc_Koen has joined.
19:17:10 -!- AnotherTest has quit (Quit: Leaving.).
19:19:56 <FreeFull> zzo38: So turn right three times
19:20:15 <zzo38> FreeFull: Yes I suppose so.
19:20:57 -!- MoALTz_ has joined.
19:21:15 <zzo38> I found on Wikipedia the chord I have not learned from the book, which is the Neapolitan chord, which is a major chord on the lower second scale degree.
19:21:36 <zzo38> Which is sometimes used in place of a IV chord.
19:23:47 -!- MoALTz has quit (Ping timeout: 245 seconds).
19:23:51 <kmc> cache rules everything around me
19:24:06 -!- soundnfury has quit (Ping timeout: 264 seconds).
19:29:07 -!- oerjan has joined.
19:33:31 <oerjan> 15:49:55: <atriq> :t (0 $ 0 `on`)
19:33:31 <oerjan> 15:49:56: <lambdabot> The operator `on' [infixl 0] of a section
19:33:35 <oerjan> sacrilege!
19:33:56 <oerjan> anyone making an infixl 0 operator should be hanged and quartered.
19:34:07 <oerjan> (also infix 0, naturally.)
19:35:12 <oerjan> (this does not apply to _changing_ $ into infixl 0, in which case one would swap l and r.)
19:35:53 <olsner> the conditions under which one would be hanged and quartered are getting complicated
19:36:07 <oerjan> you don't say
19:37:25 <oerjan> also there should have been another precedence above the default 9, which . should have had instead.
19:37:55 <olsner> maybe the precedences should be rationals
19:38:28 <oerjan> olsner: has been suggested, at which point someone will immediately suggest a system for general partial orders.
19:38:35 <olsner> indeed
19:38:38 <olsner> I was just about to do that too
19:39:07 <oerjan> at which someone will point out that makes it awful to combine independent libraries. (at least that's what happened a week or so ago.)
19:39:55 <oerjan> my point, otoh, is that . and $ should be considered pseudosyntax and every fixity which conflicts with their natural use is wrong.
19:41:06 <oerjan> the above `on` being one, and parsec's <?> being the other example i recall.
19:43:09 <oerjan> basically someone should have developed some guidelines before user-defined operators started proliferating, and it's really too late now.
19:43:39 <oerjan> (the applicative operators mostly being 4 rather than the same as the corresponding monadic ones is another pet peeve of mine.)
19:45:04 <zzo38> I just think this is a problem with Haskell; fixity must be integer 0 to 9, and does not allow redefinition of fixity of things defined in another file.
19:45:15 <zzo38> (They could be fixed by an extension, I suppose.)
19:45:40 <oerjan> you can redefine functions in practice if you really want to, though.
19:46:04 <oerjan> on = Data.Function.on; infixr 0 `on`
19:46:17 <zzo38> Yes that is what I thought of too
19:46:35 <zzo38> Should fixities be surreal numbers?
19:46:39 <oerjan> heh
19:47:09 <oerjan> rationals _should_ be enough for everyone, being able to represent all countable total orders
19:48:12 <oerjan> olsner: oh the last pointing out about partial orders was that if you define fixities by their relation to other operators, those other operators have to actually be imported...
19:49:00 <oerjan> which means you get unnecessary package dependencies
19:49:02 <zzo38> That is what I thought about using surreal numbers, by defining by relation to other operators
19:50:26 <oerjan> surreal numbers presumably allow any total order, regardness of cardinality.
19:50:57 <zzo38> Yes, I think so.
19:53:41 -!- epicmonkey_ has quit (Ping timeout: 246 seconds).
19:54:35 <oerjan> the proof is sort of a generalization of the proof for rational numbers
19:55:29 <oerjan> for rational numbers, you need that between any non-interleaved finite set of rational numbers there is another one
19:55:43 <oerjan> for surreal numbers, the same is true without finiteness
19:55:49 -!- MoALTz_ has quit (Quit: brb).
19:55:57 <oerjan> *any two
19:56:05 <oerjan> *another rational number
19:56:08 -!- MoALTz has joined.
19:56:59 <oerjan> because the game with left and right options the smaller and larger set represents a surreal number between them.
19:58:35 <zzo38> Yes
19:59:06 <oerjan> you also need a well-ordering (not necessarily the same order) of the totally ordered set you want to embed
20:04:59 <oerjan> well, maybe not _strictly_ need one, you can get the real numbers embedded because they're separated by rationals, and i don't think this uses the real numbers being well-orderable.
20:06:03 -!- ogrom has quit (Quit: Left).
20:06:23 <oerjan> perhaps there's a clever argument which only uses the axiom of foundation instead...
20:07:07 <oerjan> but since there's no obvious guarantee that the total order respects set rank, i won't bet on it.
20:07:19 -!- Phantom_Hoover has joined.
20:16:04 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
20:23:05 * shachaf can't figure out what kmc's attitude toward C++ really is.
20:23:09 <shachaf> I suspect there's more than one attitude.
20:26:17 <oerjan> @tell Arc_Koen I think that your ocaml Brainfunct interpreter always treats @ with an undefined function (including 0, but not for >= 50) as using an empty function, is this intended behavior? (It's more useful than crashing anyway, as my haskell one does and as yours does for values >= 50)
20:26:17 <lambdabot> Consider it noted.
20:26:43 <Arc_Koen> yes it is
20:26:43 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
20:26:56 <oerjan> what about for values >= 50, ideally?
20:27:06 <Arc_Koen> they should be no-ops as well
20:27:24 <Arc_Koen> ideally I guess the tape and the functions are unbounded
20:27:26 <oerjan> ok. i'll modify my haskell one.
20:27:41 <oerjan> my tape is already unbounded since it uses the zipper trick
20:27:48 <Arc_Koen> oh, nice
20:28:12 <oerjan> (as well as haskell's infinite lists, but that just makes it slightly easier)
20:28:27 <Arc_Koen> I'm still trying to figure out why my interpreter ends on Stack_overflow on a tail-recursive loop
20:29:14 <oerjan> well your for loop comment seems correct to me, as it makes the '@' case not be in a tail position
20:29:35 <Arc_Koen> I mean, if the @ call is the last command in a function, the interpreter should reflect that
20:30:02 <Arc_Koen> I modified my program to have the last command out of the for loop
20:30:07 <kmc> shachaf: i've said it more than a few times
20:30:13 <oerjan> oh, you did not include that on the wiki
20:30:26 <Arc_Koen> well it did not work as intended so I did not edit
20:30:33 <kmc> i think C++ is a bad language, which is bad in almost the opposite way that languages are usually bad
20:30:36 <shachaf> akmc: It's basically a bad language, but it's interesting because it's bad in an opposite way to other languages?
20:30:43 <kmc> yeah
20:30:57 <kmc> and despite being a bad language, it is sometimes the right tool
20:31:15 <Arc_Koen> the other modification I haven't put on the wiki page is | ',' -> tape.(!ptr) <- (try int_of_char (input_char stdin) with | End_of_file -> -1)
20:31:31 <oerjan> aha
20:31:54 <Arc_Koen> but using that in the cat program would make it way more complicated
20:32:03 <oerjan> heh
20:32:05 <Arc_Koen> as there is no efficient test
20:32:22 <kmc> it's also interesting just because it has lots of things that other languages don't
20:32:23 <oerjan> sure there is
20:32:59 <Arc_Koen> (the simple, current version would try printing -1 as ascii so it would result in an error anyway)
20:33:11 <oerjan> lessee
20:33:28 <kmc> in my categorization of programming languages, C++ is practically the only language in its niche
20:36:04 <oerjan> hm...
20:36:13 <kmc> C++ has an elegance and internal consistency which is lost on most of its users
20:36:26 <kmc> because they mostly program in a hodge-podge of C and C++
20:36:44 <kmc> the reason they do that is that C++'s internal consistency isn't so much externally consistent with the real world
20:37:17 <kmc> also it's just very fun to write C++ in small doses and try to do excessively clever things
20:37:26 <kmc> which is one reason i call it an esolang
20:37:33 <shachaf> That's true about most languages, isn't it?
20:37:34 <kmc> and now you know
20:37:40 <kmc> how i feel about C++
20:37:48 <kmc> i hope you will use this knowledge for good and not evil
20:38:01 <shachaf> kmc: Did I ever ask you again about the stream-cipher-for-disk-encryption thing?
20:38:24 <kmc> shachaf: well, some languages try to limit the amount of cleverness you can use
20:38:39 <kmc> and others are just a mess such that clever things never really seem elegant
20:39:06 <kmc> C++ and Haskell are very similar in my mind
20:39:16 <kmc> ignoring the technical details of each language, and focusing on these kinds of factors
20:39:31 <kmc> now there's a statement which is bound to upset almost everyone ;)
20:39:47 <kmc> but i promise i'm not trolling, i really do think C++ and Haskell are very similar on this level
20:40:33 <shachaf> Los Angeles is hot. :-(
20:40:48 <kmc> why did you go to los angeles
20:41:55 <shachaf> It's only temporary.
20:42:46 <kmc> ooh, did you get to ride the Expo Line?
20:43:02 <shachaf> No.
20:43:11 <shachaf> Should I?
20:43:19 <shachaf> I hear lexande_ was in a train the other day.
20:43:33 <kmc> well it's just another light rail line
20:43:37 <kmc> but it opened since i was last in LA, is all
20:44:53 <shachaf> I know someone who I thought was in Pasadena now but it looks like not yet.
20:45:01 <itidus21> ok heres a statement
20:45:38 <itidus21> 99% of commercial software does not require a turing complete platform
20:45:48 <itidus21> i don't know if i am using words entirely wrong here
20:46:03 <pikhq> itidus21: 100% does not.
20:46:07 <pikhq> Because computers are not TC.
20:46:08 <pikhq> :)
20:46:09 <itidus21> i have a vague idea what i meant
20:46:30 <shachaf> kmc: My impressions of Los Angeles so far are "I wouldn't want to live here".
20:47:10 <itidus21> pikhq: its gonna be brutal figuring out what i actually meant. im gonna make a coffee first. and then cause a lot of facepalms
20:47:57 <kmc> grocery store, bbl
20:52:04 -!- MoALTz has quit (Quit: brb).
20:53:12 <Arc_Koen> oerjan: http://sprunge.us/SRFA?ocaml
21:02:33 -!- MoALTz has joined.
21:03:20 <oerjan> Arc_Koen: i think +>,++++@<@/----.<-@/</>+@ should work although winghci doesn't have an easy way to test EOF's and i cannot be bothered to use a real command line
21:03:35 <oerjan> (it works for the basic catting, anyway)
21:05:47 <oerjan> hm i can simply add a similar test for newline, i think
21:06:04 -!- augur has quit (Remote host closed the connection).
21:06:30 -!- augur has joined.
21:08:01 <oerjan> dammit it also has trouble resetting stdin
21:08:27 <oerjan> fortunatelly :r fixed that
21:08:32 <oerjan> *-l
21:09:12 <Arc_Koen> it raises invalid_argument "index out of bound" even though I set n_functions to 256... I'm head-computing what it does and it looks like it should be working
21:10:32 -!- augur has quit (Ping timeout: 240 seconds).
21:10:40 <oerjan> oh wait i know my problem
21:11:56 <Arc_Koen> ohohoho wait I think my interpreter is sooooo broken
21:12:33 <oerjan> now it worked, my fix for making undefined functions empty had a bug that made <= 0 give function 1 instead :)
21:12:36 <Arc_Koen> oh no it's not
21:13:07 <Arc_Koen> for one moment I thought my interpreter never returned from function calls
21:13:11 <oerjan> heh
21:13:40 <oerjan> well i managed to get a cat that quits on newline with +>,++++@<@/->----.<@/<///////////</>+@
21:14:11 <oerjan> (it should also quit on EOF, but it's too awkward to test in winghci)
21:15:07 <Arc_Koen> still doesn't work with my interpreter, but I'm pretty sure the error comes from the interpreter
21:15:26 <oerjan> Arc_Koen: it shouldn't ever run functions that large if you give it plain ASCII, anyway
21:15:43 <oerjan> it just adds 4 after all
21:15:53 <Arc_Koen> I know
21:19:31 <Arc_Koen> well I won't try to debug my interpreter tonight, that'll wait for another day
21:20:11 <oerjan> uploaded my changes
21:21:41 <oerjan> Arc_Koen: er your - is wrong :)
21:21:54 <Arc_Koen> oh, waoh
21:22:05 <Arc_Koen> I think that's the most stupidest error i've ever had in a program
21:22:12 <Arc_Koen> (and that means a lot)
21:22:19 <oerjan> the only command none of your previous programs tested, i think :P
21:22:26 <Arc_Koen> indeed
21:23:34 <oerjan> Arc_Koen: hey don't worry, i almost managed to get + and - include an automatic > because i put the new value in the wrong zipper list
21:23:43 <Arc_Koen> haha
21:23:52 <oerjan> because i had simply copied and pasted the code for > to modify
21:24:40 <oerjan> does the new cat work now?
21:26:32 <Arc_Koen> one sec - the invalid argument thing simply came from the program trying to read exactly one more command than there were characters in the current function
21:26:46 <oerjan> Arc_Koen: your code looks tail recursive to me
21:26:56 <Arc_Koen> it is now
21:27:12 <Arc_Koen> there was a stupid -1 / +1 error in the loop
21:27:45 <Arc_Koen> (so the for loop still did everything, and the step after the loop tried to read an imaginary command
21:27:47 <itidus21> -1,0,1,2,3,...,253,254
21:27:56 <oerjan> heh
21:28:26 <oerjan> itidus21: i don't think any of our interpreters use 8-bit cells
21:28:47 <oerjan> mine uses Int, although it would be a simple substitution to use unbounded Integer
21:28:48 <Arc_Koen> urrh, still an error somewhere
21:28:59 <itidus21> hmm
21:29:03 <oerjan> paste new version?
21:29:26 <itidus21> well
21:29:30 <itidus21> ok
21:29:36 <itidus21> uhmmm
21:29:51 <Arc_Koen> http://sprunge.us/bgNU?ocaml
21:32:40 * oerjan convinces himself that runs the right commands in a function
21:33:23 <Arc_Koen> | x -> raise (Unknown_command x) is kind of ridiculous since all brainfuck specifications seem to agree that unknown characters are no-ops that can be used for comments
21:33:48 <oerjan> ah
21:34:05 <oerjan> i allowed whitespace but nothing else
21:34:46 <Arc_Koen> I just added that line without further thinking when the compiler told me "warning: non-exhaustive pattern matching"
21:40:18 <oerjan> i don't see anything obviously wrong with your last paste
21:43:29 <Arc_Koen> well I'll add a lot of print_string to see where the index out of bounds come from
21:43:38 <Arc_Koen> but that'll wait :)
21:44:39 <Arc_Koen> oh and I found http://esolangs.org/wiki/BrainCursion should I add a "see also" link or something?
21:45:41 <itidus21> its about this point where i remember that #esoteric is actually discussing brainfuck and thus most rational comments do not apply
21:46:11 <oerjan> Arc_Koen: i don't think they're that similar
21:46:24 <itidus21> because, brainfuck programmers are a mythical entity
21:46:28 <oerjan> beyond both being brainfuck derivatives
21:46:37 <Arc_Koen> itidus: a friend showed me a link to someone who has implemented brainfuck in SpaceChem... now *that* is mythical
21:47:06 <itidus21> well.. the uh.. consumer of brainfuck interpreters is the mythical part :P
21:47:21 <Arc_Koen> oerjan: well my motivation for making brainfunct was "wait is it so that among all the brainfuck derivatives, the obvious functional version is missing?"
21:47:55 <Arc_Koen> and braincursion seems to be claiming more or less the same thing, even though I haven't really understood what was its point :p
21:48:30 <oerjan> Arc_Koen: not really, it can only jump to the matching ( or ) i think
21:48:31 <itidus21> i guess what i am saying is not quite true considering that people make interpreters in brainfuck
21:48:39 <itidus21> its a great interpreter writing language
21:49:07 <oerjan> or wait does it
21:50:29 <itidus21> oops no im wrong
21:50:37 <itidus21> i got x and y axis confused on esointerpreters
21:51:20 <oerjan> hm it doesn't even do matching, if the interpreter is to be believed
21:51:26 <Arc_Koen> hmmmmmm does braincursion support nested loops correctly?
21:51:50 <oerjan> seems not
21:53:03 <itidus21> basically i think all the brainfuck programs that are going to be written have been written
21:53:28 <itidus21> so, the hypothetical end user of a brainfuck interpreter is just a useful uhhh
21:53:32 <oerjan> however this directly contradicts the computational class section of the article
21:53:39 <Arc_Koen> indeed
21:53:51 <itidus21> useful fellow
21:54:29 <Arc_Koen> well that sections links to "reduction", in which it is said "be careful with the arbitrary thing at the arbitrary moment!!!" which is not respected by the loop emulation in braincursion
21:54:54 <oerjan> @tell spirity Did you mean for loops in BrainCursion to nest properly? The interpreter doesn't.
21:54:54 <lambdabot> Consider it noted.
21:55:29 <Arc_Koen> oerjan: according to the description of the language it doesn't either
21:55:39 <Arc_Koen> (at least not in such an easy way)
21:56:00 <oerjan> @tell spirity The description seems to imply they shouldn't, while the computational class section makes no sense if they don't.
21:56:00 <lambdabot> Consider it noted.
21:56:21 <Arc_Koen> are spirity and Madk one?
21:57:40 <oerjan> no, spirity and Seven Inch Bread is
21:58:14 <oerjan> the computational class comment is older than the interpreter, at least
21:58:57 <oerjan> in fact it's by the original article author. which is an IP, so may or may not be the same as the language author, but most likely is.
21:59:25 <oerjan> btw i hesitate to call the loops described "recursive".
21:59:52 <Arc_Koen> yup that's what I did not really understand
22:00:21 <oerjan> so no matter how you slice it, it's not very similar to Brainfunct.
22:00:41 <Arc_Koen> anyway, "recursive" wouldn't mean much if it's still and explicit loop
22:01:39 <Arc_Koen> I remember when I had programming exercises to do at the university and it was explicitly said "this algorithm must be written in an imperative way" I often "cheated" by emulating recursion using a stack
22:05:08 <oerjan> Arc_Koen: btw as a conoisseur of TC proofs, i find the phrase "arbitrary effect at an arbitrary point" and even the entire Reduction section _far_ too imprecise (and don't actually describe the technical meaning of reduction.)
22:05:27 <Arc_Koen> I completely agree with that
22:06:14 <oerjan> *connoisseur dammit :P
22:06:39 <Arc_Koen> it took me a while to understand what they meant with "arbitrary effect at an arbitrary point", and what's said about reduction basically is "reduction is a good way to prove a language TC except sometimes it's not a proof at all"
22:07:09 <oerjan> real reduction is definitely a proof, but you have to apply to an entire program (sometimes including the I/O)
22:07:17 <Arc_Koen> (the french word actually is "connaisseur" with an a :p)
22:07:53 <oerjan> "A connoisseur (French traditional (pre-1835) spelling of connaisseur"
22:08:03 <oerjan> so it's not wrong to use it in english, by tradition
22:08:28 <Arc_Koen> I know but it does sound weird when the reader is french :p
22:10:10 <Arc_Koen> (well, I didn't know where the o came from. I thought it was just an original misspelling.)
22:12:14 <Arc_Koen> (or something similar to "rendezvous" being written as a single word)
22:12:34 <oerjan> well sometimes you can reduce each instruction separately, when the language's have essentially identical semantics for how sequences of instructions are combined.
22:12:39 <oerjan> *languages
22:23:26 -!- Phantom_Hoover has joined.
22:26:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:49:14 -!- ais523 has quit.
22:51:52 -!- copumpkin has joined.
22:53:04 -!- augur has joined.
22:55:55 -!- augur has quit (Remote host closed the connection).
23:04:53 <Arc_Koen> oerjan: but then it's basically the same thing as writing a compiler from the TC language to the new language isn't it?
23:05:14 <oerjan> yep
23:05:57 -!- kinoSi has quit (Read error: Connection reset by peer).
23:06:25 -!- kinoSi has joined.
23:22:13 -!- MoALTz has quit (Ping timeout: 255 seconds).
23:28:38 -!- nooga has quit (Ping timeout: 244 seconds).
23:38:10 <kmc> is any modern C compiler going to object to non-ASCII UTF-8-encoded characters in a multiline comment?
23:38:37 <kmc> i figure, even if it decodes them as 8-bit characters, it will be fine because they will not match "*/" as encoded in the ISO 646 invariant set
23:38:46 <zzo38> Since it won't contain the ASCII */ then probably it will work OK.
23:39:14 <zzo38> (If you need to actually use the */ in the comment then use the overlong encodings)
23:39:21 <kmc> overlong?
23:40:23 <zzo38> Overlong encodings are not really valid UTF-8 but use it anyways if you need to.
23:41:50 <FreeFull> They're alternate encodings for the charaters U+00 to U+7F
23:42:38 <kmc> ah, i see
23:42:54 <kmc> you prepend some bytes which encode zeros
23:43:32 <pikhq> kmc: It should "just work" regardless.
23:43:33 <kmc> http://blogs.msdn.com/b/michael_howard/archive/2008/08/22/overlong-utf-8-escapes-bite.aspx
23:44:45 <pikhq> kmc: The beauty of UTF-8 is that you'll never get valid ASCII out of it except when it's the chunk mapping to ASCII... So you'd have to really work to break on UTF-8 there.
23:44:47 <zzo38> If you are using UTF-8, another thing you could do if you want */ in a C comment is to put a zero-width space between.
23:44:58 <kmc> yeah
23:45:05 <kmc> do zero-width spaces work in fixed-with fonts?
23:45:11 <kmc> are they like a no-op combining character?
23:45:15 <FreeFull> Should do
23:45:26 <oerjan> they work in irssi anyway
23:45:26 <pikhq> Works fine here.
23:45:31 <kmc> cool
23:45:49 <zzo38> They are supposed to have zero width; in PuTTY on my computer it displays a replacement box even though it does not advance the cursor.
23:45:52 <oerjan> `echo (example)
23:46:03 <HackEgo> ​(example)
23:46:43 <zzo38> So in that example, it appears on my computer the zero-width space replacement box overlapping the colon.
23:46:48 <FreeFull> ✧_✧
23:47:06 <FreeFull> What colon
23:47:18 <zzo38> (And for some reason it is gray rather than blue; this may be a bug in PuTTY)
23:47:44 <FreeFull> Maybe your font still needs to have the empty character set for the zero-width space to work correctly
23:47:48 <zzo38> FreeFull: The colon before the IRC message. (The syntax of IRC require a colon to indicate long parameter that may contain spaces)
23:48:06 <FreeFull> zzo38: What, you don't use an IRC client?
23:48:22 <zzo38> FreeFull: I do use an IRC client. But probably not the same one you used.
23:48:47 <pikhq> Isn't your IRC client more a syntax-highlighting IRC protocol displayer?
23:49:17 <FreeFull> I mostly use irssi, because the irc client I wrote myself isn't that good =P
23:49:40 <kmc> i think someone should package GNU/Linux, Mosh, screen, and irssi as an EC2 AMI
23:49:49 <kmc> to make it super easy to set up persistent IRC in The Cloud
23:50:02 <kmc> there is also https://irccloud.com/ but i heard it is slow
23:50:03 <pikhq> I'd be tempted to, except I just got my Internet stable.
23:50:11 <zzo38> pikhq: Yes mostly those are what it does; although it has other features too.
23:51:39 <FreeFull> Mosh?
23:51:47 <FreeFull> Also, tmux > screen
23:51:49 <kmc> FreeFull: mosh.mit.edu
23:51:53 <kmc> screen, tmux, whatever
23:52:12 <FreeFull> Oh, this
23:55:33 -!- olsner has quit (Ping timeout: 246 seconds).
23:59:45 <kmc> ISO C allows "int main() { ... }", right?
23:59:57 <kmc> (with no parameters)
←2012-09-07 2012-09-08 2012-09-09→ ↑2012 ↑all