←2013-03-14 2013-03-15 2013-03-16→ ↑2013 ↑all
00:00:01 <Phantom_Hoover> but there are a lot of episodes that do their own take on some TV sci-fi cliche
00:00:31 <Sgeo> Who was the character in SG-1 who a similar thing happened to?
00:00:43 <Sgeo> Was it the character that this same actor played?
00:01:22 <Phantom_Hoover> you seem to be under the impression i've watched sg-1
00:01:26 <Sgeo> Oh
00:01:38 <Bike> Why's the kind of (->) have question marks in it?
00:03:21 <shachaf> λ> :k (->)
00:03:21 <shachaf> (->) :: * -> * -> *
00:03:45 <shachaf> Bike: In older versions of GHC it was a thing related to unboxed types and such.
00:03:58 <shachaf> You can pretend it's * -> * -> *
00:04:11 <Bike> ok, just checking.
00:04:20 <Phantom_Hoover> Sgeo, (iirc the next episode is A Good One)
00:04:28 <Phantom_Hoover> (also the one after that is definitely a good one_
00:04:35 <Phantom_Hoover> then there's another good one two after that
00:05:18 <Sgeo> Phantom_Hoover, does this mean to imply that there are episodes that aren't good?
00:05:27 <Bike> :k (-> Int) -- parse error?
00:05:29 <lambdabot> parse error on input `Int'
00:05:29 <Sgeo> Are there bad episodes?
00:05:48 <Phantom_Hoover> well uh
00:05:58 <Phantom_Hoover> don't watch episode 14
00:06:14 <Bike> imo do watch episode 14 and compare it negatively to PMMM
00:06:17 <shachaf> Bike: Yes, you can't section (->)
00:06:32 <shachaf> In fact you can't section any type-level things.
00:06:33 <Phantom_Hoover> Bike, you are the worst?
00:06:35 <Bike> shachaf: why not? I mean, :k ((->) Int) works.
00:06:45 <shachaf> Bike: ((->) Int) is (Int ->), first of all.
00:06:48 <Bike> yes.
00:06:58 <Bike> I mean, (Int ->) doesn't work either.
00:07:02 <shachaf> It would be nice if the syntax (Int ->) worked. Maybe someone should add it.
00:07:16 <shachaf> (someone = you)
00:07:24 <shachaf> That's just a little sugar thing, though.
00:07:34 <Bike> 'coure.
00:07:35 <shachaf> Sections don't make as much sense on the type level because there are no type lambdas.
00:07:36 <Bike> course*
00:07:53 <shachaf> I.e. (-> Int) doesn't make sense, because there's nothing reasonable you can translate it to.
00:07:57 <Bike> Yes, and I suppose I can't do flip (->) Int to get (-> Int).
00:08:45 <shachaf> Right.
00:11:45 <Sgeo> I think something's gone funny with my video playback
00:12:04 <Sgeo> Sometimes sections repeat
00:12:27 <Sgeo> Or... hmm, not sure
00:13:58 <Sgeo> After this episode going to work on blog post.
00:14:57 <Sgeo> Goddammit Hulu, clicking the side != restart video
00:16:09 <Phantom_Hoover> maybe it's more time shenanigans???
00:20:54 <Sgeo> Hulu's been acting up
00:24:09 -!- madbr has joined.
00:29:10 -!- monqy has joined.
00:30:13 <madbr> sup
00:35:59 <madbr> I'm stumbling on something for my small VM for video games
00:36:25 <Bike> needs a jit obviously
00:36:28 <madbr> Some types of gfx effects will be kinda slow
00:36:41 <madbr> alpha blending in particular
00:37:00 <madbr> and I don't even wanna think about bilinear interpolation
00:38:42 <Fiora> bilinear interpolation is just, like, a horizontal filter then a filter filter, right?
00:38:48 <Fiora> it's only two taps so it shouldn't be that atrocious
00:39:43 <Fiora> if it's for like, whole images, you could probably use an existing library even :o
00:41:08 <madbr> bilinear interpolation murders most CPUs actually
00:41:11 <madbr> it's like
00:41:15 <madbr> 4 reads instead of 1
00:41:41 <madbr> and then interpolation across 3 or 4 color channels (RGB or RGBA)
00:42:11 <Fiora> I don't think you have to do any more reads...
00:42:29 <Fiora> I mean, like, if you need to bilinearly interpolate a 16x16 region, you only need a 17x17 region as input, I think?
00:42:44 <madbr> what you're describing is a filter, not bilinear
00:42:46 <Bike> hey haskellites, what is fail for
00:42:57 <Bike> seems like an odd thing to have in Monad
00:43:06 <Fiora> but... a bilinear interpolator is just an H filter and a V filter unless it's not separable...
00:43:09 <Fiora> right...?
00:43:41 <madbr> fiora : if your polygon is not rotated and your scaling factor is integer then you can do it that way yes
00:43:55 <Fiora> scaling factor is integer?
00:44:06 <madbr> yeah like you're scaling 2x or 3x or 4x
00:44:09 <madbr> and not 2.2352x
00:44:17 <Fiora> I don't think that's required, I think the good algorithms can do it even when it's fractional
00:44:21 <Fiora> um, lemme test
00:44:37 <madbr> if it's fractionnal then you get a branch in the middle of the algo I think
00:45:12 <Fiora> I think swscale has a thing where it JITs a horizontal scaler for your given scaling percentage, I have no idea how it works though
00:45:16 <madbr> not very expensive when your pipeline is super short but on more modern architectures you get the branch penalty half the time
00:45:46 <madbr> fiora: yeah exactly
00:46:20 <madbr> once you add rotation the whole thing falls apart
00:46:37 <madbr> and you have to do 4 real pixel reads and then interpolate the values
00:46:41 <Fiora> rotation is icky :<
00:47:16 <kmc> Bike: fail is for pattern match failure
00:47:25 <kmc> > do { Just x <- return Nothing; return x }
00:47:27 <lambdabot> No instance for (GHC.Show.Show (m0 b0))
00:47:27 <lambdabot> arising from a use of `M91964446...
00:47:37 <kmc> > do { Just x <- return Nothing; return x } :: [Int]
00:47:38 <lambdabot> []
00:47:57 <kmc> ok not the most illustrative example
00:48:04 <Bike> do { Just x <- return Nothing; return x } :: Maybe Int
00:48:09 <Bike> er.
00:48:11 <Bike> > do { Just x <- return Nothing; return x } :: Maybe Int
00:48:13 <lambdabot> Nothing
00:48:14 <kmc> anyway the thing to the left of <- can be a pattern; if it fails to match, 'fail' is invoked
00:48:29 <kmc> imo 'fail' shouldn't be in Monad but in some MonadFail class which is additionall required if you use refutable patterns in 'd'
00:48:29 <Bike> with what?
00:48:32 <kmc> 'do'*
00:48:46 <Sgeo> Rigel's an idiot (I'm still watching episode)
00:48:46 <kmc> with some compiler-specific description of the pattern match failure
00:48:56 <Bike> good error detection
00:49:07 <kmc> > do { Just x <- return Nothing; return x } :: State Int Int
00:49:09 <lambdabot> No instance for (GHC.Show.Show
00:49:09 <lambdabot> (Control.Monad.Trans.Sta...
00:49:16 <Bike> > fail "foo" :: IO Int
00:49:17 <kmc> > execState (do { Just x <- return Nothing; return x } :: State Int Int)
00:49:18 <lambdabot> No instance for (GHC.Show.Show (GHC.Types.IO GHC.Types.Int))
00:49:18 <lambdabot> arising fro...
00:49:19 <lambdabot> can't find file: L.hs
00:49:23 <kmc> for fuck's sake
00:49:29 <Bike> L.hs is my favorite file
00:49:34 <kmc> anyway, the point i'm /trying/ to make is that a lot of monads don't have anything sensible to do with 'fail'
00:49:41 <Bike> yeah that's why i'm asking
00:49:46 <kmc> only some monads represent error handling / alternatives / nondeterminism
00:49:55 <Bike> like fail "foo" :: [whatever] being [] is... odd
00:49:57 <kmc> and even then, you might not want to allow silent pattern match failure
00:50:08 <kmc> it IS quite convenient when e.g. doing nondeterministic programming with []
00:50:29 <Bike> oh, you can have type variables in ::, of course you can
00:50:35 <Bike> > fail "foo" :: [a]
00:50:37 <lambdabot> []
00:50:43 <Fiora> madbr: http://privatepaste.com/824967e6a8 okay wow this is actually crazy
00:50:48 <kmc> type variables to the right of :: are implicitly universally quantified
00:51:03 <Bike> aren't type variables implicitly universally quantified in general?
00:51:13 <kmc> unless they are explicitly universally quantified ;P
00:51:16 <kmc> and that's an extension
00:51:25 <Bike> i noticed
00:51:27 <kmc> or introduced from an outer scope, which is also an extension
00:51:32 <Bike> i tried to get my pedant on and it didn't work. sad
00:51:40 <Bike> Fiora: "This scaler is made of runtime-generated MMXEXT code using specially tuned pshufw instructions." metal
00:51:52 <kmc> savagely hand-optimized assembler
00:52:13 -!- monqy has quit (Quit: hello).
00:52:27 <Fiora> I wonder if one could do even better with pmaddubsw
00:52:32 * Bike looks up, notices x86_reg as a typename. wat
00:52:49 <Fiora> I... I'd guess it's the size of a native register?
00:52:55 <Fiora> so like, 32-bit on x86_32, 64-bit on x86_64
00:52:55 <Bike> i guess
00:53:05 <Bike> mostly it just reminds me of how ineffectual "register" apparently is
00:53:21 <kmc> Bike: i can explain the question mark kinds if you like
00:53:21 <Phantom_Hoover> what if you're on x86_16
00:53:31 <Fiora> I'm guessing this code doesn't work on 16-bit <.<
00:53:37 <Fiora> it uses mprotect >.>
00:53:38 <madbr> yeah this is crazy stuff
00:53:38 <Bike> kmc: oh, go ahead. (i've gotten around to reading haskell in haskell)
00:53:48 <kmc> well do you know how unboxed types work in GHC
00:53:50 <Bike> kmc: i read spj's paper about I# and such if that helps
00:53:54 <kmc> ok
00:54:05 <Bike> but otherwise no, i don't really
00:54:07 <madbr> fiora: hm, now I wonder how much of the instructions added after the 386 work in real mode
00:54:12 <madbr> fiora: probably not many
00:54:33 <kmc> well Int is represented, like every Haskell value, as a pointer to a heap object. but Int# is represented as a bare machine word
00:54:37 <kmc> (this much you may already know)
00:54:44 <Bike> right
00:55:01 <kmc> so for example values of type Int# can't be passed to polymorphic functions, which are compiled only once for all types and expect to treat those values uniformly
00:55:11 <kmc> so Int# has to be a different kind of type than Int
00:55:20 <Bike> ooh, clever
00:55:31 <kmc> in old GHC that kind is named #
00:55:39 <kmc> it has some alphabetic name now
00:55:58 <kmc> so what's the kind of (->), the type constructor of function types?
00:56:13 <Bike> I suppose you want to support Int# -> Int# and such
00:56:13 <kmc> functions are all represented by heap objects, so it's ... -> *
00:56:21 <Fiora> madbr: huh, weirdly, a lot of new ones apparently can o_O
00:56:22 <kmc> but the arg and return types can be either boxed or unboxed
00:56:28 <Bike> but uh, ?? being a union of * and # seems like it would be really weird
00:56:30 <Fiora> like "popcnt" has a 16-bit real mode version and apparently works in real mode?
00:56:32 <kmc> it is really weird
00:56:35 <Fiora> and that's... that's like, SSE4
00:56:37 <madbr> strange
00:56:38 <kmc> it's like subtyping at kind level
00:56:39 <kmc> but there you go
00:56:42 <Bike> awesome
00:57:02 <madbr> anyhow
00:57:05 <kmc> and ? is the superkind of * and # and (#), where (#) is the kind of unboxed tuples
00:57:07 <Bike> what do you call kinds on the next level again? is that where you give up and go with type3
00:57:11 <kmc> e.g. (# 1, 2 #)
00:57:31 <kmc> Bike: some people call them 'sorts' but in general it's nice to have uniform Set :: Set0 :: Set1 :: ...
00:57:37 <Bike> right
00:57:39 <madbr> fiora : tbh alpha blending is probably a bit overdone by now
00:57:47 <kmc> esp. in dependently typed contexts, where distinguishing types from values is not really the goal
00:57:50 <madbr> after almost 20 years of openGL stuff
00:58:07 <madbr> same for bilinear
00:58:07 <Fiora> but but but excuse to use pmaddubsw
00:58:09 <kmc> you stratify in order to have a consistent logic, not in order to erase some things after compilation
00:58:12 <Bike> sometimes i wonder why mathematicians don't just start out with numberings, but then i remember this is the discipline that gave us x with a dot for derivatives
00:58:35 <kmc> Bike: hey you can put a lot of dots above an x
00:58:40 <Bike>
00:58:47 <Bike> i forgot the combining character for one dot though :(
00:58:48 <kmc> anyway unboxed tuples are even less first-class than unboxed values
00:59:02 <kmc> at least in old GHC you can only return them, not take them as args
00:59:03 <Bike> yeah i remember somebody who was possibly shachaf complaining about it
00:59:17 <kmc> and the only thing you can do after calling a function which returns one is to immediately pattern-match out the components
00:59:23 <Bike> also: i still think of types as a compilation thing instead of a logic thing. possibly this is because i am bad at logic
00:59:25 <kmc> case f x of (# a, b #) -> ...
00:59:35 <Bike> that amused me because it's pretty well the same as CL multiple value returns :P
00:59:39 <kmc> so it's... yeah
01:00:00 <kmc> and GHC will implement it just by putting a and b in separate STG-machine registers
01:00:01 <madbr> fiora: :D
01:00:04 <kmc> rather than building a heap object
01:00:11 <Bike> right
01:00:17 <Bike> vectored return is what it's called?
01:00:24 <Bike> Fiora: i'm horribly curious what "LOCAL_MANGLE" could mean in the paste
01:00:25 <madbr> fiora: well, deformation/warping/texture mapping effects aren't too hard
01:00:44 <madbr> fiora: even on a straight dumb word-addressing RISC
01:01:44 <Fiora> but simd is fuuuun
01:02:10 <Fiora> Bike: I'm guessing it has something to do with pleasing the inline assembler but gosh I have no idea
01:02:22 <madbr> ha yeah
01:02:36 <madbr> I'm definitely starting to consider adding simd instructions
01:03:01 <Bike> Fiora: oh, also the IDE interlude in ##asm made me want to mention slime-macroexpansion-mode but i don't know if it would be feasible or useful for assembly macros
01:03:44 <Fiora> slime?
01:03:53 <Bike> lisp mode for emacs
01:04:14 <pikhq> Hmm, I see *someone* is writing yet another image scalar that's not gamma-aware.
01:04:21 <Bike> basically if you have a macro form you can C-c m on it and a buffer pops up with the expansion, and you can do it again in the expansion, so you can see what something expands to.
01:04:22 <pikhq> Goodie, incorrect results.
01:05:00 <Fiora> pikhq: that's like, the fastest one in the library, I think
01:05:06 <Fiora> I don't think it's intended to be very good
01:05:32 <pikhq> Fiora: Eh, hardly anyone actually does that anyways.
01:05:38 <pikhq> Still sucks.
01:05:39 <Fiora> gamma aware sounds painful though, I've read the articles about it but egh, sending every byte through a lookup table...
01:06:13 -!- nooga has quit (Ping timeout: 256 seconds).
01:06:25 <madbr> pikhq : bilinear is already cpu killing and you want to add more to the massacre? :D
01:07:37 <Fiora> you can use a 50-tap sinc filter too >:3
01:07:46 <madbr> hah
01:08:00 <madbr> even on sound that's overkill
01:08:07 <madbr> and on sound you can hear the alias
01:08:24 * Fiora was kidding XD
01:09:14 -!- carado_ has joined.
01:09:46 <pikhq> The *cheap* way is basically doing each pixel to the power of 2.2 before scaling, and then to 1/2.2 after...
01:09:55 <Bike> kmc: mostly i was wondering about fail because haskell-in-haskell has mgu :: (Monad m) => Type -> Type -> m Subst and such, seemingly for no other reason than the use of fail. so i thought that seemed more like somewhere you'd use Either
01:09:59 <pikhq> (note, technically wrong, but damned close)
01:10:08 <Bike> kmc: but i seem to not understand the haskell "philosophy" on exceptions anyway
01:10:11 <Fiora> wait, geez, not even that's correct?
01:10:18 <Sgeo> Ok, one more episode then I will blog
01:10:42 -!- carado has quit (Ping timeout: 256 seconds).
01:10:49 -!- carado_ has changed nick to carado.
01:10:52 <pikhq> Fiora: The sRGB to linear mapping is not done via a straight gamma of 2.2, but rather a somewhat weirder function.
01:11:18 <Fiora> I guess a lookup table would be able to get it at least?
01:11:21 <madbr> srgb... is that calibrated on CRTs or LCDs?
01:11:41 <Sgeo> https://soundcloud.com/stevexr1p/i-am-the-doctor-nintendo-remix
01:13:05 <Bike> A chiptune mix of the theremin-heavy Who theme sounds surreal
01:13:47 <madbr> dunno if I like it
01:13:49 <pikhq> The exact function is... x <= 0.04045 -> x/12.92; otherwise -> ((x+0.055)/(1.055)) ^ 2.4
01:14:14 <Fiora> wow. that's... that's really... I don't even
01:14:17 <pikhq> Where x has been scaled to be between 0 and 1 from whatever your sample size is.
01:14:51 <pikhq> Note that you really want your intermediates to be either floats or 16-bit ints.
01:15:14 <madbr> hah gonna be soooo sloooooooooooooow :D
01:15:51 <pikhq> Yeah, but the average of 0 and 255 will be 187, as it should be.
01:16:09 -!- Bike_ has joined.
01:17:16 <madbr> it's fine on non-realtime stuff like photoshop I guess
01:17:31 -!- Bike has quit (Ping timeout: 245 seconds).
01:17:37 -!- Bike_ has changed nick to Bike.
01:17:50 <pikhq> Yeah, but Photoshop doesn't do this.
01:18:08 <madbr> or if you do something like inverse gamma all your textures and then in the final HDR shader reapply the gamma
01:18:37 <Fiora> pikhq: actually I was kinda wondering something about that, if like, in photoshop I change the image format to 16-bit or 32-bit, does it go linear?
01:18:42 <Fiora> or does it use gamma there too?
01:19:36 <pikhq> Fiora: i don't know.
01:20:17 <Fiora> ah! http://forums.adobe.com/message/2615874 says that 32-bit float is always gamma 1.0
01:20:37 <Fiora> and apparently you can even set up a custom RGB profile with gamma 1.0 o_O
01:20:45 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:21:45 <pikhq> So, if you are working in 32-bit float in Photoshop you get things working right.
01:23:15 <madbr> just getting brushes to work right is good enough to me :D
01:26:12 <madbr> the general problem with just leaving it with the RISC opcodes is that people are going to program in the effects that render well in software
01:26:31 <madbr> IE the same ones seen in a zillion demoscene demos and late DOS games
01:28:50 <madbr> they're not bad (they're good at some types of "juice" :D) but not too original either
01:35:03 <kmc> Bike: ah yeah, that was a somewhat old style
01:35:13 <kmc> (using a generic monad for 'fail')
01:35:23 <kmc> I think these days people will look at you funny for writing that kind of code
01:35:36 <kmc> you would use Maybe, Either, or some class more specific than Monad
01:37:36 <kmc> yeah the sRGB function is chosen "to approximate a gamma of about 2.2, but with a linear portion near zero to avoid having an infinite slope at K = 0, which can cause numerical problems."
01:38:31 <Jafet> So thoughtful
01:39:27 <kmc> madbr: it's "calibrated for CRTs" in the sense that the CRT voltage -> luminance function is close to that gamma of 2.2, so you can output sRGB values directly as CRT voltages and it works ok
01:40:05 <kmc> but an sRGB value corresponds to a particular color (i.e. CIE XYZ tristimulus value) independent of what display technology is in use
01:41:06 <kmc> your display technology needs to do whatever is necessary to ensure that sRGB values correspond to linear light intensity according to the specified curve
01:41:29 -!- kallisti has quit (Quit: leaving).
01:41:44 -!- kallisti has joined.
01:41:44 -!- kallisti has quit (Changing host).
01:41:44 -!- kallisti has joined.
01:41:49 <kmc> there is a ThinkPad laptop that has a color calbiration sensor in the wrist rest
01:41:54 <kmc> so you just shut the lid and it does its thing
01:43:50 -!- kallisti has quit (Client Quit).
01:44:07 -!- kallisti has joined.
01:48:15 <kallisti> :>
01:55:48 -!- kallisti has quit (Quit: leaving).
01:56:06 -!- kallisti has joined.
01:56:06 -!- kallisti has quit (Changing host).
01:56:06 -!- kallisti has joined.
01:56:07 -!- kallisti_ has joined.
02:08:07 <Bike> kmc: does lyah go into error handling much? like not catch, just how idiomatic code deals with exceptional situations
02:16:18 -!- jhaimar has joined.
02:17:06 -!- Arc_Koen has quit (Quit: Arc_Koen).
02:20:14 <jhaimar> holaaa
02:20:46 <Sgeo> `welcome jhaimar
02:20:52 <HackEgo> jhaimar: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
02:31:40 <kmc> Bike: don't know
02:31:51 <kmc> i think RWH has some stuff on the IO-monad sort of exceptions
02:32:44 <Bike> lyah mentioned IOError but said you'd usually use pure mechanisms instead
02:33:34 <Sgeo> @hoogle try
02:33:34 <lambdabot> Control.OldException try :: IO a -> IO (Either Exception a)
02:33:35 <lambdabot> System.IO.Error try :: IO a -> IO (Either IOError a)
02:33:35 <lambdabot> Control.Exception.Base try :: Exception e => IO a -> IO (Either e a)
02:34:06 <Bike> ha.
02:38:32 -!- carado has quit (Ping timeout: 256 seconds).
02:42:55 <kmc> well IOError is pretty primitive
02:43:02 <kmc> but GHC has a more powerful system of IO exceptions
02:43:04 <kmc> extensible
02:43:30 <kmc> i may be some kind of heretic, but I think the IO monad is a pretty good 'getting shit done' monad
02:43:36 <kmc> it has exceptions, state, threads, oh and IO
02:43:59 <kmc> for some huge program it might be nice to build an ornate transformer stack of separate exception handling, state, etc.
02:44:11 <kmc> but it's a big pain for small program
02:45:36 -!- jhaimar has quit (Read error: Connection reset by peer).
02:51:59 -!- Jafet has quit (Quit: Leaving.).
02:56:22 <Sgeo> Well, separate state is still nice for not having to pass IORefs around, unless you make a global IORef
02:57:22 <kmc> that's true
02:59:39 <Bike> basically what i'm asking is, for something like the haskell-in-haskell code that doesn't involve anything IOy but exceptions, would using that exception hierarchy be the idiomatic solution, or what?
03:00:20 <kmc> no, probably Maybe or (Either t) or some other error monad
03:00:32 <kmc> compilers typically have to do errors, fresh variable names, and maybe other state
03:00:45 * variable does a jig
03:00:52 <kmc> haha
03:01:08 <kmc> what i'll do is, create a module which defines a monad with the necessary operations
03:01:19 <Bike> i'm used to exceptions being more complicated than just bare strings, too :/
03:01:19 <kmc> exported abstractly, so other code can't see the details of how that monad is implemented
03:01:31 <kmc> could be a transformer stack, could be something else, doesn't matter
03:01:39 <kmc> GeneralizedNewtypeDeriving for MonadState etc. is useful
03:01:52 <kmc> Bike: sure, you can use whatever type you like with Either / ErrorT
03:01:52 <Bike> no errors across module boundaries?
03:02:03 <kmc> Bike: no
03:02:26 <kmc> what i'm saying is, the fact that the monad is StateT s (ErrorT e (Whatever ...)) is not exposed
03:02:56 <Bike> m
03:03:21 <kmc> you would only expose whatever primitives you need
03:03:29 <kmc> throw, catch, gensym, whatever
03:03:43 <kmc> the rest of the compiler just uses those and doesn't worry about the implementation of this monad as an algebraic data structure
03:04:15 <kmc> IOW i'm saying that monad transformers are a useful shortcut for building monads, but that doesn't mean they should be all over the code which /uses/ those monasd
03:04:20 <kmc> monasdf
03:04:33 <Bike> So you'd make your own error protocol? Also I don't even know what IOW or monad transformers are so you're probably wasting this on me, sorry.
03:04:48 <kmc> IOW being "in other words"
03:04:54 <Bike> o
03:05:14 <kmc> the most important idea here is abstract data types
03:05:21 <kmc> not really anything to do with monads
03:05:45 <kmc> implementing monads as abstract data types is often a good idea for the same reason as implementing anything else as an abstract data type
03:07:42 -!- nooga has joined.
03:08:45 <Sgeo> I think Bike may be wondering if you'd have to use different functions to raise errors from a 'standard' function?
03:08:58 <Sgeo> The answer to that is no if you write the monad transformer properly
03:09:44 <Sgeo> I think
03:11:27 <Bike> I seem to lack the ability to phrase what I mean to ask.
03:15:31 <kmc> right the error handling situation with 'standard' functions is a clusterfuck
03:15:55 <kmc> if you're using some error handling monad, there's no way to make (say) 'head' produce an error in that monad
03:16:21 <kmc> really
03:16:28 <kmc> it is hard to integrate two libraries which both do error handling
03:16:42 <kmc> that were developed independently
03:16:42 <Bike> ok, that about answers it, thanks
03:17:15 <kmc> i mean *maybe* they allow a generic MonadError (http://lambda.haskell.org/hp-tmp/docs/2011.2.0.0/packages/mtl-2.0.1.0/doc/html/Control-Monad-Error-Class.html#t:MonadError)
03:17:18 <kmc> but usually not
03:17:31 <kmc> you end up writing a lot of little wrappers to convert between different sorts of error handling
03:17:36 -!- nooga has quit (Ping timeout: 264 seconds).
03:17:38 <kmc> it's not that bad but it's kind of annoying
03:17:51 <kmc> that's one reason why I say that everything that does IO should just use IO's exceptions
03:17:57 <kmc> rather than say ErrorT e IO
03:20:09 <Bike> what's T there mean, by the way
03:20:14 <kmc> transformer
03:20:20 <kmc> :k ErrorT
03:20:21 <lambdabot> * -> (* -> *) -> * -> *
03:20:39 <Bike> o
03:20:47 <Sgeo> `slist
03:20:47 <kmc> for an error type e :: *, and a monad m :: * -> *, (ErrorT e m) is a monad
03:20:49 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: slist: not found
03:20:53 <Sgeo> ^list
03:20:53 <fungot> Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot
03:20:54 <Sgeo> NOT UPDATE
03:20:57 <Sgeo> BUT NEW ALBUM
03:21:27 <Bike> is MonadError not a transformer?
03:21:33 <kmc> no, it's not even a type
03:21:37 <kmc> it's a type class
03:21:42 <Bike> oh duh
03:21:48 <kmc> classifying all the monads in which errors can be thrown
03:22:55 <kmc> it's useful because it lets you throw an error without knowing at what layer of the stack your ErrorT or similar thingy is
03:23:12 <kmc> and should allow library code to generalize for more users
03:23:26 <kmc> but i dunno, in practice most libraries don't use it
03:23:36 <kmc> it makes the type signatures longer and uglier and it requires type system extensions
03:23:41 <Sgeo> Dear Hulu: If I press go back 10 seconds 3 times, it does not mean jump forwards 5 minutes.
03:23:46 <Bike> wait, what extensions?
03:23:58 <kmc> there's one that uses type families and one that uses multiparameter type classes with functional dependencies
03:24:08 <kmc> oh right, that's another problem: there are (at least) two MonadErrors
03:24:09 <Bike> gosh
03:24:11 <kmc> actually a lot more
03:24:40 <kmc> the problem is that every monad-which-supports-errors is associated with a particular error type
03:24:46 <kmc> and the type class needs a way to talk about both of these at once
03:24:54 <kmc> in standard Haskell, type classes can have only one parameter
03:24:58 <kmc> among numerous other restrictions
03:25:24 <kmc> type classes were the big new experimental feature in Haskell and they were somewhat conservative about them
03:25:52 <Bike> ah.
03:26:39 <kmc> Haskell is a language where the community observes that there are 50 incompatible error handling monads, and the response is 50 incompatible packages for generically handling all error handling monads
03:26:40 -!- nooga has joined.
03:27:18 <Bike> the generalization of having thirty RFCs. genius.
03:27:37 <kmc> the great thing about standards is that there are so many to choose from
03:32:22 <kmc> Sgeo: yeah that is the worst
03:32:25 <kmc> i don't know why it does that
03:33:50 <Bike> maybe if we just pared everything down so we only had one programmer left, they could agree on what to use. ...but then, they could be sgeo
03:38:33 <kmc> in a world with only one programmer, Hacker News will still be 40% articles about How To Hire Programmers
03:38:51 <kmc> i mean it's that much harder!
03:39:56 <Bike> i don't understand how programming exists as a job market, i mean everybody seems to care about how to hire and how to be hired that i see that more than actual programming sometimes?
03:40:47 <kmc> well nobody actually knows how to hire programmers
03:40:53 <kmc> and none of the article have any empirical basis or references
03:41:00 <Bike> right i mean
03:41:02 <kmc> they're all linkbait basically
03:41:17 <kmc> if you want to attract attention to your company, post a semi provocative article about how you hire people
03:41:17 <Bike> is the programming industry built on writing programs to autogenerate shitty articles on hiring programmers
03:41:21 <kmc> Ksplice is guilty of this too
03:41:45 <kmc> https://blogs.oracle.com/ksplice/entry/how_to_quadruple_your_productivity
03:42:04 <Bike> oh hey, haskellhaskell has n+k patterns
03:42:20 <kmc> this got a ton of hate mail from people who didn't understand that intern = paid intern
03:42:32 <kmc> also a bunch of horrible comments about all the women in those photos, of course
03:42:34 <Bike> it says "paid" in the second paragraph
03:42:42 <kmc> Bike: i think that was an edit
03:42:44 <kmc> see last graf
03:42:45 <Bike> ah
03:43:35 <kmc> n+k patterns are... silly
03:43:47 <kmc> i'm not sure about any stronger negative judgement
03:43:50 <Bike> has n+k but not irrefutable patterns
03:43:55 <kmc> Bike: do you know about view patterns
03:44:09 <Bike> naw
03:44:10 <kmc> they kind of generalize n+k patterns
03:44:23 <Sgeo> How often are view patterns used?
03:44:42 <Sgeo> > (\(id -> a) a + 1) 5
03:44:44 <lambdabot> <hint>:1:15: parse error on input `+'
03:44:45 <Sgeo> oops
03:44:49 <Sgeo> > (\(id -> a) -> a + 1) 5
03:44:50 <lambdabot> 6
03:44:54 <Sgeo> yay
03:45:24 <kmc> Bike: you can write (f -> p) and it matches x iff pattern p matches (f x)
03:45:43 <Bike> sounds undecideable
03:45:48 <kmc> no
03:45:58 <kmc> you just apply f to the argument and match that
03:46:01 <Sgeo> Well, if f x doesn't terminate, I guess it is
03:46:13 <kmc> well i mean yeah
03:46:35 <Sgeo> > let loop x = loop x in (\(loop -> x) -> x + 1) 5
03:46:38 <kmc> i guess the ability to do arbitrary computation on the left side of the = is a bit remarkable
03:46:38 <lambdabot> mueval-core: Time limit exceeded
03:47:27 <kmc> but guards also do that
03:47:48 <Bike> functions for all
03:48:09 <Sgeo> It basically lessens the temptation to just expose constructors for the sake of ease of pattern matching
03:48:27 <Sgeo> This way, you can have an abstract data type, and have a function that turns it into something you can do pattern matching on
03:48:29 -!- Jafet has joined.
03:48:47 <Bike> that's exactly what the page i googled up said.
03:50:37 <Bike> one of their example views uses view patterns on itself in its definition, noice
03:52:42 <kmc> :D
03:53:07 <Bike> so is this in lambdabot because it's standard now or because caleskell is weird
03:53:31 <Bike> also what the hell is an "outjection"
03:54:10 <kmc> Bike: i'd say neither
03:54:19 <kmc> it's in lambdabot because it's a GHC extension that they decided to turn on
03:54:34 <kmc> "caleskell" refers less to language extensions and more to strange default imports that hide the standard ones
03:54:38 <Bike> kay
03:54:43 <kmc> it's not like lambdabot has any crazy language extensions above and beyond the ones GHC has
03:54:46 <kmc> ...to my knowledge
03:54:47 * Sgeo wants MultiWayIf
03:55:02 <Bike> isn't that guards
03:55:23 <Sgeo> It's less noisy than a case with guards
03:56:20 <Bike> also the example they have with an actual n+k pattern being made out of a view pattern is kind of... dull
03:56:59 <Bike> "fib (np 2 -> Just n) = fib (n + 1) + fib n" instead of "fib n = fib (n - 1) + fib (n - 2)" I guess?
03:59:51 <kmc> oh i came up with this: http://mainisusuallyafunction.blogspot.com/2010/09/view-patterns-for-validation.html
03:59:56 <kmc> not the first time i'm sure
04:01:17 <Bike> ooh hey, you mention failure
04:01:26 <Sgeo> "monthV (rangeV "monthV" 1 12 -> m) = months !! (m-1)"
04:01:32 <Sgeo> That duplicate monthV bothers me
04:02:18 <Bike> «This "range checking pattern" would be rigid syntax in most other languages. Here it's just something that emerges from the programming paradigm.» Do you like your comments
04:07:04 <kmc> :)
04:09:39 <Bike> reminds me that i haven't read kuhn. is that why "paradigm" came to be used in programming that way
04:09:51 <kmc> i don't know
04:10:14 <kmc> i generally think the idea of 'paradigm' in programming is suspect
04:10:25 <kmc> maybe this article predates my conversion to this view
04:10:39 <Bike> well you didn't write the paradigm thing
04:10:45 <kmc> oh
04:10:47 <kmc> well then
04:10:57 <Bike> as i said, a comment
04:11:35 <kmc> i guess paradigms are fine, but i'm annoyed when people are like "right, we're using paradigm X therefore everything must be done according to paradigm X and the language must be chosen primarily for its uncompromising support of paradigm X"
04:11:54 <Bike> ugh, wikipedia's doing that thing where it has a history of the thing instead of a history of the concept of the thing. how am i supposed to sate my etymological fetish this way
04:12:05 <kmc> to me the different 'paradigms' are techniques that are even more powerful when used together, when appropriate
04:12:20 <Bike> have you considered using a "multi-paradigm language"
04:12:23 <kmc> yes
04:12:24 <Bike> alt. multi-rhetoric language
04:12:29 <kmc> ;P
04:12:31 -!- nooga has quit (Ping timeout: 264 seconds).
04:12:42 <Bike> " There is still some controversy by notable programmers such as Alexander Stepanov, Richard Stallman[3] and others, concerning the efficacy of the OOP paradigm versus the procedural paradigm." why the hell did i even try looking this up?
04:13:08 <kmc> yeah
04:14:38 <Bike> well, kuhn definitely seems to be the one who put "paradigm" into its modern usage, and 1962 is early enough to get picked up by the OOP craze for sure
04:15:01 <kmc> ok
04:15:07 <Bike> this is important
04:15:27 <Bike> but uh anyway that paper is neat, thanks for showing me it whenever you did that
04:15:46 <kmc> which paper? THiH?
04:15:56 <Bike> yah
04:16:09 <kmc> David Baltimore also gets some credit for popularizing / ruining the word 'paradigm'
04:16:30 <Bike> a biologist?
04:16:36 <kmc> yeah
04:16:39 <kmc> and former president of Caltech
04:16:49 <Sgeo> THiH?
04:16:55 <Bike> Typing Haskell in Haskell
04:17:02 <Sgeo> Ah
04:17:35 <kmc> http://www.cripplingdepression.com/index/16 pictured here in panel 2
04:18:13 <Bike> the wild fast paced life of a caltech administrator
04:18:57 <kmc> yeah
04:19:14 <kmc> i forgot why he was deemed to be Moneybags Baltimore but the name stuck for at least the 4 years I was there
04:40:33 -!- glogbackup has joined.
05:52:12 <shachaf> Bike: vectored-return is something else.
05:52:14 <shachaf> I think?
05:52:36 <Bike> well yeah it's hyphenated
05:52:40 * shachaf isn't going to read the whole thing.
05:52:49 <Bike> the whole what
05:55:30 <shachaf> scrollbacklog
05:57:36 <Bike> imo it sucks
05:58:21 <Sgeo> help need to force food self
06:03:08 -!- impomatic has quit (Ping timeout: 260 seconds).
06:03:54 -!- madbr has quit (Quit: Radiateur).
06:35:32 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:36:03 -!- copumpkin has joined.
07:14:41 <FreeFull> Bike: Lol oop and prodecudral
07:15:19 <Bike> i prefer unstructured, freeform programming
07:15:37 <FreeFull> Bike: What language does that? Perl?
07:16:10 <Bike> you can structure just about anything
07:16:21 <pikhq> Perl is better described as antistructured programming.
07:16:56 <Bike> perl has first class functions man, functional as shit
07:17:56 <pikhq> Perl has TC regexes; I fail to see your point.
07:18:36 <Bike> See? It's basically a Post system. Very computer sciencey.
07:18:58 <Bike> Anyway. Haskell report calls \ a "backslant". I have never heard this before, what is happening.
07:22:30 -!- Bike has quit (Quit: Reconnecting).
07:22:47 -!- Bike has joined.
07:23:38 -!- FreeFull has quit (Quit: Cya).
07:53:51 -!- epicmonkey has joined.
07:59:47 -!- DHeadshot has joined.
08:10:20 -!- epicmonkey has quit (Ping timeout: 260 seconds).
08:10:51 -!- ais523 has quit.
08:15:44 -!- Bike has quit (Quit: sleep).
08:15:56 -!- impomatic has joined.
08:33:33 -!- DHeadshot has quit (Ping timeout: 258 seconds).
09:13:21 -!- epicmonkey has joined.
09:57:23 -!- monqy has joined.
10:33:55 -!- monqy has quit (Quit: hello).
10:44:46 -!- Phantom_Hoover has joined.
10:45:47 -!- copumpkin has quit (Ping timeout: 252 seconds).
10:46:18 -!- copumpkin has joined.
11:24:38 -!- oerjan has joined.
11:25:39 <mtve> shorter "hello world" in malbolge in 78 bytes by kenrube: (=<`#9]~6ZY32Vw/.R,+Op(L&%I#"Fg}Cdz@xw=*z]Kw%ot4Uqpihm,Owi)tfI$c"n`}}]/zZx;W:(
11:26:11 <oerjan> !malbolge (=<`#9]~6ZY32Vw/.R,+Op(L&%I#"Fg}Cdz@xw=*z]Kw%ot4Uqpihm,Owi)tfI$c"n`}}]/zZx;W:(
11:26:13 <EgoBot> Hello, world.
11:30:37 -!- monqy has joined.
11:31:48 <mtve> mmm, i guess shinh did it in 75 bytes (! insted on .) at http://golf.shinh.org/p.rb?hello+world
11:37:33 <mtve> i like kenrube's homepage btw (not really sure its his, but it was mentioned somewhere linked to him) - http://www.yyyyyyy.info/
11:39:12 <monqy> very good
11:40:13 <oerjan> @remember kmc Haskell is a language where the community observes that there are 50 incompatible error handling monads, and the response is 50 incompatible packages for generically handling all error handling monads
11:40:14 <lambdabot> I will never forget.
11:48:41 -!- Yonkie has quit (Ping timeout: 246 seconds).
11:48:55 <oerjan> @quote error handling
11:48:56 <lambdabot> No quotes for this person. There are some things that I just don't know.
11:49:01 <oerjan> @quote error.handling
11:49:01 <lambdabot> kmc says: Haskell is a language where the community observes that there are 50 incompatible error handling monads, and the response is 50 incompatible packages for generically handling all error
11:49:01 <lambdabot> handling monads
11:49:03 <oerjan> @quote error.handling
11:49:03 <lambdabot> kmc says: Haskell is a language where the community observes that there are 50 incompatible error handling monads, and the response is 50 incompatible packages for generically handling all error
11:49:03 <lambdabot> handling monads
11:52:54 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
12:01:46 -!- Phantom_Hoover has joined.
12:04:46 -!- nooga has joined.
12:07:09 -!- DHeadshot has joined.
12:07:52 -!- oerjan has quit (Quit: leaving).
12:09:05 -!- DHeadshot has quit (Client Quit).
12:13:37 -!- carado has joined.
12:22:55 -!- dessos has joined.
12:36:55 <Phantom_Hoover> Suggn. remove Brainfuck and its derivatives from the 'low-level' category.
12:38:06 <Phantom_Hoover> maybe i should say that on the wiki instead...
13:23:28 -!- boily has joined.
13:26:41 <Phantom_Hoover> http://esolangs.org/wiki/Kolmogorov
13:26:56 <Phantom_Hoover> is it just me or is this not based on a kolmogorov machine at all
13:29:08 <boily> `quit
13:29:12 -!- boily has quit (Quit: Poulet!).
13:29:12 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quit: not found
13:30:23 -!- Taneb has joined.
13:30:25 -!- boily has joined.
13:32:07 <Phantom_Hoover> `? HackEgo
13:32:09 <HackEgo> HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing.
13:33:14 <Taneb> haircut oh no
13:47:53 -!- Taneb has quit (Ping timeout: 255 seconds).
13:49:59 -!- Taneb has joined.
14:09:13 <elliott> Phantom_Hoover: bf is low-level...
14:11:21 -!- metasepia has joined.
14:12:05 <boily> Taneb: glad to see you revived since yesterday.
14:12:58 <elliott> mtve: wow, you spoke
14:13:12 <elliott> I was starting to believe fizzie killed you and hid the body and was just running an IRC client to hide the truth
14:15:15 <Taneb> boily, the haircut helped
14:24:02 <Sgeo> help suddenly I have an idea of why recruiters are the devil
14:24:15 <Sgeo> I feel very pressured into making a hasty decision if I get an offer
14:24:43 <boily> recruiters aren't there to land you the best job. their goal is to land you *a* job.
14:25:23 <Phantom_Hoover> elliott, how's it low-level
14:26:07 <Phantom_Hoover> and what constitutes high-level
14:26:17 <elliott> i already replied on the wiki
14:32:45 <Phantom_Hoover> hmm
14:32:53 <Phantom_Hoover> would e.g. lazy k count as low-level then
14:34:31 -!- Arc_Koen has joined.
14:39:29 <elliott> Phantom_Hoover: replied again
14:39:32 <elliott> and uhhhh not sure
14:39:39 <elliott> like I said it's hard enough for imperative languages
14:39:49 <elliott> i guess SKI is definitely low-level
14:40:02 <elliott> not sure about lambda calculus, it has a means of /abstraction/ (indeed it's all it has), which distinguishes it from e.g. BF
14:40:36 <elliott> well I guess you can abstract in SKI too, but it's basically as painful as not abstracting, so...
14:46:12 <tromp__> you can abstract at compile time in combinatory logic
14:47:35 -!- monqy has quit (Quit: hello).
14:54:35 -!- carado_ has joined.
14:54:40 -!- Taneb has quit (Ping timeout: 260 seconds).
14:59:44 -!- carado_ has quit (Ping timeout: 256 seconds).
15:03:52 -!- Taneb has joined.
15:18:12 -!- Taneb has quit (Ping timeout: 264 seconds).
15:23:17 -!- nooodl has joined.
15:23:33 -!- carado has quit (Quit: Leaving).
15:24:06 -!- carado_ has joined.
15:24:38 -!- monqy has joined.
15:35:56 -!- augur has quit (Remote host closed the connection).
15:38:23 -!- augur has joined.
15:38:41 -!- augur has quit (Read error: Connection reset by peer).
15:39:05 -!- augur has joined.
15:43:32 -!- augur has quit (Ping timeout: 255 seconds).
15:56:07 <Sgeo> job offer
15:58:43 <coppro> yay
16:00:23 <c00kiemon5ter> :D
16:00:45 * boily cheers ♪
16:02:48 <Sgeo> I just don't want to be stuck in a Java career for the rest of my life.
16:05:43 -!- augur has joined.
16:38:45 -!- carado_ has quit (Quit: Leaving).
16:39:20 -!- carado has joined.
16:40:13 -!- monqy has quit (Quit: hello).
16:47:42 -!- Bike has joined.
16:58:46 -!- epicmonkey has quit (Ping timeout: 258 seconds).
17:23:16 <boily> Sgeo: don't worry. even if you begin by being a not-java developer, it will find a way to infect you, to creep on you, to assimilate you.
17:25:01 <coppro> Sgeo: this is just an internship right?
17:25:11 <Sgeo> coppro, no
17:25:54 <coppro> no
17:25:57 <coppro> *oh
17:26:02 <coppro> well then, uh, don't be?
17:28:40 -!- Bike has quit (Ping timeout: 260 seconds).
17:31:10 <boily> imnsho, java development only sucks when you're stuck with a large, fat, enterprisey project. but then, I believe everything that uses the ‘enterprise’ buzzword sucks.
17:31:36 <coppro> ^
17:31:54 <Gregor> boily: Java is only vaguely useful in large, fat, enterprisey projects.
17:33:00 -!- Bike has joined.
17:33:29 <Sgeo> coppro, I think I can survive dealing with Java for some time, but I don't want 'some time' to be 'the rest of my life'
17:34:00 <Bike> don't worry, they'll be a new stereotypical enterprise language soon enough.
17:34:06 <Sgeo> And if the only actual 'job' I can list on my resume in the future is Java...
17:34:17 <Sgeo> Even if I've done all these personal projects etc.
17:34:24 <olsner> Bike: the only problem then (for Sgeo) will be that he only knows Java
17:35:08 <olsner> fsvo "only"
17:35:34 <boily> learn everything you can get your hand on. casually mention that you have an interest into uncommon technologies (fsvo uncommon). shotgun new projects, talk and exchange with your colleagues. get known for your initiative.
17:35:42 <coppro> ^
17:36:01 <coppro> Sgeo: The language is less important than the skills
17:36:11 <coppro> Emphasize the transferable skills on your resume
17:36:52 <coppro> The best tech firms know that a skilled programmer can learn $LANG on the job, and that having programmed in $LANG does not mean you are a skilled programmer
17:37:19 <coppro> I'd much rather hire (for a Python job) an intelligent guy who's never used Python than a moron who has
17:43:19 <elliott> the downside there is that you're in a python job.
17:47:08 <Bike> the right level of elitism for the job
17:49:22 -!- FreeFull has joined.
17:49:27 <coppro> Sgeo: tl;dr don't worry, just don't mention Java too much on your resume
17:49:36 <coppro> the point is not that you are developing in Java. The point is that you are developing
17:57:36 <elliott> i think a better worry than the idea that you might be shoehorned into a java career long-term
17:57:41 <elliott> is the fact that you will be writing in java every day.
17:58:56 -!- AnotherTest has joined.
17:59:00 <boily> no human has enough finger length to support a whole-life java career. you'd have to have extra knuckles grafter to your fingertips to cope with the amount of typing.
17:59:06 <boily> s/grafter/grafted/
17:59:14 -!- Mathnerd314_ has changed nick to Mathnerd314.
18:00:28 -!- augur has quit (Read error: Connection reset by peer).
18:00:48 -!- augur has joined.
18:01:34 <Sgeo> elliott, there may be some Javascript. Hopefully more as time goes on.
18:02:01 <coppro> I'd rather JAva than JS
18:02:29 <kmc> i disagree
18:02:36 <boily> I kmcagree.
18:02:38 <kmc> i'm writing a lot of JavaScript lately and finding it fairly pleasant
18:02:50 <elliott> Sgeo: yeah uh the fact that you'll get anonymous functions doesn't really make this sound like a dream job to me yet
18:03:02 <kmc> it has its warts but it's a pretty simple + flexible language
18:03:11 <elliott> also are you sure they don't just not understand the difference between Java and JavaScript :P
18:03:12 <kmc> and the community is not afraid of a little FP the way the Python community is
18:03:23 <kmc> because in JavaScript lambda is practically the only abstraction you get
18:03:26 <Sgeo> elliott, I'm sure.
18:03:28 <kmc> so they use it to build objects, modules, etc
18:03:33 <kmc> in a way that warms the heart of any Lisp weenie
18:03:42 <kmc> or maybe Scheme weenie i should say
18:03:53 <kmc> anyway it's a funny real-world demonstration of the Lambda the Ultimate principle
18:04:25 <Bike> that's a principle?
18:04:33 <elliott> Sgeo: are you sure they're sure
18:04:45 <elliott> kmc: i'd say that's a fairly inaccurate view of javascript's oop
18:04:46 <kmc> mainly i just can't get worked up about the difference between JavaScript / Python / Ruby / whatever
18:04:53 <kmc> it's all pretty minor once you know Haskell and C++
18:05:01 <kmc> elliott: yeah i'm glossing over
18:05:18 <elliott> javascript's oop can't decide whether it wants to be prototype-based or not
18:05:26 -!- monqy has joined.
18:05:33 <Bike> you have transcended the arguments and attained lingual nirvana, free of worldly desires
18:07:03 <Sgeo> They know the difference between Javascript and Java.
18:07:14 <Sgeo> Incidentally, is Angular.JS fairly well liked?
18:07:51 <Bike> "AngularJS is what HTML would have been, had it been designed for building web-apps"
18:08:02 <kmc> i think a lot of JS-bashing comes down to looking down one's nose at Web programmers as "not real programmers" and misunderstanding what the Web is
18:08:26 <kmc> which is, by far the easiest way to write an application and distribute it to a lot of people very quickly
18:08:50 <kmc> i too am guilty of this viewpoint in the past
18:08:58 -!- DHeadshot has joined.
18:09:56 <coppro> I bash JS because it's a shitty language
18:10:03 <Sgeo> I think this contract would make actually be with the recruitment firm
18:10:04 <coppro> not because web programming isn't real programming
18:10:17 <monqy> ????? :)
18:10:19 <nortti> I bash JS becaus I think it is badly designed language
18:10:22 <coppro> you can't program JS without strapping a ridiculous framework on top of it
18:10:26 <coppro> like jquery
18:10:34 <monqy> are we talking JS? heheheheheheheehehehhehehe lets not
18:11:03 <Bike> unrelated notice: please stop referring to "May you live in interesting times" as an "ancient Chinese curse". thanks in advance
18:11:03 * boily prods monqy's hehehe-box to unstick it.
18:11:12 <monqy> thoily
18:11:14 <Bike> just talk about men making tigers instead
18:11:19 <Fiora> Bike: now I'm thinking of the inspirational japanese tumblr
18:11:50 <kmc> wow programming in JS requires the use of libraries? what a shit language!
18:12:10 <Bike> Fiora: http://en.wikipedia.org/wiki/May_you_live_in_interesting_times it's like, all the examples are English language and it was first attested by an English ambassador what a weird coincidence huh
18:12:21 <Sgeo> kmc, PHP is totally the best language ever!
18:12:31 <Bike> snerk
18:12:33 <kmc> ancient chinese secret, eh?
18:12:36 <elliott> ancient english curse
18:12:38 <Sgeo> No need to import stuff much of the time
18:12:45 <kmc> Florida Man Arrested For Punching Firefighter In The Groin
18:13:03 <kmc> Sgeo: yeah it's super convenient
18:13:14 <Bike> my favorite php libary thing is probably the thermidorian date functions
18:13:23 <elliott> monqy: we were talking Sgeo's upcoming java job that's going to be lots of fun for him before
18:13:44 <Sgeo> Although I must admit it's convenient in languages like Python to not need _third-party_ libraries.
18:13:49 <Sgeo> Much of the time
18:13:50 <Bike> like just in case you want to use a dead 19th century date format
18:14:00 <monqy> elliott: does sgeo fully comprehend what he's getting himself into
18:14:14 <Bike> does anybody fully comprehend anything, when you get down to it
18:14:16 <Fiora> Bike: and it's, like, 20th century
18:14:35 <Bike> Fiora: ancient 20th century curse
18:14:53 <Fiora> still, I think inspirationaljapanese wins the mocking contest
18:14:59 -!- epicmonkey has joined.
18:15:12 <elliott> i would love to be the guy who gets to make up some shit as an ancient chinese curse
18:15:21 <elliott> i wonder what the other ones were before they decided on "may you live in interesting timse"
18:15:22 <boily> Bike: it's said that the last guy who understood anything there was to be known was Poincaré.
18:15:33 <elliott> what regions of curseology were traversed
18:15:34 <Sgeo> Uh.
18:15:38 <Sgeo> Recruiters are the devil.
18:15:44 <Bike> and poincaré was kind of a dick. it all works out
18:15:56 <Sgeo> Apparently, I'm not entitled to employee benefits that the company provides.
18:15:56 <Bike> Fiora: my new tattoo means "world peace" *throws a cabbage at you*
18:16:10 <monqy> Sgeo: didn't kmc tell you to avoid them
18:16:17 <elliott> wow its almost as if kmc told sgeo to avoid recruiters 20 times
18:16:20 <elliott> good timing
18:16:29 <boily> ok. who here first stumbled upon that inspirational japanese thing. I have this sudden urge to whack them.
18:16:37 <kmc> Sgeo: Python's stdlib is kinda shit for a lot of things though
18:16:41 <kmc> like, urllib2 doesn't check SSL certs
18:16:43 <kmc> and has a terrible API
18:16:49 <Bike> boily: nope sorry it's awesome
18:16:59 <Fiora> Sgeo: wait, this is like, a full time job, not an internship, and they're not giving you benefits? @_@
18:16:59 <kmc> you have to use requests or curl if you don't hate yourself
18:17:20 <boily> Bike: it's disturbing my qi! it unaligns my chakras! it's full of glaring and blaring and ugly colours!
18:17:20 <Fiora> boily: no smacking that tumblr is amazing
18:17:20 <Sgeo> Fiora, it's a contract job with possibility of full-time job with the company itself at the end
18:17:31 <Fiora> ... that... seems... fishy
18:17:48 <Fiora> boily: http://inspirationaljapanese.tumblr.com/post/40826225940/ this is one of my favorites
18:17:52 <elliott> boily: rip your qi chakras
18:18:00 <elliott> chakren?
18:18:04 <elliott> like kraken
18:18:06 <elliott> (is kraken plural)
18:18:07 <elliott> kraka
18:18:10 <Fiora> actual translation: SHINJI, PILOT THE EVA
18:18:46 <Bike> #japan #japanese #quote #inspirational #motivational #kawaii #sugoi #uguu
18:19:25 <boily> Fiora: bwah ah ah ah ah! ok. that site is awesome.
18:19:35 <pikhq> 'Tis.
18:19:44 <Fiora> I love it because like, it doesn't do that dumb thing where you put offensive phrases in japanese and mistranslate them
18:19:48 <Fiora> but rather just, /funny/ things
18:20:06 <Sgeo> Hmm, this is interesting
18:20:27 <pikhq> It's really great if you understand Japanese.
18:20:30 <Bike> "apparently my recruiter needs to know if i'm a virgin, for some party"
18:20:58 <boily> tell him that you're a gemini, and that it's against your religion.
18:21:00 <pikhq> "Shall we do the Harlem Shake today?" and "live every moment and love every day" Haaaah
18:21:16 <Sgeo> It occurs to me that I don't know if it's a good idea to talk about this stuff in publically logged channel
18:21:31 <Bike> recruiters are known to trawl the #esoteric logs for candidates
18:21:43 <olsner> Sgeo: maybe you should figure out?
18:22:21 <boily> Sgeo: say, if you ever come to Montréal one day, could you wear an orange vest with ‘Hi there, I'm Sgeo’ written in large friendly letters on it?
18:22:33 <boily> (so that I can covertly recruit you)
18:22:42 <elliott> didnt you decide it was a bad idea to talk aout this stuff in a publicly logged channel like two years ago
18:23:28 <Bike> that decision was publically logged, so he had to discard it
18:24:21 <Sgeo> According to this, since I haven't yet been employed by the recruitment firm, I can freely talk about what I know about the company
18:24:24 <Sgeo> I thin
18:24:26 <Sgeo> I think
18:24:34 <Fiora> wait, they don't /let you talk about the company/? @_@
18:25:09 <Sgeo> They don't let me talk about confidential information I learn after my employment with the recruitment firm
18:25:34 <Fiora> ... what exactly classifies as confidential information...? and um. why is the recruitment firm doing the employing o_O
18:26:02 <Sgeo> I don't know yet what classifies as confidential information
18:26:04 <elliott> sgeos recruiter is recruiting him for the recruiting form
18:26:21 <Bike> what constitutes classified information is classified
18:26:51 <Fiora> this seems really weird
18:27:05 <Sgeo> Fiora, the recruitment firm wants to make money off of my employment
18:27:35 <Fiora> umm... but I thought they get paid by the company when the company hires you?
18:27:43 <elliott> i assign kmc to this job
18:28:33 <Sgeo> The contract with the firm says the company isn't allowed to hire me without recruitment firm's written consent, but that after 6 months, they can be required to give said consent
18:28:58 <Bike> This sounds really dumb for a lot of reasons. Is it really dumb?
18:29:11 <Fiora> o_O I guess I don't really know enough to be sure but that sounds incredibly fishy
18:29:23 <elliott> is sgeo getting scammed
18:29:32 <elliott> maybe the company doesn't exist
18:29:51 <Sgeo> The company is the ISP that I use.
18:30:03 <Sgeo> I think I'm online and not hallucinating right now.
18:30:17 <olsner> sure, that's what they want you to think
18:30:23 <boily> we are Friday.
18:30:42 <Bike> elliott is the new number two
18:30:55 <elliott> ah, so Optimum Online have lots of secrets they don't want us knowing about.
18:31:12 <elliott> you can't hide from us, CSC Holdings, LLC.
18:31:30 <Sgeo> I think this is just standard boilerplate stuff
18:31:38 <Sgeo> At least, standard for this recruitment firm
18:31:48 <Sgeo> Why would there NOT be a provision covering confidential information?
18:32:06 <Bike> i don't trust this boiler. i think this boiler is going to explode and kill somebody who is possibly you, and then a three hundred year old witch will arise from the ashes, cursing her colonialist murderers.
18:32:07 <Fiora> um, I think that provision is usually in your employment contract
18:32:13 -!- AnotherTest1 has joined.
18:32:14 <Fiora> the thing that you sign when you actually get a real job
18:32:21 <Sgeo> Fiora, this _is_ my employment contract
18:32:32 <Sgeo> I would be employed with the recruitment firm.
18:32:33 <Bike> elliott: http://img.optimum.net/images/feedmill/custImage/121003/1349293765966-537x261.JPG they definitely seem suspicious
18:32:54 <Fiora> you want to work for a recruitment firm? but I thought it was an ISP... I'm confused...
18:32:56 <coppro> why would you be employed by the recruiting firm?
18:32:59 <elliott> btw this sounds shady as all heck lmao
18:33:05 <Bike> why would a dog have an mp3 player? he doesn't even have any pockets, where would he put it? it just doesn't add up.
18:33:06 <elliott> how has this not been ringing alarm bells for you
18:33:15 -!- AnotherTest has quit (Read error: Connection reset by peer).
18:33:18 <elliott> Bike: thats probably a telephone. makes perfect sense
18:33:26 <Sgeo> The people at the company seemed to recognize the firm
18:33:38 <Fiora> I've heard of things like this before, don't they usually do this to hire innocent victims as contractors so they can pay them half as much, and then toss them after 6 months?
18:34:07 <Bike> elliott: who uses headphones with a telephone??
18:34:15 <Bike> also who calls a cell a "telephone"
18:34:18 <Bike> are you an Optimum agent
18:34:26 <elliott> u figured me out
18:34:29 <elliott> i actually call them mobiles
18:34:38 <elliott> which is a much better name than cellphone or phone or whtaever
18:34:44 <elliott> since they're not really primarily phones any more
18:34:45 <fizzie> You're talking about witch-talk-boxes?
18:35:33 <Bike> miniaturized ENIACs
18:36:50 <fizzie> The colloquial Finnish term for them derives from the word for "hand", presumably because that's what you use to hold them.
18:37:57 <fizzie> Or at least the colloquial Finnish term that I know, I'm sure them youngsters have completely different words nowadays. (I sound like an old fart.)
18:38:35 <nortti> fizzie: you mean "kännykkä"?
18:38:44 <fizzie> nortti: Yes.
18:38:58 <fizzie> Well, or "känny".
18:38:59 <nortti> is that derived from "käsi"?
18:39:14 <fizzie> nortti: That's what http://fi.wiktionary.org/wiki/k%C3%A4nnykk%C3%A4 claims, and it's also what I thought.
18:39:37 <fizzie> Well, from käsi or kämmen, but it's all handy anyway.
18:39:55 <nortti> heh. trademarked by nokia
18:40:02 -!- zzo38 has joined.
18:40:51 <fizzie> I guess Germans have "Handy"? So it's not so unique.
18:41:02 <DHeadshot> Bike: hands free 'phones need headphones...
18:41:39 <fizzie> 'phones for your 'phones.
18:41:50 <fizzie> Phonemes in your phones.
18:42:24 <elliott> always tying it to speech recognition, fizzie
18:43:06 <Sgeo> I should write down somewhere the things that are concerning me
18:43:10 <fizzie> That's just "speech" in general.
18:43:22 <Bike> hm that makes me wonder if it's harder to talk on the phone if you use a language with way different phonemes from whatever phone compression is optimized for
18:43:52 <Fiora> http://en.wikipedia.org/wiki/Code-excited_linear_prediction I think this is the general category of what they use?
18:44:03 <fizzie> Bike: I'm not sure how "way different" (natural) languages go, really. The equipment is, after all, pretty much the same.
18:44:22 -!- DHeadshot has quit (Quit: Bye).
18:44:26 <Fiora> "The original algorithm as simulated in 1983 by Schroeder and Atal required 150 seconds to encode 1 second of speech when run on a Cray-1 supercomputer." XD
18:44:55 <Bike> fizzie: well there's ejective constants off the top of my head. i think the human phonemic inventory is at least twice as big as english's maybe?
18:45:58 <zzo38> How long does it take for the PC speaker to move fully? I read 60ms somewhere, and 1/60000000s elsewhere, but neither seems correct to me?
18:47:05 <Bike> let's see, english uses about 35 i guess, but this language !Xū uses 141
18:47:06 <fizzie> Bike: Sure, but it's not like it'd be all *that* closely optimized for a particular phoneme set.
18:47:26 <Bike> i guess that's what i'm wondering.
18:48:03 <boily> Bike: raw phoneme counts tend to be higher than what is logically understood between speakers of a language. you need to group allophones together.
18:48:29 <FreeFull> zzo38: Are you trying to rediscover 6-bit audio through PC speaker?
18:48:35 <fizzie> IPA has "107 letters, 52 diacritics, and four prosodic marks", and I understand it covers things pretty well; and anyway the differences are going to be quite small the more exact you get.
18:48:57 <Sgeo> I see absolutely nothing in the employment contract about the raises that I have been promised.
18:48:59 <Sgeo> I am alarmed.
18:49:07 <boily> also, some sounds tend to be really close by, and the human brain infers what they should be from context. that's how ventriloquists speak, by approximating sounds and letting the ears do the rest.
18:49:18 <Bike> how ver. strange
18:50:07 <coppro> Sgeo: No, I mean why would you be employed by the recruiting company as opposed to the company you'll be working for
18:50:10 <coppro> that's weird
18:50:21 <Fiora> coppro: I did some googling and it sounds like it works like this
18:50:25 <Fiora> recruiting companies are hired to search for contractors
18:50:34 <Fiora> the contractors sign up for the job and sign contracts with the recruiting company
18:50:47 <Fiora> the recruiting company charges the main company, takes a gigantic cut of the pay, and gives some to the contractor
18:50:53 <Bike> recruiting companies sacrifice virgin BSs to the underworld, and bind demons to contracts with their client corporations
18:51:07 <zzo38> FreeFull: PC speaker is only 1-bit audio; I am trying to figure out how to accurately make an emulation of it.
18:51:11 <boily> what's a bs?
18:51:16 <Bike> bachelor of science
18:51:17 <Sgeo> Bachelor's
18:51:30 <boily> banks, sganks.
18:52:06 <FreeFull> zzo38: Clearly you haven't seen what people have done with it
18:52:08 <fizzie> The LP model (which CELP still is based on) is arguably designed more based on the speech hardware than the speech wetware, anyway. (Though I suppose the "hardware" in this case is pretty wet too.)
18:52:23 <Bike> Like ocal cords?
18:52:25 <Bike> vocal
18:52:26 <fizzie> FreeFull: "What people have done with it" is, I think, the reason for the "accurate emulation".
18:52:28 <FreeFull> zzo38: Either way, you could look at the way dosbox emulates it
18:53:04 <FreeFull> fizzie: The hardware is only 1-bit, but you can push out 6-bit sound with cleverness
18:53:08 <FreeFull> Which was my point
18:53:33 <zzo38> Does DOSBox do consider all of that stuff? Also, would some filters be needed?
18:53:43 <Fiora> http://en.wikipedia.org/wiki/Direct_Stream_Digital oh this was that 1-bit audio compssion method
18:54:10 <fizzie> FreeFull: Yes, and my point is that that is the reason why "accurate emulation" is necessary.
18:54:11 <pikhq> Well, it's 1,193.18 kHz 1-bit. If you're fucking clever you could actually dither that up such that the quantization noise is 20+ kHz.
18:54:27 <pikhq> And then you've got utterly reasonable audio.
18:54:48 <pikhq> I imagine what people actually *did* was somewhat simpler, just because of computational resources, though.
18:54:49 <FreeFull> zzo38: Dosbox does emulate it pretty accurately
18:55:10 <FreeFull> Does Adlib pretty well too
18:55:39 <FreeFull> I actually haven't seen any more-accurate Adlib emulation than in Dosbox
18:55:42 <zzo38> I find on the real PC speaker, some high tones play a bit differently than others?
18:55:59 <zzo38> FreeFull: Is that OPL3?
18:56:51 <pikhq> But yeah, I at least *think* what you're looking at is resampling 1-bit 1.19318 MHz audio to 16-bit 44.1 kHz.
18:57:03 <FreeFull> Adlib is OPL2
18:57:18 <FreeFull> Dosbox does emulate OPL3 too though
18:57:24 <zzo38> O, it is OPL2. Well, DOSBox also emulates OPL3; but does that work as good?
18:57:24 <pikhq> (given how the PC speaker works I'm pretty sure it's PCM like that)
18:57:39 <FreeFull> zzo38: yes
18:57:46 -!- DHeadshot has joined.
18:58:19 <pikhq> Crazy high noise floor of course, but what can you do?
18:58:43 <zzo38> I once found a OPL2 and OPL3 instrument maker program, it didn't work natively but it works on DOSBox.
19:00:01 <FreeFull> fasttracker II had a pc-speaker output
19:00:23 <fizzie> There's a well-known PC speaker soundcard driver for Windows 3.x.
19:00:44 <FreeFull> Although I think pretty much anyone would have been able to make a speech thing clone, and have fasttracker output through that instead
19:00:55 <FreeFull> Which would give significantly better quality than any pc speaker
19:02:30 <zzo38> VGM format supports OPL2 and OPL3, and even OPL4, and can even have two of each, but there is currently no support for PC speaker.
19:02:34 <fizzie> I think there's an ALSA driver too?
19:05:21 <zzo38> This OPL2 instrument maker can be used to test instrument sounds for OPL2 and OPL3 (it does support the waveforms of OPL3, but not 4-operator channels). I have already written a program to test instrument sound of OPLL. (Both programs require emulators, but a different emulator)
19:07:02 -!- AnotherTest1 has quit (Quit: Leaving.).
19:07:18 -!- AnotherTest has joined.
19:07:20 <fizzie> Speaking of PC speakers, it seems that these days it's not uncommon to have a (crummy, but still a) speaker wired to the onboard audio chipset so that it can make real sounds without any cleverness. That's the case with both of my workstations at work.
19:09:44 <zzo38> I have a PC speaker in this computer too. However emulation should still be required since some are not implemented perfectly and you might want to run the program on a computer which is not a PC, too.
19:12:39 <zzo38> The different tone of the high notes might have to do with the time to move the speaker, or of the duty cycle (which is as close to 50% as possible, but not always exactly)?
19:15:33 -!- DHeadshot has quit (Ping timeout: 245 seconds).
19:17:13 <zzo38> This is different to many sound chips that make square waves, which will use the period for half of the wave cycle instead of the full wave cycle (or, if you can adjust the duty cycle, usually whatever the smallest duty is).
19:30:53 <Sgeo> On the plus side: I can leave without penalty as long as I give 5 days notice, and there's no non-compete if I leave
19:31:49 <elliott> downside is you'll be leaving the recruiting firm rather than an employer because you're being scammed or something??
19:33:02 <Sgeo> I kind of burned a bridge with the internship possibility :(
19:33:03 <Bike> downside to a plus side? this is hard.
19:33:19 <Sgeo> (Said that I'm no longer looking for an internship)
19:33:44 -!- AnotherTest has quit (Ping timeout: 260 seconds).
19:34:01 -!- AnotherTest1 has joined.
19:40:05 -!- AnotherTest1 has quit (Ping timeout: 252 seconds).
19:44:07 -!- carado has quit (Quit: Leaving).
19:44:24 -!- AnotherTest has joined.
19:44:39 -!- carado has joined.
19:44:48 <AnotherTest> nice, ipv6
19:45:06 <AnotherTest> Why doesn't my ISP do that
19:47:11 <boily> the day we'll all be on ipv6 is the day ipv8 will be out.
19:49:29 <Phantom_Hoover> what happened to ipv5
19:49:41 <Bike> i think that's a dead experiment for streaming
19:50:45 <olsner> (Version 5 was used by the experimental Internet Stream Protocol.)
19:51:40 <Sgeo> :t 'a' :: a
19:51:42 <lambdabot> Couldn't match type `a1' with `Char'
19:51:42 <lambdabot> `a1' is a rigid type variable bound by
19:51:42 <lambdabot> an expression type signature: a1 at <interactive>:1:1
19:52:48 <monqy> ???
19:56:16 -!- AnotherTest has quit (Quit: Leaving.).
19:59:40 -!- oerjan has joined.
20:00:27 <boily> hellørjan.
20:00:35 <oerjan> helloily
20:01:07 -!- augur has quit (Remote host closed the connection).
20:01:42 <oerjan> <elliott> I was starting to believe fizzie killed you and hid the body and was just running an IRC client to hide the truth <-- i take it this was the obvious explanation.
20:03:19 <olsner> finland, etc
20:06:03 <oerjan> <Bike> don't worry, they'll be a new stereotypical enterprise language soon enough. <-- it will be based on haskell, but watered down to be codeable by enterprise drones, in a way that completely ruins the advantages of the language. </prophetic>
20:06:51 <Bike> like how java is "just" "a" watered down "small" "talk"
20:07:09 <olsner> oerjan: are you thinking about F#?
20:07:16 <Sgeo> Is Scala watered down?
20:07:28 <boily> what happens if you water down water?
20:07:36 <oerjan> no, scala is watered up
20:07:38 <olsner> scala might be watered up java
20:07:40 <Bike> Homeopathy.
20:07:54 <boily> oh yeah. I forgot.
20:07:54 <olsner> watering up sounds like it means exactly the same as watering down
20:08:09 <Bike> inflammable
20:08:40 <oerjan> olsner: well F# is based on ocaml... but is it watered down enough to be coded by drones?
20:08:59 <oerjan> ->
20:09:26 <boily> ~duck ->
20:09:26 <metasepia> <pre><code>Usage: &#x28;-&gt; x&#x29;
20:09:27 <metasepia> &#x28;-&gt; x form&#x29;
20:09:27 <metasepia> &#x28;-&gt; x form &amp; more&#x29;
20:09:27 <metasepia> </code></pre> Threads the expr through the forms. Inserts x as the
20:09:27 <metasepia> second item in the first form, making a list of it if it is not a
20:09:27 <metasepia> list already. If there are more forms, inserts the first form as the
20:09:27 <metasepia> second item in second form, etc.
20:09:48 <boily> ...
20:10:00 <Bike> wow what
20:10:13 <Bike> the hell does duck do anyway
20:10:15 <boily> it sounds fungotty.
20:10:15 <fungot> boily: and no web browser or file manager stinks, and the extended s42 networking support)
20:10:16 <Bike> ~duck ~duck
20:10:17 <metasepia> --- No relevant information
20:10:25 <Bike> wiseguy, eh
20:10:25 <boily> ~duck duck duck go
20:10:25 <metasepia> Duck Duck Go is a search engine based in Valley Forge, Pennsylvania that uses information from crowd-sourced sites (like Wikipedia) with the aim of augmenting traditional results and improving relevance.
20:10:46 <Phantom_Hoover> ~duck ~duck ~goose
20:10:46 <metasepia> --- No relevant information
20:10:48 <Bike> o
20:11:03 <boily> ~duck llama llama duck
20:11:04 <metasepia> --- No relevant information
20:11:10 <olsner> oerjan: not sure about that, probably just watered down enough to be useless for non-drones
20:12:22 <boily> for your late friday enjoyment: http://youtu.be/HbPDKHXWlLQ
20:13:05 <olsner> fungot?
20:13:06 <fungot> olsner: of course the command processor's initialization logic. it's pretty easy to do
20:13:15 <elliott> 20:06:03 <oerjan> <Bike> don't worry, they'll be a new stereotypical enterprise language soon enough. <-- it will be based on haskell, but watered down to be codeable by enterprise drones, in a way that completely ruins the advantages of the language. </prophetic>
20:13:16 <zzo38> I like some things about LLVM but I also think some parts of it are badly designed and many things it doesn't do, the way to fix it seems making an entirely new one, which does not have this problem.
20:13:21 <elliott> oerjan: i believe you will find this exists and is called "scala".
20:13:26 <elliott> except it's even more complex somehow.
20:14:08 <zzo38> I was thinking of Curry-Howard with logic having numbers, and I have some idea of it.
20:14:28 <zzo38> It could be, the equality now means a type of a bijective function between finite types.
20:14:50 <zzo38> Is that it?
20:17:10 <olsner> boily: the sound quality of that clip is amazing
20:18:18 <Bike> you know i didn't mean "stereotypical" to imply that you should stereotype it
20:19:10 <elliott> monotyping is just too restrictive, Bike
20:19:21 <boily> olsner: I think it is part of the experience. maybe.
20:19:45 <olsner> boily: if I could choose, I might choose not to experience that part
20:20:06 <Bike> please tell me "stereo" isn't actually used in type theory, i have enough trouble with the colloquial vs the psychological
20:20:26 <elliott> Bike: well there's monotypes and polytypes
20:20:33 <elliott> would be cute to refer to the latter as stereotypes
20:20:46 <Bike> stereo is two though
20:20:49 <zzo38> elliott: But what if they are more than that?
20:21:56 <elliott> well you could mean stereo to be a rank-1 type or something!!!
20:22:33 <zzo38> OK, perhaps it can?
20:26:28 -!- nooodl_ has joined.
20:30:06 -!- nooodl has quit (Ping timeout: 264 seconds).
20:32:38 -!- epicmonkey has quit (Ping timeout: 245 seconds).
20:33:12 -!- Nisstyre has quit (Quit: Leaving).
20:33:38 <zzo38> Is how I described, how Curry-Howard would work with logic having numbers?
20:36:13 <oerjan> <elliott> except it's even more complex somehow. <-- aka "it doesn't fit my prophecy at all"
20:36:39 <Bike> the monomorphism restriction seems... weid
20:36:43 <zzo38> I have now finished writing the recording for the Dungeons&Dragons that I played on Monday.
20:36:48 <elliott> oerjan: :'(
20:37:31 <boily> zzo38: you do recordings too? I thought I was quite alone doing that.
20:37:53 <zzo38> boily: I didn't know you do it. Well, now you know!
20:38:24 <zzo38> http://zzo38computer.org/dnd/recording/level20.tex
20:38:40 <boily> in tex too? same here.
20:38:42 <oerjan> <Bike> stereo is two though <-- the non-sound-related meanings of stereo- have nothing to do with "two". its greek meaning is supposedly "solid".
20:38:57 <Bike> nooooo that sounds way too usable in types
20:39:02 <Bike> don't give people ideas!
20:39:09 <zzo38> boily: O, I didn't know that either! Now I do know. But, what macros have you used with it? (I used a macro file I wrote myself for this purpose.)
20:39:30 <olsner> hmm, how did "solid" come to mean two-channel audio?
20:39:35 <oerjan> ok the picture-related ones also indicate "two"
20:39:41 <boily> zzo38: plain old latex. just a moment, let me find where I stashed them...
20:40:32 <oerjan> olsner: it vaguely means "three-dimensional".
20:40:55 <zzo38> boily: OK. Yes, that is what a lot of people use, and you can use it if you want, but I find the other one better.
20:42:05 <zzo38> oerjan: But neither stereo sound or stereo video are three-dimensional (although stereo video is used to simulate 3D).
20:42:26 <oerjan> zzo38: they make the _illusion_ of three-dimensionality
20:42:44 <zzo38> oerjan: Yes, I suppose they do that.
20:43:03 <pikhq> Though ambisonics could actually be said to be three dimensional in some form.
20:43:19 <zzo38> Yes, ambisonics could be three dimensional.
20:43:31 <zzo38> (If you are using three-dimensional ambisonics.)
20:43:32 <pikhq> (surround sound scheme where you basically specify spherical harmonic parameters)
20:44:12 <oerjan> i think each of those get related to "two" because the fact that we have two eyes and two ears means two channels is enough to make the illusion half convincing.
20:44:18 <boily> zzo38: darn. don't have them with me, only on my home comp.
20:44:36 <oerjan> if we had three ears, stereophonic sound would require three speaker >:)
20:44:42 <oerjan> *speakers
20:44:48 <boily> @tell boily good monday morning! this is myself from last friday. I forgot to forward the logs to zzo38.
20:44:49 <lambdabot> You can tell yourself!
20:44:55 <zzo38> I think ambisonics is something like YUV but with audio?
20:45:25 <zzo38> boily: OK, then you can get when you want to, later, if you want to. To compile my file, you will need the file dungeonsrecording.tex which is in the same directory.
20:46:13 <zzo38> oerjan: Well, perhaps if it was, that is what would be called stereophonic sound; but now stereo sound is two channels so if someone has three ears they would still use stereo with two channels, I would think.
20:46:38 <Bike> Can you have a Haskell program return a unix return value?
20:47:08 <zzo38> Bike: Yes.
20:47:37 <Bike> main :: IO Int?
20:47:43 <zzo38> No.
20:48:00 <zzo38> You need the library which tells it to return the return codes.
20:48:59 <oerjan> <Bike> the monomorphism restriction seems... weid <-- it's basically "things that look syntactically like they should only be evaluated once must be able to easily be implemented as being evaluated only once." the rest follows from how typeclasses are usually implemented with dictionary passing.
20:49:03 <fizzie> System.Exit.exitWith :: ExitCode -> IO a
20:49:37 <zzo38> boily: Do you like my recordings?
20:50:01 <boily> zzo38: can't read them now, but they look very promising :D
20:50:06 <zzo38> OK
20:51:40 <oerjan> zzo38: yes, that's just language evolving and solidifying though.
20:51:54 <zzo38> oerjan: Yes, that is what I mean.
20:54:43 <fizzie> `run echo -e 'import System.Exit\nmain = exitWith $ ExitFailure 42' > /tmp/tmp.hs && runghc /tmp/tmp.hs; echo $? # just testing
20:54:50 <HackEgo> 42
20:55:26 <Sgeo> Would it make any sense to take the job, and if I don't get the promised raise, just quit?
20:55:47 <Sgeo> Or should I be trying to get the raises into the employment contract
20:56:00 <oerjan> Bike: well, that's the plain identifier = ... version anyway. the complicatedPattern = ... version (which cannot be fixed with an annotation) is stricter because it can make types stupidly ambiguous.
20:57:57 <oerjan> as in, if you have (a,b) = something and you need _both_ the type of a and b to determine what the type of something should be
20:58:45 <oerjan> then it makes no sense to have that (typeclass) polymorphic while a and b don't need to be used together.
21:00:35 <oerjan> and the reason why there is no restriction if typeclasses are involved, is because haskell without typeclasses has full type erasure so actually _can_ use the exact same representation evaluated only once, for all types.
21:00:44 <oerjan> *are _not_ involved
21:03:29 <oerjan> `run interp haskell 'main = print "test"'
21:03:35 <HackEgo> No output.
21:03:38 <oerjan> `run interp haskell 'main = print "test"'
21:03:49 <HackEgo> No output.
21:03:54 <oerjan> *sigh*
21:04:04 <oerjan> or hm wait
21:04:18 <oerjan> `interp haskell main = print "test"
21:04:23 <HackEgo> No output.
21:04:27 <oerjan> WHATEV
21:07:30 <boily> it has no output, because print :: IO ().
21:07:47 <boily> (well, it takes an argument, but the end result is.)
21:07:47 * oerjan swats boily -----###
21:08:16 * boily does that anime thing and catches the swatter with his open hands.
21:08:50 * oerjan is not fooled since he has watched nearly no anime
21:09:59 <Bike> > print "test"
21:10:01 <lambdabot> No instance for (GHC.Show.Show (GHC.Types.IO ()))
21:10:01 <lambdabot> arising from a use of ...
21:10:15 <Bike> sensible
21:11:01 <boily> oerjan: but, but... it's a staple! like the school festival and the beach episode and the power of friendship and...!
21:11:30 <oerjan> I KNOW NONE OF THOSE THINGS
21:11:57 <Bike> even though you're apparently an anime staple?
21:12:04 * Fiora magical girl transformation
21:12:06 <oerjan> i am?
21:12:21 <olsner> boily: I don't recognize it either, and I've seen a bit of anime at least
21:12:37 <boily> I think there's a trope for that...
21:12:52 <Bike> oerjan: well catching your swatter with open hands is a staple evidently
21:12:55 <boily> yep! that: http://tvtropes.org/pmwiki/pmwiki.php/Main/BarehandedBladeBlock
21:13:45 <oerjan> i was hoping for a trope about not recognizing anime tropes
21:13:56 <Phantom_Hoover> Fiora, is your magic want a swatter
21:13:59 <Phantom_Hoover> *wand
21:14:40 <Fiora> ummm in an RP I'm in it's a flashlight?
21:16:48 <zzo38> Have you seen the anime "Kaiji"?
21:17:25 <Bike> Is that the one about Go
21:17:35 <zzo38> No
21:17:36 <Sgeo> Hikaru no Go is the anime about Go
21:17:40 <zzo38> Yes
21:17:49 <Phantom_Hoover> you can't use a torch as a magic wand
21:17:51 <Sgeo> I forgot how far I got :(
21:17:51 <Fiora> um, I saw akagi and probably should see kaiji
21:17:51 <Phantom_Hoover> that's just silly
21:18:01 <olsner> but you can torch a magic wand
21:18:14 <zzo38> Fiora: I saw Akagi too, and I like both of those
21:19:18 <Fiora> but it's a magic flashlight, it blasts beams of light and love at witches
21:20:25 <boily> I'll try to sneak something to that effect in our next campaign, and see how it goes from there.
21:20:46 <olsner> Sgeo: did you get to that episode where he plays Go?
21:21:35 <Phantom_Hoover> Fiora, so it's like a lightsabre
21:33:38 -!- Taneb has joined.
21:34:19 <Taneb> Riding Mill is surprisingly easy to get lost in
21:34:25 <Taneb> Did you know they have like 5 village halls?
21:38:08 <olsner> shachaf: ooh, you almost have a patch in ghc
21:39:04 <shachaf> olsner: Except that someone else wrote it?
21:39:12 <shachaf> I like this situation better.
21:39:28 <olsner> "This is a slightly refined version of a patch by shachaf" it says
21:39:40 <elliott> is this the empty class things
21:39:41 <elliott> er
21:39:43 <elliott> zero-parameter calss things
21:39:43 <olsner> yes
21:39:49 <elliott> does it support adding methods
21:39:51 <elliott> unlike shachaf's
21:44:12 <Taneb> This sounds ridiculous
21:44:16 <Taneb> Link?
21:46:04 <zzo38> Why doesn't Haskell already have zero-parameter classes?
21:46:24 <coppro> they're called types
21:46:43 <zzo38> That isn't exactly the same
21:46:45 <Taneb> coppro, wouldn't they have kind Constraint?
21:46:50 <coppro> sssshhh
21:46:51 <Taneb> Rather than *
21:46:57 <shachaf> elliott: Wait, I hope so.
21:47:00 <shachaf> Can you check?
21:47:04 <shachaf> Otherwise I don't like it so much.
21:47:32 -!- {^Raven^} has joined.
21:47:36 <Taneb> zzo38, perhaps because they're kind of useless if you don't think about them much?
21:49:19 <oerjan> `WeLcOmE {^Raven^}
21:49:22 <HackEgo> ​{^RaVeN^}: wElCoMe tO ThE InTeRnAtIoNaL HuB FoR EsOtErIc pRoGrAmMiNg lAnGuAgE DeSiGn aNd dEpLoYmEnT! fOr mOrE InFoRmAtIoN, cHeCk oUt oUr wIkI: hTtP://EsOlAnGs.oRg/wIkI/MaIn_pAgE. (FoR ThE OtHeR KiNd oF EsOtErIcA, tRy #EsOtErIc oN IrC.DaL.NeT.)
21:49:48 <elliott> shachaf: can you check?
21:50:03 <zzo38> Nevertheless, it seems that they are just another case of the classes, so it should be supported like multi-parameter are; also, they could be used if you don't define the instance until another module
21:50:54 <shachaf> elliott: Can you?
21:50:57 <Sgeo> My dad's concerned about lack of specification of how many hours I would actually be working
21:51:37 <Taneb> elliott, have we accidentally encountered eachother face to face thus destroying the universe yet?
21:52:36 -!- boily has quit (Quit: Poulet!).
21:53:39 -!- metasepia has quit (Remote host closed the connection).
21:54:14 <elliott> shachaf: no
21:54:18 <{^Raven^}> Hey everyone.
21:54:24 <zzo38> What else might be useful is define types local to a block
21:54:25 * {^Raven^} goes back to lurking.
21:54:39 <Gregor> Quoth the {^Raven^}, "nevermore".
21:54:41 <zzo38> {^Raven^}: What is it that you wanted?
21:55:11 <zzo38> I am not psychic.
21:55:14 <elliott> {^Raven^}: wow weren't you here in like 2005
21:55:18 <elliott> hi
21:55:24 <{^Raven^}> I used to hang out here an era ago.
21:55:40 <zzo38> {^Raven^}: Well, we changed the logs since then.
21:55:55 <Gregor> Hmmm, I guess my memory sucks X-D
21:56:33 <{^Raven^}> I remember you Gregor and a few other peeps.
21:56:43 <Sgeo> Hmm, was I here in 2005?
21:56:47 <zzo38> Good.
21:56:47 <Sgeo> I forgot when I showed up
21:56:53 <Sgeo> `pastelogs Sgeo
21:57:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.15649
21:57:15 <shachaf> `relcome {^Raven^}
21:57:15 <Phantom_Hoover> {^Raven^}, do you remember me
21:57:18 <HackEgo> {^Raven^}: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:57:27 <Sgeo> Hey I was
21:58:33 <Taneb> I wasn't
21:58:41 <{^Raven^}> It's been 8 years, I barely remember breakfast.
21:58:55 <pikhq> Hmm...
21:59:01 <Taneb> I'm elliott's good twin
21:59:05 <pikhq> Do I recognize this Raven person?
21:59:08 <zzo38> Can you believe six impossible things before breakfast, now?
21:59:47 <{^Raven^}> You bet. 5 of them are the alarms I vainly hope will awaken me.
21:59:58 <pikhq> `pastelogs Raven
22:00:05 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.10124
22:00:48 <pikhq> Hmm, may have been before my time.
22:00:57 <Taneb> `pastelogs pikhq
22:01:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5264
22:01:16 * Fiora waves?
22:02:17 <zzo38> Is there a internet protocol for log in to send/receive SQL commands and response?
22:02:18 <kmc> hi {^Raven^}
22:02:25 <{^Raven^}> Hey kmc.
22:02:37 <kmc> zzo38: yes it's called any text field on any PHP website
22:02:41 <{^Raven^}> That was some scary pastelog.
22:02:58 <zzo38> {^Raven^}: No; I mean without website and without necessarily PHP
22:03:13 <zzo38> kmc
22:03:16 <Taneb> {^Raven^}, on my pastelog, I appear and hold a conversation I remember having... about a year before I knew IRC existed
22:03:33 <zzo38> kmc:
22:04:05 <zzo38> kmc: Is there separate protocol, though?
22:06:02 <kmc> zzo38: I think every SQL server package has their own protocol
22:06:05 <kmc> i don't know of a standard one
22:06:25 <kmc> (probably each has several protocols, realistically)
22:07:13 <zzo38> Perhaps a generic one could be made, then.
22:08:11 <zzo38> In case you want to any clients who might connect on the SQL, to be able to operate it remotely.
22:08:35 <{^Raven^}> Oblig XKCD: http://xkcd.com/927/
22:08:47 -!- augur has joined.
22:09:29 <zzo38> Well, that is how it works, sometimes.
22:09:35 <zzo38> I don't really like USB; it has problems.
22:09:39 <Bike> need a standard for dealing with multiple competing standards
22:09:41 <kmc> cell phone chargers have actually become a lot more standard
22:09:53 <kmc> as have character encodings
22:09:54 <Bike> i think my favorite version of that is still zzo38 saying he conforms to a lot of stuff others don't, though
22:10:05 <zzo38> Bike: There is, such as internet, we have different port numbers for other protocols.
22:10:22 <Bike> well played.
22:10:41 <kmc> internet? yeah, i'd say internet
22:10:56 <Bike> i guess it is an inter net work after all
22:10:56 <{^Raven^}> You'd have to limityourself to lowest common denominator SQL wchich could be limiting in itself
22:11:10 <kmc> https://www.youtube.com/watch?v=dQmK1CnwOUI
22:11:40 <Bike> is this better than windows 1.0's ads
22:11:53 <zzo38> {^Raven^}: To ensure working with everything you will, even though some servers may use additional commands, which might work too even though such thing is not SQL standard and not guarantee working everything.
22:11:54 <Bike> wow he does sound drunk
22:12:11 <Bike> post your.... photographs......
22:12:58 <zzo38> Yes there are different standards, but often they don't even conform, anyways.
22:13:02 <Taneb> {^Raven^}, so what have you been up to in the past few years
22:13:30 <zzo38> I don't like PostScript and PDF and Microsoft paper format, so I use DVI.
22:13:53 -!- jiella has joined.
22:13:53 <zzo38> kmc: Not all PHP website is SQL anyways.
22:14:01 <zzo38> SQL is a different programming language to PHP.
22:14:03 * {^Raven^} has been getting paid to write programs for a living
22:14:19 <Bike> crazy
22:14:21 <zzo38> {^Raven^}: What programs?
22:15:26 <zzo38> For telephone I use POTS.
22:15:44 <kmc> smoke POTS everyday
22:15:59 <{^Raven^}> Mostly large scale websites. Nothing I'd like to talk about though I like to keep my personal and professional lives seperate.
22:16:08 <zzo38> OK
22:16:53 <Taneb> {^Raven^}, did you get asked the Hexham question when you used to be here?
22:17:17 <zzo38> O, so you don't write any Famicom games?
22:17:29 <{^Raven^}> Hexham question?
22:17:31 <kmc> hard to get paid to write Famicom games these days, I expect
22:17:42 <Taneb> {^Raven^}, do you live in Hexham?
22:17:48 <{^Raven^}> Nah.
22:17:52 <zzo38> kmc: I suppose you are correct.
22:17:56 <Taneb> How about Finland
22:17:56 <elliott> {^Raven^}: wait are you the person who made that Lost Kingdom thing
22:17:59 <Bike> it's more like who doesn't write famicom games
22:18:08 <{^Raven^}> elliot, sure am.
22:18:17 <elliott> i knew the name seemed familiar!!!
22:18:24 <elliott> i hear ais523 almost beat it
22:18:55 <{^Raven^}> Props, to Calamair without whom it wouldn't have been possible
22:19:00 <{^Raven^}> *Calamari
22:19:08 <zzo38> Well, I have written one Famicom game, called "Famicom Hangman", but I might write more later on, based on some of the games I have made in QBASIC, but a bit different. However, BIGMAZE might be too slow on Famicom because it has to make up a random maze and it uses a slow algorithm to do so.
22:20:56 <Taneb> Trivia: the "piet" package on Hackage seems to suck
22:21:27 <zzo38> Bike: Do you?
22:21:42 <Bike> I don't. I am the answer to the question.
22:21:53 <Bike> I am the Famicomless spoken of in old legends.
22:22:56 <{^Raven^}> So, what have I missed in the lasy 8 years or so since I last logged in?
22:23:51 <Taneb> Underload
22:23:56 <Taneb> Pretty cool esolang
22:24:06 <Taneb> BF Joust?
22:24:53 <Taneb> The... wiki changed host?
22:25:26 <Taneb> The Fancy L problem?
22:25:44 <Taneb> ...fungot?
22:25:44 <fungot> Taneb: like docstrings or something? :p. ugh i need to find more minor details to fiddle in my toy lisp interpreter turned out to be a
22:25:49 <Sgeo> The chat is made up of different people
22:25:55 <Sgeo> Oh, and HackEgo too probably
22:26:30 <Taneb> `? Ngevd
22:26:32 <HackEgo> ​P=9hR3*9߳tm)Ϩٰqu!p \ 5IQx^i8?0BמvaoRWz.qP,'vֆcmC~Ce|
22:26:40 <Taneb> The many names of Taneb?
22:27:16 <Sgeo> fax and cheaters' banishment?
22:27:30 <Taneb> Phantom_Hoover's Tumblr?
22:27:38 <Bike> The harrowing of hell.
22:28:37 <Bike> cpressey came back to tell elliott to shut up about Scots and then left again.
22:29:28 <Sgeo> You missed the new language I made that only I seem to care about.
22:29:34 <Sgeo> Oh, you also missed PSOX
22:29:43 <Taneb> PSOX came and went
22:29:44 <Bike> You also missed cpressey, maybe.
22:29:47 <Sgeo> (Another thing that only I care about)
22:30:19 <elliott> fax isn't banned.
22:30:23 <{^Raven^}> PSOX, awesome
22:30:30 <Bike> Sgeo, did you read that one thesis on trusting trust?
22:30:32 <elliott> actually only cheater and dbelange are banned.
22:30:41 <{^Raven^}> A bit like PESOIX only more implemented
22:31:03 <Sgeo> Bike, funny thing is, I never actually read it
22:31:07 <Sgeo> For all that it's inspired me
22:31:52 <Bike> well don't feel bad, nobody else has read it either
22:32:00 <Bike> a lot like worse is better probably
22:32:50 <oerjan> {^Raven^}: you are still too early to miss Feather.
22:33:02 <elliott> i read the original reflections on trusting trust, it's accessible so why wouldn't you
22:33:08 <elliott> i haven't read the defeating trusting trust thing
22:33:15 <oerjan> sadly nothing like PESOIX and PSOX has taken off.
22:33:42 <elliott> http://www.dwheeler.com/trusting-trust/ this one
22:34:02 <{^Raven^}> I recall someone did write a nice POSIX PESOIX layer.
22:34:04 <elliott> maybet hat's the one Bike meant.
22:34:13 <elliott> since the original one isn't a thesis
22:34:17 <Bike> yeah, that's what i was thinking of
22:34:21 -!- jiella has quit (Ping timeout: 276 seconds).
22:34:42 <oerjan> {^Raven^}: you have also missed ///
22:34:56 <pikhq> And the mass Haskellization.
22:35:16 <Taneb> pikhq, what was there before the mass Haskellization
22:35:26 <pikhq> On topic discussion.
22:35:34 <Taneb> Whoa
22:35:35 <Bike> everybody were diehard snobol programmers
22:35:35 <elliott> no there wasn't :P
22:35:38 <oerjan> technically i think you may have missed LOLCODE, i'm mentioning this only to annoy the others.
22:35:50 <pikhq> Eff you. :P
22:35:51 <oerjan> oh and ESME.
22:35:53 <{^Raven^}> I remember writing a few CGI programs in pure BF back then.
22:36:21 -!- jiella has joined.
22:36:32 <Sgeo> `welcome jiella
22:36:35 <HackEgo> jiella: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:36:53 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
22:37:33 <oerjan> despite Phantom_Hoover's best intentions, you have also missed a heap of brainfuck derivatives.
22:38:35 <Taneb> oerjan, would you say MIBBLLII is a brainfuck derivative
22:39:25 <oerjan> Taneb: well then it would obviously be in the category, wouldn't it? duh.
22:39:48 <Taneb> It was inspired by the concept of brainfuck derivatives
22:40:32 <oerjan> i recall when i arrived Backflip was one of the first new languages. so since i arrived after you left, you probably missed that.
22:40:58 <oerjan> in fact we've pretty much forgotten it, even though ais523 made derivatives of it.
22:41:22 <Bike> Taneb: ha, i like it
22:41:32 <oerjan> was Emmental around back then? and Jolverine, those are cpressey languages i recall working on.
22:41:47 <oerjan> and Qdeql.
22:42:01 <Bike> huh is bckw just a superset of ski
22:42:25 <shachaf> a superset of a subset of ski
22:42:42 <Bike> oh, < doesn't seem to be in bcwksdkfasd
22:42:45 <oerjan> Bike: a re-basing, so to speak.
22:42:59 <olsner> is k in bckw the k in ski?
22:43:12 <Bike> yeah
22:43:18 <Bike> S is some garbage, though
22:43:21 <olsner> p.s. single-combinator bases are way cooler
22:43:37 <Bike> mibbllii has more combinators. clearly software bloat.
22:43:51 <oerjan> you missed Real Fast Nora's Hair Salon 3: Shear Disaster Download
22:44:12 <{^Raven^}> Hmm, looking at the title, are esolangs still on topic?
22:44:24 <Taneb> Bike, BCKW and SKI are similar but different
22:44:24 <olsner> ostensibly yes
22:44:30 <Taneb> I find BCKW easier to code with
22:44:57 <oerjan> {^Raven^}: the _title_ isn't always on topic. more so now than usual, actually.
22:44:58 <Bike> {^Raven^}: as you can see the people in the channel still know things about them.
22:45:06 <olsner> or maybe that's a misuse of ostensibly if it doesn't actually say anywhere that esolangs are on topic
22:45:20 <olsner> ostensibly off topic, supposedly on topic, actually not usually on topic
22:45:37 <Bike> also i can't think of a single-combinator base off the top of my head, fuck
22:45:50 <Taneb> Bike, there's Iota's i
22:45:55 <Taneb> i = \x -> x S K
22:46:03 <oerjan> i think zzo38 arrived after me, so all his languages, such as Flogscript
22:46:14 <Bike> oh, that works
22:46:44 * {^Raven^} has some nefarious plans but nothing that actually has any code behind yet.
22:47:19 <Bike> is it a bf derivative i bet it is
22:47:29 <oerjan> of course many others arrived after me, but zzo38 was _very_ prolific at the beginning.
22:48:37 <shachaf> imo the topic of #esoteric should be the topic of #esoteric
22:49:06 <Bike> good opinion. approved
22:49:09 <{^Raven^}> recursive topics, nice
22:50:02 <shachaf> Bike: who died and made you opinion police
22:50:14 <oerjan> shachaf: Gandhi.
22:50:19 <shachaf> oh
22:50:55 -!- augur has quit (Remote host closed the connection).
22:51:02 -!- Phantom_Hoover has joined.
22:51:14 <Bike> I didn't say I approved it.
22:51:29 <oerjan> oh, Eodermdrome.
22:52:04 <shachaf> Bike: i was shooting the figurative messenger
22:52:06 <oerjan> wait, why didn't i list it on my article page, i proved it TC
22:53:54 <Sgeo> I should make another esolan
22:53:56 <Sgeo> esolang
22:54:06 <Bike> fucktrust
22:54:26 <Sgeo> Should it be more Trust-ish languages, or something else?
22:54:34 <Sgeo> I really don't have any other ideas :(
22:54:51 <Bike> whenever you feel inesolangadequate just remember that i don't even have a wiki account
22:55:16 <Taneb> And my first esolang was an Ook! derivative
22:55:27 <nooodl_> make a programming language that's a game engine
22:55:52 <Sgeo> Taneb, braintrust is not my first esolang
22:56:00 <Taneb> I know that
22:56:02 <Taneb> Just I suck
22:56:42 <nooodl_> the interpreter is a game. code is inputted and executed by performing tasks in-game
22:56:45 <Sgeo> Going to read some Paranoia Live logs
22:57:13 <Taneb> nooodl_, there was a PS2 game like that, I believe
22:57:18 <Taneb> Only released in Japan
22:58:32 <Fiora> RPG Maker?
22:59:06 <Taneb> I'm still surprised Fueue is turing complete
22:59:40 <oerjan> ...how could it not be.
22:59:49 <Taneb> I dunno
22:59:58 <monqy> Sgeo: who needs ideas when you have desire & ambition
23:00:07 <oerjan> unless it were obviously restricted like Ftack
23:00:36 <Sgeo> (Unimplementable) esolang idea:
23:00:39 <Taneb> It's not just turing complete, it's turing complete if you remove like half the instructions
23:01:13 <oerjan> {^Raven^}: you also missed Fueue, if i didn't mention it yet.
23:01:20 <Sgeo> Esolang that would be turing complete except there's one specific calculation that cannot be performed, one program that cannot be run, even by, say, simulating GoL
23:02:24 <zzo38> Sgeo: I don't think such thing is possible even mathematically
23:03:06 <oerjan> Sgeo: seems very hard to define properly while still giving an interesting result...
23:03:06 <Sgeo> Sure it is. Just check that no parts of the program = the forbidden program, with an implementation in a super-TC language.
23:03:48 <oerjan> Sgeo: i suspect in that case, you would find it hard to prove any given program _could_ be run.
23:03:54 <elliott> you have a very curious definition of "sure it is"...
23:05:02 <oerjan> because that program could give you, in an unprovable way, the ability to simulate the forbidden one.
23:06:05 <oerjan> Taneb: oh well, arithmetic is overrated anyway
23:06:08 <elliott> oerjan: hm i note that for underload, it is not known how to remove a or * from a program, other than by converting it to a turing machine first...
23:07:59 <oerjan> elliott: without a or * there is no way to construct _new_ subprograms, which means if you take the subprograms you start with you almost have a TM by definition.
23:08:10 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:08:53 <elliott> seems like there should be a way to do a translation that results in less indirection/program explosion than going through a TM, but what do I know
23:09:05 <elliott> also, I was thinking of a and * _separately_
23:10:07 <oerjan> elliott: i think there can only be a constant factor difference.
23:10:28 <oerjan> ok if you do them _separately_, maybe...
23:10:45 <oerjan> a just gives you a sort of added counter ability.
23:11:34 <oerjan> i have thought before that you can remove either a or *, _and_ ~ without dropping all the way down to a minsky machine.
23:12:23 -!- Phantom_Hoover has joined.
23:12:41 * elliott is just thinking that it would be interesting to a have an underload program --> :()^ program that works subset by subset, rather than involving a big first leap of conversion to TM then compilation
23:12:48 <oerjan> ...i suppose removing just * would probably allow you to do something resembling brainfuck with unbounded calls
23:12:49 <elliott> *:()^ program transformation
23:13:00 <oerjan> *cells
23:13:12 <oerjan> cells _and_ tape
23:15:59 <Sgeo> http://www.reddit.com/r/programming/comments/1adb56/wikimedia_enables_lua_scripting_for_page_content/
23:17:24 <elliott> thanks
23:18:06 <Bike> good strikethrough
23:19:05 -!- monqy has quit (Quit: hello).
23:22:18 <Phantom_Hoover> mediawiki markup is a thing of beauty
23:22:28 <Phantom_Hoover> it's like pointy lisp
23:23:13 <zzo38> I happen to like MediaWiki format too, compared to other wiki
23:23:15 <Bike> does hackego have a function to spit out a link to the wiki for a given term?
23:25:41 <Phantom_Hoover> mediawiki is shit and yet i've yet to see another wiki system that isn't annoyingly awkward
23:26:15 <oerjan> `wiki maybe
23:26:16 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
23:26:21 <oerjan> ^wiki maybe
23:26:21 <fungot> http://esoteric.voxelperfect.net/wiki/maybe
23:27:42 <Sgeo> Esolang interpreters right on the Esowiki pages!
23:29:01 <zzo38> Phantom_Hoover: Well, yes, OK, but still I like MediaWiki syntax compared to other wiki.
23:29:03 <Phantom_Hoover> `paste bin/wiki
23:29:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/wiki
23:29:20 <Phantom_Hoover> helpful
23:29:28 <Phantom_Hoover> ohh
23:29:31 <Phantom_Hoover> right im dumb
23:29:36 <Phantom_Hoover> fizzie, fix that
23:40:18 <Taneb> Whoa
23:40:34 <Taneb> My Tumblr profile picture's cropped so it says "CE CREAMS HER"
23:41:03 <oerjan> a clear case of karma.
23:41:07 <Phantom_Hoover> sex acts with obscure pronouns are most tolerant sex acts
23:41:07 -!- {^Raven^} has left.
23:41:58 <Phantom_Hoover> omg
23:42:22 <Phantom_Hoover> raven's isp hub thing is in sheffield
23:42:28 <Phantom_Hoover> that's dangerously close to hexham
23:42:36 <oerjan> he was already asked.
23:42:39 <Taneb> That's like 100 miles away from Hexham
23:43:12 <Phantom_Hoover> look
23:43:19 <Phantom_Hoover> it's in The North
23:43:28 <Taneb> https://maps.google.co.uk/
23:43:29 <Phantom_Hoover> that is TOO CLOSE FOR COMFORT
23:43:31 <Taneb> Wait
23:43:35 <Taneb> https://maps.google.co.uk/maps?saddr=hexham&daddr=sheffield&hl=en&sll=52.8382,-2.327815&sspn=7.728394,20.214844&geocode=FfnQRgMdcMXf_ykVmDENYpB9SDEEwA0heCs6qA%3BFQmILgMde5Hp_ykVvuj6qQp5SDF4sAav9ScoPg&t=h&mra=ls&z=8
23:43:49 <Taneb> Sheffield's practically midlands!
23:44:00 <Taneb> It's closer to ais523 than it is to me!
23:44:09 <Phantom_Hoover> i have heard people say nottingham is where the north starts
23:44:17 <nooodl_> wow hexham is very Northern
23:44:20 <Phantom_Hoover> relatedly: warwick is so full of southerners i feel so alone
23:44:54 <Taneb> Phantom_Hoover, that's your own fault for not abusing free university education in Scotland
23:45:03 <Phantom_Hoover> abusing???
23:45:24 <Phantom_Hoover> it's not our fault we're politically disconnected from the south
23:45:41 <elliott> i think {^raven^} gvae up on us
23:45:46 <elliott> also gave
23:45:59 <elliott> oerjan: btw someone should update ^wiki
23:46:05 <elliott> i am pinging you for absolutely no reason!
23:46:13 <Phantom_Hoover> someone, n. fizzie
23:46:48 <Taneb> ^src wiki
23:46:50 <oerjan> ^show wiki
23:46:50 <fungot> +13[>+9>+9>+8>+4<4-]>3.<2-..-4.>3+6.-11..<-3.<-2.<-.>+.>.<-2.<-6.>2-2.>-.<2+4.>+12.<+2.<-4.>-12.>+.<-7.>+2.<+.-.<-2.>2+2.>.<2+9.<+2.>2.>+.<+3.-14.+2.-2.>.,[.,]
23:47:13 <oerjan> !bf_txtgen http://esolangs.org/wiki/
23:47:53 -!- nooga has quit (Ping timeout: 252 seconds).
23:48:07 <oerjan> `interp bf_txtgen http://esolangs.org/wiki/
23:48:11 <nooodl_> what's the hexhammian english accent like
23:48:12 <Phantom_Hoover> also: wow yorkshire is altogether too big
23:48:19 <Taneb> Indeed
23:48:20 <HackEgo> 171 +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.<--.-----------..>>---.<+++.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<. [864]
23:48:28 <Phantom_Hoover> nooodl_, northumbrian
23:48:41 <Taneb> nooodl_, it's a bit like geordie
23:48:41 <oerjan> ^def wiki bf +++++++++++++++[>++++>+++++++>+++++++>++++++++<<<<-]>>>-.>----..<<+++++++.<--.-----------..>>---.<+++.>>-----.---.<----.>++.<++++++.<.<-.>>>+.+++.<.<<+.>++++.>++.++.--.<<.,[.,]
23:48:42 <fungot> Defined.
23:48:48 <oerjan> ^wiki Esme
23:48:48 <fungot> http://esolangs.org/wiki/Esme
23:48:55 <Phantom_Hoover> nooodl_, illustrative example courtesy of google: http://www.youtube.com/watch?v=qTfC1BIgTCw
23:49:05 <Taneb> nooodl_, but with a bit of posh English in it too
23:49:16 <Phantom_Hoover> probably representative of elliott's voice
23:49:18 <oerjan> fizzie: pls save kthxbye
23:49:29 <Taneb> Phantom_Hoover, the Northumbrian accent is mainly further North
23:49:59 <elliott> oerjan: you picked the optimal article to test it on, too
23:50:09 <Taneb> Starting from Blyth and ending near Berwick
23:50:32 <Taneb> Fading from Geordie to Borders Scottish
23:50:51 <nooodl_> yikes
23:51:17 <oerjan> elliott: i know right?
23:51:18 <nooodl_> elliott: is this true (ph's link)
23:51:20 <elliott> i don't really have an accent
23:51:23 -!- augur has joined.
23:51:26 <elliott> except like vaguely british
23:51:28 <nooodl_> ok good
23:51:38 <shachaf> élliott
23:51:50 <Taneb> But yeah, the Hexham accent is somewhere between vaguely british and geordie
23:52:31 <shachaf> i have an accent!!
23:52:46 <Phantom_Hoover> elliott, i used to think that but apparently my accent is identifiably scottish
23:52:47 <Taneb> I have a ridiculous accent
23:53:15 <oerjan> i don't have an accent, Ø is a perfectly undivided letter
23:53:16 <Taneb> (I'm now imagining Phantom_Hoover with a somewhat confused thick Glaswegian accent)
23:53:29 <Taneb> (all the more confused because he's not from Glasgow)
23:53:34 <Phantom_Hoover> you are the actual worst
23:53:41 <Phantom_Hoover> i would stab you but i'm not from glasgow
23:53:54 <nooodl_> if only i could hear talk_esme_baby
23:53:55 <elliott> Phantom_Hoover: well I assume there's some rhoticity in mine. I forget whether it's the rhotic kind or the non-rhotic kind
23:53:57 <Bike> you know on twitter glasgow is being bombed right now
23:54:01 <Taneb> I also have the worst accent
23:54:16 <elliott> Bike: twitter has bombs now?
23:54:21 <Taneb> It's a kind of nasal upper class Northern english with slight Australian and Dutch twinges
23:54:48 <oerjan> the hexham accent is thoroughly rhotten
23:54:50 <Bike> https://twitter.com/RealTimeWWII/status/312604111843495936 bombed... by terrorists
23:54:51 <nooodl_> that sounds very good taneb
23:55:18 <elliott> Bike: well that's just regular glasgow
23:55:21 <elliott> `quote glasgow
23:55:24 <HackEgo> 460) <Phantom_Hoover> Riots in Glasgow would probably be reported as a sudden drop in crime. \ 616) <Phantom_Hoover> No you can't fight crime in Glasgow. <Phantom_Hoover> It's like trying to get rid of the space-time continuum. \ 784) <Taneb> Phantom_Hoover, like Glasgow but nicer <Taneb> So, not like Glasgow at all
23:55:54 <Phantom_Hoover> hey, i stopped doing it when it became mainstream
23:56:26 <oerjan> `run quote glasgow | tail -c300
23:56:27 <HackEgo> over> Riots in Glasgow would probably be reported as a sudden drop in crime. \ 616) <Phantom_Hoover> No you can't fight crime in Glasgow. <Phantom_Hoover> It's like trying to get rid of the space-time continuum. \ 784) <Taneb> Phantom_Hoover, like Glasgow but nicer <Taneb> So, not like Glasgow at all
23:56:34 <oerjan> bo ring
23:56:40 <Taneb> `quote Hexham
23:56:41 <HackEgo> 623) <ais523> also, why isn't monqy from Hexham? his name sounds like he should be \ 692) <ais523> oh right: Frooxius, you wouldn't happen to live in Hexham, would you? <Frooxius> No, sorry. <ais523> phew <Ngevd> How about Finland? <Frooxius> Why would I live there? <fizzie> That's a *very* good question. <fizzie> Why would anyone? \ 956) <bo
23:56:54 <oerjan> `run quote hexham | tail -c300
23:56:56 <HackEgo> uld you? <Frooxius> No, sorry. <ais523> phew <Ngevd> How about Finland? <Frooxius> Why would I live there? <fizzie> That's a *very* good question. <fizzie> Why would anyone? \ 956) <boily> had a fit of a stroke of genius, and google mapped hexham. <boily> it's in the friggin middle of nowhere!
23:57:27 <Taneb> `run quote Hexham | tail -c600
23:57:29 <HackEgo> 623) <ais523> also, why isn't monqy from Hexham? his name sounds like he should be \ 692) <ais523> oh right: Frooxius, you wouldn't happen to live in Hexham, would you? <Frooxius> No, sorry. <ais523> phew <Ngevd> How about Finland? <Frooxius> Why would I live there? <fizzie> That's a *very* good question. <fizzie> Why would anyone? \ 956) <bo
23:57:32 <Taneb> Nope
←2013-03-14 2013-03-15 2013-03-16→ ↑2013 ↑all