00:00:07 <oerjan> olsner: nah you just need walls tall enough that the kids cannot get over hth
00:00:09 -!- GreyKnight has quit (Ping timeout: 265 seconds).
00:00:34 <shachaf> Or there are multiple Ints.
00:00:38 <kmc> taint tracking is just a really poor analogy for monads (of course it's one /application/ of monads, as ais523 pointed out)
00:00:45 <Jafet> newtype Sandbox = Box Sand
00:01:01 <kmc> i wish this analogy would die but my efforts to kill it have been unsuccessful and I gave up on trying
00:01:12 -!- GreyKnight has joined.
00:01:16 <kmc> it is the kind of fundamentally misleading analogy that is also immediately appealin
00:01:22 <ais523> yeah, an M Int might have 0, 1, or more Ints inside
00:01:26 <kmc> fguhguhuhghluhruhfff
00:01:34 <Jafet> @quote analog(y|ies)
00:01:35 <lambdabot> lilac says: * lilac looks forward to Cale explaining category theory by analogy to Call of Duty
00:01:38 <elliott> does (Foo -> Int) have Ints inside it
00:01:38 <ais523> (In fact, [Int] is pretty much a literal definition of "might have 0, 1, or more Ints inside")
00:01:39 <kmc> it might have an infinite number of Ints!
00:01:45 <elliott> technically it has as many ints as Foo has elements
00:01:50 <elliott> but this is not a very useful way of reasoning about things
00:02:07 <kmc> sometimes it is
00:02:07 <elliott> (IO Int) has as many Ints inside as there are sequences of interaction with the real world(!)
00:02:13 <elliott> which is an awfully gigantic number
00:02:16 <ais523> when I translated a computable-reals library from Haskell to Verity
00:02:20 <elliott> and also, with something like (Foo -> Int), "|Foo| ints" is misleading
00:02:24 <ais523> we represented lists as functions
00:02:25 <elliott> since they can all be "the same Int" etc.
00:02:32 <elliott> (this can be relevant, in fact, for performance: sharing)
00:02:51 <kmc> yes although that's an implementation property and not a language property
00:02:56 <kmc> Haskell spec doesn't guarantee sharing :(
00:02:58 <HackEgo> 366) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
00:03:04 <ais523> that was the program that lead to quote 366
00:03:11 <ais523> the technique works, but it's not exactly efficient
00:03:15 <Jafet> The haskell spec at http://haskell.org/ghc does
00:03:55 <ais523> which monad is (Foo -> Int), btw? Reader?
00:04:11 <ais523> not having Haskell names memorized can be a problem when talking to Haskell programmers
00:04:34 <elliott> sure, Reader, but it could easily be part of the definition of another monad
00:04:43 <elliott> wasn't thinking of it as the "entire thing" when I said it
00:04:58 <Jafet> Foo -> Int can't be a monad
00:05:04 <Jafet> (->) Foo is Reader
00:05:06 * elliott thinks ML programmers should know this stuff too
00:05:31 <ais523> Foo -> Int can be a monad with its type argument filled in, though
00:05:33 <Jafet> Yes, two identical monads
00:05:39 <ais523> elliott: sure, but ML programmers don't use the same name
00:06:00 <ais523> also monads are less everywhere in ML than in Haskell because everything's effectively in IO
00:06:12 <ais523> elliott: I don't know, not sure I've given it a name before now
00:06:29 <ais523> writing the extra params by hand is what I normally do, even though I probably shouldn't :(
00:07:11 <elliott> well, (->) is often the most convenient way to use reader in Haskell
00:07:23 <Sgeo> I flat out do not understand Racket's continuation model
00:07:31 <elliott> I think monads can help tons in ML as well as Haskell
00:07:34 <elliott> I think the Jane Street people agree
00:07:38 <kmc> anyway we all agree that #haskell is usually wrong and none of us know how to fix it :(
00:07:46 <kmc> elliott: F# has monads, of course they had to change the name
00:08:04 <kmc> just like every other practical application of FP
00:08:14 <elliott> in 2013 I'd like to see people stop "implementing monads"
00:08:18 <Sgeo> kmc, not sure, but I vaguely recall that the syntax used for those is also usable for some non-monad thing?
00:08:18 <Jafet> kmc: I help all the time
00:08:19 <kmc> "computation expressions" and "workflows"
00:08:31 <elliott> because they inevitably completely neglect Applicative etc.
00:08:37 <elliott> and make something half-way and useless
00:08:40 <kmc> you've really got to synergize your workflows to leverage new paradigms
00:09:28 <Jafet> 2013: Arrow in javascript
00:09:58 <kmc> i already implemented call/cc in C++
00:09:59 <shachaf> JavaScript already has monads. It's just the Builder Pattern.
00:10:00 <kmc> as have other people
00:10:02 <GreyKnight> can't we just cut to the chase and implement monads in hardware
00:10:02 <ais523> I guess the main problem with monads and applicatives and the like is the "now you have two problems" issue
00:10:06 <shachaf> Didn't you hear that talk?
00:10:15 <ais523> they're generic patterns that apply in lots of cases
00:10:18 <kmc> shachaf: is this troll
00:10:33 <kmc> ais523: one might say that they are... design patterns
00:10:34 <ais523> and so people feel pressured to implement things where a pattern applies using the pattern, for genericness
00:10:44 <ais523> and now you have to understand the pattern as well as the way it's used
00:10:53 <kmc> of course the difference is that in Haskell a design pattern goes in the standard library and in Java a design pattern goes in a thick dead-tree book to be typed in by hand
00:10:57 <shachaf> kmc: I think Crockford did say at the end of the talk that it was an example of moands or something.
00:11:00 <kmc> or into your IDE if you're lucky
00:11:09 <shachaf> kmc: That's not really fair.
00:11:13 <kmc> no it's not
00:11:16 <elliott> the real question is why anyone listens to crockford in the first place
00:11:20 <shachaf> There's a lot of Haskell lore for how to make things.
00:11:31 <shachaf> And a lot of repeated patterns in all sorts of places.
00:11:39 -!- Bike has quit (Quit: leaving).
00:11:48 <kmc> yeah but i think the community is better at recognizing these as problems, and trying to solve them
00:11:58 <ais523> also, I'm not sure I like the way Haskell mixes error handling into monads
00:11:59 <kmc> resulting in 10 conduit libraries, 10 lens libraries, etc
00:12:09 <elliott> There's 10 lens libraries but there's only 1 lens libraries.
00:12:14 <ais523> like, the mathematical definition of monads doesn't require them to understand error handling
00:12:16 <shachaf> There may be 10 libraries that provide lenses, but there's only one lens library.
00:12:18 <elliott> The others are kind of pathetic.
00:12:19 <ais523> and for some, like Reader, it doesn't make sense
00:12:20 <kmc> of course that itself is a problem
00:12:22 <monqy> you mean fail? does anyone like fail?
00:12:30 <kmc> dunno everything is fucked
00:12:30 <ais523> how is fail defined in Reader anyway?
00:12:31 <shachaf> ais523: Nobody likes fail. "deal with it"
00:12:35 <elliott> in that if you integrate lens into your "workflow" it does about 50x more than any other lens package does
00:12:39 <kmc> gotta learn about how to blow up nuclear power plants using MS SQL
00:12:41 <Sgeo> monqy, the people who keep trying to translate from Haskell straight into X seem to like it
00:12:43 <shachaf> ais523: Probably fail = errpr?
00:12:43 <elliott> because it isn't even primarily about lenses
00:12:54 <elliott> ais523: barely anyone even uses fail
00:12:58 <lambdabot> Source not found. I've seen penguins that can type better than that.
00:13:01 <shachaf> 50x longer type errors than any other lens library
00:13:04 <elliott> it's there as a compromise nobody is happy about for historical reasons
00:13:08 <elliott> but you can just ignore it exists in practice
00:13:14 <kmc> enlarge your type error 400%
00:13:16 <ais523> it'd make more sense to have a FailableMonad m
00:13:28 <ais523> for things like Either and IO which really can fail sensibly
00:13:33 <ais523> elliott: yeah, it's called Monad
00:13:36 <elliott> everyone knows the obvious answers
00:13:36 <shachaf> elliott: We used to, in Haskell 1.4.
00:13:40 <kmc> are lambdabot's insults from http://www.opensource.apple.com/source/sudo/sudo-17/sudo/ins_csops.h
00:13:43 <shachaf> MonadZero is gone, though. :-(
00:13:49 <elliott> it's one of haskell 98's several regressions
00:13:55 <elliott> but the solutions are all basically obvious
00:13:59 <kmc> the haskell committee: I liked their earlier work better
00:13:59 <ais523> shachaf: is that like half a MonadPlus?
00:14:13 <ais523> (also MonadPlus is basically just a Monad that's also a Monoid, right?)
00:14:17 <shachaf> ais523: Early Haskell used it in a lot of places where it now uses "fail".
00:14:24 <shachaf> ais523: It's not really the same.
00:14:31 <elliott> MonadPlus is Monad plus two operations and also nobody agrees on what laws they have
00:14:36 <shachaf> It's a different kind, for one. And the instance is able to do different things.
00:14:40 <shachaf> Also all monads are monoids.
00:14:42 <lambdabot> Source not found. Listen, broccoli brains, I don't have time to listen to this trash.
00:14:49 <lambdabot> Source not found. Do you think like you type?
00:14:54 <ais523> @src Control.Monad.Reader fail
00:15:02 <elliott> stop expecting @src to be reasonable
00:15:07 <shachaf> You know the thing where people expect @src to work?
00:15:09 <ais523> (I totally just guessed the package name there)
00:15:13 <shachaf> That thing keeps happening.
00:15:28 <shachaf> @src is a text file that people made by hand.
00:15:37 <lambdabot> src <id>. Display the implementation of a standard function
00:15:40 <lambdabot> Source not found. Where did you learn to type?
00:16:23 <Jafet> kmc: genericLength xs = tailRecursive xs id 0 where
00:16:45 <Jafet> kmc: s/.*/http://web.mit.edu/nelhage/Public/sudo /
00:16:57 <kmc> oh that's longer
00:17:45 <ais523> why would sudo have an insult library?
00:18:01 <ais523> yeah but why does it need to do that?
00:18:21 <ais523> elliott: insulting people can't be the reason for itself
00:18:36 <Jafet> I should enable insults for this machine
00:18:39 <ais523> and I've never seen sudo insult anyone
00:18:55 <ais523> unless you count the "this incident will be reported" thing
00:19:12 * ais523 is a little worried about sudo's security attitude
00:19:16 <olsner> maybe it's configurable
00:19:38 <ais523> hmm, especially because it's possible to write a wrapper for sudo that allows you to test if things are possible without the incident being reported
00:19:48 <ais523> there's a command-line option to query whether something is sudoable
00:21:09 <kmc> can it be disabled in config?
00:22:37 -!- greyooze has joined.
00:22:46 <greyooze> ais523: you can set the insults flag on in your sudoers file
00:23:24 <greyooze> it is off by default (but why would anyone want *that*?)
00:23:36 <ais523> when does it insult people?
00:23:54 -!- GreyKnight has quit (Ping timeout: 240 seconds).
00:23:57 <greyooze> only if they give the wrong password AFAIK
00:24:00 -!- greyooze has changed nick to GreyKnight.
00:24:22 <Jafet> echo 'nethack on' >> /etc/screenrc
00:24:34 -!- carado has quit (Ping timeout: 246 seconds).
00:25:26 <fizzie> Jafet: Why would you ever need that, when it's automatically turned on by default because of your ~/.nethackrc?
00:25:42 <fizzie> (Or by the existence of $NETHACKOPTIONS.)
00:26:43 <fizzie> That was the global "you".
00:26:54 <ais523> GreyKnight: hmm; deliberately failing the password check is the way you cancel a command if you realised you screwed it up
00:27:03 <ais523> and part of the reason sudo password prompts is to give you a reason to consider
00:27:08 <ais523> I've been known to control-c the password check before now
00:27:38 <ais523> (another reason for the password prompt is so that you don't try to sudo something on the wrong physical machine; I have different sudo passwords on my own laptop and on nethack4.org, and I've definitely tried to run something as root on the wrong machine before now)
00:28:52 <fizzie> Also I checked the only copy of the firmware of my VDSL2 box that can be found in the interwebs, the one for a different ISP (Sonera), and the cmsCli_authenticate there actually forwards to cmsDal_authenticate (which I think is the web admin interface authentication), instead of hardcoding root:public and ztedebug:ztedebug; I suppose my ISP has just wanted to make the telnet interface not ...
00:28:58 <fizzie> ... available for us customers. (They also don't provide any firmware downloads anywhere; they just remote-push it over TR-069 when they feel like it.)
00:29:49 <Jafet> ais523: your zsh prompt is supposed to tell you which machine you're on
00:29:55 <ais523> Jafet: oh, my bash prompt does too
00:30:02 <ais523> just sometimes I don't notice it
00:30:13 <ais523> you tend to mentally filter it after a while
00:32:17 -!- GreyKnight has quit (Ping timeout: 255 seconds).
00:33:35 -!- GreyKnight has joined.
00:35:19 <GreyKnight> Hmm apparently I already added "Defaults insults" to my sudoers, but I am not getting insulted ._.
00:35:31 <GreyKnight> oh, maybe I compiled it with them off...
00:35:37 <Sgeo> Hmm, a problem with my model is that Qoppa wouldn't be able to generate require and provide forms for itself
00:43:33 -!- sebbu2 has joined.
00:43:34 -!- sebbu2 has quit (Changing host).
00:43:34 -!- sebbu2 has joined.
00:45:19 <fizzie> Ubuntu 'sudo' package contains a patch called "typo-in-classic-insults.diff".
00:45:59 <fizzie> (It corrects "You type like i drive." into "You type like I drive.".)
00:46:09 -!- sebbu has quit (Ping timeout: 260 seconds).
00:46:37 <shachaf> that's not a typo............
00:47:46 <fizzie> Also funny: http://sprunge.us/ehCY
00:47:48 -!- nooga has quit (Ping timeout: 248 seconds).
00:48:53 <fizzie> (I can't also help noticing that the insults aren't localized.)
00:49:05 <kmc> this SCADA talk is honestly kind of boring
00:49:25 <kmc> because the takeaway message is that SCADA systems are vulnerable to well-known attack classes from the early '00's
00:49:50 <kmc> buffer overflow, XSS, insecure ActiveX plugins, default passwords, bad password hashing
00:50:03 <kmc> they just seem to be 20 years behind on basic security practices
00:50:12 <fizzie> Why is "broccoli brains" more PC than "burrito brains"?
00:50:31 <elliott> burritos are macintosh only
00:50:47 <oerjan> fizzie: if they localized the insults they would have to create a new setting for northern norwegian, and where would we be then...
00:51:25 <elliott> norwegian sure does make me say no
00:51:56 <elliott> oerjan: i didnt mean it sorry
00:56:51 -!- GreyKnight has quit (Ping timeout: 240 seconds).
00:59:50 -!- GreyKnight has joined.
00:59:53 <ais523> how am I meant to set a good example for my students
00:59:58 <ais523> when the Java API is so full of bad examples
01:00:28 <ais523> for instance, something I just discovered: java.io.File.listFiles() returns null on I/O error
01:00:31 <ais523> rather than throwing an exception
01:00:40 <ais523> this is completely bad practice for Java
01:00:50 <coppro> ais523: just point it out as a bad example
01:00:52 <GreyKnight> oh wait, you're supposed to *be* a GoodExampleFactory. In that case I guess you'll need a GoodExampleFactoryFactory.
01:01:11 <ais523> coppro: yeah, except that the students are meant to be able to find it in the API themselves
01:01:20 <ais523> and it being a bad example makes the exercise worse
01:01:44 <olsner> do something different that doesn't make listFiles useful?
01:01:50 <ais523> you can't test that they understand exception handling
01:01:56 <ais523> if the method doesn't actually throw exceptions
01:02:03 <ais523> olsner: yeah, I'm going to have to, I think
01:02:07 <GreyKnight> ais523: it *can* throw a SecurityException (which just raises more questions)
01:02:11 <ais523> and that would have been such a good exercise, too :(
01:02:15 <ais523> GreyKnight: it's unchecked
01:02:15 <olsner> I've never used listFiles in Java, so obviously it's not useful
01:02:27 <ais523> I was basically going to ask "write ls -R in Java"
01:03:00 <ais523> haha, java.io.File.listRoots() is even better
01:03:02 <ais523> " Unlike most methods in this class, this method does not throw security exceptions. If a security manager exists and its SecurityManager.checkRead(java.lang.String) method denies read access to a particular root directory, then that directory will not appear in the result."
01:04:06 <fizzie> ais523: Some kind of a policy to not throw IO exceptions from File? Most of the other methods don't, either. (Though createNewFile does.)
01:04:13 <ais523> this is one of the worst designed Java APIs I've ever seen
01:05:04 <ais523> OK, new exercise: rewrite File so that it doesn't suck
01:05:07 <ais523> (I'm not even sure I'm joking here)
01:05:17 <coppro> no, I think that's a great exercise actually
01:05:28 <coppro> especially since it's not clear that a security exception is right for listRoots
01:05:30 <ais523> it'd need to be trimmed down, there's a lot of stuff in File
01:05:33 <GreyKnight> createNewFile has a "success/failure" boolean return *and* an IOException for a specific kind of failure
01:06:22 <GreyKnight> oh getCanonicalPath() can throw an IOException too
01:06:38 <fizzie> I debated about whether to mention that.
01:06:45 <fizzie> But things like mkdir can't.
01:06:59 <fizzie> It's just a true/false/SecurityException.
01:07:27 <coppro> like, if you're operating on a large number of directories, and one givens an exception, what's the right call?
01:07:39 <ais523> I think Perl understands what it's doing a little better here, with the distinction between Dir::Cwd and IO::File
01:07:40 <coppro> do you lose the rest of the information for the security exception?
01:07:58 <ais523> coppro: well a File only represents one directory
01:08:05 <ais523> so if you want to operate on a large number, you use a loop
01:08:10 <ais523> and then you get a separate return/exception for each
01:08:19 -!- sebbu2 has quit (Ping timeout: 248 seconds).
01:08:42 <GreyKnight> ais523: I think I am on board with your "rewrite File" idea :-)
01:08:59 <coppro> ais523: but listRoots is static
01:09:04 <coppro> and it is asking for all roots that exist
01:09:38 <coppro> the problem is that there are really three states: exists and accessible, exists and inaccessible, and inaccessible
01:09:59 <coppro> If you're not supposed to get a File object to an inaccessible directory, then what do you do?
01:10:03 <ais523> coppro: hmm, I'm not even sure if there's enough information in File to correct it
01:10:08 <coppro> (if you can, then it's just *exceptionally* poor design)
01:10:25 <ais523> what happens if you call .exists() on a File object that represents a file inside an unreadable directory, for instance?
01:10:34 <ais523> the documentation doesn't say
01:10:57 <ais523> "IO exception" is the only sane answer; "returns false" seems to be the only possible answer given the stated API
01:11:03 <ais523> I can find out, I think
01:11:08 <olsner> I think having a File object for an inaccessible file is fine, you can create them from paths after all
01:11:20 <fizzie> You can get a File object for any String.
01:13:05 <fizzie> (The File(String) constructor can only throw a NullPointerException.)
01:13:23 <elliott> maybe it throws NPE for inaccessible stuff
01:13:23 <ais523> public class T { public static void main(String[] args) { boolean b = new java.io.File(/root/t.txt).exists(); if (b) System.out.println(true); else System.out.println(false); } }
01:13:38 <ais523> elliott: it replaces newlines wiht spaces
01:13:46 <ais523> and so is quite useful for sending the program to IRC
01:13:49 <elliott> also, new java.io.File(/root/t.txt)
01:13:51 <elliott> is that really valid syntax?
01:14:03 <ais523> huh, it seems to have eaten all the double quotes
01:14:09 <ais523> as well as replacing newlines with spaces
01:14:18 <elliott> presumably it got shell dequoted
01:14:42 <fizzie> The default command *is* echo.
01:14:46 <ais523> xargs reads items from the standard input, delimited by blanks (which can be protected with double or single quotes or a backslash) or newlines
01:14:49 <fizzie> Why wouldn't it eat quotes?
01:14:50 <ais523> seems that it's xargs that dequoted it
01:14:59 <ais523> and that xargs is specifically designed to eat quotes
01:15:05 <ais523> echo wouldn't dequote it because a shell isn't involved
01:15:56 -!- sebbu has joined.
01:16:02 <ais523> I still get false even if I try a file that actually exists
01:16:13 <ais523> (that's in an unreadable directory)
01:16:53 <GreyKnight> xargs does treat quotes and backslashes specially unless you provide the -0 option
01:17:21 <ais523> GreyKnight: then it doesn't treat newlines specially
01:18:36 <fizzie> xargs -d'\n' doesn't dequote.
01:19:06 <elliott> you could just do tr -d'\n'...
01:19:19 <ais523> I didn't think tr unescaped
01:19:29 <ais523> wouldn't that just delete backslashes and ns?
01:19:58 <ais523> huh, it does indeed work
01:20:15 <ais523> $ tr '\n' ' ' < T.java
01:20:17 <ais523> public class T { public static void main(String[] args) { boolean b = new java.io.File("/root/typescript").exists(); if (b) System.out.println("true"); else System.out.println("false"); } }
01:20:23 <ais523> deletes the final newline as well, so it's not quite as handy as xargs
01:20:34 <ais523> (now I'm wondering /why/ /root/typescript exists)
01:20:54 <fizzie> It possibly won't coalesce multiple blanks either.
01:21:00 <elliott> ais523: "vi" it and find out
01:22:08 <ais523> and a wc -l of /etc/shadow
01:22:27 <ais523> I think I know why, it was to prove a point on reddit
01:23:48 <fizzie> There doesn't seem to be an obvious way to tell xargs "I want the arguments to be items separated by any whitepace like you do normally, except with no special handling of quotes/backslashes", since -d can only take a single delimiter, and in any case wouldn't coalesce multiple consecutive ones.
01:26:49 -!- greyooze has joined.
01:27:18 -!- GreyKnight has quit (Ping timeout: 276 seconds).
01:30:49 -!- greyooze has changed nick to GreyKnight.
01:31:11 -!- jiella1 has joined.
01:33:19 <kmc> GreyKnight: i would watch that
01:33:47 <kmc> hopefully it would keep the same technical accuracy and nuanced character development of the original
01:34:09 <kmc> what is the linux equivalent of the magical purple light which makes things glow if they have been involved in a crime
01:34:14 -!- jiella has quit (Ping timeout: 240 seconds).
01:35:20 <ais523> `addquote <kmc> what is the linux equivalent of the magical purple light which makes things glow if they have been involved in a crime <elliott> kmc: nmap??
01:35:24 <HackEgo> 899) <kmc> what is the linux equivalent of the magical purple light which makes things glow if they have been involved in a crime <elliott> kmc: nmap??
01:35:51 <shachaf> elliott: When are you going to rewrite the quote thing?
01:36:04 <shachaf> I still have the code I started to write before you told me to stop because you would do it instead.
01:36:13 <shachaf> (Or do I? I might've lost it.)
01:36:19 <shachaf> (It probably has some name like q.py.)
01:37:08 <shachaf> Are you actually going to do it?
01:38:12 <GreyKnight> Python is insufficiently esoteric for this august venue :-I
01:38:36 <ais523> bsmnt_bot felt reasonably eso, at least
01:38:48 <ais523> anyone remember bsmnt_bot?
01:38:56 <elliott> zeptobot was python and yes
01:40:03 <GreyKnight> Request: a bot whose *commands* are esoteric in nature
01:41:48 <shachaf> GreyKnight: this is a january venue
01:41:57 <shachaf> wait six months and try again
01:43:57 <kmc> i wonder if qoppa counts as an esolang
01:43:58 <kmc> or kernel etc
01:44:02 <kmc> probably a useless question to ask
01:44:42 -!- jiella1 has quit (Quit: Leaving.).
01:44:56 <elliott> i think a qoppa article on the wiki would be at home
01:45:15 <Sgeo> I wish I could use Racket's eval so that Qoppa expression could expand into a Racket macro and have that be evaluate
01:47:53 <kmc> "How do I install new Firefox on this Windows 3.1 CNC machine? Because Internet Explorer 3 won't open Facebook."
01:48:05 <Sgeo> Hmm, actually, I could change the evaluation handler so that it distinguish between Qoppa evaluation and Racket evaluation
01:48:22 <Sgeo> Although, wait, that could be a bad idea
01:48:56 <GreyKnight> kmc: "here's a pound, get a marginally newer machine" ?
01:49:31 <ais523> GreyKnight: I don't think even new CNC machines would necessarily run new OSes
01:49:41 <ais523> they're the sort of machine that you design with an OS once
01:49:46 <ais523> and then leave it there forever
01:49:52 <shachaf> kmc: But is it a functionalang?
01:50:51 <GreyKnight> disclaimer: I didn't actually look up what CNC meant and just made a facile joke
01:51:59 <lambdabot> http://en.wikipedia.org/wiki/Numerical_control
01:51:59 <lambdabot> Title: Numerical control - Wikipedia, the free encyclopedia
01:52:15 <shachaf> elliott: command 'n' conquer hth
01:52:33 <ais523> elliott: computer numerical control machine
01:52:46 <ais523> they're basically robots designed to move drills sideways in precisely controlled patterns
01:53:01 <ais523> allowing you to cut arbitrary shapes out of a piece of material
01:58:19 -!- GreyKnight has quit (Ping timeout: 256 seconds).
01:58:56 -!- copumpkin has joined.
01:59:44 -!- GreyKnight has joined.
02:07:36 <kmc> it's not necessarily moving a drill sideways
02:07:40 <kmc> that would be a CNC mill
02:07:54 <kmc> there are also CNC lathes, laser cutters, vinyl cutters, waterjets, plasma cutters, etc
02:08:07 <kmc> 3D printers
02:08:13 <oerjan> elliott: can you cut a mandelbrot set out of paper?
02:08:15 <ais523> CNC milling is what I'm used to
02:08:21 <ais523> because I used to have access to a CNC mill
02:08:30 <ais523> oerjan: did you mean ais523:?
02:08:35 <ais523> and you can cut out an approximation of one
02:08:40 <ais523> CNC machines aren't perfectly accurate, though
02:08:57 <oerjan> no, i meant elliott, since he claimed to be kind of like such a robot
02:09:11 <elliott> oerjan: i am a mandelbrot set
02:09:33 <oerjan> that _would_ explain why you don't want taneb to see you
02:09:47 <Phantom_Hoover> @ask atriq have you seen any mandelbrot sets around hexham?
02:09:52 <shachaf> I look like this: http://slbkbs.org/sb/1.png
02:09:58 <shachaf> I suppose you already know that, though.
02:11:19 <oerjan> i'm not even going to click that link again
02:11:59 <HackEgo> 2009-10-22.txt:03:47:55: <Oranjer> I am saddened that I could never meet him or Borges
02:12:13 <oerjan> `pastlog elliott.*never meet
02:12:25 <HackEgo> 2011-09-12.txt:19:31:50: <oerjan> <elliott> Phantom_Hoover: I and Taneb can never meet. <-- wait, wouldn't it be ok as long as it is nowhere near hexham?
02:12:25 <HackEgo> 2007-04-01.txt:05:52:38: <CakeProphet> -nod- what did you think I meant by duck typing?
02:13:08 <Phantom_Hoover> elliott is elliott and taneb is taneb, and ne'er the twain shall meet
02:13:31 <oerjan> Phantom_Hoover: why must they mix mark twain into a kipling quote, i wonder
02:14:25 <oerjan> possibly because kipling did so himself
02:15:33 <oerjan> i never got the log question answered, i think
02:18:11 -!- sebbu3 has joined.
02:18:12 -!- sebbu3 has quit (Changing host).
02:18:12 -!- sebbu3 has joined.
02:18:18 -!- sebbu has quit (Ping timeout: 272 seconds).
02:18:37 <oerjan> unless it was <elliott> oerjan: there'll be ferries
02:19:18 <oerjan> but i suspect that was a response to an earlier line
02:21:50 -!- Nisstyre-laptop has joined.
02:24:44 -!- sebbu3 has quit (Ping timeout: 260 seconds).
02:26:44 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
02:29:25 <ais523> Arc-Koen's quit message is hilarious
02:29:44 <ais523> I wonder if it's original or a quote from somewhere
02:31:00 <oerjan> it's obviously a quote from a seedy place google doesn't reach
02:32:44 <ais523> it looks vaguely like an attempt at invoking rule 34 (or possibly rule 35)
02:33:07 -!- Vorpal has joined.
02:34:49 <ais523> `pastlog sapphire orbs
02:34:56 <HackEgo> 2012-12-11.txt:21:22:25: <Fiora> the struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own
02:35:08 <ais523> I should have guessed the author, really
02:35:23 <ais523> Fiora's good at that sort of thing :)
02:35:27 <Fiora> oh god my terrible joke has become a quit message
02:36:06 <HackEgo> Fiora: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
02:36:39 <ais523> Fiora: it's an awesome joke
02:37:01 <Fiora> I can do okay fanfic (I hope?) too
02:37:09 <ais523> the point where fanfic rolls over from bad into being good again is actually quite close to the typical average of fanfic
02:37:20 <ais523> so close, in fact, that it's met by chance quite a lot
02:37:33 <ais523> (I don't know if this is because I'm easily amused, or because typical fanfic is really shitty)
02:38:16 <Phantom_Hoover> it's also very close the the point at which it becomes unironically publishable
02:38:48 <ais523> Phantom_Hoover: isn't that just because most publishers have no sense of irony?
02:38:48 <oerjan> Phantom_Hoover: at which side?
02:40:10 <Fiora> speaking of published fanfiction, I saw this the other day
02:40:11 <Fiora> http://www.amazon.com/Gamer-Girl-Mari-Mancusi/dp/014241509X
02:40:36 <Fiora> and apparently some people I knew had actually read it from the library and it's exactly as hilariously bad mary sue fic as it looks
02:41:55 <Fiora> probably YA section or something between the animorphs and redwall?
02:41:59 <ais523> hmm… the mary sue phenomenon is probably the reason roleplaying games actually have rules
02:42:05 <ais523> (also the reason they have munchkins)
02:42:34 <Sgeo> lol, on a page that has graphics intended for use of games, a list of games it might be useful for:
02:42:35 <Sgeo> "Sokoban (Please don't make this game again)
02:42:35 <Phantom_Hoover> i think the reason roleplaying games have rules is because it's so obvious they need them that everyone just sort of accepted it
02:42:38 <Sgeo> http://www.lostgarden.com/2007/05/dancs-miraculously-flexible-game.html
02:42:40 <GreyKnight> "Readers will guess the identity of Sir Leo long before Maddy does" <-- already did -_-
02:42:49 <lambdabot> *** "mary" wn "WordNet (r) 3.0 (2006)"
02:42:49 <lambdabot> n 1: the mother of Jesus; Christians refer to her as the Virgin
02:42:49 <lambdabot> Mary; she is especially honored by Roman Catholics [syn:
02:42:49 <lambdabot> {Mary}, {Virgin Mary}, {The Virgin}, {Blessed Virgin},
02:43:25 <lambdabot> *** "sue" wn "WordNet (r) 3.0 (2006)"
02:43:25 <lambdabot> n 1: French writer whose novels described the sordid side of
02:43:25 <lambdabot> city life (1804-1857) [syn: {Sue}, {Eugene Sue}]
02:43:25 <lambdabot> v 1: institute legal proceedings against; file a suit against;
02:43:56 <Fiora> shachaf: a "mary sue" is a stereotypical fanfiction original character that is often a self-insert, steals the spotlight, and soon the universe is revolving around her (or him)
02:43:59 <GreyKnight> "And even more importantly, she begins reaching out to potential friends by starting a manga club and entering /Gamer Girl/ in a prestigious writing contest." <-- wait, so the character is *such* a blatant self-insert that she included the book inside itself?
02:44:14 <Fiora> sometimes even in non-fanfiction, characters exhibiting hordes of mary sue cliches show up, so people call them sues too
02:44:47 <Fiora> for example, eragon
02:44:50 <Fiora> entire book is marty stu
02:44:59 <Jafet> @google tv tropes mary sue
02:45:01 <lambdabot> http://tvtropes.org/pmwiki/pmwiki.php/Main/MarySue
02:45:01 <lambdabot> Title: Mary Sue - Television Tropes & Idioms
02:45:40 <shachaf> "Eragon is the first book in the Inheritance Cycle by Christopher Paolini, who began writing at the age of 15."
02:45:58 <shachaf> Is the age of the author the most important fact about the book?
02:46:12 <Phantom_Hoover> (this was basically my line of thought when i first saw the title)
02:46:24 <GreyKnight> With such glowing reviews as "This is, bar none, the worst book I have ever read in my life." and "It has everything which makes a teen book amount to nothing.", how can I turn this opportunity down?
02:48:55 <GreyKnight> "This is supposed to be a story of how gamers should be accepted as normal people and other related issues, but instead comes off as a descent into madness not unlike the works of H.P. Lovecraft."
02:48:55 <GreyKnight> These reviews are a source of endless* entertainment
02:49:08 <Phantom_Hoover> much more so than the book, even as a so-bad-it's-good
02:49:20 <Fiora> Eragon was a really popular YA series that sort of piggybacked off the popularity of harry potter and similar series
02:49:29 <Fiora> it's terribly written, it's written by like, a teenager
02:49:44 <Phantom_Hoover> there's a review of dance with dragons on amazon that is basically better than the book in every way
02:49:52 <Fiora> it even got made into a major movie
02:50:10 <Fiora> someone I knew in high school actually bought a copy and read it with a red pen, marking every instance of terrible grammar and awful writing, and that was how she enjoyed it
02:50:14 * oerjan now imagines the review got made into a major movie
02:50:27 <Jafet> oerjan: and get reviewed
02:50:49 <shachaf> Fiora: Isn't that a bit depressing?
02:51:02 <shachaf> Consider all the things you could do instead of pointing out just how other things are terrible.
02:51:24 <Fiora> I think it was also practice for her, because she was an aspiring author and fanfic writer and did a lot of editing
02:51:41 <Fiora> and, plus. guilty pleasure
02:51:49 <Fiora> kinda like how reading My Immortal can be incredibly funny
02:51:51 <Fiora> or the Eye of Argon
02:52:35 <Phantom_Hoover> http://voxday.blogspot.co.uk/2012/05/cynics-summary.html aha!
02:52:53 <Phantom_Hoover> slightly more happens in this review than the actual book
02:53:18 <GreyKnight> "The game within the book (Fields of Fantasy) is a spin off of WoW (in case you didn't know this is World of Warcraft)." Pet hate: people who use abbreviations and then expand them for you in case you didn't know.
02:53:50 <Fiora> the book was 959 page long...? jesus
02:54:46 <Phantom_Hoover> so's storm of swords, the difference is that in terms of stuff that happens storm of swords is like half the series
02:54:53 <kmc> http://www.ayudasystems.com/Jobs wow brogrammer much?
02:55:29 <kmc> women are just another material perk, like gym membership and fancy espresso
02:55:31 <GreyKnight> Sgeo: I kind of want to make Sokoban with those tiles now just to be contrary
02:55:32 <Lumpio-> That'll work wonders with the macbook
02:56:20 <Jafet> kmc: the women are for giving massages, clearly
02:57:06 <Jafet> Women also cure myopia
02:57:39 <Phantom_Hoover> Jafet, the trick is to have the woman report what she's seeing
02:58:10 <kmc> it doesn't say that, just strongly implies
02:58:26 <Jafet> "appeals to the notion that"
02:59:01 <shachaf> Oh, do you mean the picture?
02:59:50 <kmc> also it's a canadian company but they still flash US$100 bills?
02:59:57 <shachaf> Ah, I skipped past that. Fair enough.
02:59:59 <kmc> it's all about the robert bordens baby
03:00:31 <Fiora> "all you can eat snacks" with a picture of doritos
03:00:32 <Jafet> kmc: "Ex-Microsoft Software Engineer"
03:00:33 <kmc> The Right Honourable Sir
03:00:36 <Fiora> there is so much stereotypical awful in there
03:01:28 <Fiora> that sounds like the worst place to work
03:01:37 <GreyKnight> also their "encryption engine" appears to be a simple substitution cypher
03:01:40 <Jafet> Apparently, a person in Redmond, WA is called upon to give the opinion that this is the best job in Montreal, QB
03:02:18 <GreyKnight> Fiora: like a perfect little ball of wretched :-U
03:02:20 <kmc> GreyKnight: it is probably meant to be easy, as a kind of FizzBuzz thing
03:02:28 <olsner> nice touch having SOS in morse code as part of the logo
03:02:44 <Jafet> "So yeah, we're hiring"
03:02:47 <Fiora> GreyKnight: yeah, but it's kind of scary how many places I've heard of being like that
03:02:59 <Fiora> I'm lucky I managed to find a better one, but
03:03:06 <kmc> most programming job applicants cannot program at all, which doesn't make sense until you factor in that the average programming job applicant is much less skilled than the average programming job haver
03:04:10 <Fiora> did I ever mention the friend of mine who delivered to a blizzard office?
03:04:54 <kmc> don't think so
03:05:03 <Fiora> she had a food delivery/catering job at the time so she got to go to a lot of local tech companies and stuff. the blizzard place was like a frat house, with a middle area with giant TVs and tons of snacks, trash all over the place
03:05:06 <GreyKnight> Apparently one of the job perks is "$1000 in cash". What, ever?
03:05:08 <Fiora> the only woman she saw was the receptionist
03:05:31 <Jafet> I bet they get work done there, though
03:05:39 <kmc> GreyKnight: haha
03:06:00 <GreyKnight> I think if I had to try and concentrate on code somewhere with a TV and table football... there would be some murders.
03:06:00 <Jafet> As einstein said, a trashy house indicates a trashy mind
03:06:09 <kmc> yeah I mostly do not encounter these brogrammers, iHipsters, etc. in real life
03:06:16 <kmc> maybe because i don't get out much
03:06:21 <kmc> maybe because I live in Boston and not SF bay area
03:06:37 <Fiora> I think it's an environment thing. like. there seem to be workplaces that are covered in them, and also workplaces with none
03:06:40 <Fiora> like, they congregate and attract each other
03:06:44 <kmc> like attracts like
03:06:49 <GreyKnight> kmc: wait is this a "thing"? I thought this was an isolated incident
03:06:58 <kmc> that's what I always think when I see the rockstar ninja job ads
03:07:07 <kmc> "do i want to be working with the kinds of people who respond positively to this ad"
03:07:12 <kmc> GreyKnight: which? brogrammers?
03:07:19 <kmc> it's a big deal
03:07:37 <kmc> http://thenextweb.com/us/2012/03/20/sqoot-loses-sponsors-following-misogynistic-description-of-their-api-jam-event/
03:07:42 <shachaf> I also mostly do not encounter them.
03:07:47 <GreyKnight> Okay... thankfully they don't seem to have spread over here much... YET
03:08:09 <Phantom_Hoover> it was the same in the dot com boom, what do you get when you have a sudden expansion in an industry with no developed sense of professionalism?
03:08:11 <Fiora> GreyKnight: even outside of like, the most frattish awful guys. have you ever had the joy of accidentally looking at a comment thread on hacker news >_>;
03:08:12 <GreyKnight> I'd better stock up on defences just to be sure
03:08:41 <GreyKnight> I try not to read comments in general, they are the same the net over :o)
03:08:57 <Jafet> http://geekfeminism.wikia.com
03:09:18 <Fiora> it's a great place to go if you need a guy to explain to you why sexism doesn't actually exist!
03:09:26 <Fiora> or maybe tell you why rape jokes are /totally okay/
03:09:37 <kmc> straight white men with self-diagnosed asperger's are the /real/ persecuted minority!
03:09:59 <kmc> i saw that as a defense of sexual harrassment at CCC
03:10:00 <GreyKnight> ...Please explain to me how a live DJ will help me code
03:10:14 <kmc> "well we didn't get laid in high school, of COURSE we hate women! you can't blame us!"
03:10:28 <kmc> chaos communication congress
03:10:29 <Jafet> Self-diagnosed asperger syndrome
03:10:34 <kmc> big european hacker con
03:10:38 <GreyKnight> (also they supply lots of alcohol? Quality code, coming up!)
03:10:42 <Jafet> That should go in the handbook
03:11:30 -!- DHeadshot has quit (Ping timeout: 272 seconds).
03:11:54 <Sgeo> I didn't get laid in high school, and ... I hope I don't act like a jerk towards women
03:12:01 <Sgeo> :/ I think sometimes I do though
03:12:21 <Phantom_Hoover> Sgeo when has airing your insecurities here ever actually helped
03:12:41 <GreyKnight> Sometimes I act like a jerk towards people in general but I don't think I single out women
03:12:47 <Sgeo> I was worse in middle school though
03:13:22 -!- GreyKnight has quit (Remote host closed the connection).
03:13:26 <olsner> hmm, tar pits are actual pits of tar: http://en.wikipedia.org/wiki/Tar_pit
03:13:56 <Jafet> We should get one in here.
03:13:58 -!- GreyKnight has joined.
03:14:01 <Phantom_Hoover> did you think it was a hypothetical example or something
03:14:30 <shachaf> Wait, chocolate teapots aren't chocolate teapots?
03:14:56 <Fiora> Sgeo: you're a total jerk to me :/ what with constantly forgetting to tell me about homestuck updates
03:14:59 <monqy> to make your tea gross
03:14:59 <Fiora> you awful awful person :<
03:15:10 <Jafet> Chocolate milk jug
03:15:20 <GreyKnight> So are there any more bits of fail like this ayuda business?
03:15:39 <shachaf> Sgeo: Every time you tell people about updates, I feel pain.
03:15:46 <GreyKnight> I was trying to think of something witty to say about the "learn magic tricks" but I can't come up with anything :<
03:16:06 <monqy> Sgeo: i bet it's because shachaf isn't on "the list" and he wants you to tell him about the updates too
03:16:09 <olsner> GreyKnight: yes, I think there are loads of places exactly like that
03:16:17 <Sgeo> monqy, I did that once
03:16:31 <Phantom_Hoover> GreyKnight, how about the fact that you can't impress your colleagues with them because they already know the trick, and you can't use it to pick up women because you already get one with the job.
03:16:55 <shachaf> Sgeo: Hmm, you should tell me about giantitp.com comic updates instead.
03:17:24 <Sgeo> shachaf, update as of new year's eve!
03:17:35 <shachaf> Sgeo: OK, now tell me when the next one happens.
03:17:58 <olsner> doesn't this thing have an RSS feed that you can subscribe to or something?
03:17:59 <Sgeo> I have a Twitter account that tweets when it updates
03:18:10 <GreyKnight> Phantom_Hoover: I was going for something along the lines of "Oh, you know a magic trick? That's adorable. Let me show you (amb)..."
03:18:13 <Sgeo> olsner, so does Homestuck
03:18:14 <Phantom_Hoover> have they actually accomplished anything in the last... 6 months?
03:18:14 <shachaf> But please don't tell monqy or elliott or Fiora or Taneb
03:18:19 <olsner> let's optimize this notification system out of #esoteric
03:18:29 <monqy> who's "those people"
03:18:47 <nooodl> woah am i those people
03:19:04 <nooodl> yes that's why i asked
03:19:06 -!- sebbu has joined.
03:19:07 -!- sebbu has quit (Changing host).
03:19:07 -!- sebbu has joined.
03:20:51 <olsner> ooh! speaking of tar, "The ninth drop is expected to fall in 2013." (http://en.wikipedia.org/wiki/Pitch_drop_experiment)
03:21:04 <olsner> let's hope the webcam works this time
03:21:35 <oerjan> <GreyKnight> shachaf: it actually updated! At last <-- you know it's been long between updates when the comic itself lampshades it
03:21:55 <Jafet> That would be good. The grass here doesn't grow very beautifully.
03:22:31 <Sgeo> When was the 8th drop?
03:22:33 <shachaf> The grass doesn't grow on trees, you know.
03:22:58 <olsner> Sgeo: the wiki page has the whole list of drops
03:23:41 <Sgeo> Sucks that it wasn't recorded
03:24:50 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:26:04 <oerjan> nah obviously when the drop is caught falling, the world ends. that's how these things work.
03:28:14 <FreeFull> Ok, time for me to learn comonads
03:28:47 -!- DHeadshot has joined.
03:30:34 <GreyKnight> why aren't there a glut of comonad tutorials >:-(
03:30:35 <olsner> oerjan: there's a big increase in drop time since they installed air conditioning in the late eighties
03:31:31 <GreyKnight> FreeFull: actually I guess *you're* supposed to teach the tutorial writer about comonads
03:31:35 <oerjan> GreyKnight: because while everyone makes a monad tutorial, they just _read_ comonad tutorials
03:36:04 -!- zzo38 has joined.
03:37:18 -!- mig22 has joined.
03:39:14 <HackEgo> 234) <Deewiant> !bfjoust sm3 < <EgoBot> Score for Deewiant_sm3: 43.4
03:40:06 <EgoBot> Score for shachaf_sm4: 0.0
03:40:09 <ais523> shachaf: the scoreboard was bugged when that happened
03:40:21 <shachaf> Sure, but my version is upgraded.
03:42:17 <oerjan> !bfjoust fnord >+<[+-]
03:42:21 <EgoBot> Score for oerjan_fnord: 8.7
03:50:19 <kmc> Sgeo: I also worry about being subconsiously sexist :/
03:51:18 <ais523> oerjan: you might be better off using ()* rather than [] there
03:51:28 <ais523> that way you're not wasting a cycle on zero testing
03:51:51 <Fiora> I think everyone has some level of subconscious sexism, racism, and the like, and it's sort of our job to try to catch ourselves the best we can
03:51:56 <kmc> i think if you never worry about it at all, you are probably sexist
03:51:57 <oerjan> !bfjoust fnord >+<(+-)*-1
03:52:01 <EgoBot> Score for oerjan_fnord: 6.2
03:52:13 <Fiora> I've been familiar with feminist principles for years, but I still catch internalied-misogyny thought processes sometimes
03:52:19 <Fiora> and have to go like stupid fiora stop it no no no no no
03:52:56 <ais523> !bfjoust maybe_better_than_oerjan_fnord >+<(.+-)*-1
03:53:00 <EgoBot> Score for ais523_maybe_better_than_oerjan_fnord: 11.5
03:53:10 <Fiora> but yeah. worrying is good <_<
03:53:17 <kmc> within reason :)
03:53:24 <kmc> i am also the kind of person who worries about everything
03:53:32 <kmc> "But at this phase, the all-male society of bit-heads that made up the power structure of Black Sun Systems said that the face problem was trivial and superficial. It was, of course, nothing more than sexism, the especially virulent type espoused by male techies who sincerely believe that they are too smart to be sexists."
03:53:34 <Fiora> a bit of worrying, at least!
03:53:55 <kmc> "My feeling about nonsexist English is that it is like a foreign language that I am learning. I find that even after years of practice, I still have to translate sometimes from my native language, which is sexist English. I know of no human being who speaks Nonsexist as their native tongue. It will be very interesting to see if such people come to exist. If so, it will have taken a lot of work by a lot of people to reach that point."
03:55:02 <shachaf> Nonsexist English is much easier than nonsexist Hebrew.
03:57:02 <shachaf> Not particularly relatedly, did you read Chiang's _Liking What You See_?
03:57:07 <shachaf> http://www.clarku.edu/welcome/placement/pdf/reading.pdf
03:57:59 <kmc> shachaf: yes! thanks for sending that to me as well :)
03:58:07 <kmc> GreyKnight: putting good faces on avatars in a 3D world
03:58:10 <shachaf> Ah, I might've mentioned it before.
03:58:15 <kmc> that look realistic and not all uncanny-valley
03:58:18 <kmc> it's a quote from Snow Crash
03:58:24 -!- Vorpal has quit (Ping timeout: 276 seconds).
03:58:31 <kmc> "At the time, both of them were working on avatars. He was working on bodies, she was working on faces. She was the face department, because nobody thought that faces were all that important-they were just flesh-toned busts on top of the avatars. She was just in the process of proving them all desperately wrong."
03:59:13 <GreyKnight> I can see why good face models are important although I don't see what it has to do with sexism particularly?
04:00:03 <FreeFull> Humans have a whole brain section dedicated to just faces
04:01:32 -!- nooodl has quit (Ping timeout: 272 seconds).
04:04:25 <kmc> you could read the book
04:04:53 <kmc> it doesn't particularly have to do with sexism
04:05:04 <shachaf> I read the book but it was quite a long time ago.
04:05:14 <shachaf> Perhaps I shoould read it again?
04:05:17 <kmc> it's just that the guys thought the thing she was working on was unimportant, partially due to sexism
04:05:22 <kmc> it's not especially relevant to the plot
04:05:26 <kmc> but it's a good book and you should read it
04:05:38 <kmc> i quoted it just for the last sentence
04:05:52 <kmc> "male techies who sincerely believe that they are too smart to be sexists"
04:05:59 <kmc> regarding the merits of worrying about this :)
04:06:21 <kmc> we programmers tend to think of ourselves (and the rest of the world) as computers, following programs
04:06:41 <kmc> and since we know intellectually to avoid prejudice, we think that of course we will act that way
04:06:50 <kmc> but brains are imprecise computers
04:06:59 -!- Bike has joined.
04:07:25 <kmc> http://en.wikipedia.org/wiki/Intrusive_thoughts is another useful concept
04:07:57 <kmc> 'Many people experience the type of bad or unwanted thoughts that people with more troubling intrusive thoughts have, but most people are able to dismiss these thoughts... London psychologist Stanley Rachman presented a questionnaire to healthy college students and found that virtually all said they had these thoughts from time to time, including thoughts of sexual violence, sexual punishment, "unnatural" sex acts, painful sexual prac
04:09:10 <Bike> are you using that as an example of brains being "imprecise", or with respect to "internalized misogyny"
04:09:32 <Sgeo> I'm not a psychologist, but I'd imagine that any thought that someone would intellectually think is "bad" would come up in intrusive thoughts
04:09:48 <kmc> both really
04:10:31 <kmc> having racist thoughts does not make you racist any more than having murderous thoughts makes you a murderer
04:10:32 <FreeFull> I can imagine lots of rusty nails emerging from my flesh everywhere
04:10:42 <Bike> the important thing about intrusive thoughts isn't so much the content as the inability to get rid of them, sgeo.
04:10:58 <kmc> the idea of the mind as a single indivisible agent is pretty bogus
04:11:03 <kmc> the mind is a committee, if not a whole bureaucracy
04:11:16 <Bike> something something minsky
04:11:29 <kmc> sometimes the part that we perceive as the executive agent needs to yell at the other bits to keep them in line
04:11:32 <kmc> or just ignore them
04:12:41 <Sgeo> I sometimes blame the book "Well Wishing" for giving me the idea that my thoughts, if left unchecked, might cause actual harm magically, and thus an urgent and uncomfortable need to mentally yell at myself any time I have a "bad" thought, rather than just ignoring it
04:12:46 <FreeFull> Usually what you can do is just think about something else
04:13:02 <kmc> yeah, that's probably not good Sgeo
04:13:06 <kmc> i am also not a psychologist
04:13:10 <kmc> (shocker to you all, i'm sure)
04:13:18 <Bike> maybe it's just me but i find that self-help books are really, really bad for anything psychological
04:13:38 <Bike> maybe you have intrusive antiintrusive thoughts, sgeo!
04:14:49 <kmc> i wonder if "hipster racism" and the like is a not-entirely-benign coping mechanism for dealing with intrusive racist thoughts
04:15:00 <Sgeo> "hipster racism"?
04:15:12 <GreyKnight> I was about to ask too but then decided "maybe I'll let that one lie"
04:15:18 <kmc> http://jezebel.com/5905291/a-complete-guide-to-hipster-racism
04:15:21 * GreyKnight has uncovered enough bizarreness for one day
04:16:21 <Bike> oh, the thug life article, i remember reading that.
04:16:39 <kmc> basically, being racist as a joke because 'everyone knows' you're not racist
04:16:48 <kmc> that 'everyone knows' is usually based on something like "i'm smart" or "i voted for obama"
04:16:57 <Bike> also i feel a bit uncomfortable with using "intrusive thoughts" to refer to the non-insanity-related normal condition, but i guess it's kosher
04:17:32 <kmc> Bike: well that article seems to think so anyway
04:17:32 <GreyKnight> This author sure loves exclamation marks
04:17:35 <kmc> but it's just a wikipedia article
04:18:00 <Bike> yeah, that's what i meant. it's just like how i get antsy when people talk about "insane" or "OCD" casually i guess
04:18:16 <kmc> i see what you mean
04:19:04 <kmc> "ADD" and "aspergers" get used that way too
04:19:28 <Bike> aspergers has the whole internet diagnosis thing going for it too :/
04:19:47 <kmc> i think there's a fair amount of that with ADD and OCD too
04:20:05 <coppro> aspergers is no longer a disorder recognized by the APA
04:20:13 <coppro> or whatever that doctors' association is called
04:20:14 <kmc> i know that I have some obsessive-compulsive tendencies, but it doesn't really get in the way of my daily life, so I guess there's no 'D'
04:20:25 <kmc> every time I leave the house I check about 5 times that the stove is off
04:20:25 <coppro> OCD is an anxiety disorder
04:20:33 <kmc> coppro: is it autism spectrum now?
04:20:33 <coppro> ok, that could qualify
04:20:42 <kmc> in fairness, it has been found to be not-off more than once
04:21:00 <Bike> is it that OCPD is what people usually think of as "OCD" or... i forget.
04:21:01 <kmc> one time I lived with a guy with serious for-reals ADHD and he would do things like turn the stove on, forget to light the burner, and then wander off to his room
04:21:15 <coppro> like, if you just like to organize things neatly because you think they look better, that's not OCD
04:21:18 <coppro> even if you do that a lot
04:21:27 <kmc> i figure an extra 30 seconds of my time towards the house not burning down is an ok investment and so I don't fight it too hard
04:21:52 <shachaf> «this Tweet from Zooey Deschanel: "Haha. :) RT @Sarabareilles: Home from tour and first things first: New Girl episodes I missed. #thuglife." See, it's hilarious, because we aren't thugs—we are darling girls, and real thugs are black people who do crime!»
04:21:53 <kmc> yes, i suppose it's the "compulsive" part, where you find it hard to stop even if you want to
04:21:54 <Bike> coppro: yeah that's what i meant, people using it casually to refer to things that are nowhere near medical conditions.
04:22:08 -!- Nisstyre has quit (Read error: Connection reset by peer).
04:22:08 <Bike> Don't get what?
04:22:23 <shachaf> Which part of that is racist?
04:22:40 <kmc> the last sentence is meant to explain it
04:22:48 <kmc> i think that's not really an egregious example
04:23:04 <Bike> The idea is that "thug life" is being used to refer to things we don't think of as stereotypically "thuggish", i.e. black.
04:23:18 <lambdabot> *** "thug" wn "WordNet (r) 3.0 (2006)"
04:23:18 <lambdabot> n 1: an aggressive and violent young criminal [syn: {hood},
04:23:18 <lambdabot> {hoodlum}, {goon}, {punk}, {thug}, {tough}, {toughie},
04:23:27 <Bike> buuuuut that particular sentence is the one part of the article that's been pasted over and over and argued about anyway
04:23:30 <kmc> dictionaries are not great guides to racism
04:23:32 * shachaf isn't trying to play dictionary here in particular.
04:23:43 <shachaf> Bike: OK, I haven't read the article before.
04:24:02 <coppro> Bike: No, it's not OCPD. A few manifestations of OCD stereotype the disorder, which causes people to misunderstand the fact that it's an anxiety disorder characterized by irresitable urges to perform specific, usually-irrational actions so as to relieve the anxiety. This leads to people both failing to understand what OCD sufferers are experiencing and believing that things may be OCD when they are not.
04:24:04 <Bike> I didn't think you did, I'm just saying you're not the only one who read that part and thought "what?".
04:24:06 <shachaf> OK, it's discussed in comments there, I see.
04:24:36 <kmc> in britain they argue about whether "chav" is classist but not whether it's racist, 'cause chavs are white too
04:24:45 <kmc> also in britain they actually think about classism
04:24:54 <kmc> here in the USA we jump to racism even when the racial factor is an incidental correlate
04:25:06 <kmc> which is great for the racists in power by the way
04:25:15 <Bike> coppro: the stereotyping is what i meant. it's like how "schizophrenia" is used to refer to DID or "autism" means Rain Man. I just don't know much about OCD 'cos I don't have it :/
04:25:17 <coppro> OCPD I suppose can also be mistaken for OCD due to the stereotype
04:25:20 <kmc> really great for the oligarchy in general
04:26:19 <coppro> but the primary OCD stereotype (performing certain actions irrationally), in my experience, is not found in OCPD sufferers, and people who refer to it simply don't know that OCPD exists
04:26:21 <kmc> ugh that shitty show on FOX where kiefer sutherland's autistic kid has MAGIC POWERS! and saves the world in 44 minutes every time
04:26:32 <coppro> Bike: I have neither, but I have had girlfriends with both.
04:26:33 <kmc> they had a Magic Negro too
04:26:43 <kmc> i think that show was pretty close to a Media Representations Studies bingo card
04:26:59 <Bike> kmc: wow, what the fuck?
04:27:34 <kmc> to be fair they do portray him as a really hard kid to deal with and not /just/ a special magical snowflake
04:28:40 <kmc> coppro: interesting
04:28:51 <kmc> this is like swearing being the stereotypical manifestation of tourette's
04:29:06 <coppro> OCD is really really distinctive
04:29:56 <coppro> from my experience, OCPD is more like someone who has a really precise view of how things should be and can get somewhat easily upset when that view is violated
04:30:05 <coppro> (often at the person upsetting the view)
04:30:44 <Bike> I suppose I should read my friend's posts on what having OCD is like to be less of an ass in the future
04:30:53 <Jafet> OCPD is the television stereotype of OCD
04:31:26 <Bike> i think that's what coppro's been saying isn't true for a few minutes now, jafet
04:32:00 <coppro> Jafet: Because OCPD sufferers don't do have irrational compulsions, and a few of those (like counting) are part of the OCD stereotype
04:32:36 <Jafet> So, it's possible for someone to have OCD and OCPD simultaneously
04:32:44 <coppro> I can't imagine what that would be like, though
04:33:03 <oerjan> obsessive stereotype disorder
04:33:05 <coppro> One of the characteristics of OCD is that the sufferer usually is aware that the compulsions are irrational
04:33:07 <Bike> well, OCPD is a personality disorder, they're in totally different clusters
04:33:22 <coppro> by contrast, OCPD tends emphatically not to have that
04:33:31 <coppro> so the two combined would be... interesting
04:33:40 <kmc> do you have experience in clinical psychology, coppro?
04:33:52 <Bike> girlfriends, even better
04:33:53 <coppro> kmc: no, this is personal experience
04:33:57 <Jafet> Well, someone could perceive their tidiness as normal, and their habits as unnatural
04:34:13 <Bike> kmc: (it's what he said earlier)
04:34:23 <coppro> But tidiness can be a symptom both of OCD and OCPD, but with different root causes
04:36:14 <Bike> having close contact with someone with a mental disorder is probably the second best way to learn about it, though
04:36:41 <GreyKnight> The "hipster racism" article was a bit confusing in places, mostly due to stuff that probably makes sense to Americans. I don't like the writing style though.
04:37:37 <coppro> Bike: In OCD's case, third best after having it. Probably not the same for OCPD though.
04:37:57 <kmc> oh boy is it time for a game of Ask an American?
04:38:00 -!- TeruFSX has joined.
04:38:15 <Bike> yeah, having it doesn't seem to do much good, but i suppose it's different if your problem isn't based on denying you have a problem
04:38:18 <kmc> i enjoy answering questions about my weird country
04:39:14 <kmc> GreyKnight: yeah the writing style is not the best, I think it's trying pretty hard to capture the attention of people who are indifferent or hostile to the message
04:39:18 <GreyKnight> I kind of don't really want to know :-U
04:39:32 <kmc> oh but i'm curious about what was confusing :(
04:39:44 <GreyKnight> (every time I play Ask An American I usually go away with a sadface)
04:40:08 <Bike> asking about institutional prejudice will surely be different!
04:40:33 <Bike> well, cultural prejudice really
04:40:46 <kmc> let's say little of column A, little of column B
04:42:00 <shachaf> I found the article pretty annoying even though I don't think I disagree with the basic point it's trying to make.
04:42:45 <Bike> that happens with jezebel a lot, I think.
04:43:03 <shachaf> In my limited experience, yes.
04:43:05 <GreyKnight> The name of the site doesn't really inspire confidence :-U
04:43:12 <kmc> there are probably better articles
04:43:20 <kmc> that's just the first one that comes up, and does explain what the basic problem is
04:43:31 <Bike> GreyKnight: eh?
04:44:23 <GreyKnight> Jezebel (the famous one, anyway) was a fairly unpleasant and vicious person
04:45:29 <GreyKnight> "cross me and I'll destroy your character and maybe kill you if you're lucky" sort of thing
04:46:01 <Bike> I would guess that it's named after the negative epithet for women, but i haven't checked...
04:47:04 <GreyKnight> hm well that comes from the same source I guess
04:47:16 <Bike> probably. but in a higher degree.
04:47:37 <GreyKnight> (she was also famous for being a bit overly fond of her appearance)
04:51:58 <GreyKnight> maybe they are trying to do the "turn it into a positive term" thing? I can't say it seems like a good idea, some things should just be thrown away and not recycled :-/
04:52:34 <Bike> I'm kind of surprised that you think of the Biblical figure instead of the insult first. That's new to me.
04:52:53 <shachaf> I am not aware that it's an insult.
04:53:03 <shachaf> I knew a cat by that name, and she was a nice cat.
04:53:04 <lambdabot> *** "jezebel" wn "WordNet (r) 3.0 (2006)"
04:53:04 <lambdabot> n 1: wife of Ahab who was king of Israel; according to the Old
04:53:04 <lambdabot> Testament she was a cruel immoral queen who fostered the
04:53:04 <lambdabot> worship of Baal and tried to kill Elijah and other prophets
04:53:05 <Jafet> Who knows, they might be jez ebel to do it.
04:53:08 <lambdabot> 2: a shameless impudent scheming woman
04:53:30 <Bike> I've been reading too many old books.
04:53:38 <kmc> i didn't know that it was an insult either, though i would have guessed
04:54:14 <Bike> I don't actually remember what Jezebel did anyway, it's been forever since i read any of the OT
04:54:21 <kmc> perhaps it has to do with the fact that women who demand equal treatment are seen as impudent and scheming
04:54:28 <kmc> perhaps it's just a cool sounding word
04:54:48 <kmc> i looked on their site for a bit about the name but rapidly ran out of give-a-fuck
04:54:59 <Bike> yeah their wikipedia article is pretty unhelpful too
04:55:31 <shachaf> "people of color" is an irritating phrase.
04:56:16 <shachaf> Imagine that I declared that every apple that isn't green is an "apple of color".
04:56:21 <Bike> man, things are really different outside of the US.
04:56:45 <Bike> well, no, "white is also a color!" is a thing here, maybe i'm just not used to it yet
04:57:21 <GreyKnight> Bike: well, also in actual use it seems to basically lump together lots of unrelated groups into "non-whites"
04:57:28 <GreyKnight> which is presumably not the intent but is still kind of uh when you realise it
04:57:33 <shachaf> Bike: I'm not sure what you mean.
04:57:35 <Bike> no, that's the intent
04:57:44 <kmc> in the USA politicians love to stereotype by race
04:57:56 <Bike> it's supposed to unify the various groups hurt by racial oppression (in the US)
04:58:00 <kmc> say something about immigration in spanish, there, you've checked off "the Hispanic vote" and can go back to ignoring them
04:58:04 <Bike> which is, well, non-whites.
04:58:21 <Bike> shachaf: Dunno, just that learning about the NAACP in history class the name never bothered me.
04:58:24 <kmc> never mind that some of those people are illegal immigrants and some of them are upper middle class third generation americans
04:59:04 <GreyKnight> Bike: Huh. You would get weird looks using terminology like that round here really (disclaimer: I haven't tried).
04:59:37 <Bike> I think it's mostly seen as a bit old-fashioned.
05:00:13 <GreyKnight> I kind of want to see a native American running for president sometime on a "let's get rid of all the immigrants" platform. But it turns out he means ALL! (this is kind of lulzy)
05:00:20 <Bike> Especially since racism is over now and all.
05:02:52 <kmc> i enjoyed http://jezebel.com/5959154/is-america-ready-for-a-white-male-secretary-of-state
05:03:26 <GreyKnight> that picture is going to give me nightmares
05:03:47 <Bike> whoa, it's like an onion article :D
05:03:59 <Bike> though even less subtle, somehow
05:06:45 <Bike> it's basically just taking the usual "is America ready for a [minority] [governmental position]" articles and turning it around
05:07:04 <GreyKnight> actually I stopped reading the Onion for similar reasons, I guess I want my jokes in snappy soundbites these days
05:07:47 <kmc> "How can we hope to maintain healthy relationships with our European allies when John Kerry can't sit in a sauna with Angela Merkel, Danish Prime Minister Helle Thorning-Schmidt, Lithuanian President Dalia Grybauskaitė, and Jóhanna Sigurðardóttir, the Prime Minister of Iceland?"
05:08:18 <Bike> Didn't Sigurðardóttir get impeached or something?
05:08:37 <Bike> oh, apparently not.
05:08:38 <oerjan> no that was the president, i think, who was male
05:09:07 <GreyKnight> actually wait I have one of the wee square ones with no screen (I didn't pay money for it mind)
05:09:31 * GreyKnight has no idea what a country does with both a Prime Minister *and* a President
05:09:35 <oerjan> hm wait no prime minister, but the previous one
05:09:36 <Bike> "He has served as President since 1996; he was unopposed in 2000, re-elected for a third term in 2004, re-elected unopposed for a fourth term in 2008 and re-elected for a record fifth term in 2012" hm
05:09:48 <kmc> i should go back
05:09:56 <quintopia> how can you not love a place with such an awesome language
05:10:00 <oerjan> http://en.wikipedia.org/wiki/Geir_Haarde
05:10:09 <coppro> GreyKnight: you should read up more about how government works, then
05:10:12 <Bike> Do you speak Icelandic?
05:10:25 -!- hagb4rd has quit (Ping timeout: 256 seconds).
05:10:33 <quintopia> i speak english, which is practically the same thing
05:10:36 <GreyKnight> coppro: I know how government works, just not that type of government
05:11:03 <Bike> it's a pretty common type of government...
05:11:30 <coppro> GreyKnight: I mean government generally
05:11:30 <Bike> "The Landsdómur is a special high court in Iceland which was established in 1905" "The court has assembled for the first time in 2011" I like it!
05:12:17 <GreyKnight> I don't know how general governance can shed any light on something that specific to a particular model...
05:12:23 <kmc> https://www.youtube.com/watch?v=MADc0vCd52o
05:12:40 <Bike> GreyKnight: head of state and head of government, it's pretty general
05:12:58 <quintopia> i think iceland should go back to their old form of government :D
05:13:15 <GreyKnight> A better idea would be to learn more about that particular kind of government
05:13:15 <GreyKnight> However I am already reading about other things
05:13:16 <quintopia> they hold a thing every year and this time, they invite the world
05:13:17 <Bike> You mean the one libertarians love?
05:13:39 <Bike> quintopia: Apparently their parliament is still called the Althing!
05:13:48 <coppro> GreyKnight: no, learn about government generally
05:13:59 <coppro> GreyKnight: Because then the system makes sense and you have learned more
05:14:34 <Sgeo> elliott, monqy Fiora
05:14:39 <Bike> quintopia: it's those damn new "christian" people, making all them newfangled governments everywhere
05:14:50 <kmc> christiania
05:14:52 <GreyKnight> Bike almost clarified it (he didn't specifically mention that President is head of state but I assume this one)
05:15:00 <kmc> no Thursday without Thor!
05:15:07 <kmc> or should I say Þor?
05:15:29 <GreyKnight> So you see now I understand and didn't need to learn any generalities. Only a specific thing, like I said.
05:15:55 <Bike> governmental category theory: something that needs to exist
05:16:30 <GreyKnight> hmm I might give a happy \o/ as well since Þ is my second-favourite letter. But not sure. Also I am beginning to sound like zzo38 for some reason.
05:17:24 <oerjan> norwegian doesn't have Þ for what it's worth
05:17:38 <oerjan> _our_ parliament is called the Storting.
05:17:56 <Bike> oerjan: cognate?
05:18:30 <oerjan> Bike: sure, both are from the same old norse concept
05:18:39 <kmc> yeah, thing / þing / ding / ting is a germanic word for a governing assembly
05:19:03 <coppro> GreyKnight: where are you from?
05:19:08 <kmc> iceland has the Alþingi which is the oldest extant parliamentary institution in the world
05:19:17 <kmc> first held outside in 930 AD
05:19:32 <Bike> do they still hold it outside
05:19:58 <kmc> they have a nice little house in reykjavík
05:20:16 <kmc> http://en.wikipedia.org/wiki/Al%C3%BEingish%C3%BAs
05:20:22 <oerjan> iirc it's a surprisingly small house
05:20:24 <kmc> the Alþingishúsið
05:20:30 <Bike> It's just not the same
05:20:32 <kmc> yes, on the other hand it's a surprisingly small country
05:20:36 <Bike> Oh, that is pretty small.
05:21:11 <kmc> it's probably incorrect to anglicize đ as d isn't it
05:21:47 <Bike> Wait, what's the difference between đ and ð
05:22:02 <kmc> oh i typed the wrong one
05:22:30 <Bike> oh, they're just totally different letters. cool
05:22:31 <kmc> how the bloody hell do i type ð
05:22:39 <kmc> yeah i don't think đ is in icelandic
05:22:44 <kmc> don't have an altgr
05:22:49 <kmc> got a compose key instead
05:22:49 <oerjan> http://en.wikipedia.org/wiki/Turkish_Abductions
05:23:11 <Bike> compose þ d, clearly
05:23:17 <GreyKnight> just plug it in and enjoy the wonders of AltGr
05:23:22 <kmc> GreyKnight: brushed metal, sell it for $50 to mac users
05:23:46 <shachaf> kmc: It seems that my uncle is moving to the Bronx.
05:23:52 <GreyKnight> coppro: http://en.wikipedia.org/wiki/Norn_Iron
05:24:08 <shachaf> I'll have to find a new transportation route!
05:24:10 <Bike> why does vietnamese of all things have đ... which, of course, I don't know how to type
05:24:41 <kmc> because tiếng Việt has every latin diacritic as a matter of principle
05:24:55 <Bike> hm i should look up who the hell designed modern vietnamese
05:25:02 <GreyKnight> including stacking them high, apparently
05:25:23 <Bike> i'm guessing somebody french. i will blame the french for the machine-gunned-looking alphabet
05:26:03 <kmc> friedrich h. coca-cola
05:26:30 <Bike> "It is based on the Latin script (more specifically the Portuguese alphabet[1])" gah
05:27:34 <Bike> I keep forgetting that Portugal did things on the world stage back in the day. Imperializing shit all over the damn place I tells ya.
05:27:54 <kmc> they had a peace treaty with Spain mediated by The Freaking Pope
05:28:01 <Bike> I just thought "oh, france, they killed vietnamese people for a few decades, i can probably blame them right"
05:28:42 * GreyKnight imagines The Freaking Pope is an actual title due to capitalisation
05:28:53 <Bike> oh, christian missionaries. that's pretty obvious really.
05:28:59 <kmc> or as he's known today, @pontifex
05:29:07 <Bike> ". These informal efforts led eventually to the development of the present Vietnamese alphabet, largely by the work of French Jesuit Alexandre de Rhodes" i am vindicated!
05:29:16 <kmc> somebody should make twitter accounts for historical psychotic-bastard-style popes
05:29:34 <Bike> alexander vi's is actually a sex tips blog
05:29:47 <GreyKnight> This might be the lack of sleep talking, but coproduct injections are pretty funny
05:30:13 <oerjan> `addquote <GreyKnight> This might be the lack of sleep talking, but coproduct injections are pretty funny
05:30:15 <kmc> nobody expects the cypriot injunction
05:30:19 <HackEgo> 900) <GreyKnight> This might be the lack of sleep talking, but coproduct injections are pretty funny
05:30:37 <kmc> i think the most abstract thing that i've found really hilarious is the proof of the law of the excluded middle using continuations
05:31:04 <shachaf> I remember when kmc explained it in #haskell.
05:31:53 <Bike> http://en.wikipedia.org/wiki/Dictionarium_Annamiticum_Lusitanum_et_Latinum So, end blame: France. And cointuitionistic proofs or something something
05:32:05 <kmc> GreyKnight: basically, you claim "A is false", i.e. "A -> Void", and then when somebody calls your bluff by calling that function with a value of type A, you use the continuation to go back in time and claim that A was true all along, with their value as evidence
05:33:33 <GreyKnight> proof by virtue of I'm always right even if I have to mangle the spacetime continuum to pull it off
05:33:35 <kmc> in pseudo-haskell: callCC (\k -> Left (\v -> k (Right v)))
05:33:47 <oerjan> :t callCC (\k -> Left (\v -> k (Right v)))
05:33:49 <lambdabot> Occurs check: cannot construct the infinite type:
05:33:49 <lambdabot> In the return type of a call of `k'
05:33:57 <shachaf> kmc: Did you see Oleg's DNE thing, by the way?
05:34:03 <kmc> <kmc> in pseudo-haskell
05:34:06 <lambdabot> oleg says: Unfortunately, once it became clear that the ideas are working out, the motivation fizzled.
05:34:13 <lambdabot> Oleg says: We show how to program with the law of excluded middle. We specifically avoid call/cc, which is overrated.
05:34:15 <kmc> it ignores the fact that continuations are not functions, for clarity
05:34:20 <GreyKnight> oerjan: we need pseudolambdabot for this one
05:34:44 <shachaf> kmc: You can write a function :: forall a. (forall m. Monad m => ((a -> m F) -> m F)) -> a
05:35:04 <oerjan> :t \k -> Left (\v -> k (Right v)))
05:35:11 <oerjan> :t \k -> Left (\v -> k (Right v))
05:35:13 <lambdabot> (Either a b1 -> t) -> Either (b1 -> t) b
05:35:18 <shachaf> That gives you an actual a in the end, not that weak (a -> r) -> r nonsense.
05:35:26 <shachaf> We show how to program with the law of excluded middle. We specifically avoid call/cc, which is overrated.
05:35:35 <kmc> :t callCC (\k -> return (Left (\v -> k (Right v))))
05:35:36 <lambdabot> MonadCont m => m (Either (b1 -> m b) b1)
05:35:40 <shachaf> http://okmij.org/ftp/Computation/lem.html
05:36:01 <shachaf> @let getCC = callCC (return . fix)
05:36:01 <kmc> :t callCC (\k -> return (Left (k . Right)))
05:36:03 <lambdabot> MonadCont m => m (Either (b1 -> m b) b1)
05:36:23 <shachaf> It gives you the current continuation.
05:36:34 <shachaf> It's more powerful than callCC, of course.
05:36:41 <shachaf> You can do infinite loops and things with it.
05:36:45 <kmc> :t do { k <- getCC; k 3 }
05:36:46 <lambdabot> (Num a, MonadCont ((->) a)) => a -> b
05:36:47 <shachaf> (That's why you need fix to define it.)
05:36:48 <Bike> more powerful...?
05:36:58 <GreyKnight> How about a nice juicy shift/reset pair?
05:37:15 <kmc> you can't return things, though?
05:37:20 <kmc> i mean there's no way to get a 'b' in
05:37:43 <shachaf> Cont on its own is maybe not as interesting as ContT with something else.
05:37:56 <shachaf> k <- getCC gives you a sort of goto label.
05:37:56 <GreyKnight> perhaps shachaf means "more powerful" to be "differently powerful"
05:38:11 <shachaf> You can then use the action it gives you to jump back to that point.
05:38:45 <shachaf> It's not very interesting from the logic perspective, as far as I can tell. :-)
05:39:00 <shachaf> I think monochrom wrote about it.
05:39:05 <lambdabot> http://www.vex.net/~trebla/haskell/cont-monad.xhtml
05:40:45 <shachaf> You can probably extend this to passing information without too much trouble.
05:41:58 <shachaf> It's basically just trivial.
05:42:47 <HackEgo> 144) <fizzie> It's like mathematicians, where the next step up from "trivial" is "open research question". <fizzie> "Nope... No...This problem can't be done AT ALL. This one--maybe, but only with two yaks and a sherpa. ..."
05:47:52 <Bike> So where does a research question about making proving identities trivial fall
05:48:31 <kmc> you need those yaks for the yak wool
05:48:36 <shachaf> The law of excluded middle states that every proposition is either trivially true or trivially false.
05:48:51 <GreyKnight> Bike: I'd answer your query, but unfortunately that's an open research question.
05:49:15 <Bike> That doesn't mean that you shouldn't answer, just that your answer will be a great publishing opportunity.
05:49:26 <GreyKnight> shachaf: TLDR all mathematics is useless, let's go to the beach QED
05:49:44 <oerjan> shachaf: checkmate intuitionists!
05:49:47 <Bike> that's an actual position, you know (except less caricatured)
05:50:33 <Bike> all propositions are trivially true or false, therefore lolmath
05:50:49 <Bike> unfortunately i forget the name because "trivialism" is something else entirely
05:50:53 <GreyKnight> There should be a "No Pronouns Day". No Pronouns Day would be a good time, I think. I would enjoy No Pronouns Day.
05:50:55 <kmc> "For each problem in section B, either prove that the problem is in P or that it's NP-complete. (Extra credit for doing both.)"
05:51:28 <oerjan> GreyKnight: I wouldn't be around to enjoy No Pronouns Day, duh
05:51:49 <Jafet> Which webcomic is "checkmate" from
05:52:06 <Bike> I thought "checkmate atheists" was just a meme.
05:52:36 <Jafet> Oh, it's not from a webcomic
05:52:39 <shachaf> Free monads are also "pretty nifty??"
05:52:42 <kmc> http://knowyourmeme.com/memes/checkmate-atheists
05:52:48 <kmc> shachaf: you get what you pay for
05:53:01 <shachaf> kmc: What about cofree comonads?
05:53:03 <oerjan> kmc: hey no fair i was going to link that
05:53:11 <shachaf> edwardk likes those, I think.
05:53:50 <coppro> why is homestuck so great lately
05:53:59 <Bike> Aw, "checkmate" was a joke. Well, at least I have Atheist Nightmare to keep me warm
05:54:09 <oerjan> kmc: except, um, that page sucks, it doesn't explain anything
05:54:57 <kmc> i like http://knowyourmeme.com/memes/good-guy-lucifer
05:55:30 <Bike> I should check to see if their Ron Paul article has gotten less hilarious.
05:55:40 <kmc> ron paul: apply directly to the forehead
05:56:23 <Bike> "On February 22nd, 2012, opponent Rick Santorum aggressively shook Paul’s hand during the GOP candidate debate." ehhhh not quite the same
05:56:32 <Bike> "The week before the caucus, Paul had the most Twitter mentions as well as the most new YouTube subscribers."
05:56:49 <oerjan> kmc: oh wait, i got the wrong page
05:57:30 <Bike> http://i1.kym-cdn.com/photos/images/masonry/000/228/139/18qv.jpg now we're talkin'.
06:02:15 -!- TeruFSX has quit (Ping timeout: 276 seconds).
06:09:28 <Bike> so, i'm readng chaitin's book on the diophantine thing, and he uses lisp with single-character variable names, in APL's character set. is there a reliable test to see if i'm actually in some caricatured hell?
06:09:52 <coppro> `quote < Bike> so, i'm readng chaitin's book on the diophantine thing, and he uses lisp with single-character variable names, in APL's character set. is there a reliable test to see if i'm actually in some caricatured hell?
06:11:06 <Bike> what is the right format
06:11:12 <coppro> `addquote <Bike> so, i'm readng chaitin's book on the diophantine thing, and he uses lisp with single-character variable names, in APL's character set. is there a reliable test to see if i'm actually in some caricatured hell?
06:11:16 <HackEgo> 901) <Bike> so, i'm readng chaitin's book on the diophantine thing, and he uses lisp with single-character variable names, in APL's character set. is there a reliable test to see if i'm actually in some caricatured hell?
06:11:20 <HackEgo> 882) <kmc> i bet a blog post complaining about ");});});" syntax in JavaScript and comparing it unfavorably to Lisp would get approximately one billion comments on hacker news <Bike> but at what cost? your very soul, kmc!
06:11:26 <Jafet> !oerjan addquote < Bike> so, i'm readng chaitin's book on the diophantine thing, and he uses lisp with single-character variable names, in APL's character set. is there a reliable test to see if i'm actually in some caricatured hell?
06:11:27 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:11:32 <Bike> two quotes? wow i'm internet famous
06:11:41 <HackEgo> 634) <olsner> characters in tv series should learn to check the timestamp before they get their hopes up... *no chance* this will work at 10 minutes into the episode
06:11:47 <coppro> you are not allowed to be internet famous
06:11:59 <HackEgo> 40) <Deewiant> I spent the last minute or so killing myself repeatedly
06:12:14 <coppro> we are approaching the 10th (!) anniversary of logs
06:12:23 -!- copumpkin has joined.
06:12:28 <Bike> is there gonna be a party?
06:12:44 <coppro> will you stand as a candidate in your home riding?
06:12:48 <monqy> will it be a good party or a bad party
06:12:50 <Bike> hm, at least he uses lexical scope. small mercies
06:12:52 <Bike> what's a riding
06:13:21 <coppro> http://en.wikipedia.org/wiki/Electoral_district_(Canada)
06:13:24 <kmc> when-it's-time-to-party-we-will-party-hard
06:13:24 <oerjan> monqy: it will be a caricatured hell party. this does not answer your question.
06:13:28 <kmc> ♫ [HEAD BANGING] ♫
06:14:13 <Bike> coppro: Can I stand as a candidate in my home circonscription? That sounds, like, totally cooler.
06:15:27 <Bike> haha, no dotted pairs either
06:15:47 <kmc> what are those characters?
06:15:48 <oerjan> party hard, let's go shopping
06:16:05 <Bike> kmc: APL FUNCTIONAL SYMBOL QUOTE QUAD etc
06:16:18 <Bike> GreyKnight: the latter is eval, apparently
06:16:22 <Sgeo> Bike, who is "he"
06:17:12 <coppro> what is the past tense of kidnap
06:17:15 <Bike> sorry you're wrong greyknight i've got the book like right here
06:17:20 <Sgeo> Bike, better yet: Link?
06:17:29 <Bike> Um, I think I pirated this? I forget.
06:17:40 <Sgeo> Oh, wait, are you actually talking about Chaitin of Chaitin's constant defining a Lisp?
06:17:47 <Jafet> coppro: stockholmed
06:17:52 <Bike> well, yes, is there another one
06:18:07 <Bike> (i suppose there is. I don't know much about... shit i don't even know where he's from. argentina?)
06:18:17 <Bike> Sgeo: the book is "Algorithmic Information Theory", boringly enough
06:18:31 <Sgeo> Why am I surprised that he's still around
06:18:36 <Bike> This is pretty old.
06:18:43 <Bike> Nowadays he's busy being insane. "metabiology"
06:19:08 <Bike> GreyKnight: apparently in his thing ⍎ is eval with timeout. The More You Know.
06:19:35 -!- oerjan has quit (Quit: ZZZ).
06:20:47 <GreyKnight> Bike: which book? Perhaps this is a point of variance between APLs (?)
06:20:58 <kmc> coppro: kidnapped? paniced?
06:21:19 <Bike> GreyKnight: I wasn't kidding when I said he was using Lisp but with one character names in APL characters.
06:21:30 <lambdabot> *** "panicked" wn "WordNet (r) 3.0 (2006)"
06:21:31 <lambdabot> adj 1: thrown into a state of intense fear or desperation;
06:21:31 <lambdabot> "became panicky as the snow deepened"; "felt panicked
06:21:31 <lambdabot> before each exam"; "trying to keep back the panic-
06:21:46 <Bike> GreyKnight: if you gimme the del character real fast i can give you a code sample.
06:22:24 <coppro> it's kind of crazy that no verb fails to have the "ing" form for the progressive aspect
06:23:04 <Bike> coppro: really, none?
06:23:24 <coppro> not even "be", which is the most irregular verb by far
06:23:27 <GreyKnight> Oh so you're not actually in APL? Your characters may mean something different then, perhaps Chaitin got mixed up himself :-)
06:23:39 <Bike> GreyKnight: (⍎('(1))('(('(∇(x)x))a)))
06:23:41 <coppro> (it has three forms more than any other verb)
06:23:58 <coppro> "be" "is" "are" "were" "was" "being" "been" "am"
06:24:18 <Bike> bonus: (∇(x)x) is actually a lambda expression
06:25:17 <Bike> Eval with timeout. The first argument, i.e. ('(1)), means to halt the eval if a second function application is hit.
06:25:27 <Bike> (there are no actual numbers)
06:26:33 <GreyKnight> does ('(1)) break down into something meaningful or is it a magic incantation?
06:27:06 <Bike> It's an encoded numeral. One element list, so it means 1.
06:27:59 <GreyKnight> this looks wacky, I think I would need to read the book for context
06:28:04 <Bike> It doesn't really have anything to do with APL I think. He mentions it was "the biggest character set he could find" or something.
06:28:19 <Bike> Me! All me! Mwa hahahaha
06:29:22 <GreyKnight> "The biggest problem in communication is assuming it has taken place" :-D
06:29:27 <Bike> well, yeah. the closest i've gotten to APL is reading A Programming Language enough to be annoyed at one-indexed arrays, and staring at J's installer
06:31:48 <Bike> oh, wow, he actually uses "m-expressions" too. "wacky" is not enough for this.
06:32:29 <GreyKnight> 1-indexing is natural with mathematical matrices, APL arrays probably are genealogically closer to them than to "computer" arrays
06:32:53 * Sgeo should try to read about m-expressions
06:32:56 <GreyKnight> remember back when M-expressions where a thing
06:33:43 <GreyKnight> although fexprs are making a comeback so maybe M-expressions will too??
06:33:55 <Sgeo> Racket has support for "@-expressions"
06:34:00 <Sgeo> Not sure if that's the proper term
06:34:09 <Bike> GreyKnight: I know they are (re APL), i just found it annoying for bad reasons
06:34:24 <Bike> i should probably try the book again. i'm less shitty with matrices now, anyway.
06:39:07 <coppro> ⍴⍴⍴reduce, gently down the stream
06:39:54 <GreyKnight> Rho, rho, rho of X // Always equals 1 // Rho is dimension, rho rho rank // APL is fun!
06:40:06 -!- GreyKnight has quit (Quit: ⍎fungot).
06:44:35 <coppro> you spent far too much time on that
06:44:48 <coppro> also you messed up the tune
06:45:12 <coppro> "row row row reduce // gently down the page // one mistake and you'll be baked // so check at ev'ry stage!
06:55:47 * Sgeo is currently strugging with how to provide functions non-statically
06:57:56 <Sgeo> As in, I evaluate with eval a define form that defines a function. How do I expose this function to other Racket modules
06:58:53 <Bike> you can't define toplevel (or uh modulelevel) functions in eval? that seems implausible
06:59:24 <Sgeo> When I tried, I got provide: not at module level in: (provide x)
06:59:42 <Sgeo> I can define them all right. Just not have them importable from the rest of Racket
07:00:26 <Sgeo> I don't really want it to be a one-way street, would be nice to write Racket code that could call Qoppa functions
07:05:27 -!- esowiki has joined.
07:05:31 -!- esowiki has joined.
07:05:32 -!- esowiki has joined.
07:06:04 -!- esowiki has joined.
07:06:09 -!- esowiki has joined.
07:06:09 -!- esowiki has joined.
07:06:44 -!- esowiki has joined.
07:06:49 -!- esowiki has joined.
07:06:49 -!- esowiki has joined.
07:07:25 -!- esowiki has joined.
07:07:29 -!- esowiki has joined.
07:07:29 -!- esowiki has joined.
07:08:05 -!- esowiki has joined.
07:08:09 -!- esowiki has joined.
07:08:09 -!- esowiki has joined.
07:08:45 -!- esowiki has joined.
07:08:49 -!- esowiki has joined.
07:08:49 -!- esowiki has joined.
07:09:25 -!- esowiki has joined.
07:09:29 -!- esowiki has joined.
07:09:29 -!- esowiki has joined.
07:10:05 -!- esowiki has joined.
07:10:09 -!- esowiki has joined.
07:10:09 -!- esowiki has joined.
07:10:45 -!- esowiki has joined.
07:10:49 -!- esowiki has joined.
07:10:49 -!- esowiki has joined.
07:11:25 -!- esowiki has joined.
07:11:29 -!- esowiki has joined.
07:11:30 -!- esowiki has joined.
07:12:05 -!- esowiki has joined.
07:12:09 -!- esowiki has joined.
07:12:10 -!- esowiki has joined.
07:12:45 -!- esowiki has joined.
07:12:49 -!- esowiki has joined.
07:12:50 -!- esowiki has joined.
07:13:25 -!- esowiki has joined.
07:13:29 -!- esowiki has joined.
07:13:30 -!- esowiki has joined.
07:14:05 -!- esowiki has joined.
07:14:09 -!- esowiki has joined.
07:14:10 -!- esowiki has joined.
07:14:35 -!- esowiki has joined.
07:14:36 -!- glogbot has joined.
07:14:37 -!- glogbackup has left.
07:14:38 -!- EgoBot has joined.
07:14:39 -!- esowiki has joined.
07:14:40 -!- esowiki has joined.
07:16:30 -!- Gregor has joined.
07:21:19 -!- hagb4rd has joined.
07:24:43 <hagb4rd> @ask gregor can we add apps.google.com to the whitelist so hackego can fetch some services on it? also it would be cool if the result of fetch (the response itself) would be put out on the stdout enabling the user to pipe it to other shell progs. what do you think?
07:24:49 <Sgeo> Bike, I think I have an answer, although it kind of sucks: Provide a function capable of reaching into the Qoppa environment for the specified function.
07:25:02 <Sgeo> require won't wor... I can make require work
07:25:06 <Bike> You're right, that does suck.
07:25:18 <Bike> Maybe #racket could tell you something better?
07:25:27 <Sgeo> n/m. I don't know if require can be made to work with that
07:25:54 <Sgeo> I asked on #racket , I think people are asleep
07:32:41 <Gregor> hagb4rd: `fetch has no whitelist, and currently sandboxed apps have no external access at all.
07:32:41 <lambdabot> Gregor: You have 1 new message. '/msg lambdabot @messages' to read it.
07:35:47 <hagb4rd> gregor: what do you mean by no external access at all? i just would like to use my own rest-services, serving json data for example.. and pipe them to other shell progs
07:36:05 <hagb4rd> but oerjan mentioned some restrictions
07:36:34 <Gregor> hagb4rd: There used to be an HTTP proxy with a whitelist.
07:36:39 <Gregor> There's not right now, I borked it.
07:38:39 <hagb4rd> gregor: so, the other thing is the output itself. for now it returns the name of the file the response is saved to, right? but imho it'd be more efficient to directly push it to the stdout
07:39:12 <Gregor> hagb4rd: "stdout" doesn't make any sense. fetch doesn't run in the sandbox, and can't be used from the sandbox. It's totally isolated.
07:41:38 <hagb4rd> okay.. i'm not sure about the restrictions or conventions of that sandbox you're talking about. but it _would make sense_ to have the possibility of using external webservices.. don't see security risks there
07:43:28 <hagb4rd> but if i get you right fetch is one of hackegos special functions
07:43:48 <hagb4rd> not directly running the shell
07:47:54 <hagb4rd> gregor: however the result of fetch is saved somewhere in that sandbox, isn't it?
07:49:16 <Gregor> Yes, it's definitely a good idea to have it possible to use external services, but that would have nothing to do with `fetch.
07:49:23 <Gregor> It is /designed/ to give such access, it's just broken.
07:49:29 <Gregor> Squeak enough and I may even fix it.
08:04:15 <Sgeo> It almost makes sense though not being able to mutate the functions a module provides
08:04:21 <Sgeo> At least, in a static language it makes sense
08:05:01 <Bike> when you're at the repl defining functions, what module do they go in?
08:05:16 <Sgeo> I think those are in the top-level
08:05:19 <Sgeo> Outside of any module
08:13:20 -!- epicmonkey has joined.
08:19:39 -!- Taneb has joined.
09:07:07 -!- Bike has quit (Quit: leaving).
09:32:00 <Fiora> shachaf: that short story reminded me of Idoru for some reason
09:45:40 -!- nooga has joined.
09:56:18 -!- zzo38 has quit (Remote host closed the connection).
10:00:07 -!- AnotherTest has joined.
10:25:46 -!- Taneb has quit (Ping timeout: 255 seconds).
10:29:00 -!- Taneb has joined.
10:33:58 -!- monqy has quit (Quit: hello).
11:11:38 -!- sebbu2 has joined.
11:13:15 -!- sebbu has quit (Ping timeout: 260 seconds).
11:18:46 <Sgeo> http://www.reddit.com/r/ruby/comments/161mik/whys_site_is_back_up_link_to_discussion_on_hacker/
11:23:31 <AnotherTest> Why does everyone use DH instead of FHMQV?
11:25:08 <AnotherTest> note: dh = diffie-hellman, fhmqv = fully hashed menezes-qu-vanstone
11:25:28 <AnotherTest> I don't see any reason not to, considering performance and security
11:28:55 -!- Nisstyre-laptop has quit (Ping timeout: 240 seconds).
11:43:06 -!- VorpalPhone has joined.
12:07:54 -!- sebbu2 has changed nick to sebbu.
12:17:41 -!- Vorpal has joined.
12:24:24 -!- copumpkin has quit (Ping timeout: 272 seconds).
12:25:04 -!- copumpkin has joined.
12:41:51 <hagb4rd> sgeo: what is that boulvard talk you are linking to and _why?
12:43:25 <Sgeo> boulvard talk?
12:44:03 <Sgeo> Could you repeat what I said, I'm not sure what you're referring to
12:44:16 <hagb4rd> <Sgeo>http://www.reddit.com/r/ruby/comments/161mik/whys_site_is_back_up_link_to_discussion_on_hacker/
12:44:53 <Sgeo> _why renewed his domain name and put a weird puzzle on it
12:45:25 <Sgeo> I have no idea what boulevard is or how (s)he/it comes into play
12:47:51 -!- nooodl has joined.
12:48:22 <hagb4rd> boulevard-talk is is another word for gossip
12:48:51 <hagb4rd> "Gossip is idle talk or rumor about the personal or private affairs of others. It is one of the oldest and most common means of sharing facts, views and slander. This term is used pejoratively by its reputation for the introduction of errors and variations into the information transmitted, and it also describes idle chat, a rumor of personal, or trivial nature."
12:49:46 <Sgeo> Also, I managed to misread _why as asking why?
12:49:52 <Sgeo> That's disturbing on my part
12:50:03 <hagb4rd> that was kind of a word play ;)
12:50:10 <Fiora> I still don't get the whole thing with _why
12:50:22 <Fiora> people trying to stalk him down and so on seemed incredibly creepy
12:59:10 <hagb4rd> http://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Hans_Weiditz09.jpg/800px-Hans_Weiditz09.jpg <-- this one is called "gossip women and the devil".. 16th century
12:59:53 <hagb4rd> yes ceepy is the right word i guess
13:04:22 <ais523> Fiora: that just happens to celebrities generally, I think
13:07:12 <Fiora> was he really that famous? I never even heard of him before the drama >_>;
13:10:01 <hagb4rd> that's why i orginally asked sgeo about his link. i thought it may be someone once hanging around here
13:10:49 <Sgeo> He was a famous Ruby person
13:11:36 <Fiora> clearly the problem is with the ruby fandom
13:12:58 <Taneb> I remember back when I was famous
13:14:26 <Taneb> It's nothing that great
13:14:57 <hagb4rd> was trying to stalk your real identity
13:15:29 <Taneb> "Taneb" is a portmanteau of reverses of the first three letters of my name and my brother's name
13:16:03 <Taneb> My alt nick, "Ngevd", is my initials
13:16:21 <Taneb> Plus an E that was almost one of my initials
13:16:30 <Fiora> my name is... a fire emblem character whose name I liked
13:16:36 <Taneb> I live in the same town as elliott
13:16:49 <Taneb> Who I believe gets his nick from the fact that it's his name
13:17:20 <Sgeo> My nick is based off my first and last name
13:17:29 <Sgeo> Actually, I think these days my real name is rather public, so
13:18:05 <Sgeo> It feels so weird to say that in cha
13:20:08 <hagb4rd> well it is. now you're not safe from all the gropies waiting outside your door
13:21:56 <hagb4rd> though famous nerds don't have groupie fans i guess (not meaning you in first case sgeo :)
13:22:15 <Taneb> I'd hate to have gropies waiting outside my door
13:22:29 <Taneb> I think that's happened
13:22:35 <shachaf> Fiora: Which short story? Chiang?
13:22:49 <Fiora> the one you posted
13:23:11 <Fiora> it's basically about a japanese virtual super-idol that takes over pop culture I think
13:23:31 <Fiora> it's probably doubly wonderful reading it with modern context
13:23:44 <Fiora> given that the prediction (partially) came true
13:32:39 -!- VorpalPhone has quit (Quit: Bye).
13:37:47 <Taneb> Edvard Grieg looks like Mark Twain
13:37:50 <Jafet> Idoru!idoru@freenode/utility-bot/ex-server/idoru
13:40:04 <Jafet> I'm ambivalent about opengl 2+. On one hand, it doesn't do any matrix operations for you. On the other hand, I just figured out that my program doesn't need any matrix operations.
13:40:48 <Taneb> On the other hand, if I try to bend that far I will break...
13:40:55 <Taneb> On the other hand... there is no other hand.
13:41:10 <Fiora> on the gripping hand!
13:41:23 <Jafet> On the other hand is my other hand
13:41:44 <Taneb> On the other hand is your foot. Would you please move it?
13:41:47 <hagb4rd> jafet: no matrix operations? how is that? how do you do transformations without matrix operations? and now don't say tensor-operations
13:42:12 <Jafet> My program just computes the texture.
13:42:51 <hagb4rd> jafet: back to the roots: what program are we talking about anyway?
13:42:55 <Jafet> I use opengl as a high-performance hardware-accelerated texture display platform.
13:43:12 <Sgeo> I could "easily" define a language that is just Racket except able to easily use Qoppa functions without wrapping the name in some function explicitely
13:43:30 <Sgeo> That's kind of a sucky way to approach interop though
13:43:32 <hagb4rd> interesting.. so in that case the transformations are just two-dimensional?
13:43:41 <Jafet> There are no transformations.
13:43:42 <Sgeo> Not interoping with Racket, but rather interoping with a Racket-like language
13:43:48 <Jafet> I just write one quad directly into screen space.
13:43:55 <Jafet> Or technically, clip space.
13:44:16 <Sgeo> Wait, hmm, I have a "better" idea
13:44:35 <Jafet> @quote premature.general
13:44:35 <lambdabot> ksf says: ...premature generalisation is the root of all procrastination.
13:44:36 <Sgeo> A require transformer, that ... is that a legal way to write a require transformer
13:51:43 <Sgeo> Two plausible approaches: New language for interop with Qoppa, and require transformer that requires functions from Qoppa to be explicitly listed
13:53:44 <Sgeo> Hmm, the latter might not work so well
13:53:51 <Sgeo> require transformers are ... hmm
13:56:59 <Vorpal> hm, what sort of partition table is normally used on ARM based linux systems? I assume it isn't MBR-based, that seems silly
14:21:15 <fizzie> Some of them do GPT, I think.
14:23:31 -!- carado has joined.
14:33:58 <ais523> huh, why does the processor affect how the disk is partitioned?
14:43:14 <hagb4rd> sgeo: i don't know anything about racket, but why do you want to implement interop-ability from "within" and not by using a standard interface like a webservice? i don't see how you want to manage "real" interopability by not using services, and wonder if ever someone did this successfully
14:44:41 <Sgeo> It's like using a library. You don't make a webservice to use a library
14:45:00 <Sgeo> In Racket, you can make libraries and programs in different languages
14:45:58 <hagb4rd> are they compiled to rudementary common language like the ILM code in .net?
14:46:28 <hagb4rd> or even down to assembler?
14:47:01 <Sgeo> They're compiled to Racket
14:47:08 <hagb4rd> maybe it's worth to give it a look..
14:47:17 <Sgeo> (approximately)
14:48:08 <shachaf> The toenails, on the other hand, never grow at all.
14:48:28 -!- impomatic has joined.
14:58:58 -!- mig22 has quit (Quit: mig22).
15:05:02 -!- Nisstyre-laptop has joined.
15:18:55 -!- TeruFSX has joined.
15:20:21 <elliott> quintopia: now I am tempted to fix all the american english elsewhere on that page :P
15:22:16 <Sgeo> If you like Kernel, maybe you'll love #%kernel!
15:22:27 <Sgeo> (Note: Kernel and #%kernel are unrelated)
16:02:05 -!- Nisstyre-laptop has quit (Quit: Leaving).
16:06:57 <Vorpal> hm, anyone know a good lightweight HTTP server that supports SSL and CGI (or SCGI, FastCGI, any of them will do)? With lightweight I mean really lightweight btw. Going to run it on an embedded linux system.
16:07:18 <Vorpal> won't need to be super fast, low memory usage is more important
16:09:58 <elliott> are you sure nginx isn't lightweight enough?
16:10:30 <Vorpal> elliott, no, I'm performing initial research. Since the hardware has not yet arrived, I can't yet test myself.
16:10:38 <elliott> thttpd might work, modulo bitrot
16:10:38 <Vorpal> Just trying to figure out what alternatives exist atm
16:10:46 <elliott> what embedded system is it out of curiosity
16:11:02 <Vorpal> elliott, RPi, but it will be running quite a few other things than just the web server
16:11:24 <elliott> pretty sure raspberry pi is more than capable of running something like nginx yeah
16:11:46 <elliott> its probably in the repos and stuff since it just uses debian?
16:11:51 <Vorpal> elliott, thing is, it will be handling torrents too (legal only of course), to an external usb disk. Pretty sure that will use up quite a few resources
16:12:09 <Vorpal> at the very least in the form of file cache
16:12:32 <Vorpal> oh and openvpn, and irc bouncer.
16:12:32 <elliott> anyway that doesn't sound like the kind of thing that would differ between httpds
16:13:18 <Vorpal> hm? 512 MB RAM is not much when you are dealing with some multi-GB file downloads at the same time over torrent. That disk cache will be quite well used I suspect
16:13:30 <Vorpal> but yeah I guess I'll start with ngnix and see how it works
16:13:39 <elliott> it doesn't sound like what webserver you use would really impact how bad that is
16:14:04 <Vorpal> well, it would possibly free up a few MB extra for other stuff. That was what I was considering
16:16:10 <Vorpal> ooh nginx has spdy support? Nifty.
16:17:10 <Vorpal> elliott, out of curiosity, what is your opinion on iptables, the various *bsd firewalls and so on? I heard a lot of people complaining about the complexity of iptables.
16:18:28 -!- KingOfKarlsruhe has joined.
16:18:56 <elliott> i literally know nothing about firewalls
16:19:03 <elliott> i have not done a single thing to solidity's
16:20:19 <Vorpal> usually I just set up ufw these days. But I don't think that will be enough on the rpi, given how I want to handle OpenVPN.
16:20:46 <ais523> it's just a front end to iptables
16:20:52 <ais523> but a much neater one than iptables(8) itself
16:21:43 <Vorpal> ais523, any clue how messy it would be to mix in additional rules that ufw can't express, for marking packages (to be used by ip rule later on to use different routing tables for different stuff)
16:21:56 <ais523> Vorpal: probably messy enough that you shouldn't use ufw
16:21:57 -!- nooga_ has joined.
16:22:00 <ais523> it's not designed for that situation
16:22:11 <Vorpal> but using raw iptables is fairly annoying
16:24:21 -!- nooga has quit (Ping timeout: 248 seconds).
16:25:51 <AnotherTest> old question from Vorpal: write a quick one. Keep it minimal and don't write it in a language that uses a lot of memory
16:26:18 <Vorpal> AnotherTest, write a quick web server on my own? Err, no thanks.
16:26:32 <Vorpal> too much work, I have better stuff to do
16:26:47 <ais523> if you don't care much about efficiency or features, web servers aren't hard to write
16:26:51 <Vorpal> AnotherTest, I need https, since I will access it from the public internet
16:27:04 <ais523> but the stock available ones will be much better than what you could quickly write on your own
16:27:13 <Vorpal> boost? You are kidding me?
16:27:45 <ais523> AnotherTest: you can make that statement about some special cases of C++ generally
16:27:46 <Vorpal> boost does use quite a bit actually.
16:28:18 <AnotherTest> The server I have here - using boost.asio uses...
16:28:29 <Vorpal> we use it at work, and it sure eats quite a bit of memory based on the profiling results.
16:28:54 <Vorpal> AnotherTest, asio is async io I presume? You can do that just fine in plain C
16:28:57 <AnotherTest> without any optimization (running debug mode even): 100kib
16:29:38 <Vorpal> the issue with boost is that due to all the templates, for every variant you end up using, you get another copy of the code.
16:30:03 <Vorpal> so the binary size grows much quicker than it would have if it just used void* or whatever instead of templating
16:30:19 <AnotherTest> But the development time would rise for void*
16:30:22 <Vorpal> (STL suffers from that too to some degree, but boost seems worse)
16:30:39 <Vorpal> AnotherTest, not really. Compile time would be reduced
16:30:47 <Vorpal> thus reducing useless time wasted on that
16:31:31 <AnotherTest> I never have real problems with compiling taking long
16:31:46 <Vorpal> AnotherTest, I have had link times for the final binary of over a minute
16:31:52 <AnotherTest> if you just put the heavy stuff in a different compilation unit, there should be no problem
16:31:53 <Vorpal> in debug configuration
16:32:27 <AnotherTest> well I have link times of 1s or something, project is well over 10k lines of code using boost and templates
16:32:30 <Vorpal> AnotherTest, well, we need to link statically since we are targeting embedded.
16:33:09 <Vorpal> AnotherTest, well, not really, it would break stuff.
16:33:22 <Vorpal> can't talk about specifics there really
16:33:48 <AnotherTest> anyway, I do disagree that you should use void* rather than templates
16:33:48 <Vorpal> AnotherTest, anyway, the project I work on is over 2m loc, not including external libraries such as boost
16:34:11 <AnotherTest> Wouldn't void* reduce run-time efficiency due to casting anyway?
16:34:44 <Vorpal> AnotherTest, a cast would be a no-op from assembly POV
16:34:54 <Vorpal> unless you are actually converting the data (say, int to float)
16:35:07 <Vorpal> casting a pointer to another pointer would definitely be a no-op
16:35:22 <AnotherTest> although maybe you could reduce 2 M loc to 1 M loc by using templates
16:35:54 <elliott> if you have 2 m loc you have other problems
16:35:54 <Vorpal> AnotherTest, btw, including shared_ptr brings in around 200 include files if you count recursively iirc
16:36:04 <elliott> and also probably it is not worth the time to make it 1m loc
16:36:27 <AnotherTest> elliott: you should have done that before, of course
16:36:39 <Vorpal> elliott, or you have a very complex system. It is actually fairly well structured into modules and such. It is just that there is so many modules.
16:37:36 <AnotherTest> Vorpal: yes, although I'd rather that than have to use raw pointers the whole time
16:37:41 <Vorpal> <AnotherTest> although maybe you could reduce 2 M loc to 1 M loc by using templates <-- we do use a lot of templates, that is in part what is killing the compile time.
16:37:49 <elliott> i don't think i know of any system remotely that large which i wouldn't consider overcomplicated for historical reasons or else preoccupied with dealing with problems it doesn't have to (like being in too low level a language)
16:38:03 <AnotherTest> I'm sure the chance on bugs and memory leaks is smaller when using stuff like shared_ptr
16:38:08 <Vorpal> elliott, well since it is C++ it obviously is in a low level language
16:38:58 <Vorpal> elliott, but we have real time requirements, which back when the system was initially created meant something like C or C++. The release binary size is just around 10MB iirc.
16:39:20 <AnotherTest> Vorpal: using C++ doesn't mean you have to use it low-level as in constantly using naked pointers and void*
16:39:23 <elliott> sounds like it doesn't have to be 2m loc
16:39:30 <elliott> AnotherTest: it sounds like you have never used C
16:39:39 <elliott> you can do data abstraction without using (void *) in C just fine
16:39:56 <elliott> the standard FILE type is abstract and you never need to use (void *)
16:40:05 <elliott> so stop talking about (void *) because it's a complete strawman
16:40:26 <AnotherTest> elliott: 1) he suggested using void* 2) no need to write C code in C++
16:41:38 <AnotherTest> anyway Vorpal, if this is an embedded system, I'm not sure if you will find any lightweight webserver that can be easily embedded
16:41:58 <elliott> (1) fine, i didn't read the entire thing. (2) what
16:42:22 <AnotherTest> also "elliott: you can even do oop", not true at all, whatever you say
16:42:41 <elliott> it involves some noise in C
16:42:47 <elliott> often it is worth it though
16:42:56 <elliott> of course the noise gets bigger and bigger if you try and do it exactly like C++
16:43:02 <AnotherTest> You cannot do true OOP without inheritance, encapsulation and polymorphism
16:43:05 <elliott> but that's unreasonable and not what "OOP" means at all
16:43:14 <elliott> haha if you think OOP requires inheritance...
16:43:20 <elliott> of course you can do inheritance in C, I've done it!!
16:43:25 <coppro> lol people who think they know what oop means
16:43:28 <elliott> but it sounds like you have no idea about what OOP means outside of C++_
16:43:36 <elliott> so how about stop telling people who do know
16:44:03 <AnotherTest> elliott: like in C? a language that doesn't even claim to support the OO-paradigm
16:44:21 <elliott> it is literally irrelevant whether a language "claims to support a paradigm"
16:44:29 <elliott> what matters is whether you can do it or not and whether it brings benefits
16:44:34 <Vorpal> <elliott> sounds like it doesn't have to be 2m loc <-- probably. Especially if it wasn't C++
16:44:37 <coppro> you can code any paradigm in any language, really
16:44:37 <elliott> sometimes, in C, an object-oriented approach does
16:44:46 <elliott> sometimes it's too awkward to use a certain paradigm in a certain langauge
16:45:00 <elliott> it's awkward in some ways but any C family language is pretty awkward at lots of things
16:45:15 <AnotherTest> elliott: It is not directly supported by the C language, so it's probably not a great idea to ignore that fact and do it anyway
16:45:17 <Taneb> Screw that, I'm gonna try to write a functional program in brainfuck
16:45:26 <Vorpal> <AnotherTest> anyway Vorpal, if this is an embedded system, I'm not sure if you will find any lightweight webserver that can be easily embedded <-- hm? That was for a separate thing from work embedded.
16:45:41 <elliott> you clearly have no idea whether it's a good idea or not
16:45:44 <elliott> because you've clearly never done it
16:46:00 <elliott> and also if you really constrict your thinking to exactly what the language designers advertised the language as being then woow like what the fuck
16:46:00 <AnotherTest> Because if I want to write OO code, I use an OOP.
16:46:06 <elliott> object oriented programming isn't some magic feature you have to support in the language
16:46:21 <elliott> C predates the naming of these techniques as "OOP" so no shit it doesn't "claim to support them"
16:46:24 <AnotherTest> Yes, but you generally want those techniques to be supported
16:46:33 <elliott> if you really want an introduction see like http://www.yosefk.com/blog/oo-c-is-passable.html or whatever god I don't care
16:46:48 <elliott> when you have no idea what you're talking about
16:46:50 <Vorpal> one of the main causes to the problems of C++ is that while it had some decent ideas, it decided to add them on top of C. Not such a good idea IMO
16:46:54 <shachaf> elliott: why do you hate OOPs
16:47:09 <AnotherTest> elliott: seriously, an OOP was referring to an OO programming language
16:48:12 <Taneb> elliott, do you hate other O*Ps?
16:48:18 <AnotherTest> but yeah, making typos is definitely something that can never and should never hppen
16:49:31 -!- Arc_Koen has joined.
16:50:10 <AnotherTest> elliott: Also, it's not like that blog you linked me to provides the universal truth, everyone can write whatever shit they want on the internet
16:50:22 <elliott> you're demonstrating that very well right now
16:51:05 <elliott> heaven forbid i link you to the blog of someone fairly well-known who actually works on large C and embedded systems to help you educate yourself though
16:51:22 <AnotherTest> Well, who knows, maybe I am; but there is no way you can say that you are not
16:51:32 <ais523> I haven't been looking at this discusison, has it gone downhill?
16:51:44 <elliott> he also wrote a criticism of C++ that you have maybe heard of http://yosefk.com/c++fqa/, not exactly the most objective thing ever but certainly it has several good points
16:51:49 <elliott> ais523: it started downhill and dug underground
16:52:08 <elliott> i actually don't like C btw
16:52:15 <elliott> it's just you keep saying bullshit and passing it off as obvious truth
16:52:21 <elliott> when it is blatantly false
16:52:24 <elliott> so you should really stop doing that please
16:52:30 <ais523> I like C for when you're trying to do C's job
16:52:36 <ais523> it is quite rare that you have to do C's job, though
16:52:53 <ais523> I am not convinced that C++ is optimal for anything
16:53:07 <AnotherTest> elliott: sure it has some good critics, but it also has things that are simply not true
16:53:29 <AnotherTest> any tool has flaws, but that doesn't mean it's entirely bad
16:54:17 <Taneb> This thing: better than some other things, and hence good
16:54:57 <elliott> have you actually read it? you didn't seem to have any idea who wrote what I linked and it has only been like two minutes since I linked the C++ FQA
16:55:06 <elliott> which I disagree with on numerous accounts but you can hardly claim he does not know his way around C++ and C thoroughly
16:55:07 <Vorpal> ais523, I pretty much agree with that. C++ does add some neat stuff, like virtual methods. Yeah, very neat. And namespaces. Quite useful for a large project. Maybe a few other things that I didn't think of.
16:55:27 <ais523> actually, I think my opinion is: C++ is only optimal for compatibility with other C++; and C is still optimal for C-like things, has been for years, and it's a huge shame that it has no serious competitors
16:55:53 <Vorpal> hm, what language is Rust?
16:56:01 <coppro> it's the New Cool Thing
16:56:10 <coppro> C++ is never optimal for anything
16:56:21 <coppro> but it's good enough for everything
16:56:26 <ais523> Vorpal: it's Mozilla trying to make a better language for systems programming
16:56:39 <ais523> it's mostly comparable to C in terms of features, but a lot safer
16:57:01 <ais523> like, unless you explicitly use unsafe pointers, there's no way to write a memory leak or use-after-free
16:57:12 <elliott> I hope rust manages to get out of the experimental-undocumented-language-without-libraries phase
16:57:19 <elliott> well, at least, they have more documentation than most languages like that right now
16:57:24 <ais523> (it gives you scoped, unique, and garbage-collected pointers, which will be useful in most cases)
16:57:26 <Vorpal> ais523, how easy is it to interface with existing C code and such though?
16:57:36 <ais523> Vorpal: it's a design goal to have an easy FFI for C
16:57:43 <ais523> the unsafe pointers exist specifically for that, I think
16:57:59 <Vorpal> ais523, okay... so what about when you are writing your GC in Rust?
16:58:15 <ais523> you don't, the standard library has the GC
16:58:25 <Vorpal> ais523, assume I'm using Rust to write a kernel for the moment
16:58:25 <ais523> but doesn't use it unless you use GCed pointers
16:58:42 <ais523> they're still a little unclear on what sort of GC it is, the language is still in quite early stages
16:59:05 <elliott> Vorpal: you're not going to be able to get away without writing a runtime system for any even vaguely modern systems language, really
16:59:07 <Vorpal> I would need some inline asm probably, and support for doing manual memory management (don't want to GC that DMA area now do I?) and so on.
16:59:09 <elliott> systems language =/= kernel language
16:59:14 <elliott> systems language = *systems language*
16:59:29 <Vorpal> elliott, so what good alternatives are there to C (with some asm) for kernels?
16:59:30 <elliott> not to say a systems language is necessarily a bad fit for writing a kernel
16:59:34 <elliott> but hey you need to write asm to boot a C kernel too
16:59:44 <Vorpal> indeed, I said C with some asm
16:59:58 <elliott> Vorpal: I don't think there are any
17:00:03 <elliott> but I'm not saying Rust would be a bad cohice
17:00:11 <elliott> just it'd require more asm/C/whatever boilerplate
17:00:16 <Vorpal> elliott, anyway I could think of a way to skip asm for booting. Would require the hardware to setup a nice initial state though
17:00:26 <elliott> people write more systems-language stuff than kernels though
17:00:41 <elliott> far more high-performance network servers etc. in the world than kernels
17:01:15 <elliott> <Vorpal> elliott, so what good alternatives are there to C (with some asm) for kernels?
17:01:56 <Vorpal> have any of you looked at the RPI boot sequence btw? It is weird: The GPU on the SoC loads code from a ROM that reads a file from the first partition of the sdcard, which sets up the RAM (previously only L2 cache was available), and loads the kernel. Then it starts the ARM core.
17:02:46 <Vorpal> (well it is a bit more complex, iirc there are two boot loaders, where the second one can read ELF and such, but won't fit into L2)
17:02:58 <Vorpal> pretty crazy design anyway
17:03:01 <elliott> Vorpal: btw I actually did start to half-design a language suitable for kernel programming in my head once
17:03:14 <elliott> unfortunately I'm not smart enough to figure out the type system or the memory management
17:03:25 <elliott> but you should totally use that if it ever starts existing
17:03:34 <Vorpal> elliott, what is the issue with memory management there?
17:03:44 <kmc> https://www.youtube.com/watch?v=_iSzgi2VhDw
17:03:49 <elliott> well it was going to have a linear type system (like ais523's hardware language!!!)
17:03:52 <elliott> (okay his is affine w/e w/e w/e)
17:04:15 <Vorpal> you basically need to have a couple of types of memory management, don't you? Manual, and GC, possibly you want some refcounted as well for some stuff
17:04:16 <elliott> and use that to give predictable resource management that wouldn't require a GC
17:04:27 <Vorpal> you do need some manual stuff, for low level
17:04:36 <elliott> i was also going to have explicit representation of closures as existential types
17:04:38 <ais523> elliott: haha, I was going to correct you with "actually affine" :)
17:04:48 <elliott> which lets you separate the code-function-pointer part of a closure from the data it bundles with it
17:04:55 <Vorpal> ais523, what is an affine type system?
17:05:03 <elliott> sort of like you can do in C by defining a closure type with a function taking the closure data and the data to go with it
17:05:18 <ais523> Vorpal: a type system where you can only use the argument to a function at most once in the function's body
17:05:30 <ais523> if you want to use it more than that, you have to call a duplicating function explicitly to copy the argument
17:05:39 <elliott> anyway it was closer to ML or Haskell or ATS (an interesting systems programming language) or whatever than C
17:05:47 <elliott> but the idea was to have it be comparable to C or C++ in terms of "runtime overhead"
17:05:48 <ais523> I guess Underload's technically affine, you need to use : to copy data
17:06:03 <elliott> with something sort of like C++'s "opt-in" abstraction penalties
17:06:11 <ais523> Vorpal: it helps loads to have copying explicit when you're reasoning about things that might be awkward to copy
17:06:18 <ais523> like, say, physical hardware circuits
17:06:18 <Vorpal> ais523, so if I want to do square(int i), it would need return dup(i)*dup(i)?
17:06:28 <elliott> but i was very adamant about keeping lambda syntax, higher-order functions, first-class modeling of effects etc.
17:06:41 <ais523> it'd be defined as let square = \i.dup (*)
17:06:56 <elliott> compile-time bounds checking...
17:07:00 <Vorpal> ais523, that looks forthish
17:07:01 <ais523> or square = \i.dup (\i1.\i2.i1*i2) i
17:07:23 <ais523> actually in Verity the dups are inferred, not explicit
17:07:25 <elliott> ais523: dup is join for the reader monad :)
17:07:28 <Vorpal> ais523, anyway wouldn't dup already consume the argument? So now you had i', but since i was already used by dup?
17:07:37 <elliott> Vorpal: dup gives you two copies of the argument
17:07:41 <elliott> so you can use those two copies once
17:07:41 <ais523> Vorpal: yeah, dup consumes the argument, but it gives you two copies back
17:07:56 <elliott> anyway yeah you don't actually have to write code this way, the compiler can figure it out for you
17:07:57 <ais523> it's also by far the hardest part of the standard library to implement
17:08:10 <ais523> I think I'm a leader in the field of automatically inferring where to put the dups
17:08:16 <elliott> my language would have an advantage over ais523 in terms of how lenient the thing it's targetting would be :)
17:08:35 -!- DHeadshot has quit (Read error: Connection reset by peer).
17:08:47 <Vorpal> ais523, hm what were you targeting then?
17:08:52 <ais523> elliott: yeah, for my applications, it has to be strict for a reason :)
17:09:04 <ais523> Vorpal: hardware; the intermediate hdl hardly matters
17:09:09 <ais523> we're actually using a mix of VHDL and Verilog
17:09:23 * elliott has internalised the meanings of "affine" and "relevant" thanks to edwardk
17:09:36 <Vorpal> ais523, I don't know verilog, but vhdl at least I'm pretty sure doesn't require you to duplicate signals all that much?
17:09:54 <Vorpal> elliott, affine as in affine transformations? Or affine in the sense that we are using it now?
17:09:57 <ais523> Vorpal: you're missing the point
17:10:05 <ais523> you can't give two sets of inputs to a circuit simultaneously
17:10:09 <ais523> and expect it to be able to parse them
17:10:36 <ais523> previous research attacked the "two"
17:10:46 <ais523> we're currently working on the "simultaneously", hope to get that paper out in the next couple of weeks
17:10:52 -!- DHeadshot has joined.
17:10:57 <elliott> Vorpal: affine as in the same sense that is used in linear logic
17:11:11 <elliott> but the meaning is closely related in "affine transformation", I think
17:11:36 <elliott> linear: one; affine: zero or one; relevant: one or more
17:11:43 <elliott> for languages: "uses of your argument"
17:11:57 <Vorpal> ais523, couldn't you solve the issue of two sets of input by inlining the function into the parent function, thus creating separate copies of the circuitry? Or am I completely missing your point here?
17:12:12 <elliott> there, it's "parts of a traversal"
17:12:30 <elliott> a linear traversal has one part always, so it's a lens
17:12:36 <Vorpal> ais523, like: both x and y calls foo, if x and y can run at the same time, you need separate copies of foo
17:12:39 <elliott> an affine traversal has zero or one parts, so it's a lens that can fail, a partial lens
17:12:40 <ais523> Vorpal: sure, but inlining everything tends to lead to exponential blowup
17:12:43 <ais523> you have stated the problem quite neatly
17:12:48 <elliott> a relevant traversal has one or more parts, so you know it's non-empty
17:12:52 <ais523> stating the solution is not so trivial
17:13:14 <Vorpal> ais523, but if those two foo are actually used at the same time, don't you always end up needing separate copies?
17:13:25 <ais523> but they aren't always actually used at the same time
17:13:45 <Vorpal> so you are trying to tackle the problem of detecting if they are used at the same time or not?
17:14:19 <Vorpal> elliott, what do you mean with lens here? Not the optical kind I presume?
17:14:56 <Taneb> The Haskell kind, presumably
17:15:06 <elliott> Vorpal: http://lens.github.com/, http://hackage.haskell.org/package/lens
17:16:23 * Vorpal tries to find somewhere on those links that describes what a lens actually *is*.
17:16:48 <ais523> Vorpal: no, just of duplicating the bits that need to be duplicated
17:17:03 <elliott> Vorpal: it's a store comonad coalgebra!
17:17:11 <ais523> quick, \x.(x||x);((x;x)||(x;x)), how many copies of x do you need and which go where?
17:17:14 <elliott> Vorpal: you can watch edwardk's two-hour video
17:17:14 <Taneb> Vorpal, first class accessors
17:17:54 <ais523> Vorpal: doesn't look so trivial any more when you give examples like that
17:18:06 <Vorpal> Taneb, hm, thanks. That makes some vague sense. I really only used the basics of haskell. I have very little knowledge of all the libraries that exist.
17:18:24 <Taneb> Vorpal, then they made them ridiculous
17:18:38 <elliott> Vorpal: basically haskell's record system sucks
17:18:48 <elliott> you can imagine defining the idea of a "first-class field"
17:18:59 <elliott> data Field whole part = (whole -> part, whole -> part -> whole)
17:19:01 <AnotherTest> elliott: "No, because C++ classes don't support aggregate initialization. "(from your link); actually that's not true. Initialization lists do just this
17:19:02 <Taneb> > preview _left (Left 10)
17:19:11 <Vorpal> elliott, but the syntax for it looks annoying indeed
17:19:11 <Taneb> > preview _left (Right 10)
17:19:12 <elliott> firstTupleElement = (\(a,b) -> a, \(a,b) a' -> (a',b))
17:19:28 <elliott> and with a better representation and lots of nice operators and stuff
17:19:37 <elliott> and it turns out lenslikes have wide applications beyond just field accessors
17:21:02 <Taneb> > [Left 1, Right 'a', Left 6] & traverse . _left *~ 2
17:21:38 <Taneb> > [Left 1, Right 'a', Left 6] ^.. left
17:21:39 <lambdabot> Couldn't match expected type `[Data.Either.Either
17:21:47 <Taneb> > [Left 1, Right 'a', Left 6] ^.. _left
17:21:49 <lambdabot> Couldn't match expected type `[Data.Either.Either
17:21:50 <elliott> > [Left 1, Right 'a', Left 6] ^.. traverse . _left
17:22:04 <Taneb> elliott is better at lens than I am
17:22:15 <Taneb> To be fair, elliott is better at most things than I am
17:22:23 <lambdabot> (Functor (k (a -> f b)), Applicative f, Traversable t, Prismatic k) => k (a -> f b) (t (Either a c) -> f (t (Either b c)))
17:22:30 <Taneb> Except maybe genealogy and socialising and cosplay?
17:22:33 <elliott> Deewiant: it has a nicer type in 3.8 :p
17:22:46 <Vorpal> really the issue for a "causal" haskell user, is that there is SO MUCH STUFF.
17:23:05 <elliott> Deewiant: 3.8, *after* Prismatic
17:23:19 <elliott> :: (Control.Applicative.Applicative f, Traversable t) =>
17:23:19 <elliott> (a -> f b) -> t (Either a c) -> f (t (Either b c))
17:23:25 <elliott> now it just degrades to a regular old traversal
17:23:36 <Taneb> Dammit, I was halfway through typing that out
17:23:43 <elliott> traverse._left :: Traversable t => Traversal (t (Either a c)) (t (Either b c)) a b
17:24:03 <elliott> (_left itself looks like (Applicative f, Prismatic p) => p a (f b) -> p (Either a c) (f (Either b c)))
17:24:18 <elliott> we moved the overloading inwards
17:26:16 <AnotherTest> elliott: I'm not going to continue to read this "C++FQA", because the critics in their apply to both C and C++, and because many of things in there are exaggerated, or not entirely true. It's really just annoying to read and doesn't provide anything I have not heard before. I really don't see why someone would waste his time doing that.
17:26:33 <elliott> i literally don't care one bit whether you read it or not
17:28:36 <elliott> this is completely ridiculous
17:29:30 <AnotherTest> elliott: no need to be an arrogant ass that doesn't care about anyone or something like that
17:30:31 <kmc> "NEXT THURSDAY: Trent infiltrates the Swedish virtual pedicab-racing scene to take down a crew of restaurant terrorists"
17:33:43 <elliott> kmc: "job description: restaurant terrorist"
17:34:29 <olsner> job description: virtual pedicab-racer
18:03:38 -!- atrapado has joined.
18:05:47 <c00kiemon5ter> heh, this was nice :D http://www.youtube.com/watch?v=3RBSkq-_St8
18:14:36 -!- fungot has joined.
18:25:53 <Vorpal> kmc, what is the context of that? Is there any?
18:54:46 -!- TeruFSX has quit (Ping timeout: 252 seconds).
18:55:30 -!- TeruFSX has joined.
19:00:30 -!- Bike has joined.
19:01:46 <kmc> it's from NTSF:SD:SUV::
19:07:30 -!- Bike has quit (Ping timeout: 255 seconds).
19:12:05 -!- Bike has joined.
19:14:57 -!- ais523 has quit.
19:22:10 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232]).
19:24:28 -!- sebbu has quit (Ping timeout: 252 seconds).
19:29:02 <Vorpal> hagb4rd, that makes very little sense
19:30:17 <coppro> @tell ais523 hard copy grammar book acquired. proceeding to learn English again
19:30:42 <hagb4rd> let's just start over again
19:30:45 -!- hagb4rd has left.
19:30:50 -!- hagb4rd has joined.
19:34:02 -!- Taneb has quit (Remote host closed the connection).
19:34:51 -!- sebbu has joined.
19:34:51 -!- sebbu has quit (Changing host).
19:34:52 -!- sebbu has joined.
19:35:14 -!- impomatic has quit (Quit: http://ukcaves.com).
19:35:19 <hagb4rd> @squeak gregor have you managed to fix the service interface already?
19:39:24 -!- HackEgo has joined.
19:44:49 -!- oerjan has joined.
19:45:44 -!- sebbu2 has joined.
19:46:53 -!- sebbu has quit (Ping timeout: 255 seconds).
19:47:00 -!- sebbu2 has changed nick to sebbu.
19:49:17 <oerjan> <GreyKnight> "The biggest problem in communication is assuming it has taken place" :-D
19:49:48 <oerjan> the second biggest is people not being around when you want to comment on them.
19:50:31 <oerjan> i shall assume GreyKnight will read this.
19:50:36 <hagb4rd> but i'm afraid of this empty space thing i did not understand
19:51:34 -!- Nisstyre has joined.
19:51:49 <oerjan> space, so vast and incomprehensible.
19:53:38 <oerjan> two spaces between quoted lines. only one space on each side of [...] ellipses. no space between nicks and the surrounding <>'s.
19:55:22 <oerjan> this does not apply recursively within the quoted lines themselves, they should be literal as far as possible.
19:55:47 <oerjan> (you may use [...] to elide things there too.)
19:56:20 <HackEgo> 288) <Sgeo_> I think she either likes me, is neutral towards me, or dislikes me
19:56:43 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he sh
19:57:13 <oerjan> those are all wrong of course
19:57:23 <oerjan> since they are older than the quoting standard
19:57:49 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he sh
19:57:58 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he sh
19:58:17 <oerjan> why the _heck_ does that catch 1, i'm trying to exclude it
19:58:25 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he sh
19:58:42 <oerjan> the grepping happens after the line numbers are added, of course
19:59:07 <HackEgo> 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 5) <Quas_NaArt> His body should be given to science. <GKennethR> He's alive :P <GreenReaper> Even so. \ 6) <oer
19:59:23 <oerjan> `run quote "[^)] <" | tail
19:59:25 <HackEgo> 871) < zzo38> What is portable way of load/save floating points in files, using a C code? < kmc> #ifndef __STDC_IEC_559__ #error Here's a nickel, kid. Buy a real computer. #endif \ 874) <pikhq> Conext coyou'll cotell come cothat coyou cocan't coprefix coeverything cowith co"co". <oerjan> pikhq: coof urse conot! \ 878) <zzo38> The winter solstic
19:59:47 <Bike> the horror, the horror!
19:59:54 <oerjan> i was trying to look at the last ones since they are generally better D:
20:00:30 <HackEgo> 900) <GreyKnight> This might be the lack of sleep talking, but coproduct injections are pretty funny
20:02:39 <oerjan> `run sed -i '871s/\( *\)< /\1\1</g' quotes
20:02:48 <HackEgo> 871) <zzo38> What is portable way of load/save floating points in files, using a C code? <kmc> #ifndef __STDC_IEC_559__ #error Here's a nickel, kid. Buy a real computer. #endif
20:05:24 <oerjan> sadly the no-recursion exemption means you cannot make a substitution that fixes the whole database automatically
20:05:51 -!- zzo38 has joined.
20:08:04 -!- AnotherTest has quit (Quit: Leaving.).
20:19:12 -!- impomatic has joined.
20:20:26 -!- Phantom_Hoover has joined.
20:23:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes
20:24:55 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork"
20:24:58 <Phantom_Hoover> oh christ i've been 18 for less than a day and already i'm turning into a Wine Person
20:25:19 <tswett> So, the quotes are still renumbered every time one is deleted, right?
20:26:46 <HackEgo> 11) <Warrigal> "You're at that stage in your life where you're going to want to do some things in private." --my mom
20:27:21 <HackEgo> *poof* <Warrigal> "You're at that stage in your life where you're going to want to do some things in private." --my mom
20:27:51 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
20:28:03 <shachaf> tswett....................
20:28:44 <oerjan> i would like to point out that i am currently editing the entire quote database by hand, and if you start an edit war now i'm going to completely ignore it
20:29:22 <HackEgo> 6) <oerjan> what, you mean that wasn't your real name? <Warrigal> Gosh, I guess it is. I never realized that. \ 15) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! \ 18) <oerjan> In an alternate universe, ehird
20:30:04 <hagb4rd> Phantom_Hoover: because it's messed up
20:30:13 <HackEgo> 1) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 2) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 4) <Warrigal> GKennethR: he sh
20:30:26 <shachaf> `run echo 'allquotes | grep oerjan | shuf' > bin/quoerjan
20:30:28 <hagb4rd> and because he's a good boy
20:30:31 <HackEgo> 230) <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck \ 371) <oerjan> i never meta turing. he died before i was born. \ 15) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me g
20:31:02 <HackEgo> 376) <oerjan> as i was filled with zzo38 mystery at the moment i saw <zzo38> quintopia: I am at Canada. \ 657) <itidus20> if only alonzo church would have anticipated the computer terminal... <zzo38> itidus20: What do you think it would be if he did so? <itidus20> i just plucked his name at random [...] <oerjan> if only the marquis de sade would
20:31:26 <HackEgo> 684) <fizzie> oerjan: Hey, what's your country code for telephonistic dialling from the outside world? <oerjan> fizzie: +47 <fizzie> oerjan: Ooh, you're, like, right next to Sweden there. <fizzie> I... guess you are geographically, too. \ 145) <oerjan> it's not obvious from quantum mechanics that you can destroy a universe arbitrarily. \ 375) <
20:32:14 <hagb4rd> please don't just delete quotes that don't miss context
20:32:43 <elliott> `run hg diff -c 895 | patch -R
20:35:56 -!- carado has quit (Ping timeout: 246 seconds).
20:36:13 <coppro> @tell ais523 Can you point me to use cases of ?{} and %%s in actual code?
20:36:13 <tswett> ababc dbc de, dbabc dbc de, de
20:38:09 <zzo38> "According to Nick Herbert, a PhD from Stanford University, if quantum physics is a realistic explanation for the universe, then telepathy is possible." Is this like saying how Einsteinian relativity can permit time travel because some of its solutions permit it?
20:38:09 <lambdabot> zzo38: You have 2 new messages. '/msg lambdabot @messages' to read them.
20:38:12 <lambdabot> oerjan said 23h 42m 38s ago: http://en.wikipedia.org/wiki/Principal_homogeneous_space seems to include your concept if you use the integers as the group
20:38:12 <lambdabot> oklopol said 23h 41m 48s ago: crazy talk
20:43:58 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
20:44:21 <hagb4rd> zzo38: i guess the known laws of quantum physics just don't exclude the possibility of 'telepathy'.. but they do not proove them in any way
20:45:18 <hagb4rd> however it's difficult enough to communicate using words
20:45:51 <oerjan> `fetch http://oerjan.nvg.org/quotes
20:45:58 <HackEgo> 2013-01-06 20:45:57 URL:http://oerjan.nvg.org/quotes [108182/108182] -> "quotes.1" [1]
20:46:14 <oerjan> `run mv quotes.1 quotes # Fix general formatting
20:46:58 <HackEgo> 1) <Aftran> I used computational linguistics to kill her.
20:48:44 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes
20:51:06 <zzo38> hagb4rd: Well, yes, I know, they do not prove them in any way.
20:52:12 <zzo38> But do you know how some people have figured out how relativity to permit time travel possibly?
20:52:24 <zzo38> I read that in another book.
20:53:51 <hagb4rd> well there was a young lady named bright. whose was much faster than light. she departed one day, in a relative way. and returned on the previous night ;)
20:54:39 <Arc_Koen> oh you were actually talking about time travel
20:55:01 <Arc_Koen> hagb4rd: how can a speed be faster than light
20:55:06 -!- carado has joined.
20:55:32 <Arc_Koen> it's like saying icecream is hungrier than me!
20:55:38 <hagb4rd> well we can slow down light to the speed of a bike.. but i guess that wouldn't help
20:56:02 <oerjan> `fetch http://oerjan.nvg.org/quotes
20:56:06 <HackEgo> 2013-01-06 20:56:04 URL:http://oerjan.nvg.org/quotes [108153/108153] -> "quotes.1" [1]
20:56:28 <oerjan> `run mv quotes.1 quotes # Some more formatting errors
20:56:45 <Arc_Koen> hmmm well if I remember well the first time we encounter the team rocket in pokemon version yellow they said "Time rocket... fleeing as fast as light!" or something and the last time you beat them they say "Team rocket... fleeing as fast as a big bike!" or something
20:58:16 <hagb4rd> well time travel is not very much my discipline.. you should talk to zzo38 who's reading a book about it now
21:01:15 <zzo38> I didn't say I am reading a book about it now. I said I read books in the past, some of which include some stuff about such things.
21:01:55 <hagb4rd> yes.. exactly. sorry zzo38.
21:03:05 <oerjan> a _true_ expert would have read them in the future.
21:03:23 <kmc> `run gccrun 'printf("hello world\n");'
21:03:24 <HackEgo> bash: gccrun: command not found
21:04:10 <elliott> !c printf("hello world\n");
21:06:00 -!- lifthrasiir has quit (Ping timeout: 265 seconds).
21:08:11 -!- epicmonkey has quit (Ping timeout: 272 seconds).
21:09:18 <fizzie> But what about the unification!
21:09:24 <fizzie> `interp c printf("hello world\n");
21:09:42 <HackEgo> Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: fork: retry: Resource temporarily unavailable \ ./interps/gcccomp/gcccomp: for
21:11:16 -!- md_5 has joined.
21:11:51 <md_5> anyone know of any Glass interpreters other than the reference C one?
21:12:27 <SirCmpwn> md_5: if you're just looking for esoteric oop languages, try java
21:12:38 <fizzie> I have an unpublished half-finished one. (Or maybe it was a compiler.) ((That's not very helpful.))
21:13:18 <md_5> thanks SirCmpwn , although I was kindof going for esolang-ception
21:13:26 <md_5> where the glass interpreter was java :P
21:13:35 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:13:56 <SirCmpwn> there are brainfuck interpreters in brainfuck, right?
21:14:02 <SirCmpwn> maybe I should include one in my IRC bot
21:14:31 -!- lifthrasiir has joined.
21:15:41 -!- Phantom_Hoover has joined.
21:15:47 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
21:15:48 <fizzie> There are, yes; there's six listed in http://esolangs.org/wiki/brainfuck#Self-interpreters
21:15:54 -!- Phantom__Hoover has joined.
21:16:20 <Bike> make it an optimizing compiler. gotta have speed
21:16:29 <fizzie> That's probably awib, then?
21:16:48 <fizzie> (awib is also written in brainfuck.)
21:17:13 <md_5> http://www.hevanet.com/cristofd/dbfi.b
21:17:16 <fizzie> Admittedly it only targets like x83-32-Linux, C, Ruby, Go and Tcl, so it's pretty limited.
21:17:18 <md_5> thats probably the smallest one
21:18:15 <SirCmpwn> they don't use straight-up brainfuck
21:20:06 <SirCmpwn> it means you can put their source into a standard brainfuck interpreter and it won't work
21:20:22 <Arc_Koen> it means they have brainforeplay
21:20:50 <SirCmpwn> that would be an outstanding name for a brainfuck preprocessor
21:20:52 <elliott> SirCmpwn: Pretty sure it does?
21:20:58 <elliott> are you sure you were using a compliant interpreter?
21:21:19 <fizzie> I was under the impression that it does run just fine under a (suitable) bf interpreter.
21:21:27 <elliott> SirCmpwn: I see nothing amiss skimming over http://awib.googlecode.com/svn/builds/awib-0.3.b
21:21:41 <elliott> (well, except the gratuitous ASCII art)
21:22:11 <SirCmpwn> https://code.google.com/p/awib/source/browse/trunk/awib-skeleton.b
21:22:40 <elliott> Just looks like #includes to me.
21:22:56 * elliott doesn't think that really counts as cheating.
21:23:06 <SirCmpwn> % where b = (bytecode OK ? 1 : 0) and Mm = maximum loop depth
21:23:15 <elliott> I'm pretty sure that is a comment.
21:23:15 <SirCmpwn> this looks like considerably more than just a comment of some sort
21:23:20 <elliott> % 20(0) T *0 b (code) 0 M m
21:23:20 <elliott> % where b = (bytecode OK ? 1 : 0) and Mm = maximum loop depth
21:23:25 <elliott> It's showing what the tape is at that point.
21:23:30 <elliott> And what b and Mm represent.
21:23:46 <elliott> https://code.google.com/p/awib/source/browse/trunk/util/bfpp.py
21:24:10 <SirCmpwn> alright, not entirely cheating, then
21:32:14 <oerjan> comments are _so_ cheating
21:32:52 <fizzie> What was the bot that used one of the EsoInterpreters to do something?
21:33:43 <fizzie> That sounds very possible.
21:34:47 <fizzie> With uload.b, I guess.
21:35:15 <fizzie> I think I also tried it out with fungot, and it could run (x)S but nothing much more complicated than that, due to the resource limits.
21:35:52 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell
21:35:54 <zzo38> Would you like to play Arimaa with flat pieces with roman numbers I to VI on it?
21:35:57 <fungot> >,[>,]<[<]>[<+4[>-8<-]+>-[-7[-2[<+3[>-4<-]+>[<+4[>-5<-]+>[-11[-3[[-]<2[>[-]>+<2-]>>[<2+>>-]+<[->-<3[[>+<-]<]>>[>]]>[->[>]<[[>+<-]<]<2[[>+<-]<]<[[>+<-]<]>>[>]>[[[>]>+<2[<]>-]<2[[>+<-]<]>>[>]>[>]>[<2[<]<[<]<+>>[>]>[>]>-]<2[<]>]>>[[<+>-]>]<2[<]]]<[->>[>]<[[>>+<2-]<]<2[[>+<-]<]>+>[>]+5[>+8<-]+2>-[<+[<]>+[>]<-]]>]<[->>[[<2+>>-]>]<3[[>+<-]<]]>]<[-<[[<]>.[-]>[[<+>-]>]>>[[<+>-]>]<2[<]<2]>>>[[<+>-]>]<2[<]<]>]<[->>[>]<[[>+<-]<]<2[>>>>[>]
21:37:14 -!- lifthrasiir has quit (Read error: Operation timed out).
21:37:26 <zzo38> Also, it could be played on intersections, with the trap squares marked with stars.
21:38:45 <SirCmpwn> even when the expected behavior is to fail horribly, my bot fails to fail
21:39:26 <SirCmpwn> trying to direct program flow into the PING handler, which currently doesn't bother cleaning up, which in theory should just break everything when it gets a PING
21:39:39 <SirCmpwn> but nope, it just merrily continues executing like nothing went wrong
21:39:52 <SirCmpwn> I'd let him join, but the server won't ping me if it makes a peep
21:39:57 -!- lifthrasiir has joined.
21:41:05 <md_5> so anyway I was looking for a language I could use to script Java. It must have variables and functions with parameters.
21:41:29 <coppro> it sort of has those things
21:41:56 -!- Mr_Darcy has joined.
21:42:15 <SirCmpwn> md_5: APL if you hate yourself
21:42:31 <SirCmpwn> md_5: APL pretends not to be esoteric, though
21:42:46 <zzo38> What do you want to script Java, though? What are you trying to make?
21:43:22 -!- zzo38 has quit (Remote host closed the connection).
21:43:40 <hagb4rd> poor zzo38.. it's not his day
21:44:00 <Bike> hm, i wonder where one would get an APL compiler nowadays
21:44:10 -!- asiekierka has quit (Excess Flood).
21:44:17 -!- asiekierka has joined.
21:45:21 <oerjan> ^bf <+++++++++++++++++++++++++++++++++++++++++.
21:46:32 <md_5> befunge doesnt really have functions
21:47:06 <SirCmpwn> md_5: the fact that you want functions means you're in the wrong channel
21:47:20 <md_5> lots of languages have them
21:47:23 <md_5> just not with paramaters
21:47:40 <Bike> Just go back to basics. Straight-up lambda calculus.
21:47:45 <oerjan> SirCmpwn: NOT TRUE. we'll let him use unlambda just fine.
21:47:56 <Bike> Or lack of lambda calculus, that works too.
21:48:43 -!- impomatic has left.
21:48:43 -!- impomatic has quit (Quit: impomatic).
22:05:20 -!- atrapado has quit (Quit: Abandonando).
22:16:15 <SirCmpwn> of course the error I've spent 15 minutes looking for comes from a comma in a comment
22:17:17 <elliott> could have used a preprocessor!!
22:17:30 <SirCmpwn> then I wouldn't be able to claim it runs on vanilla brainfuck
22:18:10 <Bike> the brainfuck community would be simply apalled with you.
22:18:51 -!- Phantom__Hoover has quit (Read error: Operation timed out).
22:18:51 <SirCmpwn> there's a brainfuck community?
22:19:08 <Bike> that's the joke.
22:19:58 <Vorpal> <oerjan> ^bf <+++++++++++++++++++++++++++++++++++++++++. <-- shouldn't that terminate on the <?
22:20:19 <Vorpal> since it moves off the edge of the tape
22:20:24 -!- Mr_Darcy has left.
22:20:32 <Bike> ^bf +++++++++++++++++++++++++++++++++++++++++.
22:20:40 <SirCmpwn> most interpreters (including the reference one) underflow the pointer
22:20:58 <Vorpal> SirCmpwn, hm, how would that work on an infinite tape though
22:21:29 <SirCmpwn> with an infinite tape, it'd continue to negative infinity as well
22:21:30 <Vorpal> well, infinite in one direction: [0, +inf)
22:21:30 <oerjan> Vorpal: that was what i was checking, but fungot apparently is bidirectional
22:21:31 <fungot> oerjan: x&4 extracts one bit: the fnord. told it to join the jix club now with my own solution. ( of course not. i dare you to
22:22:11 <oerjan> simpler to implement, naturally, and befunge can give it an entire line to itself
22:22:40 <Vorpal> elliott, amusing that x&4 wasn't turned into fnord, it was apparently mentioned more than once...
22:25:27 <fizzie> oerjan: It's a loopy tape.
22:25:30 -!- Vorpal has quit (Read error: Operation timed out).
22:25:58 <fizzie> Wraps around on both edges, has I think a thousand cells or something like that.
22:26:07 -!- bfbot has joined.
22:26:19 <fizzie> (That's not an unheard-of implementation choice either.)
22:26:37 <Bike> bfbot, make me a sandwich, please.
22:27:05 <SirCmpwn> huh, channel messages are broke
22:27:10 <SirCmpwn> doesn't break execution, though
22:27:45 <fizzie> oerjan: (It's not a whole line because of memory usage concerns.)
22:28:48 -!- bfbot has quit (Read error: Connection reset by peer).
22:28:49 <oerjan> ...wouldn't bf command limits take care of that automatically anyhow :P
22:29:08 <SirCmpwn> goal: read until \n, output what's read
22:29:50 <fizzie> oerjan: For brainfuck, probably, since you can't waste that much memory in one cycle.
22:30:04 <oerjan> SirCmpwn: is the cell 0 before you start the loop? :P
22:31:25 <fizzie> ^bf -[>+],[.,]!wrapped around and terminated
22:31:25 <fungot> wrapped around and terminated
22:32:17 <SirCmpwn> I realized that, with very minor modification, my bot can work on two bytes of memory
22:32:47 <Bike> how do you store "PRIVMSG" in two bytes?
22:32:50 -!- TeruFSX has quit (Ping timeout: 246 seconds).
22:33:20 <SirCmpwn> read a byte, "is it P", continue
22:33:25 <SirCmpwn> read a byte, "is it R", continue
22:33:45 <SirCmpwn> oerjan: works, thanks! http://i.imgur.com/tcmVu.png
22:34:00 -!- Phantom__Hoover has joined.
22:34:22 <SirCmpwn> I'd like to know where my <> mismatch is, though
22:35:15 <oerjan> hm matching <'s and >'s may not be a common editor feature :P
22:35:35 <SirCmpwn> I'm talking about the memory pointer being in the 65000 range
22:37:19 <oerjan> well are you using "balanced" [] loops, such that every loop is always supposed to be exited in the same cell as it's entered? if so checking it is essentially a bracket matching problem.
22:37:44 <SirCmpwn> my "if" statements work differently
22:37:49 <oerjan> (there are bf idioms which don't use that, but if you are only using 2 cells you're unlikely to be using them)
22:38:10 <SirCmpwn> my two cells are general working and stdin
22:38:19 -!- monqy has joined.
22:38:31 <SirCmpwn> read a value -> subtract expected -> set working to 1
22:38:42 <SirCmpwn> then, if zero, the "not expected" handler is run and sets working to zero
22:38:54 <SirCmpwn> then the "expected" handler is skipped because it uses working as the determining factor
22:39:36 <oerjan> don't you mean "if nonzero"
22:40:49 <oerjan> ok but none of that requires non-balanced loops.
22:52:44 <oerjan> ^bf ,[>>+<< [->>+<<[<+>->>-<<[->+<]]>[-<+>]<] <] >>>[->]<+<+<+<+<+<+<+<+[ ++++++++++++++++++++++++++++++++++++++++++++++ .>]!a
22:53:19 <oerjan> ^bf ,[>>+<< [->>+<<[<+>->>-<<[->+<]]>[-<+>]<] <] >>>[->]<+<+<+<+<+<+<+<+[ +++++++++++++++++++++++++++++++++++++++++++++++ .>]!a
22:53:23 <elliott> oerjan is the expert in low-cell BF
22:54:16 <oerjan> that's supposed to print in binary
22:54:50 <quintopia> ^bf ,[>>+<< [->>+<<[<+>->>-<<[->+<]]>[-<+>]<] <] >>>[->]<+<+<+<+<+<+<+<+[ +++++++++++++++++++++++++++++++++++++++++++++++ .>]!!
22:55:04 <quintopia> ^bf ,[>>+<< [->>+<<[<+>->>-<<[->+<]]>[-<+>]<] <] >>>[->]<+<+<+<+<+<+<+<+[ +++++++++++++++++++++++++++++++++++++++++++++++ .>]!
22:55:53 <oerjan> it's tweaked from my collatz function idea
22:57:29 -!- zzo38 has joined.
23:03:40 <zzo38> Hello. Any question?
23:08:30 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds).
23:09:38 -!- Phantom__Hoover has joined.
23:28:14 <SirCmpwn> I wrote the channel name into a buffer on channel messages
23:29:45 -!- Frooxius has joined.
23:45:17 -!- carado has quit (Ping timeout: 246 seconds).
23:48:52 <FreeFull> Well, I'm going to take the intersection of three ordered infinite lists
23:49:04 <FreeFull> And I'm wondering why according to google nobody else has done it
23:52:43 <elliott> you can just write the intersection of two...
23:53:06 <elliott> then since the intersection of two ordered lists is ordered, you can take the intersection of that list and another list
23:54:10 <shachaf> elliott: ok but what about the intersection of FOUR infinite lists
23:54:25 <FreeFull> I wasn't looking for three lists specifically, just lists
23:56:30 <SirCmpwn> ^bf >[-]<[-]++++++++++[>++++++++<-]>.
23:56:39 <FreeFull> I figure you can always just get rid of the smaller element
23:56:41 <SirCmpwn> ^bf >[-]<[-]++++++++++[>++++++++<-]>++.
23:56:51 <FreeFull> And if the elements are equal, you put that in the intersection list
23:57:22 <FreeFull> Of course that would only work for lists growing upwards
23:57:33 <elliott> You can tell whether it grows upwards or downwards easily.
23:57:47 <FreeFull> Yeah, but I'm too lazy to implement that =P
23:57:52 <Bike> isn't that intrinsic to the order...
23:59:33 <elliott> FreeFull: ...it's as simple as direction (a:b:_) = compare b a