←2012-12-12 2012-12-13 2012-12-14→ ↑2012 ↑all
00:00:21 <elliott> :t mkT
00:00:23 <lambdabot> Not in scope: `mkT'
00:00:26 <elliott> :t Data.Data.mkT
00:00:27 <lambdabot> Not in scope: `Data.Data.mkT'
00:00:29 <elliott> ugh
00:01:08 <shachaf> @ty Data.Generics.mkT
00:01:10 <lambdabot> (Typeable b, Typeable a) => (b -> b) -> a -> a
00:01:30 <shachaf> @hoogle mkT
00:01:31 <lambdabot> System.IO mkTextEncoding :: String -> IO TextEncoding
00:01:31 <lambdabot> GHC.IO.Encoding mkTextEncoding :: String -> IO TextEncoding
00:01:31 <lambdabot> Data.Typeable mkTyCon :: String -> TyCon
00:02:14 <elliott> > Data.Data.gmapT (Data.Generics.mkT (\(x::Int) -> x+2)) (3::Int)
00:02:15 <lambdabot> Not in scope: `Data.Data.gmapT'Not in scope: `Data.Generics.mkT'
00:02:21 <elliott> kghdfkjsghdfkljsg
00:03:34 -!- sivoais has quit (Ping timeout: 240 seconds).
00:03:48 <elliott> > Data.gmapT
00:03:50 <lambdabot> Not in scope: `Data.gmapT'
00:03:54 <elliott> > D.gmapT
00:03:55 <lambdabot> Not in scope: `D.gmapT'
00:04:14 -!- carado has quit (Ping timeout: 246 seconds).
00:07:12 -!- sivoais has joined.
00:07:50 <sgeo> I wish I understood CL's condition stuff well enough to understand how Factor's differs
00:08:23 <Bike> what's to understand
00:08:55 <shachaf> > over biplate (\(x::Int) -> x+2) (3::Int)
00:08:57 <lambdabot> 5
00:09:47 <sgeo> How to define what happens when a restart is chosen (that's set in CL using some macro, I think?)
00:10:23 <Bike> you just bind a thunk to the restart name.
00:10:35 <sgeo> Factor's system is basically: When you throw, include a bunch of strings and values, the throw will, if a restart is chosen, return one of the values
00:11:43 <sgeo> http://docs.factorcode.org/content/word-throw-restarts%2Ccontinuations.html
00:12:29 <sgeo> I don't actually see a real mechanism to catch these :/
00:13:17 <kmc> :t over biplate
00:13:18 <lambdabot> (Data.Data.Data t, Typeable b) => (b -> b) -> t -> t
00:13:24 <Bike> it seems like cl's, except that in cl you can do arbitrary actions instead of just returning a value.
00:14:01 <Bike> oh, and you can't define handlers? I don't see any, and it talks about the top level.
00:14:22 <elliott> shachaf: does biplate act like gmapT there though
00:14:32 <elliott> I'm wondering whether gmapT map over the "root"
00:14:40 <sgeo> Well, the debugger talks about :res which calls restart
00:14:54 <Bike> http://docs.factorcode.org/content/word-recover%2Ccontinuations.htmloh, there we go.
00:15:10 -!- Nisstyre has joined.
00:15:40 <sgeo> Bike, it's still not clear from that how that would be used to resume
00:15:44 <sgeo> I think
00:16:17 <sgeo> AFK
00:16:50 -!- sebbu2 has changed nick to sebbu.
00:19:36 <sgeo> I don't think it can be
00:21:07 <Bike> yeah, the debugger page seems to imply you can only resume from well, the debugger.
00:21:45 <sgeo> The debugger's written in Factor (I assume)
00:21:50 <sgeo> So there has to be a way
00:22:16 <kmc> http://goatkcd.com/1146/sfw [nsfw]
00:22:30 <Bike> you assume.
00:22:49 <Bike> http://docs.factorcode.org/content/word-restart%2Ccontinuations.html oh duh, :res has the implementation right there.
00:23:22 <elliott> "/sfw [nsfw]"
00:23:37 <kmc> yup
00:30:35 -!- pikhq has joined.
00:35:02 <kmc> i guarantee you that it is less sfw if you remove "/sfw"
00:35:07 <kmc> also less funny and more gross
00:45:56 -!- nooga has quit (Read error: Operation timed out).
00:49:15 <elliott> wait
00:49:24 <elliott> does gmapT f x run f on x first
00:49:27 <elliott> or on its children first
00:49:29 <elliott> maybe i should ask #haskell
00:50:33 <kmc> maybe you should test it
00:50:40 <elliott> that sounds like work
00:51:04 <elliott> but okay
00:51:45 <elliott> Prelude Data.Data Data.Generics> gmapT (mkT (\(xs::[Int]) -> reverse xs)) [1,2,3,4::Int]
00:51:48 <elliott> [1,4,3,2]
00:51:50 <elliott> i don't get it
00:52:10 <elliott> [1,2,3,4] -> [1,2,4,3] -> [1,3,4,2] -> [2,4,3,1] I would have understood
00:52:21 <shachaf> Not with gmapT
00:52:41 <elliott> ok I admit I have no idea what semantics gmapT actually uses, it baffles me
00:52:53 <shachaf> Prelude Data.Generics Data.Data> everywhere (mkT $ do reverse :: [Int] -> [Int]) [1,2,3,4::Int]
00:52:58 <elliott> how come if you do
00:53:07 <elliott> gmapT (mkT (\(x::Int) -> x+3)) (4::Int)
00:53:10 <elliott> it applies it to the whole 4
00:53:14 <elliott> but here reverse doesn't get applied to the whole list
00:53:21 <elliott> wait
00:53:24 <elliott> it doesn't apply +3 to the 4
00:53:31 <elliott> ok then
00:53:48 <elliott> so it applies the transformation to all the immediate children, and not itself
00:54:03 <elliott> I guess you can build everywhere from gmapT?
00:54:28 <elliott> \f -> f . gmapT (everywhere f) apparently
00:54:38 <shachaf> Have you seen the SYB documentation?
00:54:44 <shachaf> These slides are good: https://docs.google.com/viewer?url=http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/Boilerplate%20v3.ppt
00:55:00 <elliott> I've read them but then I forgot it all.
00:55:13 <elliott> I sort of hate how all the SYB machinery is crap at implementation hiding.
00:55:15 <shachaf> So read them again?
00:55:23 <elliott> So you end up writing code depending on the implementation details of all the types you're using.
00:55:57 <kmc> i like that we now live in a world where the Pope tweets things and immediately gets responses like "@Pontifex you are a huge bummer, dude"
00:55:57 <sgeo> elliott, Phantom__Hoover Fiora udpate
00:56:42 <sgeo> Bike, the big question is how does it manage to catch the exception. I think
00:57:27 <elliott> hm can you even give a default definition for an ATF
00:57:28 <Bike> sgeo: that seems to be what Recover is for.
00:57:43 <sgeo> ...it occurs to me that just because recover's stack effect says something, does not mean it cannot use restart, especially since restart will resume a continuation
00:57:54 <elliott> oh you can
00:58:06 <sgeo> Bike, I was taking recover's stack effect too seriously
01:00:04 <kmc> waiting now for the Pope to do a Reddit AMA
01:00:05 <elliott> kmc: btw I ended up fixing that (??) I pasted
01:00:05 <elliott> type family (??) (xs :: [*]) (ts :: [*]) (bss :: [[Bool]]) :: Constraint
01:00:06 <elliott> type instance ('[] ?? ts) bss = ()
01:00:06 <elliott> type instance ((x ': xs) ?? ts) bss = (bss ~ (Head bss ': Tail bss), (x ? ts) (Head bss), (xs ?? ts) (Tail bss))
01:00:11 <elliott> imo this is perfect
01:00:13 <kmc> elliott: oh well it's all clear now
01:00:27 <shachaf> ??
01:00:42 <kmc> less of a type family and more of a type frenemy
01:00:42 <elliott> the bss is basically a "variable supply" here that the typeclasses can hang the type equality results off
01:01:02 <elliott> but you avoid passing it a bunch of type variables explicitly by having it constrain that there must be a bunch
01:01:25 <elliott> slowly coming to terms with the fact that I am a genius
01:01:30 <kmc> we all are
01:02:35 <elliott> this (??) stuff doesn't infer terribly well though; I might have to make it a typeclass instead
01:02:39 <elliott> which is ok
01:05:29 <kmc> shachaf: what's a pirate's favorite locale?
01:06:24 <elliott> meh
01:06:29 <elliott> this typeclass version seems to infer worse
01:06:32 <kmc> arrrrrrrrrrrrrrrrrrrrr_SO.UTF-8
01:08:27 <elliott> the problem is mainly in the list deconstruction
01:10:07 <kmc> shachaf: did you see http://overstated.net/2007/02/01/san-francisco-guide-to-new-york-neighborhoo
01:10:12 <kmc> er
01:10:14 <kmc> http://overstated.net/2007/02/01/san-francisco-guide-to-new-york-neighborhoods
01:10:52 <Bike> "Wherever Giuliani put it"
01:12:41 <elliott> btw i could avoid all this hackery if there was a type equality type family
01:12:51 <elliott> but there isn't
01:12:52 <elliott> and that sucks
01:14:37 <elliott> ooh
01:14:49 <elliott> maybe I can use a restricted TypeEq that doesn't give access to the result
01:18:17 -!- fizzie has quit (Ping timeout: 264 seconds).
01:18:17 -!- variable has quit (Ping timeout: 264 seconds).
01:18:23 <elliott> coool, it works
01:18:25 <elliott> *cool
01:18:25 -!- variable has joined.
01:18:28 <elliott> hm
01:18:31 <elliott> I bet this is inefficient though
01:18:59 <Bike> if i may venture a question
01:19:03 <Bike> what the hell are you doing
01:19:29 <elliott> Bike: I am so deep in this mess I have no idea how to explain it to another person
01:19:57 -!- augur_ has quit (Remote host closed the connection).
01:19:57 <Bike> my commiserations
01:20:08 <elliott> Bike: I can assure you I have no practical use for it though
01:20:30 -!- fizzie has joined.
01:22:09 <elliott> oh, I think I broke it again
01:22:32 -!- ogrom has quit (Quit: Left).
01:22:37 <Bike> that was a given
01:23:19 <sgeo> If I'm going to play with Factor, I should probably download and install it
01:25:37 <elliott> shachaf: Does SYB support doing things like reversing every list in a structure, regardless of the element type of the list?
01:25:40 <elliott> I forget.
01:25:42 <elliott> Maybe I should read the docs.
01:26:39 <shachaf> I'm not sure.
01:29:50 <sgeo> I just thought of a fun/evil use for lmgtfy
01:30:33 <sgeo> Suppose I want to encourage some online community to vote on some online poll
01:30:38 <elliott> *Main> everywhere bleh "hello world"
01:30:39 <elliott> "ello worldh"
01:30:40 <elliott> Prelude Data.Generics> everywhere (mkT (reverse::String->String)) "hello world"
01:30:43 <elliott> "el oldrwolh"
01:30:45 <elliott> I think i did it wrong. :(
01:30:56 <sgeo> If I link directly to the poll, it will show up in the logs that I linked them
01:31:03 <sgeo> (We're assuming the online community is web-based)
01:31:24 <Bike> elliott: this system is fucking mystifying
01:31:44 <sgeo> If I use a referer stripper, it will look suspicious that so many people knew the exact URL of the poll
01:31:52 <elliott> Bike: I have a 270 line source file that only mystifies it further
01:31:52 <shachaf> elliott: Well, it reverses the list but then descends into its children.
01:32:03 <sgeo> So, link to the Google search results, this way it looks like all these people googled for it
01:32:21 <sgeo> But, if they come from the same Google search URL, that would also look odd. So... hm
01:32:23 <shachaf> > over biplate (reverse::String->String) ("hello there", 1, "hi")
01:32:25 <lambdabot> ("ereht olleh",1,"ih")
01:32:37 <c00kiemon5ter> time to remove that g from your nick, sgeo
01:32:38 <elliott> oh, my "everywhere" was actually "every two wheres"
01:33:00 <elliott> everywhere f x = spec f (gmap f x)
01:33:07 <elliott> I'll need to make it actually transform Specs, I guess
01:33:11 <sgeo> Actually, lmgtfy results in a google search page, but that search page would also have a suspicious URL
01:33:17 <elliott> which is sort of hard
01:33:22 <sgeo> So so much for lmgtfy helping
01:46:30 <elliott> :t Data.Data.gmapT
01:46:31 <lambdabot> Data.Data.Data a => (forall b. Data.Data.Data b => b -> b) -> a -> a
01:48:02 <sgeo> Factor won't start :(
01:51:28 <Bike> isn't it a dumbassproof one file thing
01:52:02 <Bike> oh you know wwhat, as long as elliott is reaching new frontiers into digging holes type safely, nother dumb haskell question
01:52:16 <Bike> i'm guessing any real compiler is going to have some kind of structure to represent types. is that true?
01:53:06 <shachaf> As opposed to what, not representing types in any structure?
01:53:53 <Bike> just asking.
01:54:14 <kmc> that is true
01:54:30 <shachaf> It seems true but I'm not sure I understood the question.
01:54:33 <Bike> k
01:54:35 <kmc> it will have structures to represent types, functions, modules, etc.
01:54:39 <kmc> all the stuff what makes up a program
01:54:50 <kmc> that's true of any compiler, not just haskell compilers
01:55:14 <Bike> well, would say a C compiler need something to represent "int"?
01:55:22 <kmc> yes
01:55:36 <kmc> as opposed to just skipping over the word "int" wherever it appears?
01:55:56 <Bike> no, just, having some kind of structure with information about int-ness doesn't seem necessary to me
01:55:59 <kmc> a C compiler needs to be able to represent types like "pointer to pointer to int" and "pointer to function which takes three floats and returns an int"
01:56:09 <Bike> oh, that's true
01:56:29 <kmc> sure, you could have a compiler where primitive types are represented by bare integers
01:56:38 <kmc> int = 1, float = 2, char = 3, whatever
01:56:57 <kmc> but you need to represent also composite types like arrays and functions and pointers
01:57:14 <elliott> and structs
01:57:16 <kmc> as well as qualifiers such as signed/unsigned, const/volatile/restrict, etc
01:57:17 <elliott> structs are types!!
01:57:19 <kmc> yeah
01:57:22 <Bike> right
01:57:28 <kmc> also functions themselves, not just pointers to, are types
01:57:29 <Bike> so, badly considered question. thanks
01:57:49 <elliott> data VagueApproximationOfACType = Int | Char | Ptr VagueApprosdfjoisdType | Struct [(String,VagueAOoisadjoijknCpttypke)] | stuff
01:58:00 <kmc> great code
01:58:01 <shachaf> elliott: Functions!
01:58:34 <Arc_Koen> is there a language that shines by its lack of typing?
01:58:36 <kmc> you can do: typedef int f(float); f* p;
01:58:51 <kmc> there are languages with only one type
01:58:57 <shachaf> Is kmc one of the people who says "type* value;"?
01:59:02 <kmc> shachaf: sometimes
01:59:18 <kmc> Arc_Koen: for example in shell the only type is string pretty much
01:59:34 <Arc_Koen> I was thinking more something like "C where every variable is a union"
01:59:37 <kmc> in perl, types are not so much a property of variables as how you decide to use them
01:59:41 <kmc> oh
01:59:49 <Bike> that doesn't really mean not having types
01:59:50 <kmc> an *unchecked* union?
01:59:57 <Bike> i mean, the whole point of that would be casts...
01:59:58 <shachaf> I like the thing where you can say (********p)(x).
02:00:06 <kmc> ?
02:00:07 <Arc_Koen> not sure what unchecked means, but yeah, I guess
02:00:09 <elliott> Arc_Koen: forth
02:00:35 <elliott> you get a stack of machine words and what they mean depends entirely on what you do with them
02:01:01 <Arc_Koen> by words you don't mean the same thing as forth words right?
02:01:02 <elliott> even a string literal (actually implemented in forth itself) just pushes an addreses and length on the stack and the string operations consume that
02:01:06 <elliott> actually maybe it pushes something else, I forget what
02:01:13 <elliott> I mean machine words i.e. an integer of a certain size
02:01:16 <Arc_Koen> ok
02:01:20 <elliott> "size of a pointer"
02:01:24 <elliott> x86 has 32-bit machine words, x86-64 has 64-bit machine words
02:01:34 <Arc_Koen> yeah that makes sense
02:01:41 <shachaf> elliott: You need more Microsoft in your life.
02:01:50 -!- TeruFSX has joined.
02:01:57 <shachaf> Hmm, or Intel.
02:02:27 <Bike> what, to confuse the meaning of "word"?
02:12:37 -!- monqy has joined.
02:18:07 <Fiora> of course for intel words are 16-bit!
02:18:23 <Fiora> and 32-bit is a dword and 64-bit is a qword and 128-bit is a doublequadword (not an octoword)
02:18:26 <Fiora> and 256-bit is a quadquadword
02:18:34 <Fiora> or actually no 256-bit is a doubledoublequadword
02:18:36 <Fiora> I think
02:18:39 <Bike> that sounds about as dumb as quavers
02:18:55 <Fiora> quavers?
02:19:06 <Bike> hemidemisemiquave
02:19:18 <Bike> is a sixty-fourth note, in music
02:19:24 <Fiora> ohhh
02:19:28 <Fiora> omg
02:19:41 <Fiora> intel is actually made up of musicians
02:19:50 <Arc_Koen> what are you, some alien with the absolute ear?
02:20:21 <elliott> oh I read quavers as quakers
02:20:29 <elliott> and I thought Bike just really hated them friends
02:20:32 <elliott> or the porridge I guess
02:20:57 <Arc_Koen> oh
02:21:21 <Arc_Koen> I believe I have some of those somewhere in the house and it's pretty cold here and it's a damn good diea
02:21:22 <Arc_Koen> idea
02:21:24 <Arc_Koen> thank you
02:21:27 <elliott> np any time
02:22:02 <Bike> no i'm cool with quakers
02:24:37 <sgeo> I'm sure it's possible to write a throw-restarts like thing that does quotations instead of just returning a value
02:24:42 <sgeo> ...actually, hmm
02:26:28 <Bike> sgeo: you have call/cc, you can do whatever the hell you want
02:26:56 -!- augur has joined.
02:27:43 <sgeo> I'm just not sure that the stack effect could be made to work
02:34:40 <kmc> doubledoublequadword animal style
02:35:40 -!- GreyKnight has quit (Ping timeout: 260 seconds).
02:37:27 <Fiora> lddqu, "load double double quadword unaligned", does not actually load a double double quad word
02:37:37 <kmc> http://twitter.com/Pope_ebooks yessssss
02:37:50 <kmc> the wisdom of crowds has brought this to me
02:38:17 <elliott> why did the pope have to make a twitter account to get an _ebooks
02:38:23 <elliott> pretty sure the pope has said other things in the past already?????
02:38:38 <Bike> yes but were they in a machine/idiot-readable format
02:38:41 <Phantom__Hoover> still prefer the pope's main twitter feed
02:39:08 <elliott> i still think you have to give him credit for picking a cool name
02:39:13 <Phantom__Hoover> the vatican has obviously cracked open the Big Book of Catholic Platitudes
02:39:21 <elliott> how many names are there that (a) sound cool and (b) are pop-related
02:39:23 <elliott> *pope
02:39:27 <elliott> that (c) are free
02:39:32 <Phantom__Hoover> i don't think that pope made it up
02:39:45 <elliott> come on Phantom__Hoover you know people were telling him to go with The_Pope_Official_Vatican or some shit
02:39:47 <Bike> "PopeBenedictXIV" is kind of boring
02:39:50 <elliott> but he was having none of that
02:39:53 <Bike> am i missing something here
02:40:17 <elliott> http://twitter.com/pontifex
02:40:26 <elliott> http://twitter.com/PopeBenedictXIV looks like some silly imitator or something
02:40:30 <Bike> oops
02:40:36 <Fiora> he should make his name xXxPoPeBeNeDiCt-XIVXxXx
02:40:36 <kmc> @TheP_Rizzle_Fo_Shizzle
02:40:37 <lambdabot> Unknown command, try @list
02:40:39 <Phantom__Hoover> "Any suggestions on how to be more prayerful when we are so busy with the demands of work, families and the world?"
02:40:46 <Phantom__Hoover> pope asks for input on twitter
02:40:46 <Bike> oh, well, pontifex is "just" latin
02:40:55 <Bike> he kind of has an easy out there, i mean, everything sounds cool in latin
02:41:04 <kmc> if he starts tweeting in pontifex cipher i will be impressed
02:41:06 <Phantom__Hoover> it's latin for 'maker of bridges', at that
02:41:16 <elliott> maybe the pope just really loves him some bridges
02:41:29 <elliott> Phantom__Hoover: hahaha wow i didn't even notice that
02:41:43 <elliott> was the pope properly briefed on this twitter thing beforehand
02:42:00 <Phantom__Hoover> i wonder if papal infallibity extends to twitter
02:42:14 <Bike> unlikely, it's pretty hard to accidentally use it
02:42:19 <kmc> these days the infallibity only kicks in on special occasions
02:42:30 <kmc> it's just like freenode
02:42:43 <kmc> you might have operator privileges but you don't op up unless shit is getting real
02:43:05 <Bike> the pope is of course known for his intervention in realistic shit situations.
02:43:14 <elliott> /mode +o pontifex etc. etc. etc.
02:43:15 <Fiora> http://en.wikipedia.org/wiki/Papal_infallibility#Conditions_for_teachings_being_declared_infallible
02:43:21 <Fiora> apparently it only applies in specific cases
02:43:29 <Fiora> "is predecessor Pope John XXIII once remarked: "I am only infallible if I speak infallibly but I shall never do that, so I am not infallible"."
02:43:32 <Fiora> *his
02:43:43 <kmc> that sounds like something zzo38 would say
02:43:53 <kmc> i would subscribe to @zzo38_ebooks
02:44:03 <Bike> theology tends to make one similarly robotic at times
02:44:04 <Fiora> I like that response, it's like "this doctrine is dumb" without actually saying "this doctrine is dumb"
02:45:54 <kmc> This pope likes hexadecimal.
02:45:59 <kmc> This pope is an advanced TI-BASIC programmer.
02:46:22 <Phantom__Hoover> this pope is your pope / this pope is my pope
02:46:43 <Fiora> "The limitation on the pope's infallibility "on other matters" is frequently illustrated by Cardinal James Gibbons's recounting how the pope mistakenly called him Jibbons."
02:46:46 <Fiora> pffffff
02:46:54 <kmc> i put some onions inside my trousers
02:47:20 <Phantom__Hoover> are you going to take them out?
02:48:14 <kmc> nom
02:59:30 <zzo38> I also read somewhere that the Catholics who do not agree of pope infallibility are called Old Catholics.
02:59:45 <zzo38> kmc: I have no ebooks which can subscribe to
03:00:45 <Bike> it's one of a few reasons old catholicism split, yeah
03:01:23 -!- GreyKnight has joined.
03:01:52 <zzo38> Of course not all of the popes agree of pope infallibility either; some of them were against it, but some were for it.
03:02:34 -!- Lumpio- has quit (Ping timeout: 240 seconds).
03:09:27 -!- augur has quit (Remote host closed the connection).
03:10:35 -!- GreyKnight has quit (Ping timeout: 255 seconds).
03:12:07 -!- augur has joined.
03:19:02 <shachaf> kmc: You should make a Twitter account of zzo38 quotes.
03:19:59 -!- sgeo has quit (Ping timeout: 260 seconds).
03:21:22 -!- sgeo has joined.
03:22:47 <elliott> `addquote <kmc> i would subscribe to @zzo38_ebooks <zzo38> kmc: I have no ebooks which can subscribe to
03:22:55 <HackEgo> 867) <kmc> i would subscribe to @zzo38_ebooks <zzo38> kmc: I have no ebooks which can subscribe to
03:24:02 <shachaf> zzo38: Do you have a newsletter?
03:24:14 <shachaf> `quote
03:24:14 <shachaf> `quote
03:24:14 <shachaf> `quote
03:24:15 <shachaf> `quote
03:24:15 <shachaf> `quote
03:24:16 <HackEgo> 386) <Phantom_Hoover> pikhq, living in the future sucks. <Phantom_Hoover> The past just keeps coming up to us and trying to make us feel guilty.
03:24:16 <HackEgo> 703) <itidus21> the possession of diamonds by the bourgeois is more about establishing their bourgeoisness more than wanting a malleable metal <itidus21> oops i forgot i said diamonds instead of gold
03:24:16 <HackEgo> 642) <oerjan> shachaf: wait, _you_ are in northumberland? <shachaf> No. <oerjan> whew <oerjan> we don't have room for more esolangers there. <shachaf> oerjan: Wait, *you* are in Northumberland? <oerjan> no <shachaf> Whew. <shachaf> We don't have room for more esolangers there.
03:24:17 <HackEgo> 170) <Sgeo> Hmm. I want to try vanilla extract now, but I don't want the alcohol
03:24:17 <HackEgo> 760) <Sgeo> hack and back? <Patashu> works on anything much slower than you <monqy> at the cost of: guilt, hating yourself, me sending you the message "hi" <Patashu> am I also forbidden to cast mephitic cloud and cblink <monqy> i will also send you "hi" if you: kite excessively, use mephitic cloud, -yes
03:24:26 <sgeo> zzo38, there is a Twitter account called horse_ebooks which appears to be a spam account, and says bizarre and hilarious things quite often.
03:25:00 <sgeo> "This Is Your Golden Opportunity To Build Yourself An Endless Line Of HOT PRODUCTS In Your Name And Make A Fortune From Existing"
03:25:09 <zzo38> shachaf: I don't publish a newspapes.
03:25:15 <shachaf> monqy: I used mephitic cloud once.
03:25:18 <Bike> `quote
03:25:20 <HackEgo> 191) <zzo38> Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly)
03:25:52 <Bike> I think Scrabble for Racists is still my favorite.
03:26:08 <zzo38> OK, then play Scrabble for Racists.
03:26:30 <Bike> Are you insinuating something about me, zzo38?
03:26:34 <shachaf> I would play Professional Octopus of the World.
03:27:15 <kmc> best of horse ebooks: http://favstar.fm/users/Horse_ebooks
03:27:41 <Bike> can't we just read horse_ecomics?
03:28:01 <shachaf> kmc: Don't you feel bad about how it gets you to look at advertisements?
03:28:05 <kmc> no
03:28:33 <Bike> I look forward to an era of advertisers giving up on ads, and giving me endless co-opted-dada entertainment instead.
03:28:49 <kmc> where did Scrabble for Racists come from?
03:28:58 <kmc> also zzo38 can you generate some more random game names
03:29:02 <kmc> because those two are pretty great
03:29:17 <kmc> you know that an octopus does not have direct control of its arms
03:29:26 <kmc> it sends them general instructions and waits to see what they do
03:29:33 <kmc> could be a good card game mechanic
03:30:30 <Bike> kmc: http://www.youtube.com/watch?v=7ChY6bCULLY
03:30:31 <zzo38> OK, then.
03:30:42 <zzo38> If you want those name you can just use the same program.
03:30:48 <kmc> i want to make a fortune from existing
03:30:57 <zzo38> It is one of the FurryScript archive files.
03:32:02 <kmc> one-dimensional chess
03:32:55 <shachaf> `quote
03:32:55 <shachaf> `quote
03:32:55 <shachaf> `quote
03:32:55 <shachaf> `quote
03:32:55 <shachaf> `quote
03:32:57 <HackEgo> 359) <elliott> It's a Toy Story character, you uncultured fuck.
03:32:57 <HackEgo> 597) <Phantom_Hoover> http://i.imgur.com/dosYw.png <Phantom_Hoover> WELCOME TO FUCKING STEELROMANCED
03:32:58 <HackEgo> 651) <elliott>.Ah.
03:32:58 <HackEgo> 384) <ais523> Phantom_Hoover: nope, I removed . from the current directory
03:32:58 <HackEgo> 191) <zzo38> Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly)
03:33:13 <shachaf> `delquote 651
03:33:13 <Bike> whoa! this must be a sign
03:33:15 <kmc> 1:13: steve brule impression?
03:33:17 <HackEgo> ​*poof* <elliott>.Ah.
03:33:35 <sgeo> kmc, oh, that's awesome. Before I clicked the link, I thought it was manually curated horse_ebooks quotes
03:34:13 <Bike> pff, manually. the cloud can rate everything.
03:34:23 <kmc> the wisdom of crowds.
03:34:28 <kmc> slash clouds
03:34:38 <kmc> frash prugin
03:34:44 <Bike> what a shocking bad hat! *laugh track*
03:34:46 <sgeo> Oh come on, past a certain point it wants me to get a pro membership
03:35:00 <Bike> a pro membership to a retweeter
03:35:08 <Bike> the future is a beautiful place slash time slash cloud
03:36:05 <kmc> slash balls
03:36:26 -!- GreyKnight has joined.
03:37:36 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
03:40:12 -!- Lumpio- has joined.
03:40:53 <elliott> Bike: is this a special kind of future which occurs in the present
03:42:28 <Bike> http://www.youtube.com/watch?v=a1C9Q5JheOE yes.
03:42:33 <Bike> i am just made of youtube videos today.
03:44:50 <Arc_Koen> cloud
03:44:57 <Arc_Koen> do you mean like, the earth just VAPORIZED??
03:45:15 <elliott> Bike: is the telltale sam and max stuff any good
03:45:21 <Arc_Koen> can you be more precise as to whether that's the near future or the distant future
03:45:27 -!- GreyKnight has quit (Ping timeout: 244 seconds).
03:45:30 <Arc_Koen> just so I know how much time I have to tell that girl I love her
03:45:45 <Bike> elliott: well i like the songs but i'm not much of an "actually playing video games" type
03:49:27 <elliott> Bike: thank you for your extensive input
03:49:49 <Bike> np
03:51:51 <Fiora> I've heard they're really good but I've only played like two of them
03:52:16 <Fiora> they're very silly and very funny adventure games
03:52:43 * elliott played the original LucasArts one ~a billion years ago.
03:53:21 <Fiora> they also don't tend to have totally absurd impossible to figure out puzzles
03:53:35 <Fiora> like cat moustaches
03:53:53 <shachaf> What's the matter with cat moustaches?!
04:01:47 -!- NihilistDandy has joined.
04:08:24 <Bike> i wonder how many people have actually played that game
04:08:51 <shachaf> What game?
04:09:37 <Bike> Gabriel Knight 3.
04:09:52 <shachaf> I thought we were talking about Sam 'n' Max
04:10:06 <Bike> The game the cat moustache thing is fom.
04:10:08 <Bike> from
04:10:09 <shachaf> @let sam'n'max :: Bounded a => (a,a); sam'n'max = (minBound,maxBound)
04:10:11 <lambdabot> Defined.
04:10:21 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
04:10:37 <shachaf> > uncurry (+) sam'n'max
04:10:39 <lambdabot> Ambiguous type variable `a0' in the constraints:
04:10:39 <lambdabot> (GHC.Enum.Bounded a0)
04:10:39 <lambdabot> ...
04:10:40 <shachaf> > uncurry (+) sam'n'max :: Int
04:10:42 <lambdabot> -1
04:11:16 <Bike> what?
04:11:23 -!- GreyKnight has joined.
04:11:25 <shachaf> Undefined behavior, Bike.
04:12:07 <Bike> the horror!
04:12:25 <shachaf> (Wait, is it?)
04:12:41 <shachaf> Oh, maybe it's not.
04:12:50 <shachaf> "sorry"
04:13:23 <shachaf> I wonder whether MedeaMelana saw my recent Reddit comment.
04:13:32 <Bike> That doesn't seem like a very sincere apology!
04:14:06 <shachaf> Bike: Once in 2003 someone made a really, really sincere apology.
04:14:15 <shachaf> It's so sincere that I just quote it instead of making my own.
04:14:19 <shachaf> I have no hope of matching that one.
04:14:28 <Bike> Gosh.
04:18:45 <shachaf> fnow :: Monoid m => m -> FHM m a a
04:18:46 <shachaf> fnow m k d = k (\m' -> d (m <> m'))
04:18:46 <shachaf> flater :: Monoid m => (a -> m) -> FHM m b (a -> b)
04:18:46 <shachaf> flater am k d a = k (\m' -> d (am a <> m'))
04:18:46 <shachaf> frun :: Monoid m => FHM m m a -> a
04:18:48 <shachaf> frun fhm = fhm ($ mempty) id
04:20:53 -!- GreyKnight has quit (Ping timeout: 265 seconds).
04:23:21 -!- copumpkin has quit (Ping timeout: 265 seconds).
04:23:52 -!- copumpkin has joined.
04:32:23 <shachaf> `quote
04:32:23 <shachaf> `quote
04:32:24 <shachaf> `quote
04:32:24 <shachaf> `quote
04:32:25 <HackEgo> 205) <ais523> yay CDE
04:32:25 <HackEgo> 710) <fizzie> Stupid W|A doesn't even understand "Vatican papal density". (As far as countries go, they've got a quite high one.)
04:32:26 <HackEgo> 400) <Taneb> Turned out he got recursion, he just didn't get the return statement
04:32:26 <HackEgo> 436) <itidus20> australia kicks ass <itidus20> we have kangaroos and DMM and isn't afraid of anything
04:32:26 <shachaf> `quote
04:32:28 <HackEgo> 473) <itidus20> software patents strike again <ais523_> that's got to be at least three times, now <ais523_> are they out yet?
04:32:51 <shachaf> 205?
04:33:10 <shachaf> `delquote 205
04:33:15 <HackEgo> ​*poof* <ais523> yay CDE
04:33:18 <elliott> 205 is good.
04:33:23 <shachaf> Oh.
04:33:25 <shachaf> Why?
04:33:28 <elliott> (what's the point of asking if you're not going to wait for a reply?)
04:33:33 <shachaf> I waited for a while.
04:33:36 <shachaf> No response.
04:33:43 <elliott> you waited for 20 seconds
04:33:45 <shachaf> Please `revert as appropriate.
04:33:50 <shachaf> They were 20 long seconds!
04:33:51 <elliott> too lazy
04:33:55 <shachaf> What's CDE?
04:34:13 <shachaf> Common Desktop Environment?
04:35:23 <elliott> yes
04:36:04 <shachaf> So what's good about 205?
04:36:58 <kmc> should i be surprised that iti got the quote / meme wrong
04:37:01 <kmc> no
04:37:05 <kmc> the answer is no, i should not
04:37:15 <elliott> kmc: why else would it be in the qdb
04:37:58 <shachaf> `quote kmc
04:38:00 <HackEgo> 602) <kmc> COCKS [...] <kmc> truly cocks \ 633) <shachaf> You should get kmc in this channel. kmc has good quotes. <shachaf> `quote kmc <HackEgo> 686) <kmc> COCKS [...] <kmc> truly cocks <shachaf> Well, in theory. \ 705) <kmc> damn i should make a quasiquoter for inline FORTRAN \ 708) <kmc> has there been any work towards designing programming l
04:38:25 <Bike> that's a lot of cocks.
04:38:59 <kmc> `pastequote kmc
04:39:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: pastequote: not found
04:39:05 <kmc> `quotepaste kmc
04:39:07 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quotepaste: not found
04:39:10 <kmc> ok how do i do this
04:39:31 <shachaf> `pastequotes kmc
04:39:35 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24302
04:41:28 -!- augur has quit (Remote host closed the connection).
04:44:26 <shachaf> `quote
04:44:27 <shachaf> `quote
04:44:27 <shachaf> `quote
04:44:27 <shachaf> `quote
04:44:28 <HackEgo> 388) <tswett> elliott: by the way, you're now almost capable of crawling.
04:44:28 <HackEgo> 488) <itidus20> lets not wander around the mulberry bush beating our heads
04:44:29 <HackEgo> 268) <olsner> it is from 2002 though, I was younger then
04:44:29 <HackEgo> 536) <Taneb> Just goes to show, the Beatles are more interesting than green vegetables.
04:44:29 <shachaf> `quote
04:46:24 -!- GreyKnight has joined.
04:55:24 -!- GreyKnight has quit (Ping timeout: 264 seconds).
04:58:44 <shachaf> `pastequotes zzo38
04:58:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.23331
05:00:11 <shachaf> zzo38: Have you considered using Twitter?
05:00:48 <Bike> wow, why would you even need zzo38_ebooks with that haul?
05:03:56 <shachaf> zzo38: I tried to connect to gopher://zzo38computer.org/ but it says Not Found.
05:05:18 <Arc_Koen> Yomi is a card game that simulates a fighting game. It tests your ability to predict how your opponents will act and your ability to judge the relative value of cards from one situation to the next. Also, it lets you do fun combos and be a panda.
05:05:53 <Arc_Koen> I understand World of Warcraft let you do that too, now?
05:10:12 -!- WeThePeople has joined.
05:16:29 <kmc> `quote 329
05:16:31 <HackEgo> 329) <zzo38> I figured out something about C program. If you use ? : a lot then you don't need as much parentheses but it makes it more difficult to understand.
05:18:38 <zzo38> shachaf: It does?
05:18:40 <zzo38> Let me see.
05:19:07 <zzo38> It works on my computer. Try adding a 1 after the / at the end see if that works better.
05:19:33 <shachaf> The 1 was added automatically.
05:19:37 <shachaf> Doesn't work with two clients I've tried.
05:20:22 <zzo38> Arc_Koen: That is correct it is how Yomi card game is played. Well, it is a bit more complicated than that, but it is not extremely complicated rules.
05:20:37 <shachaf> zzo38: Are you seeing my requests?
05:21:24 <zzo38> shachaf: I can't tell, because you have a cloak.
05:21:53 <shachaf> zzo38: Are you seeing any requests?
05:22:04 <zzo38> Yes, from mf60536d0.tmodns.net
05:22:10 <shachaf> My requests aren't coming from the same IP address as my IRC client, anyway.
05:22:17 <shachaf> OK, that's probably me.
05:22:20 -!- GreyKnight has joined.
05:22:20 <zzo38> O, OK.
05:22:43 <zzo38> When it is not found, my server responds "File not found"; does it say that or "Not Found"?
05:23:26 <shachaf> --- [1] File not found
05:23:40 <shachaf> Error: File not found
05:23:54 <zzo38> Can you try to see exactly what your computer is sending? And then we can see which side is wrong.
05:24:15 <zzo38> It works with every client I have tried.
05:24:24 <zzo38> O, I have idea:
05:24:27 <zzo38> Disable Gopher+
05:24:40 <shachaf> I tried two clients.
05:24:42 <shachaf> gopher and forg
05:25:00 <shachaf> I don't know what Gopher+ is or how to disable it.
05:26:03 <zzo38> Does it work with netcat?
05:26:44 <shachaf> What do I type in?
05:26:47 <shachaf> "/1"?
05:27:06 <zzo38> Nothing.
05:27:17 <zzo38> Push the return key.
05:27:18 <shachaf> Oh, that shows some things.
05:27:54 <shachaf> Why isn't it working with my regular client?
05:28:13 <zzo38> What happens when you use netcat listening on port 70 and connect to it with your other gopher client?
05:28:48 <shachaf> It sends a /
05:29:10 <zzo38> Well, that is improper.
05:29:34 <zzo38> The protocol is not supposed to do that unless you have another / after the 1 in the URL
05:30:39 -!- GreyKnight has quit (Ping timeout: 260 seconds).
05:30:50 <shachaf> Why are both my gopher clients broken?
05:31:15 <zzo38> I don't know; but every client I have tried (on many operating systems, even Android, since someone I know has one) works properly!
05:31:57 <shachaf> I use Debian and these are the two that are in APT.
05:32:11 <zzo38> Maybe it is because Gopher+ mode is enabled and needs to be turned off. Does it have configuration setting which can be changed?
05:32:13 <shachaf> Let me try one in Firefox.
05:32:46 <zzo38> In Firefox, you could try Overbite, which works better than the one that used to be built-in.
05:33:12 <shachaf> OK, OverbiteFF works.
05:34:16 <Arc_Koen> Overbite
05:34:29 <Arc_Koen> is that like an Überzombie thing
05:34:47 <zzo38> I also wrote a gopher client for any UNIX system, called bashgopher, and a GUI gopher client for Windows, called Visgopher, and I don't know if it work on WINE or not.
05:35:04 <Bike> called so because gophers are often depicted with an overbite, prolly
05:37:36 <shachaf> echo 'furry*!video_game' | nc zzo38computer.org 70 | head -n3 | tail -n1 | cut -c 2-
05:37:44 <shachaf> Finally we can generate ourselves some game names!
05:38:36 <kmc> these are great
05:38:39 <zzo38> That is one way!
05:38:55 <kmc> Nasty Chemistry in Middle-Earth
05:38:57 <zzo38> However, if you want, you can also download the programs into your own computer to use them, if you have PHP, in order to speed up
05:39:04 <zzo38> Rather than having to use internet.
05:39:05 <Bike> "Bonk's Quarterstaff Lawyers" shiiiiit
05:39:14 <shachaf> Stop the Hang Glider Choreographer
05:39:28 <Bike> Ghetto Fun Operatives. this is genius
05:39:33 <kmc> Bumping Nazi Fun
05:39:34 <shachaf> Stoic Golf Scam
05:39:42 <kmc> Canadian Blood 3000
05:39:43 <shachaf> Acidic Illithid Against Patents
05:39:46 <kmc> Interesting Graveyard For Masochists
05:39:50 <Bike> Occult Shark Odyssey
05:39:52 <shachaf> Bizarre Penguin Rebellion
05:40:03 <Bike> i'm pretty sure the ecco the dolphin is kind of that though
05:40:08 <shachaf> Big Bird's Sniper Connection
05:40:15 <Bike> Catholic Shaving 95 <-- okay, hang on now
05:40:17 <zzo38> FurryScript is a command-line program, written in PHP, and you are free to use them under the GNU AGPL.
05:40:50 <kmc> Flying Landmine Fiasco
05:40:56 <shachaf> Russian Wagon Conundrum
05:40:59 <kmc> Nobody Likes the College Orchestra
05:41:31 <kmc> Ultraviolent Programming Boy
05:41:36 <zzo38> Not all of the data in that file is mine, but much of it is; I also corrected some mistakes that the other data contained, and removed some duplicates and so on.
05:42:01 <shachaf> Communist Croquet Voyage
05:42:07 <shachaf> Epic Llama Thieves
05:42:22 <shachaf> Xenophobic Yak Demolition
05:42:36 <kmc> In the Lost Kingdom of Spelling DVD
05:42:52 <kmc> Fiery Punching Chase
05:42:58 <kmc> Queen of the Racing Hospital
05:43:03 <zzo38> So, if you have PHP on your computer, you should download it if you are planning to make many requests, so that you can avoid overloading my computer or overloading the internet.
05:43:16 <kmc> Scooby Doo and the Chocobo Dungeon
05:43:25 <shachaf> If I don't have PHP on my computer can I keep overloading the Internet?
05:43:29 <shachaf> Final Beautician Disaster
05:43:36 <shachaf> Jedi Hair Salon Massacre
05:43:41 <shachaf> Asymmetric Janitor Unleashed
05:43:47 <kmc> front page news tomorrow: "online game name generator takes down Internet"
05:44:01 <kmc> Irritating Writing vs. Capcom
05:44:14 <zzo38> shachaf: Well, it would be better if you don't keep overloading the internet; but, it is possible to request more than one at once by a tab afterward and how many you want.
05:44:17 <shachaf> Five dimensional Drug-Dealing Crusader
05:44:22 <kmc> Hitler's Wrestling Restaurant
05:44:35 <kmc> Blessing of the Internet Posse
05:44:44 <kmc> Middle-Eastern Juggalo of the Law
05:44:50 <shachaf> zzo38: Oh, thank you.
05:44:55 <Bike> http://www.somethingawful.com/d/photoshop-phriday/randomly-generated-games.php Oh, I forgot that SA did this once.
05:45:00 <Bike> Except they made covers to go with 'em.
05:45:57 <shachaf> echo $'furry*!video_game\t20' | nc zzo38computer.org 70 | grep '^i\w' | cut -c 2-
05:47:13 <Bike> http://i.somethingawful.com/u/garbageday/photoshop_phriday/2009_08_21/HellospPity_01.jpg i think it went well, personally
05:47:33 <shachaf> Unremarkable Gun Insanity
05:47:37 <kmc> Funky DJ Werewolf sounds lie a promising tv show premise
05:47:52 <shachaf> Boring Ping Pong Expert
05:47:57 <shachaf> That sounds too realistic.
05:48:19 <kmc> Awful Bong Nation
05:48:20 <zzo38> OK, then make a television show too, if you like to do that.
05:48:38 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
05:48:51 <kmc> this sounds like one of those home makeover shows
05:49:01 <kmc> the host comes to your room and inspects your awful bong and then helps you improve it
05:49:26 <kmc> participants get a $1000 gift card for ROOR
05:49:28 <Bike> how does this tie into American Bong Saloon?
05:49:56 <shachaf> Oh, there's also a TV plot generator.
05:50:17 <shachaf> AND WHO SAVES A MANAGER
05:50:35 <kmc> Blessing of the Bible - The Lost Levels
05:51:27 <zzo38> That TV plot generator is very old and the original source is unknown, although it has been published by Creative Computing; I then added a lot of additional things to that file.
05:51:34 <kmc> In the Lost Kingdom of Laser Preacher
05:51:37 <zzo38> This is why they are in uppercase.
05:51:57 <shachaf> zzo38: Good reason.
05:52:38 <kmc> Sniper on the Oregon Trail
05:53:02 <kmc> Night of the Underwear Interceptor
05:53:05 <kmc> Hillbilly Hippo Bastards
05:53:19 <quintopia> are these movie titles or video game titles?
05:53:29 <Bike> why not both?
05:53:32 <kmc> Emo Night in Hell!
05:53:43 <shachaf> Hmm, there's also an adventure generator
05:53:44 <kmc> Real Math Pimps
05:53:47 <shachaf> If you use !adventure
05:53:49 <quintopia> did this thing generate the name of real fast nora's etc. ? because it should have,
05:54:00 <kmc> Final Computer of Mother Theresa
05:54:25 <kmc> Exciting Brain - Total Peace
05:55:20 <shachaf> Someone is sabotaging wagons and carts to come apart when travelling at high speed.
05:55:26 <shachaf> Elves are using a gauntlets of arcane weakness to kill human librarians.
05:55:35 <kmc> Orbital Horse Racing Lawyers
05:56:01 <kmc> Big Bird's Ghost Gone Wild
05:56:14 -!- sebbu has quit (Read error: Connection reset by peer).
05:56:26 <kmc> Frankenstein's Transvestite Castle
05:56:27 -!- GreyKnight has joined.
05:56:31 <kmc> Mary Kate and Ashley's Fish Revisited
05:56:32 <shachaf> Everything burns.
05:56:39 -!- sebbu has joined.
05:56:48 <shachaf> You receive a map with many deliberate errors.
05:57:09 <Bike> Frankenstein's Transvestite Castle <-- well that one's obviously a movie.
05:57:26 -!- TeruFSX has quit (Ping timeout: 250 seconds).
05:57:42 <kmc> Wandering Cat 2000
05:59:05 <quintopia> Bike: not necessarily. maybe it is like a crossbreed of rocky horror and luigi's mansion
05:59:11 <kmc> Psychedelic Forklift Competition
05:59:15 <kmc> Bling Bling Florist Overlords
05:59:31 <Bike> quintopia: isn't that just luigi's mansion
06:00:02 <quintopia> hmmmmm
06:00:07 <quintopia> no, the music is more fun
06:03:16 <kmc> Dirty Tennis Yoga <--- ok that would sell
06:03:35 <Bike> but would it be legal?
06:03:43 <kmc> c.f. http://penny-arcade.com/comic/2002/10/18
06:05:03 <kmc> Imperfect Hovercraft Physics <--- this game came with windows 95
06:05:17 <Bike> "BMX XXX" why did i look up what that comic was referring to
06:05:39 <quintopia> apparently there were not one but two rocky horror video games
06:05:41 <quintopia> so yeah
06:05:44 <Bike> what
06:05:46 -!- GreyKnight has quit (Ping timeout: 265 seconds).
06:05:51 <quintopia> zzo38: do you have a c64 emulator
06:06:14 <kmc> Geriatric Otaku Nation
06:06:28 <elliott> am i missing kmc running a zzo program
06:06:51 <kmc> Approximate Bedtime For Masochists
06:07:10 <elliott> im reading all of these wow they're good
06:07:21 <elliott> 05:43:16 <kmc> Scooby Doo and the Chocobo Dungeon
06:07:25 <elliott> jesus
06:07:36 <elliott> 05:44:01 <kmc> Irritating Writing vs. Capcom
06:07:41 <elliott> christ
06:07:52 <Bike> chocobo's dungeon was really pretty fun. adding a mystery-solving-dog component could only improve it
06:08:05 <kmc> Dracula's Bomberman - The Dark Project
06:08:17 <zzo38> quintopia: No
06:08:31 <kmc> Neon Wheelchair of Love
06:08:36 <kmc> Unbelievable Enlightening Trivia
06:08:51 <elliott> Ye Olde Hamster I
06:08:57 <quintopia> zzo38: what about zx spectrum
06:09:05 <elliott> Papal Bass Vengeance
06:09:19 <kmc> Postmodern Chess Detective <--- this is a canadian TV show (http://en.wikipedia.org/wiki/Endgame_(TV_series))
06:09:22 <zzo38> No, I don't have that either. Not on this computer, anyways.
06:09:27 <kmc> pretty good
06:09:28 <elliott> The Infernal Barcode Strike Force
06:09:52 <elliott> Russian Shock Babies
06:10:00 <quintopia> zzo38: do you know a way to port binaries targeting those systems without an emu
06:10:12 <kmc> Interstellar Lowrider Plus
06:10:13 <zzo38> quintopia: No.
06:10:22 <elliott> Biblical Stone in Space
06:10:26 <zzo38> Do you need them?
06:10:37 <kmc> Low G Hillbilly Colosseum
06:10:47 <kmc> that was an episode of futurama
06:10:54 <Bike> «The game involved playing as either Brad or Janet and collecting pieces of the Medusa machine scattered around the castle, in order to free your partner from stone and escape the castle before it blasts off. Meanwhile the other characters in the game can hinder your progress by stealing and hiding your clothes along with what you are carrying.»
06:11:15 <elliott> Single Fun - The Last Generation
06:11:24 <elliott> it's the last generation because everyone in it is staying single and not having babies
06:11:27 <elliott> also they have fun
06:11:40 <kmc> Christian Spelling vs. The Space Mutants
06:11:52 <elliott> Renegade Telephone Colosseum
06:12:00 <FreeFull> Legend of Frankenstein's Monster
06:12:05 <elliott> Pagan Banjo Caper. i think this may be the best program of all time
06:12:27 <FreeFull> Oh wait
06:12:37 <FreeFull> No, don't wait
06:12:49 <quintopia> zzo38: i was just seeing if you ever tried to play c64 games on your computer
06:12:54 <FreeFull> Someone did Frankenstein himself, but not Adam
06:13:01 <elliott> Evil Genius Sailboat Conundrum
06:13:38 <kmc> Dead Goth Symphony
06:13:43 <kmc> that would be a good band name
06:13:49 <FreeFull> Oh, this is generated
06:14:17 <elliott> Celtic Terrorist GT
06:14:27 <FreeFull> Stealth Workout - The Lost Levels
06:15:00 <FreeFull> Pro Plunger in the Magic Kingdom
06:15:06 <kmc> Angry Landmine Romance
06:15:29 <FreeFull> Tactical Chess - Total War
06:15:34 <elliott> Combat Dating Dreamland
06:15:39 <kmc> History of the Sunshine Thieves
06:15:43 <kmc> another band / album name
06:16:19 <Bike> the thing about band names is that you have to specify a genre
06:16:27 <Bike> otherwise you can just enter in random characters and say it's post-rock, etc
06:16:31 -!- GreyKnight has joined.
06:16:35 -!- GreyKnight has quit (Client Quit).
06:16:46 <FreeFull> Silly Transvestite Joe
06:17:06 <FreeFull> Wtf
06:17:12 <zzo38> Then write some for band name including genres! I wrote on esolang wiki of FurryScript, hopefully you can understand?
06:17:16 <FreeFull> wtf Indian Chocobo Jihad
06:17:22 <kmc> i think History of the Sunshine Thieves would play upbeat power-pop with unsettling existentialist conspiracy lyrics
06:17:23 <elliott> Bike: well that already works for post-rock bands in practice so what's the problem
06:17:24 <Bike> There are already dozens of generators.
06:17:26 <elliott> Children of the Tetris Collection
06:17:43 <kmc> it might be too long for anything but post rock though
06:17:45 <Bike> elliott: i mean, what if i want a post-breakcore neobaroque-hop band name?
06:17:47 <elliott> the tetris collected them... but now... the tables have turned
06:17:57 <FreeFull> Nasty Tetris DJ
06:18:07 <elliott> Bike: then possibly it is for the best that there is no band naming service to suit your needs
06:18:12 <elliott> Cybernetic Harp Gladiator
06:18:17 <Bike> Philistine.
06:18:20 <FreeFull> Small-Time Techno Havoc
06:18:28 <kmc> Weary Punching Mathematics
06:18:35 <FreeFull> Inbred Bongo Scam
06:18:47 <elliott> Stop the Anarchy
06:18:48 <kmc> Everybody Hates the Midget Sickness
06:18:50 <elliott> it has the extra space. i don't know why
06:18:56 <FreeFull> Cosmic Booty Project
06:19:16 <zzo38> elliott: If you look at the script codes then you will know why. But you can just ignore the extra space.
06:19:22 <elliott> i will
06:19:23 <FreeFull> All-Night Lawnmower Slayer
06:19:25 <elliott> Star Wars Spatula Deluxe
06:19:30 <kmc> Hazardous Flatulence World Tour
06:19:45 <elliott> Hip-Hop Banjo Co-Op
06:19:52 <FreeFull> Stupendous Turtle Machine
06:20:01 <shachaf> what have i started
06:20:16 <FreeFull> Radical Baking Assault Forever it will be a channel to discuss these now
06:20:27 <kmc> Luigi's Smart Sickness
06:20:29 <FreeFull> Special Hobo Gold
06:20:33 <elliott> Escape from the Fun Noodle World Cup
06:20:39 <FreeFull> I would NOT want a hobo's special gold
06:20:41 <Bike> technically it's all zzo's fault. you're just the harbinger, shachaf, of zzo's doom
06:20:43 <elliott> not so fun any more
06:20:54 <elliott> Tropical Cheese Sorcery
06:21:06 <FreeFull> Screaming Frisbee Universe
06:21:07 <elliott> Exquisite Bible Armada these are so good
06:21:14 <kmc> Drug-Induced Baking III
06:21:15 <FreeFull> I'm just imagining every frisbee ever thrown just screaming
06:21:29 <FreeFull> AaAAAAAAAAA *blarg*
06:21:33 <elliott> Return of Dinosaur on the High Seas
06:21:44 <elliott> hybrid piracy/dinosaur game
06:22:05 <kmc> an iphone app that helps you bake stuff while you are high
06:22:12 <kmc> that would make about a billion kajillion dollars
06:22:23 <FreeFull> Ultimate Business 2k
06:22:37 <FreeFull> Unforgettable Burger Warfare
06:22:51 <elliott> Topsy-Turvy Cannibal Struggle
06:22:55 <kmc> Jedi Programming Principle <--- less a video game and more a linkbait post on hacker news
06:23:18 <shachaf> `quote ctopus
06:23:20 <HackEgo> 191) <zzo38> Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) \ 220) <zzo38> ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could m
06:23:25 <shachaf> These are pretty good.
06:23:26 <FreeFull> kmc: Someone should actually write a good article about that
06:23:37 <Bike> shachaf: is that second quote referring to the pacific northwest tree octopus?
06:23:38 <kmc> Get Cat Eating
06:23:47 <elliott> Unforgettable Pony - 2nd Impact
06:23:57 <shachaf> Bike: I assume so.
06:24:03 <shachaf> Bike: My mother once forwarded that email to me.
06:24:06 <FreeFull> Enormous Fun Island
06:24:15 <kmc> NBA Biplane Dungeon
06:24:17 <Bike> FreeFull: http://bradapp.blogspot.com/2009/07/jedi-programming-just-enough-design.html i have something to tell you
06:24:20 <FreeFull> No One Can Stop the Duck Bandits
06:24:20 <elliott> Meta Deer Hunter of the Deep
06:24:31 <FreeFull> Would be a good band name if it wasn't so long
06:24:32 <Bike> shachaf: i think i convinced one of my friends of it once. considering how rainy it is here it's shockingly believable
06:24:49 <shachaf> Bike: You're in the Pacific Northwest?
06:24:57 <elliott> FreeFull: band The Duck Bandits, album No One Can Stop the Duck Bandits. perfect?
06:25:01 <Bike> ayep
06:25:01 <kmc> 8-Bit Android DJ <--- shit yeah that would sell
06:25:10 <Bike> kmc: bit.trip beat?
06:25:12 <elliott> Masters of Wheelchair Deathmatch
06:25:59 <elliott> In Search of Dungeons and Dragons Task Force
06:26:40 <kmc> History of the Punching vs. You
06:27:00 <elliott> kmc: another good band name
06:27:04 <elliott> this program is multi-purpose
06:27:11 <kmc> Ye Olde Drug-Dealing Crime Scene Investigation
06:27:18 <elliott> hahahaha
06:27:55 <FreeFull> elliott: But a band called Duck Bandits already exists
06:28:11 <elliott> Double Gnome Tournament
06:28:28 <kmc> Post-Apocalyptic Penguin Trader
06:28:57 <elliott> Undercover Otyugh Balls
06:29:03 <kmc> Duke Nukem: Shaving Eating
06:29:13 <elliott> shaving eating
06:29:19 <FreeFull> Geriatric Buddhist Raider
06:29:32 <FreeFull> Oh hahaha
06:29:33 <FreeFull> Super Sexy Manlove Beta
06:29:44 <kmc> they haven't worked out all the kinks yet
06:29:48 * kmc ducks
06:29:53 <elliott> Almighty Skate Invaders
06:30:09 <kmc> Fisher Price Tentacles Nightmare
06:30:30 <kmc> Bad Programming Fiesta
06:30:34 <kmc> Imperial Sunshine Orchestra
06:30:35 <shachaf> Are y'all still running this game name generator?
06:30:55 <elliott> Asian Hell Anarchy
06:30:55 <Bike> no, they're just hooked directly into the mind of god now.
06:31:19 <FreeFull> A bot in another channel on another network had this thing where you specified kinds of words (like proper noun) with one or two letter combinations, and it would fill it in into a sentence
06:31:22 <kmc> Religious Juggalo Paratroopers
06:31:27 <FreeFull> It had some more advanced stuff too
06:31:37 <kmc> Curse of the Puppy in Vegas
06:31:39 <FreeFull> God were the sentences funny
06:31:57 <FreeFull> And of course you could write out most of the sentence yourself and have it only small parts
06:32:00 <kmc> Narcoleptic Jetski Diesel
06:32:14 -!- asiekierka has quit (Excess Flood).
06:32:15 <Bike> i know a channel on another network where they just have a bot that messages at a common rate with markov gibberish
06:32:25 <kmc> All-Day Caveman in Bed
06:32:26 <Bike> of course, the consequence is that it's hard to tell the humans apart from the bot
06:32:32 <kmc> Everybody Loves the Prison Psychiatrist
06:33:18 -!- asiekierka has joined.
06:33:42 <kmc> Mary Kate and Ashley's Juggalo Showdown
06:33:54 <kmc> My Very Own Money Conundrum
06:34:18 <kmc> Revenge of Bong of the Third Reich
06:34:32 <kmc> that one sounds like a *really* bad stoner comedy
06:34:38 <kmc> Wacky STD Inferno
06:35:00 <elliott> my very own money conundrum sounds pretty sad
06:35:28 <kmc> Transvestite Flatulence For Masochists
06:35:44 <Bike> these are sounding increasingly illegal.
06:35:47 <kmc> The Hunt For the Punching Beatdown
06:36:40 <elliott> Minimal Cricket Rage
06:36:42 <kmc> Antediluvian Cowboy of Magic
06:36:45 <shachaf> Does the JVM really make it impossible to do tail call elimination?
06:36:51 <elliott> 2-Bit Hardware Country
06:36:58 <shachaf> Or even just jumps in general, except within a method?
06:37:01 <elliott> 1-Bit Breakdancing - The Gathering Storm
06:37:08 <kmc> Medical Sudoku in My Pocket
06:37:14 -!- sebbu2 has joined.
06:37:17 <Bike> shachaf: i think it would interfere with the security model?
06:37:33 -!- sebbu2 has quit (Changing host).
06:37:33 -!- sebbu2 has joined.
06:37:33 <shachaf> I don't know much about the JVM.
06:37:40 <elliott> Symmetric Jetski Offline
06:37:41 <Bike> neither do I
06:37:47 <FreeFull> http://www.jazz2online.com/junk/tick/tickbot.html#rsg
06:37:47 <shachaf> Why would it interfere?
06:37:50 <FreeFull> Read up
06:37:57 <Bike> but that's what i've heard. since tail calls mess up the stack frames
06:38:04 <Bike> which... are needed for security audit or something
06:38:31 <kmc> Hexadecimal Wordplay - Star Trek Edition
06:38:35 <Fiora> but isn't the idea of tail call elimination that you just optimize a recurisve function into a loop via code transformation? so like, the function doesn't exist anymore kinda
06:38:38 <Bike> «These requirements could in theory be supported, but it would probably require a new bytecode (see John Rose's informal proposal).»
06:38:42 <FreeFull> The actual bot ended up more advanced but the documentation wasn't updated
06:38:45 <Fiora> like, the JVM can inline, and that changes things
06:38:47 <kmc> Celebrity Writing Jihad
06:39:14 <elliott> Fiora: TCE doesn't have to be a call to the same function, is the crux
06:39:15 <Bike> Fiora: yes, so a 5-deep recursive call that would have been five stack frames for audit turns out to be just the one.
06:39:25 <Bike> oh, yeah, that would make more sense. duh.
06:39:27 <elliott> i.e. you can have two mutually-recursive functions, say
06:39:34 <elliott> or even just 5000 different functions that all tail-call each other
06:39:38 <elliott> and they'd all get optimised
06:39:46 <shachaf> Or you can just, you know, have a tail call. No recursion necessry.
06:39:47 <elliott> this is why you can't optimise it "locally" by just changing one function
06:39:47 <shachaf> a
06:40:03 <elliott> Mrs. Wumpus Simulator
06:40:06 <elliott> Preschool Architecture - The Lost Levels
06:40:13 <FreeFull> The problem with calling it an optimisation is that in some languages, iteration doesn't exist at all
06:40:16 <shachaf> The JVM has no jump instruction, though.
06:40:23 <shachaf> Except inside a method, and a method is limited to 64K
06:40:30 <Bike> FreeFull: are there any such languages besides scheme?
06:40:33 -!- sebbu has quit (Ping timeout: 245 seconds).
06:40:46 <ion> 64 k should be enought for everyone.
06:40:59 <FreeFull> Bike: I can't think of any that aren't lisps
06:41:04 <shachaf> ion: Actually a method is limited at 64K - 1 :-(
06:41:05 <elliott> haskell
06:41:18 <elliott> Madden Pogo Dreamland
06:41:22 <ion> shachaf: 64 kB or 64 KiB?
06:41:25 <elliott> Five dimensional Hardware in My Pocket
06:41:27 <ion> (−1)
06:41:29 <elliott> Mega Internet of Love
06:41:29 <elliott> Fix the WWII Monsters
06:41:32 <shachaf> ion: I assume KiB.
06:42:15 <Bike> maybe you can just make do with folds.
06:42:18 <FreeFull> In haskell most often you'd do something like map x ys but map itself might be implemented recursively (No idea about implementation, could be in C for all I know)
06:42:35 <FreeFull> Or a fold if you want one end result
06:42:37 <shachaf> Haskell's "map" is implemented in APL
06:42:41 <Bike> haha.
06:43:27 <Bike> you couldn't technically meet the scheme standard though, probably, because it actually mandates tailness?
06:43:53 <shachaf> Sure you could.
06:44:13 <elliott> it mandates constant space usage
06:44:16 <shachaf> You might not be able to have a mapping Scheme function -> JVM method.
06:44:19 <elliott> you can achieve this on a given Haskell implementation
06:44:20 <elliott> oh is this jvm
06:45:23 <shachaf> elliott: When you write your Haskell compiler, can you not make it generate annoying names like "sfWk_info"?
06:45:30 <elliott> no
06:45:37 <shachaf> How many names does GHC actually generated, anyway?
06:45:45 <shachaf> I suppose most of them are intermediate names that are never seen.
06:45:59 <shachaf> I'd rather have it be called "alpaca_info" or something.
06:46:23 <ion> Haskell’s “IO” is implemented as a container for a Perl script to be executed via libperl by the RTS.
06:46:36 <shachaf> Let me translate that from ionese:
06:46:45 <shachaf> Haskell's "IO" is implemented as a container for a Perl script to be executed via libperl by the RTS.
06:47:04 <kmc> y u troll
06:47:06 <fizzie> There is also a requirement that's approximately something like all possible paths of reaching a particular point must have the same (statically analyzed) stack effect, so you can't e.g. make a loop that'd pop off elements from the JVM stack.
06:47:23 <fizzie> "If an instruction can be executed along several different execution paths, the operand stack must have the same depth (§2.6.2) prior to the execution of the instruction, regardless of the path taken."
06:49:21 <kmc> <FreeFull> I'm just imagining every frisbee ever thrown just screaming
06:49:24 <kmc> sounds like salvia
06:56:00 <ion> Learning English through Exercise http://youtu.be/YZ1hah7QvIw
06:59:02 <kmc> i like the implication that taking a taxi in america will immediately lead to a knifepoint robbery
07:00:41 <ion> Is that not the case?
07:01:33 <kmc> only in detroit
07:01:42 <kmc> and oakland
07:01:45 <kmc> and east palo alto
07:02:18 <shachaf> hi
07:02:27 <shachaf> I've never taken a taxi in EPA.
07:02:38 <shachaf> I've taken them in San Francisco, though.
07:03:11 <shachaf> It felt very dangerous.
07:03:19 <shachaf> That was mostly because of the driver's driving, though.
07:03:57 -!- FreeFull has quit.
07:10:53 -!- sebbu2 has changed nick to sebbu.
07:14:26 -!- augur has joined.
07:29:54 <sgeo> http://heaven.internetarchaeology.org/ I'm sure many people have seen this but it has not stopped being hilariously bad
07:30:36 <Bike> co-existance
07:31:32 <sgeo> !!!
07:31:32 <sgeo> http://midi.internetarchaeology.org/devil.mid
07:31:36 <sgeo> What song is that?
07:34:27 <elliott> by bad do you mean really good
07:35:21 <monqy> a true work of art
07:35:24 <monqy> timeless masterpiece
07:35:31 <monqy> &c &c
07:35:50 <shachaf> monqy: hi
07:36:20 <monqy> hi
07:37:01 <shachaf> monqy: I took your "hi" and sold it to a collector for "about a billion kajillion dollars"
07:40:37 <sgeo> I love MIDIs
07:40:51 <monqy> me too
07:42:58 -!- asiekierka has quit (Excess Flood).
07:46:27 -!- asiekierka has joined.
07:47:36 -!- WeThePeople has quit (Quit: Leaving).
07:49:19 -!- asiekierka has quit (Excess Flood).
07:49:27 -!- asiekierka has joined.
07:51:16 <sgeo> elliott, monqy. I believe by #esoteric law I am required to do the thing.
07:51:41 <sgeo> It's somewhat boring
07:51:49 <monqy> sounds like a dumb law
07:52:00 <shachaf> what law?
07:52:04 -!- Bike has quit (Quit: leaving).
07:52:37 <fizzie> The law of gravity.
07:52:38 -!- zzo38 has quit (Remote host closed the connection).
07:52:52 <fizzie> It's only enforced because of an obscure #esoteric rule from the middle ages.
07:53:03 <fizzie> We'd all be free to fly around if it weren't for this channel.
07:53:26 <fizzie> Admittedly stars wouldn't work either, but that's the price you pay.
07:53:27 <shachaf> Hmm, I always thought it was Newton's fault.
07:53:47 <fizzie> If only he had had sense to dodge that apple, we wouldn't have gravity?
07:54:08 <sgeo> Apples usually fall up, don't they?
07:54:10 <shachaf> It's terrible.
08:02:46 <quintopia> sgeo: you've been playing too much iwtbtg. put down the delicious fruit.
08:03:11 <sgeo> I haven't played much iwtbtg
08:03:26 <sgeo> I love watching Let's Plays, but I haven't seriously tried playing myself
08:05:52 -!- SingingBoyo has quit (Quit: Leaving).
08:08:38 <ion> Meanwhile in Finland: parking your car http://is12.snstatic.fi/img/978/1288523526349.jpg
08:13:11 -!- epicmonkey has joined.
08:36:23 -!- epicmonkey has quit (Ping timeout: 245 seconds).
08:38:28 -!- nooga has joined.
08:51:42 -!- nortti has quit (Ping timeout: 276 seconds).
08:57:21 -!- kallisti has quit (Ping timeout: 265 seconds).
08:57:49 -!- kallisti has joined.
08:57:49 -!- kallisti has quit (Changing host).
08:57:49 -!- kallisti has joined.
09:37:31 -!- Taneb has joined.
09:44:47 -!- epicmonkey has joined.
09:47:48 <fizzie> Meanwhile also in Finland: Finnish Safety and Chemicals Agency has done their traditional yearly spot-check on christmas toys, and 14 of the selected 28 toys had safety deficiencies; 5 such that they were recalled, including a bow-and-arrow set with a laser pointer aiming thing that's "over ten times" over the 0.39 mW limit of a class 1 laser.
09:56:00 <oklopol> let's go dutch
09:56:14 <Taneb> I've got the name for it
09:56:45 <olsner> Meanwhile in Dutch: Finse Veiligheid en Agentschap voor chemische stoffen heeft gedaan hun traditionele jaarlijkse spot-check op kerst speelgoed, en 14 van de geselecteerde 28 speelgoed had veiligheidstekortkomingen, 5 zodanig dat ze werden teruggeroepen, waaronder een boeg-en pijl-set met een laser pointer gericht ding dat is "meer dan tien keer" over de 0,39 mW grens van een klasse 1 laser.
09:58:03 <fizzie> "Boeg-en pijl-set" makes me smile.
09:58:38 <fizzie> I wonder if "een laser pointer gerich ding" is something a native Dutch speaker might say.
09:58:49 <olsner> looks like it translated into (Finnish Safety) and (chemicals agency) too
09:59:23 <fizzie> That's not terribly good.
09:59:30 <Taneb> My hair feels weird
09:59:45 <olsner> Your hair feels?
09:59:55 <olsner> Mine doesn't, as far as I know
10:01:18 <fizzie> Also this http://www.turvallistajuhlaa.info/@Bin/44623/zoolife_popeyes_web.jpeg was recalled because one of the eyes fell off in the testing. With a name like "ZooLife Popeyes", I don't know what they were expecting...
10:09:22 -!- evitable has joined.
10:13:59 -!- ogrom has joined.
10:14:18 <sgeo> If I start talking about Factor again, is elliott going to bring that bot in again?
10:14:40 -!- ogrom has left.
10:15:04 -!- Taneb has quit (Quit: Leaving).
10:15:41 -!- evitable has quit (Ping timeout: 245 seconds).
10:17:07 <sgeo> : fortnight ( x -- duration ) 14 * days ;
10:17:14 <fizzie> "Better not tell you now", says the magic eight-ball.
10:17:20 <sgeo> That tricks me into thinking that 14 is being multiplied by days
10:17:20 <fizzie> I suppose that wasn't very helpful.
10:18:51 -!- evitable has joined.
10:28:41 <fizzie> Forthnight.
10:31:10 -!- augur_ has joined.
10:33:37 -!- augur has quit (Ping timeout: 244 seconds).
10:42:35 <fizzie> [12:39:21] <matthewt> !conduct
10:42:35 <fizzie> [12:39:21] <Rodney> Conduct: Do not eat a dagger more than 11 times.
10:42:41 <fizzie> (Had to retwe... I mean, share.)
10:47:06 <sgeo> !insulate
10:50:08 -!- evitable has quit (Ping timeout: 245 seconds).
11:18:02 -!- copumpkin has quit (Ping timeout: 265 seconds).
11:18:33 -!- copumpkin has joined.
11:23:59 <sgeo> Maybe I'd find Factor easier if I viewed the stack shuffling words as though they were compositions of the function that follows them?
11:24:05 <sgeo> swap foo is just like flip foo
11:25:42 <monqy> thing is have you ever seen a mess of flips and made sense of it
11:25:56 <monqy> does that sort of thing happen in factor
11:26:16 <sgeo> I'm starting to fear that that's the default in Factor
11:27:26 <monqy> I'd assume otherwise but ~who knows~
11:28:17 <monqy> of course you can't just take some wacky function and write it in factor with flips and make it readable but maybe you can write it in some other way that's easier to make sense of, using higher level features, and comment it if needed, &c
11:29:16 <monqy> after all if factor was just a mess of flips who would use it :]
11:35:46 -!- ogrom has joined.
11:40:03 <shachaf> monqy: spoilers no one uses factor :'(
11:40:09 <shachaf> monqy: (but not because of the flips)
11:41:21 <fizzie> Do you get the kind of >R SWAP R@ OVER R> thing in Factor?
11:43:00 <fizzie> (That's (a b c -- b a c a c) and is probably conventionally written in some other way, I just mashed some keys.)
11:45:13 <fizzie> This is how Forth's return stack works: http://www.forth.com/starting-forth/images/ch5-return-stack.gif
11:46:06 <monqy> shachaf: why don't people use factor :0
11:46:18 <monqy> and
11:46:20 <monqy> if sgeo used factor
11:46:26 <monqy> would that be people using factor ?
11:49:16 <fizzie> Only is Sgeo is people.
11:49:35 <fizzie> Is Sgeo made of people? A horrible thought.
11:49:41 <sgeo> [ swap ] dip 2dup
11:49:54 <sgeo> I think that should have the same effect in Factor. Hmm
11:50:05 <monqy> but why would you write that
11:50:31 -!- Taneb has joined.
11:51:02 <sgeo> Apparently not
11:54:44 <sgeo> Oh sure. Forget to output makes it error
11:54:57 <sgeo> http://ideone.com/j6E2dD works, but swapd is apparently depreciated
11:55:37 <monqy> but why would you write that.............
11:56:17 <sgeo> Because it's what fizzie's thing does.
11:56:26 <sgeo> http://ideone.com/zrZAGv
11:59:28 <sgeo> The depreciation thing for swapd says that it's depreciated, and the use case would be better served with lexicals
11:59:53 <sgeo> "The data flow represented by this shuffle word can be more clearly expressed using Lexical variables."
12:00:48 <fizzie> Are that in any way like Forth locals?
12:01:48 <sgeo> I don't know what Forth locals are like
12:02:12 <sgeo> Example of a word defined with lexicals:
12:02:23 <fizzie> : foo ( a b c -- b a c a c ) >r swap r@ over r> ; would be written with locals as : foo { a b c -- b a c a c } b a c a c ;.
12:02:23 <sgeo> :: ( a b c -- ) a . b . c . ;
12:02:32 <sgeo> Ah, so yes
12:02:39 <sgeo> oops forgot to name it
12:03:23 <fizzie> It seems very similar, except for the syntax. (:: instead of {}s in the stack comment?)
12:04:22 <sgeo> yes
12:04:37 <fizzie> True Forthers (as far as I can figure out) say locals are the worst possible thing, should be never used, and you should just factor the words into smaller and smaller pieces instead.
12:04:58 <fizzie> Also that they are a "crutch" that will make you not factor properly.
12:05:13 <fizzie> Possibly also that anyone caught using locals should be shot.
12:05:34 <monqy> zzo writes forth codes right? is zzo a true forther
12:05:46 <sgeo> http://ideone.com/XxXaIb
12:06:16 <sgeo> Factor seems to take the view that they should be used only when needed
12:06:35 <sgeo> And yes, strings don't need a space after the ". It's an exception in the parser
12:06:44 <sgeo> Other things like URL" still need the space
12:07:16 <sgeo> fizzie, there's also [let ] that can be used anywhere
12:08:48 * sgeo wonders if there's a way to write dip in pure Factor
12:09:01 <sgeo> dip is defined, as it turns out, but in terms of dip
12:09:23 <sgeo> The primitive dip is used with literal quotations, and the definition is used for non-literal quotations
12:09:37 <fizzie> sgeo: Technically, you can use { anywhere too: http://ideone.com/Kbh5F6
12:09:45 <fizzie> (Not that you'd probably want to.)
12:10:25 <sgeo> But that doesn't seem to terminate?
12:10:30 <sgeo> Except at the ;
12:10:38 <fizzie> You can do http://ideone.com/eO60Di if you want to get rid of them early too.
12:10:39 <sgeo> I should really be sleeping
12:11:06 <fizzie> Whoops, the comment for the locals is now misleading.
12:11:09 <fizzie> But you get the point.
12:11:26 <sgeo> yes
12:11:42 <fizzie> (The scope/endscope is probably gforth-specific.)
12:11:43 <sgeo> In Factor, those aren't comments
12:12:52 <fizzie> The part after -- is a comment in Forth.
12:13:26 <sgeo> I thought stack declarations were comments in general. Oh, except for the locals stuff, sure
12:13:44 <fizzie> Right, yes, in ()s they're comments altogether.
12:14:05 <sgeo> Factor actually checks those
12:14:08 <fizzie> ANS Forth doesn't really define a syntax for locals, it just defines words that can be used to define syntaxes for locals, so my examples might've been quite gforth-specific overall.
12:14:20 <fizzie> "The ANS Forth locals extension wordset defines a syntax, but it is so awful that we strongly recommend not to use it. We have implemented this syntax to make porting to Gforth easy, but do not document it here."
12:15:02 <fizzie> It's apparently the wrong way around compared to standard stack comment notation, to begin with.
12:16:32 -!- ogrom has quit (Quit: Left).
12:16:43 <sgeo> wrong way around?
12:17:05 <sgeo> Oh, is that the syntax you used, or is the syntax you used Gforth specific?
12:19:10 <sgeo> Cool, in Factor it's possible for an error handler to forcibly resume from an error even if the thrower isn't expecting it
12:22:08 <fizzie> The syntax I used is I think reasonably common, but it's not entirely standard.
12:23:01 <fizzie> The ANS locals for : foo ( a b c -- ... ) ... ; would be declared with locals| c b a |.
12:23:17 <sgeo> I can see how that's a bit WTFy
12:23:20 <fizzie> I don't think anyone really likes it all that much.
12:23:28 <sgeo> The order
12:23:29 <sgeo> I mean
12:25:24 <sgeo> Also, there's shuffle( ) for arbitrary shuffling but I don't see any good docs
12:26:22 <sgeo> http://ideone.com/7vHtCa
12:28:37 <sgeo> Wait, I suddenly fail to see how [ swap ] dip 2dup made any sense
12:30:26 <fizzie> I was just assuming [ ... ] dip was kind of like >r ... r>.
12:31:11 <fizzie> In which case it makes sense. (And I suppose >r swap r@ over r> would arguably be better as >r swap r> 2dup, since 2dup exists too.
12:32:22 <sgeo> http://ideone.com/OnSmVL
12:32:27 <sgeo> So yeah, I got it wrong
12:32:37 <sgeo> I think it should be [ swap 2dup ] dip
12:32:46 <sgeo> Oh, I see what happened:
12:32:57 <sgeo> I turned your b a c a c thing into b a b a c
12:33:16 <sgeo> The [ swap ] dip 2dup was written for b a c a c
12:44:24 -!- Taneb has quit (Quit: Leaving).
13:01:03 -!- GreyKnight has joined.
13:06:23 -!- GreyKnight has quit (Ping timeout: 255 seconds).
13:08:46 -!- GreyKnight has joined.
13:10:17 <GreyKnight> First the disembodied hand picks up a number. Then the flying two-headed monster arrives. It's obvious when you think about it.
13:12:58 <GreyKnight> (related to: <fizzie> This is how Forth's return stack works: http://www.forth.com/starting-forth/images/ch5-return-stack.gif )
13:14:43 <hagb4rd> how could something be obvious, when i have to think about it first anyway
13:17:12 <GreyKnight> `quote
13:17:13 <HackEgo> 467) <zzo38> Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead.
13:20:21 <GreyKnight> perhaps the blood provided the beans with some extra nutrients as well
13:20:22 <GreyKnight> so considerate
13:23:05 -!- Phantom_Hoover has joined.
13:27:12 <GreyKnight> `quote
13:27:13 <HackEgo> 549) <Gregor> Hulu's movie selection is like MST3K without the MST3K characters.
13:34:06 <GreyKnight> `quote
13:34:06 <GreyKnight> `quote
13:34:07 <HackEgo> 694) <Vorpal> <ais523> northern ireland is quite a way to drag someone from scotland <-- not really. I just checked in google earth <ais523> Vorpal: but dragging people across water's a bit tricky
13:34:07 <HackEgo> 55) <oklopol> hmm, this is hard
13:34:08 <GreyKnight> `quote
13:34:09 <HackEgo> 366) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
13:35:11 <GreyKnight> 694: who was being dragged and for what purpose?
13:36:10 <sgeo> fizzie, does the return stack do anything important, or is it just a convenient place for when you need another stack?
13:36:14 <GreyKnight> 366 is good, 55 is a bit boring
13:36:36 <GreyKnight> Sgeo: you must restore it to its original state by the end of the function (or whatever Forth calls functions)
13:36:50 <GreyKnight> as the top is expected to hold a return pointer
13:37:00 <sgeo> Unless you want to do tricky continuationy stuff I assume
13:37:10 <GreyKnight> yeah
13:37:38 <GreyKnight> I got that explanation from Ch5 of http://www.forth.com/starting-forth
13:38:32 <GreyKnight> on a quick browse, it looks like fizzie's linked image is fairly representative of the odd illustrations
13:39:05 <GreyKnight> Learn You A Haskell is a bit that way too, are "cutesy bizarre illustrations" a thing now in programming books??
13:40:12 <GreyKnight> @help
13:40:12 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
13:40:17 <GreyKnight> @list
13:40:17 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
13:40:26 <GreyKnight> you could've just linked me the first time
13:40:27 <sgeo> GreyKnight, not in Factor books. Because there are no Factor books.
13:40:52 <monqy> they're a thing in factor books too
13:40:55 <monqy> because there are no factor books
13:41:01 <GreyKnight> Sgeo: so 100% of all Factor books have bizarre illustrations
13:41:09 <GreyKnight> monqy++
13:41:19 <GreyKnight> @help tell
13:41:19 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
13:41:47 <GreyKnight> @tell ais523 Did you ever find the fifth binary digit of pi?? (`quote 366)
13:41:47 <lambdabot> Consider it noted.
13:44:30 <GreyKnight> @freshname
13:44:30 <lambdabot> Hain
13:46:45 <sgeo> GreyKnight, what if there's a deletion spree before then?
13:47:29 <GreyKnight> shrug
13:51:05 <fizzie> sgeo: It is used by things other than return addresses too, which makes it slightly tricky to use.
13:51:36 <fizzie> Loop control things, for example.
13:52:48 <fizzie> You can't 10 >r ... do ... r> ... loop and expect r> to pick up the 10.
13:53:07 -!- ogrom has joined.
13:54:21 <fizzie> (And in fact i is pretty much just r@ in disguise.)
13:55:01 <GreyKnight> what about conditionals?
13:55:31 <fizzie> I don't think selection statements affect the return stack.
13:59:18 <sgeo> Do people consider Forth conditionals to be ugly?
13:59:54 <sgeo> Factor conditionals are less ... syntaxy, but harder to read imo because the code goes before the if
14:00:17 <sgeo> 0 zero? [ "It's zero!" . ] [ "It's not zero!" . ] if
14:01:27 <fizzie> I think people have complained about the misleading location of "then" in the Forth <condition> if <code if true> then <completely unrelated stuff>.
14:02:04 <fizzie> gforth documentation prefers to use the synonym "endif" for "then".
14:02:34 <sgeo> Can gforth conditionals be used at the whatever-the-REPL-is-called-in-Forth?
14:02:47 <fizzie> Especially when it's combined with else, making it cond IF truecase ELSE falsecase THEN otherstuff.
14:03:33 <sgeo> I should really get going
14:03:36 <fizzie> In the interpreter? No, but you can use [if] [else] [then].
14:03:41 <sgeo> I have a long day of mostly doing nothing at school
14:05:05 <fizzie> `forth 0 if 1 else 2 then .
14:05:07 <HackEgo> ​ \ in file included from *OS command line*:-1 \ /tmp/input.274:1: Interpreting a compile-only word \ 0 >>>if<<< 1 else 2 then . \ Backtrace: \ $40E19B30 throw
14:05:14 <fizzie> `forth 0 [if] 1 [else] 2 [then] .
14:05:15 <HackEgo> 2
14:06:03 <sgeo> `factor
14:06:12 <sgeo> Hmm, wonder about the best way to add a factor command
14:06:16 <sgeo> Actually, that could suck
14:06:34 <HackEgo> No output.
14:06:39 <sgeo> Factor has a tendency to want you to list every vocabulary you want to use, and all the useful stuff is spread out among them
14:06:40 <sgeo> Wait what
14:06:43 <sgeo> `which factor
14:06:45 <HackEgo> ​/usr/bin/factor
14:06:49 <fizzie> Factors numbers.
14:06:52 <fizzie> `factor 142341
14:06:52 <sgeo> `factor "Hello" .
14:06:53 <HackEgo> 142341: 3 17 2791
14:06:54 <HackEgo> factor: `"Hello" .' is not a valid positive integer
14:07:12 <sgeo> So... the name of Factor still sucks major balls
14:07:16 <fizzie> It's the factor of coreutils.
14:08:03 <fizzie> I wonder...
14:08:06 <fizzie> `run dpkg-query -S $(which factor)
14:08:07 <HackEgo> dpkg-query: failed to open package info file `/var/lib/dpkg/status' for reading: No such file or directory
14:08:10 <fizzie> Aw.
14:09:46 <sgeo> http://tech.groups.yahoo.com/group/concatenative/message/4873
14:10:00 <sgeo> Apparently the person behind Joy abandoned it and recommends Factor?
14:10:35 -!- boily has joined.
14:11:26 * sgeo wonders if there's a cleaner approach to syntax modification than Factor's approach
14:11:33 <sgeo> (Which I think is similar to Forth's?)
14:12:03 <sgeo> I mean, cleaner approach in the concatenative language space
14:23:52 -!- GreyKnight has quit (Ping timeout: 252 seconds).
14:39:41 <Deewiant> elliott: Turns out that exceptions are faster than return value checking for rare errors: mushspace and Hali will move to C++11, I'm afraid. (mushspace will of course still provide a C API.)
14:59:18 -!- sebbu has quit (Ping timeout: 245 seconds).
15:01:22 -!- ogrom has quit (Quit: Left).
15:10:09 <fizzie> Deewiant: Move to C with setjmp/longjmp.
15:10:24 <Lumpio-> But... but I heard a guy once say that exceptions are slow and nobody should ever consider thinking about using then!
15:10:26 <Lumpio-> them!
15:10:35 <fizzie> I've heard a guy once say that.
15:11:11 <fizzie> I've also heard you incur their cost even when not using them.
15:12:06 <Deewiant> fizzie: I thought about but I figured it's too impractical even for this.
15:13:44 <fizzie> Deewiant: Move to C with inline-asm macros that do a vaguely setjmp/longjmp-like raw register dump/reload.
15:14:41 <Deewiant> fizzie: That could be an "in addition to" solution, but not an "instead of", since it requires per-architecture work from me.
15:16:26 <fizzie> Deewiant: Ooh, ooh, move to C with #define throw(errcode) *(void *)(errcode) exceptions that are "caught" by a SIGSEGV handler that pickles the uc_mcontext member of the ucontext_t to unwind back into a handler.
15:16:41 -!- Arc_Koen has joined.
15:17:09 <fizzie> Deewiant: (Both slow and horrible at the same time!)
15:17:43 <Deewiant> fizzie: Sorry, undefined behaviour is a no-go.
15:17:51 <Deewiant> (Points for creativity though. :-))
15:19:05 <kmc> yeah i knew somebody who proposed implementing futures in C that way
15:19:26 <fizzie> Let me guess, he's DEAD NOW?
15:19:30 <kmc> probabl
15:26:25 -!- sebbu has joined.
16:21:34 -!- copumpkin has quit (Ping timeout: 265 seconds).
16:22:05 -!- copumpkin has joined.
16:40:36 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
16:46:48 <elliott> Deewiant: Why not just use setjmp or whatever
16:47:05 <elliott> It's syntactically ugly unless you use some macro hackery but there's nothing wrong with it.
16:47:56 <Deewiant> It's ugly and potentially a pain for users
16:48:14 <elliott> If it matters for users, then you don't export a "C API".
16:48:50 <Deewiant> I export a C API as an alternative; C++ users can use the exceptions directly.
16:50:06 <elliott> I really don't think setjmp/longjmp are that ugly, since you can recreate a try/catch structure directly with just some macro hackery anyway. It's not that far off
16:52:32 <Deewiant> And it does matter for users, since the users will be the setjmp'ing ones.
16:53:58 <elliott> Sure, so the C API will be awkward whether you use longjmp or exceptions.
16:56:29 <Deewiant> If I use longjmp it'll be awkward due to having to pass a jmp_buf everywhere. If I use exceptions the C API will be return codes, and you can ignore them if you're willing to ignore malloc failures, like people tend to be. :-P
16:56:52 -!- Arc_Koen has joined.
16:57:19 <kmc> not like malloc ever actually fails on linux
16:57:35 <Deewiant> It can if you've configured it to do so.
16:57:39 <kmc> sure
16:57:41 <kmc> which i have actually
16:57:46 <Deewiant> And on non-Linux systems, of course.
16:57:53 <kmc> also it can fail if you run out of virtual address space before you run out of actual storage
16:57:59 <kmc> which is pretty plausible on 32-bit
16:58:02 <Deewiant> Right.
16:59:00 <Arc_Koen> you mean, actual storage space is larger than 2^32?
17:00:19 <kmc> well, that can happen, sure
17:00:22 <Arc_Koen> there's some OISC esolang on the wiki like that, that claims to be turing-complete but that can only access as many instructions as the fixed-length addresses allow it
17:01:06 <Arc_Koen> well the article starts by stating words can be for instance 5-bit long, and then it gets way too complicated for more and somehow seems to assume words are infinite or something
17:01:38 <kmc> but also physical storage is typically allocated when memory pages are actually used
17:02:41 <kmc> so you could allocate 2^32 bytes of memory, not actually touch it, and end up with a small physical memory footprint
17:02:51 <kmc> but still run out of address space
17:04:03 <elliott> 16:56:29 <Deewiant> If I use longjmp it'll be awkward due to having to pass a jmp_buf everywhere. If I use exceptions the C API will be return codes, and you can ignore them if you're willing to ignore malloc failures, like people tend to be. :-P
17:04:22 <elliott> You can abstract the jmp_buf, but don't you have some sort of "interpreter state" object you can stuff it into instead?
17:04:38 <elliott> I'd probably just abort() or fail silently on malloc failures, though. mushspace isn't mission critical.
17:04:55 <elliott> Deewiant: Wait, why do you need a jmp_buf yourself? Just call a function pointer on an error.
17:05:05 <Deewiant> I'm trying to be anal about handling malloc failures correctly.
17:05:10 <elliott> If it wants to unwind the stack it can arrange that itself in a language-specific manner (setjmp/longjmp or exceptions).
17:05:55 <Deewiant> There are other kinds of errors as well (also the rare kind), it'd be impractical for the user to manage them all.
17:07:06 <elliott> Deewiant: It can just pass an error code/string/whatever to the funptr it calls?
17:07:21 <elliott> It'd be minimal-effort to pass it a function that throws a C++ exception or whatever.
17:07:29 <elliott> And if you don't care, you can just pass it something that abort()s.
17:09:14 <Deewiant> I think everything that can fail has access to a mushspace*, so that could work.
17:10:36 <elliott> I guess the function call overhead could theoretically make actually *handling* an error slowly, but I assume you don't care about performance in the rare error cases, so this seems like the cleanest solution to me.
17:11:13 <elliott> (Of course you might want to use other C++11 features too. But C++ libraries are such a pain, esp. to bind to other languages. Admittedly having a C API handles most of that work.)
17:13:28 <Deewiant> Yes, error handling speed is irrelevant. The error cases are essentially "malloc (or equivalent) failure" / "cannot fit input into address space" / (various kinds of) "infinite loop detected", which shouldn't be common.
17:13:58 <kmc> the probability of generating a valid UTF-8 sequence by picking random bytes uniformly is about 53.6%
17:15:34 <elliott> Oh, I guess you also need to store a (void *) somewhere so that the error handler can get access to a jmp_buf that a hypothetical user stuffed in. But that's just standard "closure in C" stuff.
17:15:42 <elliott> Well, they could just use a global I guess.
17:15:53 <Deewiant> Sometimes I need to do some operations before rethrowing, though.
17:15:56 <kmc> and the probability if you pick only high-bit bytes is about 16.4%
17:16:11 -!- copumpkin has quit (Ping timeout: 265 seconds).
17:16:22 <elliott> Deewiant: That sounds a little fiddly but easy enough.
17:16:43 -!- copumpkin has joined.
17:16:56 <elliott> I guess you could simplify it by storing a FILO of error handlers that you push that stuff to.
17:16:58 <Deewiant> elliott: It means I'd have to propagate the exception via other methods until I'm sure I can call the user's handler.
17:17:28 <elliott> No, you could just override the handler to be one that cleans stuff up and then calls the user's exception handler.
17:18:24 <Deewiant> That's likely to be more expensive than try-catch-throw, I think.
17:19:16 <elliott> What, the expense of reassigning a pointer?
17:20:38 <elliott> Say you use struct error_handler { void (*handle)(void *userdata, char *error); void *userdata; }; Then if you have finalisation work to do, you write: void my_finalising_stuff(void *userdata, char *myerror) { error_handler *old_handler = userdata; ...finalise stuff...; old_handler->handle(old_handler->userdata, error); }
17:20:39 <Deewiant> That's at least four pointers: save user's handler and data pointers and anything from the stack our handler will need, write our handler and data pointers.
17:21:01 <elliott> Eh.
17:21:10 <elliott> It sounds pretty cheap to me.
17:21:27 <elliott> How often do you even set these up?
17:21:42 <Deewiant> This would be in every write operation.
17:21:46 <Deewiant> I.e. often.
17:22:19 <elliott> Surely you can avoid that: have the error handling function itself call a finalise_write_stuff() function before the user's error handler, and have that just read from something in the (mushspace *).
17:22:34 <elliott> Then you only have to store what you absolutely have to store (the relevant data it needs to access).
17:22:52 <elliott> (You can generalise this by doing the FILO thing and just setting it up ahead of time.)
17:25:23 <Deewiant> The relevant data will change every call, and it's not /only/ in writes that I have to do some kind of finalization.
17:27:14 <elliott> Sure, so if you set up a FILO or whatever of all the possible types of finalisation you need to do ahead of time (and only actually walk it when you handle an error), the only cost of changing the relevant data is copying it; you avoid the overhead of messing with the error handlers because they're done ahead of time.
17:29:21 -!- NihilistDandy has joined.
17:30:01 <Deewiant> That's quite messy internally, and just that small bit of copying might already be too costly. I suppose it's worth a try, though.
17:31:03 -!- augur_ has quit (Remote host closed the connection).
17:31:32 <elliott> Clearly you could save on copying time by having your error handlers look down the stack at your code's data.
17:31:45 -!- NihilistDandy has quit (Client Quit).
17:31:55 <Deewiant> Right, that's what C++ try-catch achieves without invoking undefined behaviour. :-P
17:32:05 -!- NihilistDandy has joined.
17:33:15 <elliott> That jumps, and stuff!!!
17:33:19 <elliott> Overhead.
17:33:29 <Deewiant> And re. your bracketed thing earlier: yes, I might want to use some C++ somewhere anyway. A case I expect to hit sooner or later is that qsort takes only a function pointer without a void* context... std::sort would be much more convenient than having to select between qsort_r/qsort_s depending on the libc.
17:34:05 <elliott> Deewiant: I'm sure you can do much better than qsort anyway...
17:34:06 <elliott> timsort?
17:35:20 <Deewiant> qsort isn't guaranteed to use quicksort, is it?
17:35:55 <elliott> Deewiant: No. But it's also not guaranteed to use the best algorithm you can get your hands on.
17:36:02 <elliott> I don't think any libcs use timsort.
17:36:49 <Deewiant> True, but this is the kind of thing whose optimization I might be willing to leave to the stdlib maintainers. :-P
17:36:58 <elliott> Apparently glibc uses introsort and musl uses smoothsort. And uClibc uses, um, shellsort.
17:37:16 <elliott> Deewiant: It's not even slightly close to a bottleneck?
17:38:43 <Deewiant> elliott: It's something not at all Funge-specific which is likely to be kept at least "fast in the general case" by people who aren't me, so outsourcing it can be worthwhile.
17:40:54 <elliott> Deewiant: I think you trust standard library maintainers too much.
17:41:11 <Deewiant> Maybe.
17:41:18 <elliott> Anyway if you outgrow the qsort interface you have to pay some cost switching over, so I'd personally take the opportunity to implement timsort or whatever so I know it'll be fast.
17:41:22 <elliott> But that's just me.
17:43:06 <Deewiant> I also filed an LLVM misoptimization bug which turned out to be an off-by-one error in some bitset initialization code of mine. std::bitset would've avoided that hair-pulling.
17:43:39 <Deewiant> (This is of course a specific case that could happen anywhere else and in any language.)
17:44:08 <Deewiant> (Well, this particular case only in languages without bounds checking on fixed-length arrays.)
17:44:32 <elliott> Deewiant: The way I see it is that eventually you will end up reimplementing all this stuff just to see the numbers go down in benchmarks anyway.
17:44:43 <elliott> So you might as well do it when you have an excuse like a nicer interface without switching languages.
17:45:35 <Deewiant> Eh, there are cold paths which can benefit from things that C++ or its stdlib make simpler.
17:45:43 <Deewiant> Which won't show up in profiles.
17:46:07 <elliott> You do pay the cost of using C++ features, though.
17:46:45 <elliott> Slower compile times, the effort of having to write C wrappers around stuff, larger binary (which could have performance implications), people will think you're uncool.
17:47:05 <elliott> I'm sure D would make a lot of things more convenient too :)
17:47:21 <Deewiant> The binary with C++ exceptions turned out to be 2K larger, IIRC.
17:47:47 -!- FreeFull has joined.
17:47:58 <Deewiant> And not really compared to C++11, I don't think. For mushspace, that is.
17:49:27 <elliott> 2K isn't much, sure; let me know what it's like when you use all the other conveniences.
17:49:41 -!- zzo38 has joined.
17:49:56 <Deewiant> Fair enough.
17:50:49 <FreeFull> I think I'm getting to know haskell
17:51:41 <kmc> oh boy
17:55:12 <FreeFull> Well, the basics
17:55:33 <Lumpio-> What's a mushspace
18:01:56 <Deewiant> It's an implementation of a Funge-Space.
18:05:57 -!- Nisstyre has quit (Ping timeout: 265 seconds).
18:06:39 <FreeFull> I wonder how many befunge interpreters have been written in haskell
18:06:54 <kmc> countably many
18:07:00 <Deewiant> For -98, at least two.
18:07:22 <Gregor> OVER NINE FIIIIIFTHS
18:07:32 <Deewiant> ... yes.
18:09:21 <elliott> FreeFull: I wrote an almost-complete, Mycology-passing-except-for-some-unimplemented-stuff, quite-a-few-fingerprints-implementing, not-the-slowest-thing-in-the-world one.
18:09:34 <elliott> It was OK. I plan to write a version 2 of it someday once I figure out a nice fungespace representation.
18:10:00 <elliott> I think I might have re-lost the code again, after re-finding it.
18:10:35 <FreeFull> elliott: Bytestrings maybe?
18:12:11 <elliott> Um. I don't think so.
18:12:15 <Deewiant> Maybe I should switch to C++ and not implement a C API just to make sure that Shiro 2 doesn't use mushspace against me.
18:12:19 <elliott> It... needs to be two-dimensional, for one.
18:12:34 <elliott> Deewiant: Do you seriously think I'd settle for a mutable fungespace?
18:12:49 <elliott> Well... I might. But it's possible to eimplement efficient imperative code in Haskell, so I'd do that out of pride if I did make such a compromise.
18:12:55 <elliott> *implement
18:13:37 <Deewiant> Er, you'd do what exactly out of pride?
18:13:57 <kmc> it's nice to use persistent data structures for your interpreter
18:14:13 <kmc> then you can do checkpoints, nondeterministic eval, etc.
18:14:25 <elliott> kmc: yeah
18:14:30 <elliott> kmc: The problem is just efficiency, that's all.
18:14:45 <elliott> The competition in the Funge-98 space is pretty fierce.
18:15:00 <Deewiant> It's not very active though.
18:15:16 <Deewiant> It's just me plodding along and cfunge seems to have stopped.
18:15:47 <elliott> cfunge isn't the one to beat anyways, CCBI is.
18:16:05 <kmc> you should write a tracing JIT
18:16:06 <Deewiant> cfunge beats CCBI on some things.
18:16:19 <elliott> Anyway I probably can't beat whatever you're calling that new interpreter on raw benchmark speed.
18:16:37 <elliott> I'll be happy if I can be at least in the same league, have pretty code, cool debugging features, and implement all the stupid fingerprints you don't.
18:16:53 -!- oerjan has joined.
18:17:19 <Deewiant> If you can be in the same league with a very persistent data structure, that'll be cool.
18:17:20 -!- augur has joined.
18:17:54 <elliott> It would!
18:18:01 <elliott> Though I am prepared to compromise my ethics to some degree.
18:18:04 <Deewiant> I doubt you can though. I could make the current mushspace persistent-ish.
18:18:51 <elliott> I might cheat by having a persistent interface but with an impure underlying implementation, such that it's slow if you actually use the persistence much.
18:18:58 <Deewiant> Okay, not very efficiently persistent at all but some kind of COW copies would be possible.
18:19:00 <elliott> Though those tricks never actually seem to perform well in practice.
18:20:17 -!- Nisstyre has joined.
18:20:45 <elliott> Deewiant: (Calling COW persistent upsets me.)
18:20:47 <Deewiant> kmc: Re. JIT, fizzie has/had a work-in-progress x86(?) JIT, another one of those not-active-but-fierce competitors. A JIT is currently the last thing on my todo list.
18:21:24 <Deewiant> elliott: Isn't that the typical implementation technique? :-P
18:21:25 <elliott> A JIT is sort of on my TODO list too.
18:21:32 <elliott> It'd help me cheat around the fact that Haskell isn't as fast as C.
18:21:50 -!- ais523 has joined.
18:21:56 <elliott> (Implementations-not-languages complaints will be answered by @quote monochrom Einstein.)
18:22:51 <Deewiant> A custom JIT might make you win in some cases, I was just planning on having a fast interpreter and then using LLVM to JIT.
18:22:53 <kmc> what# do# you# mean#, Haskell# is# as# fast# as# c#
18:23:14 <elliott> Deewiant: Right, I was going to do something significantly fancier.
18:23:17 <kmc> ooh you should try using pypy
18:23:30 <elliott> Deewiant: Something like running another thread that analyses the paths the IP goes through and writes code that skips the actual IP movement for those stretches.
18:23:40 <oerjan> @quote monochrom Einstein
18:23:41 <lambdabot> monochrom says: einstein's theory implies that haskell cannot be faster than c
18:23:46 <elliott> Of course if you turn on TRDS or whatever that'd have to go.
18:23:54 <Deewiant> The thing with LLVM as a JIT is that it's more like running a slow AOT compiler, just writing into memory instead of a file.
18:24:10 <elliott> Yeah, you really want something more dynamic for Funge, I think.
18:24:12 <Gregor> LLVM is probably a fine hot JIT.
18:24:19 <elliott> Gregor: For self-modifying programs?
18:24:28 <zzo38> It is shown, Haskell can be as fast as C (or sometimes faster), depending on the program. Not always.
18:24:30 <Gregor> Depends on how much they self modify *shrugs*
18:24:31 <Deewiant> elliott: I figured I'd paper over that with the fast interpreter part. ;-P
18:24:38 <zzo38> Can you make self modifying in LLVM?
18:24:43 <elliott> I do worry about that overhead/startup time, though.
18:24:46 <zzo38> I didn't see any command for that.
18:24:47 <elliott> *about the
18:24:52 <Deewiant> zzo38: Nope.
18:24:58 <Gregor> I wouldn't consider using LLVM as the fast JIT though.
18:25:10 <elliott> I don't want to be superfast on idealised benchmark #174 at the expense of Mycology taking 3 seconds to run.
18:25:16 <Deewiant> My point was to not have a fast JIT at all.
18:25:28 <Deewiant> Just an interpreter and a slow JIT.
18:25:38 <Gregor> Ah
18:25:53 <elliott> Also I'd want this JIT stuff to activate automatically because I don't like tuning implementation flags to benchmarks.
18:25:54 <zzo38> But I have had idea that they could add some kind of self-modifying in LLVM. One idea is to be able to tie the reading and/or writing of a global variable to a specific instruction.
18:26:00 <Gregor> Then LLVM is probably fine so long as you're tuned not to use it stupidly *shrugs*
18:26:01 <elliott> my goals are admittedly impossible
18:26:01 <Deewiant> With the former being hopefully good enough for one-time code and then LLVM handling loopy stuff well.
18:26:29 <Deewiant> elliott: Doing JIT stuff in another thread is an option.
18:27:03 <Deewiant> And then just say "JITting on single core will be slow".
18:27:17 <elliott> Threads have costs, still. Admittedly Haskell threads are basically free so I have an advantage 8)
18:27:30 <elliott> (Except not really since I'd only spawn one.)
18:28:05 <zzo38> Other ways to do self-modifying code might be like INTERCAL's ABSTAIN and REINSTATE; but such thing might also be done by tying a variable to a branching instruction.
18:28:15 <elliott> Deewiant: Do any of your benchmarks test stuff like IO / fingerprints?
18:28:20 <elliott> Maybe I could beat you by super-optimising those.
18:29:18 -!- epicmonkey has quit (Ping timeout: 245 seconds).
18:29:52 <Deewiant> elliott: I/O not much, but a bit on the side with the underload interpreter. It does show up in ministat: I filed a glibc bug concerning an #ifdef excluding Clang from inlining getchar. :-P (Let's see how soon that gets marked as WONTFIX or even INVALID.)
18:30:22 <Deewiant> elliott: Fingerprints: again, the Underload interpreter uses STRN, but not otherwise.
18:30:50 <Deewiant> But, I don't have many benchmarks. I have the Underload interpreter and then the synthetic ones from Fungicide and that's it.
18:31:08 <elliott> Deewiant: Hey, Drepper ain't in charge any more.
18:31:14 <elliott> Deewiant: (Have you tried musl?)
18:32:30 <ais523> o
18:32:30 <lambdabot> ais523: You have 3 new messages. '/msg lambdabot @messages' to read them.
18:32:33 <ais523> @messages
18:32:33 <lambdabot> GreyKnight said 5d 2h 23m 1s ago: There is a local company called AIS Gas. Thought you should know.
18:32:33 <lambdabot> Phantom_Hoover said 5d 2h 22m 31s ago: what does the i in your name stand for
18:32:33 <lambdabot> GreyKnight said 4h 50m 47s ago: Did you ever find the fifth binary digit of pi?? (`quote 366)
18:32:35 <Deewiant> elliott: I noticed he was still CC'd when I submitted it, though. In any case as far as I could tell glibc only #ifdefs stuff for GCC, so I wouldn't be surprised if it were stopped.
18:32:48 <Deewiant> elliott: And no, I haven't tried any other libcs.
18:32:56 <ais523> @tell GreyKnight not using /that/ program, I've since determined it using other means
18:32:56 <lambdabot> Consider it noted.
18:32:59 <ais523> `quote 366
18:33:01 <HackEgo> 366) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
18:33:05 <Phantom_Hoover> ais523, I ASKED YOU IF IT WAS IAN AND YOU SAIT IT WASN'T
18:33:18 <Deewiant> elliott: This was just to get my C++ conversion running at the same speed as the C version before switching it to use exceptions.
18:33:19 <ais523> Phantom_Hoover: I thought I had a no-confirm-or-deny policy
18:33:28 <ais523> also, why does nobody ask what the s stands for?
18:33:29 <Phantom_Hoover> *SAID
18:33:37 <elliott> the s is plural
18:33:47 <elliott> Alex I[redacted]s series, number 523
18:33:53 <Phantom_Hoover> because your first and last names are extremely easy to find
18:33:54 <FreeFull> Looking at monads right now
18:34:07 <elliott> Deewiant: So can your mushspace-based interpreter actually run programs?
18:34:30 <Deewiant> elliott: Sure, so I could run the benchmarks.
18:34:44 <FreeFull> > let x y = 1:y in return 3 =>> x =>> x
18:34:45 <lambdabot> Not in scope: `=>>'
18:34:45 <lambdabot> Perhaps you meant one of these:
18:34:45 <lambdabot> `>>' (imported from...
18:34:53 <elliott> Deewiant: Right, I just didn't know you'd gotten so far yet.
18:34:56 <FreeFull> > let x y = 1:y in return 3 >>= x >>= x
18:34:57 <lambdabot> No instances for (GHC.Num.Num [[b0]], GHC.Num.Num [b0])
18:34:58 <lambdabot> arising from a u...
18:35:13 <FreeFull> Wait
18:35:13 <elliott> Deewiant: I take it it'll be released in 5 years when it's perfect
18:35:14 <Deewiant> elliott: It implements ( by checking that the input is 'STRN' and then sets strn_enabled to true. A-Z check for strn_enabled and then do the STRN stuff.
18:35:29 <FreeFull> > let x y = [1,y] in return 3 >>= x >>= x
18:35:30 <elliott> Wow, that's disgusting.
18:35:31 <lambdabot> [1,1,1,3]
18:35:48 <elliott> You should implement all the fingerprints that way for speed IMO.
18:35:49 <Deewiant> elliott: It's around 600 lines long (plus an old 1000-line stack impl) with a couple dozen globals.
18:36:09 <Deewiant> Needless to say it doesn't pass Mycology. ;-P
18:36:28 <elliott> Heh.
18:36:30 <elliott> How far does it even get?
18:36:51 * elliott remembers all the wonderful Mycology-is-messed-up bugs in Shiro wistfully
18:37:17 <Deewiant> I think it gets up to the y stuff.
18:37:58 <Deewiant> case 'y': { cell n = cc_pop(cc); switch (n) { case 9: cc_push(cc, mushcursor2_get_pos(cursor).x); break; case 10: cc_push(cc, mushcursor2_get_pos(cursor).y); break; } break; }
18:38:09 <Deewiant> Almost complete y implementation.
18:38:39 * elliott wonders what cc stands for.
18:38:48 <elliott> Hmm, I wonder if I could micro-optimise my stack implementation for speed.
18:38:55 <elliott> I think I even just used a strict linked list in shiro.
18:39:00 <elliott> Though that may well be the best it gets.
18:39:06 <Deewiant> elliott: I think I implemented fingerprints essentially that way in CCBI. Each A-Z got codegenned to a switch based on the topmost active fingerprint for that letter, or something.
18:39:13 <Deewiant> Or then it was just in my TODO list.
18:39:35 <Deewiant> cc stands for CellContainer because that's what my stack impl calls its datatype.
18:40:05 <ais523> elliott: it stands for current continuation in all contexts
18:40:06 <elliott> In Shiro I just did the boring thing of having a list-as-stack of Shiro ()s for each A-Z.
18:40:08 <ais523> including motorbikes
18:40:14 <elliott> And ran the top one.
18:40:28 <Deewiant> elliott: Yeah, I did that in CCBI 1, at least. Not sure about 2.
18:41:06 <Deewiant> Btw feel free to bikeshed a better name for something that can be either a stack or a deque.
18:41:09 <elliott> I could probably do that codegen thing, though it'd involve either TH or cpp, neither of which I really want to use.
18:41:52 <elliott> Deewiant: xixo
18:42:07 <elliott> (OK, xiyo.)
18:42:48 <Deewiant> I think I see what you're going for but I also think that's a bit too opaque. :-P
18:44:01 <elliott> I was going for /.I.O/
18:44:09 <Deewiant> Right.
18:44:34 * elliott thinks "deque" is pretty opaque too.
18:44:48 <Deewiant> It's standard, though.
18:46:40 <elliott> This structure isn't :P
18:47:16 <Deewiant> What do you mean? If it's a deque it's a deque.
18:47:40 <elliott> I meant your xiyo.
18:47:49 <elliott> "deque" is opaque but standard, "xiyo" is opaque but non-standard.
18:48:16 <Deewiant> And CellContainer is not opaque, just verbose. :-P
18:48:45 <elliott> Deewiant: How about "staque"
18:48:50 <elliott> (This is a serious suggestion)
18:49:04 <Deewiant> Heh, that could actually work.
18:49:39 <Deewiant> I might go with that when I do my cleanup of it, thanks.
18:50:18 <elliott> Deewiant: If you make a version based on hashing the stack elements with an SHA algorithm you could call it Shaquille O'Neal.
18:50:23 <elliott> get it
18:50:31 <elliott> ok I am really terrible these days
18:50:34 <Deewiant> har har
18:51:51 <elliott> I wonder how fast a Rust Funge could be.
18:52:12 <elliott> Great Rust Funge = grunge
18:54:29 -!- monqy has quit (Quit: hello).
18:57:59 -!- augur has quit (Remote host closed the connection).
18:58:55 -!- Vorpal has joined.
19:08:02 -!- augur has joined.
19:11:12 <kmc> i'm learning about funge-98
19:11:19 <kmc> this stack stack business is strange
19:11:33 <kmc> it reminds me of that old CPU architecture that had a register to determine which register is the instruction pointer
19:12:19 <Gregor> lolwut
19:12:28 <elliott> the real weirdness Deewiant is talking about is an extension fingerprint
19:12:37 <elliott> some of them do really horrific stuff like that
19:13:35 <zzo38> I have made a few changes to the specification of Complex Numeric Print in RogueVM.
19:14:36 <zzo38> It has a lot more options than printf.
19:15:40 <kmc> also concurrent funge-98 specifices lock-step exceution of threads?
19:15:42 <kmc> wtf
19:16:00 <elliott> kmc: It's not concurrent-concurrent.
19:16:06 <elliott> It's there to make things more confusing, not for speed.
19:16:22 <elliott> Also Funge-98 with continuous time barely makes any sense.
19:16:23 <kmc> yeah cause shared memory multiprocessing isn't confusing
19:16:27 <kmc> ;P
19:16:32 <kmc> sure it would not have to be continuous time
19:16:52 <kmc> you would still have discrete steps on each IP, you would just let implementations step the IPs in any order
19:17:01 * elliott wonders how true Funge-98 concurrency and TRDS would interact.
19:17:02 <Deewiant> Vorpal was doing a fingerprint for completely asynchronous IPs
19:17:09 <kmc> maybe with some liveness criterion
19:17:09 <fizzie> ATHR.
19:17:23 <kmc> it is hard to prove anything about concurrent programs without some liveness criterion
19:17:29 <kmc> but, it is hard to prove anything about concurrent programs
19:17:36 <elliott> (http://www.rcfunge98.com/rcsfingers.html#TRDS, http://www.rcfunge98.com/trds.html)
19:17:49 <fizzie> All the real multiprocessor-friendly Funge apps use ATHR instead. It's like POSIX threads to Funge-98. Or would, and would be, if it existed.
19:17:53 <FreeFull> Huh
19:17:55 <FreeFull> Not in scope: data constructor `Writer'
19:18:01 <fizzie> fungot: Would you want to be running on ATHR?
19:18:01 <fungot> fizzie: i love how maxima can generate tex output is literally: case is preserved, special characters may be there, does not work
19:18:14 <fizzie> fungot: You could be thinking about babbling and running a brainfuck program at the SAME TIME.
19:18:14 <fungot> fizzie: university programming one of those dating sims. i can't use
19:18:21 <fizzie> fungot: Except not since you run on a single-core machine.
19:18:22 <fungot> fizzie: it would only take about an hour that he is a monk. ( not that i know much more about macrology as i do
19:19:48 <zzo38> Does the output it makes up have any relation to the input?
19:19:56 <fizzie> Sadly, no.
19:20:16 <elliott> Sometimes it does by accident.
19:21:17 -!- ogrom has joined.
19:21:21 -!- ogrom has quit (Read error: Connection reset by peer).
19:21:30 <fizzie> In one sense invocations of ^bool have a relation to the input, because they probably eat random numbers from the PRNG sequence.
19:21:39 <fizzie> Er, the output.
19:21:44 <oerjan> FreeFull: the library was reorganized so Writer is now writer (and is just a function)
19:22:26 <oerjan> or actually a method, after they generalized it
19:22:40 <FreeFull> oerjan: Ok
19:23:05 <elliott> fizzie: When was the last time fungot got anything new?
19:23:06 <fungot> elliott: evil can be an operator or anything. fnord! shub-niggurath! as a book to that particular type
19:23:18 -!- GreyKnight has joined.
19:23:27 <fizzie> A long, long time ago.
19:23:40 <fizzie> "last change: Sat, 3 Apr 2010 00:18:53 +0000"
19:23:44 <oerjan> as you can see, fungot is clearly in need of a new sacrifice
19:23:44 <fungot> oerjan: then just do what you want and where :) it was repeating so much code using these idioms that their abbreviation is helpful?
19:23:52 <FreeFull> Why didn't Learn You A Haskell get updated
19:24:11 <fizzie> I have a vague feeling I did a bugfix and didn't commit it.
19:24:30 <oerjan> FreeFull: dunno
19:25:59 <fizzie> http://sprunge.us/gWUA yeah that's a bugfix.
19:26:26 <Deewiant> momus?
19:26:36 <fizzie> Deewiant: It's what it runs on, momus.zem.fi.
19:26:51 <Deewiant> Okay.
19:28:17 <fizzie> I wonder what the first fix is all about. The second is the bugfix about <> combining in brainfuck bytecode translation.
19:29:14 <fizzie> It's some parameter to the babble randomizer.
19:29:21 <fizzie> I suppose it could be the number of rounds.
19:29:43 <fizzie> (Each round through ? generates two bits of randomness; c -> f would mean 20 -> 30 bits.
19:29:53 <elliott> fizzie: Have you considered updating the IRC data set? That woudl be exciting.
19:30:27 <Deewiant> You now have 15 instead of 11 on the top of the stack when hitting that v next to the _, if I read that right.
19:30:29 <GreyKnight> Think how many lenses fungot would talk about!
19:30:29 <lambdabot> GreyKnight: You have 1 new message. '/msg lambdabot @messages' to read it.
19:30:29 <fungot> GreyKnight: the fallback plan is to be root to sniff keyboard on *nix
19:30:52 <GreyKnight> fungot: brilliant idea!
19:30:52 <fungot> GreyKnight: gcc fnord infopage doesn't mention how one'd get the number of inversions in the vector, but fnord
19:31:09 <fizzie> Deewiant: Yeah, and if I read the \4* ... ? 0/1/2/3+ \ 1- |loop kinda thing right, it's the round count.
19:31:31 <fizzie> (That wasn't actual Funge-98, that was kind of like a pseudocode notation.)
19:35:14 -!- Bike has joined.
19:40:45 <GreyKnight> Pseudofunge
19:42:39 <elliott> Bike: you should write my funge-98 interpreter for me once you're done with eodermdrome
19:42:52 <ais523> ooh, someone's implementing eodermdrome?
19:43:19 <Bike> /fine/
19:43:21 <Bike> assholes
19:43:30 <Bike> aren't there already funge-98 interpreters, though
19:43:39 <elliott> ais523: yes, Bike. we are holding him to it
19:43:47 <elliott> Bike: yes. in fact I already wrote one. but I want to write version 2 of it
19:43:49 <ais523> Bike: several
19:43:54 <elliott> and by "I want to write", I mean I want you to write
19:44:28 <Bike> so what makes it version two, as opposed to version one
19:44:28 <GreyKnight> I notice a theme running through elliott's projects :-U
19:44:32 <Bike> aside from being ghostcoded
19:44:53 <elliott> it should be faster and have more features and cleaner code. mainly it should make Deewiant feel inferior somehow
19:45:01 <elliott> on my desk by tomorrow please
19:45:17 <Bike> why do you get a desk
19:45:25 <GreyKnight> Your Christmas bonus is dependent on completion
19:46:10 <elliott> Bike: the desk is for collecting things other people do for me
19:46:16 <elliott> where else would I put them
19:46:40 <GreyKnight> I know where you can stick them '_'
19:46:42 <zzo38> What timezone do you want that tomorrow in?
19:47:16 <elliott> zzo38: all of them
19:47:37 <Bike> maybe you could just put them in like, a bin
19:47:51 <Bike> then it would be easier to get, say, liquids other people do for you
19:47:59 <Bike> what if i want to implement befunge as an actual fungus, for example
19:48:05 <Bike> it would eat your desk!
19:48:17 <kmc> we are growing a bunch of fungus in my room
19:48:22 <kmc> oyster mushrooms and king trumpet mushrooms
19:48:27 <Bike> are they befunge interpreters
19:48:33 <zzo38> Is desk good to eat?
19:48:43 <elliott> kmc: you typed that second line before I could make a drugs joke
19:48:44 -!- epicmonkey has joined.
19:48:47 <elliott> you are ruining my "kmc experience"
19:48:52 <kmc> haha
19:48:56 <kmc> no i don't think they're befunge interpreters
19:49:02 <Bike> shame
19:49:11 <Bike> zzo38: depends, how good are you at digesting cellulose?
19:49:17 <Bike> On a scale of one to ten.
19:49:20 <kmc> unless they are running a program whose meaning is "spread a bunch of wispy mycelium throughout a jar of rye grain"
19:49:26 <zzo38> Bike: I don't mean me!
19:49:59 <elliott> I think the worst thing about GHC is how it handles type variables.
19:50:24 <elliott> when you get an error about how it can't match x_t8z with y7 there's no real way you can trace those back to the type variables in your actual source code without a ton of work
19:50:40 <elliott> it would be nice if it used a richer representation that kept track of the *source location* and actual original name of the type variable
19:50:43 <elliott> *variables
19:50:57 <elliott> and also represented bindings in a smarter way so it doesn't have to keep renaming type variables internally all the time
19:51:08 <GreyKnight> I approve of fungus-based computation
19:51:35 <Bike> it's a shame that physarum machines is so expensive, i'd be all over that shite. not that slime molds are actually fungi, but, you know, baby steps.
19:52:02 <kmc> woah
19:52:04 <kmc> i did not know about these
19:52:15 <Bike> about type variables?
19:52:19 <oerjan> i hear slime molds aren't even _officially_ fungi any more
19:52:30 <Bike> well they're not
19:52:32 <GreyKnight> Maybe we can simulate the known behaviours of slime molds and figure out if they're TC
19:52:53 <kmc> so now they have no kingdom?
19:52:54 <kmc> or what?
19:53:18 <GreyKnight> A kingdom, a kingdom! My horse for a kingdom!
19:53:24 <Bike> «In more strict terms, slime molds comprise the mycetozoan group of the amoebozoa» well ok
19:53:47 <elliott> oerjan: they're fruit
19:54:06 <kmc> ok
19:54:06 <GreyKnight> They're delicious is what they are
19:54:12 <Bike> which reminds me, do you all have a favorite phylum
19:54:20 <Bike> mine is placozoa, because there's only one thing in it
19:56:28 * GreyKnight hears the sound of frantic googling
19:56:43 <Bike> it's latin for "some flat shit"
19:56:51 <Bike> they're even simpler than sponges, like how do you even manage that?
19:57:12 <GreyKnight> Are they simpler than befunges?
19:57:22 <oerjan> elliott: O KAY
19:57:50 <elliott> 19:57:23 <elliott> > sequence [1,2,3]
19:57:50 <elliott> 19:57:25 <lambdabot> No instance for (GHC.Num.Num (m0 a0))
19:57:50 <elliott> 19:57:25 <lambdabot> arising from a use of `e_1123'
19:57:50 <elliott> 19:57:26 <lambdabot> Possible fix: add an instance declaration for (GHC.Num.Num (m0 a0))No instance for (GHC.Show.Show (m0 [a0]))
19:57:53 <elliott> 19:57:28 <lambdabot> arising from a use of `M4696126599521770064.show_M4696126599521770064'
19:57:56 <elliott> 19:57:30 <lambdabot> Possible fix:
19:57:58 <elliott> 19:57:33 <lambdabot> add an instance declaration for (GHC.Show.Show (m0 [a0]))
19:58:01 <elliott> good lambdabot errors
19:58:04 <elliott> I wonder what's up with that M thing.
19:58:05 <elliott> oerjan: (nethack reference)
19:58:06 <Bike> those are some hella names right there
19:58:22 <GreyKnight> o_@
19:59:31 -!- sebbu has quit (Ping timeout: 265 seconds).
20:02:01 <oerjan> http://en.wikipedia.org/wiki/Slime_mold#In_popular_culture
20:02:27 <Bike> the slime mold is widely agreed to be the best character in nusicaa.
20:10:48 <fizzie> For some reason I managed to read that as "the best character in Indiana Jones movies".
20:10:58 <fizzie> It was confusing, since I don't remember any very prominent slime molds in them.
20:11:50 -!- augur has quit (Remote host closed the connection).
20:13:35 -!- augur has joined.
20:14:16 -!- sebbu has joined.
20:15:27 <GreyKnight> You never watched Indiana Jones and the Amulet of Yendor?!
20:16:41 <elliott> fizzie: How do you read "nusicdaa" as "the Indiana Jones movies"?
20:16:48 <elliott> *nusicaa (*[sic]?)
20:17:06 <oerjan> *nausicaä
20:17:33 <elliott> oerjan: hence the *[sic].
20:17:47 <elliott> TECHNICALLY *Nausicaä take that
20:17:56 <Bike> nsc
20:18:15 <oerjan> THAT'S WHAT I SAID, NAUSICAÄ
20:18:28 <Bike> Well you didn't capitalize it.
20:18:34 <Bike> Though I guess you just made up for that.
20:20:15 <elliott> I could overpedant by poniting out that "in Nausicaä" still isn't quite pedantic-accurate.
20:20:19 * elliott gcc -pedantic
20:20:44 <Bike> the elliott anime compiler collection
20:21:16 -!- variable has changed nick to constant.
20:24:02 <oerjan> gah it's so hard to google a satisfactory "that's the joke" picture
20:24:17 <elliott> oerjan's true suffering
20:24:25 <GreyKnight> <google> that's the joke, oerjan
20:24:32 <oerjan> ooh
20:29:02 <fizzie> elliott: Well, you have to admit, they *are* quite similar, stringwise.
20:29:39 <elliott> fizzie: Also contentwise?
20:30:18 -!- Bike_ has joined.
20:32:07 -!- Bike has quit (Disconnected by services).
20:32:10 -!- Bike_ has changed nick to Bike.
20:33:46 -!- rodgort` has joined.
20:34:01 <fizzie> elliott: I... guess? They have moving pictures.
20:34:29 <GreyKnight> And people?
20:34:43 -!- epicmonkey has quit (*.net *.split).
20:34:44 -!- ssue has quit (*.net *.split).
20:34:44 -!- rodgort has quit (*.net *.split).
20:35:17 <GreyKnight> irc.splitnode.net \/
20:35:35 <GreyKnight> Hey my head disappeared \o/ Better
20:39:25 -!- ais523_ has joined.
20:40:06 -!- ais523 has quit (Disconnected by services).
20:40:07 -!- ais523_ has changed nick to ais523.
20:41:27 -!- lifthras1ir has joined.
20:43:21 -!- ineiros_ has joined.
20:45:41 <ais523> <sribe> (You think I'm kidding? Why do you think the packet length in ATM is 48 instead of 32 or 64? Yep, the average of two competing proposals over length...)
20:45:43 <ais523> please let this be true
20:46:04 <GreyKnight> I really hope
20:47:32 -!- oklofok has quit (*.net *.split).
20:47:32 -!- lifthrasiir has quit (*.net *.split).
20:47:32 -!- hagb4rd has quit (*.net *.split).
20:47:33 -!- ineiros has quit (*.net *.split).
20:48:10 -!- oklofok has joined.
20:52:31 <FireFly> In that vein, why don't we do the same with array indices? http://lua-users.org/lists/lua-l/2006-05/msg00281.html
20:55:58 <Deewiant> ais523: That's what Wikipedia says
20:56:14 <Deewiant> The choice of 48 bytes was political rather than technical.[5] When the CCITT (now ITU-T) was standardizing ATM, parties from the United States wanted a 64-byte payload because this was felt to be a good compromise in larger payloads optimized for data transmission and shorter payloads optimized for real-time applications like voice; parties from Europe wanted 32-byte payloads because the small size (and
20:56:15 <Deewiant> therefore short transmission times) simplify voice applications with respect to echo cancellation. Most of the European parties eventually came around to the arguments made by the Americans, but France and a few others held out for a shorter cell length. With 32 bytes, France would have been able to implement an ATM-based voice network with calls from one end of France to the other requiring no echo
20:56:17 <Deewiant> cancellation. 48 bytes (plus 5 header bytes = 53) was chosen as a compromise between the two sides.
20:56:20 <ais523> well, that probably increases the chance of it being true
20:56:30 <Deewiant> It even has a reference
20:56:49 <Deewiant> To conference proceedings, no less
20:57:24 <kmc> i love how every component of the web uses a different method for escaping special characters
20:57:31 -!- GreyKnight has quit (Ping timeout: 265 seconds).
20:57:41 <kmc> apparently in CSS you write a backslash followed by however many hex digits you want
20:58:00 <kmc> if you want to escape a one-byte character, followed by an unescaped letter a-f, you are screwed
20:58:03 <Bike> %5c
20:58:06 <shachaf> No \&?
20:58:08 <kmc> you can insert a space and the parser will eat the space
20:58:20 <kmc> also apparently Internet Explorer lets you embed javascript in style sheets
20:58:28 <shachaf> Yes.
20:58:29 <ais523> Perl has \x{6}f
20:58:42 <Bike> kmc: why would you even want to do that?
20:59:05 <kmc> the web is so awful for security
20:59:05 <shachaf> Haskell has \128166\&
20:59:18 <kmc> this idea that parsers should try their hardest to ignore errors
20:59:26 <shachaf> Everything is awful for security. :-(
20:59:31 <kmc> and make some random guess at the meaning of a malformed document
20:59:33 <kmc> sure
20:59:41 <ais523> kmc: well XHTML tried to change that
20:59:44 <ais523> and see where it ended up…
20:59:46 <Bike> well, you may recall that that's sort of necessary since nobody writes conforming html >_>
20:59:49 <kmc> but there are some design principles that can help security, and the web takes basically the opposite designs in most cases
20:59:59 <kmc> Bike: and the reason nobody writes conforming HTML is that browsers accept this nonsense!
21:00:04 <Bike> yeah
21:00:08 <kmc> it's a vicious cycle that we are pretty much stuck with
21:00:08 <ais523> Bike: Google left the </html> off their homepage to save bandwidth
21:00:08 <Bike> it's a vicious cycle of bullshit
21:00:10 <ais523> famously
21:00:16 <Bike> you're shitting me.
21:00:26 <ais523> apparently they're so large it actually makes a measurable difference
21:00:33 <Bike> goddamn
21:00:37 * elliott thinks you can argue Postel's law both ways from a security POV, but won't bother.
21:00:49 <kmc> what's the argument in favor?
21:00:55 <ais523> Bike: you can check, it's not like the source of Google's homepage is secret
21:01:01 <Bike> kmc: so, what does this book say about user agents? because they're the most hilarious web bullshit i'm aware of
21:01:03 <elliott> kmc: I just said I won't bother!
21:01:07 <kmc> haven't got there yet
21:01:08 * elliott wonders why google has a <head> still.
21:01:09 <kmc> elliott: :( :( :(
21:01:19 <elliott> *G?
21:01:23 <Bike> «Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/11.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19»
21:01:31 <Bike> now the question is, what browser am i actually using
21:02:04 <Deewiant> Not Internet Explorer, that's for sure
21:02:07 <Bike> and google.com has an </html> here. maybe it's because i'm getting it through spdy and that's more savings than http
21:02:50 <Bike> wow, apparently the newest IE's user agent is «Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0»
21:02:52 <elliott> Yes, they even have head and body tags and so on.
21:02:54 <elliott> I don't know why.
21:03:11 <Deewiant> My Chromium doesn't have that Chromium/foo bit, I guess that's Ubuntu messing about.
21:03:36 <ais523> Bike: "UNTRUSTED/1.0"?
21:03:38 <Deewiant> And I think those .NET things only show up if you have them installed.
21:03:45 <Deewiant> (At least, one would hope so.)
21:03:47 <Bike> ais523: no idea, i copied it from the internet
21:03:57 <ais523> I'm also amused it doesn't claim to be WebKit
21:04:06 <Bike> still claims to be mozilla though.
21:04:24 <ais523> Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/20100101 Firefox/17.0
21:04:38 <ais523> everything claims to be mozilla, that's the web standard way of saying you support frames
21:04:46 <Bike> yeah, i know.
21:04:57 <Bike> though does anyone use frames any more anyway
21:04:58 <shachaf> Hmm, I should disable Mozilla/ in my user agent.
21:04:58 <elliott> if only browsers didn't support frames any more
21:05:11 <ais523> Bike: Java's official documentation still does
21:05:22 <Bike> fantastic.
21:05:29 <Deewiant> Re. UNTRUSTED/1.0, http://tech.groups.yahoo.com/group/wmlprogramming/message/34420 (requires cookies)
21:05:52 <ais523> Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Ubuntu/12.10 Chromium/22.0.1229.94 Chrome/22.0.1229.94 Safari/537.4
21:06:28 <ais523> why would IE be displaying something J2ME-related?
21:06:43 -!- oerjan has quit (Quit: leaving).
21:07:03 <elliott> Deewiant: "requires cookies", really.
21:07:25 <Deewiant> ais523: If the J2ME thing is being run inside IE? Or if it just put a IE string in front to look more legitimate
21:07:55 <ais523> J2ME is used to write applications for very early smartphones
21:07:55 <Deewiant> elliott: I debated it for a number of seconds and then figured this channel is one of the few places somebody might complain about it so might as well
21:08:02 <ais523> pre-iPhone
21:08:07 <ais523> I don't think it's used for anything else
21:08:18 <Deewiant> Ah, it doesn't support applets, darn
21:08:21 <ais523> elliott: the fun fact is that I already had 10 cookies from Yahoo!
21:08:28 <ais523> because of my webmail account with them
21:08:35 <ais523> yes, the fun fact, there is only one
21:08:48 <elliott> Deewiant: I'm more curious as to how you knew :P
21:09:05 <ais523> elliott: he probably has cookies off by default
21:09:08 <ais523> or set to prompt, like me and Vorpal
21:09:20 <elliott> That seems overly unreasonable for Deewiant.
21:09:46 <ais523> elliott: I like using browser settings which reduce the scope for websites to annoy me
21:09:47 <Deewiant> Off by default and a Firefox extension with which I can quickly enable them per-site, and temporarily/session cookies only/all.
21:10:03 <elliott> hi
21:10:14 <Deewiant> Cookie Monster, it seems to be called.
21:10:40 * elliott has been vaguely considering blocking JS by default for RAM-related reasons recently, though I should probably just enable some swap.
21:11:02 <Deewiant> (I also run Noscript, Adblock, and Ghostery. I'm like that.)
21:11:24 <Deewiant> (My Firefox startup time is like 10x what it is by default.)
21:11:42 <elliott> You weird Firefox users and your extensions that are worth a damn.
21:11:47 <elliott> We Chrome people don't have problems like that.
21:12:06 <Fiora> I use ghostery and adblock on chrome~
21:12:06 <Deewiant> I've considered forging referers by default but that tends to break things silently so it's a bit too much of a pain.
21:12:15 <Gregor> elliott: #1 reason I got 16GB of RAM in my new system was so that I can run Firefox nicely.
21:12:28 <elliott> Gregor: I bet it wasn't enough.
21:12:33 <Gregor> Actually, it was!
21:12:35 <Fiora> isn't firefox still 32-bit-only though? :<
21:12:39 <ais523> Deewiant: I have a referer forger on by default on a few sites
21:12:41 <Gregor> Fiora: No?
21:12:48 <ais523> I originally installed it for esolangs.org after that hilarious incident with the spam filter
21:12:51 <ais523> elliott: do you remember that?
21:12:54 <elliott> Fiora: IME Chrome's Adblock Plus is really shitty. I still use it, but it's really shitty.
21:12:58 <elliott> ais523: yes
21:12:59 <Deewiant> ais523: Yes, I enable it on some sites as well, but only manually. I default to normal referers.
21:13:11 <Fiora> oh... right, the no support for 64-bit firefox thing is a windows thing
21:13:18 <elliott> I think referers are the worst thing about HTTP
21:13:18 <Gregor> Oh, hahaha, Windows.
21:13:21 <fizzie> I believe there are quite a few frameless doclets for javadoc, though. (But the Standard Doclet indeed is still very framy.)
21:13:21 <Deewiant> HTTPS Everywhere also breaks some sites, but it gets updated and all and generally works well.
21:13:22 <Gregor> Windows amuses me.
21:13:32 <Fiora> I remember something about how their JS recompiler was still 32-bit only so 64-bit was slower
21:13:35 <elliott> I am paranoid about opening new tabs before pasting in URLs just in case it leaks the referer or whatever.
21:13:36 <Fiora> but that might have changed
21:13:49 <Gregor> Deewiant: HTTPS Everywhere is really nice until the day you try to log in with some stupid DNS-redirecting wifi hotspot ;)
21:13:59 <ais523> elliott: if you type the address by hand, it doesn't refer, IIRC
21:14:09 <elliott> Deewiant: My only experience with HTTPS Everywhere was someone asking someone else to re-enable HTTPS on their site after moving servers because apparently HTTPS Everywhere never, ever forgets that a site supports HTTPS, even if it stops working.
21:14:26 <ais523> :)
21:14:30 <Deewiant> Gregor: You can always disable it temporarily. Haven't run into anything that stupid, fortunately. :-P
21:14:31 <fizzie> My desktop is constantly running out of its four gigabytes. :/ :\ :/ :\ -- and it only has two DIMM slots, and 4G DDR2 DIMMs are annoyingly expensive.
21:14:31 <elliott> Also HTTPS is, like, slow. :(
21:14:46 <elliott> fizzie: I have 4 gigs too!
21:14:49 <elliott> fizzie: Do you have any swap?
21:14:54 <fizzie> Yes.
21:14:56 <elliott> I'm not sure whether enabling it will make things go smoother or just make the churns even worse.
21:15:04 <fizzie> I don't know. They are quite bad.
21:15:07 <elliott> Having hundreds of Chrome tabs is... not very sustainable.
21:15:23 * elliott has to open a new window every once in a while because otherwise the tabs get too small to see the favicons.
21:15:25 <zzo38> Use SSH for secure connections rather than HTTPS
21:15:41 <Fiora> I want tree-style tabs for chrome :<
21:15:43 <Gregor> <Deewiant> Gregor: You can always disable it temporarily. Haven't run into anything that stupid, fortunately. :-P // it's not enormously difficult to get around, but with hotspots, I've found it easier to just momentarily open Chrome 8-D
21:15:53 <elliott> It would be nice if the customisability of Firefox extensions wasn't tied to such a shitty browser.
21:16:19 <Deewiant> Meh, I think the browser's fine.
21:16:31 <elliott> You probably have a jillionbyte of RAM.
21:16:32 <fizzie> elliott: From what I recall last time I did it, it drops from 90% used into something like 25% used if I close Chromium, then goes back up to maybe ~60% used if I reopen it and let it open the saved tabs.
21:16:49 <elliott> Also whenever its layouting/styling/text formatting/whatever differs from Chrome I always find Firefox's handling distinctly worse.
21:16:52 <Deewiant> Chrome doesn't even have ctrl-shift-enter and company on the URL bar, only ctrl-enter (IIRC).
21:17:09 <Deewiant> I have 8 gigabytes.
21:17:12 <Gregor> Chrome doesn't have /-searching.
21:17:15 <Gregor> Therefore it's fucking worthless.
21:17:18 <elliott> fizzie: I often have to mash <xmonad>-2 killall -9 chromium <enter> <enter> <enter> because my computer is frozen as heck.
21:17:23 <elliott> fizzie: Then I roepen it and let it restore the tabs.
21:17:36 <elliott> (It's nice how killall -9 > killall for Chromium precisely because otherwise you lose the "restore tabs" functionality...)
21:17:40 <elliott> (By nice I mean it sucks)
21:17:49 <Deewiant> This is the non-shitty browser you're talking about?
21:17:51 <elliott> Sometimes I deliberately kill -9 it before turning the computer off so I can restore the tabs.
21:18:00 <fizzie> Chromium "Private" memory use 2'086'860k, well, that's not so bad.
21:18:05 <elliott> Deewiant: um???? You've forgotten axiom 1 of everything: everything sucks
21:18:37 <Deewiant> fizzie: That's more than my Firefox's virtual usage
21:18:41 <Gregor> The problem is that people look at the memory use of their browser and think that's a good metric.
21:18:44 <Deewiant> elliott: That's just your attitude
21:18:49 <Gregor> Even though your browser WILL run better if it snarfs more memory.
21:18:58 <Gregor> It's just a trick of actually being able to give it back when somebody else needs it.
21:19:02 <elliott> Deewiant: Anyway Firefox also rewards kill -9 in the same way.
21:19:16 <elliott> Even moreso, since it supports partial tab restores and even recursive tab restores ("the ineiros method").
21:19:25 <Gregor> elliott: Kinda. You can always go to about:home to get to the last tabs, no matter how you close it.
21:19:33 <fizzie> Man, the ineiros method is the best method.
21:19:37 <elliott> Gregor: don't you mean "fnarfs more"
21:19:41 <Gregor> elliott: Nope.
21:19:48 <elliott> fizzie: does he still use it
21:19:49 <Gregor> elliott: This is snarfing, it's different.
21:19:58 <fizzie> elliott: I haven't asked lately. I will ask now.
21:20:06 <fizzie> I probably won't receive a timely answer.
21:24:40 -!- Gregor has set topic: ⚣ | http://codu.org/logs/_esoteric/.
21:25:39 <Gregor> I suddenly wonder if ⚣.com is free, but feel I shouldn't check it from work.
21:26:55 <Bike> looks free from here
21:27:16 <Gregor> Welp. Time to build a gay porn empire, I suppose.
21:30:26 <fizzie> Gregor: I don't know if that character is in any of the scripts of the languages Verizon likes: http://www.verisigninc.com/assets/idn-valid-language-tags.pdf
21:30:32 <fizzie> For some reason I'd guess "no".
21:30:49 <Gregor> lol Verizon
21:30:55 <fizzie> Verisign.
21:30:56 <fizzie> Gah.
21:31:01 <fizzie> Same thing. :p
21:31:04 <Gregor> IIRC, .org has no such restrictions?
21:31:10 <Gregor> Or maybe I'm imagining things.
21:31:17 <fizzie> .org is not Verisign, though.
21:31:18 <elliott> they should merge
21:31:26 <Gregor> fizzie: Yes, hence why I'm mentioning them.
21:31:33 <ais523> fizzie: huh, so I was right
21:31:41 <ais523> someone at a seminar asked if anyone knew what Verisign did
21:31:43 <fizzie> "The org domain registry allows the registration of selected internationalized domain names (IDNs) as second-level domains.[11] For German, Danish, Hungarian, Icelandic, Korean, Latvian, Lithuanian, Polish, and Swedish IDNs this has been possible since 2005. Spanish IDN registrations have been possible since 2007."
21:31:45 <ais523> I said they owned .com and .net
21:31:49 <ais523> the speaker said .com and .org
21:31:49 <Gregor> fizzie: If I can't get ⚣.com, maybe I can get ⚣.org. … the nonprofit of gayness.
21:32:00 <ais523> Gregor: you want it at .xxx, obviously
21:32:11 <Gregor> ⚣.xxx MUST be registered (if possible)?
21:32:19 <Gregor> There's no way everybody missed that.
21:32:28 <Bike> is .xxx even a valid tld?
21:32:51 <elliott> Bike: unfortunately.
21:33:14 <fizzie> "No, .xxx does not копирайт, 101домен support Internationalized Domain Names" sad.
21:33:22 <fizzie> ...
21:33:30 <fizzie> Where did the cyrillic bits come from.
21:33:34 <fizzie> Some kind of a thing.
21:33:48 <elliott> Where's that official anti-.xxx thing?
21:33:51 <elliott> An RFC or something IIRC.
21:33:58 <fizzie> Man, why is everything full of stupid nowadays? I hit two "put stupid stuff programmatically on clipboard when selecting text" websites recently within hours.
21:34:26 <Deewiant> That's why you use anti-stupid browser extensions. Or I do, anyway.
21:34:44 <fizzie> I didn't use to have to.
21:34:46 <ais523> Bike: it was added recently, amid a /lot/ of controversy
21:34:56 <fizzie> Anyway, I am under the impression that pretty much all the TLDs that do accept IDNs only whitelist scripts of specific languages, asince nobody likes IDN spoofery stuff.
21:35:02 <Bike> I remember hearing about people yelling about it in the american congress, but still, what
21:35:04 <elliott> Deewiant: Is there one that specifically blocks that copy nonsense?
21:35:06 <elliott> That would be nice.
21:35:13 <Deewiant> elliott: Not that I know of.
21:35:20 <Deewiant> Noscript handles it fine, of course.
21:35:35 <elliott> Here we go: http://tools.ietf.org/html/rfc3675
21:35:45 <elliott> "sex Considered Dangerous" -- IETF
21:35:52 <Bike> man, i can't find mentifex's domain names listing :(
21:36:08 -!- NihilistDandy has quit (Quit: Computer has gone to sleep.).
21:36:18 <elliott> ooh mentifex
21:36:36 <Bike> mentifex is actually my pastor.
21:37:32 <fizzie> Possibly just about:config dom.event.clipboardevents.enabled -> false would stop that on Firefox.
21:37:42 <fizzie> "dom.event.clipboardevents.enabled lets websites get notifications if the user copies, pastes, or cuts something from a web page, and it lets them know which part of the page had been selected. The emitting of the oncopy, oncut and onpaste events are controlled by this preference."
21:37:57 <elliott> why is that even an event
21:38:23 <fizzie> I suppose all those fancy smart document editor things might use it for something.
21:38:34 <Bike> for those sites that dump their URLs to your clipboard when you paste from them, duh
21:38:55 <fizzie> I wonder if it fires every time I select something, since selection equals copying.
21:39:41 <elliott> Clearly the solution is to use dillo2.
21:39:41 <fizzie> Our department-internal wiki opens the "edit" page if I doubleclick on anything, which is annoying because I use it for selecting words.
21:39:43 <elliott> I think it even does CSS now?
21:39:48 <elliott> fizzie: ugh I hate that too
21:40:00 <fizzie> It's a MoinMoin or something.
21:40:02 <Gregor> fizzie: Ugh, I've experienced that kind of Wiki.
21:40:44 <fizzie> And Atlassian Confluence flips the sidebar open and closed every time I press the Windows key, i.e. every time I switch from the workspace.
21:40:56 <ais523> btw, #esoteric's opinions on the recently discovered fact that any web page open in IE can determine where your mouse cursor is, regardless of whether the cursor is interacting with IE (or even whether IE's minimized)?
21:41:15 <elliott> ais523: that sounds theoretically bad but practically harmless
21:41:16 <Gregor> ais523: lol IE
21:41:38 <ais523> elliott: the worst exploit I've heard of is reading presses into onscreen keyboards
21:41:44 <ais523> *from
21:41:47 <ais523> err, hmm
21:41:54 <ais523> correct both ways but you need to parse it differently
21:42:06 <fizzie> #esoteric's opinion on that zero-day Samsung SmartTV thing that reportedly lets other people look/listen into your living room through the for-Skype-and-such webcam and mic?
21:42:15 <fizzie> (Maybe without 1984 jokes.)
21:42:30 -!- GreyKnight has joined.
21:42:31 <Gregor> fizzie: lol… shit, products I actually vaguely care about :(
21:42:46 <ais523> fizzie: it's hilarious that TVs have got smart enough that that mistake can even exist
21:42:58 <ais523> also people have been doing that with computer webcams for ages, haven't they?
21:43:02 <coppro> s/smart/loaded with useless features/
21:43:05 <fizzie> Yes, they sure have.
21:43:11 <ais523> the "please place your Mac near hot steam" incident was hilarious too
21:43:29 <fizzie> Back Orifice had camera/microphone commands for spying, IIRC.
21:43:37 <elliott> The solution is to use Linux so that your webcam does not actually work in the first place.
21:43:46 <fizzie> And this was at the very least a decade ago. Probably 15 years.
21:43:53 <Gregor> elliott: Tragically, they recently added support for virtually every webcam there is to Linux.
21:43:55 <Gregor> So it probably works.
21:43:57 <fizzie> Not that ~anyone had a camera, though.
21:43:59 <coppro> ais523: yes, they have, which is why most newer built-in webcams on laptops have lights that are linked in hardware so that all recording turns on the light
21:44:38 <GreyKnight> <kmc> also apparently Internet Explorer lets you embed javascript in style sheets <-- FLAT WHAT
21:44:40 <zzo38> Put ductape on the camera
21:44:42 <fizzie> I vaguely recall that story about school giving out laptops to students, then using the webcams for peepery, and answering questions about that webcam LED that "it's just some random bug, just ignore it".
21:44:50 <elliott> That was not very flat/.
21:45:14 <GreyKnight> FLAT ELLIOTT
21:45:34 <fizzie> http://en.wikipedia.org/wiki/Robbins_v._Lower_Merion_School_District "Students were particularly troubled by the momentary flickering of their webcams' green activation lights, which several students reported would periodically turn on when the camera wasn't in use, signaling that the webcam had been turned on.[8][22][24][47] Student Katerina Perech recalled: "It was just really creepy."[24] ...
21:45:39 <kmc> yeah and it interacts with that escaping too
21:45:40 <fizzie> ... Some school officials reportedly denied that it was anything other than a technical glitch, and offered to have the laptops examined if students were concerned."
21:45:43 <fizzie> Yeah, that story.
21:45:53 * elliott wonders what, exactly, they were thinking.
21:45:59 <kmc> so you can write "color: expression\028 alert \028 1 \029 \029"
21:46:05 <elliott> "The suit alleged that, in what was dubbed the "WebcamGate" scandal" please kill me
21:46:31 <Deewiant> https://en.wikipedia.org/wiki/List_of_scandals_with_%22-gate%22_suffix
21:46:40 <Bike> the US really needs to get its shit together, wrt naming shit
21:46:47 <kmc> fizzie: wow holy shit that's creepy
21:46:49 <fizzie> Deewiant: Ooh, Chisugate is there.
21:46:51 * elliott wonders what the kid was actually disciplined for. Give me my details Wikipedia!!!!
21:46:59 <fizzie> Deewiant: Though as a redlink.
21:47:03 <Deewiant> fizzie: Another "please kill me" type thing.
21:47:07 <Deewiant> At least IMO.
21:47:16 <elliott> oh good, there is a "gategate"
21:47:33 <elliott> oh, I heard about that Finnish piracy thing
21:47:37 <elliott> not that it had become a -gate
21:47:46 <Bike> http://www.youtube.com/watch?v=vB9JgxhXW5w
21:48:02 <elliott> "Flakegate – Photographs of the wedding reception of TV presenter Anthea Turner was used to promote Cadbury's new chocolate bar, Snowflake despite being paid £450,000 by OK! magazine for the exclusive deal of the wedding itself. The publicity stunt was widely criticised by tabloid press and further damaged her career, which has yet to recover."
21:48:05 * GreyKnight kills elliott (ElliottGate)
21:48:07 <elliott> these gates are really bad
21:48:13 <fizzie> I didn't really bother following it. I think they just paid half of what was demanded in the end, or something?
21:48:28 <Bike> widely criticised by the tabloid press
21:48:40 <elliott> "Fajitagate"
21:48:46 <elliott> "Horsegate"
21:48:51 <GreyKnight> *everything* is criticised by the tabloids, including other tabloids
21:49:00 * elliott anticipates "Irrigate"
21:49:01 -!- sivoais has quit (Read error: Operation timed out).
21:49:13 <GreyKnight> "Billygate": what, no gruff?
21:49:28 <elliott> "Pardongate"
21:49:34 <Bike> hm, does the british phone hacking thing have a -gate
21:49:38 <elliott> "PolarBeargate" THAT'S CHEATING
21:49:43 -!- sebbu has quit (Ping timeout: 245 seconds).
21:50:13 <fizzie> Bike: Hackgate?
21:50:16 <kmc> heimdalsgate like a promethean curse
21:50:24 <Bike> fizzie: oh, yeah. :(
21:50:48 <elliott> kmc++
21:51:00 <FireFly> Apparently there's a swedish "gategate", which was named as such.. because it happened near a faregate
21:51:03 <elliott> I got to the "in popular culture" section but I didn't realise until I read a few.
21:51:12 <GreyKnight> This webcam thing is bonkers
21:51:19 <elliott> truly a sad indictment of our -gateing times
21:51:26 <elliott> -gating?
21:51:36 <Bike> suffixgate
21:52:16 <elliott> shm-reduplicationgate, shm-reduplicationgate
21:52:30 <FireFly> xorgate
21:53:00 <FireFly> ...not sure what kind of scandal would mandate such a name, though
21:54:06 <Bike> arguing over whether it should be eXclusive OR or EOR
21:54:06 <GreyKnight> -gate-gate
21:54:22 <GreyKnight> Gardengate
21:54:37 <elliott> gaitgate
21:54:57 <FireFly> EOR sounds like Eeyore
21:55:03 <GreyKnight> fizzie: I assume they deliberately haven't revealed what the kid was "disciplined" for? Child privacy &c
21:55:24 <GreyKnight> fri-gate
21:56:10 <elliott> privacygate
21:57:37 <GreyKnight> I think the most outrageous thing about the webcam lawsuit is the school crying innocence and how they're going to fight these ~~horrible accusations~~
21:59:19 <Bike> my computer's built-in webcam has a physical shutter on it. seems like an obvious anti-1337cyberhacker measure but apparently not?
21:59:40 <Phantom_Hoover> <Bike> hm, does the british phone hacking thing have a -gate
21:59:55 <Phantom_Hoover> I've only ever heard it referred to as 'the phone hacking scandal' or somesuch.
22:00:06 -!- MDude has joined.
22:00:11 <Bike> well since fizzie mentioned it i remembered that i've heard it called "hackgate"
22:00:20 <Bike> which is kind of weird because i've never seen it in the american media, but oh well.
22:00:24 -!- hagb4rd has joined.
22:00:48 <kmc> 'The allegedly secure parser implementation included in [RFC 4627] unintentionally permits rogue JSON responses to freely increment or decrement any program variables that happen to consist solely of the letters a, e, f, l, n, r, s, t, u, plus digits'
22:00:56 <elliott> wow
22:01:58 <elliott> kmc: link?
22:02:07 <GreyKnight> Bike: wow, I don't think I've ever seen a webcam with a physical shutter
22:02:18 <Lumpio-> lol, you're right
22:02:28 <Bike> it's just a piece of plastic.
22:02:32 <GreyKnight> kmc: link me too, I want to see this in action
22:02:32 <Lumpio-> "A JSON text can be safely passed into JavaScript's eval() function if all the characters not enclosed in strings are in the set of characters that form JSON tokens."
22:02:47 <Bike> what.
22:02:50 <Lumpio-> /[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/ is one of the regexes
22:02:55 <GreyKnight> oh wow
22:03:00 <Lumpio-> So I guess this allows you to do stuff like {"foo": e++}
22:03:18 <GreyKnight> FLAT WHAT
22:03:41 <Bike> I would hope that anyone remotely versed in security would know that sanitizing with a regex probably isn't adequate
22:04:06 <kmc> uh that's a quote from a dead tree book
22:04:17 <kmc> yeah also
22:04:18 <kmc> flat what
22:04:22 <elliott> i don't quite understand why you aren't allowed, e.g. z
22:04:23 <kmc> (why are our whats flat today?)
22:04:34 <elliott> kmc: books don't exist
22:04:38 <GreyKnight> someone let all the air out of them
22:04:45 <Bike> elliott: because z isn't in any json token, i guess?
22:04:57 <elliott> well what json tokens have those letters even
22:05:30 <Lumpio-> Which token has z
22:05:41 <Bike> there's true and false
22:05:46 <Lumpio-> The tokens apat from strings are true, false, null and numbers
22:05:50 <Lumpio-> apart*
22:06:04 <elliott> "The school elected to enable TheftTrack to allow school district employees to secretly and remotely activate a tiny camera webcam embedded in the student's laptop, above the laptop's screen.[17][25][26][27] That allowed school officials to secretly take photos through the webcam, of whatever was in front of it and in its line of sight"
22:06:09 <elliott> why does this article explain how a webcam works
22:06:22 <Vorpal> elliott, This is so weird, I randomly have Portal in my steam collection. I never bought it. And the payment history on Steam doesn't list it. Note that I don't object to this. It is just totally weird.
22:06:50 <elliott> maybe someone gifted it to you or something
22:07:11 <Vorpal> I don't think anyone knows my steam user name, it is not like I use the "friend list" feature of steam
22:11:18 -!- boily has quit (Quit: Poulet!).
22:11:59 <ais523> Bike: sanitizing with a regex can work if you have a sufficiently well-defined acceptable input
22:12:48 <ais523> one of my colleagues is working on a system which regexes the I/O of a hardware subsystem to prevent non-accepted inputs
22:13:33 <ais523> in fact, regex comparison is how we even compare the systems to validate them
22:13:41 <ais523> (regexes have the nice property of actually being comparable)
22:13:50 <ais523> (unlike things like functions)
22:14:20 <Vorpal> ais523, I doubt PCRE is comparable, even if you exclude the "invoke external code to match this" feature
22:14:32 <ais523> Vorpal: well, mathematical regular expressions
22:14:35 <ais523> PCRE is an interesting point
22:14:46 <fizzie> Vorpal: It was the Portal Ghost.
22:14:49 <Vorpal> right, math regex are comparable
22:14:52 <ais523> I'm not sure what computational class it is
22:14:55 <ais523> it's sub-TC, but super-PDA
22:15:06 <Bike> you can do CFGs with backreferences, right?
22:15:08 <FireFly> Vorpal: I recall it being free to grab for a couple of days once
22:15:20 <FireFly> you might've grabbed it then
22:15:33 <fizzie> It was free to grab, yes.
22:15:39 <fizzie> I grubbed it then.
22:16:13 <fizzie> That was maybe a year and a bit ago.
22:16:45 <Vorpal> FireFly, recently? I haven't used steam for all that long, maybe a year or a bit more than that
22:16:55 <Vorpal> and this thing must have happened fairly recently
22:16:58 <FireFly> I think it was a bit more than a year ago :P
22:17:20 <Vorpal> I didn't have more than a couple of games until a few months back when I added in all the humble bundles
22:17:26 <Vorpal> so that doesn't make any sense
22:17:49 <Deewiant> ais523: http://www.perlmonks.org/?node_id=809842 claims that they're at most LBA
22:18:37 <ais523> oh yeah, obviously they're LBA
22:18:45 <fizzie> September 2011, I'd say. Though maybe they did something Portal-related more recently too?
22:20:03 <fizzie> Everyone who already had Portal 2 got a 75% discount coupon for Portal 2, at least.
22:20:28 <fizzie> (For a limited time.)
22:20:49 <kmc> http://en.wikipedia.org/wiki/JScript.Encode "The encoding is a simple polyalphabetic substitution using three alphabets."
22:20:52 <kmc> what the fuck
22:21:12 <GreyKnight> fizzie: everyone who had Portal 2 got a discount for Portal 2? This seems useful.
22:21:16 <Bike> lol, obfuscated code?
22:21:59 <ais523> Deewiant: that post is busy trying to invent Thue
22:22:02 <ais523> and not getting there
22:22:09 <ais523> it gets close though
22:23:12 <GreyKnight> kmc: "Weaknesses: it is busted open wide enough to drive a double-decker bus through"
22:25:01 <fizzie> GreyKnight: Just on the off chance you had friends you could inflict Portal 2 on.
22:25:28 <GreyKnight> oh, right
22:25:40 <GreyKnight> I don't have Portal 2 or very many friends
22:26:02 <MDude> I think I heard of something like that camera thing quite a while ago.
22:26:07 <GreyKnight> ...ugh December
22:26:23 <GreyKnight> MDude: the camera thing *was* a while ago, so may be the same thing!
22:26:53 <MDude> Probably, then.
22:31:21 <kmc> i assume (well, hope) that the engineers implementing JScript.Encode knew how worthless it is
22:31:22 -!- sebbu has joined.
22:31:42 <GreyKnight> "*shrug*, if management say so..."
22:31:48 <fizzie> http://store.steampowered.com/hwsurvey/ so few single-core systems nowadays.
22:31:51 <GreyKnight> whatever keeps the suits happy
22:31:51 <kmc> it seems like a feature to appease the same kind of people who install a right click handler that pops up a dialog saying 'COPYRIGHT PROTECTED!!!'
22:32:01 <GreyKnight> kmc: YES
22:32:37 <hagb4rd> interesting documentary bout some philosophical implications of gödels theorems: http://www.youtube.com/watch?v=CgZ_9gQfitc&list=UUpBJxyp3T3GY1UExToSveRQ&index=5
22:32:41 <GreyKnight> "haha u cant copy my pictures"
22:33:14 <zzo38> My brother said he has been able to copy such pictures by dragging them into the location bar.
22:33:38 <Bike> hagb4rd: i think this guy needs to work on his intonation a bit
22:33:40 <MDude> I have very little clue what you're talking about with JSON/Javascript. Did I miss some part of it from before I showed up?
22:33:45 <Bike> elocution, there's the word.
22:33:47 <kmc> i mean i don't think the "suits" have to be idiots either
22:33:51 <kmc> they just know what will make customers happy
22:34:07 <hagb4rd> bike: it's not that bad. gibe it a chance
22:34:28 <hagb4rd> or not
22:34:47 <Bike> plus apparently he's reading a godel paper?
22:34:52 <GreyKnight> zzo38: oh, I didn't think of that one
22:34:53 <Bike> in which case i could just read tha paper
22:34:58 -!- augur has quit (Remote host closed the connection).
22:35:03 <fizzie> Hey, I got that Steam "Big Picture" thing on. They must've released it.
22:35:15 <GreyKnight> Bike: Using video where text would do is gonna be the death of the internet -_-
22:35:24 <hagb4rd> he's not only quting gödel but.. sure you could do this
22:35:34 <GreyKnight> I have seen programming tutorials done in video. FLAT WHAT
22:36:26 <Bike> well, i kind of liked the game-of-life in J video i saw once. but that's because seeing it in the REPL helped somehow
22:36:32 <hagb4rd> it's not based on his work. this guy just put some quotes and pics and dramatical music ;) into what we probably call a documentary
22:38:32 <hagb4rd> this should me informative but also entertaining.. giving you some points to start a further investigation
22:38:43 <hagb4rd> if interersted
22:43:20 <Vorpal> <fizzie> Hey, I got that Steam "Big Picture" thing on. They must've released it. <-- yeah it showed up like last week or so
22:45:48 <hagb4rd> (especially l love this background with the lemmings juming off the clip :)
22:48:43 <fizzie> "Valve's Jeri Ellsworth has told Engadget that public beta testing of Steam hardware could begin next year, saying that the goal of Valve's hardware efforts is "to make Steam games more fun to play in your living room." --" Yes, that sounds like something they want the Big Picture mode too.
22:49:01 <Vorpal> what was that tool to put cd images onto USB drives?
22:49:06 <Vorpal> I forgot the name of it
22:49:11 <zzo38> I see too much using video where text should do.
22:49:17 <fizzie> Vorpal: UNetbootin?
22:49:20 <Vorpal> thanks
22:49:31 <Vorpal> now to find a large enough USB stick...
22:49:34 <fizzie> (I think it's kind of a silly name.)
22:51:06 <elliott> "Unetbootin?" "No, I'm USBootin."
22:51:35 <hagb4rd> zzo38: next time it'll be plain text i promise
22:52:23 <Vorpal> Debian or xubuntu? Which is best if you want the least hassle over time, I don't mind a slightly more annoying installer as long as it doesn't throw crap at me like modern ubuntu, or becomes a pain once I want to upgrade a year or two down the line.
22:52:58 <Vorpal> also it is going on top of an existing md raid & lvm2 setup
22:55:16 <Vorpal> elliott, fizzie ^
22:55:36 <elliott> Debian's installer will be able to set up RAID/LVM2 if you ask it for an advanced install.
22:55:40 <elliott> Xubuntu's, unlikely.
22:55:50 <Vorpal> well that is a plus for debian certainly
22:56:03 * elliott hasn't used Debian or Xubuntu in a while.
22:56:07 <Vorpal> elliott, basically I need to reuse the existing /home, which is already on top of existing raid and lvm2
22:56:21 <Vorpal> I'm not going to repartition the whole thing
22:56:39 <fizzie> Ubuntu "alternative install" thing can/could do raid/lvm2. I haven't had that particular use case, but I would think it wakes up md and lvm2 volumes and all that.
22:56:47 <Vorpal> okay
22:56:48 <elliott> isn't the alternative install just debian's installer
22:56:50 <elliott> does it even still exist
22:57:00 <Vorpal> there is an alternative installer download at least
22:57:02 <elliott> anyway i don't like xfce
22:57:14 <Vorpal> and what about throwing crap at me? Does modern xubuntu suffer from that as well?
22:57:25 <Vorpal> what about other stuff, I haven't used debian for ages
22:57:28 <fizzie> It's at least very similar to installing Debian. Or was. I haven't installed an Ubuntu in the last two years, I'd guess.
22:57:39 <Vorpal> they still have a nonfree repo?
22:57:41 <GreyKnight> zzo38: where can I get bashgopher?
22:59:34 <Vorpal> fizzie, for debian, should I go for testing?
23:00:32 <Vorpal> eh I guess so
23:00:45 <fizzie> I ran testing on my desktop, I think. I don't really know how recommended it is, but it's certainly not very unstable.
23:00:51 <fizzie> Even unstable is not all that unstable.
23:01:00 <Vorpal> heh
23:01:19 <elliott> Vorpal: you might prefer unstable
23:01:23 <Vorpal> fizzie, unstable is the one that behaves like rolling updates (like arch), right?
23:01:24 <elliott> I found testing usually behind what I wanted
23:01:29 <Vorpal> hm
23:01:37 <elliott> there is "experimental" which is the actually breaks-your-system debian
23:01:44 <elliott> so unstable isn't necessarily unstable
23:02:02 <Vorpal> elliott, mostly I want something that takes zero effort to maintain and update once the initial setup is done.
23:02:17 <fizzie> Things do propagate "automatically" into testing. Though sometimes it lags a lot when there are bugs that don't seem to get fixed and dependencies pile up.
23:02:20 <elliott> okay well that is called not linux
23:02:23 <Vorpal> I don't want to have to do complicated manual stuff just to update glibc because stuff changed or whatever (glares at arch)
23:02:24 <elliott> try os x or maybe windows
23:02:29 <Vorpal> :P
23:02:54 <Vorpal> elliott, what about android. If you go with stock firmware it behaves like that
23:03:01 <fizzie> Might go with Debian if I were to install something today. I went with Ubuntu because I was all "I'll be all modern desktop Linux for once", and now I'm running XMonad in Gnome 3.
23:03:04 <Vorpal> wouldn't work on a desktop though
23:03:15 <Vorpal> fizzie, xmonad in gnome?
23:03:15 <fizzie> It feels a bit silly in an Ubuntu.
23:03:17 <Vorpal> really?
23:03:21 <fizzie> Yes.
23:03:25 <Vorpal> how does that work
23:03:32 <fizzie> Generally speaking just fine.
23:03:36 <elliott> fizzie: it's "xmonad" :(
23:03:47 <elliott> *FIzzie
23:04:17 <fizzie> I suppose so, it's just that all the modules are named XMonad.
23:04:19 <zzo38> GreyKnight: http://zzo38computer.org/prog/bashgopher/bashgopher There may be some wrong thing for MinGW so you might need to fix it; possibly also it won't handle wildcards properly. If it is fixed it does work on Linux I have tested it; but, I don't have that copy on here
23:04:40 <GreyKnight> `addquote <Vorpal> elliott, mostly I want something that takes zero effort to maintain and update once the initial setup is done. <elliott> okay well that is called not linux
23:04:48 <HackEgo> 866) <Vorpal> elliott, mostly I want something that takes zero effort to maintain and update once the initial setup is done. <elliott> okay well that is called not linux
23:04:53 <Vorpal> GreyKnight, :P
23:05:01 <GreyKnight> zzo38: yay thanks
23:05:07 <Vorpal> thing is, I have better stuff to do than mess with updates
23:05:30 <elliott> Vorpal: i have a suggestion
23:05:31 <fizzie> Vorpal: Anyway, the Gnome panel is the only visible gnomeness in this. All the rest is just stuff like nm-applet (bleh) and SSH/etc. key management, and stuff like that. Things that could be configured manually, but would need a bit of fiddling.
23:05:36 <zzo38> Then put DOS to avoid messing with updates since it doesn't need all complicated updates. It is also faster than Linux.
23:05:37 <Vorpal> elliott, xubuntu/ubuntu LTS is zero effort for about 2 years. But then it hits you badly
23:05:40 <elliott> Vorpal: don't use raid/lvm2
23:05:43 <elliott> if you want a simple painless experience
23:05:49 <Vorpal> elliott, eh, that is usually not the issue
23:05:50 <elliott> i agree w/ zzo38 install dos
23:05:52 <Vorpal> that is easy
23:06:31 <zzo38> You can download the DVD file and it will boot on a DVD and then it works.
23:06:32 <Vorpal> elliott, the issue is that I'm dual booting and often use one OS for a long time then switch back for a couple of months and so on
23:06:41 <Vorpal> elliott, which means something like arch is just a pain
23:06:50 <fizzie> A graphical Ubuntu person could tell me what you're supposed to be using to install a piece of software, though? I tried to use Ubuntu Software Center, but it just didn't.
23:07:28 <fizzie> "Suggest 260 removals" well that doesn't sound terribly good.
23:07:34 <Vorpal> elliott, I don't mind arch if I would be using the system daily, then I could devote a couple of minutes each week to handle messy updates
23:07:45 <Vorpal> elliott, but all at once after 2-3 months? No thanks
23:08:00 <zzo38> fizzie: Actually I know apt-get works too
23:08:59 <Vorpal> fizzie, heh ouch
23:09:07 <Vorpal> fizzie, I really like aptitude myself
23:10:17 <olsner> aptitude has a nice failure mode where every upgrade results in the suggestion to remove every other package on the system in order to install the upgrades
23:10:33 <fizzie> aptitude is what I use, and I've gotten reasonably comfortable with its quirks.
23:10:39 <fizzie> I just wonder what you're "supposed" to use.
23:10:43 * elliott finds apt-get nicer.
23:10:48 <elliott> it used to suck but now it doesn't
23:11:03 <fizzie> Because I tried to use Ubuntu Software Center to install Skype, and only thing it could find for me were $4 paid articles in Linux magazines talking about Skype.
23:11:07 <Vorpal> elliott, oh? It had problems tracking the "installed as deps" flag thingy for me
23:11:08 <GreyKnight> zzo38: "clsb"?
23:11:46 <zzo38> GreyKnight: It is for MinGW. For UNIX you need to put "clear" in there. There might be other things necessary to fix too.
23:12:03 <zzo38> You might also need to make nc -q -1 since some computers require that too
23:12:33 <Vorpal> elliott, you don't like ncurses?
23:12:52 <elliott> Oh, I just mean the command-line interface.
23:12:57 <Vorpal> ah
23:12:57 <elliott> Who would use the silly ncurses thing?
23:13:16 <Vorpal> elliott, aren't the command line interfaces pretty much identical give or take the odd formatting difference?
23:13:24 <Vorpal> all the same commands and so on
23:13:34 <Vorpal> except apt-get source, don't think that is in aptitude, is it?
23:13:36 <elliott> they resolve deps differently etc.
23:13:40 <Vorpal> oh okay
23:13:55 <fizzie> "apt-get source" isn't in aptitude; "aptitude search" or "aptitude show" isn't in apt-get that I know of.
23:14:11 <Vorpal> fizzie, apt-cache?
23:14:18 <fizzie> Porbably you could be using that instead.
23:14:39 <fizzie> It's a bit more focused on actual package thinging than browsing.
23:14:44 -!- sebbu2 has joined.
23:14:44 -!- sebbu2 has quit (Changing host).
23:14:44 -!- sebbu2 has joined.
23:15:17 <zzo38> GreyKnight: bashgopher is not really sophisticated so many things don't work; you can only have one open at a time, the history won't work, so on; but it can be used and does work for what I have tried, and it is not so good for download either. I also wrote Visgopher which is more sophisticated but it is for Windows. I may later write one UNIX program better than bashgopher, though.
23:15:19 <Vorpal> elliott, anyway I kind of like the ncurses interface in aptitude
23:15:23 <fizzie> In any case I don't think apt-get or aptitude either is the thing I'm "supposed" to use.
23:15:25 <Vorpal> it is a bit wonky yes
23:15:35 <Vorpal> but eh, it is fully usablke
23:15:37 <Vorpal> usable*
23:15:51 <Vorpal> fizzie, I suspect the software store thingy
23:16:00 <zzo38> fizzie: Are you sure? I think Ubuntu is designed to make it work regardless which you used.
23:16:00 <fizzie> But I couldn't even install Skype with it.
23:16:01 <GreyKnight> zzo38: I get a blank screen with "0/0" at the bottom when connecting to you
23:16:09 <GreyKnight> I could get in through telnet though
23:16:13 <zzo38> GreyKnight: It is possible you need nc -q -1
23:16:16 <fizzie> And I would think Skype is something you are supposed to be able to install.
23:16:16 <Vorpal> I guess I'm going to run into grub 2 nowdays?
23:16:20 <zzo38> Some computers require nc -q -1
23:16:23 <GreyKnight> I changed all the nc's to that
23:16:23 -!- sebbu has quit (Ping timeout: 245 seconds).
23:16:29 <GreyKnight> but still no worky :-(
23:17:04 <Vorpal> fizzie, hm, couldn't install why?
23:17:06 <GreyKnight> I may use it as a base to try and get a lua gopher client working though so thanks anyway :-)
23:17:10 <zzo38> I don't remember what else is wrong, but maybe you can find them.
23:17:26 <fizzie> Vorpal: Because "only thing it could find for me were $4 paid articles in Linux magazines talking about Skype."
23:17:28 <Vorpal> fizzie, how annoying is switching up from testing to unstable, or the other way around?
23:17:30 <zzo38> Also, the user interface is not properly documented.
23:17:40 <Vorpal> just in case I go with testing but end up wanting unstable?
23:17:40 <GreyKnight> documentation is for weenies ;-o
23:17:49 <zzo38> If you have Wine you could try Visgopher if you want to and see if it work.
23:17:51 <Vorpal> fizzie, ouch
23:18:14 <GreyKnight> fizzie, I managed to get skype on Ubuntu I think. Don't recall any issues... :-/
23:18:27 <fizzie> GreyKnight: Did you install it with Ubuntu Software Center?
23:18:38 <fizzie> I mean, I did just "aptitude install skype" and it worked perfectly.
23:18:39 <GreyKnight> it was a while back, sorry
23:18:58 <fizzie> Vorpal: Going from testing to unstable sounds reasonably likely to work well, since it'd just be updating some packages.
23:19:05 <Vorpal> ah
23:19:07 <GreyKnight> I should hire a goldfish to remember things for me
23:19:19 <Vorpal> fizzie, and downgrading can run into the usual problems I guess
23:19:48 <Vorpal> elliott, if only NixOS was less experimental and had wider software support :/
23:20:00 <GreyKnight> befungeOS for he win
23:20:03 <GreyKnight> the
23:20:04 <elliott> not sure I would call nixos low-maintanence
23:20:07 <fizzie> Vorpal: It certainly sounds a bit more iffy that way. I'm not sure if I've tried either switch. Though I did run a testing once that had quite a lot of stuff pulled in from unstable; you can just add sources for both and do pinning and so on.
23:20:07 <GreyKnight> I can't type today
23:20:12 <zzo38> If you do write it in Lua you can make it public too if you like it I want to see that too make available.
23:20:20 <Vorpal> elliott, true, but I attribute part of that to the experimental status
23:20:23 <GreyKnight> I shall!
23:21:19 <Vorpal> fizzie, hm what about the backports repo thingy?
23:22:05 <fizzie> http://askubuntu.com/questions/211868/why-wont-skype-install -- seems I'm not the only person who hit that.
23:22:36 <fizzie> "apt-get install lib32stdc++ and dpkg -i some random Skype .deb from somewhere" doesn't sound like the best workaround.
23:22:47 -!- carado has joined.
23:22:49 <fizzie> (And I did have the "Canonical partners" stuff enabled.)
23:23:43 <shachaf> @karma libstd
23:23:43 <lambdabot> libstd has a karma of 1
23:23:46 <shachaf> @karma libstdc
23:23:47 <elliott> fizzie: that issue just sounds like someone without the partners repo
23:23:47 <lambdabot> libstdc has a karma of 17
23:23:50 <shachaf> @karma lib32stdc
23:23:51 <lambdabot> lib32stdc has a karma of 1
23:24:29 <GreyKnight> @karma C
23:24:30 <lambdabot> C has a karma of 1
23:24:41 <GreyKnight> I guess it doesn't run off foo++
23:24:47 <shachaf> @karma foo
23:24:47 <lambdabot> foo has a karma of 1
23:24:52 <GreyKnight> @help karma
23:24:53 <lambdabot> karma <polynick>. Return a person's karma value
23:24:55 <shachaf> @karma c/c
23:24:55 <lambdabot> c/c has a karma of 347
23:25:03 <GreyKnight> foo--
23:25:04 <GreyKnight> @karma foo
23:25:05 <lambdabot> foo has a karma of 0
23:25:08 <GreyKnight> hm!
23:25:13 <Arc_Koen> @karma CPressey
23:25:14 <lambdabot> CPressey has a karma of 0
23:25:17 <Arc_Koen> ouuuuuh
23:25:23 <shachaf> C-- is a popular intermediate language in #haskell
23:25:24 <GreyKnight> C++ has been mentioned about a million times surely
23:25:28 <GreyKnight> ohhhh
23:25:35 <shachaf> (But that's not the reason.)
23:25:49 <Arc_Koen> @karma c/c
23:25:50 <lambdabot> c/c has a karma of 347
23:26:14 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
23:26:15 <Vorpal> anyone remember what you need to pass to tar to make it properly handle special files, like block devices, pipes, unix sockets and so on?
23:26:17 <fizzie> Vorpal: I don't really know about the backports repo. Do they have those for things other than stable nowadays?
23:26:20 <fizzie> @karma i
23:26:20 <lambdabot> i has a karma of 20
23:26:23 <Vorpal> can't find it in --help
23:26:26 <fizzie> That's not too many increments.
23:26:52 <shachaf> @@ @show @karma-all
23:26:53 <lambdabot> " \"nobody\" 2000\n \"C/C\" 347\n \"(\" 138\n \"+\" 109\n \"G\" 100\n \"shachaf\" 48\n \"dmwit\"
23:26:53 <lambdabot> 38\n \"libc\" 36\n \"##c\" 35\n \"\\\"C\" 31\n \"monochrom\" 31\n \"Notepad\" 31\n \"clang\" 30\n \"
23:26:53 <lambdabot> elliott\" 29\n \"#c\" 24\n \"Cale\" 24\n \"lambdabot\" 24\n \"i\" 20\n \"Jafet\" 20\n \"bonnie\"
23:26:53 <lambdabot> 19\n \"ObjC\" 18\n \"rwbarton\" 18\n \"sixthgear\" 18\n \"DevC\" 17\n \"edwardk\" 17\n \"ion\" 17\n \"libstdc\
23:26:53 <lambdabot> " 17\n \"byorgey\" 16\n \"vc\" 16\n \"cmccann\" 15\n \"elpolilla\" 15\n \"mauke\" 15\n \"shachef\" 15\
23:26:55 <lambdabot> [289 @more lines]
23:27:01 <shachaf> ...That didn't help.
23:27:09 <Vorpal> karma i'
23:27:13 <shachaf> @@ @read @run reverse @show @karma-all
23:27:15 <Vorpal> @karma i'
23:27:15 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
23:27:16 <lambdabot> i' has a karma of 0
23:27:21 <shachaf> @@ @run reverse @show @karma-all
23:27:23 <lambdabot> "\n3282- \"<\" \n6762- \"sekahsklim\" \n377- ...
23:27:30 <shachaf> @@ @run unlines . reverse . lines @show @karma-all
23:27:32 <lambdabot> Couldn't match expected type `GHC.Base.String'
23:27:33 <lambdabot> with actual typ...
23:27:33 <elliott> 23:25:13 <Arc_Koen> @karma CPressey
23:27:40 <elliott> @karma catseye
23:27:40 <lambdabot> catseye has a karma of 0
23:27:40 <shachaf> @@ @run (unlines . reverse . lines) @show @karma-all
23:27:41 <elliott> @karma ZOMGMODULES
23:27:43 <lambdabot> " \"<\" -2823\n \"milkshakes\" -2676\n \"-\" ...
23:27:43 <lambdabot> ZOMGMODULES has a karma of 0
23:27:45 <elliott> what
23:27:49 <elliott> have i really not ++'d cpressey at some point
23:28:01 <elliott> well then
23:28:02 <elliott> cpressey++
23:28:04 <elliott> catseye++
23:28:06 <elliott> ZOMGMODULES++
23:30:11 -!- sebbu has joined.
23:30:48 <GreyKnight> everyone here hates milkshakes?
23:31:21 <Vorpal> GreyKnight, no? I'm indifferent to them
23:31:23 -!- sebbu2 has quit (Ping timeout: 245 seconds).
23:31:31 <GreyKnight> @karma milkshakes
23:31:32 <lambdabot> milkshakes has a karma of -2676
23:31:35 <GreyKnight> :-/
23:31:35 -!- augur has joined.
23:32:12 <GreyKnight> milkshakes++
23:32:15 <GreyKnight> I like them :>
23:32:16 <Vorpal> well, night
23:35:48 <olsner> ZOMGMODULES++
23:36:42 <olsner> @karma ZOMGMODULES
23:36:42 <lambdabot> ZOMGMODULES has a karma of 2
23:36:52 <olsner> massive karma
23:40:24 <Phantom_Hoover> in the next life he'll probably be a giraffe or something
23:40:43 <GreyKnight> fungot++
23:40:44 <fungot> GreyKnight: " it is agile." unlambda: your functional programming language with first class subset/ quotient types? couldn't you explicitly dispatch on that? i'm using in conjure is fnord/ orca. the intention is to make a web site
23:40:49 <olsner> he will be django? what a fate :(
23:40:56 <GreyKnight> (fungot deserved that one from earlier)
23:40:57 <fungot> GreyKnight: as for the 0.0 in operator position, i'm still highly motivated ( perhaps too little) more than the solution that worked for me
23:41:49 <GreyKnight> 0.0 in operator position, you say
23:43:01 <Bike> ^style
23:43:01 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
23:43:16 <Bike> ^style ff7
23:43:16 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
23:43:26 <Bike> fungot: is a quotient type like a quotient set?
23:43:27 <fungot> Bike: what is it......
23:44:09 <fizzie> It's a confused style.
23:44:22 <fizzie> fungot: Just guess if you don't know.
23:44:22 <fungot> fizzie: umm.... thump... pound.... mi... ti... la... do this!?
23:44:43 <fizzie> fungot: ...not quite.
23:44:43 <fungot> fizzie: and that sephiroth's here, cloud?
23:44:57 <Bike> i feel like there's a joke about ellipses to be made here, fungot.
23:44:57 <fungot> Bike: really! ...sniff... you!? are the preparations going? she died.
23:45:09 <Bike> either that or the translatioin's quality.
23:45:31 <fizzie> I seem to recall quite a lot of ellipses in the game.
23:45:36 <GreyKnight> fungot...
23:45:36 <fungot> GreyKnight: the letter... what are we...? you just look a little longer! here!
23:45:45 <fizzie> fungot: Have you actually played FF7?
23:45:45 <fungot> fizzie: a battlefield, we wouldn't have come to the end!
23:45:55 -!- NihilistDandy has joined.
23:46:05 <Bike> where do you even get a full script of ff7
23:46:06 <MDude> Wait,what is fungot style?
23:46:06 <fungot> MDude: sorry to keep you company...
23:46:13 <MDude> No, that's fine.
23:46:18 <Bike> ^style fungot
23:46:18 <fungot> Selected style: fungot (What I've said myself)
23:46:23 <Bike> Oh my.
23:46:27 <MDude> As suspected.
23:46:43 <fizzie> It's a somewhat small dataset.
23:46:44 <Bike> fungot, would you call Cloud "whiny"?
23:46:45 <fungot> Bike: i just wrote :p ( what was i thinking there.... :d sorry, i have no information. he seemed, in fine, i can verify it
23:47:00 <MDude> So it's a bit of a self-reinforcing style, I would guess.
23:47:23 <fizzie> It hasn't been re-estimated ever.
23:47:41 <fizzie> It would be more interesting if I kept it more up to date.
23:47:52 <fizzie> fungot: How old is this style already?
23:47:52 <fungot> fizzie: am i that much bad. take up, boy; open't. so, now go with, do miscarrie, thou had'st bin resolute pompey
23:48:31 <fizzie> Quite often you can guesstimate the source style.
23:49:03 <zzo38> Add Shakespeare style.
23:49:10 <elliott> ^style ss
23:49:11 <fungot> Selected style: ss (Shakespeare's writings)
23:49:12 <elliott> done.
23:49:14 <elliott> thx for the suggestion
23:49:14 <zzo38> OK
23:49:29 <zzo38> Also add style of the recordings of the Dungeons&Dragons game.
23:49:45 <fizzie> It's equivalent (FSVO; asymptotically speaking; discounting non-babble; with many assumptions) to a straightforward weighted interpolation of the styles.
23:50:22 <zzo38> Also add the Christmas style.
23:50:27 <fizzie> What are thee recordings?
23:50:30 <fizzie> These.
23:50:40 <MDude> Is style pa quotations from all across Pennsylvania?
23:51:06 <zzo38> fizzie: One is, the one I wrote in my computer. But you need convert from TeX into unformatted if you want to use this one.
23:51:15 <fizzie> MDude: Not quite.
23:51:21 <fizzie> ^style pa
23:51:21 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
23:51:31 <fizzie> fungot: How's it going?
23:51:31 <elliott> MDude: Yes.
23:51:32 <fungot> fizzie: i thought i was goldilocks, seeing as you left me alone back there with three fucking bears. you want my advice? in the night. i've still got that paladin on dark iron, i guess natalie portman " sleepwalks" through her role in attack of the stupid name."
23:52:21 <fizzie> Personally I think this one manages to be quite amusing at times, but it's never been very popular.
23:52:30 <fizzie> fungot: Put some effort into it.
23:52:30 <fungot> fizzie: look out, cacodemons: there's a new mouse in town. don bluth joins forces with id software to spawn the ultimate tail 3: fievel goes to hell.
23:52:35 -!- augur has quit (Remote host closed the connection).
23:53:00 <fizzie> The settings when this was built make it a bit overprone to quote verbatim.
23:53:15 <zzo38> Then change it
23:53:23 <Bike> yeah, i was gonna say, that goldilocks bit sounded like a quote.
23:53:31 <fizzie> fungot: Omstart, more inspiration.
23:53:31 <fungot> fizzie: right, right. i should probably be at the store.
23:53:41 <fizzie> fungot: Sigh.
23:53:44 <elliott> fizzie: the problem is its jokes are mainly quotes
23:53:53 <shachaf> fungot: Sigh.
23:53:53 <fungot> shachaf: son, i can't actually see the road anymore.
23:54:11 <fizzie> It does mix things up. Sometimes. It's just being uncooperative.
23:54:19 <fizzie> That was a direct quote too.
23:54:21 <MDude> Fungot: Reprogram yourself to use less direct quotes.
23:54:38 <fizzie> fungot: And start being case-insensitive.
23:54:38 <fungot> fizzie: zero, i guess i don't give two shits bout it work at eidos. i had caught them all.
23:54:41 <MDude> Do you not respond when your name is capitalized?
23:54:54 <shachaf> MDude: "Fungot" is not fungot's name.
23:54:55 <fungot> shachaf: go fuck yourself. final fantasy viii, coming soon to a playstation near us! i just got them at the aucti- chocolate and waffle cones hung in the air, announce that i am forced to express the feelings that i have finally discovered the correct games in the correct sequence to maintain his interest in the genre forever.
23:55:10 <fizzie> It's kind of picky like that.
23:55:17 <fizzie> ^style fisher
23:55:17 <fungot> Selected style: fisher (Fisher corpus of transcribed telephone conversations)
23:55:34 <Bike> does it respond to "afungota", say?
23:55:34 <fungot> Bike: right and i
23:55:36 -!- augur has joined.
23:56:01 <fizzie> fungot: It's just basically a strstr, right?
23:56:02 <fungot> fizzie: yeah laughter yeah or whichever way the wind is just kind of like
23:56:24 <fizzie> They've annotated some sounds.
23:56:38 <fizzie> Probably nobody said "laughter" out loud there.
23:57:08 -!- augur has quit (Remote host closed the connection).
23:58:01 <MDude> And here I was wondering what kind of quotes you'd get from Fisher Price. Apparently none.
23:58:04 <Bike> does fungot respond to itself?
23:58:05 <fungot> Bike: i got so much more advanced but for a professional baseball player like i was the same kind of ah
23:58:24 <elliott> no
23:58:27 <shachaf> Bike: Why would it do that?
23:58:29 <elliott> IRC doesn't echo lines back to you
23:58:45 <zzo38> Unless you send it to yourself.
23:58:59 <Bike> shachaf: i've seen bots that do.
23:59:19 <Bike> though it seems that fungot's befunge-98 standard is better than that.
23:59:20 <fungot> Bike: ( ( laughter noise noise
23:59:30 <shachaf> fungot
23:59:30 <fungot> shachaf: um i i've talked to
23:59:31 <Bike> Laugh it up, fungot. Laugh. It. Up.
23:59:32 <fungot> Bike: i just look for the area that's a very good thing to tell your kids not to use
23:59:37 <Bike> MDude: http://uncyclopedia.wikia.com/wiki/Fisher_Price ?
23:59:49 -!- sivoais has joined.
←2012-12-12 2012-12-13 2012-12-14→ ↑2012 ↑all