←2012-08-18 2012-08-19 2012-08-20→ ↑2012 ↑all
00:01:20 <shachaf> I have a problematic power supply, apparently.
00:01:48 <shachaf> So when I plug it in it complains that it's not a Genuine Dell 130W Power Supply.
00:01:55 <shachaf> Unless I plug it in just right.
00:02:14 <shachaf> And then it throttles the CPU to 900MHz, and doesn't charge it.
00:02:32 <shachaf> (The battery, that is, not the CPU.)
00:03:05 <NihilistDandy> Dell Seal of Quality®
00:10:41 <shachaf> 17:06 <ddarius> shachaf: Given the adjunction (A,) -| (A->) and the adjunction (->A)^op -| (->A) and the continuity properties of left and right adjoints, we have Colim_i(F^i(0)) -> B ~ Lim_i(F^i(0) -> B)) ~ (/\X.Lim_i(F^i(0) -> X)(B) ~ Lim_i(F^i(0) -> -)(B). If we can make a G such that the functor (F(A)->) ~ G(A->), then we have Colim_i(F^i(0)) -> B ~ Lim_i(G^i(1)(B), i.e. (mu F) -> B ~ (nu
00:10:41 <shachaf> ))(B). E.g. 1+A -> B ~ (B, A -> B), so F
00:10:41 <shachaf> 17:06 <ddarius> = (1+), mu F = Nat, G = (=,-), nu G = Stream, so Nat -> B ~ Stream B
00:10:41 <shachaf> elliott: What did ddarius just say to me? :-(
00:13:38 <elliott> I don't know.
00:15:00 <psyk> elliott: I've noticed you're quite shameless.
00:17:05 <Sgeo> Ok, so maybe it's not so dangerous
00:17:34 <Sgeo> http://pastie.org/private/tszvgqthhrrktfcb3adorg
00:35:59 <shachaf> I understand that completely un-timing-attackable AES is very tricky to do.
00:40:59 <Sgeo> "Most of the time, newLISP passes parameters by value copy. This poses a potential problem when passing large lists or strings to user-defined functions or macros. "
00:41:22 <Sgeo> I was sort of hoping that "by value copy" was just how it abstractly looked, and not the actual implementation
00:41:38 <Sgeo> Maybe the manual is old?
00:42:34 <FreeFull> Lol, does newLISP actually have any of the good points of Lisp?
00:43:04 <Sgeo> I think it has fexprs
00:44:07 <FreeFull> Hey, the wikipedia article on fexprs has an example in Kernel
00:44:14 <kmc> naturally
00:44:24 <shachaf> kmc: Wow, my sleedule is completely messed up.
00:44:52 <shachaf> I slept ~2-9 today, after having had way too little sleep some time before.
00:45:18 <shachaf> I'm sort of tired all day, but I'll probably stop feeling tired around 22-23.
00:46:17 <FreeFull> Well, I got woken up by firefighters extinguishing a fire next door
00:55:52 <kmc> that's exciting
00:56:39 * Sgeo wonders if Tcl's scoping counts as lexical
01:00:12 <shachaf> kmc: Using a patented mode of operation doesn't bother you?
01:01:06 <shachaf> Even with a GPL license.
01:02:07 <kmc> why do you assume it doesn't bother me?
01:02:33 <shachaf> I don't.
01:02:35 <psyk> shachaf: exactly
01:02:37 <shachaf> That's why I asked.
01:02:45 <kmc> well you asked in a sort of loaded way ;)
01:02:48 <kmc> yes, it does bother me
01:02:50 <shachaf> I guess I could have phrased the question less loadedly.
01:03:14 <kmc> but the patent holder is emphatically not an asshole -- we've worked with him on several things
01:03:23 <kmc> he seems quite open to grants to open-source software other than GPL
01:03:38 <kmc> (possibly with a non-commercial use restriction, though)
01:03:52 <kmc> and KeithW's technical arguments for using OCB are compelling
01:04:20 <kmc> and the decision was already solidly made before i had any involvement with Mosh so it seemed a bit silly to make a big deal of it
01:04:49 <shachaf> OCB takes four technical arguments: key, nonce, associated data, and plaintext
01:04:54 <shachaf> Maybe the plaintext isn't technical.
01:05:10 <shachaf> Anyway, yes, I suppose.
01:05:24 <shachaf> But what are IRC channels for if not making big deals about things?
01:06:27 <NihilistDandy> Type level wankery?
01:06:48 <kmc> we don't use associated data either :)
01:09:01 <kmc> NihilistDandy: lambdabot doesn't even let you define types :(
01:09:29 <shachaf> @djinn-add data These a b = This a | That b | These a b
01:09:56 <shachaf> I guess These isn't very interesting from djinn's perspective.
01:10:19 <shachaf> kmc: Did you see Salsa20?
01:10:38 <kmc> whatsat
01:10:53 <shachaf> Encryption algorithm by Daniel Bernstein.
01:11:05 <shachaf> By "encryption algorithm" I mean "stream cipher".
01:11:44 <NihilistDandy> shachaf: I was actually looking into that for a project my friends and I were working on. Project fell apart, but it was fun to read about
01:12:01 <shachaf> http://cr.yp.to/snuffle/design.pdf discusses the design.
01:12:30 <shachaf> I like it because it's simple. I'm not qualified to say whether it's any good, of course.
01:12:54 <NihilistDandy> The speed of it was the main draw for me
01:13:14 <shachaf> It defines a relatively simple hash function and uses it in CTR mode, more or less.
01:13:24 <kmc> ah right, you were talking about this
01:14:05 <shachaf> Well, I came across Salsa20 some time after I was talking about it.
01:16:50 <elliott> <shachaf> I don't.
01:16:50 <elliott> <psyk> shachaf: exactly
01:16:55 <elliott> can someone kick this bot or something
01:17:00 <psyk> elliott: no se johtuu siit, ett puhun suomea, plj!
01:17:05 <elliott> case in point
01:17:26 <shachaf> ais523: elliott wants you to kick me. :-(
01:17:29 <monqy> why does it exist what's its story
01:17:40 <monqy> i want to know the "shachaf story"
01:17:46 <shachaf> shachaf: whats it's story??
01:17:54 <monqy> the "psyk" story sounds interesting too !
01:17:56 <psyk> monqy: Okay. Go for it. Although, truth is out there.
01:18:01 <monqy> : o
01:18:18 <shachaf> monqy: my story is "very goode"
01:18:25 <shachaf> AAAA+++ WOULD READ AGAIN
01:18:29 <shachaf> @karma AAA++
01:18:29 <lambdabot> AAA++ has a karma of 0
01:18:31 <shachaf> @karma AAA+
01:18:31 <lambdabot> AAA+ has a karma of 0
01:18:36 <shachaf> @karma AAAA+
01:18:36 <lambdabot> AAAA+ has a karma of 1
01:18:40 <shachaf> @karma AAA++
01:18:41 <lambdabot> AAA++ has a karma of 0
01:18:44 <shachaf> @karma AAA+++
01:18:44 <lambdabot> AAA+++ has a karma of 1
01:18:47 <shachaf> Hmm.
01:21:10 -!- derdon has quit (Remote host closed the connection).
01:42:22 <Sgeo> I don't like this person's style, I think they should be using a variant of let
01:42:24 <Sgeo> Not sure which one
01:43:02 <Sgeo> Ah. let* specifically
01:43:53 <Sgeo> http://www.common-lisp.ru/repos/pyffi/pyffi.lisp
01:45:47 <Sgeo> Person also doesn't know how to use when
01:50:30 <Sgeo> Hey, I actually understand what progv does
01:50:41 <Sgeo> Not entirely sure when it's really useful though
02:02:25 <FreeFull> So, Haskell doesn't like it when the type of a function depends on a parameter
02:02:56 <kmc> correct
02:03:50 <FreeFull> How am I supposed to do my dynamic sierpinski nesting then
02:04:02 <kmc> what is dynamic sierpinski nesting
02:04:35 <FreeFull> Well, a function that takes a and b, and does (a,a,a) b times
02:04:54 <FreeFull> b = 1 (a,a,a) b=2 ((a,a,a),(a,a,a),(a,a,a))
02:04:54 <kmc> yeah you can't do that
02:04:55 <FreeFull> Etc
02:04:57 <kmc> use a list instead
02:05:04 <FreeFull> No, doesn't work with a list either
02:05:18 <kmc> ah yeah i see
02:05:54 <FreeFull> Also, I need to figure out how to make my Haskell prime sieve work
02:06:08 <kmc> well you can make a datatype like data Tree a = Leaf a | Node (Tree a) (Tree a) (Tree a)
02:07:53 <FreeFull> primesieve [y:ys] = y : primesieve (filter (\z -> (z `mod` y) == 0) ys)
02:07:56 <FreeFull> Doesn't work
02:08:02 <kmc> you should bug #haskell about it
02:08:13 <FreeFull> Wait, \=, not ==
02:08:15 <FreeFull> But still
02:08:17 <kmc> the pattern [y:ys] matches a list of a single element only
02:08:20 <kmc> is that what you want?
02:08:29 <FreeFull> Oh
02:08:34 <kmc> it matches a list whose one and only element is a list whose head is y and tail is ys
02:08:39 <kmc> maybe you want (y:ys)
02:08:49 <NihilistDandy> Wait, why doesn't it work with a list?
02:08:50 <FreeFull> I probably do
02:09:28 <FreeFull> Ok, now I'm getting different errors :D
02:10:26 <FreeFull> /=, not \=
02:10:53 <FreeFull> No instance for (Integral a) arising from a use of `mod'
02:11:04 <kmc> you should bug #haskell about it
02:11:10 <FreeFull> Ok, I will
02:11:20 <kmc> it will be about the 90,000,000,000th prime number sieve they've helped fix
02:11:50 <FreeFull> This is actually my first prime sieve
02:12:12 <FreeFull> "Hey, I am learning Haskell, what should I do? I know, prime sieve"
02:12:20 <kmc> yep
02:12:46 <NihilistDandy> FreeFull: Why doesn't the Sierpinski nesting thing work with a list?
02:13:26 <FreeFull> NihilistDandy: Because [a] and [[a],[a],[a]] have a different type
02:13:35 <NihilistDandy> Why not a list of tuples?
02:13:44 <kmc> i thought it was meant to be recursive
02:13:47 <NihilistDandy> f a 0 = []
02:13:47 <NihilistDandy> f a b = (a,a,a) : (f a (b-1))
02:13:53 <kmc> like (((a,a,a),(a,a,a),(a,a,a)),((a,a,a),(a,a,a),(a,a,a)),((a,a,a),(a,a,a),(a,a,a)))
02:13:56 <kmc> so forth
02:14:04 <NihilistDandy> Ah
02:14:20 <kmc> you can do something like
02:15:00 <kmc> data Foo a = One a | More (Foo (a,a,a))
02:15:19 <shachaf> 3Foo > /me
02:15:32 <kmc> this data type includes the complete ternary trees of every depth
02:15:52 <shachaf> I still find polymorphic recursion weird.
02:16:12 <kmc> it's probably not something you want to mess around with if you're just starting learning haskell
02:16:31 <kmc> i mean, mess around with it and get your brain tied in crazy knots cause that's fun and that's most of why people learn haskell
02:16:43 <kmc> but don't expect it to be the right way to do any beginner-level thing
02:17:08 <kmc> FreeFull: why are you learning haskell?
02:19:36 <FreeFull> Because I wanted to learn a functional language that isn't Lisp
02:20:08 <kmc> many lisp programmers will try to convince you lisp is not a functional language
02:20:16 <kmc> "functional language" is a pretty arbitrary category
02:20:18 <shachaf> Many Haskell programmers will, too.
02:20:34 <shachaf> Especially due to the lack of {--} comments.
02:20:36 <kmc> yeah
02:20:42 <kmc> that's a key property of functional languages
02:20:49 * shachaf has given up on convincing people that words mean anything.
02:21:04 <kmc> it's better to convince them that words don't mean anything
02:21:05 <shachaf> If I need to talk about a meaning and there's any disagreement, I can just introduce a new word.
02:21:18 <shachaf> s/thing/ particular thing/
02:21:44 <shachaf> Sometimes it's still fun, though.
02:21:47 <NihilistDandy> We'd better remove words from Prelude, then
02:21:57 <shachaf> Yesterday I was talking about the meaning of "magic" in the other channel.
02:22:09 <shachaf> I think "magic" means "primitive".
02:22:18 <shachaf> I was surprised that anyone disagreed.
02:24:01 <kmc> it often means "complicated shit i don't want to explain"
02:24:16 <kmc> or "actually simple shit i want to make sound difficult"
02:24:26 <shachaf> Right.
02:24:43 <shachaf> Either way it's "something I'm taking as a primitive for the purpose of this discussion".
02:24:48 <FreeFull> #haskell is ignoring me
02:25:22 <FreeFull> Or maybe not
02:27:23 <kmc> yes, have patience :)
02:29:53 <shachaf> I have a "Win-X" key on my laptop.
02:30:10 <shachaf> It's very easy to press accidentally.
02:30:20 <kmc> windex key
02:31:03 -!- DHeadshot has joined.
02:32:47 <shachaf> kmc: Did you read _Three Men in a Boat_?
02:32:51 <kmc> yes!
02:32:53 <kmc> it was great
02:36:51 <FreeFull> Apparently it was a problem with the type definition
02:56:37 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:20:01 -!- mig22 has joined.
03:47:40 <shachaf> kmc: Your FAQ is the second Google result for «haskell faq» now.
03:49:38 <elliott> what's the first result
03:49:48 <shachaf> @google haskell faq
03:49:50 <lambdabot> http://www.haskell.org/haskellwiki/GHC:FAQ
03:49:50 <lambdabot> Title: GHC/FAQ - HaskellWiki
03:56:43 -!- ogrom has joined.
04:58:28 -!- copumpkin has joined.
05:05:23 -!- ogrom has quit (Ping timeout: 268 seconds).
05:07:08 -!- NihilistDandy has quit.
06:11:13 -!- ogrom has joined.
06:35:24 -!- kinoSi has quit (Read error: Connection reset by peer).
06:35:51 -!- kinoSi has joined.
06:43:51 -!- mig22 has quit (Quit: mig22).
07:46:29 -!- mig22 has joined.
07:59:17 -!- elliott has quit (Ping timeout: 248 seconds).
08:09:41 -!- epicmonkey has joined.
08:21:21 -!- Vorpal has joined.
08:25:06 <atehwa> !eval (set *react-threshold* 0.5)
08:26:47 <atehwa> xxxx
08:26:52 <atehwa> !eval (set! *react-threshold* 0.5)
08:27:34 -!- aloril has quit (Ping timeout: 244 seconds).
08:34:54 <FreeFull> !eval (* 2 2)
08:38:55 -!- monqy has quit (Quit: hello).
08:39:18 -!- aloril has joined.
08:41:50 -!- epicmonkey has quit (Ping timeout: 268 seconds).
08:42:58 -!- oerjan has joined.
08:46:41 -!- monqy has joined.
08:48:29 -!- ogrom has quit (Quit: Left).
08:49:06 -!- ogrom has joined.
08:49:19 <Sgeo> !eval (/ 1 0)
08:52:24 <oerjan> based on the logs, i am starting to think that psyk is a bot.
08:52:44 <oerjan> `pastelogs <psyk>
08:53:24 <HackEgo> No output.
08:53:27 <oerjan> `pastelogs <psyk>
08:53:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6710
08:53:55 <itidus21> `pastelogs psyk
08:54:03 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1713
08:55:54 <oerjan> hm from your paste it looks like it may be atehwa's.
08:56:30 <oerjan> oh well maybe i won't ban it then.
08:56:35 <oerjan> (yet.)
09:00:26 <atehwa> oerjan: you and elliott found it irritating, and it's not very important for me to keep it here
09:00:36 <oerjan> i just found elliott's complaint
09:00:42 <atehwa> so... should I take it away already?
09:00:52 <oerjan> atehwa: well i find it somewhat impolite.
09:01:06 <shachaf> GET IT OUT OF HERE ATEHWA
09:01:08 <oerjan> elliott would probably hate it regardless :P
09:01:59 <oerjan> atehwa: assuming it doesn't have any actual _useful_ features, probably.
09:02:11 <shachaf> @dice 3d10
09:02:12 <lambdabot> 3d10 => 12
09:02:16 <shachaf> Unlike lambdabot.
09:02:38 <shachaf> Goo dol lamb da bot.
09:02:48 <oerjan> we're not very strict on the definition of "useful" here :P
09:03:17 <olsner> fungot: show your usefulness
09:03:19 <fungot> olsner: there! there it is! but by the time we're through with you, you'll be in danger. open hatch.! it's no use for you anymore, right! right. wrong! please return
09:03:20 <shachaf> itidus21 isn't useful, and yet we let it stay.
09:03:32 <itidus21> yeah
09:03:48 <oerjan> shachaf: well the judges cannot quite agree on whether it passes the turing test or not
09:05:05 <shachaf> oerjan: Did you hear you're supposed to ban me?
09:05:18 <shachaf> For not passing the Turing test.
09:05:34 <oerjan> shachaf: several times, yes.
09:05:43 <oerjan> maybe not for that exact reason.
09:05:50 <olsner> there should be a channel filled with bots that don't like to have humans in their channel
09:05:53 <shachaf> <elliott> hi oerjan, my name is elliott and im the real elliott. plus you should ban shachaf
09:06:18 <oerjan> ah yes that sounds like elliott at least in parts.
09:06:51 <shachaf> <ørjan> /kickban shachaf pretending to be elliott
09:07:07 <oerjan> shachaf: but elliott doesn't want to ban you after he realized you like it
09:07:21 <itidus21> <shachaf> i don't really want to be banned
09:07:30 <oerjan> also ø is afaik not a legal irc nick character
09:07:37 <olsner> I don't want shachaf to be banned
09:08:07 <shachaf> <ørjan> oerjan: i do what i want dude. if i say its a legal irc nick characters, its a legal irc nick cahractedrrs
09:08:13 <oerjan> olsner: get out of here!
09:08:22 <olsner> oerjan: why!
09:08:25 <shachaf> <ørjan> dont mess with the ørjan, yo
09:08:48 <oerjan> olsner: because?
09:09:07 <olsner> that's not much of a reason
09:09:26 <oerjan> indeed, it's about the shortest.
09:09:49 <shachaf> <ørjan> im gonna kickban you to the stone age, dude. get outta here alright??
09:09:59 <shachaf> That's ørjan, always getting into trouble.
09:10:06 <oerjan> well then maybe it's sunny outside and you should run barefoot and frolic or something.
09:10:29 <oerjan> i should stop encouraging shachaf
09:10:47 <oerjan> or else elliott will be annoyed.
09:11:05 <shachaf> It's true that if you don't stop encouraging shachaf, elliott will be annoyed.
09:11:07 <atehwa> I like olsner's suggestion
09:11:10 <shachaf> It's also true that if you do stop encouraging shachaf, elliott will be annoyed.
09:11:16 <atehwa> I don't know about the definition of usabitility
09:11:32 <atehwa> the bot doesn't let anyone !eval but me :(
09:11:41 <oerjan> how rude!
09:11:48 <atehwa> the bot can be taught about esoteric programming, though.
09:11:48 <shachaf> @eval hello there
09:11:55 <oerjan> well that's ok fungot doesn't let anyone but fizzie ^ignore
09:11:56 <fungot> oerjan: yes, it's been awhile prometheus!
09:12:03 <shachaf> @eval is the most useless lambdabot command.
09:12:30 <shachaf> @help eval
09:12:30 <lambdabot> eval. Do nothing (perversely)
09:12:33 <shachaf> process_ _ "eval" _ = return []
09:12:48 <atehwa> Sgeo: good try, but usually we just say !eval ((lambda (x) (x x)) (lambda (x) (x x)))
09:12:53 <oerjan> at least it is perverse.
09:13:24 <shachaf> @thank you
09:13:25 <lambdabot> Maybe you meant: thank you thanks
09:13:34 <shachaf> lambdabot has a command called "thank you".
09:13:37 <atehwa> psyk: did you know that esoteric programming is really cool?
09:13:38 <shachaf> Which you can't run.
09:13:40 <psyk> atehwa: no
09:13:48 <shachaf> psyk: Did you know that GO AWAY?
09:13:51 <psyk> shachaf: I do some
09:13:57 <oerjan> atehwa: you appear to have lousy tab completion hth
09:13:58 <shachaf> <ørjan> go away psyk, no one likes you
09:14:19 <atehwa> ?
09:14:44 <atehwa> ah, but I was really talking to Sgeo
09:14:53 <oerjan> atehwa: oh wait Sgeo actually said something long ago
09:14:54 <atehwa> 11:49 < Sgeo> !eval (/ 1 0)
09:15:33 <shachaf> Sgœ
09:15:47 <shachaf> I DON'T CARE THAT IT'S BACKWARDS.
09:15:54 <atehwa> tadaa
09:15:56 <fizzie> I suppose I could've made ^ignore a free-for-all command, really.
09:16:12 <oerjan> shachaf: perhaps thank you was lost in a refactoring
09:16:13 <atehwa> psyk: you seem to be more "go away" -oriented than "esoteric"-oriented.
09:16:21 <psyk> atehwa: I never seem to be spastic? Or?
09:16:23 <shachaf> oerjan: Huh?
09:16:54 <atehwa> Maybe I'll feed a mass of #esoteric's logs into psyk and _then_ you'll see how amiable it can be.
09:16:56 <oerjan> shachaf: it probably worked once, and then someone started splitting into words before looking up commands, or something
09:17:27 <atehwa> psyk: what do you know about brainfuck?
09:17:30 <psyk> atehwa: not much
09:18:28 <atehwa> psyk: do you know anything about unlambda, either?
09:18:31 <psyk> atehwa: joo joo
09:18:53 <fizzie> At least speaking in Finnish every now and then isn't out-of-place on #esoteric at all.
09:18:53 <atehwa> see, she just doesn't know much, it's frustrating
09:19:00 <atehwa> right :)
09:19:14 <fizzie> It's no #esoteric-en, after all.
09:19:52 <atehwa> psyk: maybe I'm just going to teach you a bit offline so you'll be ready for the wide world.
09:19:57 <shachaf> <ørjan> finnish = esoterickest language
09:19:58 <psyk> atehwa: Or maybe you're shit.
09:20:08 <shachaf> <ørjan> behold, for i am the might ørjan-gutan!!
09:20:15 <oerjan> that's a new one.
09:20:18 <atehwa> psyk: could be, at least I was behaving in a condescending way.
09:20:26 <psyk> atehwa: I doubt. You have no feet.
09:20:52 <olsner> fizzie: appropriately enough, I think #esoteric-en is exclusively finnish
09:21:06 <oerjan> mitä!
09:21:11 <olsner> at least it should be now that I left
09:21:21 <atehwa> !eval (irc-write '(message quit "Yes, I can see the light. Oh and you have no feet."))
09:21:22 -!- psyk has quit (Quit: Yes, I can see the light. Oh and you have no feet.).
09:22:21 <shachaf> oerjan: Are you an oerjan-gutan?
09:22:52 <olsner> ooh, http://translate.google.com/#fi|en|mitä has a nice list of other things mitä can mean
09:22:56 <olsner> is that a new feature?
09:23:21 <nortti> olsner: yes, #esoteric-en is boring
09:23:42 * oerjan chimp-slaps shachaf
09:24:03 <fizzie> olsner: It's not very new, I don't think. It only appears when you just put in a single word.
09:25:08 <oerjan> olsner: hm i actually think that's a list of what "what" can mean
09:25:32 <oerjan> no wait
09:25:36 <oerjan> scratch that
09:26:09 <olsner> what
09:26:17 <oerjan> mitä?
09:26:21 <nortti> hä?
09:26:24 <fizzie> Huh.
09:26:27 <olsner> mitä
09:26:40 <oerjan> hän häh
09:26:41 <fizzie> Mitä sinä sanoa.
09:27:48 <oerjan> Mitä olet hullu
09:27:58 <olsner> Hmm, translating that from english to finnish produces "Mita et tahdo sanoa."
09:28:28 <nortti> that meant "what you don't want to say"
09:28:46 <olsner> I wonder how "mitä sinä sanoa" means that in english
09:28:51 <oerjan> sinä qua non
09:29:05 <fizzie> I would say it's kind of like "what you say". It's ungrammutztical.
09:29:36 <olsner> *ungrammary
09:29:46 <fizzie> Ungrandmothery.
09:30:25 <oerjan> unmammary
09:31:21 <olsner> an mammary
09:32:03 <oerjan> :t Node
09:32:05 <lambdabot> forall a. a -> Forest a -> Tree a
09:32:46 <fizzie> You can't see the Forest for the Trees.
09:33:10 <oerjan> hm that's not right for what FreeFull wanted
09:33:35 <oerjan> :t Mu
09:33:37 <lambdabot> Not in scope: data constructor `Mu'
09:33:40 <oerjan> :k Mu
09:33:41 <lambdabot> (* -> *) -> *
09:33:45 <Sgeo> I should start a blog.
09:34:05 <Sgeo> This way everyone gets to enjoy my programming language ADD!
09:34:24 <oerjan> at least it would be a blog with variation!
09:34:57 <fizzie> Perhaps even a blog with skewness and kurtosis.
09:35:11 <oerjan> @wn kurtosis
09:35:13 <lambdabot> No match for "kurtosis".
09:35:17 <oerjan> shocking
09:35:20 <fizzie> It's the fourth central moment.
09:35:41 <oerjan> so not a painful chronic disease, check
09:35:47 <olsner> "The "Darkness" data is platykurtic, while "Far Red Light" shows leptokurtosis."
09:35:49 <itidus21> and it's not nirvana
09:36:14 <fizzie> @all-dicts kurtosis
09:36:15 <lambdabot> No match for "kurtosis".
09:36:18 <fizzie> Huh.
09:36:21 <oerjan> "One common measure of kurtosis, originating with Karl Pearson, is based on a scaled version of the fourth moment of the data or population, but it has been argued that this measure really measures heavy tails, and not peakedness."
09:36:58 <fizzie> I suppose there's a bit of a debate.
09:37:12 <fizzie> But http://en.wikipedia.org/wiki/Moment_(mathematics) does list is as the name for the fourth moment.
09:37:47 <itidus21> mathematics really fucked the word moment
09:38:58 <oerjan> fizzie: well it looks like apart from that one paragraph, most of the kurtosis article uses that too.
09:39:06 <Sgeo> http://sgeoster.blogspot.com/
09:39:11 <Sgeo> Ok, this looks very bizarre
09:39:35 <fizzie> "kurtosis, n. Pronunciation: /kɜːˈtəʊsɪs/. Etymology: modern Latin, < Greek κύρτωσις a bulging, convexity, < κυρτός bulging, convex. Statistics. A shape characteristic of a frequency distribution that reflects the sharpness of the peak (for a unimodal distribution) and the shortness of the tails, and is generally measured by the quantity μ4/μ22 or its excess over 3 (μ4 ...
09:39:41 <fizzie> ... and μ2 being the fourth and the second moments about the mean of the distribution). 1905 K. Pearson in Biometrika IV. 181, I have already called β2−3 = η the degree of kurtosis. --"
09:39:42 <oerjan> itidus21: hey the physicists helped a lot
09:40:36 <olsner> oh, how nice, blogspot.com now redirects me to blogspot.se
09:40:53 <fizzie> It has redirected me to blogspot.fi for a while now.
09:40:56 <itidus21> what i really mean is i love it when knowing the common interpretation of a word leaves one baffled when faced with a scientific or mathematical use of the word
09:41:15 <olsner> I suppose the next version will helpfully translate everything to swedish as well
09:41:18 <fizzie> And after the July trip, the laptop's Chromium used google.be for all queries.
09:41:28 <olsner> what's the point with all the TLD redirection crap?
09:41:47 <itidus21> olsner: perhaps it's red tape
09:42:04 * Sgeo ponders code-walkers in the presense of ... fexprs is the wrong thing to call them
09:43:47 * Sgeo still isn't sure how he's going to do quasiquoting in his Tcl-like
09:44:04 <olsner> if it's only the address that changes it's just vaguely annoying (and of course completely useless), if it does change content I find it a bit scary that it does
09:44:14 * oerjan notes that the blogspot.no version doesn't actually have any norwegian in it
09:45:06 <itidus21> olsner: it could be a systematic increase in complication of the web
09:45:11 <nortti> oerjan: it is just for country based censorship (or content filtering if you like that term more)
09:45:44 <oerjan> olsner: i'm just thinking how this must mess up reddit's link reposting detection...
09:45:47 * Sgeo isn't sure what code snippits are worth posting or not
09:45:57 <Sgeo> [let] in Tcl?
09:46:06 <olsner> to facilitate for countries who want to do DNS-based filtering or redirection of google contents?
09:46:40 <oerjan> as well as my visited link detection, but i guess i can only blame IE for only logging the final URL
09:46:44 <itidus21> Sgeo: ok. i have a theory about this one. begin by considering how you react to code snippets, and why
09:47:20 <Sgeo> "Interesting, but I can't imagine copy/pasting this into a project, because copy/pasting makes me feel gross"
09:47:23 <itidus21> this way you can ignore anyone in your audience who isn't you
09:47:55 <itidus21> i don't know how people figure out how other people react to things
09:48:20 <Sgeo> When people object to Tcl's variable scoping, what exactly are they objecting to?
09:48:39 <Sgeo> Because I can write [let] just fine in Tcl 8.5
09:48:43 <olsner> how does TCL scope variables?
09:49:14 <itidus21> most of my ideas will make a business go broke
09:49:47 <Sgeo> As far as I can tell, lexically. Lemme try to check
09:50:08 <olsner> lexically is, I think, the most sane way to scope variables
09:50:33 <itidus21> like right now i'm thinking about an animatronic showman in the middle of a retail store
09:50:56 <Sgeo> http://pastie.org/private/ugtyuyy7idvprpmotqpddq
09:51:04 <itidus21> and shoppers in the store vote on what they want the animatronic to talk about with their web-connectable devices
09:51:07 <olsner> shell has that nice thing where there is mostly only a single scope that all variables share
09:51:32 <olsner> (unless you use fancy features like local, or subshells)
09:52:24 <Sgeo> What's the fancy feature of "The way to get a new lexical scope is to make a proc"?
09:52:26 <olsner> makes writing recursive functions somewhat fun before you get it
09:54:27 <Sgeo> Wait, I now have 32 pageviews?
09:54:30 <Sgeo> Seems a bit excessive
09:54:41 <olsner> 50% of #esoteric is reading your blog!!!
09:55:37 <olsner> your blog was empty last time I checked, though, have you posted anything yet?
09:56:02 -!- monqy has quit (Quit: hello).
09:56:41 <Sgeo> olsner, just the About me post
09:59:29 <oerjan> perhaps all the lurkers in #esoteric really _are_ paying attention
09:59:59 <oerjan> also, web spiders maybe?
10:00:08 * oerjan did visit though.
10:01:23 * oerjan suddenly realizes that the "web" in web spider really _shouldn't_ be clarifying, since real spiders also have webs
10:02:19 <FreeFull> The intercobweb
10:02:27 <oerjan> oh and there's probably a new blogs list somewhere which some people probably are looking at.
10:03:38 <olsner> and spambots
10:04:39 <olsner> spiders make webs, but web spiders just traverse the pre-existing web ... shouldn't webmasters be the spiders?
10:05:09 <olsner> maybe there are some non-spider insects that will take over spider webs, those would be a good name for spiders
10:05:18 <Sgeo> <aspect> if I haven't already nudged you towards it, check out the "Playing Scheme" page where I made a good effort to turn Tcl into a lisp-1
10:05:24 <Sgeo> ....welp, that was my plan
10:05:43 <olsner> implementing a lisp in a language is seldom a novel idea :)
10:05:53 <shachaf> ølsner
10:06:12 <olsner> pilsner
10:06:48 <shachaf> öíøßñéë
10:07:46 <oerjan> olsner: spiders aren't insects hth
10:07:52 <olsner> shachaf: was that supposed to be a rendition of olsner or just some random letters?
10:07:53 <Sgeo> olsner, I think Tcl has novel ideas compared to CL and Scheme
10:08:05 <shachaf> olsner: No, olsner would be óøßñéë
10:08:08 <Sgeo> So a blend of those is more ideal
10:08:45 <olsner> oerjan: I think that's a sign that "insect" is incorrectly defined, because spiders are obviously insects
10:15:40 <nortti> have you had any experience with statical builds at http://www.lamarelle.org/mo-zi-lla/mozilla.php
10:16:19 <nortti> the gtk1 ones
10:16:39 <nortti> I get error that it can't load libgtk-1.2.so.0
10:17:22 <olsner> that'd be odd for a supposedly static build
10:17:32 <nortti> yeah
10:18:48 <nortti> how can I check what libs some executable requires?
10:19:09 <fizzie> "ldd blah"
10:19:51 <nortti> firefox-bin: error while loading shared libraries: firefox-bin: cannot open shared object file
10:20:06 <fizzie> Well, that sounds reasonably static.
10:20:11 <fizzie> Perhaps.
10:21:17 <nortti> but with static binary it says statically linked
10:21:31 <olsner> check if firefox-bin is a shell script forwarding to a different actual binary?
10:21:44 <fizzie> That's what "firefox" is supposed to be.
10:21:51 <fizzie> (To "firefox-bin".)
10:21:51 <nortti> firefox is shell script, firefox-bin is binary
10:21:52 <olsner> hmm, right
10:22:07 <olsner> maybe it's an a.out binary or something
10:22:21 <nortti> I don't think so
10:22:23 <fizzie> These look far newer than that.
10:22:29 <nortti> it has ELF header
10:22:31 <fizzie> Anyway, what does 'file' say about it?
10:22:46 <fizzie> The ones I tried seemed very dynamically linked.
10:23:07 -!- ais523 has quit.
10:23:23 <olsner> otoh, maybe you can just install gtk 1.2?
10:23:24 <nortti> ok. I had to use ./firefox-bin
10:24:33 <fizzie> http://sprunge.us/daEA funny how the "static" build refers to more shared libs than the "shared" build.
10:24:54 <nortti> it links to linux-gate.so.1 libmozjs.so libxpcom.so libxpcom_core.so libplds4.so libplc4.so libnspr4.so libpthread.so.0 libdl.so.2 libgtk-1.2.so.0 libgdk-1.2.so.0 libgmodule-1.2.so.0 libglib-1.2.so.0 libXi.so.6 libXext.so.6 libX11.so.6 libm.so.6 libsmime3.so libssl3.so libnss3.so libsoftokn3.so libXt.so.6 libxpcom_compat.so libstdc++.so.6 libgcc_s.so.1 libc.so.6 libxul.so libasound.so.2 /lib/ld-linux.so.2 libXau.so.6 libXdmcp.so.6 libnssutil3.so libsqlite3.so libS
10:26:44 -!- MoALTz has joined.
10:26:45 <olsner> the static build might have succeeded in linking something statically that had a bunch of dependencies of its own
10:26:53 <nortti> ...
10:27:04 <olsner> and somehow ended up dynamically linking to those dependencies? I dunno
10:27:24 <fizzie> Yes; the page isn't exactly clear what a "static build" means in Firefox 2 parlance.
10:27:41 <nortti> god damnit. gtk1.2 conflicts with gtk2
10:27:45 <fizzie> Clearly it doesn't appear to mean "results in a binary with GTK etc. statically linked".
10:28:00 <olsner> and given that xpcom and stuff are listed, I suspect that some parts of firefox/mozilla are not possible to link together statically
10:29:24 -!- oerjan has quit (Quit: leaving).
10:31:41 <fizzie> +# A Firefox static build is really a meta-component build, not truly static
10:31:41 <fizzie> +if test "$MOZ_BUILD_APP" = "browser" -a -n "$BUILD_STATIC_LIBS"; then
10:31:41 <fizzie> + MOZ_META_COMPONENT=1
10:31:43 <fizzie> +fi
10:32:09 <olsner> is there a tool that can take a dynamically linked executable and link some or all of the so files into it?
10:32:56 -!- derdon has joined.
10:33:31 <fizzie> olsner: Apparently there are a couple; don't know how well they'd cope with something like Firefox though.
10:33:51 <fizzie> http://magicermine.com/ and http://statifier.sourceforge.net/ at least.
10:34:10 <olsner> magic ermine? not the most obvious name for such a tool
10:34:33 <fizzie> It's not exactly the same as statically linking in the first place, since the code is built to deal with all the dynamic-linking hoops to jump through.
10:35:27 <olsner> right, so it might be less efficient than it would be if it was build for static linkage in the first place?
10:36:03 <olsner> otoh, if that really mattered for some piece of code you might have made sure that code was in the same library in the first place
10:44:10 <nortti> I'm tired of fiddling with gtk1.2 now? can someone point me to already built shared gtk1.2?
10:44:21 <olsner> I like how this graph includes strtoul: http://statifier.sourceforge.net/statifier/data_flow.html
10:45:13 <olsner> I suppose the author spent way too much time making that particular utility work
10:46:22 <fizzie> It's kind of a trick.
10:46:25 <olsner> nortti: get that package that conflicted with gtk2, unpack it somewhere without installing
10:47:04 <nortti> olsner: I was compiling from source
10:47:21 <Gregor> It would probably be a much simpler solution to just pack together a program and all of its dependencies into a tarball, then attach a static binary to that that “executes” it intelligently.
10:47:29 <olsner> "Now we have almost statified the whole binary, but one problem remains: these three values are in hexadecimal notation."
10:48:37 <olsner> Gregor: too boring
10:49:42 <fizzie> olsner: statifier is kind of a trick, really; from what I saw about the (proprietary) Ermine, it does the actual work by itself too, and tries to deal with library-specific data files and whatnot too.
10:50:47 <olsner> the ermine pages didn't say a whole lot, but sounded like it might be doing something more like automatic packaging than staticification
10:52:28 <olsner> "Ermine-packed applications are not snapshots: instead they can be thought of as small virtual machines."
10:52:46 <olsner> ... otoh, the sentence before that says that ermine creates "self-contained executables from dynamically-linked applications"
10:52:50 <fizzie> Well, it's proprietary, so the pages are of course mostly useless.
10:53:05 <fizzie> But the "Features" page does say that it will not affect the file system of the host, and can be run from read-only media.
10:54:23 <fizzie> Which sounds slightly difficult to do if you wanted to use the system's dynamic loader to do all the heavy lifting.
10:55:03 <olsner> is it "legal" to redistribute open-source programs modified by magic proprietary tools?
10:55:06 <fizzie> They have some "Ermine'd" demo files but I need to head to the shoppe, to use an oko-term (I think), instead of taking a peek at them.
10:55:21 <fizzie> "Files packed with Ermine are large, but may neither be modified with the strip program or on-the-fly executable compressors like UPX. If you do so, they will stop working."
10:55:54 <olsner> sounds like their magic is a bit brittle
10:56:13 <fizzie> Also, what is "Western Quake 3"? The link goes to domain-squatter.
10:56:30 <fizzie> Apparently an "Old West" Quake 3 mod.
10:56:33 <fizzie> "Hokay."
10:56:57 <nortti> for some reason that reminds me of damn small linux's packages that contained shell scripts that mounted the images contained in them
10:57:47 -!- pikhq_ has joined.
10:58:07 -!- pikhq has quit (Ping timeout: 256 seconds).
11:00:39 <olsner> all linux software should be packaged with something similar to that ermine thing, so that you can install it anywhere and not worry about dependencies
11:00:47 <olsner> ... and so that it can remain working for several years even after revolutions like gtk1.2/gtk2.0 have happened
11:00:49 <kmc> why am i awake
11:01:16 <olsner> because it's one a-clock and the sun is up
11:01:40 <kmc> it is not one a-clock here
11:01:43 <nortti> olsner: that is exactlt what damn small linux's packages were
11:02:26 -!- david_werecat has quit (Ping timeout: 252 seconds).
11:03:28 <olsner> kmc: maybe your mind is in finland? pretty sure it's daytime there
11:03:40 <nortti> well it required root privledges but still
11:04:11 <olsner> non-root users should be able to mount things
11:04:20 <nortti> losetup?
11:04:30 <nortti> what?
11:05:01 <olsner> well, with some appropriate limits on what/how/where to mount and the resulting permissions, otherwise there are security issues
11:05:08 <nortti> yes
11:05:34 <nortti> you can mount as normal user if there is correct /etc/fstab entry
11:07:24 <kmc> there are other mechanisms for letting users mount stuff too
11:07:51 <kmc> on linux users can typically mount fuse filesystems where the fuse process runs as themselves
11:08:18 <olsner> is that safe?
11:08:48 <olsner> i.e. is the fuse system in the kernel safe from evil fuse processes?
11:09:10 <kmc> it's supposed to be
11:09:24 <kmc> if you're asking "are there bugs" then of course, it's linux, there are bugs
11:10:38 <olsner> Obviously.
11:14:35 <olsner> in my operating system, all file systems will be user-space file systems and safety from untrusted file systems will be built in
11:15:26 <nortti> same here
11:17:14 -!- Phantom_Hoover has joined.
11:18:50 <olsner> it'll be something like any process implementing the directory interface can be mounted anywhere
11:20:09 <nortti> wow. netsurf is better rendering wise than gecko 1.8
11:20:40 <nortti> hv3 also
11:20:55 <nortti> on the other hand ff2 has decent javascript
11:21:25 <nortti> sorry, I mean Bon Echo
11:26:25 -!- ogrom has quit (Read error: Connection reset by peer).
11:26:39 -!- epicmonkey has joined.
11:27:26 * Sgeo starts running around shouting "booleans are bad!"
11:27:31 <nortti> why?
11:28:30 <olsner> typedef long double BOOL;
11:28:41 <kmc> they don't carry a proof
11:28:49 <nortti> shouldn't char be enough?
11:29:18 <Sgeo> http://existentialtype.wordpress.com/2011/03/15/boolean-blindness/ just read that, not sure what to think of it
11:29:30 <olsner> char can only hold 8 bits of truthiness
11:29:33 <Sgeo> read as in past tense, not imperative
11:30:46 <nortti> wow... midori is using 41.2MB of RAM
11:31:48 <nortti> by the way are there any browsers with emebedded gecko for linux?
11:32:46 <nortti> now 42.6MB
11:33:24 <nortti> 44.5MB
11:33:38 -!- asiekierka_ has joined.
11:33:38 -!- asiekierka_ has quit (Client Quit).
11:34:02 -!- asiekierka has joined.
11:34:13 <nortti> how can a browser be so bloated?
11:34:32 <nortti> and midori kinda lightweight
11:34:56 <olsner> opera mini (for j2me, at least) runs on <= 2MB of heap
11:35:05 <nortti> I know
11:35:28 <nortti> but it doesn't have html rendering engine running localy
11:35:53 <olsner> no
11:36:19 <Sgeo> Mosaic!
11:36:30 <nortti> links2 uses around 2.5MB on the same page midori is now loading
11:36:31 <Sgeo> (I have no idea how much space Mosaic took up)
11:36:37 <nortti> Sgeo: mosaic-ck!
11:36:47 <nortti> too bad it doesn't like lesstiff
11:37:19 -!- atriq has joined.
11:37:32 <nortti> by the way has anyone of you got arena web browser running=
11:37:38 * Sgeo almost wishes ViolaWWW caught on
11:37:51 <nortti> why?
11:38:08 <nortti> because of it's interesting html extensions?
11:38:14 <nortti> *its
11:38:33 <olsner> oh, it has "page cloning (multiple windows)"
11:38:38 <nortti> which one is used in which situation?
11:39:00 <Sgeo> nortti, the scripting language
11:39:16 <nortti> erwise is pain in the ass to get to build
11:39:29 <nortti> I never got it to run correctly
11:40:09 <Sgeo> Actually, hmm, the language is kind of ugly
11:40:49 <kmc> every language is kind of ugly
11:40:57 <nortti> it id better than javascript?
11:41:04 <nortti> *is it
11:41:16 <Sgeo> nortti, no idea, I barely know a thing about it
11:43:36 <Sgeo> "What follows is a screendump of a demo of an embedded viola application that lets readers of this HTML page communicate by typing or drawing. Like the chess board application above, this chat application can stand-alone (and have nothing to do with the World Wide Web), or be embedded into a HTML document.
11:43:36 <Sgeo> By the way, to make this possible, a multi-threaded/persistent server was written to act as a message relay (and to handle HTTP as well)."
11:44:37 <nortti> awesome
11:44:43 <Sgeo> Sounds AJAXy many years before XMLHttpRequest
11:45:24 <nortti> I should start using violawww and complain about pages not supporting violawww's scripting language
11:51:05 <kmc> also complain if they use more than 6 bytes of memory
11:51:14 <nortti> :D
11:52:10 <nortti> why isn't there a way to run j2me software on linux
11:55:27 -!- Zuu has quit (Ping timeout: 260 seconds).
12:01:15 -!- atriq has quit (Ping timeout: 276 seconds).
12:15:24 -!- Zuu has joined.
12:15:26 -!- Zuu has quit (Changing host).
12:15:27 -!- Zuu has joined.
12:22:33 <fizzie> nortti: There isn't? I was pretty sure there was a J2SE-based J2ME emulgator, I don't see why that wouldn't run under Linux as well as anywhere.
12:22:41 <fizzie> "Write once, run anywhere," after all.
12:23:31 <fizzie> PhoneME project page seems to be dead. :/
12:23:48 <fizzie> Or maybe it's just moved.
12:26:12 <fizzie> NetBeans has a J2ME emulgation thing too.
12:30:29 -!- atriq has joined.
12:32:59 -!- atriq has quit (Read error: Connection reset by peer).
12:35:04 -!- kinoSi has quit (Read error: Connection reset by peer).
12:35:32 -!- kinoSi has joined.
13:04:33 <olsner> nortti: microemulator
13:05:14 <olsner> also http://www.opera.com/developer/tools/mini/ if you manage to get a java plugin working in linux
13:13:27 <Phantom_Hoover> "Water is considered the least toxic chemical compound, with a LD50 of 90 g/kg or more in rats.[3]" -- WP
13:13:41 <Phantom_Hoover> Wait, wouldn't saline solution be even less toxic?
13:15:37 <olsner> "rapid infusion of normal saline can cause metabolic acidosis"
13:18:00 <Phantom_Hoover> Hmm, I'm not sure they keep LD50 data of solutions.
13:20:13 <Phantom_Hoover> But, from that same paragraph: "[saline] has long been believed to be the safest fluid to give quickly in large volumes."
13:26:03 <fizzie> Phantom_Hoover: "least toxic chemical compound".
13:26:37 <Phantom_Hoover> Ah.
13:29:52 <Phantom_Hoover> Hmm, I wonder if something like perfluorohexane might beat even that.
13:30:29 <Phantom_Hoover> Its LD50 is ">5000mg/kg", which is unhelpful.
13:30:49 -!- oonbotti has quit (*.net *.split).
13:30:49 -!- mtve has quit (*.net *.split).
13:30:49 -!- glogbackup has quit (*.net *.split).
13:30:49 -!- atehwa has quit (*.net *.split).
13:30:49 -!- HackEgo has quit (*.net *.split).
13:30:49 -!- EgoBot has quit (*.net *.split).
13:30:49 -!- SimonRC has quit (*.net *.split).
13:30:49 -!- ssue has quit (*.net *.split).
13:30:49 -!- shachaf has quit (*.net *.split).
13:30:49 -!- comex has quit (*.net *.split).
13:32:24 <olsner> I read ">5000g/kg" for a while, before realizing it was unrealistic
13:34:27 -!- MoALTz_ has joined.
13:35:15 <kmc> haha
13:35:58 <Phantom_Hoover> That just represents taking a bath in it.
13:36:16 <olsner> I wonder what the LD50 of excessive body fat is
13:36:48 <olsner> "how fat would you have to be to be 50% dead"
13:37:07 <kmc> what about helium
13:37:27 <kmc> assuming you get enough oxygen in between, shouldn't it be possible to breathe more or less an arbitrary amount of helium without any effect?
13:37:38 <olsner> some necessary substances should come with both a positive and negative LD50's
13:37:41 <kmc> i guess that doesn't count as a "dose" then
13:37:59 -!- MoALTz has quit (Ping timeout: 272 seconds).
13:40:00 <olsner> apart from the minimum amount of oxygen in breathing air (iirc something in the ballpark of 5%), the rest of it probably just needs to be reasonably inert, and I see no reason for helium to be very different from nitrogen there
13:40:06 <Phantom_Hoover> kmc, whatever the human pressure limit is.
13:40:13 <Phantom_Hoover> Oh wait, hmm.
13:40:31 <Phantom_Hoover> Narcosis might kick in pretty soon.
13:41:42 <Phantom_Hoover> WP says helium's 'relative narcotic potency' is 0.045 vs. 1 for nitrogen, and fatal pressure for nitrogen is 10 bar or so.
13:41:54 <Phantom_Hoover> > 10 / 0.045
13:41:55 <lambdabot> 222.22222222222223
13:42:17 <kmc> huh, just ran into a situation where static types would have uncovered not a correctness bug, but a performance bug
13:42:26 -!- david_werecat has joined.
13:42:40 <kmc> i was doing ''.join(a_string_here) in python
13:42:47 <kmc> because that string used to be a list
13:43:33 -!- MoALTz__ has joined.
13:43:54 <Sgeo> Maybe I should try Liskell
13:44:26 <kmc> liskell is dead
13:44:31 <kmc> it's a patch set against GHC 6.old
13:44:36 <kmc> Lisk is a bit less dead
13:46:07 -!- MoALTz_ has quit (Ping timeout: 240 seconds).
13:46:39 <olsner> apparently, xenon has a narcotic potency of 25.6
13:46:54 <Sgeo> "This software is incomplete. Don't try to use it."
13:46:57 * Sgeo sads
13:46:58 <olsner> I'd have expected noble gases to have similar (and low) potencies
13:47:29 <Phantom_Hoover> olsner, narcosis isn't caused by a reaction, though.
13:47:52 <olsner> apparently they don't even properly know what causes it
13:48:04 <kmc> Sgeo: welcome to haskell
13:48:26 <kmc> a bunch of incredibly cool ideas which are each implemented well enough to write a paper and then abandoned
13:48:53 <Phantom_Hoover> olsner, although the WP article does say that it's at least partially due to the gas dissolving inside cell walls and getting in the way.
13:48:57 <kmc> that is not universally true (GHC team are dedicated, skilled software engineers working on a 20+ year old system) but it is depressingly often true
13:49:33 <Sgeo> Is it true of CL too?
13:50:07 <kmc> don't know
13:50:24 <kmc> http://www.lambdassociates.org/blog/bipolar.htm suggests as much
13:50:27 <kmc> but it might be high-octane bullshit
13:50:58 <Phantom_Hoover> High-octane?
13:51:14 <kmc> tl;dr: Lisp is so flexible and powerful enough that you can easily DIY an 80% solution which is good enough for your purposes
13:51:15 <Phantom_Hoover> What, powerful?
13:51:31 <kmc> which means there is no culture of standardizing around mature, complete systems
13:51:31 <olsner> it may be a good description of the behavior of the particular class of lisp programmers it describes
13:52:22 <kmc> Phantom_Hoover: yeah, gasoline (in the USA anyway) is given an octane rating for power density
13:52:36 <kmc> well sorry not power density
13:52:37 <kmc> "The higher the octane number, the more compression the fuel can withstand before detonating."
13:52:37 <Phantom_Hoover> Yeah, but why apply it to bullshit?
13:52:42 <kmc> dunno
13:52:45 <kmc> it's a figure of speech
13:53:01 -!- ogrom has joined.
13:53:11 -!- MoALTz__ has quit (Quit: brb).
13:53:20 <Phantom_Hoover> High-grade would be what I'd normally use more? I dunno, it's just like high-octane seems like it'd be a more potent form of something.
13:53:30 -!- MoALTz has joined.
13:53:38 <Phantom_Hoover> Also yeah, they taught us that in chemistry for some reason.
13:53:41 <kmc> yeah i mean that it's a potent form of bullshit
13:54:14 <olsner> aww, they renamed the high-octane nightmare fuel trope :( http://tvtropes.org/pmwiki/pmwiki.php/Main/NightmareFuel
13:55:03 <Phantom_Hoover> That was actually quite a sensible idea, considering that most people just called it that anyway.
13:55:18 <Sgeo> kmc, I've seen that sentiment elsewhere about Lisp
13:55:24 <olsner> no-one thought to apply the rule of cool?
13:56:32 <Phantom_Hoover> olsner, well I think the big problem was that they had one set of nightmare fuel pages, and then another which had no obvious difference except that the stuff tends to be a bit scarier.
13:57:30 <Sgeo> kmc, more or less the same thing http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
13:57:31 <olsner> hmm, I guess that makes sense
13:58:02 <kmc> yeah in fact i'm not sure i'm summarizing that article or a different one
13:58:22 <kmc> yeah the one you just linked quotes the one i linked
13:58:25 <kmc> that's how i found it actually
13:58:33 <Sgeo> Ah
13:58:53 -!- MoALTz has quit (Ping timeout: 245 seconds).
13:59:10 <Sgeo> I think you were summarizing the one I linked more than the one you linked
13:59:22 <Sgeo> Therefore, we are living in the Tardis monad.
13:59:47 <kmc> i am suspicious of these kinds of arguments though
13:59:51 <olsner> I think this whole "lisp is powerful" idea is only prevalent among lisp weenies
14:00:22 <Phantom_Hoover> high-octane lisp
14:00:23 <kmc> because they play into a certain attitude adopted by many programmers
14:00:26 <olsner> among other things, the whole concept of powerfulness seems too poorely defined to be useful for anything except smugness
14:00:42 <kmc> "i'm a badass ninja who's too smart and clever for the dull corporate world and that's why i can't make anything useful or work with other people"
14:00:50 <kmc> olsner: i agree with that
14:00:57 <kmc> but i do think Lisp is powerful in the vague sense
14:01:10 <kmc> it's powerful in that you can do almost anything in a small amount of code
14:01:13 <kmc> but in an incomprehensible way
14:02:15 <olsner> hmm, that reminds me of perl, but the stereotypical perl coder does seem a bit different from the smug lisp weenies
14:02:21 <kmc> sure
14:02:25 <kmc> every community has their quirks
14:02:40 <kmc> and you're talking about stereotypes not actual people
14:02:46 <kmc> or even unbiased archetypes
14:03:49 <olsner> perhaps perl hackers recognize and appreciate terse and incomprehensible ugly hacks, while lisp coders don't recognize the incomprehensible part and just think it's beautiful and everyone else is stupid
14:04:26 <olsner> yeah, I don't even know any actual people that fit into any of these stereotypes
14:05:29 <kmc> yeah that seems correct from my understanding of the respective stereotypes
14:05:30 * Sgeo vaguely listens to some CL tutorial on YouTube
14:05:44 <Sgeo> Although one of the video titles mentions setq :/
14:06:02 <kmc> it's also funny how the definition of "Lisp" changes depending on what claim you're trying to make about it
14:06:14 <kmc> "Lisp is simple and elegant" => Lisp = tiny subset of R5RS Scheme
14:06:26 <kmc> "Lisp is mature and industrial-grade" => Lisp = ANSI Common Lisp
14:09:25 <Sgeo> I do think CL macros are easier to understand than Scheme macros. This may be a failing on my part though >.>
14:09:48 -!- glogbackup has joined.
14:09:48 -!- oonbotti has joined.
14:09:48 -!- mtve has joined.
14:09:48 -!- atehwa has joined.
14:09:48 -!- HackEgo has joined.
14:09:48 -!- EgoBot has joined.
14:09:48 -!- SimonRC has joined.
14:09:48 -!- ssue has joined.
14:09:48 -!- shachaf has joined.
14:09:48 -!- comex has joined.
14:10:03 -!- glogbackup has left.
14:10:03 -!- glogbackup has quit (Excess Flood).
14:11:50 <olsner> Sgeo: I think you're right
14:12:03 <olsner> I guess the hygienic macros are supposed to be sufficiently better that it's worth the extra complication
14:13:45 <kmc> Scheme's macro system almost defeats the entire point of Lisp
14:13:58 <kmc> but operatives are vastly superior to either option ;)
14:14:31 <Sgeo> Unless you want to do code-walking.
14:14:45 <kmc> how's that?
14:15:12 <Sgeo> How do you statically determine what forms are code to be processed?
14:15:37 <kmc> oh, well, i have absolutely no idea how you "statically" do anything in an fexpr language
14:16:15 <kmc> i think shutt wrote about that a bit but i did not read it :)
14:17:08 <Phantom_Hoover> kmc, googling gives no indication whatsoever what these operatives are.
14:17:31 <kmc> http://web.cs.wpi.edu/~jshutt/kernel.html
14:17:41 <kmc> http://mainisusuallyafunction.blogspot.com/2012/04/scheme-without-special-forms.html
14:21:39 -!- david_werecat has quit (Quit: Quitting...).
14:21:45 <Sgeo> kmc, hence operatives not being superior when you want to do stuff statically
14:22:03 -!- david_werecat has joined.
14:24:11 <kmc> yep
14:25:37 -!- DHeadshot has quit (Read error: Connection reset by peer).
14:25:43 -!- DH____ has joined.
14:26:53 * Sgeo vaguely considers porting some Clojure stuff to CL
14:27:46 -!- asiekierka has quit (Quit: Connection reset by PO).
14:27:52 -!- MoALTz has joined.
14:27:58 <itidus21> the way i see it, coding is a bit like space station repair
14:29:04 * kmc gets popcorn
14:29:11 <itidus21> in order to survive outside the space station you need a fancy suit, im guessing in practice such things are done with robots
14:29:28 <itidus21> but they made some wonderful tv moments
14:29:32 <olsner> coding is usually done with robots, yes
14:29:42 <itidus21> i mean.. repairs to the exterior of a space station
14:29:55 <kmc> a lot of it is done by humans in suits
14:30:00 <itidus21> wow...
14:30:03 <kmc> assembly to
14:30:04 <kmc> too*
14:30:09 <kmc> robots aren't versatile enough
14:30:09 <olsner> no, programmers don't wear suits
14:30:15 <kmc> anyway what does this have to do with programming
14:30:16 <olsner> especially not the ones that do assembly
14:31:00 <itidus21> well.. the problem is you can't do that fancy french wall-jumping in a spacesuit
14:31:17 <Sgeo> ...I don't think a straight transliteration will work
14:31:34 <itidus21> parkour
14:31:40 <kmc> is this analogy going to make any sense at any point
14:32:05 <Phantom_Hoover> Incidentally whilst trying to find out what operatives are I stumbled upon this little... gem: http://emacswiki.org/emacs/WhyDoesElispSuck
14:32:15 <itidus21> so there is this imaginary space whereby someone can do parkour on the moon
14:32:29 <Sgeo> Clojure's defmulti takes a function as an argument. Making a macro would have the macro need to see the function passed in to find out the args, which it can't do
14:32:34 <olsner> space station -> parkour on the moon -> ??? -> programming
14:32:39 <kmc> itidus21 have you considered blogging
14:32:42 <itidus21> but, it's constrained by the need for a suit
14:32:52 <kmc> "7 awesome reasons why programming is like parkour on the moon and this proves ruby is the best"
14:32:55 <kmc> => 999999999 pageviews
14:33:09 <Sgeo> Wait, can just use &rest args, but that uglies the generic.
14:33:20 <olsner> another problem with the moon is that there are no buildings to do parkour on
14:33:34 <kmc> there are a few
14:33:37 <kmc> they're far apart
14:34:02 <itidus21> kmc: it's really for the best if i don't complete the analogy
14:34:05 <Phantom_Hoover> olsner, OTOH you can jump further.
14:34:32 <Sgeo> Space suit analogy: Programming in Erlang is like fixing your space station from inside it: It should keep running during the fix.
14:34:37 <Phantom_Hoover> Man I really want them to make Assassin's Creed 4: Moon.
14:34:38 -!- nooga has joined.
14:34:47 <Sgeo> I just realized that that has nothing to do with space suits.
14:34:59 <itidus21> if i say any more and it will be a case of "i wish i stopped earlier"
14:35:48 <Phantom_Hoover> Sgeo, that'd be far better than now, when they have to turn the ISS off to fix it.
14:36:44 <Sgeo> I honestly hoped that that was where itidus21 was going.
14:37:23 <olsner> itidus21: does your analogy involve space suits being like monads?
14:37:46 <Phantom_Hoover> nonono, parkour is a monad
14:37:59 <itidus21> it is honestly best i stop where i stopped
14:38:04 <olsner> combining burritos and parkour using monad transformers
14:40:01 <Phantom_Hoover> itidus21, hell no, it was just getting good.
14:40:05 <itidus21> or if i do continue it, i need to think very carefully about it
14:40:26 <Sgeo> Why am I still Lisping without paredit?
14:42:26 <itidus21> well, suppose you could impart the knowledge of mathematics to someone without them becoming a mathematician
14:43:12 * Sgeo does a let inside a macro without using a gensym
14:43:35 <Phantom_Hoover> omg visionary
14:43:38 <itidus21> like everything was done by showing them ways they can manipulate the objects around them
14:45:26 <Phantom_Hoover> itidus21, so I suppose you're the exact opposite.
14:45:52 <itidus21> math just feels like a black hole in my mind
14:47:04 -!- nooga has quit (Ping timeout: 256 seconds).
14:47:31 <itidus21> i approach it still like a child]
14:48:20 <itidus21> maybe i don't trust it
14:49:07 <Phantom_Hoover> Yeah, it's always scheming away.
14:49:16 <Sgeo> The knowledge of mathematics without being a mathematician must suck. Knowing facts, but being unable to have real fun with them.
14:49:31 <Phantom_Hoover> Nah, you'd just not care.
14:49:39 <itidus21> i wasn't describing myself
14:49:49 <itidus21> i don't hvae the knowledge
14:49:56 -!- nooga has joined.
14:50:39 <itidus21> but i do find i spend hours and days sometimes puzzling over some trivial aspect of notation because i haven't studied anything
14:51:34 <Phantom_Hoover> radical suggestion #534, maybe study something
14:52:46 <itidus21> i am aware that what i am about to say is wrong, and offensive, which is why i said it would be best if i stopped my analogy earlier
14:53:22 <itidus21> but, one thing i have going for me is that i can think about things without knowing how they work
14:53:27 <itidus21> because i don't know how they work
14:53:36 <olsner> :)
14:54:50 -!- nooga has quit (Read error: Connection reset by peer).
14:55:12 * Sgeo finds himself counting parens too many times for his comfort
14:55:42 <itidus21> hmm however..
14:57:21 <Sgeo> kmc, there's another advantage to non-fexpr macros: They're usually pure-functional (in interface)
14:57:48 <Sgeo> I'm finding it very easy to test my macros via macroexpand
14:59:04 <nortti> olsner: running opera mini under another browser kinda defeats the purpose of very light browser
14:59:42 <Sgeo> nortti, not if host browser doesn't struggle much with this one thing but with many others
15:00:11 <nortti> also new opera mini is kinda unstable on android and it also uses some kind of j2me emulation
15:00:26 <nortti> Sgeo: what do you mean?
15:00:27 <itidus21> i don't like game designs that sit well in mathematics. nor designs that show off some cute concept
15:01:15 <itidus21> i like the way that en passant, castling and pawn promotion make the rules of chess more complicated
15:01:18 <Sgeo> nortti, perhaps the heavyweight browser is only heavy on, say, gmail, and doesn't struggle much with Opera Mini emulator. By visiting Gmail in Opera Mini in host browser, you do save memory
15:01:36 <Sgeo> itidus21, you'll hate Go then.
15:01:46 <Sgeo> Although I guess Go has a few complications.
15:02:10 <nortti> Sgeo: it is heavy on the fucking about:blank
15:02:42 <itidus21> those little stipulations so that if you try to generalize chess you end up trying to generalize castling
15:02:54 <itidus21> i like how messy it is
15:05:26 <Sgeo> I have a feeling that these macros I'm writing actually _cut down_ on ease of doing what I want to do
15:05:49 <Sgeo> It's essentially, at the CLOS level, going to dispatch on a single value
15:06:09 -!- nooga has joined.
15:06:21 <itidus21> also, i think the hard work in game design is coming up with something good which isn't highly derivative
15:06:44 <itidus21> it seems a bit like making music, that if it's a hit is almost random
15:06:50 <Sgeo> Who says "isn't highly derivative" is a requirement?
15:07:09 <Sgeo> Minecraft took heavy inspiration from Infiniminer and Dwarf Fortress.
15:07:36 <Sgeo> All roguelikes are ultimately inspired by Rogue.
15:10:44 <itidus21> and a sort-of-rhetorical question i have there is, are the best video games simply a small seemingly random subset of all possible video games, or are they the fruit of hard work and pure intentions?
15:12:10 <Sgeo> What's the difference?
15:12:30 <Sgeo> Being a "fruit of hard work" does not make it any less part of a subset of all possible video games.
15:13:22 <itidus21> while i can't disagree, part of me finds that quite troubling
15:15:00 <Sgeo> Ugh, I'm pretty sure I need &whole, but not entirely sure whether I can use it in an ordinary lambda list
15:15:43 <itidus21> i guess in general such work is about having a query and finding an answer
15:17:11 <olsner> nortti: you should also be aware that the JVM and stuff probably adds about 150MB to the memory footprint
15:17:53 <Sgeo> Nope, not &whole
15:17:55 <nortti> olsner: I know
15:17:57 <Sgeo> That's a macro thing
15:18:00 * Sgeo faceplants
15:18:11 <olsner> nortti: and also, opera mini on android hasn't been j2me-based for a long time
15:18:19 <nortti> olsner: it hasn't?
15:18:55 <itidus21> Sgeo: ok i can take that as a given. kind of like how a picture is just a very small subset of all possible pictures
15:19:14 <itidus21> ^for some width,height,color depth
15:19:17 <nortti> olsner: there isn't just j2me virtual machine?
15:21:31 <olsner> I don't recall which version it changed, but nowadays it's a real android app
15:22:08 <nortti> probably when it went from rock solid to the current one that crashes if I dobletap too fast
15:22:09 -!- nooga has quit (Read error: Connection reset by peer).
15:22:12 -!- zzo38 has joined.
15:22:55 <itidus21> so speaking of pictures... i wonder if any artists in 2012 will ever get the same reknown as the da vinci, dali, picasso, van gogh, matisse, monet.. and all the others who i haven't heard of
15:28:51 <itidus21> given the development of photography, high-speed photography, digital art, laser printing, etc i think painting on canvas with brushes and paint finds a very traditional niche like chess vs crysis 3
15:30:28 <olsner> nortti: looks like 5.0 was the version that introduced the "native" android port
15:31:05 <nortti> olsner: ok. I was right
15:31:23 -!- MoALTz_ has joined.
15:33:50 <olsner> one would think that an obvious bug like a crash-on-double-tap would've been found and fixed in the years since then
15:34:18 -!- MoALTz has quit (Ping timeout: 245 seconds).
15:35:10 <nortti> olsner: it only crashes on fast doubletap after it start after phone shutdown or prior chrash
15:35:30 -!- zzo38 has quit (Remote host closed the connection).
15:35:38 <olsner> interesting
15:36:20 <nortti> or if I killed it with advanced task killer
15:36:31 <nortti> but after page load it doesn't crash
15:37:27 <nortti> on fast doubletap that is
15:37:40 <nortti> it also seems to leak memory
15:39:28 <nortti> or if it doesn't there must be a hell of a reason for it to start blanking pages because memory is running low if I only have 1 small page open on it and it handle 50 tvtropes pages after crash/reboot
15:39:55 <nortti> oh and everything else including sense is killed with advanced task killer
15:41:43 <nortti> if I reload the blanked pages 1 at the time it eventualy crashes
15:41:48 -!- MoALTz_ has quit (Ping timeout: 245 seconds).
16:02:35 <Sgeo> I know what my next blog post will be:
16:02:47 <Sgeo> Complaining about a problem that doesn't exist in practice.
16:03:05 <Sgeo> It exists in theory though, and THAT BOTHERS ME
16:03:22 <olsner> that's probably enough of a theme to provide the entire blog
16:04:40 <Sgeo> (Note: I don't know whether or not it actually exists in practice. I do know that everyone who I complained about it to claimed that it generally doesn't occur.
16:05:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
16:06:06 <Sgeo> I think Common Lisp has no problems though.
16:06:33 <Sgeo> (And by that I mean theoretically doesn't have the problem I have in mind. Although in practice it probably does. How's that for a braintwister?)
16:06:44 <nortti> Sgeo: what problem?
16:07:02 <Sgeo> nortti, name collisions
16:07:03 -!- mig22 has quit (Quit: mig22).
16:07:28 <Sgeo> Assuming that "Hey, everyone in the world should think up unique names" is not a solution.
16:07:29 <nortti> Sgeo: how does it not exist in practice?
16:07:56 <Sgeo> Dunno, ask a Smalltalker or a Tcl'er, I don't have enough personal experience.
16:08:42 <olsner> isn't packages/modules/namespaces/etc a good solution for that?
16:08:49 <Sgeo> olsner, depends on the system
16:09:08 <Sgeo> If it requires the packages/modules/namespaces to have unique names from eachother, I would say no.
16:09:24 <Sgeo> Because again, it's asking everyone in the world to gensym
16:09:25 <olsner> e.g. let everything get its own unique name (potentially with a very long prefix), then you have another mechanism to remove the prefixes of the stuff you actually use
16:10:36 <Sgeo> olsner, is there a central server? Is there pre-existing unique names (e.g. domain names ala Java)? If not... still possibility for conflict
16:10:54 <Sgeo> Although I grant that with long enough prefixes, chance of collision might be low, hmm...
16:11:06 -!- david_werecat has quit (Ping timeout: 240 seconds).
16:11:59 <Sgeo> I like Common Lisp's way: If you have two packages with conflicting names, just load one, rename it, then load the other
16:12:05 <olsner> cpan and hackage do have a central server, although it's not entirely authoritative it's a good check for whether you ought think up a more unique name for your new library
16:13:07 <kmc> is hackage 2.0 getting anywhere?
16:13:17 <olsner> java's domain name system has good uniqueness, but lacks a way to rename imported things
16:35:02 * Sgeo suddenly notices alexandria's symbolicate
16:35:39 <Sgeo> Could have used that, although sometimes it's nice to have explicit control of what package the symbol goes in
16:35:40 -!- ogrom has quit (Quit: Left).
16:40:40 -!- kidanger has joined.
16:42:42 -!- FreeFull has quit (Ping timeout: 276 seconds).
16:43:11 -!- FreeFull has joined.
16:59:27 <kmc> /nick typedef_typename
17:02:06 * pikhq_ finds it weird that so many Javaers are opposed to static import...
17:02:27 <pikhq_> import static java.lang.Math.*; // Tada!
17:02:35 <pikhq_> cos(PI * theta); // works
17:03:25 <pikhq_> And yet, it's somehow *bad style* in the language.
17:03:56 <kmc> http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html does not consider it "bad style" but "use sparingly"
17:04:26 <olsner> I think it was supposed to only discourage from misuse, not all use
17:04:35 <kmc> people love "never use X" rules
17:04:39 <kmc> cause they are simple
17:04:42 <kmc> but rarely the right answer
17:05:14 <pikhq_> And the more verbose the better, right.
17:05:22 <kmc> when http://livegrep.com made its debut on reddit, there was a commenter shocked to discover that the Linux kernel contains "over 50" uses of 'goto'
17:06:21 <pikhq_> That low? Doesn't it contain a bytecode interpreter?
17:06:34 <pikhq_> (and thus *really should* use computed goto)
17:06:37 <kmc> it contains probably thousands of uses of goto
17:06:42 <kmc> and yes several bytecode interpreters
17:06:43 <Lumpio-> Did... did you just use a * in Java!?
17:06:45 <Lumpio-> To import!?
17:06:47 <Sgeo> computed goto?
17:06:51 <kmc> but also uses goto for error handling ubiquitously
17:06:59 <Lumpio-> Never do that! You're supposed to painstakingly type out each single thing you use from each package!
17:07:10 <kmc> Lumpio-: no you're supposed to use your fancy IDE to type it out for you
17:07:15 <kmc> Java isn't a language for humans, you see
17:07:16 <pikhq_> Sgeo: In GNU C, you can take the address of labels, and dereference them in a goto.
17:07:27 <pikhq_> Sgeo: This is handy for implementing certain weird forms of dispatch.
17:07:28 <olsner> I guess they just stopped counting at 51 and decided the whole kernel is beyond repair
17:07:30 <Lumpio-> ah
17:07:32 <pikhq_> Sgeo: For instance, threaded code.
17:07:40 <kmc> you can even pass a label address into inline assembly :3
17:08:18 <pikhq_> Sgeo: And threaded code using computed goto is basically the way to fast interpreters.
17:08:46 <kmc> did you see the thing about how the LuaJIT interpreter pre-decodes the next instruction before its computed jump
17:09:06 <kmc> to keep functional units busy in the event of a mispredicted indirect jump
17:09:34 <pikhq_> No, but it makes a lot of sense.
17:09:50 <kmc> http://nominolo.blogspot.co.uk/2012/07/implementing-fast-interpreters.html
17:12:25 <pikhq_> Yeah, pretty much.
17:23:47 -!- nooga has joined.
17:27:25 -!- MoALTz has joined.
17:42:14 -!- asiekierka has joined.
17:53:49 <Phantom_Hoover> OK so I turned adblock off on reddit, all the ads I've seen so far have been thanks for turning off adblock.
17:53:57 <Gregor> lol
17:56:54 <Phantom_Hoover> OK wow I just checked 6 different pages; all but one of them have one of two thanks-for-turning-off-adblock ads.
17:57:25 <Phantom_Hoover> And the other one is for some reddit gift initiative.
17:58:40 <Gregor> Amazing.
17:59:28 <Phantom_Hoover> Remind me how this site makes money.
18:11:26 <kmc> they don't
18:11:41 <kmc> they were down to 1 engineer for a while
18:13:51 <pikhq_> Phantom_Hoover: I suspect they exist primarily as a leech on Advance Publications.
18:14:45 <pikhq_> You don't have to make money when you can convince some corporation they should throw money at you.
18:44:07 -!- asiekierka has quit (Remote host closed the connection).
19:19:10 -!- impomatic has joined.
19:19:44 <impomatic> Hi, how do I reset my esolang wiki password when I didn't enter an email address? :-)
19:22:35 <Phantom_Hoover> You yell at elliott until he resets it for you.
19:22:54 <Phantom_Hoover> (He's online, just not in the channel; use /msg.)
19:23:31 <impomatic> Thanks... messaged
19:24:43 <impomatic> I have the Mouse book, so I thought I'd update the wiki a bit :-)
19:52:54 -!- oerjan has joined.
19:58:39 -!- epicmonkey has quit (Ping timeout: 265 seconds).
20:01:29 -!- nooga has quit (Read error: Connection reset by peer).
20:04:17 <oerjan> oh dear, good math bad math does a monad tutorial
20:05:14 <kmc> :(
20:05:33 <oerjan> http://scientopia.org/blogs/goodmath/2012/08/19/monads-and-programming/
20:05:51 <kmc> think i won't click that
20:06:06 <nortti> why?
20:06:22 <kmc> because it's probably wrong in an infuriating way
20:06:31 <oerjan> :D
20:06:36 <kmc> but even if it's a fine monad tutorial, it's still one more monad tutorial in a world that already has too many
20:10:11 -!- monqy has joined.
20:10:53 <kmc> and it will remind me how fucked the teaching of Haskell is
20:11:19 <oerjan> technically he spends most of the time on scala and pure category theory
20:11:38 <kmc> okay
20:12:05 <oerjan> he was already doing a ct series
20:32:04 -!- heroux_ has quit (Ping timeout: 246 seconds).
20:36:28 -!- kinoSi has quit (Read error: Connection reset by peer).
20:36:56 -!- kinoSi has joined.
20:41:38 -!- atriq has joined.
20:45:38 -!- soundnfury has joined.
20:48:04 <Phantom_Hoover> kmc, what if it's a thoughtful article for people who know about monads?
20:48:32 <kmc> well oerjan described it as a "monad tutorial" >_<
20:48:49 <Phantom_Hoover> Oh, he fluffed the definition of monads.
20:48:50 <kmc> good math bad math already ran a completely wrong article about finger trees
20:48:56 <Phantom_Hoover> Yeahno.
20:48:56 <kmc> long ago
20:50:41 <Phantom_Hoover> (He gets the M a part and the return :: a -> M a, but then he says something about... "An operation which takes a function that transforms a value wraped in M into another value (possibly with a different type) wrapped in M."
20:50:44 <Phantom_Hoover> *)
20:51:13 <Phantom_Hoover> At first I thought he'd been going for the return/join/fmap definition and forgot join, but that third one isn't fmap either.
20:52:01 <soundnfury> you know, if so many otherwise intelligent people have difficulty understanding monads, maybe they're just a bad idea.
20:52:16 <olsner> hmm, that sounds like m (m a -> m b) -> ??? or something
20:53:13 <kmc> soundnfury: often people think they're confused about monads when they're actually confused about something else
20:53:16 <Phantom_Hoover> I'd say he means (m a -> m b) -> ???, but that's just as bad.
20:53:30 <kmc> like polymorphism, type classes, or just basic haskell shit
20:53:35 <olsner> maybe it is fmap, if you add a comma after "operation which takes a function"
20:53:44 <soundnfury> <kmc> or just basic haskell is shit <-- FTFY
20:53:46 <soundnfury> ;P
20:53:52 <kmc> yeah you're not trolling at all
20:53:53 <olsner> the operation takes a function, and the operation transforms a value ...? aduno
20:54:38 <Phantom_Hoover> kmc, also there's the aspect that people generally want to know what monads "really are", because even with the definition doesn't obviously associate with any of their uses.
20:54:57 <kmc> yeah
20:55:28 <kmc> i think "otherwise intelligent" people don't have too much trouble if they just learn some use cases of monads and worry about the abstract idea later
20:55:34 <kmc> at least that's the advice i have given and heard a lot
20:55:38 <kmc> but what do i know
20:55:58 <Phantom_Hoover> That's probably the best advice to give.
20:56:05 <kmc> nobody in the haskell community seems interested in finding the empirically best way to teach things
20:56:15 <kmc> we just shout at each other about how our pet explanation is best
20:56:18 <kmc> with nothing to back it up
20:56:55 <Phantom_Hoover> So it's all other programming didactery writ small?
20:57:06 <kmc> soundnfury: you might be interested in http://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/
20:57:09 <kmc> if you have not seen it
20:57:17 <olsner> oh, "Each element of a monadic sequence in Haskell is an instantiation of the monadic functor"
20:57:27 <kmc> what
20:58:04 <atriq> The...
20:58:06 <atriq> Monadic Functor
20:59:10 <oerjan> atriq: iirc he actually means functor in the categorical sense
20:59:22 <atriq> Oooh
20:59:25 <Phantom_Hoover> atriq, monads are functors, remember?
20:59:50 <oerjan> i was a bit miffed that he only mentioned the natural transformations much later, though
21:01:03 <olsner> whatever that article is about it doesn't seem to apply for monads in haskell, afaict
21:01:33 <oerjan> well Monads _should_ be Functors, it's just not required for hysterical raisins
21:01:44 <Phantom_Hoover> That's why I didn't capitalise.
21:02:51 <olsner> def flatMap[T, U](op: List[T] => List[U]): List[U].
21:03:21 <oerjan> olsner: scala's flatmap is as close to haskell's >>= as you can get in that language
21:03:49 <olsner> I think that's the mumbo jumbo operation he talked about anyway
21:04:07 <oerjan> he prefers scala's syntax to haskell's, that maniac
21:04:31 <oerjan> although he doesn't mention do notation at all.
21:04:37 <olsner> but I guess that flatMap can be used to implement =<<, even though it's Wrong?
21:05:10 <oerjan> oh hm the type looks strange indeed
21:06:02 <olsner> oh, and he later claims that >>= is "deeply connected with the fmap operation"
21:06:17 <olsner> "I really prefer map and flatMap to >> and >>="
21:08:39 <oerjan> olsner: well it _is_ deeply connected in the category theory formulation
21:08:46 <olsner> hmm, ok
21:09:47 <olsner> something about >>= being a combination of fmap and join?
21:10:07 -!- zzo38 has joined.
21:10:07 <olsner> is flatMap supposed to be join then?
21:13:28 <zzo38> I was at anime convention for three days ending today
21:13:31 <oerjan> olsner: flatmap is >>= i say
21:13:35 <zzo38> I have "zawa zawa" sign
21:13:42 <oerjan> i think he must have got the type wrong
21:14:37 <oerjan> def
21:14:38 <oerjan> flatMap [B] (f: (A) ⇒ GenTraversableOnce[B]): List[B]
21:14:47 <oerjan> i think that's the actual type for lists
21:15:13 <olsner> hmm, where's the List[A]?
21:15:22 <oerjan> well, there's an even more general one with implicit conversion to a different type
21:15:43 <atriq> zzo38: were there many homestuck fans
21:15:59 <zzo38> atriq: Not as far as I know, but I don't know really
21:16:00 <oerjan> olsner: flatmap is a method on what would be the first argument of >>=
21:16:36 <atriq> zzo38: were there any people with grey facepaint and orange horns?
21:16:38 <oerjan> so List[A] is the class flatmap is defined as a method in
21:16:49 <olsner> ah, of course, this is Java after all
21:17:07 <oerjan> olsner: *scala
21:17:27 <zzo38> atriq: I think I saw some with grey facepaint, and some with orange horns, but none that had both
21:17:38 <atriq> How odd
21:17:42 <atriq> Anyway, goodnight
21:17:48 -!- atriq has quit.
21:23:17 <zzo38> I played some card game in there once that you have a clock zone, level zone, stage (front and back), stock, and then you can attack and damage is place card in clock zone. You can also place cards in your clock zone by yourself, and if it reaches seven then move one to your level zone. If you have four level cards you lose, but the more level cards you have the more cards you are able to play.
21:24:02 <zzo38> Level and clock zone card can have a card of the correct color to play another card in a different zone, and some cards have a special effect in a clock zone.
21:24:19 -!- Vorpal has quit (Ping timeout: 260 seconds).
21:32:37 -!- oerjan has quit (Quit: Good night).
21:34:31 -!- MoALTz has quit (Ping timeout: 244 seconds).
21:36:51 <zzo38> Someone has suggested that I (or my brother) write a manga based on my Dungeons&Dragons game; however, I only write text of it, not the manga.
21:47:00 -!- pikhq has joined.
21:47:06 -!- pikhq_ has quit (Ping timeout: 245 seconds).
22:20:42 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
22:21:13 -!- Phantom_Hoover has joined.
22:21:13 -!- kidanger has quit (Quit: Quitte).
22:29:46 <nortti> 1~
22:39:25 <Phantom_Hoover> Uhh... wait, if a torrent has an availability of less than one that's Very Bad, right?
22:43:31 <kmc> butts
22:43:53 <kmc> it seems unusually quiet here and in other channels i'm in
22:43:54 <zzo38> Maybe it depend on what file you are trying to download?
22:44:00 <kmc> is everyone on holiday or something?
22:44:20 -!- david_werecat has joined.
22:44:25 -!- david_werecat has quit (Client Quit).
22:47:00 <Sgeo> Someone pointed me to a library that has a useful function but if Common Lisp supported the feature I wanted it to support I wouldn't need it
22:47:12 <Sgeo> And said feature would be far more convenient to use
22:48:27 <kmc> what feature
22:49:22 <Sgeo> A way to specify in an ordinary lambda list a variable that receives all arguments as though through &rest but still lets other arguments as though normal
22:49:52 <Sgeo> As in a b c &key x y z &all all
22:50:21 <Sgeo> all will contain the values passed in to a b and c and the keywords and their .. etc
22:50:22 <Sgeo> In such a way to let me apply someotherfunction all
22:50:42 <kmc> cool
22:50:54 <kmc> do you know of any language which has this feature?
22:51:23 <kmc> you can sort of do it with @-patterns in Haskell, at least for non-curried functions
22:51:35 <Sgeo> Hmm. Tcl might be able to do something like it.
22:52:28 <Sgeo> It probably isn't as useful there though
22:53:02 <Sgeo> My main purpose in not just using &rest args is so that documentation tools work sanely
22:53:06 <Sgeo> And not just say "Oh, it's a function that takes any arguments"
22:55:21 <kmc> yeah, makes sense
22:56:25 <kmc> what are some good questions to ask a prospective employer which is an early-stage startup?
23:08:21 <Phantom_Hoover> "When you inevitably fail, how much money will I have?"
23:08:41 <Phantom_Hoover> Actually that works way better without the 'inevitably'.
23:10:46 <kmc> heh
23:11:07 <kmc> well if the company fails then the stock is worthless
23:11:17 <kmc> so that depends entirely on me and how much of my salary i manage to save away before it fails
23:11:51 <Phantom_Hoover> "How much money will I have earned?"
23:14:49 <kmc> so i should ask them how long until their company fails?
23:14:49 <kmc> that seems reasonable
23:16:17 <Phantom_Hoover> OK no but from my naive perspective it seems like a very good idea to nail down whether you're going to be left with nothing if they fail.
23:17:16 <kmc> well yeah
23:19:18 <Sgeo> I would have no problem with monkey-patching Object if the names of added methods were namespaced.
23:19:29 <Sgeo> (In languages known for ability to monkey-patch Object)
23:19:33 -!- impomatic has quit (Quit: impomatic).
23:20:57 <shachaf> kmc: Are you being prospectively employed?
23:20:58 <kmc> i think the reasonable and safe assumption is that nothing except money in my bank account has any value if the company "fails"
23:22:28 <kmc> which theoretically could include money from previous sale of vested stock, but i don't know anything about selling private equity and i'm not going to count on it happening prior to an acquisition or IPO
23:22:34 <kmc> shachaf:maybe
23:24:24 <kmc> i was not being sarcastic btw
23:24:29 <kmc> i think "how long before your company fails?" is a fine question
23:24:46 <shachaf> That's a pretty common question, maybe with slightly different phrasing.
23:24:46 <kmc> certainly "how long can you survive without revenue" is an important and standard question
23:25:01 <kmc> it's called "runway"
23:25:09 <kmc> for obvious reasons
23:25:14 <Sgeo> kmc's company is failing?
23:25:18 <shachaf> Unless you're talking to an aviation startup.
23:25:26 <kmc> we should start an incubator named JATO
23:25:33 <kmc> Sgeo: i'm not currently employed...
23:25:35 <Sgeo> Ah, just read scrollup
23:25:38 <shachaf> Sgeo: kmc is moving to SF, I heard.
23:25:39 <kmc> do try reading the scroll -- yeah
23:25:42 <kmc> shachaf: lies
23:25:53 <shachaf> kmc: All early-stage startups are in SF.
23:25:55 <shachaf> By law.
23:26:01 <kmc> no they're all in delaware
23:26:05 <shachaf> Good point.
23:26:11 <kmc> glad that's settled
23:26:23 <shachaf> But their employees all move to SF.
23:27:27 <shachaf> kmc: Maybe you should ask in #startups. I hear they're experts.
23:27:35 <kmc> a) is that a thing, and b) is it terrible
23:27:48 <shachaf> Yes, it's a thing. You've previously joined it to troll them.
23:27:56 <shachaf> You ended up discussing stack canaries or something.
23:28:06 <kmc> is it full of people who have an idea for "the next facebook" and "just need a code ninja" to make it happen?
23:28:06 <shachaf> It's more or less #hn, I think.
23:28:10 <kmc> ok
23:28:16 <kmc> i don't remember trolling them but it does sound like something i'd do
23:28:33 <shachaf> I don't think so, but maybe.
23:28:45 <shachaf> I think it's all about the code rock stars.
23:29:23 <Sgeo> I feel sad that I'm not ambitious enough to try to do something like make a startup
23:29:35 <kmc> i have an idea for the next drug empire and just need a chemist ninja to make it happen
23:29:41 <kmc> Sgeo: me too
23:29:53 <Phantom_Hoover> what's a stack canary
23:29:54 <kmc> (i'm not ambitious enough, and to a lesser degree i feel sad about that)
23:30:04 <kmc> i don't think ambition is a good thing by itself though
23:30:09 <kmc> it's only good if you use it to help people
23:30:17 <kmc> and our society provides more opportunities to use it to hurt people
23:30:21 <kmc> so maybe on balance a lack of ambition is better
23:30:37 <shachaf> That's just the sort of thing an unambitious person would say!
23:30:39 <Sgeo> What does selling a product that, if it were free, might have actually lived up to its name count as?
23:30:54 <kmc> Phantom_Hoover: a mechanism for detecting buffer overflow attacks
23:31:02 <kmc> you write a magic value onto the stack and then later you check to see if it's still there
23:31:15 <kmc> before you perform a return to the address saved on the stack
23:31:17 <kmc> google knows more
23:31:45 <Phantom_Hoover> I was hoping it was nonsense :(
23:31:50 <kmc> no sorry
23:32:33 <shachaf> kmc: So you're not moving to SF?
23:32:39 <kmc> not in the immediate future
23:32:43 <shachaf> I heard even nelhage was moving to SF.
23:33:00 <kmc> what i originally said, which you have been repeatedly misquoting me on, is that I think it's likely that one day I will move to SF
23:33:15 <shachaf> I haven't been misquoting you! I've been spreading rumours.
23:33:16 <kmc> i like the city, and have a high expectation of finding a nice job there
23:33:20 <kmc> i do wish you would cut it out
23:33:23 <shachaf> Oh.
23:33:23 <shachaf> OK.
23:33:25 <kmc> i have no plans to move to SF
23:33:36 <kmc> i don't even have plans to make plans to move to SF
23:33:59 <kmc> because i also like boston, and have a high expectation of finding a nice job here
23:34:05 <kmc> and so inertia wins
23:34:53 <shachaf> Phantom_Hoover's attempt at trolling #startups fails.
23:35:08 <Phantom_Hoover> Fuckers just kept talking about gay.
23:35:13 <shachaf> Sgeo is up next!
23:35:21 <kmc> i did leave NYC without a job or a plan and decided to move to Boston over SF
23:35:26 <Sgeo> shachaf, I just wanted to see what was going on
23:35:32 <Sgeo> I'm not usually a troller
23:35:33 <kmc> gay?
23:35:34 <shachaf> There should be trolling commentators.
23:35:42 <kmc> shachaf: there are, on 4chan and somethingawful
23:35:43 <Sgeo> Although I guess sometimes I troll various language channels
23:35:55 <Sgeo> Recently #lisp about whether code-walking is really necessary.
23:36:48 <kmc> shachaf: maybe once the SF-LA high speed line is complete i will move to SF
23:36:51 <kmc> and i don't even want to go to LA!
23:36:55 <kmc> but i like riding high speed trains
23:39:01 <shachaf> Maybe you should move to .fi
23:39:12 <ion> Can i move to the domain, too?
23:39:18 <ion> phantom_hoover: Gay startups?
23:40:07 <shachaf> kmc: Did you ever read _Impro_?
23:40:40 <kmc> no
23:40:53 <shachaf> Good book.
23:40:53 <Phantom_Hoover> ion, yes.
23:41:18 <kmc> a startup that wants to have sex with other startups
23:41:35 <Phantom_Hoover> As opposed to startdowns.
23:41:39 <Phantom_Hoover> kmc, move to Edinburgh!
23:45:07 <Phantom_Hoover> Wait.
23:45:08 <Phantom_Hoover> Wait.
23:45:12 <Phantom_Hoover> Move to Hexham!!!!
23:45:46 * shachaf should keep in mind not to annoy kmc because then he'd leave this channel too and that would be sad.
23:46:29 <kmc> i'm not going to move to hexham
23:47:51 <Phantom_Hoover> wh
23:47:52 <Phantom_Hoover> why
23:48:52 <Phantom_Hoover> Well it's apparently dull as dishwater, but other than that??
23:49:08 <shachaf> kmc: Do you know how Win32 functions keep backwards compatibility?
23:49:31 <shachaf> Apparently the standard thing is that you pass them a struct whose first element is the sizeof the struct.
23:50:36 <Phantom_Hoover> ...what, did they keep the size of sizeof the same for 64-bit?
23:51:06 <shachaf> Well, no, the ABI doesn't have to be the same for the 64-bit API, presumably.
23:51:15 <kmc> shachaf: that's sensible
23:51:25 <kmc> i do think many structs should work that way
23:51:30 <kmc> file formats in particular
23:51:33 <shachaf> But when they want to add elements to the struct, they just do it, and then disambiguate by the size.
23:52:14 <shachaf> It makes some sense.
23:52:32 <shachaf> For APIs, as opposed to file formats, what's the advantage of sizeof as opposed to a version number?
23:54:51 <kmc> simpler code, if you're just appending fields to the end
23:55:08 <kmc> also simpler code for the client
23:55:31 <kmc> foo.size = sizeof(foo);
23:55:52 <kmc> less chance you pick the wrong version number
23:56:10 <shachaf> The version number would presumably be a constant in a .h file.
23:56:20 <shachaf> But I suppose so...
23:56:25 <kmc> but you could still mess it up more easily
23:56:35 <kmc> and this way is friendlier to macros too
23:57:18 <shachaf> It means you can't have two versions with a common ancestor that have the same size struct. But that's probably something you try to avoid anyway.
23:59:12 -!- derdon has quit (Remote host closed the connection).
←2012-08-18 2012-08-19 2012-08-20→ ↑2012 ↑all