00:00:02 <Vorpal> not the one I have IRC on
00:00:26 <Vorpal> fizzie, http://serverfault.com/questions/345111/iptables-target-to-route-packet-to-specific-interface
00:01:26 <Vorpal> hm what is MASQUERADE in iptables now again?
00:02:04 <fizzie> It's kind of like the comment there suggests; it's like SNAT, except it picks the source address to use from the address "owned" by the outgoing interface.
00:02:25 <fizzie> To make it easier to configure things when the address is dynamically assigned.
00:02:40 <Vorpal> fizzie, well my address is dynamic on the VPN side
00:03:15 <fizzie> Then "-j MASQUERADE" does sound easier than "-j SNAT --to-source $INSERT_VPN_ADDRESS_DYNAMICALLY_HERE". Though not terribly much so.
00:04:59 <fizzie> And the POSTROUTING fixup does indeed sound like it's a just-in-case rule; I *think* given the configuration in that answer, if you have the usual kind of app that doesn't bind to a specific local address, it should get the VPN source address selected automatically.
00:05:13 <Vorpal> a reflection: on a flexibility-usability scale, iptables is on the far end of flexibility.
00:05:36 <Vorpal> while stuff like pf, and ufw even more so is on the other end
00:08:03 <fizzie> Think I'll sleep now; night.
00:08:25 <Vorpal> fizzie, thanks for all the help
00:15:01 -!- GreyKnight has quit (Quit: .).
00:15:47 <Vorpal> oh god, I just realised I have to work around the existence of network-manager, since this is debian
00:16:32 <Vorpal> well I'll replace that with static routing for this computer I think
00:24:08 <quintopia> http://failcube.forumlaunch.net/viewtopic.php?f=20&t=98 why isn't this guy in our channel o.0
00:29:28 <nooga> my small lispalike interpreter keeps track of allocated pointers in a list
00:30:18 <nooga> i could easily implement simple mark&sweep GC
00:31:07 <Bike> why are you in doubt
00:31:10 <Vorpal> nooga, why not use a generational compacting GC?
00:31:13 <nooga> when it should run the GC
00:31:16 <Vorpal> it is what all the big boys do
00:31:35 <nooga> Vorpal: because 64kB, no way to implement concurrency
00:31:48 <Bike> just have it run the gc when an allocation puts you over 50% usage or something
00:32:54 <Vorpal> Bike, so if you have constant 75% usage you run an allocation every time?
00:33:24 <Vorpal> seems like a potential waste of time
00:33:24 <Bike> that's the time when you come up with a better solution, but until then who cares
00:33:30 <nooga> strings are the worst
00:33:56 <Bike> you could have it up the allocation threshhold each time, so it's 150% (something arbitrary) of what was left after the last gc
00:33:58 <nooga> parsing s-exps requires copying some tokens
00:34:28 <nooga> and then, probably, freeing most of them
00:34:44 <Vorpal> nooga, why do you have to copy them?
00:34:48 <nooga> except for symbol names
00:34:50 <Vorpal> why not copy on write when you have a GC
00:36:23 <Vorpal> nooga, or create the concept of a substring type: '(string start-idx stop-idx)
00:36:39 <Vorpal> then make all your string routines able to work on that
00:36:44 <nooga> well, when you tokenize (lambda (x) (+ x x)), you've probably got lambda in the symbol table
00:36:58 <Vorpal> nooga, true, where is the copy involved?
00:37:06 <nooga> you will also need x for some time
00:37:21 <nooga> to match against symbol table
00:37:24 <Vorpal> nooga, again, this could reference the input source string that you are parsing
00:37:43 <Vorpal> given a sub string type
00:38:12 <Vorpal> you need to copy when adding a new entry to the symbol table, since at that point you don't want to keep the entire input string around any more
00:38:36 <nooga> but what I did was
00:39:49 <nooga> tokenize&parse input and then check against symbol table during eval
00:40:41 <Vorpal> hm true, there are some good reasons to not keep the string around during eval
00:41:28 -!- WeThePeople has joined.
00:46:59 -!- Vorpal has quit (Ping timeout: 248 seconds).
00:50:34 -!- Frooxius has quit (Ping timeout: 240 seconds).
00:52:39 -!- c00kiemon5ter has joined.
00:54:14 -!- nooga has quit (Ping timeout: 255 seconds).
01:16:09 -!- monqy has quit (Quit: hello).
01:16:23 <c00kiemon5ter> do you think 'i' is good name for an irc client ? :
01:18:41 <Sgeo> I'd say that you could name it that if you want but it might be hard to Google, but then I'd sound a little like zzo38
01:18:42 <kmc> https://twitter.com/DroneInsertion
01:19:47 <c00kiemon5ter> true, but I have no other ideas .. any catchy names flying by your heads ?
01:20:00 <Sgeo> kmc, https://twitter.com/Friend_Computer
01:20:25 <oerjan> also rather too hard to google, i suspect
01:21:58 <Lumpio-> Apple has trademarked the letter i, you can't use it
01:23:13 * Sgeo misses iRateRadio
01:26:22 -!- sebbu2 has joined.
01:26:42 <oerjan> that could get iRksome
01:29:58 -!- sebbu has quit (Ping timeout: 272 seconds).
01:48:47 <FreeFull> Why is sortBy (compare . fst) $ zip logs numbers giving me a type error ;_;
01:49:45 <kmc> "Dude complains that Ubuntu's /bin/sh (dash) isn't POSIX-compliant. After some debugging, the speculation is that in fact what's at /bin/sh isn't Ubuntu's, but is a rootkit which is not POSIX-compliant."
01:50:01 <shachaf> FreeFull: (When you ask a question like that, you should include the error! Otherwise people have to read your mind.)
01:50:03 <Bike> that sounds fascinating
01:50:25 <shachaf> Kids and their rootkits these days!
01:51:49 <FreeFull> So what would be a pointfree way to write (\(a,b) (c,d) -> compare a c)
01:52:32 <kmc> if your rootkit is not at least ring -10 you are just a loser
01:53:13 <shachaf> My rootkit is at ring banana phone.
01:58:25 <Sgeo> Oh, I should watch some more CCC stuff
01:58:36 <Sgeo> And keep thinking through my design of Racket-Qoppa
01:59:26 <FreeFull> I forgot haskell had fast bignums and laziness
01:59:27 <Sgeo> And file a bug report against the Racket documentation, I should really do that now
01:59:40 <FreeFull> I think there is a much simpler solution to what I'm doing
02:02:35 <kmc> Sgeo: you're creating a racket language for qoppa? cool
02:03:32 <shachaf> Anything exciting to tell us about natural numbers?
02:04:02 <tswett> So, I've been pondering how to combine all the best features of C++ with all the best features of Haskell.
02:04:16 <shachaf> elliott wants to add C++ templates to Haskell.
02:04:41 <tswett> I think it's simple. Take C++, and remove fields.
02:05:03 <tswett> Boom. Best of both worlds.
02:05:42 <tswett> Mm, on second thought, fields are kind of useful. But all fields should be immutable outside of constructors.
02:05:48 <zzo38> What are the features of C++ templates other than what Haskell has?
02:08:24 <kmc> causing insanity... wait, never mind
02:08:34 <oerjan> FreeFull: well tell what you're doing and maybe we have an idea :)
02:08:46 <kmc> in C++ things can be templated on integer values as well as types
02:09:15 <Bike> C++: harbinger of dependently typed systems.
02:09:16 <kmc> also C++ lets you specialize templates on specific types, which makes them non-parametric
02:09:16 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
02:09:28 <kmc> you can make it so f<int> does something totally different from f<float>
02:09:56 <zzo38> I thought that is possible in Haskell too if you have type classes, and type families
02:10:08 <FreeFull> oerjan: I'm seeing what the largest a^b is
02:10:45 <shachaf> > 5^8 -- this is the largest it gets
02:10:47 <FreeFull> oerjan: That's what I tried at first
02:10:52 <oerjan> just in case you have overflow problems
02:11:15 <oerjan> FreeFull: largest from a set of (a,b) pairs?
02:11:32 <zzo38> And you can make numbers as types too in Haskell.
02:11:34 <kmc> https://twitter.com/pokemon_ebooks
02:13:53 <FreeFull> I have code that works, it just seems to give me the wrong result =
02:14:14 <FreeFull> I found the minimum instead of maximum >_<
02:16:30 <FreeFull> Just swapped the arguments to compare
02:24:05 <Sgeo> o.O a number of people on Reddit really like Star Trek Enterprise
02:24:53 <FreeFull> I would ask how to beautify this Haskell code but I don't want to post Project Euler answers ):
02:33:14 <oerjan> FreeFull: maximum [a^b | (a,b) <- yourListOfPairsHere]
02:33:31 <oerjan> assuming the a^b is what is actually the answer
02:33:51 <FreeFull> No, the answer is the line number
02:34:46 <zzo38> I know in C you can combine string literals like "abc" "xyz" but does it work with character literals too?
02:34:59 <shachaf> Would FreeT (w,) IO be more or less the equivalent of Python generators?
02:35:11 <shachaf> I guess generators can have input too these days. But ignoring that.
02:35:53 <FreeFull> zzo38: I don't know, multicharacter literals don't get used much
02:36:08 <zzo38> I would guess so, if they are like JavaScript generators.
02:36:27 <zzo38> For input too you need the free monad of the indexed store comonad.
02:37:46 <shachaf> Not Foo i o a = i -> (o, a)?
02:38:53 -!- TeruFSX has joined.
02:39:09 <oerjan> FreeFull: main = print . fst . maximumBy (compare `on` snd) . zip [1..] . map (\[a,b] -> a^b) . map words . lines =<< getContents -- >:)
02:39:30 <zzo38> shachaf: Yes. At least if it is like JavaScript generators, then (o, i -> a) is correct.
02:39:48 <oerjan> needs some read in there
02:41:38 <oerjan> FreeFull: i was just prettifying my imagined solution
02:45:41 <FreeFull> The file's contents are stored as 23452345,234521 on each line
02:49:39 <Sgeo> kmc, how much of a violation of Qoppa's beauty would it be to have wrap be a primitive and a in-Qoppa implementation of wrap behaves differently and wrongly with Racket interop
02:49:44 <quintopia> has anyone made any progress on the narcissus-free language front?
02:49:49 <Sgeo> while primitive wrap works
03:00:59 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter).
03:01:42 -!- c00kiemon5ter has joined.
03:05:48 <Sgeo> :/ copy/pasting the definition of map from one Racket language to another can result in two maps with different semantics
03:06:01 <Sgeo> I don't like the thought of copy/pasting though
03:06:19 <Sgeo> It seems like it would be annoying to do that just because I want map to have the new function application semantics
03:06:36 <Bike> does it have kernel's cyclic list semantics
03:07:18 <Sgeo> I'm more interested in implementing Qoppa than Kernel, at least at this point. Qoppa's much simpler
03:07:39 <Sgeo> And doesn't require me changing the reader to get rid of quasiquote
03:08:24 <Sgeo> Also, I don't remember what Kernel's cyclic list semantics are
03:08:52 <Bike> lemme put it this way, you need an lcm function to implement map.
03:12:29 <Sgeo> I really really do like the name $define!
03:13:06 <Sgeo> It describes that it's a non-applicative operative and that it does a side effect
03:13:46 <Bike> we should rewrite scheme in Ro.
03:14:42 <Bike> A philosophical language from I think the 19th century. Idea was you encoded meaning as a tree of phoneme selections.
03:14:49 <oerjan> FreeFull: read ('(':line++")") or read ('[':line++"]") is a nice way to read comma separated tuples or lists :)
03:15:13 <Sgeo> Oh, ok, I see the relevant to what I said
03:17:38 <zzo38> I remember I once won a game of Pokemon card by perpetual check. You might think of, there is no perpetual check in Pokemon card? But, it is like perpetual check.
03:18:16 <Sgeo> Ugh, I'd really like to be able to stick a piece of metadata onto things
03:18:23 <Sgeo> A tag, saying "do not evaluate"
03:18:27 <Sgeo> For Racket interop
03:18:59 <zzo38> Haskell's read function does not normally accept comments.
03:19:52 <Sgeo> Bike, what happens if a Qoppa operative forced in a context where it can't receive forms (e.g. called by a Racket function) tries to evaluate twice?
03:20:23 <zzo38> quintopia: Idea of what? I don't know.
03:20:24 <Bike> hilariously difficult to locate bugs?
03:20:26 <Sgeo> Hmm, although I guess quote semantically does make sense here
03:20:57 <quintopia> zzo38: a narcissus-free programming language
03:21:11 <zzo38> quintopia: No, I don't have an idea.
03:21:40 <zzo38> I did once, but I was not complete of it and I forget what I had.
03:21:44 <zzo38> And it didn't work.
03:22:57 -!- DHeadshot has quit (Read error: Connection reset by peer).
03:23:02 -!- DH____ has joined.
03:32:07 <FreeFull> oerjan: main = print . fst . maximumBy (\(_,a) (_,b) -> compare a b) . zip [1..] . map (\(x,y) -> y * log x) . map (\x -> read ('(':x++")")) . lines =<< readFile "base_exp.txt"
03:32:26 -!- monqy has joined.
03:32:39 <oerjan> FreeFull: you didn't want to use on?
03:32:54 <FreeFull> I couldn't find where it's defined
03:33:02 <oerjan> Data.Function is one place
03:33:10 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
03:33:11 <lambdabot> Control.Exception.Base onException :: IO a -> IO b -> IO a
03:33:11 <lambdabot> Control.Exception onException :: IO a -> IO b -> IO a
03:33:43 <shachaf> Also I told you about comparing, which also works here.
03:34:50 <lambdabot> Data.Ord comparing :: Ord a => (b -> a) -> b -> b -> Ordering
03:36:34 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:39:50 <FreeFull> Do I even dare try making \x -> read ('(':x++")") pointfree by hand
03:40:22 <shachaf> Start by rewriting it in prefix form.
03:40:54 <Bike> don't be a wuss, freefull. wusses are so full of points.
03:41:08 <FreeFull> I just figure the pointfree version would be shorter =P
03:42:02 <FreeFull> I know (\(x,y) -> y * log x) can be written as (uncurry ((*) . log))
03:43:21 <Bike> So you saved... -1 characters.
03:43:52 <shachaf> Bike: @pling is not about golfing.
03:43:58 <shachaf> Golf is a separate activity.
03:44:01 <lambdabot> (!!3)<$>transpose[show$foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..2^n]|n<-[0..]]
03:44:04 <lambdabot> [show(sum$scanl div(100^n)[1..[4..]!!n])!!n|n<-[0..]]
03:44:30 <shachaf> It's a sound bicycles make.
03:44:37 <shachaf> Bikes don't make it, though.
03:44:43 <FreeFull> Bike: I don't know how you count, because the uncurry version actually has exactly the same length
03:44:44 <Bike> Hoity toity bicycles, maybe.
03:45:03 <Bike> I count it in "i dumped it into a program because i can't count" style.
03:45:19 <FreeFull> Maybe you removed the unnecessary spaces
03:45:25 <FreeFull> Which would make the first one shorter
03:46:47 <Bike> man that ain't even a continued fraction. Sucks.
03:49:14 -!- WeThePeople has quit (Ping timeout: 240 seconds).
03:49:16 <DH____> Hadn't spotted this one on the Wiki... http://t.co/6wE3jfdl
03:49:33 <shachaf> I'm ont clicking a t.co link.
03:49:43 <shachaf> Please post an unshortened version.
03:50:18 <Bike> https://github.com/munificent/vigil shachaf.
03:51:19 <oerjan> and shachaf was touched
03:59:38 <lambdabot> 2.7182818284590452353602874713526624977572
04:01:56 <Bike> why would more digits make it better
04:03:08 <oerjan> well CReal is unlimited in theory
04:03:38 <Bike> yeah but it's represented as a function i bet
04:04:19 <Bike> do you know what functions are oerjan? they are not fractions hardly at all.
04:05:33 <oerjan> > unfoldr (\x -> let f = floor x in Just (f, 1/(x-f))) (exp 1 :: CReal)
04:05:35 <lambdabot> No instance for (GHC.Real.Integral Data.Number.CReal.CReal)
04:05:49 <oerjan> > unfoldr (\x -> let f = floor x in Just (f, 1/(x-fromIntegral f))) (exp 1 :: CReal)
04:05:51 <Bike> haskell, language of no instance for
04:06:09 <oerjan> > take 50 $ unfoldr (\x -> let f = floor x in Just (f, 1/(x-fromIntegral f))) (exp 1 :: CReal)
04:06:12 <lambdabot> [2,1,2,1,1,4,1,1,6,1,1,8,1,1,10,1,1,12,1,1,14,1,1,16,1,1,18,1,1,20,1,1,22,1...
04:07:15 <oerjan> PAY NO ATTENTION TO THE CUTOFF BEYOND THE CURTAIN
04:07:38 <Bike> i thought haskell had infinite datatypes. where are my infinite datatypes oerjan
04:07:53 <kmc> it doesn't have
04:08:25 <kmc> only via wrappers, not directly
04:09:14 <oerjan> > [2,1] ++ intercalate [1,1] $ [2,4..] -- LOOK MA I'M INFINITE
04:09:16 <lambdabot> Couldn't match expected type `[t0]'
04:09:25 <Bike> y'all are good at this.
04:09:45 <oerjan> > (++) [2,1] . intercalate [1,1] $ [2,4..] -- LOOK MA I'M INFINITE
04:09:46 <lambdabot> No instances for (GHC.Enum.Enum [t0], GHC.Num.Num [t0])
04:09:46 <Bike> any particular reason you didn't stick with [2,4..]?
04:09:55 <lambdabot> A section must be enclosed in parentheses thus: (7 ...)Not in scope: `...'
04:10:07 <ais523> is hyphen hyphen space a comment in Haskell?
04:10:07 <lambdabot> [3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,1...
04:10:09 <ais523> I thought that was just Lua
04:10:20 <kmc> hyphen hyphen is
04:10:25 <lambdabot> <hint>:1:8: parse error on input `..'
04:10:29 <kmc> but maybe not hyphen hyphen other symbol character
04:10:58 <kmc> yeah it's a -- token
04:11:25 <kmc> > 3 {-+ 4 -}
04:11:50 <oerjan> > 2+2----------------------------hi there
04:12:08 <ais523> whose law is it that lexical syntax of comments will cause the most controversy in any language design?
04:12:14 <kmc> wadler's law
04:12:15 <ais523> (except in #esoteric, who mostly don't care)
04:12:36 <kmc> see also parkinson's law of triviality
04:12:36 <ais523> kmc: wow, I'm vaguely impressed that you knew it without looking it up :)
04:12:45 <Bike> he mentions it all the time
04:12:48 <oerjan> our favorite comment syntax is "any unused command character" :)
04:12:56 <lambdabot> Not in scope: data constructor `REM'
04:13:06 <ais523> oerjan: it doesn't scale well
04:13:24 <ais523> I think my favourite comment syntax is "thing that incidentally happens to be unexecuted due to the semantics of the language"
04:13:29 <ais523> such as (comment)*0 in BF Joust
04:14:00 <ais523> (btw, my BF Joust interp juiced uses ()*10 or whatever as debug markers, because they're no-ops from the point of view of other interpreters, which is what you want)
04:14:25 <oerjan> ais523: you realize wadler was one of the haskell designers, right?
04:14:45 <ais523> oerjan: I had a vague memory of something like that
04:14:51 <ais523> I thought it was haskell-related, at least
04:14:56 <ais523> or at least some haskell-like language
04:15:42 <oerjan> and that they had a unique approach to dealing with the issue known as "the syntax czar"
04:17:54 <ais523> and it's not really unique
04:18:02 <ais523> it happens in most medium-sized projects, doesn't it?
04:19:59 -!- DH____ has quit (Read error: Connection reset by peer).
04:25:00 <kmc> '" vaginal photoplethysmography" redirects here. For other uses, see vaginal photoplethysmography (disambiguation).'
04:25:05 <kmc> what the hell else could that be
04:25:52 <Bike> Probably an album name.
04:26:03 <kmc> the disambig link is dead though
04:27:17 <Bike> and not in the logs either
04:29:04 <oerjan> someone probably added the template without knowing what it was for
04:37:41 <ais523> can I make a stupid request?
04:37:46 <ais523> websites, please stop using black backgrounds
04:38:02 <ais523> I like black backgrounds and light foregrounds late at night to reduce the overall light level in the room
04:38:20 <ais523> and thus, I want to be able to turn inverse video on and just leave it on
04:38:25 <ais523> without the occasional shock white screen
04:48:08 <kmc> \rainbow{user stylesheet}
04:56:20 <Sgeo> Crud, Racket Qoppa might be harder than I thought
04:58:17 <Sgeo> Oh, huh, guess not
04:58:25 <Sgeo> Not entirely sure why not, but hey
04:58:35 <Sgeo> Oh, I think I understand
04:59:22 <Sgeo> The outermost #%app sees the full form as is, which doesn't get imbued with more #%app and #%datum and gunk unless it's in a position to be expanded
04:59:35 <Sgeo> (define-syntax-rule (#%app form ...)
04:59:35 <Sgeo> (quote (form ...)))
04:59:49 <Sgeo> That is ridiculously fun
05:00:09 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> a))
05:00:10 <lambdabot> arising from the ambiguity chec...
05:00:13 <Sgeo> > (+ 1 2 (* 2 3) (* 4 5))
05:00:13 <Sgeo> '(+ 1 2 (* 2 3) (* 4 5))
05:00:40 <Sgeo> Now I just need to get a good understanding of Racket eval
05:05:44 -!- oerjan has quit (Quit: Good night).
05:10:14 <elliott> ais523: hi, why are you awake?
05:10:25 <ais523> I'm often up this late
05:10:35 <ais523> when it gets to about 5am, I tend to wait for sunrise before going home
05:10:40 <ais523> it's a nicer journey that way
05:11:57 -!- DHeadshot has joined.
05:13:24 -!- mig22 has joined.
05:15:29 -!- DHeadshot has quit (Read error: Connection reset by peer).
05:15:34 -!- DH____ has joined.
05:19:06 <ais523> elliott: going back to sleep would not be unreasonable, if you can
05:19:21 <elliott> ais523: well there's a problem
05:19:29 <elliott> ais523: i decided i should get up when i was even more tired than this
05:19:44 <elliott> and now i've committed to it so it's too late to change my mind now that i'm awake enough to realise what a terrible idea it was
05:21:20 <elliott> also I have this sneaking suspicion that if I went back to bed I'd wake up late afternoon again
05:21:26 <elliott> which I just spent several days trying to stop
05:23:36 <elliott> i guess i will just have a terrible day and then go to sleep at seven pm or something
05:50:20 -!- Bike has quit (Ping timeout: 255 seconds).
05:52:13 -!- Bike has joined.
05:54:40 -!- DH____ has quit (Read error: Connection reset by peer).
05:54:45 -!- DHeadshot has joined.
06:07:38 <Sgeo> kmc, can Qoppa environments be opaque to Qoppa?
06:09:03 <kmc> not in the language i described in that blog post
06:09:24 <kmc> you need to maniuplate environments in order to define 'define' and 'set!' and such as library code
06:09:35 <kmc> you could make them an abstract data type, but not really opaque
06:10:25 <kmc> you can have an operative languages where environments are opaque, but you need more primitives then
06:10:53 <kmc> the point of qoppa was to have as few primitives and evaluation rules as possible
06:11:09 <kmc> only three evaluator rules, only one primitive that isn't an applicative, i.e. function
06:11:18 <Bike> i think kernel's having environments only used for eval, and $define! as an optional primitive, made pretty good sense.
06:11:47 <kmc> that primitive being vau
06:11:59 <kmc> but even vau is a name bound to a value in the global environment, and not a special evaluator rule
06:13:08 <Sgeo> The namespaces that Racket eval accepts as an argument don't seem to be _very_ modifyable
06:13:29 <kmc> Bike: in what way is it optional?
06:14:01 <Bike> kmc: in that the spec separates out environment mutation stuff as optional, and the author says "optional"
06:14:16 <Bike> would be a bitch to define letrec without it though
06:15:20 <Bike> would be hard to use the language without $define! but so it goes
06:15:43 <Sgeo> elliott, Fiora monqy
06:24:09 <kmc> having both operatives and applicatives at a fundamentel level seems inelegant
06:24:17 <kmc> it might be the right decision though
06:24:23 <kmc> would be interested to understand that tradeoff better
06:24:37 <elliott> kmc: zepto just had operatives
06:24:46 <elliott> and an applicative was just an operative that happened to evaluate all its arguments in order first
06:24:58 <elliott> and there existed an operative to automatically wrap an operative into one of those
06:25:11 <kmc> yeah, that's how qoppa is as well
06:25:21 <Bike> is that not how kernel is...?
06:25:27 <kmc> but it makes it tricky to write 'apply'
06:25:30 <kmc> Bike: no, it has both as primitive types
06:25:43 <kmc> and 'wrap' and 'unwrap' are language primitives
06:26:11 <kmc> in qoppa 'wrap' is a kinda hackish library thing, and 'unwrap' doesn't exist
06:26:32 <elliott> I just did (apply f xs) = (eval (cons f xs)) basically
06:26:45 <elliott> (apply if '((> x 2) "yay" "nay")) working is cute
06:26:55 <kmc> no, sorry, wrap is fine, but 'apply' is weird
06:27:04 <kmc> let me look again
06:27:15 <elliott> I mean it's obviously weird and violates all reasonable ideas of abstraction
06:27:18 <elliott> but isn't that kind of the point
06:30:13 <kmc> mine is more like (apply f xs) = (eval (cons f (map (lambda (x) (list quote x)) xs)))
06:30:23 <kmc> because f is an applicative and so it's going to call 'eval' on its arguments
06:30:28 <kmc> but the xs are already evaluated
06:30:38 <elliott> yes, that's what I did, you're right
06:30:44 <elliott> in fact I even used the "map" in scope
06:30:49 <kmc> if you had unwrap you would do (apply f xs) = (eval (cons (unwrap f) xs))
06:30:50 <elliott> so if you redefined "map", "apply" would start working weirdly
06:30:53 <elliott> that's just how zepto i am
06:31:00 <elliott> kmc: well you can define unwrap
06:31:04 <elliott> wrap makes it eval all its arguments
06:31:07 <elliott> unwrap makes it quote all its arguments
06:31:14 <elliott> that's pretty elegant and you can do it without a notion of an applicative
06:31:15 <kmc> i guess so
06:32:06 <kmc> yeah i'm not sure if this business about "if you redefine map" counts as a violation of hygeine or not
06:32:19 <kmc> i think basically no
06:32:32 <kmc> when you close over a mutable environment, and it changes later, things can break
06:32:40 <kmc> it's not specific to macro-ish things
06:33:04 <kmc> and if you want to save the original value of map, you can do that easily enough
06:33:04 <elliott> kmc: well you can just define apply in terms of the map in scope
06:33:07 <elliott> by doing (list map ...) etc.
06:33:39 <elliott> macros pretty much fundamentally break scoping and reasoning though
06:33:51 <kmc> i did enjoy using 'lambda' to save the value of 'lambda' while using set! to redefine the value of 'lambda'
06:33:58 <kmc> (to add sugar)
06:35:24 <elliott> the basic idea with zepto was that all the primitives would be defined in terms of the other primitives as much as possible
06:35:33 <elliott> so you could just screw with how the interpreter works by redefining map or cons or whatever
06:54:48 -!- TeruFSX has quit (Ping timeout: 276 seconds).
07:36:08 <Sgeo> "Sokal's paper (in brief - the real paper contains more nonsense than can be discussed here) argued that a properly free mathematics would free us from the social constructs which are implied by our rigid, unyielding, dogmatic, anti-feminist, capitalist, and unjust theory of gravity. Of course, they did publish it of their own free will..."
07:36:24 -!- Jafet has quit (Quit: Leaving.).
07:36:27 <Bike> god, how long ago was that now
07:36:37 <monqy> is this about the sokal affair
07:37:40 <Bike> sgeo, have you seen snarxiv?
07:38:03 <Bike> You should see snarxiv.
07:39:21 <Sgeo> heterotic string is apparently a real term
07:43:44 <Sgeo> There was one (reloaded away) about examining reheated bubbles
07:44:04 <Sgeo> I think I can't visit that site
07:44:09 <Sgeo> Randomness makes me feel weird
07:45:34 <Sgeo> When I was a kid, I remember one Monopoly game where I recorded every roll of the dice and every action
07:45:40 <Fiora> In the 20th century, Georgi recalled metrics on C^6. We present a criterion for an analytic continuation of metrics in a tachyonic model with B-mesons. The sheaf cohomology depends, surprisingly, on whether models of Brans-Dicke inflation can be interpreted as the QED/TQFT correspondence. When demystifying type I strings, we obtain that cosmological parameters in Topological String Theory turn out to be equivalent to some little-know
07:45:45 <Bike> that sounds incredibly boring, sgeo.
07:45:56 <Sgeo> I didn't want it to be lost forever
07:47:09 <Sgeo> I should have saved those Snarxiv titles and abstracts
07:47:28 <elliott> if you reload the page enough times they'll come back!!
07:48:00 <Bike> sgeo, i take it you're not a fan of the copenhagen interpretation.
07:48:04 -!- copumpkin has quit (Ping timeout: 272 seconds).
07:48:08 <monqy> Sgeo: out of curiosity by any chance do you like monopoly?
07:48:38 <Sgeo> Not especially, but for other reasons I think
07:48:45 -!- copumpkin has joined.
07:49:23 <Sgeo> I remember playing Monopoly on the computer with friends, and some left, so a friend and I kept playing and making moves for them, and we caused one to go bankrupt, and I felt bad about that
07:49:48 <Sgeo> Actually I think that's when my iffyness about randomness started
07:50:42 <Bike> i picked an awesomely coincidental time to start reading chaitin, huh.
07:53:23 <elliott> Bike: if you break the roles of monopoly you'll be chaitin
07:53:48 <Bike> i'm. i have to revoke your boot privileges for that one
07:54:18 <Sgeo> I don't entirely get how Chaitin is relevant. Things other than Chaitin's Constant?
07:54:26 <zzo38> I don't really like the game Monopoly either, but it isn't really too bad; however, when I played we usually changed some rules, such as if you decide not to buy something it just stays and is not auctioned, and that if you land on free parking you are allowed to teleport.
07:54:50 <Bike> Sgeo: binary representation of his constant is indistinguishable from coin flips.
07:55:01 <zzo38> If you don't like Copenhagen interpretation, what interpretation do you like?
07:55:07 <Bike> no the boot piece, the piece
07:55:18 <elliott> Bike: i dont wear pieces of boots either
07:55:23 <elliott> why would you wear only parts of a boot
07:55:27 <Bike> Sgeo: also chaitin has this kind of bugaboo about math being random.
07:55:32 <elliott> bike are you "trolling" me
07:55:45 <Bike> that's it no car either
07:55:50 <Bike> i can't work in this environment
07:55:55 <Sgeo> zzo38, Bike was suggesting that since randomness makes me uncomfortable, the idea of the universe being fundamentally random would make me very uncomfortable
07:55:59 <Sgeo> Sometimes it does.
07:56:30 <Bike> you should look at what "random" means! it's a so very interesting term
07:56:49 <Sgeo> If someone out there is using a quantum random number generator to make a decision... the thought of that makes me go a little pale
07:57:08 <Bike> you can get quantum random numbers online a few places
07:57:27 <monqy> sometimes I roll a die when elliott asks me to make a decision for him. stomach-churning???
07:58:00 <Sgeo> monqy, the dice likely macroscopic enough that its numbers are deterministic
07:58:17 <Sgeo> Or, well, mostly deterministic
07:58:17 <Bike> pssh, they'd still follow a distribution!
07:58:24 <elliott> Sgeo: I used HotBits to determine which of two (previously-written) phrasings of this statement to send
07:58:26 <zzo38> To me it is OK though, and I am also OK some games which partially include randomness, but what I like best is some visible information everyone, some hidden, some random, much skill, and a few chance involved. Games with complete information (such as chess) are still good, though.
07:58:39 <monqy> Sgeo: the dice are a metaphor for me asking a quantum random number generator
07:58:49 <Bike> has anyone considered that zzo38 may actually be God?
07:58:56 <Bike> like, the guy that designed the universe we're in.
07:59:02 <elliott> I think HotBits is pretty reliably ~quantum~
07:59:02 <Bike> or at least the one i'm in. y'all are weird.
07:59:10 <elliott> "HotBits are generated by timing successive pairs of radioactive decays detected by a Geiger-Müller tube interfaced to a computer."
07:59:30 <elliott> http://www.fourmilab.ch/hotbits/how3.html cool
07:59:40 <Bike> Yeah, müller is like at least four quantumsworth
07:59:52 <monqy> Sgeo: btw what do you mean that a die's numbers are "deterministic"
08:00:13 <zzo38> Bike: I suppose so; I have thought about egotheism in the past. However, I have also thought about many other things too, so I think there are better ways anyways.
08:00:36 <Sgeo> monqy, they're a function of the way the air's flowing
08:00:39 <Bike> zzo38, would you like to be an antipope?
08:00:42 <Sgeo> And of the way it's rolled
08:00:43 <zzo38> But, I think about a lot of things. So it isn't relevant.
08:00:59 <elliott> isn't how the air flows dependent on quantum details
08:01:00 <zzo38> Bike: I have no intention to be pope or antipope. I also have no intention to be God.
08:01:21 <Bike> You could be god unintentionally.
08:01:49 <zzo38> But saying you can be God is about as nonsense as saying you can be a number and so on.
08:02:05 <elliott> at least i am pretty sure it is
08:02:09 <monqy> pebbles can be numbers, so why can't I?
08:02:24 <HackEgo> 540) <itidus20> what is nice about a pebble is that you can process it with your brain as a number by simply looking at it
08:02:24 <HackEgo> 540) <itidus20> what is nice about a pebble is that you can process it with your brain as a number by simply looking at it
08:02:45 <Bike> how come this itidus dude isn't still here, he's cool
08:03:13 <zzo38> monqy: It could represent the numbers perhaps, but I mean the abstract mathematical concept of the numbers, not the things you count with them or the figures you write down to indicate them.
08:03:34 <monqy> can I be a thing you count with numbers or a figure you write down to indicate them?
08:03:35 <Sgeo> Hmm. I think it might be fair to say that itidus belongs in the other type of #esoteric about as much as he does here
08:04:07 <Sgeo> Well, no... not really supernatural thinking, but.... partial thinking
08:04:57 -!- Jafet has joined.
08:04:59 <monqy> what's partial thinking
08:05:40 <Sgeo> Thinking about ideas but not thoroughly
08:06:00 <Sgeo> Maybe that's not an accurate way to describe him
08:06:33 <zzo38> You can't think about it thoroughly because that would take forever!
08:06:40 <Bike> partial evaluation of the brain
08:11:55 -!- epicmonkey has joined.
08:22:53 -!- Nisstyre-laptop has quit (Ping timeout: 255 seconds).
08:26:46 -!- Bike has quit (Quit: tired).
08:35:55 <Sgeo> If I write a Brainhype interpreter in Scheme-omega, does that count as an implementation?
08:36:16 <Sgeo> Despite the fact that the language I implemented it in is itself not implementable?
08:36:22 <Sgeo> Actually, I guess it is implementable
08:36:30 <Sgeo> Just no implementations can run on turing machines
08:36:34 <monqy> philosophy question: what is an implementation?
08:36:55 <Sgeo> Are there any completely unimplementable languages?
08:37:26 <elliott> what do you mean by completely unimplementable
08:37:47 <elliott> any language can be implemented in the trivial language where every program is a that-language interpreter
08:37:59 <Sgeo> Oh. So trivially no, then.
08:37:59 <elliott> a language whose specification is logically contradictory isn't "implementable" but that's because it's not a language
08:39:45 -!- mig22 has quit (Quit: mig22).
08:41:12 -!- mig22 has joined.
08:43:45 <zzo38> What is the mathematical structure called, which has the successor and predecessor (inverse of each other), and total ordering according to the successor and predecessor, but not such thing as a designated zero point?
08:49:10 <Sgeo> Do you need to designate a point as special to define the integers/
08:51:50 <monqy> what do you mean by designated zero point
08:52:03 <monqy> what do you mean by define the integers
08:52:12 <monqy> alt. "designate a point as special"
08:52:46 <monqy> i guess by alt. i mean &. whoops!
08:55:18 -!- nooga has joined.
08:59:43 <Sgeo> zzo38 is asking for something without a designated zero point
09:00:01 <Sgeo> Does that necessarily imply that there is no 0, or just that it's not defined based on 0?
09:00:01 <monqy> yes but what does that mean
09:00:26 <Sgeo> With peano arithmetic, you start from zero and build from there
09:00:35 <Sgeo> I assume that's what zzo38 means
09:00:39 <monqy> but what does it mean not to have a "0"
09:02:51 <monqy> anyway there are lotsa ways to do these definitions but a "0" here is kind of an artificial concept if you don't have any addition operation for it to be the identity of
09:03:21 <monqy> like i could define the integers as a free group but would the identity be the "0"?
09:04:59 <zzo38> I mean one without any identity points.
09:05:09 <zzo38> Or any other points as special in some way.
09:05:13 <monqy> well what operations are you considering
09:06:39 <monqy> since you can't talk about "identity element" without an operation for it to be the identity of
09:07:37 <zzo38> Only the operations I listed; no addition and so on.
09:08:37 <monqy> there's nothing special about 0 if you only have succ, pred, and ordering
09:12:20 <elliott> Sgeo: 0 is just a symbol for the additive identity
09:12:26 <elliott> it exists iff you have an additive identity
09:13:05 <elliott> though certain constructions of the integers like peano numbers (+ handling of negation so you get integers) are "based" upon 0 sure
09:13:43 <monqy> pls enlarge quotes around `"based"'
09:18:51 <elliott> monqy: i think calling the peano axioms "based on 0" is fair
09:19:06 <elliott> monqy: it uses 0 as an "atomic element"
09:19:38 <elliott> as in it uses an atom we'll call zero that it then makes an additive identity by defining addition directly such that it is
09:22:37 -!- DHeadshot has quit (Read error: Connection reset by peer).
09:30:46 -!- ais523 has quit.
09:45:12 <Sgeo> Does Tcl count as a macro system?
09:46:30 <Sgeo> THANK YOU OLEG
09:46:43 <Sgeo> I am tired of hearing the claim that Haskell does not need macros
09:49:49 <Sgeo> Reading some of Oleg's slides
09:50:13 <Sgeo> http://okmij.org/ftp/papers/Macros-talk.pdf
09:58:46 <zzo38> I think Haskell (and other programming languages, too) would be much improved by use of macros.
09:59:11 <zzo38> And do-notation, list-notation, etc ought to be implemented as macros.
10:00:54 <zzo38> They are some of the things I wanted to fix with Ibtlfmm, for example.
10:01:23 <zzo38> C preprocessor macros is not very powerful, compared to some others.
10:03:14 <zzo38> Forth, Lisp, BLISS, TeX, METAFONT, all have more sophisticated macros.
10:04:09 -!- copumpkin has quit (Ping timeout: 252 seconds).
10:04:49 -!- copumpkin has joined.
10:06:01 <zzo38> Other than preprocessor macros and string literals, is replacing ,, with , and ;; with ; in a C program going to keep a valid program valid with the same meaning?
10:06:52 <zzo38> Yes, with for(;;) you are correct, I forgot
10:07:35 <zzo38> But what if it is in a {} block instead of () block, then will it be?
10:08:53 <zzo38> Is ,, ever valid in any block?
10:10:07 <zzo38> Does ,} and ,] and ,) mean anything in C?
10:14:50 -!- zzo38 has quit (Quit: ;;).
10:14:54 -!- sebbu has joined.
10:16:54 -!- sebbu2 has quit (Ping timeout: 272 seconds).
10:25:50 -!- sebbu2 has joined.
10:25:51 -!- sebbu2 has quit (Changing host).
10:25:51 -!- sebbu2 has joined.
10:27:51 -!- sebbu has quit (Ping timeout: 260 seconds).
10:34:52 -!- carado has joined.
11:08:25 -!- sebbu2 has changed nick to sebbu.
11:16:01 -!- Phantom_Hoover has joined.
11:28:22 -!- AnotherTest has joined.
11:41:19 -!- GreyKnight has joined.
11:46:44 -!- GreyKnight has quit (Ping timeout: 255 seconds).
11:47:13 <Sgeo> "So the syntax-rules design loses as a
11:47:13 <Sgeo> result of failing to observe the very sort of constraint that it
11:47:13 <Sgeo> imposes on anyone trying to write a block-with-implicitly-bound-break
11:47:17 <fizzie> String literal concatenation does not exist for character literals, to answer a question from many hours back.
11:53:32 -!- monqy has quit (Quit: hello).
12:06:01 <Sgeo> Ok, I think I understand ??!lambda and ??!apply
12:12:42 -!- AnotherTest has quit (Quit: Leaving.).
12:32:22 -!- epicmonkey has quit (Ping timeout: 265 seconds).
12:35:53 -!- GreyKnight has joined.
12:36:07 <Sgeo> What is a CK abstract machine?
12:41:44 -!- GreyKnight has quit (Ping timeout: 255 seconds).
12:49:09 <Phantom_Hoover> The thing in this: http://www.ii.uni.wroc.pl/~dabi/publications/WRS07/biernacka-biernacki-wrs07.pdf ?
12:52:45 <nooga> Wrocław University
12:54:03 <Phantom_Hoover> nooga you know that on computers you don't have to cross out letters you didn't mean to put in
12:54:54 <olsner> you should spell it vrotswav
12:55:28 -!- GreyKnight has joined.
12:58:27 <fizzie> Rocklaw University, for all the aspiring rockstar/lawyers.
12:59:44 <Jafet> You, too, can be a rockstar slash lawyer.
13:00:11 -!- GreyKnight has quit (Ping timeout: 255 seconds).
13:01:17 <HackEgo> Jafet: 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.)
13:01:46 <fizzie> Jafet: Today I'm shipping rockstar slash lawyer.
13:02:25 -!- DHeadshot has joined.
13:03:23 <nooga> Phantom_Hoover: really?
13:42:01 -!- epicmonkey has joined.
13:43:48 -!- nooga has quit (Ping timeout: 248 seconds).
13:59:19 -!- nooga has joined.
14:14:35 -!- Arc_Koen has joined.
14:24:09 -!- nooga has quit (Read error: Connection reset by peer).
14:24:34 -!- nooga has joined.
14:59:52 -!- GreyKnight has joined.
14:59:52 -!- greyooze has joined.
15:00:15 -!- greyooze has quit (Client Quit).
15:00:16 -!- GreyKnight has quit (Client Quit).
15:01:21 -!- GreyKnight has joined.
15:02:18 -!- nooga has quit (Ping timeout: 276 seconds).
15:02:42 -!- Vorpal has joined.
15:05:09 -!- TeruFSX has joined.
15:05:41 <GreyKnight> 2009-02-18.txt:14:56:47: <ehird> factor, by the way, is an excellent language made by someone who knows what they're doing and it's also fast, and has great unicode support and tons of libraries/
15:08:27 * elliott isn't sure why you're quoting something I said in 2009 without context
15:10:20 <GreyKnight> in case Sgeo comes by later and realises he has a kindred spirit!
15:11:13 <elliott> pretty sure sgeo even liked factor in 2009
15:11:30 <elliott> anyway factor is an abandoned/dead language so it doesn't really matter what anyone thought of it in 2009
15:11:47 <Sgeo> There's been a release since Slava left
15:12:35 <GreyKnight> oh I got the impression Sgeo's love affair with Factor was a recent thing
15:12:49 <elliott> GreyKnight: it goes in cycles
15:13:07 <elliott> Sgeo: I didn't know, but that's mostly irrelevant
15:13:41 <elliott> Anyway they have a very nice environment. much nicer than the language really
15:14:01 <elliott> never had the community though
15:14:30 <Sgeo> Does Racket have a community?
15:14:41 <Sgeo> What happens when PLT lose interest or retire
15:14:51 <elliott> groups don't really retire...
15:15:28 <Sgeo> I don't think the composition of the group has changed since it formed
15:21:34 <Sgeo> I might just end up writing eval for Qoppa and directing #%app to call it
15:21:39 <Sgeo> Rather than trying to use Racket eval
15:21:42 <GreyKnight> Sgeo: so, regarding Qoppa as a Racket language. Is this sort of level-mixing common with other Racket languages? If so how do other people solve it?
15:21:50 <GreyKnight> oh you're talking about it too, excellent :-)
15:22:24 <GreyKnight> and yes, I figured you were already going to use qoppa-eval?
15:22:51 -!- TeruFSX has quit (Ping timeout: 240 seconds).
15:23:05 <GreyKnight> doesn't kmc's original version do that anyway?
15:23:09 <Sgeo> I think the main solution for impedance mismatches between Racket languages and the Racket environment is not to design a Racket language with an impedance mismatch. It doesn't seem well designed for arbitrary languages.
15:23:26 <Sgeo> GreyKnight, pretty much, which kind of makes anything I do boring, doesn't it?
15:25:50 <GreyKnight> What I mean is, is it common for Racket languages to want to be able to mix that language with arbitrary Racket code?
15:26:22 <Sgeo> Or at least call Racket functions and have Racket functions be able to call their functions
15:26:33 <GreyKnight> in that case surely somebody has already solved this problem and we can investigate how they did it :-)
15:26:53 <Sgeo> Look at Scribble. It's an un-lisp-looking language for documentation that has easy notation for calling Racket functions
15:27:48 <Sgeo> GreyKnight, the problem is mostly "how to do it given the the nature of Qoppa functions" not "The mechanics of how to have a Racket language call functions from a different Racket language"
15:29:44 <GreyKnight> oh, the third step of their foolang->racket->foolang is probably always going to be a function, right? So they don't need to worry about whether or not to evaluate what they're passing in the last step, they just always do
15:35:56 <Sgeo> Pretty much any Racket language is a possibly customized reader, and a bunch of definitions including definitions of macros that are implicit
15:36:17 <Sgeo> (+ 1 2) -> (#%app + 1 2) for example assuming + is not a macro
15:36:47 <Sgeo> There's also #%module-begin which surrounds the whole program, #%datum which is around any piece of data
15:47:54 <GreyKnight> elliott: is Zepto documented anywhere? The wiki only seems to have ZeptoBasic
15:48:56 <Sgeo> The #%module-begin thing means I could just take what's passed into it and give it to qoppa-eval
15:49:16 <Sgeo> But then interop with Racket might be problematic
15:59:20 -!- GreyKnight has quit (Ping timeout: 256 seconds).
15:59:30 <Sgeo> Hmm. Presumptively, every module level form except provide and require should be function applications in Qoppa
15:59:44 <Sgeo> So just redefining #%app should work perfectly, I think
16:04:39 <Sgeo> Does the dialect of Scheme kmc was using not have named let?
16:05:46 -!- GreyKnight has joined.
16:06:27 <Sgeo> GreyKnight, I'm likely to take kmc's implementation and modify it to my needs
16:08:11 <GreyKnight> Sgeo: I'm not sure that it's possible to mix higher-order Racket functions in with Qoppa like this. The HOF can, in theory, produce *any* structure and push it into the Qoppa operative, and that structure might well look exactly like your Qoppa internals, whether tagged or whatever.
16:08:11 <GreyKnight> Unless there's some way to tag a structure outside of what Racket can access? But the whole thing's done in Racket so presumably not :-/
16:08:11 <GreyKnight> Although hm are those "dye-pack" things any use here?
16:10:37 <Sgeo> Racket has a module system and opaque structs that means I don't have to expose the means of creating my internal structures to other Racket modules
16:11:17 <kmc> it seems that @CompSciFact tweets not facts about computer science but platitudes about software engineering
16:11:25 <kmc> thus my quest continues :/
16:12:09 <GreyKnight> Sgeo: right, but can another module *accidentally* create an identical structure?
16:12:18 <Sgeo> kmc, is an implementation of Qoppa as a Racket language still interesting if it's heavily based on your code?
16:12:21 <Sgeo> GreyKnight, no
16:12:58 <GreyKnight> ah, non-duck-typed structures? Hmm may work then...
16:13:04 <kmc> Sgeo: sure, why not?
16:13:14 <kmc> i don't know
16:13:20 <kmc> make it if it would make you happy
16:13:25 <shachaf> kmc: Your quest is to find a Twitter account that tweets facts about computer science?
16:13:39 <kmc> it's a bit more general than that
16:13:48 <GreyKnight> FACT: bugs reproduce when you're not looking
16:17:51 -!- GreyKnight has quit (Ping timeout: 240 seconds).
16:18:14 -!- GreyKnight has joined.
16:18:18 <GreyKnight> Sgeo: so, if all qoppa-operatives and qoppa-lists which are passed around are wrapped up in a struct, there is no way for Racket to "fake" one of them, even accidentally
16:18:20 <GreyKnight> so if a regular list comes in on any parameter, Qoppa knows "hey, Racket must have passed this value in! I'd better convert it."
16:20:57 <GreyKnight> (qoppa-eval would be doing that work I guess)
16:21:17 <Sgeo> I'm thinking the only special qoppa structure are qoppa-operatives
16:21:49 <Sgeo> They contain the actual "function" of the operative, and also an extra piece of code telling Racket how to treat it as a function
16:22:01 <Sgeo> When qoppa-eval calls it, it knows to unpack the structure to get to the operative
16:22:29 <Sgeo> When a Racket function tries to call it, it goes through that extra piece of code, which wraps all arguments in quote
16:22:51 <Sgeo> Before passing it on to the inner structure
16:23:41 <Sgeo> That's more or less how keyword arguments in Racket work, actually
16:24:20 <Sgeo> If #%app sees keywords in what is passed into it, it tries to treat its first argument as a special keyword-accepting function
16:24:31 <Sgeo> Which is some sort of structure wrapping around a function
16:24:42 <GreyKnight> (Lua has something similar, you can define a "call" metafield on any object which tells the system how to call it as if a function)
16:25:07 <Sgeo> And if it #%app doesn't see keywords, it treats it like a normal Racket function, and that function knows to pass 0 keywords to the function stored inside the structure
16:25:47 <GreyKnight> okay, this might just be crazy enough to work
16:27:02 <GreyKnight> Wow, not only is this a particularly poor example of a bf derivative, it's actually *less useful* than brainf**k proper since it doesn't provide input capabilities: http://esolangs.org/wiki/There_Once_was_a_Fish_Named_Fred
16:27:23 <GreyKnight> Phantom_Hoover, we need a bricking on aisle three
16:28:00 <elliott> um... http://phantom-hoover.tumblr.com/ already covered that
16:29:19 <GreyKnight> Well, it won't hurt to brick him twice anyway
16:30:30 <GreyKnight> (I mean it won't hurt *us*. Obviously it'll hurt *him*.)
16:31:36 * Sgeo tucks BF-RLE away somewhere
16:36:12 <fizzie> It has a notation for repetition, if that's what you mean.
16:37:11 <Sgeo> BF-RLE may be older than BF Joust, let me check
16:37:42 <fizzie> Arguably it's not "plain RLE" since you can repeat more than just a single symbol.
16:38:24 <Sgeo> BF-RLE is 2006, BF Joust is 2008
16:40:12 <fizzie> But are there BF implementations that accept RLE'd input that predate BF-RLE? One would think so.
16:41:11 -!- TeruFSX has joined.
16:42:06 <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
16:42:17 <fungot> ,[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+14<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>>+5[<-5>-]<2-[>+<-[>+<-[>+<-[>+<-[>+<-[>+
16:42:24 <fizzie> Hrm, that wasn't the best example.
16:42:29 <fungot> +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3]
16:42:39 <fungot> ,[.,]+14[>+8>+4>+7>+6<4-]>2+2.-26.>2+3.+14.+7.<+.>+3.-2.<+2.<.<+4.>3+2.<2.>2+5.<+3.-3.<.+73.+5.>2.<.>-2.-4.<-4.<2.>-5.>2+.-.<.>-2.<-65.<-.+13.>2-10.<.>+4.<2-6.<-2.>2.+69.<2+.>.+5.>.<-2.>+4.>-3.-67.<2-2.<-.-3.-8.>+2.<-6.>-5..>.<+.<+6.>3.<2-2.>-8.<+2.<.>+7.>.<2.-2.>3.<3-.>2+4.<-2.>+4.-2.<-5.>2.<-6.<.>+3.>.<3.+.>+2.<+7.>-.+10.<+.>2+.<2+.>-5.>2+.-.<-31.<2+.>-2.>2.<2-5.+2.+3.>+31.>.<+4.<-4.-8.>+6.+3.<2-2.>-5.>+2.<2-4.+6.-.>3+12.-12.
16:42:46 <fizzie> Oh, that's a good one.
16:42:51 <fungot> fizzie: it's a completely unoptimized fnord brainfuck interpreter that's running in a screen window on colin.
16:43:48 -!- nooodl has joined.
16:43:54 <fungot> GreyKnight: reuters has a bit of greek history and literature
16:44:09 <fizzie> GreyKnight: It was the hostname of one of my computers.
16:46:00 <fizzie> GreyKnight: Back when I had a HHGTTG hostname theme. (I had at least colin, agrajag, hactar, sesefras, bistromath, epun, ... I think I've forgotten the rest. The domain name I currently use (zem.fi) is still from there.)
16:47:57 -!- mig22 has quit (Ping timeout: 276 seconds).
16:48:51 <fizzie> "We live quiet retired lives in the swamp, where we are content to flollop and vollue and regard the wetness in a fairly floopy manner. Some of us are killed, but all of us are called Zem, so we never know which and globbering is thus kept to a minimum."
16:49:12 <fizzie> http://sprunge.us/aiNH
16:50:30 <elliott> fizzie: Nice TRANSCRIPTION ERROR.
16:51:48 <GreyKnight> http://esolangs.org/wiki/Category:Brainfuck_derivatives Wow that's a big list
16:52:36 <GreyKnight> I quite liked the mattresses. In fact I have one of my own. In fact I'm lying on it right now!
16:52:59 <fizzie> You're lying on a DEAD THING.
16:53:27 <fizzie> Category:Brainfuck equivalents "only" has 18 pages.
16:53:27 <GreyKnight> It's been properly taxidermied IT'S FINE
17:02:51 -!- Taneb has joined.
17:03:11 <elliott> So awesome fizzie didn't even write it.
17:03:22 -!- TeruFSX has quit (Ping timeout: 256 seconds).
17:06:05 -!- Frooxius has joined.
17:06:19 <fizzie> It would have been quite a bit less awesome, had I written it.
17:12:50 -!- GreyKnight has quit (Remote host closed the connection).
17:16:05 -!- TeruFSX has joined.
17:16:16 -!- GreyKnight has joined.
17:32:25 <GreyKnight> "You'll have to read Atlas Shrugged to appreciate this really obscure reference." <-- uh no thanks I have something really important to do in the other room >_>
17:35:44 <kmc> Telemachus Sneezed
17:41:01 -!- TeruFSX has quit (Ping timeout: 246 seconds).
18:06:45 <GreyKnight> Chuck Moore has been working on this: http://greenarraychips.com
18:07:26 <GreyKnight> reminds me of the first item listed under http://esolangs.org/wiki/List_of_ideas#Ideas_related_to_esoteric_operating_systems.2C_esoteric_processors_and_esoteric_computers
18:07:49 <GreyKnight> maybe we can list the GA chip as a concrete example of an esoteric computer? It's certainly unusual
18:13:17 <fizzie> comp.lang.forth has been all about the GA144 for the last year or so.
18:13:30 <fizzie> I don't think anyone has really figured out what to use it for (and how) yet.
18:14:15 <GreyKnight> but it looks like one of things that "this is bound to be incredibly useful once we figure it out"
18:25:39 <GreyKnight> Give me a GA144 and a place to stand, and I can move the universe!
18:27:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
18:29:14 -!- Bike has joined.
19:00:39 -!- AnotherTest has joined.
19:11:48 -!- GreyKnight has quit (Quit: -->).
19:25:02 -!- sivoais has quit (Ping timeout: 256 seconds).
19:26:09 -!- Nisstyre-laptop has joined.
19:33:02 -!- sivoais has joined.
19:49:05 -!- oerjan has joined.
20:04:27 <oerjan> <zzo38> I don't really like the game Monopoly either, but it isn't really too bad; however, when I played we usually changed some rules, such as if you decide not to buy something it just stays and is not auctioned, and that if you land on free parking you are allowed to teleport.
20:05:01 <oerjan> istr one part of david morgan-mar's flame against monopoly was that the house rules people tended to add usually made it even worse
20:05:09 <oerjan> or possibly that was part of the forum discussion
20:06:27 <oerjan> (iirc the house rules tend to prolong the game by giving people ways out from going bankrupt)
20:07:02 <oerjan> so that the least awkward way of playing monopoly is to follow the written rules _strictly_
20:08:09 <olsner> when you go bankrupt, you're out of the game? and the objective of monopoly is to go bankrupt last?
20:08:35 <oerjan> yeah i think borrowing from the bank was mentioned
20:08:52 -!- jiella has joined.
20:09:12 <olsner> I don't recall having any house rules in monopoly, I guess we just never played it
20:09:14 <AnotherTest> although you generally lose when you have to
20:10:20 -!- epicmonkey has quit (Ping timeout: 272 seconds).
20:10:28 <oerjan> btw here is the famous rant http://www.irregularwebcomic.net/2623.html
20:10:35 <Phantom_Hoover> Still doesn't change the fact that you spend most of the game waiting for whoever's in the lead to win.
20:10:50 <olsner> I wonder if the soviet made a communist monopoly ... or maybe they just reinterpreted it as a game of being evil
20:11:08 <elliott> olsner: well monopoly was originally a game of being evil iirc
20:11:12 <elliott> as in it was a ~morality game~
20:11:13 <oerjan> olsner: iirc monopoly _started_ as an anti-capitalist game
20:11:14 <AnotherTest> olsner: /monopoly/ is perfectly fine for communists :p
20:11:26 <elliott> monopolies aren't generally considered good things
20:11:48 <Phantom_Hoover> It was called something else back when it was thinly-veiled criticism of landowners.
20:11:53 * olsner suddenly realizes the name has a meaning when you treat it as a word
20:12:39 <Phantom_Hoover> Like the Most Novel and Entertaining Game of Property and Rent, because people in the past were crap at naming things.
20:13:17 <oerjan> Phantom_Hoover: i'm pretty sure the wikipedia page tells all that stuff
20:14:00 <elliott> Phantom_Hoover: I like how the Victorians hadn't quite figured out you were meant to name books something shorter than their contents.
20:18:01 <oerjan> `addquote <elliott> Phantom_Hoover: I like how the Victorians hadn't quite figured out you were meant to name books something shorter than their contents.
20:18:05 <HackEgo> 896) <elliott> Phantom_Hoover: I like how the Victorians hadn't quite figured out you were meant to name books something shorter than their contents.
20:18:33 <oerjan> hm i really had forgotten how epic that rant was
20:18:34 <shachaf> Phantom_Hoover: People in the present are, too.
20:22:52 * oerjan thinks mashing his keyboard should have giving a better name than _that_
20:24:33 -!- zzo38 has joined.
20:31:13 <Gregor> hjygn is a liar and a thief
20:31:18 <nooodl> zzo38: the day of zeux started a couple of hours ago, you should participate
20:41:31 -!- Vorpal has quit (Ping timeout: 260 seconds).
20:44:13 <oerjan> <zzo38> What is the mathematical structure called, which has the successor and predecessor (inverse of each other), and total ordering according to the successor and predecessor, but not such thing as a designated zero point?
20:44:45 <oerjan> this seems to relate to the integers in a similar way to how affine spaces relate to vector spaces...
20:45:16 <kmc> i think monopoly should be played as a nomic where you can spend money on lobbyists to make the rules more favorable to you
20:47:28 <oerjan> zzo38: http://en.wikipedia.org/wiki/Principal_homogeneous_space seems to include your concept if you use the integers as the group
20:47:50 <oerjan> (found that from Affine space)
20:48:46 <oerjan> zzo38: well there's no total ordering mentioned but you can easily define it
20:51:00 <oklopol> some order theorists write things like -N + N
20:51:25 <oerjan> oklopol: THAT'S JUST CRAZY TALK
20:51:56 <oklopol> then there's only the order
20:52:44 <oklopol> i'm a big fan of embedding orders in things
20:53:45 -!- monqy has joined.
20:55:09 <elliott> kmc: that sounds really interesting actually
20:55:13 <elliott> kmc: should have that as an agora contest
20:55:37 <oerjan> @tell zzo38 http://en.wikipedia.org/wiki/Principal_homogeneous_space seems to include your concept if you use the integers as the group
21:03:24 -!- AnotherTest has quit (Quit: Leaving.).
21:05:27 -!- Nisstyre-laptop has quit (Quit: Leaving).
21:05:37 -!- Nisstyre has quit (Quit: Leaving).
21:14:23 <Gregor> <kmc> i think monopoly should be played as a nomic where you can spend money on lobbyists to make the rules more favorable to you // this is the most brilliant thing I've ever heard
21:22:56 -!- GreyKnight has joined.
21:24:30 <GreyKnight> kmc: RE: Monomicopoly: I approve, please make it happen thx
21:25:50 <GreyKnight> oerjan: yes, that was DMM's biggest complaint as I recall. I basically agree with him. However nomic monopoly is likely to be fun in spite of this :-)
21:31:24 -!- Gregor has set topic: <kmc> i think monopoly should be played as a nomic where you can spend money on lobbyists to make the rules more favorable to you | http://codu.org/logs/_esoteric/.
21:32:18 <Bike> hm, so do you have one player be the government (and not play the game proper) so that you can keep who changed the rules secret?
21:36:12 <GreyKnight> You could always start with open voting and then introduce secrecy as a rules change :-)
21:36:53 <GreyKnight> the nice thing about nomics is not needing to have a "perfect" set of rules before you start ;-)
21:36:55 <oerjan> GreyKnight: as i just reread it, i can say that you recalled wrong - he just had a single paragraph noting that house rules made things worse, before going on to explain why it was crap even without them
21:36:58 <Bike> wouldn't the other way be more realistic? everybody shouting about making [government] more transparent and all
21:37:19 <Bike> man, this would make a much better satire of capitalism than the original
21:38:01 <GreyKnight> oerjan: Well! It was *a* point in his essay anyway.
21:38:10 <Arc_Koen> oerjan: I barely read any explanations at all
21:38:34 <Arc_Koen> I believe he just keeps repeating "monopoly is bad it is so bad it is terribly bad please don't play it" without giving any argument
21:38:54 <oerjan> Arc_Koen: let me guess, you gave up reading after the first half? :P
21:39:21 <oerjan> or before reaching the second, rather
21:39:28 <Arc_Koen> I read in diagonal (can you say that in english?) because I was hoping he would finally give some explanations
21:39:47 <oerjan> ...no you cannot say that in english.
21:39:49 -!- nooga has joined.
21:40:45 <GreyKnight> Perhaps "I skimmed it" if I understand you correctly
21:41:04 <Arc_Koen> I was about to say "I skipped it" but that sounded so wrong
21:41:43 <Arc_Koen> I mean, I guess his point is that there are lot of games that are way better than monopoly
21:42:13 <Arc_Koen> all my boardgame-playing mates would agree with that
21:42:49 <oerjan> admittedly it's mainly blowing off steam; i think the third last paragraph is the thing that comes closest to explaining something.
21:42:56 <Arc_Koen> and that playing monopoly with kids is bad because that's basically "hiding" other games to the people you're playing monopolywith
21:43:15 <Bike> GreyKnight: satire of soviet economics?
21:43:40 <oerjan> yeah get them hooked on junta and diplomacy instead, good family values
21:44:04 <Arc_Koen> personally I loved games so much when I was a kid, that I would agree on playing anything when my parents were ok to play something
21:44:11 <Bike> so that reminds me, how is Settlers of Catan on the imperialism front
21:44:36 <GreyKnight> I made up a sci-fi version of Diplomacy set in space once. The motto was "In the grim darkness of the future, there is only treachery and backstabbing."
21:46:30 <oerjan> Bike: in comonopoly, soviet economics satirize YOU!
21:47:17 <Bike> maybe i should just read red plenty -_-
21:48:51 <oerjan> where is copumpkin when i need someone to understand my brilliant pun :(
21:49:41 * oerjan isn't sure of the difference himself, anyway
21:50:27 <oklopol> i think you did more than just invert the arrows there
21:50:41 <oklopol> so umm, i can't find any publications of yours on dblp
21:50:45 <oerjan> oklopol: IT WORKS ON BOTH LEVELS
21:51:24 <oklopol> apparently it's not that old
21:51:51 <oklopol> http://www.informatik.uni-trier.de/~ley/pers/hd/s/Salo:Ville.html here's mine
21:54:12 <oklopol> there are a lot of people with this name
21:54:40 <oklopol> he has the best homepage out of all the villesalos i know
21:55:03 <elliott> oklopol: do you still have a homepage
21:55:03 <oerjan> (the *GASP* was for the complete revelation of your name, of course)
21:55:25 <oklopol> oerjan: i like to reveal it now and then
21:55:43 <elliott> oerjan: we've known his name for ages
21:55:55 <oklopol> yeah it's not exactly a secret
21:56:35 <oerjan> elliott: i know, but i don't recall it's been stated outright in channel
21:57:26 <oerjan> but i guess it's something adults tend to do, i notice tswett changed the attribution on ///
21:58:04 <oklopol> yes it's all about fame at this point
21:58:31 <elliott> one day oerjan will tell us his real name
21:59:04 * oerjan doesn't even have a secret middle name, his parents were too lazy to include one
21:59:10 -!- asiekierka has quit (Excess Flood).
21:59:17 -!- asiekierka has joined.
22:00:12 <fizzie> Best things in life: http://sprunge.us/iTDc
22:00:27 <Taneb> Is he the one who thought phantom-hoover.tumblr.com was serious?
22:01:02 <fizzie> (I finally bothered to disassemble the libcms_cli.so:cmsCli_authenticate function of my VDSL2 box. It has hardcoded user:pass combos of "root:public" and "ztedebug:ztedebug".)
22:01:16 <Taneb> Yeah, he's the greatest
22:01:20 <oerjan> olsner: Ørjansen is much rarer than Ørjan.
22:01:21 <shachaf> phantom-hoover.tumblr.com isn't serious?
22:01:22 <oerjan> "Det er 3, 2, 1 eller 0 menn som har Ørjan som første fornavn, og Ørjansen som etternavn."
22:01:30 <elliott> fizzie: are you having a nice day
22:01:36 <Taneb> shachaf, it's as serious as you want it to be
22:01:47 <shachaf> oerjan: Clearly you need to have more children.
22:01:51 <shachaf> (Assuming "sen" means "son".)
22:02:00 <oerjan> the ssb.no search isn't quite so accurate when there are that few results.
22:02:02 <fizzie> elliott: I guess I am, according to the router.
22:02:11 <elliott> will Phantom_Hoover's blog cover the upcoming new documentary
22:02:11 <Taneb> Phantom_Hoover, I can never find a BF derivative that's fun to talk about!
22:02:24 <Taneb> elliott, if the documentary gets more steam
22:02:33 <GreyKnight> Taneb: do you want us to make a new one for you :-I
22:02:39 <oerjan> "There are three or less with Ørjan as their first name, and Ørjansen as last name."
22:02:40 <Phantom_Hoover> Taneb, do a long piece on why ook! is the only tolerable bf derivative
22:02:49 <Taneb> Phantom_Hoover, I was thinking that
22:02:57 <shachaf> Phantom_Hoover: It's not tolerable...
22:03:14 <elliott> Taneb: i am pretty sure it is maximally steamful
22:03:34 <Phantom_Hoover> shachaf, yeah it is, because it was a mildly amusing joke
22:03:38 <elliott> Taneb: can i write guest posts under an anonymous pseudonym (due to my high profile status in the esolangs community)
22:04:01 <Taneb> elliott, everyone's writing under the name Phantom Hoover so far
22:04:09 <elliott> don't be silly, only Phantom_Hoover is
22:04:28 <elliott> i like the idea that over the years "Phantom Hoover" stops being fully a person and starts being more a character
22:04:36 <GreyKnight> Why is Ook! more tolerable than the others
22:04:41 <oerjan> shachaf: -sen is indeed etymologically "son", but norway changed to inherit family names by law something like 18th or 19th century
22:04:44 <elliott> until Phantom_Hoover himself either changes nick entirely or stops truly existing as a person in some kind of metaphysical way
22:04:48 <elliott> and all we have left is a bourbaki
22:05:17 <oerjan> (i think it may have been before we split from denmark)
22:05:22 <GreyKnight> Phantom_Hoover: the new Bourbaki --- dammit elliott stop ninjaing me
22:05:29 <shachaf> oerjan: Well, change your family name to ørjansen, and then have many children.
22:05:44 <shachaf> (Even better if the children propagage the name further.)
22:05:50 <shachaf> (Or you could call them all ørjan.)
22:05:53 <oerjan> shachaf: there may be sufficiently few people by that name that i cannot legally change to it :P
22:06:23 <shachaf> You can't change your name arbitrarily?
22:06:30 <oklopol> i heard an interesting theory for why finnish surnames end in -nen
22:06:48 <oerjan> shachaf: rare surnames are protected, you need permission from every holder to change to it
22:06:53 <GreyKnight> Perhaps call your children Ørjan1, Ørjan2, Ørjan3, ...
22:07:06 <oklopol> in the church books they just took the father's name and added -sen to make the surname, because that's how it was done in sweden i guess
22:07:33 <olsner> you should make some kind of pact to name all children of all future generations of ørjans "ørjan ørjansen"
22:07:35 <oklopol> and somethingsen sounds like the finnish genitive of somethingnen
22:07:56 <olsner> I guess there might be slight confusion for generations with more than one offspring, but shit happens
22:08:37 <oklopol> also that story was incredibly boring when told in english
22:08:43 <oklopol> i wish i'd've thought of that
22:09:12 <oerjan> <GreyKnight> Why is Ook! more tolerable than the others <-- because bf derivatives weren't a worn out concept when it was invented
22:09:16 -!- greyooze has joined.
22:09:25 <olsner> but sweden also switched to inheriting family names instead of making patronyms a long time ago
22:09:35 <greyooze> (if you have high hopes for them the children maybe Ørjan^2, Ørjan^3, ...)
22:10:40 -!- aloril has quit (Ping timeout: 272 seconds).
22:10:42 <oerjan> oklopol: except swedes add -son not -sen
22:10:54 <oklopol> did they do that hundreds of years ago as well?
22:11:02 <oerjan> greyooze: Ackermann(Ørjan,2)
22:11:32 -!- GreyKnight has quit (Ping timeout: 255 seconds).
22:11:43 -!- greyooze has changed nick to GreyKnight.
22:11:51 <oerjan> i'm pretty sure the phonology change from o to e happened only in danish originally, then spread to norway because of common writing system at the time
22:12:02 <oerjan> and the swedes were never in on it
22:13:30 <oklopol> oerjan: interesting. at least i didn't have this misconception for too long as i heard this like a week ago.
22:13:57 <oklopol> nen is also a diminutive suffix but that makes no sense
22:16:15 <olsner> is it -nen that the finnish names end with? I thought it was -lainen
22:17:27 <oklopol> that's more commonly used for when you're from somewhere
22:17:42 <oklopol> like ruotsalainen = swedish
22:18:13 <olsner> so ørjanlainen = people who come from ørjan?
22:18:27 <kmc> http://goatkcd.com/1156/sfw 1,001 Household Uses For Goatse
22:19:02 <oklopol> vowel harmony, aou => lainen, äöy => läinen. if you find neither you default to läinen
22:19:26 <GreyKnight> I like how making the goatse line-art apparently renders it "safe for work"
22:19:40 <oklopol> plus sometimes if you have aou first and then a lot of i and e you forget you're supposed to put lainen and put läinen instead
22:21:07 <GreyKnight> I was actually considering sprinkling some random ¨s around when I wrote that but didn't. I guess I should have.
22:21:25 <GreyKnight> (then there'd've been a non-zero chance of me getting it right)
22:22:36 <oklopol> then there's things like "analyysi"
22:23:41 -!- aloril has joined.
22:23:52 <fizzie> oklopol: Olumpialaiset.
22:24:02 <fizzie> Or is that with two 'p's?
22:25:48 * oerjan recalls wikipedia had that as an example of something that might or might not get finnishified
22:26:53 <oklopol> i don't think it'll get finnishified, i don't know an alternative and analysoida (analyze) is in everyday use.
22:27:04 <oklopol> or what does finnishification mean
22:27:09 <oerjan> i mean the olympia stuff
22:27:46 <oerjan> basically rural hicks pronounce it with u
22:28:23 <oerjan> i don't think finns are big on "ndl"
22:29:35 <oerjan> GreyKnight: basically the root affects the suffix, not the other way around
22:30:43 <GreyKnight> Oerjan: I found "irländsk" for Irish and guessed that the ä would stay
22:31:18 <olsner> "irländsk" is swedish though, not finnish
22:31:18 <oerjan> GreyKnight: it's ok, just train on distinguishing Mämmi from Maamme, and you should be fine. also "irländsk" is swedish i believe
22:31:19 <GreyKnight> but okay apparently Ireland is "irland"
22:31:39 <GreyKnight> oh I got mixed up about what language we were talking about @_@
22:32:32 <GreyKnight> okay if I'd gotten that I would have correctly guessed irlantilainen so I will count this as a moral victory
22:32:57 -!- Nisstyre has joined.
22:33:12 <oerjan> irlantilainen illithids
22:33:36 <Taneb> I think I've just updated Phantom_Hoover's Tumblr, but my internet's playing up, can someone double check?
22:34:03 <olsner> you should've written it as a single long sentence though
22:34:32 <elliott> although even LOLCODE is a thousand times better than a brainfuck derivative
22:34:34 <elliott> Taneb: not convinced this is true
22:35:09 <Taneb> elliott, it's hyperbole, and the point is brainfuck derivatives suck
22:35:23 <elliott> Taneb: btw you forgot the tabs
22:35:48 <Taneb> I'll add some in a minute
22:36:32 <GreyKnight> Taneb: The other day on the channel I came up with BRAINLISPCODE, a LOLCODE-style LISP with an embedded bf derivative. I thought you should know. :-I
22:37:48 <GreyKnight> So's your face but do we go on about it?
22:38:18 <oerjan> `addquote <GreyKnight> Taneb: The other day on the channel I came up with BRAINLISPCODE, a LOLCODE-style LISP with an embedded bf derivative. I thought you should know. :-I
22:38:21 <HackEgo> 897) <GreyKnight> Taneb: The other day on the channel I came up with BRAINLISPCODE, a LOLCODE-style LISP with an embedded bf derivative. I thought you should know. :-I
22:39:34 <oerjan> Taneb: i suggest striking out "a thousand times" and replacing it with "ten times", then strike that out and put "50 percent"
22:43:07 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: like: not found
22:43:30 <shachaf> @let now a k b = k (b <> a); later f k m a = k (m <> f a); run l = l id mempty
22:43:38 <shachaf> Can you figure out how to make map work?
22:43:48 <shachaf> map :: (m -> n) -> ... m ... -> ... n ...
22:45:29 <elliott> you have a contravariant m
22:45:44 <elliott> djinn will tell you the same
22:47:25 <oerjan> shachaf: besides what elliott said, that would require me having any idea what now and later do in the first place
22:47:49 <lambdabot> Monoid m => m -> (m -> t) -> m -> t
22:47:53 <lambdabot> Monoid m => (t1 -> m) -> (m -> t) -> m -> t1 -> t
22:47:59 <shachaf> > run (now "x = " . later show . now ", y = " . later show) 2 4
22:49:10 <elliott> I wish Haskell had syntax for "comment out the rest of the file".
22:50:23 <oerjan> elliott: make a quasiquote hth :P
22:50:35 <elliott> oerjan: quasiquotes need terminators...
22:50:47 <oerjan> elliott: yes, but you don't need to move them
22:51:29 <oerjan> [q| ... [q| ... [q| ... |] would work perfectly. well, assuming you don't use a quasiquote for anything else.
22:51:51 <shachaf> elliott: Just leave a -} at the end of the file?
22:51:56 <shachaf> Are you nesting these or what?
22:52:12 <elliott> Also moving the {- to the end is annoying.
22:52:15 <oerjan> elliott: ooh, you can leave --} at the end of file
22:52:17 <elliott> I'd prefer to just delete the line.
22:52:28 <elliott> I might actually do that, thanks!
22:59:56 <Jafet> In C, end comments with //*/
23:01:19 -!- ais523 has joined.
23:04:23 <Taneb> ais523, Phantom_Hoover updated his Tumblr, finally
23:04:27 <Taneb> I suggest you check it out
23:04:38 <shachaf> Taneb: I thought that was you.
23:05:09 <Taneb> phantom-hoover.tumblr.com
23:07:41 -!- sebbu has quit (Ping timeout: 276 seconds).
23:07:43 <ais523> Phantom_Hoover: what do you think of my BF derivatives? they're mostly along the lines of "using a language people know to explore the implications of a new idea"
23:07:54 <ais523> rather than "let's rename BF's commands and give it a bit of sugar"
23:08:06 -!- sebbu has joined.
23:08:07 -!- greyooze has joined.
23:08:46 <elliott> ais523: half of your brain gets to remain grey matter
23:08:53 <elliott> hope you're ok with the other half being brick
23:09:14 <ais523> elliott: I disagree with this assessment
23:09:15 <shachaf> What if the brick is græy?
23:09:23 <oerjan> bricks are no joking matter
23:09:29 <ais523> shachaf: did you seriously just typo æ?
23:09:31 <elliott> ais523: sorry, Phantom_Hoover makes the rules
23:09:39 <shachaf> ais523: Just being politically correct, man!
23:09:48 <shachaf> elliott gets mad when I say "gray".
23:09:53 <ais523> oh, between US and UK English?
23:10:03 -!- GreyKnight has quit (Ping timeout: 255 seconds).
23:10:11 -!- greyooze has changed nick to GreyKnight.
23:10:21 <shachaf> I know it's not *actually* correct. But what's actual correctness next to political correctness?
23:10:48 * ais523 wonders what scots for "grey" actually is
23:10:50 <shachaf> Anyway æ is about as easy to type as, saay, P
23:11:36 <ais523> shachaf: altgr-a rather than shift-p?
23:11:45 <ais523> I think P is a little easier because there are two shift keys in convenient locations
23:11:54 <ais523> and only one altgr and it's in a bit less of a convenient location
23:12:06 <Gregor> No TRUE Scotsman pronounces vowels.
23:12:10 <ais523> (and US keyboards have no altgr at all, apparently)
23:12:21 <ais523> this is how you type perl 6
23:12:24 <shachaf> ais523: My keyboard is a US keyboard.
23:12:40 <ais523> my @numbers = «one two three four five six seven eight nine ten»
23:12:45 <ais523> shachaf: but us keyboards don't have an altgr
23:12:53 -!- sebbu has quit (Ping timeout: 276 seconds).
23:12:56 <shachaf> ais523: I didn't know you were a keyboard.
23:13:00 <ais523> err, and I forgot the semicolon
23:13:06 <ais523> shachaf: that's a non sequitur
23:13:13 <oerjan> Gregor: i feel sorry for those half-scottish half-hawaiian people
23:13:15 <Taneb> ais523, "us keyboards"
23:13:30 <ais523> oh, it's just a bad pun then
23:13:40 <olsner> i haven't found any æ on my us layout, but it's altgr-ä on the swedish layout
23:13:47 <ais523> it's how I type ö or whatever
23:13:49 <shachaf> Anyway, I have a US keyboard, I think.
23:14:08 <shachaf> This keyboard layout is shown as a little US flag.
23:14:12 <Taneb> You're in the land my grandmother was born!
23:14:34 <Taneb> For someone of my accent, I have very few grandparents born in the UK
23:14:38 <shachaf> I think I'm in the land my grandmother was born, too.
23:14:58 <shachaf> It's a big place, as elliott will tell you.
23:15:13 <Taneb> One in California, two in the Netherlands, one in England but he was raised by nuns
23:15:29 <shachaf> You have a lot of grandmothers.
23:15:33 <GreyKnight> hopefully Perl6 supports Unicode identifiers so I can do my @😻 = «one two three four five six seven eight nine ten»;
23:15:42 <ais523> GreyKnight: yes, it does
23:15:49 <ais523> although they need to be letter-like for use as variable names
23:16:02 <ais523> you can define arbitrary paren-like unicode for use as paren-like operators
23:16:19 <shachaf> The worst thing about altgr is the name.
23:17:29 <Sgeo> Taneb, elliott monqy Fiora Phantom_Hoover there was an update, I don't know w aht time it was
23:17:49 <Taneb> The "you there gurl" one?
23:18:30 <Sgeo> I kind of just woke up. At around 6pm
23:19:42 -!- greyooze has joined.
23:19:57 <greyooze> shachaf: it's for when regular Alt isn't angry enough for you
23:19:59 <greyooze> ais523: well, at least I can exploit the difference between my $𝖠 = 1; and my $A = 2; That should prove hilarious.
23:20:13 <shachaf> greyooze: You must be American.
23:20:25 -!- Frooxius has quit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204]).
23:20:33 -!- GreyKnight has quit (Ping timeout: 276 seconds).
23:20:36 -!- greyooze has changed nick to GreyKnight.
23:20:43 <Taneb> Are you Finnish or Hexham-y?
23:21:36 <kmc> apparently italy is #1 in the world for having power plants connected to the Internet with default passwords
23:21:53 <Bike> really? the news keeps telling me that's the american midwest
23:22:51 <kmc> the "SCADA Strangelove" talk says it's Italy
23:22:51 -!- sebbu has joined.
23:22:52 -!- sebbu has quit (Changing host).
23:22:52 -!- sebbu has joined.
23:22:55 <kmc> US also does quite poorly of course
23:23:06 <kmc> they haven't said
23:23:13 -!- Taneb has quit (Quit: Leaving).
23:23:21 <kmc> but 54% of vulnerabilities were in europe
23:23:25 <Bike> bother, i need exactitudes in incompetence
23:23:26 <kmc> compared to 39% in north america
23:23:42 <fizzie> GreyKnight: I hope it's at least some kind of .*xham, in any case.
23:23:56 <Bike> hm, i wonder if there's been anything big since the french airforce grounded themselves from that one virus back in... was that last year?
23:24:42 <kmc> ok here are the numbers: http://scadastrangelove.blogspot.com/2012/11/scada-safety-in-numbers.html
23:24:53 <fizzie> Do we have here anyone from Wrexham? That sounds like it's the more hard-core version of Hexham.
23:25:16 -!- zzo38 has quit (Remote host closed the connection).
23:25:50 <fizzie> The kind that just wrecks stuff.
23:26:45 <GreyKnight> "Think of a monad as a spacesuit full of nuclear waste in the ocean next to a container of apples. Now, you can't put oranges in the space suit or the nuclear waste falls in the ocean, *but* the apples are carried around anyway, and you just take what you need."
23:27:27 <ais523> GreyKnight: I don't quite think that metaphor is internally consistent
23:27:42 <ais523> shachaf: he's more likely reading a monad tutorial (perhaps a spoof one) than writing one
23:27:53 <Bike> why would you put the waste in a spacesuit?
23:27:59 <GreyKnight> I have no idea if it's consistent or not, I don't understand what it's trying to say :-)
23:28:12 <ais523> GreyKnight: well, exactly
23:28:13 <lambdabot> Veinor says: a lot of the stuff I'm thinking of for programs to write is IOy and not really suited to Haskell.
23:28:16 <Bike> that monads are like burritos
23:28:18 <lambdabot> Veinor says: a lot of the stuff I'm thinking of for programs to write is IOy and not really suited to Haskell.
23:28:24 <ais523> I meant that the metaphor made no sense even independent of what it was trying to describe
23:28:34 <lambdabot> No quotes for this person. There are some things that I just don't know.
23:28:37 <lambdabot> dons says: Think of a monad as a spacesuite full of nuclear waste in the ocean next to a container of apples. now, you can't put oranges in the space suite or the nucelar waste falls in the ocean, *
23:28:37 <lambdabot> but* the apples are carried around anyway, and you just take what you need.
23:28:37 <GreyKnight> apparently someone has a metaphor of monads as being like the Hotel California (I have no link sorry)
23:28:45 <kmc> hex yourself before you wrex yourself
23:28:51 <kmc> yeah those are shitty analogies though
23:28:55 <kmc> /most/ monads are not "one-way"
23:29:07 <Bike> but hotel california is itself a metaphor for drug addiction!!!
23:29:07 <kmc> this is a special property of the IO monad (and a few others) and focusing on it causes no end of confusion
23:29:20 <ais523> kmc: the identity monad is sometimes used for that property
23:29:39 <GreyKnight> Bike: in other words, monads are like drugs. Don't do monads kids
23:29:42 <shachaf> Identity is one of the worst examples.
23:29:49 <kmc> i dunno, this doc puts USA ahead of Italy
23:29:53 <kmc> but they clearly said Italy in the talk
23:30:01 <kmc> whatever, the takeaway message is that we are all fucked
23:30:03 <GreyKnight> we need the monadiest monad that ever monaded
23:30:12 <Bike> i was going to say, the clear message is that fuck everything
23:30:17 <ais523> shachaf: identitiy is still a useful monad
23:30:23 <ais523> it's basically what Perl taint is
23:30:31 <kmc> i can only hope that the 55 year old nuclear reactor 2 blocks away from my house is too old to have SCADA
23:30:34 <Bike> soon the azerbaijani terrorists will destroy our railways with their cybernet
23:31:00 <ais523> shachaf: think about what the identity monad lets you do
23:31:02 <ais523> it's not a lot, really
23:31:07 <ais523> you can lift things to it, and that's about it
23:31:18 <ais523> perl taint is similar, you can lift things to it, but not do much else
23:31:22 <ais523> (except that it's dynamic rather than static)
23:31:31 <shachaf> ais523: You can also "unlift" things from it.
23:31:47 <shachaf> > runIdentity (Identity 5)
23:31:52 <ais523> shachaf: only if you have a runIdentity or the like
23:32:23 <ais523> (you can write an untaint in Perl, but because taint exists mostly for security purposes, it's typically a bad idea to do so)
23:32:39 <shachaf> ais523: Well, you do have that, though.
23:32:46 <ais523> actually, there are two ways to untaint in Perl, and they're both nonobvious
23:32:56 <shachaf> Maybe you mean writing code which is polymorphic to work with any monad.
23:32:57 <ais523> my ($untainted) = keys {$tainted => 1};
23:33:01 <oerjan> `addquote <kmc> i can only hope that the 55 year old nuclear reactor 2 blocks away from my house is too old to have SCADA
23:33:05 <HackEgo> 898) <kmc> i can only hope that the 55 year old nuclear reactor 2 blocks away from my house is too old to have SCADA
23:33:16 <ais523> and $tainted =~ /^(.*)$/; $untainted = $1;
23:33:31 <ais523> shachaf: no, I don't mean that at all
23:34:12 <shachaf> ais523: Do you just mean "keeping track of things for your own convenience"?
23:34:37 <shachaf> So you can keep track of a value being "bad", or something.
23:34:48 <shachaf> Note: I don't know what Perl's taint is. I should probably have figured that out first. :-)
23:35:24 <oerjan> that's pretty much what perl's taint does
23:35:31 <GreyKnight> "I don't understand this but here are my thoughts on it" :-)
23:35:34 <ais523> shachaf: perl's taint is intended to avoid accidental injection bugs in programs (SQL injection is easy to avoid in Perl, but things like shell injection might not be)
23:35:57 <GreyKnight> next stop, shachaf writes a taint tutorial comparing taint to an apple full of nuclear waste
23:35:59 <shachaf> OK. That sounds like the situation I would make up a new type for a tainted thing.
23:36:01 <ais523> basically, any value that comes in from outside the program (user input, environment variables, etc) is of a tainted data type
23:36:13 <ais523> you can convert untainted types to tainted types trivially
23:36:32 <ais523> and all operations have tainted versions as well as untainted versions (which are spelled the same)
23:36:43 <ais523> and Perl will bitch if you try to use tainted data for, e.g., system() or eval()
23:36:45 <shachaf> Identity doesn't mean "tainted", and it does mean some other things sometimes, so that sounds like a bad use of the type to me.
23:36:57 <ais523> you can use Identity to implement taint, if you feel like it
23:37:07 <ais523> and if you really need to untaint data, you can
23:37:20 <shachaf> I'd rather use a type that meant "tainted".
23:37:26 <shachaf> Even if it had the same implementation as Identity.
23:37:28 <ais523> the intended method to untaint stuff is by matching it against a regexp that ensures it contains no evil characters
23:37:46 <ais523> shachaf: well, yes; you wouldn't use Identitiy itself, but it'd still be an identitiy monad
23:37:49 <ais523> just one with a different name
23:37:58 <ais523> having the same implementation as Identity makes you an identity monad by definition
23:38:30 <shachaf> In this case the "you can't get things out of it" property still doesn't really hold.
23:38:50 <shachaf> I think runIdentity is an important part of Identity's interface. :-)
23:39:04 <shachaf> Anyway this sounds like a fruitless discussion at this point.
23:39:42 <ais523> haha: Linux market share on Steam is more than 10% of Windows 8 market share on Steam
23:41:10 <ais523> somehow I find this hilarious
23:42:49 <GreyKnight> Because the Linux share is small, or the Windows 8 share is big?
23:44:07 <ais523> GreyKnight: because the Linux share is way bigger than it should be relative to the Windows 8 share
23:44:18 <ais523> considering how much more popular Windows is than Linux for gaming
23:44:24 <ais523> and how there are basically no Linux games on Steam yet
23:44:30 <ais523> and how Steam for Linux is still beta
23:44:45 <ais523> I think it speaks more to Windows 8 being unpopular than anything else
23:46:25 <oerjan> shachaf: {-# LANGUAGE GeneralizedNewtypeDeriving -#} module Data.Tainted (Tainted) where newtype Tainted a = T a deriving (Monad) -- hth
23:46:54 -!- GreyKnight has quit (Ping timeout: 240 seconds).
23:46:56 <elliott> as is your comment terminator :P
23:46:59 <shachaf> How do you GeneralizedNewtypeDerive Monad?
23:47:12 <oerjan> elliott: hey he wanted a Tainted type you couldn't get things out of :P
23:47:16 <shachaf> That's pretty generalized.
23:47:51 <oerjan> shachaf: {-# LANGUAGE GeneralizedNewtypeDeriving -#} module Data.Tainted (Tainted) where import Control.Monad.Identity; newtype Tainted a = T (Identity a) deriving (Monad) -- hth
23:48:38 -!- GreyKnight has joined.
23:48:44 * oerjan thought elliott meant the --}
23:49:06 <Jafet> deriving instance Monad Tainted
23:49:18 <shachaf> Also you should use Tagged
23:49:28 <Jafet> ghc is confused about gerunds
23:49:39 <Bike> gerunds are hard, though.
23:49:41 <elliott> oerjan: it's still useless
23:49:47 <elliott> since it's just data Tainted a = BlackBox
23:49:53 <oerjan> Jafet: what? deriving is the right syntax surely...
23:50:25 <oerjan> elliott: <oerjan> elliott: hey he wanted a Tainted type you couldn't get things out of :P
23:53:31 <Sgeo> http://bugs.racket-lang.org/query/?cmd=view&pr=13414
23:53:41 * Sgeo got a documentation mistake fixed!
23:53:50 <oerjan> @hoogle Exception e => e -> a
23:53:51 <lambdabot> Control.Exception.Base throw :: Exception e => e -> a
23:53:51 <lambdabot> Control.Exception throw :: Exception e => e -> a
23:53:51 <lambdabot> Control.OldException throw :: Exception e => e -> a
23:54:12 <shachaf> monqy: do you like chocolate ice cream
23:54:21 <monqy> idk. i prefer vanilla.
23:54:33 <monqy> chocolate ice cream isnt my thingwhy do you ask
23:54:38 <olsner> chocolate ice cream is surprisingly ungood
23:54:40 <oerjan> elliott: i realized it needs to be data not newtype, to close the evil fmap throw x `seq` loophole
23:54:55 <monqy> vanilla ice cream is: good: though
23:55:13 <GreyKnight> Sgeo: not updated on http://docs.racket-lang.org/htdp-langs/beginner.html#%28def._htdp-beginner._%28%28lib._lang/htdp-beginner..rkt%29._pi%29%29 yet though :-(
23:56:55 <elliott> oerjan: what kind of sandbox lets you use IO exactly
23:58:51 <Jafet> elliott: http://codepad.org
23:59:20 <Sgeo> http://www.reddit.com/r/programming/comments/160yie/json_isnt_a_javascript_subset/
23:59:38 <olsner> hmm, in a real sandbox it's really quite easy to move objects in and out of the sandbox
23:59:42 <kmc> it's also wrong to talk about M Int as "a box you can't get the Int out of" because in most cases there is no Int inside to begin with!