00:00:02 not the one I have IRC on 00:00:26 fizzie, http://serverfault.com/questions/345111/iptables-target-to-route-packet-to-specific-interface 00:01:26 hm what is MASQUERADE in iptables now again? 00:02:04 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 To make it easier to configure things when the address is dynamically assigned. 00:02:40 fizzie, well my address is dynamic on the VPN side 00:02:45 so yeah 00:03:15 Then "-j MASQUERADE" does sound easier than "-j SNAT --to-source $INSERT_VPN_ADDRESS_DYNAMICALLY_HERE". Though not terribly much so. 00:04:37 well yeah 00:04:59 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 a reflection: on a flexibility-usability scale, iptables is on the far end of flexibility. 00:05:36 while stuff like pf, and ufw even more so is on the other end 00:08:03 Think I'll sleep now; night. 00:08:19 cya 00:08:25 fizzie, thanks for all the help 00:15:01 -!- GreyKnight has quit (Quit: .). 00:15:47 oh god, I just realised I have to work around the existence of network-manager, since this is debian 00:15:48 -_- 00:16:32 well I'll replace that with static routing for this computer I think 00:24:08 http://failcube.forumlaunch.net/viewtopic.php?f=20&t=98 why isn't this guy in our channel o.0 00:28:16 I just wondered 00:29:28 my small lispalike interpreter keeps track of allocated pointers in a list 00:30:18 i could easily implement simple mark&sweep GC 00:30:28 but i'm in doubt 00:31:07 why are you in doubt 00:31:10 nooga, why not use a generational compacting GC? 00:31:13 when it should run the GC 00:31:16 it is what all the big boys do 00:31:20 concurrent too 00:31:35 Vorpal: because 64kB, no way to implement concurrency 00:31:48 just have it run the gc when an allocation puts you over 50% usage or something 00:32:10 uhm 00:32:15 good idea 00:32:35 nooga, embedded? 00:32:42 yes 00:32:54 Bike, so if you have constant 75% usage you run an allocation every time? 00:32:56 err 00:32:58 a sweep 00:33:08 yes 00:33:24 seems like a potential waste of time 00:33:24 that's the time when you come up with a better solution, but until then who cares 00:33:30 strings are the worst 00:33:31 hm 00:33:56 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 parsing s-exps requires copying some tokens 00:34:28 and then, probably, freeing most of them 00:34:44 nooga, why do you have to copy them? 00:34:48 except for symbol names 00:34:50 why not copy on write when you have a GC 00:36:23 nooga, or create the concept of a substring type: '(string start-idx stop-idx) 00:36:39 then make all your string routines able to work on that 00:36:44 well, when you tokenize (lambda (x) (+ x x)), you've probably got lambda in the symbol table 00:36:58 nooga, true, where is the copy involved? 00:37:06 you will also need x for some time 00:37:21 to match against symbol table 00:37:24 nooga, again, this could reference the input source string that you are parsing 00:37:29 for the moment 00:37:43 given a sub string type 00:38:12 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:27 but until then? 00:38:31 yeah 00:38:36 but what I did was 00:39:30 go on 00:39:49 tokenize&parse input and then check against symbol table during eval 00:39:56 hm 00:40:35 meh 00:40:40 i'll rewrite this 00:40:41 hm true, there are some good reasons to not keep the string around during eval 00:40:45 it's only 300 loc 00:41:28 -!- WeThePeople has joined. 00:42:35 night 00:43:00 night 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 do you think 'i' is good name for an irc client ? : 01:18:41 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 https://twitter.com/DroneInsertion 01:19:47 true, but I have no other ideas .. any catchy names flying by your heads ? 01:19:55 ircIV 01:20:00 kmc, https://twitter.com/Friend_Computer 01:20:07 ah, iv was my other idea :P 01:20:25 also rather too hard to google, i suspect 01:21:58 Apple has trademarked the letter i, you can't use it 01:22:58 can i say, "iSee" what you did there ? 01:23:13 * Sgeo misses iRateRadio 01:26:22 -!- sebbu2 has joined. 01:26:42 that could get iRksome 01:29:58 -!- sebbu has quit (Ping timeout: 272 seconds). 01:48:47 Why is sortBy (compare . fst) $ zip logs numbers giving me a type error ;_; 01:49:15 @ty compare . fst 01:49:16 Ord a => (a, b) -> a -> Ordering 01:49:27 Oh 01:49:34 I see 01:49:41 >_< 01:49:45 "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 FreeFull: (When you ask a question like that, you should include the error! Otherwise people have to read your mind.) 01:50:03 that sounds fascinating 01:50:25 Kids and their rootkits these days! 01:51:49 So what would be a pointfree way to write (\(a,b) (c,d) -> compare a c) 01:52:18 compare `on` f 01:52:20 Or comparing f 01:52:28 In this case f=fst 01:52:32 if your rootkit is not at least ring -10 you are just a loser 01:53:13 My rootkit is at ring banana phone. 01:58:25 Oh, I should watch some more CCC stuff 01:58:36 And keep thinking through my design of Racket-Qoppa 01:59:26 I forgot haskell had fast bignums and laziness 01:59:27 And file a bug report against the Racket documentation, I should really do that now 01:59:40 I think there is a much simpler solution to what I'm doing 01:59:49 fignums 02:02:35 Sgeo: you're creating a racket language for qoppa? cool 02:03:07 Lazinums. 02:03:22 hi tswett 02:03:25 Ahoy. 02:03:32 Anything exciting to tell us about natural numbers? 02:03:39 Nope. 02:04:02 So, I've been pondering how to combine all the best features of C++ with all the best features of Haskell. 02:04:16 elliott wants to add C++ templates to Haskell. 02:04:41 I think it's simple. Take C++, and remove fields. 02:05:03 Boom. Best of both worlds. 02:05:42 Mm, on second thought, fields are kind of useful. But all fields should be immutable outside of constructors. 02:05:48 What are the features of C++ templates other than what Haskell has? 02:08:24 causing insanity... wait, never mind 02:08:34 FreeFull: well tell what you're doing and maybe we have an idea :) 02:08:46 in C++ things can be templated on integer values as well as types 02:09:15 C++: harbinger of dependently typed systems. 02:09:15 :t on 02:09:16 also C++ lets you specialize templates on specific types, which makes them non-parametric 02:09:16 (b -> b -> c) -> (a -> b) -> a -> a -> c 02:09:28 you can make it so f does something totally different from f 02:09:56 I thought that is possible in Haskell too if you have type classes, and type families 02:10:08 oerjan: I'm seeing what the largest a^b is 02:10:35 FreeFull: b*log a ? 02:10:45 > 5^8 -- this is the largest it gets 02:10:47 390625 02:10:47 oerjan: That's what I tried at first 02:10:52 just in case you have overflow problems 02:11:15 FreeFull: largest from a set of (a,b) pairs? 02:11:21 Yep =P 02:11:30 Euler 99 02:11:32 And you can make numbers as types too in Haskell. 02:11:34 https://twitter.com/pokemon_ebooks 02:12:06 I tried the log thing first 02:12:24 :t maximumBy 02:12:25 (a -> a -> Ordering) -> [a] -> a 02:13:26 Nice 02:13:53 I have code that works, it just seems to give me the wrong result = 02:13:55 =P 02:13:59 Waaaait 02:14:03 I know why 02:14:14 I found the minimum instead of maximum >_< 02:15:28 There we go :D 02:16:30 Just swapped the arguments to compare 02:17:07 OKAY 02:24:05 o.O a number of people on Reddit really like Star Trek Enterprise 02:24:53 I would ask how to beautify this Haskell code but I don't want to post Project Euler answers ): 02:25:16 "7" 02:33:14 FreeFull: maximum [a^b | (a,b) <- yourListOfPairsHere] 02:33:31 assuming the a^b is what is actually the answer 02:33:51 No, the answer is the line number 02:34:29 ah 02:34:46 I know in C you can combine string literals like "abc" "xyz" but does it work with character literals too? 02:34:59 Would FreeT (w,) IO be more or less the equivalent of Python generators? 02:35:11 I guess generators can have input too these days. But ignoring that. 02:35:53 zzo38: I don't know, multicharacter literals don't get used much 02:36:08 I would guess so, if they are like JavaScript generators. 02:36:27 For input too you need the free monad of the indexed store comonad. 02:37:36 Foo i o a = (o, i -> a)? 02:37:46 Not Foo i o a = i -> (o, a)? 02:38:53 -!- TeruFSX has joined. 02:39:09 FreeFull: main = print . fst . maximumBy (compare `on` snd) . zip [1..] . map (\[a,b] -> a^b) . map words . lines =<< getContents -- >:) 02:39:30 shachaf: Yes. At least if it is like JavaScript generators, then (o, i -> a) is correct. 02:39:42 oh oops 02:39:48 needs some read in there 02:41:14 Already solved it 02:41:38 FreeFull: i was just prettifying my imagined solution 02:45:41 The file's contents are stored as 23452345,234521 on each line 02:49:39 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 has anyone made any progress on the narcissus-free language front? 02:49:49 while primitive wrap works 03:00:59 -!- c00kiemon5ter has quit (Quit: c00kiemon5ter). 03:01:42 -!- c00kiemon5ter has joined. 03:05:48 :/ copy/pasting the definition of map from one Racket language to another can result in two maps with different semantics 03:06:01 I don't like the thought of copy/pasting though 03:06:19 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 does it have kernel's cyclic list semantics 03:07:18 I'm more interested in implementing Qoppa than Kernel, at least at this point. Qoppa's much simpler 03:07:39 And doesn't require me changing the reader to get rid of quasiquote 03:08:18 heh. 03:08:21 zzo38: do you have any ideas? 03:08:24 Also, I don't remember what Kernel's cyclic list semantics are 03:08:52 lemme put it this way, you need an lcm function to implement map. 03:12:06 o.O 03:12:29 I really really do like the name $define! 03:12:40 why so? 03:13:06 It describes that it's a non-applicative operative and that it does a side effect 03:13:46 we should rewrite scheme in Ro. 03:14:00 Ro? 03:14:42 A philosophical language from I think the 19th century. Idea was you encoded meaning as a tree of phoneme selections. 03:14:49 FreeFull: read ('(':line++")") or read ('[':line++"]") is a nice way to read comma separated tuples or lists :) 03:15:13 Oh, ok, I see the relevant to what I said 03:16:09 *separated data into 03:17:24 oerjan: True 03:17:38 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 Ugh, I'd really like to be able to stick a piece of metadata onto things 03:18:23 A tag, saying "do not evaluate" 03:18:27 For Racket interop 03:18:37 ' 03:18:59 Haskell's read function does not normally accept comments. 03:19:52 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 quintopia: Idea of what? I don't know. 03:20:24 hilariously difficult to locate bugs? 03:20:26 Hmm, although I guess quote semantically does make sense here 03:20:57 zzo38: a narcissus-free programming language 03:21:11 quintopia: No, I don't have an idea. 03:21:40 I did once, but I was not complete of it and I forget what I had. 03:21:44 And it didn't work. 03:22:57 -!- DHeadshot has quit (Read error: Connection reset by peer). 03:23:02 -!- DH____ has joined. 03:25:44 oh 03:32:07 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 FreeFull: you didn't want to use on? 03:32:54 I couldn't find where it's defined 03:33:02 Data.Function is one place 03:33:10 @hoogle on 03:33:10 Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c 03:33:11 Control.Exception.Base onException :: IO a -> IO b -> IO a 03:33:11 Control.Exception onException :: IO a -> IO b -> IO a 03:33:33 @src on 03:33:33 (*) `on` f = \x y -> f x * f y 03:33:43 Also I told you about comparing, which also works here. 03:34:50 @hoogle comparing 03:34:50 Data.Ord comparing :: Ord a => (b -> a) -> b -> b -> Ordering 03:35:47 So I guess comparing snd ? 03:36:02 yeah 03:36:34 -!- Phantom_Hoover has quit (Remote host closed the connection). 03:39:50 Do I even dare try making \x -> read ('(':x++")") pointfree by hand 03:40:14 It's not that hard. 03:40:22 Start by rewriting it in prefix form. 03:40:37 It is for a pointfree novice 03:40:54 don't be a wuss, freefull. wusses are so full of points. 03:41:08 I just figure the pointfree version would be shorter =P 03:41:14 Probably not. 03:42:02 I know (\(x,y) -> y * log x) can be written as (uncurry ((*) . log)) 03:43:21 So you saved... -1 characters. 03:43:52 Bike: @pling is not about golfing. 03:43:58 Golf is a separate activity. 03:43:59 @where pi 03:44:00 I know nothing about pi. 03:44:01 @where pi_10 03:44:01 (!!3)<$>transpose[show$foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..2^n]|n<-[0..]] 03:44:03 @where e_10 03:44:04 [show(sum$scanl div(100^n)[1..[4..]!!n])!!n|n<-[0..]] 03:44:10 Ah, that's a nice e_10 03:44:15 What is pling 03:44:30 It's a sound bicycles make. 03:44:33 It's very nice. 03:44:37 Bikes don't make it, though. 03:44:37 *PLING* 03:44:43 Bike: I don't know how you count, because the uncurry version actually has exactly the same length 03:44:44 Hoity toity bicycles, maybe. 03:45:03 I count it in "i dumped it into a program because i can't count" style. 03:45:19 Maybe you removed the unnecessary spaces 03:45:25 Which would make the first one shorter 03:46:14 @where exp 03:46:15 I know nothing about exp. 03:46:24 >exp 1 03:46:29 > exp 1 03:46:30 2.718281828459045 03:46:33 There you go 03:46:35 e 03:46:47 man that ain't even a continued fraction. Sucks. 03:49:14 -!- WeThePeople has quit (Ping timeout: 240 seconds). 03:49:16 Hadn't spotted this one on the Wiki... http://t.co/6wE3jfdl 03:49:33 I'm ont clicking a t.co link. 03:49:37 i read that earlier 03:49:39 pretty hilarious 03:49:43 Please post an unshortened version. 03:49:43 reach out to him 03:50:18 https://github.com/munificent/vigil shachaf. 03:50:27 Oh. 03:51:19 and shachaf was touched 03:59:36 > exp 1 :: CReal 03:59:38 2.7182818284590452353602874713526624977572 04:00:00 Bike: BETTER? 04:01:56 why would more digits make it better 04:03:08 well CReal is unlimited in theory 04:03:38 yeah but it's represented as a function i bet 04:03:48 iirc yes 04:04:19 do you know what functions are oerjan? they are not fractions hardly at all. 04:05:33 > unfoldr (\x -> let f = floor x in Just (f, 1/(x-f))) (exp 1 :: CReal) 04:05:35 No instance for (GHC.Real.Integral Data.Number.CReal.CReal) 04:05:35 arising from... 04:05:42 oops 04:05:49 > unfoldr (\x -> let f = floor x in Just (f, 1/(x-fromIntegral f))) (exp 1 :: CReal) 04:05:51 haskell, language of no instance for 04:05:53 mueval-core: Time limit exceeded 04:06:00 ): 04:06:09 > take 50 $ unfoldr (\x -> let f = floor x in Just (f, 1/(x-fromIntegral f))) (exp 1 :: CReal) 04:06:12 [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 PAY NO ATTENTION TO THE CUTOFF BEYOND THE CURTAIN 04:07:38 i thought haskell had infinite datatypes. where are my infinite datatypes oerjan 04:07:53 it doesn't have 04:08:12 what! 04:08:25 only via wrappers, not directly 04:09:14 > [2,1] ++ intercalate [1,1] $ [2,4..] -- LOOK MA I'M INFINITE 04:09:16 Couldn't match expected type `[t0]' 04:09:16 with actual type `[[a0]] -... 04:09:22 if i'd typed, that is 04:09:25 y'all are good at this. 04:09:45 > (++) [2,1] . intercalate [1,1] $ [2,4..] -- LOOK MA I'M INFINITE 04:09:46 No instances for (GHC.Enum.Enum [t0], GHC.Num.Num [t0]) 04:09:46 arising from a u... 04:09:46 any particular reason you didn't stick with [2,4..]? 04:09:54 > [3,7...] 04:09:55 A section must be enclosed in parentheses thus: (7 ...)Not in scope: `...' 04:09:55 ... 04:10:06 > [3,7..] 04:10:07 is hyphen hyphen space a comment in Haskell? 04:10:07 [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 I thought that was just Lua 04:10:14 ais523: yes 04:10:20 hyphen hyphen is 04:10:24 > [3,7,19..] 04:10:25 :1:8: parse error on input `..' 04:10:29 but maybe not hyphen hyphen other symbol character 04:10:48 > 3 --+ 4 04:10:50 Not in scope: `--+' 04:10:58 yeah it's a -- token 04:11:22 > 3 {-+ 4 04:11:23 :1:3: unterminated `{-' 04:11:25 > 3 {-+ 4 -} 04:11:27 3 04:11:35 fuck yeah 04:11:50 > 2+2----------------------------hi there 04:11:52 4 04:12:08 whose law is it that lexical syntax of comments will cause the most controversy in any language design? 04:12:14 wadler's law 04:12:15 (except in #esoteric, who mostly don't care) 04:12:36 see also parkinson's law of triviality 04:12:36 kmc: wow, I'm vaguely impressed that you knew it without looking it up :) 04:12:45 he mentions it all the time 04:12:48 our favorite comment syntax is "any unused command character" :) 04:12:55 > 2+2 REM 19 04:12:56 Not in scope: data constructor `REM' 04:13:06 oerjan: it doesn't scale well 04:13:24 I think my favourite comment syntax is "thing that incidentally happens to be unexecuted due to the semantics of the language" 04:13:29 such as (comment)*0 in BF Joust 04:14:00 (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 ais523: you realize wadler was one of the haskell designers, right? 04:14:45 oerjan: I had a vague memory of something like that 04:14:51 I thought it was haskell-related, at least 04:14:56 or at least some haskell-like language 04:15:42 and that they had a unique approach to dealing with the issue known as "the syntax czar" 04:17:50 I didn't know that 04:17:54 and it's not really unique 04:18:02 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 '" vaginal photoplethysmography" redirects here. For other uses, see vaginal photoplethysmography (disambiguation).' 04:25:05 what the hell else could that be 04:25:52 Probably an album name. 04:25:59 yeah 04:26:03 the disambig link is dead though 04:27:17 and not in the logs either 04:29:04 someone probably added the template without knowing what it was for 04:37:41 can I make a stupid request? 04:37:46 websites, please stop using black backgrounds 04:38:02 I like black backgrounds and light foregrounds late at night to reduce the overall light level in the room 04:38:20 and thus, I want to be able to turn inverse video on and just leave it on 04:38:25 without the occasional shock white screen 04:48:08 \rainbow{user stylesheet} 04:56:20 Crud, Racket Qoppa might be harder than I thought 04:56:21 Need to check 04:58:17 Oh, huh, guess not 04:58:25 Not entirely sure why not, but hey 04:58:35 Oh, I think I understand 04:59:22 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 (define-syntax-rule (#%app form ...) 04:59:35 (quote (form ...))) 04:59:49 That is ridiculously fun 05:00:08 > (+ 1 2) 05:00:08 '(+ 1 2) 05:00:09 Could not deduce (GHC.Num.Num (a0 -> a)) 05:00:10 arising from the ambiguity chec... 05:00:13 > (+ 1 2 (* 2 3) (* 4 5)) 05:00:13 '(+ 1 2 (* 2 3) (* 4 5)) 05:00:15 Could not deduce (GHC.Num.Num 05:00:15 (a0 -> (a1 -> a1) -> (a3... 05:00:40 Now I just need to get a good understanding of Racket eval 05:05:44 -!- oerjan has quit (Quit: Good night). 05:10:14 ais523: hi, why are you awake? 05:10:25 I'm often up this late 05:10:35 when it gets to about 5am, I tend to wait for sunrise before going home 05:10:40 it's a nicer journey that way 05:11:57 -!- DHeadshot has joined. 05:13:24 -!- mig22 has joined. 05:13:31 ais523: I just woke up :( 05:13:48 * elliott is really tired. 05:15:29 -!- DHeadshot has quit (Read error: Connection reset by peer). 05:15:34 -!- DH____ has joined. 05:19:06 elliott: going back to sleep would not be unreasonable, if you can 05:19:21 ais523: well there's a problem 05:19:29 ais523: i decided i should get up when i was even more tired than this 05:19:44 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:20:25 ah, hmm 05:21:20 also I have this sneaking suspicion that if I went back to bed I'd wake up late afternoon again 05:21:26 which I just spent several days trying to stop 05:22:41 ah, right 05:23:36 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 kmc, can Qoppa environments be opaque to Qoppa? 06:08:57 hm 06:09:03 not in the language i described in that blog post 06:09:24 you need to maniuplate environments in order to define 'define' and 'set!' and such as library code 06:09:35 you could make them an abstract data type, but not really opaque 06:09:55 Hm, ok 06:10:25 you can have an operative languages where environments are opaque, but you need more primitives then 06:10:53 the point of qoppa was to have as few primitives and evaluation rules as possible 06:11:09 only three evaluator rules, only one primitive that isn't an applicative, i.e. function 06:11:18 i think kernel's having environments only used for eval, and $define! as an optional primitive, made pretty good sense. 06:11:47 that primitive being vau 06:11:59 but even vau is a name bound to a value in the global environment, and not a special evaluator rule 06:13:08 The namespaces that Racket eval accepts as an argument don't seem to be _very_ modifyable 06:13:29 Bike: in what way is it optional? 06:14:01 kmc: in that the spec separates out environment mutation stuff as optional, and the author says "optional" 06:14:16 would be a bitch to define letrec without it though 06:14:29 ok 06:15:20 would be hard to use the language without $define! but so it goes 06:15:43 elliott, Fiora monqy 06:24:09 having both operatives and applicatives at a fundamentel level seems inelegant 06:24:17 it might be the right decision though 06:24:23 would be interested to understand that tradeoff better 06:24:37 kmc: zepto just had operatives 06:24:46 and an applicative was just an operative that happened to evaluate all its arguments in order first 06:24:58 and there existed an operative to automatically wrap an operative into one of those 06:25:11 yeah, that's how qoppa is as well 06:25:21 is that not how kernel is...? 06:25:27 but it makes it tricky to write 'apply' 06:25:30 Bike: no, it has both as primitive types 06:25:43 and 'wrap' and 'unwrap' are language primitives 06:26:11 in qoppa 'wrap' is a kinda hackish library thing, and 'unwrap' doesn't exist 06:26:24 kmc: apply is quite easy? 06:26:32 I just did (apply f xs) = (eval (cons f xs)) basically 06:26:45 (apply if '((> x 2) "yay" "nay")) working is cute 06:26:55 no, sorry, wrap is fine, but 'apply' is weird 06:27:00 yeah 06:27:04 let me look again 06:27:15 I mean it's obviously weird and violates all reasonable ideas of abstraction 06:27:18 but isn't that kind of the point 06:30:13 mine is more like (apply f xs) = (eval (cons f (map (lambda (x) (list quote x)) xs))) 06:30:23 because f is an applicative and so it's going to call 'eval' on its arguments 06:30:28 but the xs are already evaluated 06:30:32 oh, right 06:30:38 yes, that's what I did, you're right 06:30:44 in fact I even used the "map" in scope 06:30:49 if you had unwrap you would do (apply f xs) = (eval (cons (unwrap f) xs)) 06:30:50 so if you redefined "map", "apply" would start working weirdly 06:30:53 that's just how zepto i am 06:30:56 heh 06:31:00 kmc: well you can define unwrap 06:31:04 wrap makes it eval all its arguments 06:31:07 unwrap makes it quote all its arguments 06:31:10 yeah 06:31:14 that's pretty elegant and you can do it without a notion of an applicative 06:31:15 i guess so 06:32:06 yeah i'm not sure if this business about "if you redefine map" counts as a violation of hygeine or not 06:32:19 i think basically no 06:32:32 when you close over a mutable environment, and it changes later, things can break 06:32:40 it's not specific to macro-ish things 06:33:04 and if you want to save the original value of map, you can do that easily enough 06:33:04 kmc: well you can just define apply in terms of the map in scope 06:33:07 by doing (list map ...) etc. 06:33:18 but that's so uncool 06:33:39 macros pretty much fundamentally break scoping and reasoning though 06:33:43 so I don't care 06:33:51 i did enjoy using 'lambda' to save the value of 'lambda' while using set! to redefine the value of 'lambda' 06:33:58 (to add sugar) 06:35:24 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 so you could just screw with how the interpreter works by redefining map or cons or whatever 06:35:38 or even quote 06:35:39 mm, cool 06:54:48 -!- TeruFSX has quit (Ping timeout: 276 seconds). 07:36:08 "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 god, how long ago was that now 07:36:37 is this about the sokal affair 07:37:27 yes 07:37:40 sgeo, have you seen snarxiv? 07:37:53 no 07:38:03 You should see snarxiv. 07:39:21 heterotic string is apparently a real term 07:43:44 There was one (reloaded away) about examining reheated bubbles 07:44:04 I think I can't visit that site 07:44:09 Randomness makes me feel weird 07:44:57 ^bool 07:44:58 Yes. 07:45:34 When I was a kid, I remember one Monopoly game where I recorded every roll of the dice and every action 07:45:40 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 that sounds incredibly boring, sgeo. 07:45:56 I didn't want it to be lost forever 07:47:09 I should have saved those Snarxiv titles and abstracts 07:47:28 if you reload the page enough times they'll come back!! 07:48:00 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 Sgeo: out of curiosity by any chance do you like monopoly? 07:48:38 Not especially, but for other reasons I think 07:48:45 -!- copumpkin has joined. 07:48:48 oh? 07:49:23 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 Actually I think that's when my iffyness about randomness started 07:50:01 ah... 07:50:42 i picked an awesomely coincidental time to start reading chaitin, huh. 07:53:23 Bike: if you break the roles of monopoly you'll be chaitin 07:53:31 8) 07:53:38 wow. 07:53:48 yes 07:53:48 i'm. i have to revoke your boot privileges for that one 07:54:18 I don't entirely get how Chaitin is relevant. Things other than Chaitin's Constant? 07:54:26 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 Sgeo: binary representation of his constant is indistinguishable from coin flips. 07:54:59 Bike: i dont wear boots 07:55:01 If you don't like Copenhagen interpretation, what interpretation do you like? 07:55:02 Ah 07:55:07 no the boot piece, the piece 07:55:18 Bike: i dont wear pieces of boots either 07:55:20 thats just silly 07:55:23 why would you wear only parts of a boot 07:55:27 Sgeo: also chaitin has this kind of bugaboo about math being random. 07:55:32 bike are you "trolling" me 07:55:45 that's it no car either 07:55:50 i can't work in this environment 07:55:55 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 Sometimes it does. 07:56:30 you should look at what "random" means! it's a so very interesting term 07:56:49 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 you can get quantum random numbers online a few places 07:57:27 sometimes I roll a die when elliott asks me to make a decision for him. stomach-churning??? 07:58:00 monqy, the dice likely macroscopic enough that its numbers are deterministic 07:58:17 Or, well, mostly deterministic 07:58:17 pssh, they'd still follow a distribution! 07:58:24 Sgeo: I used HotBits to determine which of two (previously-written) phrasings of this statement to send 07:58:26 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 Sgeo: the dice are a metaphor for me asking a quantum random number generator 07:58:49 has anyone considered that zzo38 may actually be God? 07:58:56 like, the guy that designed the universe we're in. 07:59:02 I think HotBits is pretty reliably ~quantum~ 07:59:02 or at least the one i'm in. y'all are weird. 07:59:10 "HotBits are generated by timing successive pairs of radioactive decays detected by a Geiger-Müller tube interfaced to a computer." 07:59:13 looks so 07:59:30 http://www.fourmilab.ch/hotbits/how3.html cool 07:59:40 Yeah, müller is like at least four quantumsworth 07:59:52 Sgeo: btw what do you mean that a die's numbers are "deterministic" 08:00:13 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 monqy, they're a function of the way the air's flowing 08:00:39 zzo38, would you like to be an antipope? 08:00:42 And of the way it's rolled 08:00:43 But, I think about a lot of things. So it isn't relevant. 08:00:59 isn't how the air flows dependent on quantum details 08:01:00 Bike: I have no intention to be pope or antipope. I also have no intention to be God. 08:01:21 You could be god unintentionally. 08:01:22 "oops" 08:01:49 But saying you can be God is about as nonsense as saying you can be a number and so on. 08:02:05 at least i am pretty sure it is 08:02:09 pebbles can be numbers, so why can't I? 08:02:15 `quote pebble 08:02:17 `quote pebble 08:02:20 monqy.... 08:02:24 540) 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 540) 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 how come this itidus dude isn't still here, he's cool 08:03:13 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 can I be a thing you count with numbers or a figure you write down to indicate them? 08:03:35 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 Well, no... not really supernatural thinking, but.... partial thinking 08:04:57 -!- Jafet has joined. 08:04:59 what's partial thinking 08:05:40 Thinking about ideas but not thoroughly 08:06:00 Maybe that's not an accurate way to describe him 08:06:33 You can't think about it thoroughly because that would take forever! 08:06:40 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 If I write a Brainhype interpreter in Scheme-omega, does that count as an implementation? 08:36:16 Despite the fact that the language I implemented it in is itself not implementable? 08:36:22 Actually, I guess it is implementable 08:36:30 Just no implementations can run on turing machines 08:36:34 philosophy question: what is an implementation? 08:36:55 Are there any completely unimplementable languages? 08:37:26 what do you mean by completely unimplementable 08:37:47 any language can be implemented in the trivial language where every program is a that-language interpreter 08:37:59 Oh. So trivially no, then. 08:37:59 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 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 Do you need to designate a point as special to define the integers/ 08:49:13 *? 08:51:50 what do you mean by designated zero point 08:52:03 what do you mean by define the integers 08:52:12 alt. "designate a point as special" 08:52:46 i guess by alt. i mean &. whoops! 08:55:18 -!- nooga has joined. 08:59:43 zzo38 is asking for something without a designated zero point 09:00:01 Does that necessarily imply that there is no 0, or just that it's not defined based on 0? 09:00:01 yes but what does that mean 09:00:09 what is a "0" 09:00:26 With peano arithmetic, you start from zero and build from there 09:00:35 I assume that's what zzo38 means 09:00:39 but what does it mean not to have a "0" 09:00:56 I don't know 09:01:01 ok 09:02:51 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 like i could define the integers as a free group but would the identity be the "0"? 09:04:59 I mean one without any identity points. 09:05:09 Or any other points as special in some way. 09:05:13 well what operations are you considering 09:06:39 since you can't talk about "identity element" without an operation for it to be the identity of 09:07:37 Only the operations I listed; no addition and so on. 09:08:37 there's nothing special about 0 if you only have succ, pred, and ordering 09:12:20 Sgeo: 0 is just a symbol for the additive identity 09:12:26 it exists iff you have an additive identity 09:13:05 though certain constructions of the integers like peano numbers (+ handling of negation so you get integers) are "based" upon 0 sure 09:13:43 pls enlarge quotes around `"based"' 09:18:51 monqy: i think calling the peano axioms "based on 0" is fair 09:19:06 monqy: it uses 0 as an "atomic element" 09:19:38 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 Does Tcl count as a macro system? 09:46:30 THANK YOU OLEG 09:46:43 I am tired of hearing the claim that Haskell does not need macros 09:49:27 hi 09:49:38 whats up 09:49:49 Reading some of Oleg's slides 09:50:13 http://okmij.org/ftp/papers/Macros-talk.pdf 09:51:39 "need" 09:58:46 I think Haskell (and other programming languages, too) would be much improved by use of macros. 09:59:11 And do-notation, list-notation, etc ought to be implemented as macros. 09:59:47 I agree 10:00:54 They are some of the things I wanted to fix with Ibtlfmm, for example. 10:01:23 C preprocessor macros is not very powerful, compared to some others. 10:03:14 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 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:30 The latter breaks for (;;) 10:06:52 Yes, with for(;;) you are correct, I forgot 10:07:35 But what if it is in a {} block instead of () block, then will it be? 10:07:56 I think it'll be fine then. 10:08:53 Is ,, ever valid in any block? 10:10:07 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:28:30 Hello 11:28:41 Hi 11:41:19 -!- GreyKnight has joined. 11:46:44 -!- GreyKnight has quit (Ping timeout: 255 seconds). 11:47:13 "So the syntax-rules design loses as a 11:47:13 result of failing to observe the very sort of constraint that it 11:47:13 imposes on anyone trying to write a block-with-implicitly-bound-break 11:47:13 macro." 11:47:17 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 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 What is a CK abstract machine? 12:41:44 -!- GreyKnight has quit (Ping timeout: 255 seconds). 12:49:09 The thing in this: http://www.ii.uni.wroc.pl/~dabi/publications/WRS07/biernacka-biernacki-wrs07.pdf ? 12:52:29 uh 12:52:45 Wrocław University 12:53:10 Cławs of Steel. 12:53:48 Słabe 12:54:03 nooga you know that on computers you don't have to cross out letters you didn't mean to put in 12:54:06 That's even better. 12:54:54 you should spell it vrotswav 12:55:18 or maybe Rocklaw 12:55:28 -!- GreyKnight has joined. 12:58:27 Rocklaw University, for all the aspiring rockstar/lawyers. 12:59:44 You, too, can be a rockstar slash lawyer. 13:00:11 -!- GreyKnight has quit (Ping timeout: 255 seconds). 13:01:15 `welcome Jafet 13:01:17 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 Jafet: Today I'm shipping rockstar slash lawyer. 13:02:25 -!- DHeadshot has joined. 13:03:23 Phantom_Hoover: really? 13:03:57 It's amazing, right? 13:04:45 trüly 13:42:01 -!- epicmonkey has joined. 13:43:48 -!- nooga has quit (Ping timeout: 248 seconds). 13:59:19 -!- nooga has joined. 14:14:31 ∆t 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 2009-02-18.txt:14:56:47: 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 in case Sgeo comes by later and realises he has a kindred spirit! 15:10:26 Joined by your love of Factor <3 15:11:07 sgeo was around in 2009 15:11:13 pretty sure sgeo even liked factor in 2009 15:11:30 anyway factor is an abandoned/dead language so it doesn't really matter what anyone thought of it in 2009 15:11:47 There's been a release since Slava left 15:12:35 oh I got the impression Sgeo's love affair with Factor was a recent thing 15:12:38 Slava left? 15:12:49 GreyKnight: it goes in cycles 15:13:07 Sgeo: I didn't know, but that's mostly irrelevant 15:13:41 Anyway they have a very nice environment. much nicer than the language really 15:13:47 and good libraries 15:14:01 never had the community though 15:14:30 Does Racket have a community? 15:14:41 What happens when PLT lose interest or retire 15:14:44 probably more than factor 15:14:51 groups don't really retire... 15:15:28 I don't think the composition of the group has changed since it formed 15:20:18 c00kiemon5ter: how about iAreSee? 15:21:34 I might just end up writing eval for Qoppa and directing #%app to call it 15:21:39 Rather than trying to use Racket eval 15:21:42 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 oh you're talking about it too, excellent :-) 15:22:24 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 doesn't kmc's original version do that anyway? 15:23:09 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 GreyKnight, pretty much, which kind of makes anything I do boring, doesn't it? 15:25:50 What I mean is, is it common for Racket languages to want to be able to mix that language with arbitrary Racket code? 15:25:50 (I don't know) 15:26:02 Yes 15:26:22 Or at least call Racket functions and have Racket functions be able to call their functions 15:26:33 in that case surely somebody has already solved this problem and we can investigate how they did it :-) 15:26:53 Look at Scribble. It's an un-lisp-looking language for documentation that has easy notation for calling Racket functions 15:27:48 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 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 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 (+ 1 2) -> (#%app + 1 2) for example assuming + is not a macro 15:36:47 There's also #%module-begin which surrounds the whole program, #%datum which is around any piece of data 15:36:49 etc 15:47:54 * GreyKnight is too tired to manage this 15:47:54 elliott: is Zepto documented anywhere? The wiki only seems to have ZeptoBasic 15:48:56 The #%module-begin thing means I could just take what's passed into it and give it to qoppa-eval 15:49:02 In theory 15:49:15 GreyKnight: no 15:49:16 But then interop with Racket might be problematic 15:53:12 elliott, did you actually implement it? 15:56:23 Phantom_Hoover: Yes. 15:59:20 -!- GreyKnight has quit (Ping timeout: 256 seconds). 15:59:30 Hmm. Presumptively, every module level form except provide and require should be function applications in Qoppa 15:59:44 So just redefining #%app should work perfectly, I think 16:04:39 Does the dialect of Scheme kmc was using not have named let? 16:05:46 -!- GreyKnight has joined. 16:06:27 GreyKnight, I'm likely to take kmc's implementation and modify it to my needs 16:08:11 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 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 Although hm are those "dye-pack" things any use here? 16:10:37 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 it seems that @CompSciFact tweets not facts about computer science but platitudes about software engineering 16:11:25 thus my quest continues :/ 16:12:09 Sgeo: right, but can another module *accidentally* create an identical structure? 16:12:18 kmc, is an implementation of Qoppa as a Racket language still interesting if it's heavily based on your code? 16:12:21 GreyKnight, no 16:12:58 ah, non-duck-typed structures? Hmm may work then... 16:13:04 Sgeo: sure, why not? 16:13:14 i don't know 16:13:20 make it if it would make you happy 16:13:25 kmc: Your quest is to find a Twitter account that tweets facts about computer science? 16:13:39 it's a bit more general than that 16:13:48 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 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 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 (qoppa-eval would be doing that work I guess) 16:21:17 I'm thinking the only special qoppa structure are qoppa-operatives 16:21:49 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 When qoppa-eval calls it, it knows to unpack the structure to get to the operative 16:22:29 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 Before passing it on to the inner structure 16:23:15 oh that's neat it can do that 16:23:41 That's more or less how keyword arguments in Racket work, actually 16:24:20 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 Which is some sort of structure wrapping around a function 16:24:42 (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 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:42 hm 16:25:47 okay, this might just be crazy enough to work 16:27:02 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 Phantom_Hoover, we need a bricking on aisle three 16:28:00 um... http://phantom-hoover.tumblr.com/ already covered that 16:29:09 oh! 16:29:19 Well, it won't hurt to brick him twice anyway 16:30:30 (I mean it won't hurt *us*. Obviously it'll hurt *him*.) 16:31:36 * Sgeo tucks BF-RLE away somewhere 16:34:31 doesn't bfjoust already do that? 16:35:45 (RLE, I mean) 16:36:12 It has a notation for repetition, if that's what you mean. 16:37:11 BF-RLE may be older than BF Joust, let me check 16:37:42 Arguably it's not "plain RLE" since you can repeat more than just a single symbol. 16:38:24 BF-RLE is 2006, BF Joust is 2008 16:40:12 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:05 ^show 16:42:06 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:11 ^how rot13 16:42:16 ^show rot13 16:42:17 ,[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+14<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>>+5[<-5>-]<2-[>+<-[>+<-[>+<-[>+<-[>+<-[>+ 16:42:24 Hrm, that wasn't the best example. 16:42:28 ^show pow2 16:42:29 +2[[<+7[-<+7>]>[-<+<+>>]<[->+<]<-2.[-]<]+4[->+8<]>.[-]>>[-[>+2<-[>+2<-[>+2<-[>+2<-[>-8>+>[->+>+<2]+>>[<2->>[-]]<2[>+<-]>[-<+>]<4-[>+2<-[>+2<-[>+2<-[>+2<[-]]]]]]]]]]<[->+<]>+>[-<+>]>>]<3] 16:42:31 ^show welcome 16:42:39 ,[.,]+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 Oh, that's a good one. 16:42:50 (fungot is 2008 too.) 16:42:51 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:53 fungot: with RLE, right? 16:43:54 GreyKnight: reuters has a bit of greek history and literature 16:43:58 (also who's colin) 16:44:09 GreyKnight: It was the hostname of one of my computers. 16:46:00 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:17 Oh, and random. 16:47:36 Oh, I wondered about Zem actually 16:47:57 -!- mig22 has quit (Ping timeout: 276 seconds). 16:48:51 "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 http://sprunge.us/aiNH 16:50:30 fizzie: Nice TRANSCRIPTION ERROR. 16:51:48 http://esolangs.org/wiki/Category:Brainfuck_derivatives Wow that's a big list 16:52:36 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 You're lying on a DEAD THING. 16:53:27 Category:Brainfuck equivalents "only" has 18 pages. 16:53:27 It's been properly taxidermied IT'S FINE 16:53:54 It has 22 for me :-S 16:54:20 lol that was awesome fizzie :D 17:02:51 -!- Taneb has joined. 17:03:11 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 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 "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 Telemachus Sneezed 17:41:01 -!- TeruFSX has quit (Ping timeout: 246 seconds). 18:06:45 Chuck Moore has been working on this: http://greenarraychips.com 18:07:26 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 maybe we can list the GA chip as a concrete example of an esoteric computer? It's certainly unusual 18:13:17 comp.lang.forth has been all about the GA144 for the last year or so. 18:13:30 I don't think anyone has really figured out what to use it for (and how) yet. 18:13:58 yeah same here 18:14:15 but it looks like one of things that "this is bound to be incredibly useful once we figure it out" 18:14:29 s/out/out!/ 18:24:26 leverage 18:25:39 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 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 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 or possibly that was part of the forum discussion 20:06:27 (iirc the house rules tend to prolong the game by giving people ways out from going bankrupt) 20:07:02 so that the least awkward way of playing monopoly is to follow the written rules _strictly_ 20:08:09 when you go bankrupt, you're out of the game? and the objective of monopoly is to go bankrupt last? 20:08:12 oerjan: oh, like adding dept? 20:08:34 So you can lend money from the bank 20:08:35 yeah i think borrowing from the bank was mentioned 20:08:49 olsner: yeah 20:08:52 -!- jiella has joined. 20:08:54 I actually won once by doing that 20:09:12 I don't recall having any house rules in monopoly, I guess we just never played it 20:09:14 although you generally lose when you have to 20:10:20 -!- epicmonkey has quit (Ping timeout: 272 seconds). 20:10:28 btw here is the famous rant http://www.irregularwebcomic.net/2623.html 20:10:35 Still doesn't change the fact that you spend most of the game waiting for whoever's in the lead to win. 20:10:44 that's true 20:10:50 I wonder if the soviet made a communist monopoly ... or maybe they just reinterpreted it as a game of being evil 20:11:08 olsner: well monopoly was originally a game of being evil iirc 20:11:12 as in it was a ~morality game~ 20:11:13 olsner: iirc monopoly _started_ as an anti-capitalist game 20:11:14 olsner: /monopoly/ is perfectly fine for communists :p 20:11:18 hence you know 20:11:20 the name 20:11:26 monopolies aren't generally considered good things 20:11:48 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 Like the Most Novel and Entertaining Game of Property and Rent, because people in the past were crap at naming things. 20:13:17 Phantom_Hoover: i'm pretty sure the wikipedia page tells all that stuff 20:14:00 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 `addquote 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 896) 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 hm i really had forgotten how epic that rant was 20:18:34 Phantom_Hoover: People in the present are, too. 20:19:23 shachaf: Unfoldy, eh? 20:19:53 elliott: blah, eh? 20:20:03 blergh!!! 20:20:55 shachaf, but at least we're terse! 20:22:30 play adfb now! 20:22:52 * oerjan thinks mashing his keyboard should have giving a better name than _that_ 20:22:59 *given 20:23:15 hjygn 20:23:59 hjygn is nice 20:24:33 -!- zzo38 has joined. 20:31:13 hjygn is a liar and a thief 20:31:18 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 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 this seems to relate to the integers in a similar way to how affine spaces relate to vector spaces... 20:45:16 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 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 (found that from Affine space) 20:48:46 zzo38: well there's no total ordering mentioned but you can easily define it 20:51:00 some order theorists write things like -N + N 20:51:25 oklopol: THAT'S JUST CRAZY TALK 20:51:27 or with omegas rather 20:51:43 oh like that yes 20:51:48 -\omega + \omega 20:51:56 then there's only the order 20:52:44 i'm a big fan of embedding orders in things 20:53:10 mm orders 20:53:45 -!- monqy has joined. 20:55:09 kmc: that sounds really interesting actually 20:55:13 kmc: should have that as an agora contest 20:55:37 @tell zzo38 http://en.wikipedia.org/wiki/Principal_homogeneous_space seems to include your concept if you use the integers as the group 20:55:37 Consider it noted. 20:56:27 @tell zzo38 crazy talk 20:56:27 Consider it noted. 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 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 kmc: RE: Monomicopoly: I approve, please make it happen thx 21:25:50 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: 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:31:28 IT'S THAT IMPORTANT 21:32:18 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 You could always start with open voting and then introduce secrecy as a rules change :-) 21:36:53 the nice thing about nomics is not needing to have a "perfect" set of rules before you start ;-) 21:36:55 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 wouldn't the other way be more realistic? everybody shouting about making [government] more transparent and all 21:37:19 man, this would make a much better satire of capitalism than the original 21:37:33 Bike: you may have a point 21:38:01 oerjan: Well! It was *a* point in his essay anyway. 21:38:10 oerjan: I barely read any explanations at all 21:38:34 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:43 s/barely/hardly 21:38:54 Arc_Koen: let me guess, you gave up reading after the first half? :P 21:39:21 or before reaching the second, rather 21:39:28 I read in diagonal (can you say that in english?) because I was hoping he would finally give some explanations 21:39:37 but I didn't see any 21:39:47 ...no you cannot say that in english. 21:39:49 -!- nooga has joined. 21:40:45 Perhaps "I skimmed it" if I understand you correctly 21:40:54 ah, right 21:41:04 I was about to say "I skipped it" but that sounded so wrong 21:41:43 I mean, I guess his point is that there are lot of games that are way better than monopoly 21:42:13 all my boardgame-playing mates would agree with that 21:42:49 admittedly it's mainly blowing off steam; i think the third last paragraph is the thing that comes closest to explaining something. 21:42:53 what about comonopoly 21:42:56 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 GreyKnight: satire of soviet economics? 21:43:40 yeah get them hooked on junta and diplomacy instead, good family values 21:43:53 * oerjan runs away 21:44:04 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 so that reminds me, how is Settlers of Catan on the imperialism front 21:44:34 (still do) 21:44:36 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:44:56 (*fairly accurate*) 21:46:30 Bike: in comonopoly, soviet economics satirize YOU! 21:47:16 * oerjan cackles maniackally 21:47:17 maybe i should just read red plenty -_- 21:48:51 where is copumpkin when i need someone to understand my brilliant pun :( 21:49:30 sorry, wordplay 21:49:41 * oerjan isn't sure of the difference himself, anyway 21:50:27 i think you did more than just invert the arrows there 21:50:41 so umm, i can't find any publications of yours on dblp 21:50:45 oklopol: IT WORKS ON BOTH LEVELS 21:50:51 wtf is dblp 21:51:17 they collect publications 21:51:24 apparently it's not that old 21:51:45 okay 21:51:51 http://www.informatik.uni-trier.de/~ley/pers/hd/s/Salo:Ville.html here's mine 21:52:07 i like dblp 21:52:09 it's nice 21:52:14 *GASP* 21:53:22 https://twitter.com/villesalo 21:53:25 oko is this you 21:53:55 no 21:54:08 oh, he's villesalo.org 21:54:12 there are a lot of people with this name 21:54:14 he is? 21:54:40 he has the best homepage out of all the villesalos i know 21:55:03 oklopol: do you still have a homepage 21:55:03 (the *GASP* was for the complete revelation of your name, of course) 21:55:10 yes 21:55:25 oerjan: i like to reveal it now and then 21:55:43 oerjan: we've known his name for ages 21:55:55 yeah it's not exactly a secret 21:56:32 like unmasking a superhero 21:56:35 elliott: i know, but i don't recall it's been stated outright in channel 21:57:05 has though. 21:57:26 but i guess it's something adults tend to do, i notice tswett changed the attribution on /// 21:58:04 yes it's all about fame at this point 21:58:31 one day oerjan will tell us his real name 21:58:38 NEVAR 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:13 oerjan q johannsen 21:59:17 -!- asiekierka has joined. 21:59:19 Oerjan McOerjan 21:59:32 on 21:59:34 *no 21:59:36 ørjan ørjansen 21:59:50 ørjan ø. ørjansen 22:00:08 Star651 is pretty great. 22:00:12 Best things in life: http://sprunge.us/iTDc 22:00:27 Is he the one who thought phantom-hoover.tumblr.com was serious? 22:01:02 (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:08 Taneb: yes 22:01:16 Yeah, he's the greatest 22:01:17 fizzie: O_O 22:01:20 olsner: Ørjansen is much rarer than Ørjan. 22:01:21 phantom-hoover.tumblr.com isn't serious? 22:01:22 "Det er 3, 2, 1 eller 0 menn som har Ørjan som første fornavn, og Ørjansen som etternavn." 22:01:30 fizzie: are you having a nice day 22:01:36 shachaf, it's as serious as you want it to be 22:01:47 oerjan: Clearly you need to have more children. 22:01:51 (Assuming "sen" means "son".) 22:01:52 Taneb, update it you fucker 22:02:00 the ssb.no search isn't quite so accurate when there are that few results. 22:02:02 elliott: I guess I am, according to the router. 22:02:11 will Phantom_Hoover's blog cover the upcoming new documentary 22:02:11 Phantom_Hoover, I can never find a BF derivative that's fun to talk about! 22:02:24 documentary? 22:02:24 elliott, if the documentary gets more steam 22:02:33 Taneb: do you want us to make a new one for you :-I 22:02:39 "There are three or less with Ørjan as their first name, and Ørjansen as last name." 22:02:40 Taneb, do a long piece on why ook! is the only tolerable bf derivative 22:02:49 Phantom_Hoover, I was thinking that 22:02:57 Phantom_Hoover: It's not tolerable... 22:03:14 Taneb: i am pretty sure it is maximally steamful 22:03:34 shachaf, yeah it is, because it was a mildly amusing joke 22:03:38 Taneb: can i write guest posts under an anonymous pseudonym (due to my high profile status in the esolangs community) 22:04:01 elliott, everyone's writing under the name Phantom Hoover so far 22:04:09 don't be silly, only Phantom_Hoover is 22:04:28 i like the idea that over the years "Phantom Hoover" stops being fully a person and starts being more a character 22:04:36 Why is Ook! more tolerable than the others 22:04:41 shachaf: -sen is indeed etymologically "son", but norway changed to inherit family names by law something like 18th or 19th century 22:04:44 until Phantom_Hoover himself either changes nick entirely or stops truly existing as a person in some kind of metaphysical way 22:04:48 and all we have left is a bourbaki 22:05:03 i'm cool with this 22:05:10 oerjan: By law! 22:05:17 (i think it may have been before we split from denmark) 22:05:18 Ridiculous. 22:05:22 Phantom_Hoover: the new Bourbaki --- dammit elliott stop ninjaing me 22:05:29 oerjan: Well, change your family name to ørjansen, and then have many children. 22:05:32 Same effect. 22:05:44 (Even better if the children propagage the name further.) 22:05:50 (Or you could call them all ørjan.) 22:05:53 shachaf: there may be sufficiently few people by that name that i cannot legally change to it :P 22:06:16 ? 22:06:23 You can't change your name arbitrarily? 22:06:30 i heard an interesting theory for why finnish surnames end in -nen 22:06:48 shachaf: rare surnames are protected, you need permission from every holder to change to it 22:06:53 Perhaps call your children Ørjan1, Ørjan2, Ørjan3, ... 22:07:06 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 you should make some kind of pact to name all children of all future generations of ørjans "ørjan ørjansen" 22:07:35 and somethingsen sounds like the finnish genitive of somethingnen 22:07:56 I guess there might be slight confusion for generations with more than one offspring, but shit happens 22:08:37 also that story was incredibly boring when told in english 22:08:43 i wish i'd've thought of that 22:09:12 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 but sweden also switched to inheriting family names instead of making patronyms a long time ago 22:09:30 fsvo long time 22:09:35 (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 oklopol: except swedes add -son not -sen 22:10:54 did they do that hundreds of years ago as well? 22:11:02 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 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 and the swedes were never in on it 22:12:59 (they were originally the swodos) 22:13:30 oerjan: interesting. at least i didn't have this misconception for too long as i heard this like a week ago. 22:13:57 nen is also a diminutive suffix but that makes no sense 22:13:58 misconceptionnen 22:16:15 is it -nen that the finnish names end with? I thought it was -lainen 22:17:27 that's more commonly used for when you're from somewhere 22:17:42 like ruotsalainen = swedish 22:17:48 Wally Wessexlainen 22:17:58 yeah 22:18:06 wessexläinen though 22:18:13 so ørjanlainen = people who come from ørjan? 22:18:27 http://goatkcd.com/1156/sfw 1,001 Household Uses For Goatse 22:18:29 yay I got a ¨ 22:19:02 vowel harmony, aou => lainen, äöy => läinen. if you find neither you default to läinen 22:19:26 I like how making the goatse line-art apparently renders it "safe for work" 22:19:40 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:20:13 ahaieeieieieeläinen 22:20:37 yeah that sounds fine 22:21:07 I was actually considering sprinkling some random ¨s around when I wrote that but didn't. I guess I should have. 22:21:25 (then there'd've been a non-zero chance of me getting it right) 22:22:36 then there's things like "analyysi" 22:23:28 that's just fucked up 22:23:41 -!- aloril has joined. 22:23:52 oklopol: Olumpialaiset. 22:24:02 Or is that with two 'p's? 22:24:11 * GreyKnight guesses that means "analysis" 22:24:39 olumppijalajset 22:25:48 * oerjan recalls wikipedia had that as an example of something that might or might not get finnishified 22:25:56 irländläinen 22:26:53 i don't think it'll get finnishified, i don't know an alternative and analysoida (analyze) is in everyday use. 22:27:04 or what does finnishification mean 22:27:09 i mean the olympia stuff 22:27:46 basically rural hicks pronounce it with u 22:28:02 oh. 22:28:10 Is "irländläinen" valid? 22:28:16 * GreyKnight crosses fingers 22:28:23 i don't think finns are big on "ndl" 22:28:32 :< 22:28:41 irlantilainen 22:28:51 a => lainen 22:29:15 * GreyKnight wasn't even close 22:29:27 d is often changed to t 22:29:35 GreyKnight: basically the root affects the suffix, not the other way around 22:30:43 Oerjan: I found "irländsk" for Irish and guessed that the ä would stay 22:30:56 and then picked -läinen based on that 22:31:18 "irländsk" is swedish though, not finnish 22:31:18 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 but okay apparently Ireland is "irland" 22:31:39 oh I got mixed up about what language we were talking about @_@ 22:31:51 indeed 22:31:56 ireland is irlanti 22:32:05 oh 22:32:16 a word cannot end in a d 22:32:32 okay if I'd gotten that I would have correctly guessed irlantilainen so I will count this as a moral victory 22:32:33 irlantid 22:32:34 what now ???? ? 22:32:38 irlantidi 22:32:44 you just add an i. 22:32:46 then it's fine 22:32:55 irlantidid 22:32:57 -!- Nisstyre has joined. 22:33:11 Irlanti did it. 22:33:12 irlantilainen illithids 22:33:36 I think I've just updated Phantom_Hoover's Tumblr, but my internet's playing up, can someone double check? 22:33:42 you did 22:33:55 you did 22:33:59 you did 22:34:03 you didn't 22:34:03 you should've written it as a single long sentence though 22:34:32 although even LOLCODE is a thousand times better than a brainfuck derivative 22:34:34 Taneb: not convinced this is true 22:35:09 elliott, it's hyperbole, and the point is brainfuck derivatives suck 22:35:16 yay new rant 22:35:23 Taneb: btw you forgot the tabs 22:35:24 tags 22:35:48 I'll add some in a minute 22:36:32 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:36:38 9 combinations? 22:36:40 That's awful. 22:37:48 So's your face but do we go on about it? 22:38:18 `addquote 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 897) 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 Taneb: i suggest striking out "a thousand times" and replacing it with "ten times", then strike that out and put "50 percent" 22:41:18 hth 22:41:57 support this 22:42:42 Taneb, oh wow that's brilliant 22:43:06 `like 22:43:07 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: like: not found 22:43:20 oerjan: hi 22:43:26 @undefine 22:43:30 @let now a k b = k (b <> a); later f k m a = k (m <> f a); run l = l id mempty 22:43:32 Defined. 22:43:38 Can you figure out how to make map work? 22:43:48 map :: (m -> n) -> ... m ... -> ... n ... 22:45:24 it can't 22:45:29 you have a contravariant m 22:45:34 er 22:45:35 covariant 22:45:42 it's obvious 22:45:44 applied general abstract nonsense 22:45:44 djinn will tell you the same 22:46:01 what's ... 22:47:25 shachaf: besides what elliott said, that would require me having any idea what now and later do in the first place 22:47:47 :t now 22:47:49 Monoid m => m -> (m -> t) -> m -> t 22:47:51 :t later 22:47:53 Monoid m => (t1 -> m) -> (m -> t) -> m -> t1 -> t 22:47:59 > run (now "x = " . later show . now ", y = " . later show) 2 4 22:48:01 "x = 2, y = 4" 22:49:10 I wish Haskell had syntax for "comment out the rest of the file". 22:49:16 Moving {-s is annoying. 22:50:23 elliott: make a quasiquote hth :P 22:50:35 oerjan: quasiquotes need terminators... 22:50:39 I'm thinking like __END__ 22:50:47 elliott: yes, but you don't need to move them 22:51:16 I don't understand 22:51:29 [q| ... [q| ... [q| ... |] would work perfectly. well, assuming you don't use a quasiquote for anything else. 22:51:51 elliott: Just leave a -} at the end of the file? 22:51:56 Are you nesting these or what? 22:52:04 shachaf: Right, nesting. 22:52:12 Also moving the {- to the end is annoying. 22:52:12 So don't nest quotes. 22:52:15 elliott: ooh, you can leave --} at the end of file 22:52:17 I'd prefer to just delete the line. 22:52:24 oerjan: oh, clever :) 22:52:28 I might actually do that, thanks! 22:52:38 oerjan++ 22:59:56 In C, end comments with //*/ 23:01:19 -!- ais523 has joined. 23:03:35 ais523: hi 23:03:38 hi elliott 23:04:22 hi ais523 23:04:23 ais523, Phantom_Hoover updated his Tumblr, finally 23:04:27 I suggest you check it out 23:04:38 Taneb: I thought that was you. 23:04:38 i consider it my finest work to date 23:04:44 link? 23:04:49 hi shachaf 23:05:09 phantom-hoover.tumblr.com 23:06:26 protocol? 23:06:28 http? 23:06:53 gopher obviously 23:06:55 yeah, looks like http 23:07:41 -!- sebbu has quit (Ping timeout: 276 seconds). 23:07:43 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 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:10 FORGIVABLE 23:08:18 hmm, OK 23:08:46 ais523: half of your brain gets to remain grey matter 23:08:53 hope you're ok with the other half being brick 23:09:14 elliott: I disagree with this assessment 23:09:15 What if the brick is græy? 23:09:23 bricks are no joking matter 23:09:29 shachaf: did you seriously just typo æ? 23:09:31 ais523: sorry, Phantom_Hoover makes the rules 23:09:39 ais523: Just being politically correct, man! 23:09:48 elliott gets mad when I say "gray". 23:09:53 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:19 græy is scots, ye ken 23:10:21 I know it's not *actually* correct. But what's actual correctness next to political correctness? 23:10:36 * GreyKnight hits shachaf with a grey sword 23:10:48 * ais523 wonders what scots for "grey" actually is 23:10:50 Anyway æ is about as easy to type as, saay, P 23:11:06 ais523, gruy 23:11:36 shachaf: altgr-a rather than shift-p? 23:11:38 it's not real scots without at least one vowel change 23:11:45 I think P is a little easier because there are two shift keys in convenient locations 23:11:54 and only one altgr and it's in a bit less of a convenient location 23:12:03 altgr-z 23:12:06 No TRUE Scotsman pronounces vowels. 23:12:09 ""? 23:12:10 (and US keyboards have no altgr at all, apparently) 23:12:16 yeah, altgr-z is « 23:12:21 this is how you type perl 6 23:12:24 ais523: My keyboard is a US keyboard. 23:12:36 altgr-[ is « 23:12:40 my @numbers = «one two three four five six seven eight nine ten» 23:12:45 shachaf: but us keyboards don't have an altgr 23:12:53 -!- sebbu has quit (Ping timeout: 276 seconds). 23:12:56 ais523: I didn't know you were a keyboard. 23:13:00 err, and I forgot the semicolon 23:13:02 ; 23:13:06 shachaf: that's a non sequitur 23:13:10 My AltGr-[ is ¨ 23:13:13 Gregor: i feel sorry for those half-scottish half-hawaiian people 23:13:15 ais523, "us keyboards" 23:13:30 oh, it's just a bad pun then 23:13:37 A fun pun. 23:13:40 i haven't found any æ on my us layout, but it's altgr-ä on the swedish layout 23:13:42 GreyKnight: likewise 23:13:47 it's how I type ö or whatever 23:13:49 Anyway, I have a US keyboard, I think. 23:13:53 Given that I'm in the US. 23:14:08 This keyboard layout is shown as a little US flag. 23:14:12 You're in the land my grandmother was born! 23:14:34 For someone of my accent, I have very few grandparents born in the UK 23:14:38 I think I'm in the land my grandmother was born, too. 23:14:44 Well, one of them. 23:14:52 FSVO "land" 23:14:58 It's a big place, as elliott will tell you. 23:15:13 One in California, two in the Netherlands, one in England but he was raised by nuns 23:15:29 You have a lot of grandmothers. 23:15:33 hopefully Perl6 supports Unicode identifiers so I can do my @😻 = «one two three four five six seven eight nine ten»; 23:15:36 Grandparents 23:15:42 GreyKnight: yes, it does 23:15:49 although they need to be letter-like for use as variable names 23:15:50 Excellent. 23:15:56 ...damn 23:15:58 How do you type »? 23:16:01 altgr-x? 23:16:02 you can define arbitrary paren-like unicode for use as paren-like operators 23:16:04 and yes, altgr-x 23:16:04 Yes 23:16:19 The worst thing about altgr is the name. 23:17:29 Taneb, elliott monqy Fiora Phantom_Hoover there was an update, I don't know w aht time it was 23:17:49 The "you there gurl" one? 23:18:09 yes 23:18:17 :) 23:18:30 I kind of just woke up. At around 6pm 23:19:42 -!- greyooze has joined. 23:19:57 shachaf: it's for when regular Alt isn't angry enough for you 23:19:59 ais523: well, at least I can exploit the difference between my $𝖠 = 1; and my $A = 2; That should prove hilarious. 23:20:13 greyooze: You must be American. 23:20:23 Not even close. 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 Are you Finnish or Hexham-y? 23:20:56 Nope and nope, respectively 23:21:36 apparently italy is #1 in the world for having power plants connected to the Internet with default passwords 23:21:53 really? the news keeps telling me that's the american midwest 23:22:44 shrug 23:22:51 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 US also does quite poorly of course 23:23:01 what number? 23:23:06 they haven't said 23:23:13 -!- Taneb has quit (Quit: Leaving). 23:23:13 4 23:23:21 but 54% of vulnerabilities were in europe 23:23:25 bother, i need exactitudes in incompetence 23:23:26 compared to 39% in north america 23:23:42 GreyKnight: I hope it's at least some kind of .*xham, in any case. 23:23:56 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:02 * GreyKnight is irlantilainen 23:24:42 ok here are the numbers: http://scadastrangelove.blogspot.com/2012/11/scada-safety-in-numbers.html 23:24:53 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 The kind that just wrecks stuff. 23:25:56 it is 23:26:45 "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:26:51 ^-- best metaphor 23:27:03 no GreyKnight 23:27:06 don't do it 23:27:23 * GreyKnight does it (what am I doing?) 23:27:27 GreyKnight: I don't quite think that metaphor is internally consistent 23:27:42 shachaf: he's more likely reading a monad tutorial (perhaps a spoof one) than writing one 23:27:53 why would you put the waste in a spacesuit? 23:27:59 I have no idea if it's consistent or not, I don't understand what it's trying to say :-) 23:28:12 GreyKnight: well, exactly 23:28:12 @quote suite 23:28:13 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 that monads are like burritos 23:28:16 Hmm. 23:28:18 @quote suite 23:28:18 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 I meant that the metaphor made no sense even independent of what it was trying to describe 23:28:33 @quote space suit 23:28:34 No quotes for this person. There are some things that I just don't know. 23:28:36 @quote space.suit 23:28:37 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 but* the apples are carried around anyway, and you just take what you need. 23:28:37 apparently someone has a metaphor of monads as being like the Hotel California (I have no link sorry) 23:28:45 hex yourself before you wrex yourself 23:28:51 yeah those are shitty analogies though 23:28:55 /most/ monads are not "one-way" 23:29:07 but hotel california is itself a metaphor for drug addiction!!! 23:29:07 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 kmc: the identity monad is sometimes used for that property 23:29:39 Bike: in other words, monads are like drugs. Don't do monads kids 23:29:42 Identity is one of the worst examples. 23:29:49 i dunno, this doc puts USA ahead of Italy 23:29:53 but they clearly said Italy in the talk 23:30:01 whatever, the takeaway message is that we are all fucked 23:30:03 we need the monadiest monad that ever monaded 23:30:12 i was going to say, the clear message is that fuck everything 23:30:17 shachaf: identitiy is still a useful monad 23:30:23 it's basically what Perl taint is 23:30:31 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 soon the azerbaijani terrorists will destroy our railways with their cybernet 23:30:36 ais523: ? 23:31:00 shachaf: think about what the identity monad lets you do 23:31:02 it's not a lot, really 23:31:07 you can lift things to it, and that's about it 23:31:18 perl taint is similar, you can lift things to it, but not do much else 23:31:22 (except that it's dynamic rather than static) 23:31:31 ais523: You can also "unlift" things from it. 23:31:47 > runIdentity (Identity 5) 23:31:49 5 23:31:52 shachaf: only if you have a runIdentity or the like 23:32:01 run perl taint??? 23:32:18 :t runTaint 23:32:20 Not in scope: `runTaint' 23:32:23 (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:24 unsafeTaint 23:32:39 ais523: Well, you do have that, though. 23:32:40 (mo' like unsafeUntaint I guess) 23:32:46 actually, there are two ways to untaint in Perl, and they're both nonobvious 23:32:56 Maybe you mean writing code which is polymorphic to work with any monad. 23:32:57 my ($untainted) = keys {$tainted => 1}; 23:33:01 `addquote 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 898) 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 and $tainted =~ /^(.*)$/; $untainted = $1; 23:33:31 shachaf: no, I don't mean that at all 23:34:12 ais523: Do you just mean "keeping track of things for your own convenience"? 23:34:37 So you can keep track of a value being "bad", or something. 23:34:48 Note: I don't know what Perl's taint is. I should probably have figured that out first. :-) 23:35:24 that's pretty much what perl's taint does 23:35:31 "I don't understand this but here are my thoughts on it" :-) 23:35:34 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 next stop, shachaf writes a taint tutorial comparing taint to an apple full of nuclear waste 23:35:59 OK. That sounds like the situation I would make up a new type for a tainted thing. 23:36:01 basically, any value that comes in from outside the program (user input, environment variables, etc) is of a tainted data type 23:36:13 you can convert untainted types to tainted types trivially 23:36:32 and all operations have tainted versions as well as untainted versions (which are spelled the same) 23:36:43 and Perl will bitch if you try to use tainted data for, e.g., system() or eval() 23:36:45 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 you can use Identity to implement taint, if you feel like it 23:37:07 and if you really need to untaint data, you can 23:37:20 I'd rather use a type that meant "tainted". 23:37:26 Even if it had the same implementation as Identity. 23:37:28 the intended method to untaint stuff is by matching it against a regexp that ensures it contains no evil characters 23:37:46 shachaf: well, yes; you wouldn't use Identitiy itself, but it'd still be an identitiy monad 23:37:49 just one with a different name 23:37:58 having the same implementation as Identity makes you an identity monad by definition 23:38:16 OK. 23:38:30 In this case the "you can't get things out of it" property still doesn't really hold. 23:38:50 I think runIdentity is an important part of Identity's interface. :-) 23:39:04 Anyway this sounds like a fruitless discussion at this point. 23:39:42 haha: Linux market share on Steam is more than 10% of Windows 8 market share on Steam 23:41:10 somehow I find this hilarious 23:42:49 Because the Linux share is small, or the Windows 8 share is big? 23:44:07 GreyKnight: because the Linux share is way bigger than it should be relative to the Windows 8 share 23:44:18 considering how much more popular Windows is than Linux for gaming 23:44:24 and how there are basically no Linux games on Steam yet 23:44:30 and how Steam for Linux is still beta 23:44:45 I think it speaks more to Windows 8 being unpopular than anything else 23:46:25 shachaf: {-# LANGUAGE GeneralizedNewtypeDeriving -#} module Data.Tainted (Tainted) where newtype Tainted a = T a deriving (Monad) -- hth 23:46:35 that type is useless 23:46:54 -!- GreyKnight has quit (Ping timeout: 240 seconds). 23:46:56 as is your comment terminator :P 23:46:59 How do you GeneralizedNewtypeDerive Monad? 23:47:01 *pragma terminator 23:47:12 elliott: hey he wanted a Tainted type you couldn't get things out of :P 23:47:16 That's pretty generalized. 23:47:22 oh hm 23:47:26 elliott: good point 23:47:51 shachaf: {-# LANGUAGE GeneralizedNewtypeDeriving -#} module Data.Tainted (Tainted) where import Control.Monad.Identity; newtype Tainted a = T (Identity a) deriving (Monad) -- hth 23:48:11 elliott: aww :( 23:48:21 oh that one 23:48:35 s/ -#/ #-/ 23:48:38 -!- GreyKnight has joined. 23:48:44 * oerjan thought elliott meant the --} 23:49:06 deriving instance Monad Tainted 23:49:18 Also you should use Tagged 23:49:21 Or derive 23:49:28 ghc is confused about gerunds 23:49:29 shachaf: NOW WHAT 23:49:39 gerunds are hard, though. 23:49:41 oerjan: it's still useless 23:49:44 hellørjan 23:49:47 since it's just data Tainted a = BlackBox 23:49:53 Jafet: what? deriving is the right syntax surely... 23:49:56 except with strictness 23:50:25 elliott: elliott: hey he wanted a Tainted type you couldn't get things out of :P 23:50:35 "perfect" 23:53:20 :t throw 23:53:22 Not in scope: `throw' 23:53:31 http://bugs.racket-lang.org/query/?cmd=view&pr=13414 23:53:32 :t raise 23:53:34 Not in scope: `raise' 23:53:36 wat 23:53:41 * Sgeo got a documentation mistake fixed! 23:53:50 @hoogle Exception e => e -> a 23:53:51 Control.Exception.Base throw :: Exception e => e -> a 23:53:51 Control.Exception throw :: Exception e => e -> a 23:53:51 Control.OldException throw :: Exception e => e -> a 23:53:54 \o/ 23:54:00 Sgeo: good job 23:54:12 monqy: do you like chocolate ice cream 23:54:21 idk. i prefer vanilla. 23:54:33 chocolate ice cream isnt my thingwhy do you ask 23:54:38 chocolate ice cream is surprisingly ungood 23:54:40 elliott: i realized it needs to be data not newtype, to close the evil fmap throw x `seq` loophole 23:54:55 vanilla ice cream is: good: though 23:55:13 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 oerjan: what kind of sandbox lets you use IO exactly 23:57:38 O KAY 23:58:51 elliott: http://codepad.org 23:59:20 http://www.reddit.com/r/programming/comments/160yie/json_isnt_a_javascript_subset/ 23:59:38 hmm, in a real sandbox it's really quite easy to move objects in and out of the sandbox 23:59:42 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!