00:31:54 -!- Frooxius has quit (Ping timeout: 264 seconds).
01:06:12 <kmc> 'The entire council of the city of Reggio Calabria in southern Italy is dismissed to stop it from being taken over by the mafia, officials say.'
01:27:34 <Sgeo> I need to finish DS9 at some point
01:32:32 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:36:25 <Sgeo> Does ClojureScript count as a Lisp?
01:36:39 <Sgeo> ClojureScript macros are in a different language (Clojure).
01:37:08 <shachaf> Time for argue-about-words-o'clock.
01:38:53 <kmc> Scheme macros are also in a different language (usually)
01:38:57 <kmc> I guess Scheme isn't a Lisp...
01:39:27 <zzo38> It depends if the macros are in a different language?
01:39:49 <Sgeo> Hmm, what makes a Lisp a Lisp?
01:40:08 <shachaf> Sgeo: The main question is how much Paul Graham has written about it.
01:40:22 <kmc> the term "Lisp" can be endlessly redefined to win the current argument
01:40:25 <kmc> that's the beauty of it
01:40:52 <shachaf> I guess he doesn't write about Lisp anymoer.
01:42:22 * Sgeo should reread LoperOS person's rant about Clojure
01:42:27 <Sgeo> I think I disagree with it
01:43:12 <pikhq> So. For various reasons I got shoved into a "UNIX programming" class. ... Holy mother of shit we have to use *C shell*?
01:43:40 <pikhq> Am I going to need to learn COBOL next?
01:43:43 <Sgeo> "It promotes no, mandates - the use of undigestable foreign matter in Lisp code: primitives on which you cannot pop the hood to reveal intelligible innards."
01:43:44 <pikhq> Seriously, what the fuck.
01:44:20 <Sgeo> Does he believe that the hardware we run on should operate on conses?
01:45:26 <elliott> Sgeo: http://www.loper-os.org/?p=55
01:45:47 <elliott> my encyclopedic knowledge of bad loper os posts finally comes in handy
01:46:50 <shachaf> I thought you quit #esoteric
01:50:44 <Sgeo> I do think that Clojure is uncomfortably closer than it should be to Java at times, but I don't think it's really that horrible.
01:50:57 <pikhq> *C shell does not have functions*.
01:51:09 <Sgeo> pikhq, any chance that they're called something else?
01:51:09 <pikhq> *They made a language worse than Bourne shell.*
01:51:22 <pikhq> Sgeo: No. The closest it *has* is aliases.
01:51:38 <pikhq> C shell is literally devoid of functions.
01:52:19 <kmc> "No car crash, however brutal, will ever produce piles of loose protons and neutrons."
01:52:22 <kmc> i don't think that's true
01:52:29 <kmc> is there really nothing in a car which can burn hot enough to produce plasma?
01:53:34 <Sgeo> Doesn't Joel talk about abstractions
01:53:45 <kmc> oh dear, this seems to be a complicated question
01:53:50 <kmc> Sgeo: Joel talks about a lot of shit
01:54:00 <Sgeo> There may be some abstractions (e.g. TCP) in which leaks of the abstraction are inevitable
01:55:00 <oerjan> we just need the car to crash with randall munroe's baseball
01:55:22 * Sgeo initially skipped the word "about" in what kmc said
01:55:31 <kmc> either way, really
01:55:54 <kmc> magnesium engine block will burn at 3,000 K
01:56:09 <kmc> nobody can give me a straight answer as to what temperature air turns into plasma
01:56:48 <kmc> isn't cool
01:58:18 <oerjan> i hear there is cold plasma too
01:59:31 <kmc> Sgeo: what's special about TCP there?
01:59:57 <kmc> do you mean the fact that it can't overcome an indefinite period of 100% packet loss?
02:00:48 <pikhq> csh builtins cannot be pipes.
02:01:58 <Sgeo> Java methods are not functions in Clojure
02:02:08 <Sgeo> pikhq's thing is probably worse
02:03:13 <pikhq> And its errors don't include line numbers.
02:05:08 -!- Sanky has quit (Ping timeout: 245 seconds).
02:05:32 <pikhq> Who designed C shell, and can I beat them?
02:05:55 * Sgeo again sees a comparison with Clojure :/
02:08:41 -!- ais523 has quit.
02:19:05 <pikhq> Okay, I'm happy with beating him.
02:20:16 <oerjan> a joyful beating, check
02:20:56 <pikhq> Oh dear, he's partly to blame for NFS.
02:20:59 <pikhq> Now I have to beat him.
02:21:21 <pikhq> NFS: because file systems are stateless.
02:27:55 <Sgeo> Wait, NFS is reviled?
02:29:14 <kmc> such a joker
02:42:52 <shachaf> 19:42 <cornihilio> it's like I am stuck misusing the do monad
02:44:00 <oerjan> misusing the do monad, doo dah doo dah
02:44:23 <Sgeo> Newbie misunderstandings are quote-worthy now?
02:44:57 <Sgeo> <rwbarton> since it's cornihilio it's much more likely that the type is right and the 'do' is wrong
02:45:09 <Sgeo> Sounds like the people are familiar with this person?
02:45:42 <oerjan> this person has no heart
02:46:39 <oerjan> no, that would coromnisio
02:48:06 <pikhq> Sgeo: NFS is horrific.
03:03:56 -!- hagb4rd has quit (Ping timeout: 255 seconds).
03:08:04 <shachaf> You know who makes the puns around here, right?
03:08:21 -!- mig22 has joined.
03:08:29 <Sgeo> `welcome mig22
03:08:32 * oerjan just deals out punishment -----###
03:08:33 <HackEgo> mig22: 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.)
03:09:26 <kmc> ββββββββ
03:10:02 <kmc> ^rot13 ββββββββββββββββ
03:10:03 <fungot> ββββββββββββββββ
03:11:11 <elliott> kmc Does "mc" really stand for "Mc"?
03:11:38 <kmc> haters gonna hate
03:11:55 -!- zzo38 has left.
03:12:02 <kmc> γΎ(ββ _β )γβͺ
03:12:06 <elliott> Not good enough for zzo38.
03:27:56 <elliott> kmc: noob answer here but, i think you mean type checking, and that happens before. if a function gets bound, it becomes a new type, and the next type you feed it needs to be compatible. if a function is fed proper types but pruposely used in the wrong context, that's a failure of semantics.
03:28:43 <kmc> very good sir
03:28:51 <kmc> shall i warm up sir's crack pipe
03:29:05 <elliott> kmc: a function that could take functions could do that
03:29:08 <oerjan> i think sir is cracked enough
03:29:10 <elliott> kmc: something along the lines of f :: (a->b) -> a
03:29:14 <elliott> kmc: monads should be suitable for this
03:29:28 <kmc> are you livetweeting #haskell or what
03:29:40 <kmc> jesus really
03:29:40 <elliott> this isn't twitter though kmc
03:29:46 <elliott> shall i warm up sir's crack pipe, as they say
03:29:56 <shachaf> elliott is trying to make you leave the last channel you're still in. :-(
03:30:04 <elliott> that was all one person if that makes it better
03:31:00 <elliott> shachaf: how long has this person been here
03:31:09 <elliott> oh they're just reffering to the monadic context in general now i understand
03:31:11 <elliott> ps by here i mean #haskell
03:31:52 <shachaf> elliott: You're such a geneous.
03:32:36 <shachaf> kmc: Do you know that you still beat me in "number of words said in #haskell"?
03:34:02 <elliott> shachaf: does anyone beat me
03:35:39 <shachaf> I used to write all these specialized monomorphic functions and I couldn't use any free theorems. Then I started writing more general types for my functions and it was all, like, "welcome to parametri city".
03:36:43 <shachaf> Oh, I measured wrong. It's not quite 3x.
03:36:58 <shachaf> dons is almost at 2 million words.
03:39:02 <shachaf> elliott: haveyouread OutsideIn(X)
03:44:22 <shachaf> elliott: I prefer the less well-known "double-negation with newline in the middle" translation.
03:44:43 <elliott> shachaf: Er. What. It's strictly weaker.
03:45:31 <shachaf> elliott: You know how you used to be here every day but now you're only here every 7 days?
03:46:12 <shachaf> elliott: Do you believe cps :: (a -> b) -> (b -> r) -> a -> r yet?
03:46:51 <shachaf> You said it should be a -> (a -> r) -> r before.
03:48:19 <shachaf> ((b -> r) -> (a -> r)) is a CPSed (a -> b)
03:51:41 * Sgeo decides not to ask a stupid and tangentally-related question
03:54:39 <kmc> no paypal i do not need a loan to buy 5 tee shirts
03:58:44 -!- TeruFSX has joined.
04:00:04 -!- zzo38 has joined.
04:08:29 <kmc> 1 lakh rupees isn't cool, you know what's cool? 1 crore rupees
04:11:34 <Sgeo> I can only assume that kmc is either playing a game or drunk.
04:12:12 <kmc> well i'm not more playing a game than usual
04:12:17 <kmc> it's all, like, games, man
04:13:31 * Sgeo fines kmc for one crore crore rupees
04:15:41 <oerjan> why does http://en.wikipedia.org/wiki/South_Asian_numbering_system skip the crore crore row...
04:30:53 <kmc> besides Sgeo, you know that it's illegal to be drunk on the internet
04:32:01 -!- Sanky has joined.
04:32:09 <ion> @type flip (.)
04:32:10 <lambdabot> forall a b (f :: * -> *). (Functor f) => f a -> (a -> b) -> f b
04:32:15 <ion> @type flip (Prelude..)
04:32:16 <lambdabot> forall b c a. (a -> b) -> (b -> c) -> a -> c
04:33:38 <lambdabot> forall a b c. (a -> b) -> (b -> c) -> a -> c
04:37:48 <oerjan> when carnage is insufficient, mr. munroe adds more zeroes.
04:38:22 <shachaf> kmc isn't playing a game more than usual.
04:38:25 <shachaf> Nor drunk more than usual.
04:39:02 <shachaf> I feel like I should learn how type checking/inference works properly.
04:42:48 <kmc> shachaf: Did you read Typing Haskell in Haskell?
04:47:43 <shachaf> That's probably a good one to read. :-)
04:47:57 <shachaf> Of course GHC's type system is barely Haskell these days.
04:52:23 <kmc> i wasn't sure if you meant the general idea of type checking/inference, or specifically ghc haskell with all the bells and whistles
04:52:38 <kmc> implementing type inference for simply typed lambda calculus is fun and not hard
04:53:08 <kmc> hindley milner is only a bit harder, i think
04:53:28 <kmc> and then you add type classes and polymorphic mutual recursion and you have haskell
04:53:41 <kmc> and then you take about 2 mg of LSD and you have GHC Haskell
04:54:06 <shachaf> What do you do to end up with Agda?
04:54:57 <shachaf> Sometimes making these things more general makes them simpler.
04:54:57 <kmc> well, i know nothing about how inference works in agda, to the degree it exists
04:55:08 <kmc> as far as checking goes that is true
04:55:34 <shachaf> Agda's value inference is probably better than its type inference...
04:55:51 <lambdabot> cmccann says: someone should implement a dependently-typed unsafeCoerce in Agda, you'd have to provide a proof that the coercion is invalid
04:55:53 <lambdabot> cmccann says: the most common solution to prevent runtime errors in Agda is by not running the program
04:57:05 <shachaf> That's another one of those that I don't get.
04:58:29 <shachaf> There's no fundamental reason not to have "exists" in Haskell, is there?
04:58:37 <shachaf> I heard there's a fundamental reason not to have it in GHC.
05:02:02 <shachaf> By heard I mean edwardk mentioned something about it being incompatible with the way GHC does type checking at dinner once.
05:02:25 <kmc> "I asked Karp in the elevator and he said it was probably NP-complete"
05:03:19 <shachaf> It was almost exactly a year ago. He's coming back next week for the same event!
05:03:37 <shachaf> Maybe I'll have the opportunity to ask him again.
05:08:51 <shachaf> zzo38: Where did your CodensityAsk type come from?
05:10:30 <elliott> shachaf: Do you like reflection?
05:10:33 <elliott> That's a great library, that.
05:10:37 <elliott> That wonderful person elliott worked on it.
05:10:53 <shachaf> elliott: I don't understand reflection.
05:11:05 <shachaf> It's probably good, though.
05:11:36 <zzo38> shachaf: Actually I just made it up
05:11:52 <elliott> shachaf: Have you ever wanted to be able to express the type "Integer mod 42" in such a way that the 42 is encoded in the type?
05:11:55 <shachaf> zzo38: Right, but in what context?
05:11:57 <elliott> So you don't have to write a Num instance for every single number.
05:12:04 <elliott> That you'd want to modulo it by.
05:12:33 <elliott> shachaf: Okay, then look at "newtype M s a" onwards in http://hpaste.org/66699. Ignore the reflection implementation, it's just Oleg's low-level hack to accomplish it.
05:12:58 <elliott> shachaf: Basically you can lift an arbitrary value to a (phony; the actual "type" is nothing and doesn't matter to you) type that you get an instance for.
05:13:04 <elliott> That instance lets you give a proxy for that type, and get the value back.
05:13:09 <elliott> So you can write interfaces that depend on values.
05:13:15 <zzo38> shachaf: I was first think of Yoneda with a class constraint, and then to use not a class constraint but rather a value instead.
05:13:21 <elliott> shachaf: It can also be used to replace Reader like that, but in a way that omits all the monadic plugging.
05:13:28 <elliott> shachaf: It's like implicit parameters, but without all their weirdnesses.
05:13:36 <elliott> (And you don't have to implement it in the compiler.)
05:13:42 <elliott> reify :: a -> (forall s. Reifies s a => Proxy s -> r) -> r
05:13:48 <elliott> class Reifies s a | s -> a where reflect :: proxy s -> a
05:13:49 <zzo38> And then I realize that you can use it to make a MonadPlus from any comonad.
05:14:05 <zzo38> shachaf: Do you understand me now?
05:14:30 <shachaf> elliott: Did you see CodensityAsk?
05:14:43 <elliott> shachaf: Here's an example of it replacing Reader: http://hpaste.org/66715
05:14:49 <elliott> Pfft, reflection is way cooler than CodensityAsk.
05:14:50 <oerjan> shachaf is now completely confused and thinks Reifies is a CodensityAsk type
05:16:11 <zzo38> oerjan: Oops, isn't Reifies a class instead??
05:16:21 <oerjan> zzo38: he is _very_ confused.
05:16:25 <elliott> See, even zzo38 knows the deal about reflection!!
05:17:06 <shachaf> zzo38: Can you express CodensityAsk as a CodensityAsk type?
05:17:12 <oerjan> reflection lets you be down with what's up
05:19:05 <zzo38> shachaf: I suppose you can use (CodensityAsk (IdentityT f)) but I don't know if that is what you meant
05:19:22 <zzo38> (But you can do that with anything really)
05:22:44 <shachaf> zzo38: What's CodensityAsk (Cont r)?
05:23:49 <zzo38> shachaf: I don't know, but it is something.
05:24:29 <zzo38> However, notice that you don't need to use a functor there, it can be anything, such as (CodensityAsk Predicate) to make up the infinite search monad.
05:25:01 <shachaf> zzo38: CodensityAsk is "pretty damn awesome", confirms another channel.
05:29:11 <shachaf> zzo38: Is it really related to Codensity, though?
05:29:40 <shachaf> Codensity m a = forall z. (a -> m z) -> m z
05:33:40 <zzo38> shachaf: Well, kind of, but not really. I just didn't know what other name to put.
05:34:06 <zzo38> It is a monad in the same way that Codensity is a monad.
05:34:31 <zzo38> Which is also the same way that Cont is a monad, too.
05:34:32 -!- oerjan has quit (Quit: Good night).
05:42:01 -!- zzo38 has quit (Quit: Good night (again)).
06:10:56 <shachaf> @ask zzo38 Is this the CodensityAsk Monad (>>=)? m >>= f = CA $ \q k -> runCA m q (\x -> runCA (f x) q k)
06:20:25 -!- barts has quit (Quit: leaving).
06:24:36 <Sgeo> Today I learned that YKK is a company
06:49:29 -!- nooga has joined.
06:49:37 <elliott> pikhq: what's a good cpu these days
07:08:22 -!- epicmonkey has joined.
07:26:10 -!- epicmonkey has quit (Ping timeout: 246 seconds).
07:31:22 <ion> elliott: 68000
07:31:49 <ion> Much more powerful than the 6502.
07:32:11 <ion> Youβre welcome.
08:01:37 -!- Jafet has joined.
08:02:03 <shachaf> @tell zzo38 Oh, I guess so.
08:20:54 -!- TeruFSX has quit (Read error: Connection reset by peer).
08:44:04 -!- epicmonkey has joined.
09:53:01 -!- kinoSi has quit (Read error: Connection reset by peer).
09:53:30 -!- kinoSi has joined.
10:21:05 <elliott> kmc: http://www.dustingetz.com/2012/10/09/can-haskell-prove-that-a-program-will-not-crash.html
10:22:43 <elliott> so in effect, an expression of type int -> int, will only crash in the same ways that math can βcrashβ on pencil and paper.
10:22:49 <elliott> Which means that if weβre confident that our program isnβt β₯ (do you really worry about the halting problem in your business application?), if your program passes the type checker, it will not crash. ever. (Unless it runs out of memory, or you unplug it, β¦)
10:23:59 <monqy> i can offer a hard guarantee that if your program won't crash it won't crash
10:24:10 <monqy> how much more could you ever want or need
10:25:19 <Jafet> http://www.dustingetz.com/2012/10/07/monads-in-python-identity-maybe-error.html
10:26:13 <elliott> "business logic is crystal clear. hook it up to a flowchart software or something.
10:26:16 <elliott> heeeeeeeeeeeeeeeeeeeeeeeeeeeeelp
10:27:23 <monqy> Strange Loop 2012 talk - Monads for normal people in python (slides), monads for normal people in python and clojure
10:30:35 -!- monqy has quit (Quit: hello).
10:38:53 -!- ais523 has joined.
10:40:05 -!- Phantom_Hoover has joined.
10:48:57 -!- ogrom has joined.
11:01:41 -!- copumpkin has quit (Ping timeout: 248 seconds).
11:02:14 -!- copumpkin has joined.
11:04:31 -!- Arc_Koen has joined.
11:06:38 -!- ais523_ has joined.
11:06:48 -!- ais523 has quit.
11:08:09 <Jafet> "! End of file on the terminal... why?"
11:09:06 <Arc_Koen> hey, has anyone seen itidus lately?
11:18:22 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
11:19:19 -!- Phantom_Hoover has joined.
11:30:12 <Deewiant> He got called "full of shit always", "spends too much time dragging down the discussion", "making the channel that much worse by being here and [..] clearly never going to change", and took off half an hour later; this was about 156 hours ago.
11:30:42 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
11:54:09 <elliott> Deewiant: sounds like the #esoteric I know
11:55:00 <elliott> nice looks like oerjan started it
11:55:04 <elliott> don't see that every day!!
11:55:55 <elliott> 22:47:20: <itidus21> i am more interested in the unsolicited humour than reality when i say there is no operation which satisfies x in the equation (> (x wolfram) (in mathematicians_wolfram_admires))
11:56:01 <Deewiant> Right, there was some stuff before those quotes, too.
11:56:01 <elliott> that might just be the best opening sentence to an argument ever
11:56:17 <elliott> 22:28:17: <itidus21> apparently wolfram's new kind of science recommends mathematica.. and someone is annoyed by it
11:56:17 <elliott> 22:29:53: <itidus21> i think.. maybe he should see a psychologist
11:56:58 <elliott> 22:55:22: <itidus21> what i tried to say is really in bad taste
11:56:59 <elliott> 22:55:30: <itidus21> so im glad its meaningless
11:57:07 <elliott> i should probably feel bad for laughing at all this a lot
11:57:22 -!- copumpkin has quit (Ping timeout: 252 seconds).
11:57:55 -!- copumpkin has joined.
11:58:07 <elliott> Deewiant: Well, only two of those were PH rather than the three I expected, that's quite exciting.
11:58:18 <elliott> maybe #esoteric does change sometimes!
12:01:41 <elliott> What, he didn't even reply. I want my money back.
12:05:46 -!- ais523_ has changed nick to ais523.
12:06:26 <ais523> elliott: Mathematica ancedote: writing the 2,3 turing machine functions in mathematica, they were orders of magnitude slower than the equivalent Perl
12:06:34 <ais523> (and Perl is not the right language to write those in)
12:08:13 <elliott> ais523: err, you told me this five years ago
12:09:08 <elliott> ais523: why do I remember you telling me something about Mathematica five years ago
12:10:18 <elliott> ais523: well I wouldn't go *that* far [LAUGH TRACK]
12:10:25 -!- ais523 has quit.
12:10:42 -!- ais523 has joined.
12:10:50 <elliott> @tell ais523 i take it back, i'm not sorry at all
12:10:56 -!- boily has joined.
12:11:06 <lambdabot> ais523: You have 3 new messages. '/msg lambdabot @messages' to read them.
12:11:09 <lambdabot> AnotherTest asked 9d 19h 8s ago: On Wikipedia, programming language pages have "info boxes" which show some basic but useful information. Maybe we could do this on the esolangs wiki too? (To give
12:11:10 <lambdabot> you an idea of the information that the boxes would contain; I was thinking of: paradigms, creator, year of creation, derived from, influenced by, influenced, specification, reference implementation
12:11:10 <lambdabot> elliott said 19s ago: i take it back, i'm not sorry at all
12:11:32 <ais523> I don't think you need to apologise for whatever you were trying to apologise for
12:11:43 <elliott> <elliott> ais523: well I wouldn't go *that* far [LAUGH TRACK]
12:11:44 <elliott> <elliott> @tell ais523 i'm sorry
12:11:44 <elliott> <lambdabot> Consider it noted.
12:11:44 <elliott> * ais523 (~ais523@unaffiliated/ais523) has joined #esoteric
12:11:46 <elliott> <elliott> @tell ais523 i take it back,
12:11:50 <elliott> i stopped being sorry because it became clear you did not actually get upset!
12:11:52 <elliott> therefore i don't have to be worry
12:14:52 -!- copumpkin has quit (Ping timeout: 244 seconds).
12:15:27 -!- copumpkin has joined.
12:32:48 -!- Phantom_Hoover has joined.
12:37:13 -!- ais523 has quit (Read error: Connection reset by peer).
12:37:19 -!- ais523_ has joined.
12:37:53 -!- ais523_ has changed nick to ais523.
12:41:14 -!- ogrom has quit (Quit: Left).
12:47:34 -!- Slereah_ has joined.
12:49:34 -!- Slereah has quit (Ping timeout: 246 seconds).
13:10:44 <nortti> wtf: http://thedailywtf.com/Articles/The-Killing-Job.aspx
13:16:23 -!- ais523 has quit.
13:17:44 <ion> I have a weekβs worth of stats from my server thatβs in the NTP pool. The connection speed has been set as 3Β Mbit/s in the pool settings, the average usage is less than 0.5Β kB/s. http://heh.fi/collectd/img/ntp-bytes
13:18:22 <elliott> ion: Haha, you actually have that GPS thing in an NTP pool?
13:18:37 <ion> elliott: My server has been in the pool for ages.
13:21:13 <elliott> ion: Well, I only got told about this server thing a few days ago by someone or other in here.
13:21:17 <elliott> I am "out of" "the" "loop".
13:24:34 <elliott> ion: Do you happen to know if there's any particularly easy way to compare my system's idea of the time with your server's?
13:24:51 <elliott> I'm synchronised with ntp myself though, so it might be... uninspiring.
13:25:21 <ion> elliott: βserver ntp1.heh.fi iburstβ
13:25:51 <elliott> ion: I take it that's not a shell command.
13:25:53 <ion> elliott: Which servers are you using, btw? {0,1,2,3}.{your area}.pool.ntp.org?
13:25:57 <ion> elliott: A ntp.conf line
13:26:09 <elliott> It's, uh, literally whatever the Arch default is. Let me check.
13:26:20 <elliott> [012].pool.ntp.org. Thoroughly uninspiring.
13:26:36 <elliott> I guess there is probably some trickery to give me geographically-appropriate servers for those?
13:27:44 <ion> 0) Vendors are working against the pool rules by using that by default; they should be {0,1,2,3}.arch.pool.ntp.org. 1) Why {0,1,2}, not {0,1,2,3}? 2) I think it probably has some GeoIP stuff, but i guess itβs best to use {0,1,2,3}.{your area}.pool.ntp.org.
13:29:08 <elliott> 0) Who starts numbering their lists from 0? I'm hereby renumbering 0 as 1. 1) I'd report it as a bug, except, uh... I'm lazy, and I doubt they'd care. 2) God knows, but that's how it is. 3) Right. Modifying configurations is so 2011, but maybe having super accurate time is 2012 enough to counter it out.
13:29:26 <elliott> I like how http://pool.ntp.org/ has a decent chance of getting you some quaint time server website.
13:29:41 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
13:30:14 <elliott> ion: I'm not sure what the vendor thing is about, though. It seems a rather arbitrary distinction.
13:30:49 <elliott> Should Linux from Scratch recommend you use lfs.pool.ntp.org, even though you're mostly doing things yourself and don't really have any association with LFS?
13:30:56 <elliott> Admittedly Arch is a bit heavier-weight than that, but still.
13:31:27 * elliott notes that http://www.pool.ntp.org/en/use.html doesn't mention anything about it either :p
13:31:36 <elliott> I guess http://www.pool.ntp.org/en/vendors.html is it.
13:31:38 <ion> Sometimes some vendorβs device/software is faulty in some way and DoSes the pool. That way they can limit the issue until the bug is fixed.
13:31:48 <elliott> "Time usually just advances." Deep.
13:31:49 <Jafet> lfs should provide instructions for calibrating with a sundial
13:32:06 <elliott> ion: I think Arch just ships unpatched ntpd with a default configuration file.
13:32:16 <elliott> They don't patch stuff all that much.
13:32:28 <elliott> Also by ntpd I think I mean openntpd?
13:32:52 <ion> If an LFS/whatever *user* configures their ntpd theyβre free to do whatever they want. But vendors coming with some kind of a default configuration should get a subdomain.
13:33:04 <Jafet> Is there much practical use for having network calibrated time, anyway?
13:33:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:33:06 <elliott> No, I mean whatever this "ntp" package is.
13:33:28 <elliott> Jafet: Well, you get a clock that's right. That's pretty valuable.
13:34:13 <elliott> ion: Right. So where do you draw the line between a user copy-pasting an example configuration file from a website, and a user telling a tool (e.g., package manager pacman) to copy-paste an example configuration file for them? Admittedly it's somewhat more obvious in the case of something big and supported and official like Ubuntu.
13:34:35 <Jafet> So, why is that valuable.
13:35:21 <elliott> Jafet: Well, time is a thing.
13:35:28 <elliott> I think all sorts of Official(tm) stuff uses NTP.
13:35:31 <ion> Protocols that require roughly the same time on both ends are able to work. Filesystem etc. timestamps will be correct.
13:35:35 <elliott> "Therefore, air traffic control was one of the first applications for NTP." -- see, that's official.
13:36:02 <ion> You wonβt be late for work when using your computerβs clock.
13:36:18 <Jafet> That's assuming your office is on the same time!
13:36:54 <Jafet> I think protocols should start by negotiating time, rather than assuming the same time.
13:37:15 <elliott> There's also the whole thing where it's nice for you, as a person, to know what time it is.
13:37:37 <elliott> Unless you want every conversation about when to do a certain thing to involve negotiating two different clocks that are 15 minutes off because nobody synchronises their time.
13:37:43 <ion> Yeah, add time-dependency to the protocol so the attacker is unable to replay authentication packets⦠but let her dictate what time it is.
13:37:50 <elliott> Seems nicer to have just one program (i.e., ntp) do the conversations about agreeing on what a time means.
13:38:41 <Jafet> "Someone with a watch can always tell the time. Someone with two watches is never sure."
13:39:05 <ion> Someone with two ntp-synchronized watches?
13:39:23 <elliott> I think Jafet may be engaged in some leg-pulling.
13:42:53 -!- FreeFull has joined.
13:43:41 -!- Phantom_Hoover has joined.
13:48:29 <ion> nortti: :-D
13:50:41 <Jafet> ion: bitches don't know about mah nonce
13:53:22 <ion> βWe can use y to help us obtain an estimate of x, but we cannot necessarily take the information from y at face value because it is corrupted by noise. The measurement is like a politician. We can use the information that it presents to a certain extent, but we cannot afford to grant it our total trust.β :-D
13:54:35 <Jafet> Politicians, unfortunately, don't tend to be gaussian.
13:54:44 -!- copumpkin has joined.
14:06:57 -!- mig22 has quit (Quit: mig22).
14:15:28 -!- sirdancealot has quit (Ping timeout: 246 seconds).
14:26:06 -!- MoALTz has quit (Quit: Leaving).
14:27:04 -!- jiella has joined.
14:33:47 -!- MoALTz has joined.
14:40:08 -!- sirdancealot7 has joined.
14:40:43 -!- kmc_ has joined.
14:40:57 -!- ineiros has joined.
14:41:27 -!- tswett_ has joined.
14:45:46 -!- kmc has quit (*.net *.split).
14:45:50 -!- yiyus has quit (*.net *.split).
14:45:50 -!- ineiros_ has quit (*.net *.split).
14:45:50 -!- tswett has quit (*.net *.split).
14:53:58 -!- yiyus has joined.
14:58:01 -!- sirdancealot7 has quit (Ping timeout: 246 seconds).
14:59:24 -!- sirdancealot7 has joined.
15:01:14 -!- augur has quit (Remote host closed the connection).
15:22:31 -!- MoALTz has quit (Ping timeout: 245 seconds).
15:23:00 -!- MoALTz has joined.
15:26:45 -!- sirdancealot7 has quit (Ping timeout: 248 seconds).
15:46:18 -!- augur has joined.
15:59:40 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
16:09:08 <nooga> struct S x, y; x = y; just blindly mempcys contents from x to y?
16:10:36 <kmc_> in C++ you can define the behavior by overloading operator=
16:10:46 -!- kmc_ has changed nick to kmc.
16:11:15 -!- Phantom_Hoover has joined.
16:11:26 <kmc> the default in C++ is basically that it does "x.a = y.a; x.b = y.b;" for all the fields
16:11:45 <kmc> which might in turn invoke a user-defined operator= or recursively invoke that default rule
16:11:54 <kmc> so Plain Old Data in C++ effectively gets memcpy'd too
16:12:22 <nooga> i never use plain structs
16:12:31 <nooga> always pointers to structs
16:12:47 <Arc_Koen> I never use pointers to structs
16:12:54 <Arc_Koen> always pointers to pointers to structs
16:12:58 <kmc> i don't always use structs, but when i do, i use pointers to them
16:17:27 -!- elliott has quit (Ping timeout: 240 seconds).
16:29:57 <fizzie> nooga: It's not guaranteed to memcpy. In particular, it need not copy padding.
16:33:02 <nooga> if the struct fits into 32 or 64 bits (in x86-64)
16:33:29 <nooga> i've just read what clang produced for my test program
16:33:48 <fizzie> Yes, well, but the point was that it doesn't need to copy all the bytes. Of course it can, and maybe probably will.
16:34:35 <fizzie> "When a value is stored in an object of structure or union type -- the bytes of the object representation that correspond to any padding bytes take unspecified values.51) ... 51) Thus, for example, structure assignment need not copy any padding bits."
16:42:44 <Gregor> It will frequently, perhaps always, be more efficient to copy the padding anyway.
16:43:07 <Gregor> (Irrelevant statement GOOOO)
16:43:53 <olsner> it will always be most efficient to choose the most efficient alternative
16:45:52 <olsner> actually no, choosing can be costly ... skip directly to *using* the most efficient alternative
16:50:02 -!- Jafet has quit (Ping timeout: 245 seconds).
16:51:04 -!- epicmonkey has quit (Ping timeout: 246 seconds).
16:58:07 -!- ogrom has joined.
16:58:26 -!- zzo38 has joined.
17:05:53 -!- Jafet has joined.
17:12:12 <nooga> i like this channel
17:16:49 <lambdabot> zzo38: You have 2 new messages. '/msg lambdabot @messages' to read them.
17:16:58 <zzo38> lambdabot ?messages
17:17:03 <lambdabot> shachaf asked 11h 6m 1s ago: Is this the CodensityAsk Monad (>>=)? m >>= f = CA $ \q k -> runCA m q (\x -> runCA (f x) q k)
17:17:03 <lambdabot> shachaf said 9h 14m 58s ago: Oh, I guess so.
17:17:53 <zzo38> Yes, it is almost a kind of Codensity monad.
17:21:52 <olsner> hmm, is it just me or has the internet been more boring than usual the last few weeks?
17:22:32 -!- Jafet has quit (Ping timeout: 255 seconds).
17:22:33 <boily> I'd say it is interestingly boring.
17:23:37 <nortti> lol: http://thedailywtf.com/Articles/Taking-a-Dump.aspx
17:25:58 <olsner> ah, that did temporarily restore my faith in the internet
17:27:30 <nooga> http://fu.x14.eu/#WTF,funny,pics,4chan here You go
17:28:21 <ion> nortti: hah
17:33:41 -!- zzo38 has quit (Remote host closed the connection).
17:36:47 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
17:39:49 -!- sirdancealot7 has joined.
17:42:11 -!- ogrom has quit (Quit: Left).
17:43:45 <shachaf> ion: https://groups.google.com/forum/?fromgroups=#!topic/bahaskell/QJi4bU0cFi4
17:47:41 <nooga> i never did that but I always thought that I can ((unsigned int*)0x54aa4f02) = 100;
17:48:07 <olsner> sure, you "can" do that
17:48:43 <nooga> it's not legal lvalue according to clang
17:48:54 <olsner> oh, you're missing a *
17:52:39 -!- Phantom_Hoover has joined.
17:56:38 -!- augur has quit (Read error: Connection reset by peer).
17:57:07 -!- augur has joined.
17:58:48 -!- mean has joined.
18:03:19 <ion> shachaf: Thereβs going to be a Google hangout?
18:11:45 <shachaf> ion: I think that's the plan.
18:11:52 <shachaf> It's like recording, except for the recording bit.
18:12:34 <ion> I hope it also gets recorded.
18:17:51 <shachaf> You can record the G+ stream!
18:20:09 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
18:20:25 -!- Arc_Koen has quit (Quit: Arc_Koen).
18:38:40 -!- atriq has joined.
18:40:19 <atriq> Means I don't have to deal with anything
18:41:21 -!- Phantom_Hoover has joined.
18:43:40 <fizzie> @tell atriq Deal with a thing, please.
18:43:54 <atriq> @tell fizzie I REFUSE
18:44:06 <fizzie> This was a productive thing to do.
18:44:19 <fizzie> I hope I didn't have any messages in the meanwhile there.
18:45:21 <atriq> That would have been bad
19:02:35 <ion> SmoothLife is a family of rules created by Stephan Rafler. It was designed as a continuous version of Conway's Game of Life - using floating point values instead of integers. http://youtu.be/KJe9H6qS82I
19:02:54 <atriq> Didn't Phantom_Hoover make something like that?
19:02:56 <atriq> Wait, that was chess
19:03:03 <ion> shachaf: Iβm sure the stream will be of much worse quality than what can be recorded on-site.
19:03:49 <Sgeo> As an actually playable game, or as ... something to observe
19:04:02 <Sgeo> Can I read about SmoothLife rather than watch a video?
19:05:03 <Phantom_Hoover> he won the first game because i let him change the rules
19:05:21 <Sgeo> Can I assume by flotrary ratiiece of shit right now.
19:05:25 <Sgeo> , my computer is being a piece of shit right now.
19:05:25 <Sgeo> , my computer is being a piece of shit right now.
19:05:43 <Phantom_Hoover> and also i mustn't've worked out the final version of the rules for moving through enemy piece
19:06:27 <Sgeo> What I intended to say was, can I assume that by floating point values, you mean arbitrary reals or rationals?
19:07:21 <Sgeo> flotrary ratiiece, what a wonder phrase.
19:09:54 <Sgeo> Phantom_Hoover, that paper looks like it was made after Gemini?
19:11:01 <Sgeo> Just that the paper mentions large constructions and changes to the GoL rules made in the search of a non-orthogonal non-diagonal "glider"
19:11:12 <Sgeo> (I think the paper is abusing the term "glider", isn't it?)
19:11:37 <atriq> I have a fear that in two thousand years the only source for historians learning about our civilization will be Tumblr
19:11:52 <Phantom_Hoover> 'glider' is often used the same way as 'spaceship' when talking about general cas
19:12:52 <atriq> To demonstrate the problem: http://froyuh.tumblr.com/post/33310816271/katherinebloginson-frankenzned
19:13:32 -!- ais523 has joined.
19:13:39 <Phantom_Hoover> that is a pretty cutting commentary on our civilisation though
19:14:13 <atriq> I spell how I want to spell: no more, no less.
19:16:13 <atriq> I believe on an older version of my user page I mentioned I spoke en-GB-oed, in which -ize and -ization are accepted
19:19:07 -!- oerjan has joined.
19:21:04 <oerjan> <elliott> nice looks like oerjan started it <-- i was _not_ the one to say he made the channel worse. i think.
19:22:22 * oerjan might be gone a few(?) days himself, got to get something done about my bad feet...
19:22:57 <atriq> Has anyone any itinews?
19:23:13 <ais523> hmm, the TV is currently talking about one of those questions that makes your head hurt
19:23:22 <ais523> basically, it's to do with Fairtrade ingredients
19:23:46 <oerjan> he isn't on freenode under his two usual nicks, anyway. (he was last time i checked.)
19:24:01 <ais523> some companies have apparently been buying both Fairtrade and non-Fairtrade ingredients, and putting the non-Fairtrade ingredients in their Fairtrade products and vice versa
19:24:17 <ais523> such that they're using the same amount they would have used otherwise
19:24:54 <ais523> the question is, is this unethical in any way? the issue in my head is that the only difference between fairtrade and non-fairtrade is the price the company paid the farmers
19:25:02 <ais523> and they're receiving the same amount of money any way
19:25:40 <oerjan> reminds me of the green electricity market - current doesn't care where it comes from :)
19:26:29 -!- mean has quit (Read error: No route to host).
19:26:52 -!- oerjan has quit (Quit: Ribbit).
19:33:04 -!- oerjan has joined.
19:35:22 <shachaf> ion: You should ask about recording!
19:35:53 <oerjan> :t let m >>= f = \q k -> m q (\x -> (f x) q k) in (>>=)
19:35:54 <lambdabot> forall t t1 t2 t3 t4. (t -> (t1 -> t2) -> t3) -> (t1 -> t -> t4 -> t2) -> t -> t4 -> t3
19:35:58 <shachaf> ion: I guess you'd have to join the list. Should I ask?
19:38:29 <oerjan> oh i guess there's a forall on the (t1 -> t2) vs. t4 part
19:38:47 <atriq> kallisti, I need to make someone who's trying to be cool by pretending to be a discordian look like an idiot
19:40:19 <HackEgo> 2012-10-10.txt:19:39:21: <oerjan> `log newtype CA
19:40:53 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25933
19:41:38 <oerjan> `pastelogs zzo38>.*\<CA\>
19:41:45 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.906
19:42:26 <oerjan> `pastelogs zzo38 codensityask
19:42:32 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30825
19:42:34 <oerjan> `pastelogs zzo38.*codensityask
19:42:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29654
19:44:10 <ion> shachaf: If you donβt mind asking, iβd appreciate it.
19:45:19 <oerjan> of course the housemate has to start humming precisely when my brain is _just_ out of reach of grasping this.
19:45:48 * Sgeo has a habit of humming
19:45:59 * oerjan hires a hitman to take out Sgeo
19:46:07 <oerjan> it's for the good of humanity!
19:46:20 -!- epicmonkey has joined.
19:47:17 <oerjan> oh well, it's just the universe's way of telling me not to get anywhere near codensityask.
19:47:20 -!- augur has quit (Read error: Connection reset by peer).
19:47:41 -!- augur has joined.
19:47:55 * oerjan hires a hitman to take out the universe
19:50:16 <mroman> Quick or slow painful death?
19:50:26 <oerjan> quick. we are not monsters either.
19:50:46 <oerjan> besides, i don't want slow painful death on my karma.
19:50:56 <Sgeo> Is CodensityAsk a zzo38 invention?
19:51:12 <atriq> What's CodensityAsk?
19:51:14 <oerjan> it's in that last paste
19:53:08 -!- augur has quit (Read error: Connection reset by peer).
19:53:31 -!- augur has joined.
19:54:49 -!- augur has quit (Read error: Connection reset by peer).
19:55:14 -!- augur has joined.
19:55:15 <atriq> I don't see how that's a functor
19:55:53 <atriq> Unless you don't use the function at all
19:56:02 <atriq> In which case, it's a ridiculous Proxy
19:57:59 <oerjan> zzo38 claims it's a monad always
19:58:13 <oerjan> but sadly my brain cannot get close to it
19:59:34 <fungot> \o| |o| |o/ \m/ \m/ |o/ \o/ \o| \m/ \m/ \o| |o| |o/
20:00:47 <Sgeo> Who was it who did that anyway?
20:08:34 <kallisti> 19:38 < atriq> kallisti, I need to make someone who's trying to be cool by pretending to be a discordian look like an idiot
20:08:41 <kallisti> no, I am not very good at this
20:08:54 <atriq> I HAVE PROMISED NEVER TO TALK TO HIM EVER AGAIN
20:09:07 <kallisti> my usual razor-sharp wit fails me, now.
20:09:23 -!- tswett_ has changed nick to tswett.
20:09:28 <atriq> One of my friends was telling me a story today
20:09:31 <kallisti> though a maternal insult is always a reliable choice.
20:09:48 <atriq> About how, one christmas, she received a DVD and was struggling to open it
20:10:04 <atriq> So she asked her brother to give her a knife or a pair of scissors
20:10:19 <atriq> "Don't worry. We can use my razor-sharp wit!"
20:12:40 -!- hagb4rd has joined.
20:12:56 <oerjan> kallisti: your mom is a reliable choice
20:26:48 -!- ais523_ has joined.
20:27:38 -!- ais523 has quit (Ping timeout: 245 seconds).
20:27:43 -!- ais523_ has changed nick to ais523.
20:35:29 -!- hagb4rd has quit (Ping timeout: 256 seconds).
20:45:15 -!- boily has quit (Quit: Poulet!).
20:52:18 -!- epicmonkey has quit (Ping timeout: 276 seconds).
21:02:04 -!- Jafet has joined.
21:05:41 -!- atriq has quit (Quit: Leaving).
21:29:15 -!- Nisstyre-laptop has joined.
21:33:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
21:34:18 -!- Nisstyre-laptop has quit (Ping timeout: 264 seconds).
21:53:44 -!- kinoSi has quit (Read error: Connection reset by peer).
21:54:10 -!- kinoSi has joined.
21:55:40 -!- hagb4rd has joined.
22:09:46 -!- augur has quit (Remote host closed the connection).
22:22:15 -!- Arc_Koen has joined.
22:23:35 -!- FreeFull has quit (Quit: Sleep).
22:29:38 <Arc_Koen> oerjan: any new thoughts on ais523's non-deterministic brainfuck?
22:32:26 -!- nooga has quit (Ping timeout: 252 seconds).
22:33:00 <oerjan> which one was that again
22:33:33 <oerjan> i guess my current thought is that it was rather forgettable :P
22:34:26 <oerjan> nothing to be sorry about, i just took a while answering
22:34:37 <Arc_Koen> + > [Β ] with [Β ] identical to brainfuck and + is randomly + or - and > is randomly > or <
22:38:23 <oerjan> well, nothing new, no.
22:38:43 <oerjan> i think it may be particularly hard to use ><
22:39:30 <oerjan> to see if it's still possible to do anything in it, presumably
22:40:43 -!- augur has joined.
22:44:05 <Arc_Koen> it may be simpler starting with boolean cells (and + always flipping the bit)
22:44:27 <shachaf> http://samuelhughes.com/boof/
22:44:54 <Arc_Koen> and then maybe use [>] to move to nearest zero cell, digfill-style
22:50:12 <oerjan> i just don't see any way to reliably return to a cell.
22:51:07 <Arc_Koen> well if you're on a cell with all the cells to the right zero and the cell to the left 1
22:51:31 <oerjan> i mean if there is a nontrivial pattern of cell values.
22:51:33 <Arc_Koen> hmmm that doesn't even work if the cell you're in is 1
22:52:09 <Arc_Koen> well if we can find a pattern that makes it possible, then we *only* need to make programs that keep that pattern
22:55:45 -!- copumpkin has joined.
23:04:07 <Arc_Koen> urrrh why is there no sum or successor function with type char in ocaml
23:06:48 <oerjan> > map succ "I dunno, use haskell >:P"
23:07:19 -!- jiella has quit (Quit: Leaving.).
23:08:01 <oerjan> it doesn't have sum though, not that summing unicode codepoints makes sense.
23:08:39 <oerjan> shachaf: you didn't get zzo38's language name before? :)
23:09:20 <ais523> oerjan: note that < and > all do at least move
23:09:25 <ais523> so you always know if you're on evens or odds
23:09:35 <ais523> this may make it possible to maintain two numbers on the stack, somehow
23:11:16 <ais523> on odds and evens of the tape
23:11:49 <shachaf> Well, not if you use > in a loop...
23:11:51 <ais523> the problem is that the value of the numbers is pretty fuzzy and hard to determine
23:11:55 <ais523> shachaf: if you do [>]
23:12:16 <ais523> then you're moving until you find some blank cell that has no blank cells between it and your current location
23:12:24 <ais523> it's the same except for respecting oddness/evenness
23:12:28 <oerjan> i am not sure there is a reliable way to distinguish more than even vs. odd numbers, zero is a subset of even but can you reliably set some cell to non-zero even?
23:13:09 <ais523> reliably sets it to 1 or -1
23:13:17 <oerjan> non-zero _even_ i said
23:13:51 <oerjan> there is definitely no way to distinguish 1 from -1, by symmetry
23:14:22 <oerjan> (not that i think you meant that)
23:14:41 <ais523> I'm not convinced you can reliably distinguish 1 from 2 without an infinite loop
23:15:36 <ais523> something along the lines of [+]++[>] seems promising
23:15:43 <ais523> except you can't figure out where the pointer is afterwards
23:15:46 <ais523> and you'd need to put it in a loop
23:15:55 <oerjan> that could easily keep it as 0
23:16:05 <ais523> the idea is you loop until the [>] runs and moves the pointer
23:16:09 <ais523> but you can't detect whether it moved or not
23:16:30 <ais523> you could just do [[+]++[rest of program here]]
23:16:35 <ais523> but that doesn't repeat
23:16:56 <ais523> well, it /does/ repeat, if you only have one of them
23:17:06 <ais523> you could drop out of the main loop to set cells to 2/-2
23:18:22 <oerjan> hm an observation: if a run of non-zero's is even in length, then you _can_ reliably get to the zero at a chosen end
23:19:15 <oerjan> from a known point inside it
23:19:16 <ais523> no, not at a chosen end
23:19:31 <ais523> by using the length as an indicator
23:19:51 <ais523> err, couldn't you also end up one past the other end?
23:42:02 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
23:43:25 <oerjan> i wonder if this is somehow related to an idea i've had - a brainfuck variant where you can only apply + to 0 and - to 1, and any other use of them is undefined behavior
23:44:01 <ais523> your language seems much easier
23:44:05 <oerjan> it's sort of an intersection of every bf cell size with unbounded tape, but still TC
23:44:17 <oerjan> yeah it has no >< problem
23:44:18 <ais523> yeah, it's obviously TC
23:44:39 <oerjan> you can emulate boolfuck flip with 2 cells easily
23:46:19 <oerjan> the relation i thought of is just that your variant has those operations as + (or [+]+) and [+] respectively
23:56:51 <oerjan> +[>>]+[>>]+ creates a 10101 pattern and puts you at one end
23:58:01 <oerjan> +[>]+[>]+[>>]+ creates a 11101 pattern
23:59:56 <ais523> neither [+]+ nor [+] cares about the original value