00:00:00 <ais523> the operation might not be a generally useful one, but I can't see why it wouldn't be /possible/
00:00:02 <elliott> Haskell is defined in terms of existing OSes
00:00:11 <elliott> compiling @lang to C doesn't work because @lang /is @/
00:00:26 <elliott> the most you can do is bundle it with an interpreter (= a @ simulator)
00:00:38 <ais523> I suspect you're making a mistake I made in Feather
00:00:42 <ais523> but it's not a very easy mistake to describe
00:03:45 <ais523> umm… a language typically has pure-computation parts, and an API
00:03:47 <elliott> ais523: I mean, if you can take the @ part out of @lang, then @lang is broken
00:04:12 <ais523> if you metacircular both of them, then you don't have an interp at all, just a cheat-interp
00:04:27 <ais523> whereas you can't do the API without implementing it in terms of itself, for a self-interp
00:04:36 <ais523> what I mean is, you have to implement @lang in something
00:04:51 <ais523> parts of that will be pure computation, and can be lifted back to the original language, in a sense
00:04:53 <elliott> but what has this got to do with compiling @lang to C?
00:04:58 <ais523> replacing the parts of it that aren't computation with API calls
00:05:30 <ais523> err, it's pretty hard to explain
00:05:31 <elliott> ais523: those API calls are @
00:05:39 <ais523> but you can't make a language out of /just/ API calls
00:05:50 <ais523> well, probably (/me remembers the MOV-based OISC)
00:05:53 <elliott> indeed, but you can't do anything with /just/ computation
00:06:05 <elliott> so you can't write an @ simulator in @lang and compile it to another OS
00:06:06 <ais523> and one of the parts, it's meaningful to compile it
00:06:09 <elliott> because you need the bit that's @
00:06:30 <ais523> I wasn't talking about an @ simulator; but rather, an @lang impl in @lang that calls into the surrounding @ just for API calls
00:06:50 <elliott> you don't implement @lang to simulate @; @lang's at a higher level
00:07:03 <elliott> anyway, OK, but I'm not sure what the use of that would be
00:07:06 <ais523> now, you can attempt to restrict those API calls to the smallest subset you can, which is what you'd do to implement @ onto a new system
00:07:14 <ais523> it might not be useful, I'm just saying it's not meaningless
00:07:14 <Vorpal> elliott: remind me, why did you go for @ as the name?
00:07:20 <ais523> Vorpal: @ isn't the name
00:07:24 <elliott> no, you wouldn't, you'd just implement the @ machine in a handful of pages of whatever code
00:07:30 <ais523> it's a metasyntactic variable standing for what the name will eventually be
00:07:43 <elliott> anyway, maybe it's possible, but such a compiler would necessarily have to be very ugly
00:07:48 <elliott> and probably only work on very carefully-written programs
00:07:52 <pikhq_> I suggest the name involve "hubris" in some way.
00:07:54 <elliott> easier just to write the C directly for such a simple program
00:08:42 <elliott> ais523: if it /isn't/, then @'s abstract machine needs replacing
00:09:05 <pikhq_> I'd imagine @lang without @ would be a bit like Haskell without IO: does computation, and can't do anything at all with it.
00:09:15 <ais523> pikhq_: yes, that's about right
00:09:25 <elliott> pikhq_: no data structures
00:09:42 <ais523> elliott: how are the data structures bootstrapped?
00:09:42 <pikhq_> elliott: Okay, so Haskell without Prelude then.
00:09:44 <elliott> you'd basically be reduced to reimplementing everything you want to use from scratch
00:10:02 <ais523> reimplementing the data structures from scratch is exactly the sort of thing I'd expect the @ simulator in @ to do
00:10:07 <ais523> that's usefully compilable
00:10:15 <elliott> because there are no data structures to implement
00:10:25 <ais523> well, they have to come from somewhere!
00:10:26 <elliott> I don't think you understand how simple the abstract machine is meant to be
00:10:48 <ais523> I do, I think; I'm disagreeing with you where the boundaries between the abstract machine and the rest of the world are
00:10:56 <ais523> as in, I think there's something in between that you're repeatedly claiming doesn't exist
00:11:27 <elliott> I think you just don't understand how @ is structured
00:13:16 -!- sllide has quit (Ping timeout: 276 seconds).
00:14:11 -!- tiffany has quit (Quit: nyu~).
00:14:49 <elliott> ais523: anyway, code in @ is basically completely unportable, by design
00:15:42 <pikhq_> Which sense of "portable" do you mean?
00:15:47 <pikhq_> Between OSes, or between CPUs?
00:16:31 <pikhq_> Ah. Yeah, a port of @ code would either be a complete rewrite or contain an implementation of the relevant portions of @.
00:19:44 -!- boily has quit (Ping timeout: 240 seconds).
00:20:11 -!- ais523 has quit (Remote host closed the connection).
00:29:49 <twice11> Do you have any link for @lang? I don't find it in the Esolang language list.
00:31:05 <elliott> @lang is not technically esoteric, it's just more esoteric than almost all languages on the wiki
00:31:37 <Vorpal> why would @lang do that
00:31:52 <elliott> lambdabot does error-correction
00:32:18 <Vorpal> elliott: I don't see how lang → ping is reasonable though
00:32:34 <twice11> Probably ping is the unique closest match.
00:32:49 <Vorpal> well, I guess there was none close enough
00:33:24 <Vorpal> it seems to be quite lenient
00:33:41 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
00:33:49 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
00:34:05 <Vorpal> @yhjulwwiefzojcbxybbruweejw
00:35:01 <Vorpal> @yhjulwwiefzojcbxybbruweejw
00:35:01 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
00:36:03 <twice11> Hmm, lets see how close this is:
00:36:11 <Vorpal> @hoogle+ (a -> b) -> [a] -> [b]
00:36:11 <lambdabot> Data.Monoid appEndo :: Endo a -> a -> a
00:36:11 <lambdabot> Data.ByteString append :: ByteString -> ByteString -> ByteString
00:36:11 <lambdabot> Data.ByteString.Char8 append :: ByteString -> ByteString -> ByteString
00:36:13 <Vorpal> @hoogle (a -> b) -> [a] -> [b]
00:36:14 <lambdabot> Prelude map :: (a -> b) -> [a] -> [b]
00:36:14 <lambdabot> Data.List map :: (a -> b) -> [a] -> [b]
00:36:14 <lambdabot> Control.Parallel.Strategies parMap :: Strategy b -> (a -> b) -> [a] -> [b]
00:36:33 <Vorpal> I see they return different results, but what is the pattern here
00:36:42 <lambdabot> hoogle <expr>. Haskell API Search for either names, or types.
00:36:43 <lambdabot> hoogle <expr>. Haskell API Search for either names, or types.
00:36:46 <twice11> hoogle+ knows more libraries?
00:36:57 <Vorpal> well, hoogle+ didn't know Prelude
00:36:59 <elliott> looks like @hoogle+ doesn't return stuff @hoogle does
00:37:01 <elliott> maybe it's just "more results"
00:37:05 <lambdabot> Control.Applicative liftA :: Applicative f => (a -> b) -> f a -> f b
00:37:05 <lambdabot> Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b
00:37:05 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
00:37:13 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
00:37:44 <twice11> elliot seems to be right with "more results"
00:37:46 <lambdabot> unexpected end of input: expecting number
00:38:22 <Vorpal> I don't think it is dice as in d20
00:39:09 <twice11> You may not leave off the 1
00:39:18 <lambdabot> unexpected "*": expecting digit, "+" or end
00:39:20 <lambdabot> unexpected "*": expecting digit, "+" or end
00:39:35 <Vorpal> elliott: I don't remember seeing that in GURPS
00:39:43 <Vorpal> but it was ages ago I played that
00:39:45 <twice11> I don't know any RPG multiplying dice...
00:39:54 <Vorpal> and D&D I only played through NWN1, and it hides most of that
00:40:10 <elliott> twice11: See, that's an opportunity for innovation!
00:40:25 -!- Sgeo|web has quit (Quit: Page closed).
00:40:33 <lambdabot> unexpected "-": expecting digit, "+" or end
00:40:45 <Vorpal> wait, only a bonus? No penality?
00:41:21 <lambdabot> I'd rather not; lambdabot looks rather dangerous.
00:41:24 <lambdabot> I don't perform such side effects on command!
00:41:29 * lambdabot submits Vorpal's email address to a dozen spam lists
00:41:45 * lambdabot secretly deletes ChanServ's source code
00:41:54 <twice11> @slap some-user-that-doesnt-exist
00:42:13 <twice11> @slap some-user-that-doesnt-exist
00:42:13 * lambdabot loves some-user-that-doesnt-exist, so no slapping
00:42:28 <Vorpal> guess it was random that it refused to slap itself
00:42:35 * lambdabot karate-chops Madoka-Kaname into two equally sized halves
00:42:45 <Vorpal> I think we are even now
00:42:50 <twice11> I guess there is a rate limit on slapping.
00:42:57 * lambdabot slaps lambdabot with a slab of concrete
00:43:12 <lambdabot> Watch out for that piranha. There goes a narwhale. HERE COMES A BIKINI WHALE!
00:43:18 <lambdabot> Watch out for that piranha. There goes a narwhale. HERE COMES A BIKINI WHALE!
00:43:20 <lambdabot> Girl from Ipanema, she goes to Greenland
00:43:33 <lambdabot> b52s. Anyone noticed the b52s sound a lot like zippy?
00:43:37 <elliott> http://www.google.co.uk/search?gcx=c&sourceid=chrome&ie=UTF-8&q=Watch+out+for+that+piranha.+There+goes+a+narwhale.+HERE+COMES+A+BIKINI+WHALE!
00:43:37 <elliott> http://www.google.co.uk/search?gcx=c&sourceid=chrome&ie=UTF-8&q=Girl+from+Ipanema%2C+she+goes+to+Greenland
00:43:43 <Vorpal> @help yhjulwwiefzojcbxybbruweejw
00:44:34 <Vorpal> Madoka-Kaname: what, please speak English
00:44:54 -!- Sgeo|web has joined.
00:45:18 <Vorpal> Madoka-Kaname: Anyway: I think the story behind that was that some old version of the eval feature of lambdabot used an internal variable called v, which sometimes caused issues. Then it was renamed yhjulwwiefzojcbxybbruweejw.
00:45:23 <Vorpal> I don't think it is in use any more
00:45:46 <lambdabot> palomer. Sound a bit like palomer on a good day.
00:46:03 <Vorpal> Madoka-Kaname: well, v could be used by mistake quite easily
00:46:10 <Vorpal> Madoka-Kaname: the other one? Not so much
00:46:32 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\"
00:46:38 <Vorpal> Madoka-Kaname: I don't think it ever broke anything as such. It just made it return the wrong answer sometimes.
00:46:55 <twice11> Seems to be identical to the long command...
00:47:28 <lambdabot> messages?. Tells you whether you have any messages
00:48:00 <lambdabot> <no location info>: parse error on input `='
00:48:06 <Vorpal> too lazy to fix, night
00:48:43 <twice11> > let 1+1=3;3+1=7 in 1+1+1
00:49:08 <Vorpal> twice11: I wouldn't have expected that
00:49:23 <Vorpal> twice11: how does that even work?
00:49:24 <twice11> Didn't come up with that myself.
00:49:32 <elliott> Vorpal: it rebinds (+) locally
00:49:35 <twice11> You locally define your own addition function.
00:49:59 <elliott> > let f 1 1 = 3; f 3 1 = 7 in f (f 1 1) 1
00:50:12 <Vorpal> elliott: a bit confusing at first :)
00:50:50 <lambdabot> kind <type>. Return the kind of a type
00:51:53 <twice11> OK, undefining works, so...
00:52:03 <elliott> twice11: @undefine is a blunt weapon
00:52:05 <elliott> it clears the whole namespace
00:52:55 <twice11> But it is good to have such a thing...
00:53:11 <lambdabot> It could refer to either `L.+', defined at <local...
01:19:34 -!- ive has quit (Ping timeout: 276 seconds).
01:25:13 -!- copumpkin has quit (Ping timeout: 256 seconds).
01:27:50 -!- copumpkin has joined.
01:59:17 <lambdabot> Data.Time.Calendar.Julian isJulianLeapYear :: Integer -> Bool
01:59:17 <lambdabot> Data.Time.Calendar.OrdinalDate isLeapYear :: Integer -> Bool
01:59:17 <lambdabot> Data.Time.Calendar isLeapYear :: Integer -> Bool
01:59:22 <lambdabot> Prelude replicate :: Int -> a -> [a]
01:59:22 <lambdabot> Data.List replicate :: Int -> a -> [a]
02:08:27 -!- pikhq_ has quit (Ping timeout: 248 seconds).
02:08:33 -!- pikhq has joined.
02:20:13 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:46:14 -!- copumpkin has joined.
02:46:17 -!- copumpkin has quit (Changing host).
02:46:17 -!- copumpkin has joined.
02:52:09 <elliott> pikhq: I'm not sure how to do @'s DHT.
02:53:34 <elliott> pikhq: The problem with something like Chord is that who gets to host what data is essentially arbitrary, which is kind of lame
02:53:58 <pikhq> My understanding of DHT is just shy of "MAGIC"
02:54:12 -!- Jafet has joined.
03:03:03 <Gregor> OK, what's the best way for a person who hates JACK and Pulse to transfer the audio output of an ALSA application over a network >_>
03:05:07 <elliott> Apart from being impossible to understand
03:05:17 <Gregor> Mainly the impossible-to-understand thing.
03:05:31 <Gregor> Every time I've used it it's taken about three seconds to go from "ahh" to "... wtf?"
03:05:46 <elliott> Gregor: http://alsa.opensrc.org/Network
03:06:08 <Gregor> elliott: That solution doesn't work with my audio card, it can't capture from "mixer" (all output)
03:06:21 <elliott> You could just install Pulse for like three seconds :P
03:06:57 <Jafet> I stopped hating jack after I stopped trying to get it to work
03:08:19 <Gregor> What's the command to make an ALSA program use JACK?
03:11:25 -!- ive has joined.
03:13:10 <pikhq> jackoff (sadly not)
03:29:21 -!- Patashu has quit (Ping timeout: 240 seconds).
04:17:14 -!- zzo38 has joined.
04:21:37 -!- Sgeo|web has quit (Ping timeout: 265 seconds).
04:23:22 -!- CakeProphet has joined.
04:23:54 <CakeProphet> "I need to create a list of all the elements in a binary search tree in reverse order"
04:24:15 <CakeProphet> this has to be a trick question because it doesn't specify that it's complete.
04:27:34 <zzo38> Early today I wrote some things on paper, I think I could work these, new transformers in Haskell, which are called ProductT and SumT.
04:30:31 <zzo38> data ProductT a b c = ProductT { leftPT :: a c, rightPT :: b c }; Now I think Monoid x => ProductT (Constant x) is a monad transformer.
04:31:35 <zzo38> Do you think this is correct? Or did I make a mistake?
04:33:16 <Gregor> CakeProphet: If it's a SEARCH tree then it's ordered.
04:35:34 <CakeProphet> Gregor: but then what is "reverse order", uh... descending?
04:36:26 <CakeProphet> I guess an in-order traversal, outputting elements to a stack.
04:38:42 <Gregor> Presumably just the opposite order of whatever the comparison function ordered it as in the first place :P
04:38:47 <Gregor> And you could just do a RTL traversal.
04:39:54 <CakeProphet> Gregor: I don't think she covered RTL but that would work equally well as pushing to a stack (or prepending to a list)
04:40:19 <zzo38> Now I looked, I think the "ProductT" I have is really like the Data.Functor.Product.Product but there is already a Data.Monoid.Product and since I knew about that at first, I gave mine a different name.
04:41:11 <CakeProphet> Gregor: this class is in the nomenclature of C++, thus "list" means linked list.
04:45:23 <pikhq> Gregor: Alternately, you could make it a binary search tree linked list.
04:45:33 <pikhq> Because more confusing data structures are wonderful.
04:48:17 <zzo38> For a ring of sets (actually predicates in this case, meaning what is element of a set), is this correct? instance MonoidMinus (Predicate t) where { mpinverse = id; };
04:49:12 * shachaf switches to #esoteric, sees <zzo38> ... MonoidMinus ..., cautionsly switches in the opposite direction.
04:49:45 <shachaf> What's a MonoidMinus? Ah, just a monoid with inverses?
04:49:59 <monqy> did someone say group
04:50:15 <shachaf> (If so, that's usually called a "Group".)
04:50:51 <zzo38> shachaf: Yes. Actually, I do have a "Group" class which does that; "MonoidMinus" is for the inverse of the "MonoidPlus", where "MonoidPlus" is what "Monoid" instance is distributive over.
04:51:25 <zzo38> I also have "Semiring" and "Ring" to indicate they follow additional properties.
04:51:54 <zzo38> Now I told you, isn't it?
04:52:24 <shachaf> I'm not sure I understood.
04:52:45 <monqy> "MonoidPlus" is what "Monoid" instance is distributive over.
04:52:51 <zzo38> For example, the MonoidPlus for Product acts like the Monoid for Sum.
04:53:08 <shachaf> monqy: Oh! Why didn't zzo38 say so.
04:53:19 <shachaf> zzo38: What are the MonoidPlus laws?
04:54:20 <zzo38> shachaf: They are the monoid laws and the distributive laws. Semirings have some additional laws; if they follow those laws, make it also instance of Semiring (which has no methods of its own).
04:55:34 <zzo38> Specifically: mpappend mpempty x = x; mpappend x mpempty = x; mpappend x (mpappend y z) = mpappend (mpappend x y) z; mpconcat = foldr mpappend mpempty; mappend x (mpappend y z) = mpappend (mappend x y) (mappend x z); mappend (mpappend y z) x = mpappend (mappend y x) (mappend z x);
04:55:59 <zzo38> Semirings have these additional laws: mappend mpempty x = mpempty; mappend x mpempty = mpempty; mpappend x y = mpappend y x;
05:10:17 -!- Sgeo|web has joined.
05:23:33 <augur> choose a business card design!
05:23:36 <augur> http://us.moo.com/design-templates/business-cards/pack/black-white.html
05:23:36 <augur> http://us.moo.com/design-templates/business-cards/pack/urban-abstraction.html
05:23:37 <augur> http://us.moo.com/design-templates/business-cards/pack/lets-talk.html
05:23:37 <augur> http://us.moo.com/design-templates/business-cards/pack/chris-keegan-business-cards.html
05:23:39 <augur> http://us.moo.com/design-templates/business-cards/pack/perfect-paisley.html
05:23:41 <augur> http://us.moo.com/design-templates/business-cards/pack/luminous-nature.html
05:25:16 <Gregor> augur: Observation: None of the "perfect paisley" business cards are paisley.
05:25:32 <augur> people dont know what paisley is
05:31:43 -!- Sgeo|web has quit (Ping timeout: 265 seconds).
05:36:29 <zzo38> I have never used business cards designs. I just used TeX to lay out text and logos on the card. All that we had was a laser printer anyways (although here and now, I have a inkjet printer)
05:38:30 <CakeProphet> augur: chris keegan, black and white, or urban abstraction
06:02:16 -!- copumpkin has changed nick to OracleOfHalting.
06:08:57 -!- MDude has changed nick to MSleep.
06:09:48 <zzo38> How do you change the Godel sentences ("This is unprovable") into a computer program that halts if and only if the statement is true, such that waiting for the program to halt, and that if it does halt that is considered a valid proof?
06:10:45 <Jafet> Search for a proof and disproof at the same time
06:11:13 <Jafet> I didn't know what your question was so I answered the question that I liked
06:12:15 <zzo38> That is what the Tortoise did; and found both at the same time. (Of course it is the dialogue made up by Hofstadter, though. I doubt it can happen.)
06:15:18 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
06:33:46 <elliott> Hey monqy, can you promise to make a brainfuck derivative if I'm not offline in the next five minutes?
06:33:57 <elliott> And delegate the brickbraining to me.
06:34:05 <elliott> So that it happens to me instead of you.
06:35:50 <elliott> OK, CakeProphet: You do it instead.
06:38:53 -!- elliott has quit (Quit: Leaving).
06:41:12 -!- zzo38 has quit (Quit: I will sleep.).
06:53:19 -!- ive has quit (Ping timeout: 256 seconds).
07:10:28 -!- OracleOfHalting has changed nick to copumpkin.
07:13:56 -!- GreaseMonkey has quit (Quit: The Other Game).
07:18:54 -!- sebbu2 has joined.
07:18:54 -!- sebbu2 has quit (Changing host).
07:18:54 -!- sebbu2 has joined.
07:19:16 -!- ive has joined.
07:20:44 -!- sebbu has quit (Ping timeout: 258 seconds).
07:31:17 -!- ive has quit (Quit: leaving).
08:04:50 -!- augur has quit (Ping timeout: 240 seconds).
08:08:58 -!- augur has joined.
08:14:17 -!- Jafet has quit (Quit: Leaving.).
08:24:26 -!- Zuu has quit (Read error: Connection reset by peer).
08:28:56 -!- Zuu has joined.
08:31:17 -!- derrik has joined.
08:59:31 -!- monqy has quit (Quit: hello).
09:19:04 -!- TeruFSX_ has quit (Read error: Connection reset by peer).
09:49:46 -!- Jafet has joined.
09:50:02 -!- hagb4rd has quit (Ping timeout: 240 seconds).
10:31:39 -!- oerjan has joined.
12:10:17 -!- derrik has quit (Quit: left).
13:06:32 -!- pikhq has quit (Ping timeout: 245 seconds).
13:06:42 -!- pikhq has joined.
13:08:35 -!- Jafet has quit (Quit: Leaving.).
13:50:24 -!- oerjan has quit (Quit: leaving).
14:16:48 -!- jack has joined.
14:17:10 -!- jack has left.
14:48:11 -!- fizzie has quit (Ping timeout: 276 seconds).
14:49:09 -!- sllide has joined.
14:52:15 -!- fizzie has joined.
14:54:43 -!- boily has joined.
14:57:44 -!- aloril has quit (Ping timeout: 260 seconds).
15:09:43 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:14:35 -!- aloril has joined.
15:18:12 -!- Phantom_Hoover has joined.
15:23:14 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:23:37 -!- Phantom_Hoover has joined.
15:37:27 -!- boily has quit (Ping timeout: 258 seconds).
15:44:42 -!- copumpkin has joined.
15:52:53 -!- boily has joined.
15:59:08 -!- tswebb has joined.
15:59:18 <tswebb> Hey guys, mind if I think here out loud? Great.
16:00:18 -!- augur has quit (Remote host closed the connection).
16:00:29 <tswebb> Suppose you've got an exponentiation b^a, where b and a are complex numbers. You can separate b into a positive part and a unitary part, and a into a real part and an imaginary part. Taking a positive number to any complex power is easy, so we only have to worry about the unitary part of the base.
16:01:32 <tswebb> Taking the unitary part to a real power is easy *if* the unitary part is 1 or the power is an integer. Otherwise, lasciate ogne speranza. So the only question is what happens when you take a unitary thing to an imaginary power.
16:04:56 <tswebb> But wait, every unitary number is of the form e^(i t). So the unitary thingy is simply of the form e^(i t a), so it's all good... well, no, t is actually an angle, so a needs to be something you can multiply angles by. An integer, always.
16:05:32 <tswebb> So b^a just plain doesn't make entirely much sense unless b is positive or a is an integer.
16:05:56 <tswebb> Phantom_Hoover: what's half of the angle whose sine is 0 and whose cosine is 1?
16:06:09 <tswebb> You'll find that there are entirely too many correct answers.
16:06:29 <tswebb> Worse, what's phi times that angle?
16:06:57 <tswebb> Two is too many, and I refuse to throw out just one of them!
16:07:26 <Phantom_Hoover> I'll find that general exponentiation obviously isn't a map from C → C.
16:07:59 <tswebb> Isn't that what I said?
16:14:58 <tswebb> It's more like a map ((R+, C) u (C / {0}, Z) u (C, N_0)) -> C.
16:27:31 <tswebb> What do you mean by P(C)?
16:27:38 <tswebb> Oh. The power set of C.
16:31:06 -!- augur has joined.
16:31:53 -!- Zuu has quit (Ping timeout: 244 seconds).
16:32:03 -!- MSleep has changed nick to MDude.
16:32:24 -!- elliott has joined.
16:34:08 <elliott> 15:43:27: <Phantom_Hoover> WTF, Peter Serafinowicz was the voice of Darth Maul?
16:34:11 <elliott> Phantom_Hoover: I KNOW RIGHT?
16:34:44 <elliott> 15:43:34: <Phantom_Hoover> His role in space is now 50 times funnier.
16:35:39 <elliott> Phantom_Hoover: BTW who says P(S) for powerset, I am hereby not friends with anyone who doesn't either use fancy LaTeX for it or 2^S.
16:35:46 * elliott set theory notation police
16:40:19 <tswebb> Cool people write C -> Prop.
17:10:29 -!- derrik has joined.
17:21:46 -!- monqy has joined.
17:25:55 -!- tswebb has quit (Quit: Page closed).
17:26:03 <Phantom_Hoover> We need to do something about these malfunctioning emote bots.
17:26:25 <Phantom_Hoover> Motion that derrik be kicked and he and tiffany banned, effective immediately.
17:29:25 <elliott> Phantom_Hoover: You don't understand, he's a professional teacher.
17:29:32 <monqy> at least o~o is exciting
17:34:10 <elliott> Phantom_Hoover: Speechlessness. The hallmark of a thick adult!
17:42:55 -!- ais523 has joined.
17:53:11 <quintopia> hi <insert full channel ping here>
17:53:48 <elliott> i would never ping ais523 monqy derrik elliott augur boily copumpkin Phantom_Hoover aloril fizzie sllide pikhq sebbu2 CakeProphet mtve variable FireFly chickenzilla Madoka-Kaname Vorpal yorick atehwa kmc mycroftiv Nisstyre olsner MDude shachaf Deewiant EgoBot quintopia Slereah_ Zwaarddijk BeholdMyGlory myndzi yiyus SimonRC rodgort ineiros_ tswett clog jix Gregor glogbot Zetro bd_ lambdabot coppro lifth
17:53:49 <elliott> rasiir HackEgo twice11 all at once
17:53:56 <elliott> oh poor lifthrasiir missed out on that :(
17:54:01 <elliott> I'm going to get kicked now
17:54:20 <monqy> i like how you put your own name in there
17:54:30 <shachaf> Even ddarius concurred that u mad.
17:54:33 <Vorpal> elliott: well you didn't lie, but only be cause it was split onto multiple lines :P
17:54:41 <Vorpal> and in the middle of a name
17:54:41 <elliott> Nothing quite like flood of hatred that comes after a channel ping :')
17:54:55 <rodgort> nothing like a good old stabbing in the face
17:55:26 <Gregor> NYAN NYAN NYANNYAN NYAN NYANYANYAN NYAN NYAN, NYAN NYAN NYANNYAN NYAN NYANYANYANYANYANYANYANYAN
17:55:34 * sebbu2 slaps elliott around a bit with a very large trout
17:55:38 -!- sebbu2 has changed nick to sebbu.
17:55:43 * shachaf decides not to feed the troll.
17:55:45 <elliott> sebbu: Oh my god, it's 2001!
17:55:46 <monqy> Gregor..................
17:55:53 <monqy> sebbu..................
17:56:06 <monqy> for not being them
17:56:15 <elliott> I'm also not Gregor or sebbu.
17:56:34 <elliott> monqy is going to ping everyone but Gregor and sebbu in thanks.
17:56:37 <monqy> thanks ineiros_ thanks derrik thanks augur thanks SimonRC thanks Zetro
17:56:48 <monqy> now i can't ping everyone
17:56:55 <elliott> you can, it'll just be unfunny and meaningless
17:56:58 <elliott> which is the best way to do it
17:57:06 <sebbu> a shun on all massive highlighters would be good :)
17:57:30 <elliott> sebbu: This channel NEEDS ME.
17:57:39 -!- Gregor has set topic: Official NYAN support channel for Web o' Flies | Also official channel of VelNYANta | VelNYANta: Why NYAN, when you can VelNYANta! | NYAN http://codu.org/logs/_esoteric/#NYAN.
17:57:53 -!- elliott has set topic: no | http://codu.org/logs/_esoteric/.
17:58:03 -!- Gregor has set topic: nyano | http://codu.org/logs/_esoteric/.
17:58:06 <ais523> elliott: quick reactions :)
17:58:08 -!- monqy has set topic: yes | http://codu.org/logs/_esoteric/.
17:58:09 -!- elliott has set topic: http://codu.org/logs/_esoteric/.
17:58:39 -!- Gregor has set topic: This channel can never truly escape THE CAT | http://codu.org/logs/_esoteric/.
17:58:40 <ais523> elliott: to Gregor's topic change
17:58:49 -!- monqy has set topic: This channel can never truly escape bad topics | http://codu.org/logs/_esoteric/.
17:58:52 <elliott> ais523: you get used to it after a few days of asiekierka
17:59:01 -!- ais523 has set topic: http://codu.org/logs/_esoteric.
17:59:04 -!- ChanServ has set channel mode: +t.
17:59:08 <elliott> ais523: you missed the slash
17:59:20 <elliott> ais523: i'm not telling you!
17:59:35 <ais523> the link works anyway, so
17:59:44 <ais523> and it's just temporary until people calm down a bit with the topic screwing
17:59:44 <elliott> ais523: it redirects, that's putting load on Gregor's servers
17:59:53 <elliott> Gregor: ais523 is abusing his op powers to DDoS you :'(
18:00:05 -!- ChanServ has set topic: http://codu.org/logs/_esoteric/.
18:00:18 <elliott> hmm, all Gregor has to do is move the logs and you're obligated to change the topic
18:00:58 <ais523> elliott: don't say that, he'll move them somewhere obnoxious
18:01:00 <Gregor> Channel logs will now be moved to http://codu.org/nyannyannyannyannyannyannyannyannyannyannyanlogs/_esoteric/
18:01:20 <elliott> Gregor: If you don't do that I'll be really disappointed.
18:01:24 <ais523> elliott: but don't you not want an obnoxious topic
18:01:25 <monqy> somehow i figured the new logs would have "nyan" in them, but i did not expect that much
18:01:28 <elliott> I think you can keep the same programs working just with ln -s
18:01:33 <ais523> note that I could legally retaliate by kicking glogbot
18:01:36 -!- CakeProphet has quit (Ping timeout: 258 seconds).
18:01:37 <ais523> and that would be bad for everyone
18:01:38 <elliott> ais523: Yeah, but this is a bargaining chip to get -t :P
18:01:50 <Gregor> elliott: My laziness is greater than my nyanniness.
18:01:53 <ais523> you wouldn't want me to kick glogbot, would you?
18:02:10 <ais523> the +t is only temporary, just like you do a temporary +m to people widely spamming msgs in the channel
18:02:13 <elliott> ais523: You'd have to link to the clog logs instead, including the old zip of 'em
18:02:18 -!- ChanServ has set channel mode: +o ais523.
18:02:23 -!- ais523 has set channel mode: -t.
18:02:25 -!- ais523 has set channel mode: -o ais523.
18:02:32 <elliott> Darn, now the fun is over. :'(
18:03:20 -!- Gregor has set topic: #esoteric is Not Your Average Network chat channel! | http://codu.org/logs/_esoteric/.
18:03:48 -!- derrik has quit (Quit: back soon).
18:04:13 <Gregor> Goodbye derrik, we hardly knew ye (as ye never talked)
18:04:16 <ais523> Gregor: OK, I'll agree with that compromise
18:04:55 <elliott> Gregor: just hope we don't get to know him any more
18:05:42 -!- Darth_Cliche has joined.
18:09:30 -!- derrik has joined.
18:11:06 <ais523> I don't think I've talked to derrik ever, but he/she was here earlier
18:11:21 <elliott> ais523: oh, you missed out on that day?
18:11:26 <elliott> you're one of the lucky ones :)
18:16:04 -!- ais523_ has joined.
18:16:48 -!- ais523 has quit (Disconnected by services).
18:16:50 -!- ais523_ has changed nick to ais523.
18:17:08 <ais523> first time the computer's suddenly cut out during updates
18:17:19 <ais523> let me see if it's in a sane state after that; it seemed to boot up OK
18:17:35 <elliott> ais523: if you used Kitten, you'd have atomic upgrades... :)
18:17:54 <ais523> <synaptic> E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
18:18:05 <ais523> hmm, I wonder why it can't do that automatically?
18:18:24 <elliott> I think it can end up doing debconf stuff
18:18:38 <ais523> it's a GUI package manager, it should be able to handle it itself
18:18:40 <elliott> anyway, none of that with kitten, either :-P
18:19:36 <ais523> heh, seems it had almost finished
18:19:37 -!- Phantom_Hoover has quit (Ping timeout: 258 seconds).
18:19:46 <ais523> the configure took about half a second, then it was fully up-to-date
18:20:45 <elliott> ais523: regular reminder that this problem doesn't even exist with kitten!!! kitten: the best.
18:21:21 <ais523> elliott: in Kitten, you'd still need to GC the partial update and do the update properly
18:22:00 <elliott> ais523: you're just stringing random words together and hoping they come out correct, right? :P
18:22:25 <ais523> I'm trying to figure out what would happen if the power was cut while Kitten was in the middle of writing a file
18:22:29 <ais523> during a package update
18:22:53 <ais523> the file it was writing wouldn't be used, presumably, because it wouldn't be recorded as being in the unionfslikefs as something to mount
18:23:03 <ais523> but it'd still exist, and you wouldn't want it to hang around forever
18:23:15 <elliott> ais523: I'll explain, to stop you making up nonsense :P
18:23:15 <ais523> and you also presumably still want it, so you'd have to redo the update
18:24:05 -!- zzo38 has joined.
18:24:17 <elliott> ais523: You'd have to define "package update". The upgrade process in Kitten looks like this: Figure out which packages have new versions. Install them -- likely by downloading a binary tarball and extracting it -- into the store. That's guaranteed not to "overwrite" anything because the store is immutable, hash-based, etc. etc. etc.; the old versions of the packages are still there. Once all that is d
18:24:17 <elliott> one, then /atomically/ switch over the user environment to use the new versions of all the upgraded packages.
18:24:29 <elliott> The old versions then become garbage (assuming nothing else -- e.g. another user -- is referencing them), and can be GC'd.
18:24:49 <ais523> elliott: that's the operation I was describing as an update
18:24:58 <elliott> ais523: Yes, but it's composed of multiple operations.
18:25:08 <elliott> The tarballs are extracted to a temporary directory and then moved into the store, so that's atomic too.
18:25:17 <elliott> Basically, there is no way for a crash during a Kitten upgrade to produce an inconsistent state at all.
18:25:23 <ais523> it wouldn't produce an inconsistent state
18:25:32 <elliott> If it failed half-way through installing the packages, you'd just re-run it, and it'd do the rest.
18:25:38 <ais523> I was thinking about if the temporary directory was half-written
18:25:42 <elliott> It might do one of them again, if it failed while unpacking it.
18:25:44 <ais523> but I suppose it regularly gets cleaned away anyway
18:26:01 <elliott> ais523: Well, it's per-package.
18:26:23 <elliott> So it's like a few hundred megs waste at most, and it'll probably get cleaned up as soon as the package manager notices it has some junk temporary files lying around.
18:26:38 <elliott> (Won't unpack to /tmp: rename(2) is not atomic across filesystems!)
18:26:46 <elliott> (And also you might not have enough RAM to store the package, anyway.)
18:27:19 <zzo38> That way of garbage collecting the old versions would work in case some user or program requires the old version for some reason. Or in case you want to tell it to keep the old one temporarily in case the new one is broken and you want to revert some programs to the old one!
18:27:22 <ais523> rename(2) works across filesystems at all?
18:27:36 <ais523> also, aren't tmpfses capable of swapping to disk if required?
18:27:36 <elliott> ais523: well, probably not, but mv does
18:27:55 <elliott> zzo38: Yep! (Packages that depend on older versions will keep referencing them and work fine even without doing anything special.)
18:27:57 <ais523> if they weren't, there'd be no difference between a tmpfs and shmfs
18:28:10 <elliott> (Of course you have to manually select an old version to run programs that depend on an older version that aren't part of the package manager.)
18:28:11 <ais523> elliott: how would the GC determine which packages were being referenced?
18:28:27 <ais523> how does it do the marking?
18:28:39 <ais523> it seems nontrivial to tell whether a package is in use or not
18:28:46 <elliott> ais523: Well, the user profiles (sets of packages users have installed) are the roots.
18:28:55 <elliott> ais523: Then you just do a regular conservative scan from there.
18:29:00 <ais523> oh, it's at the package level?
18:29:09 <elliott> ais523: Any package that references another will contain its store path.
18:29:12 <ais523> what happens if a user uninstalls a package while using it?
18:29:18 <ais523> e.g. running an executable from it?
18:29:19 <elliott> ais523: (this breaks if something stores its library paths in UTF-16, or whatever)
18:29:31 -!- sebbu2 has joined.
18:29:31 -!- sebbu2 has quit (Changing host).
18:29:31 -!- sebbu2 has joined.
18:29:34 <elliott> (that's like memfrobbing a pointer when using boehm gc)
18:29:45 <elliott> err, I forget whether memfrob is reversible
18:29:50 <elliott> ais523: define uninstall...
18:29:54 <elliott> ais523: presumably you mean "removing from the environment"
18:30:04 <ais523> elliott: removes the package from the list of packages that they state they want
18:30:22 <elliott> ais523: Well, all the package's references to itself will use absolute store path locations.
18:30:32 <elliott> And removing a package from the environment doesn't remove it from the store, only GCing does that.
18:30:45 <ais523> I was fearing the answer was "don't do that"
18:30:51 -!- sebbu has quit (Ping timeout: 240 seconds).
18:30:56 <elliott> ais523: it would be easy enough for the package manager to figure out whether you're using it
18:30:57 <ais523> the package isn't in any user's lists, so it's risking being GCed
18:31:05 <elliott> and refuse to let you remove it
18:31:06 <ais523> this is more important for old versions, though
18:31:11 <elliott> but I'm pretty sure it's obvious
18:31:17 <elliott> ais523: well, yes, GC doesn't just run willy-nilly for a reason
18:31:21 <elliott> ais523: you GC when you're low on disk
18:31:31 <elliott> ais523: you can add packages manually to the set of gc roots, though
18:31:35 <ais523> "uninstalling" a package while using it is a bit weird; but upgrading it while using it is quite common
18:31:37 <elliott> if you want to protect it while not referencing it from any environments
18:32:00 <elliott> ais523: I thought you meant doing it while GCing
18:32:08 <elliott> certainly, things won't break if you upgrade without rebooting
18:32:20 <ais523> elliott: I mean, if the GC runs after doing that
18:32:25 <elliott> ais523: the gc doesn't just "run"
18:32:28 <elliott> the system administrator has to run it
18:32:34 <ais523> well, when's a sensible time to run it?
18:32:38 <ais523> the only time I can think of is during boot
18:32:40 <elliott> ais523: when you're running out of disk for the store
18:32:51 <elliott> or just want to reclaim some free space
18:32:53 <ais523> elliott: but people might have just upgraded a package they're using when that happens
18:33:02 <elliott> ais523: you'd reboot at the same time to get kernel upgrades
18:33:13 <elliott> (say ksplice and I'll ragequit)
18:33:24 <ais523> you hate Oracle that much? :P
18:33:24 <elliott> it's a periodic maintanence task, not anything that needs to be run with regularity
18:33:48 <ais523> it might make most sense to run it on every boot
18:33:58 <elliott> ais523: actually, no, there would be no risk
18:34:08 <elliott> ais523: because you keep old user environments
18:34:15 <elliott> those have to be deleted manually to stop them referencing old packages
18:34:29 <ais523> I don't like the repeated "manual" here
18:34:41 <ais523> it'd make most sense to delete them when the user had no logins
18:34:47 <elliott> ais523: so basically, if you upgraded ten times without rebooting, then the sysadmin said "delete every user environment older than the last 10 and gc"
18:34:55 <ais523> just like it makes sense to GC packages on boot
18:35:02 <elliott> ais523: no, that doesn't make sense at all
18:35:05 <elliott> because you can rollback on boot
18:35:08 <ais523> I don't see why the sysadmin needs to make potentially incorrect decisions
18:35:13 <elliott> that's one of the major advantages of a purely functional package manager
18:35:20 <elliott> you can select an old profile from the GRUB menu to roll back to it
18:35:23 <elliott> in case you break something
18:35:30 <ais523> elliott: right; I think that would count as a reference for the GC
18:35:37 <elliott> the sysadmin doesn't make potentially incorrect decisions, you just don't understand the model :)
18:35:43 <ais523> GC things that have fallen off the end of the rollback menu on boot
18:35:54 <elliott> ais523: they don't fall off
18:35:59 <elliott> it's a matter of system policy when you clean them up
18:36:09 -!- Phantom_Hoover has joined.
18:36:11 <ais523> well, falling off is a sensible system policy, right?
18:36:14 <elliott> it makes sense to delete all but the last 10 for each user before GCing
18:36:18 -!- Phantom_Hoover has quit (Changing host).
18:36:18 -!- Phantom_Hoover has joined.
18:36:34 <ais523> what I'm saying is, it's OK to have the rules customizable, even to entirely manual
18:36:37 <ais523> but entirely manual is not a sane default
18:36:45 <elliott> ais523: let me tell you about cron!
18:36:52 <elliott> it is not the package manager's job to run itself periodically
18:36:59 <elliott> that is a matter of system policy and is why we have generic scheduling tools
18:37:04 <ais523> I'm talking about the system as a whole, not the package manager itself
18:37:11 <elliott> for desktop users, it /does/ make sense to have it be manual
18:37:16 <ais523> putting it in the crontab would be a sensible default, for instance
18:37:21 <elliott> because there is no reason to delete things until you actually need more space
18:37:30 <elliott> which is not something a computer can determine; you need more space when you want more space
18:37:57 <ais523> elliott: you need more space when you want more space, indeed; and if you want more space, you don't want to manually have to run a bunch of "free up space" things
18:38:07 <ais523> you want them to already have happened by the time you want more space
18:38:18 <ais523> so that you don't have to think "oh, I want to create a file, let me run the spacecleaner first"
18:38:23 <ais523> you just think "I want to create a file"
18:38:34 <elliott> ais523: this is why people don't consider 4 gigabytes a large disk
18:38:40 <ais523> the extreme version of your opinion would be a system that always used your entire disk, all the time
18:38:51 <ais523> and whenever you wanted to create a file, you requested it to purge a bit of space to create the file in
18:39:03 <ais523> why not hook the spacecleaning things into the open/close/write syscalls, in that case?
18:39:14 <ais523> as long as it's automated, it's actually a reasonable thing to do
18:39:15 <elliott> if I hadn't given up on this by the last message, I just did
18:40:04 <elliott> ais523: the system does not delete the user's data without asking or being told to. simple as that
18:40:16 <ais523> oh well, when you have an opinion as insane as this one, you generally realise why it's wrong after a few months of actually using it
18:40:24 <ais523> so I suppose there's no real point in trying to convince you now
18:40:51 <elliott> ais523: the NixOS guys don't seem to have any problem with it after 7 years of production use
18:41:11 -!- zzo38 has quit (Remote host closed the connection).
18:41:21 <elliott> the problem is that you want a system that nobody else wants
18:41:27 <ais523> I doubt their GC is entirely manual
18:41:43 <Vorpal> elliott: what is the thing ais523 is suggesting here?
18:41:55 <elliott> Vorpal: a bad idea; you can read the logs if you want more detail
18:42:18 <elliott> "You should periodically run the Nix garbage collector to get rid of unused packages, since uninstalls or upgrades don't actually delete them:
18:42:21 <elliott> "Of course, since disk space is not infinite, unused packages should be removed at some point. You can do this by running the Nix garbage collector. It will remove from the Nix store any package not used (directly or indirectly) by any generation of any profile.
18:42:21 <elliott> Note however that as long as old generations reference a package, it will not be deleted. After all, we wouldn’t be able to do a rollback otherwise. So in order for garbage collection to be effective, you should also delete (some) old generations. Of course, this should only be done if you are certain that you will not need to roll back."
18:42:58 <ais523> Vorpal: that if a system requires a GC, then the GC should actually run when needed, rather than making the user have to remember it exists
18:43:14 <elliott> Vorpal: or you could get the misleading version straight from him :)
18:43:18 <Vorpal> ais523: from a quick glance at the scrollback, it seems you want package garbage collection to be automatic. Even "normal" distros doesn't automatically remove downloaded files. You need something like apt-get clean or pacman -Sc for that
18:43:23 <elliott> ais523: hope i've cleared up your doubts
18:43:24 <Vorpal> why should it be any different here
18:43:32 <Vorpal> and if you want it, just put it in the crontab
18:43:48 <ais523> Vorpal: they put them in /var/cache, whose entire purpose for existence is that it can be automatically cleaned at any time
18:43:59 <elliott> Vorpal: ais523 wants even worse than that, he wants /automatic scheduled deletion/ of old package configurations in the crontab by default
18:44:05 <Vorpal> ais523: I have not seen that happen though
18:44:15 <Vorpal> ais523: show me where that is actually done automatically
18:44:18 <elliott> ais523: /var/cache is meant to be cleaned manually
18:44:24 <elliott> that's why it's not called /tmp
18:44:49 <ais523> elliott: err? /tmp is cleaned on boot, that doesn't make sense with the intended purpose /var/cache
18:44:59 <ais523> which should be cleaned only when the disk is getting full
18:45:10 <Vorpal> it is of course possible ubuntu cleans it automatically but I don't think so
18:45:14 <ais523> I'd be surprised if distros didn't clean the older half of it when the disk was getting near full
18:45:31 <Vorpal> ais523: pretty sure no distro does that currently
18:45:53 <Vorpal> and automatic removing of old configs is insane
18:45:58 <ais523> Vorpal: I know that Windows does, when the disk space becomes full
18:46:07 <Vorpal> that is not a linux distro
18:46:12 <elliott> shocking revelation: packages don't take up most of the disk, user files like audio/video do
18:46:16 <Vorpal> you said distro above, define your meaning of distro
18:46:20 <ais523> not completely automatically, but it lists a bunch of things that would make sense to delete, in order of how likely they are to be safe to delete
18:46:29 <Vorpal> ais523: I would like to point out that ubuntu doesn't delete old kernels after you installed a newer one
18:46:32 <Vorpal> you have to do that by hand
18:47:29 <Vorpal> ais523: how is this any different?
18:47:34 <ais523> Vorpal: right, and that confused me, I don't see why it'd need more than 3 or 4 or so
18:47:57 <ais523> I see no reason why it shouldn't be configurable
18:48:03 <ais523> but infinity isn't a sane default for that
18:48:17 <ais523> whereas, say, for bash_history, the default is much too low, and infinity would be a saner default there
18:48:25 <ais523> as looking arbitrarily far back in your bash history is actually useful
18:48:41 <ais523> whereas old kernels are likely to be around elsewhere online, so can always be redownloaded
18:49:32 <Vorpal> ais523: I actually have multiple kernels on my laptop, I use a newer one that I have graphical issues with (because X isn't new enough) but where they improved various things for battery time a lot when I need that. Then I use the standard distro kernel when I know I will be on AC for quite a while
18:49:50 <Vorpal> anyway you could just write your own cron job for these misfeatures
18:50:02 <ais523> Vorpal: in that case, wouldn't you just mark both kernels as desired versions to keep around by hand?
18:50:13 -!- derdon has joined.
18:50:21 <Vorpal> ais523: sure, but you just added complexity to the solution
18:50:21 <ais523> otherwise, say, when you went and transferred your list of packages onto a different physical computer, you wouldn't have the old versions you were using
18:50:48 <ais523> no I didn't; that complexity exists anyway both in elliott's distro/Nix, and (if you want to be sane) in your case too
18:50:58 <ais523> you have a list of installed packages, right?
18:50:59 <Vorpal> ais523: the newer kernel version I use was basically manually backported and have non-standard options. I would have to compile a new kernel for another system anyway
18:51:12 <ais523> why would you want the list to be different from the set of packages that are actually installed?
18:51:15 <Vorpal> <ais523> whereas, say, for bash_history, the default is much too low, and infinity would be a saner default there <-- not really, that would grow forever much quicker than package history
18:51:34 <Vorpal> <ais523> why would you want the list to be different from the set of packages that are actually installed? <-- ... where did I claim that?
18:54:26 -!- ais523_ has joined.
18:55:00 <ais523_> Vorpal: are you seriously saying that your bash history grows faster than the binaries of all the kernels you've ever used?
18:55:08 <ais523_> incidentally, my computer just locked up and I had to hard reboot
18:55:13 <ais523_> I'm seeing if there's anything in the logs
18:55:36 <Vorpal> elliott: yes. I'm watching a video now.
18:55:38 <ais523_> (magic sysrq wasn't working, nor was control-alt-F1, and the mouse pointer wouldn't move; strangely, the sound card just kept looping the last second or so of what it had been playing)
18:56:03 -!- ais523 has quit (Ping timeout: 240 seconds).
18:56:22 -!- ais523_ has changed nick to ais523.
18:57:25 <ais523> nothing relevant in logs
18:57:47 <ais523> they were just cut off, much as I'd expect if I hard-rebooted while the system was running normally
18:58:26 <ais523> the only unusual thing I was doing was "$ du --si --summarize /usr /home"
18:58:34 <ais523> because I was curious as to their relative sizes on my system
18:59:42 <ais523> it's, umm, taking a while, which isn't surprising
18:59:52 <ais523> because the total size of /usr and /home isn't recorded anywhere, so it has to be worked out
19:00:26 <ais523> I wonder if it would be reasonable to design an fs to record the total size of directories? it'd be O(depth of directory tree) to update, I'm not sure if that'd be too expensive
19:02:09 -!- oerjan has joined.
19:06:30 <oerjan> <tswebb> So b^a just plain doesn't make entirely much sense unless b is positive or a is an integer.
19:06:49 <oerjan> tswett: multivalued functions, man.
19:07:21 <oerjan> even b=1 is interesting to consider that way.
19:08:04 <oerjan> 1^(1/n) naturally has all the values cos (2*k*pi/n) + i sin (2*k*pi/n)
19:08:48 <oerjan> (they're the solutions to z^n = 1, for one thing)
19:09:42 <oerjan> otherwise, you need to choose a branch of the function.
19:10:00 <Vorpal> ais523: actually I can check size of /usr and /home really quick
19:10:18 <ais523> elliott: I have 11G in /usr, 53G in /home
19:10:32 <ais523> and I wouldn't be surprised if most of the packages on the system have been upgraded at least 5 times
19:10:35 <Vorpal> $ df -h | grep -E '(/usr|/home)$'
19:10:35 <Vorpal> /dev/mapper/array-home 192G 158G 25G 87% /home
19:10:35 <Vorpal> /dev/mapper/array-usr 20G 9,9G 8,9G 53% /usr
19:10:50 <ais523> hmm, that's interesting
19:11:08 <Vorpal> ais523: well, it is basically LVM2
19:11:18 -!- Darth_Cliche has quit (Ping timeout: 255 seconds).
19:11:18 <ais523> also, I note that your /home is only three times the size of your /usr
19:11:27 <ais523> elliott's is probably thousands of times the size, knowing him
19:11:40 <Vorpal> ais523: I have never grown /usr since installing the system. I have grown /home a few times
19:11:56 <elliott> I recently reinstalled this system so I can't say.
19:12:00 <ais523> Vorpal: but you aren't storing old versions of most packages in /usr, are you?
19:12:26 <ais523> elliott: actually, that's a really good time to say, assuming you transferred over /home and transferred over the list of installed packages so that /usr contained the same packages
19:12:46 <elliott> I can't transfer /home from a dead machine.
19:12:58 <Vorpal> ais523: no because I use arch. My current partition scheme would not fit nixos. nixos doesn't even have an /usr. If I were to switch (and I'm contemplating this, still a few issues that needs to be ironed out first though), I would drop /usr and reorganize stuff a bit
19:13:01 <ais523> not even from backups?
19:13:09 -!- derrik has quit (Quit: nite).
19:13:12 <ais523> or by taking the drive out of it and connecting it up directly?
19:13:34 <ais523> Vorpal: well, nixos has a place-where-packages-are-stored
19:13:37 <Vorpal> ais523: I don't imagine elliott backs up anything beyond, say, ssh keys or web browser profile
19:13:43 <ais523> which may not be /usr, but certainly has a similar purpose
19:13:55 <ais523> Vorpal: hmm, I suspect my more recent ssh keys aren't actually backed up
19:14:04 <ais523> I only ever made the one backup of dotfiles
19:14:14 <elliott> ais523: I hadn't yet set up backups there for various reasons, although I have slightly old backups of the things I care about most (~/Code, mostly)
19:14:18 <ais523> I don't care about web browser profiles being backed up, most things I care about I memorized the URLs for
19:14:29 <Vorpal> ais523: nixos has one file in /bin, that is /bin/sh, and is a symlink. No /usr, not /sbin. It is all done in different ways
19:14:33 <elliott> ais523: and extracting the HD would require taking a chip welded onto the motherboard
19:14:47 <elliott> and then wiring it up to an enclosure somehow
19:15:06 <Vorpal> <ais523> I don't care about web browser profiles being backed up, most things I care about I memorized the URLs for <-- well, if you use the key ring feature of your browser
19:15:11 <ais523> Vorpal: that doesn't mean that there isn't a part of the system where installed executables are stored, though
19:15:34 <elliott> btw, Apple have decided that they don't have to fix the MacBook Air according to the warranty
19:15:36 <ais523> Vorpal: well, the browser has some passwords memorized; but I have them memorized too
19:15:42 <ais523> because I'm used to logging in from different systems
19:15:44 <elliott> and want 500 pounds to fix it
19:15:46 <ais523> elliott: hmm, how old was it?
19:15:50 <elliott> in related news, I have a new doorstop
19:15:58 <Vorpal> ais523: indeed, but I wouldn't put it on a separate partition from / for nixos. I would probably use / /home /boot and possibly /tmp (unless I do that in tmpfs)
19:16:16 <elliott> ais523: probably the warranty excludes all damage that isn't caused by, I don't know, God
19:16:21 * Gregor has one big / partition :P
19:16:27 <elliott> Gregor: So does everyone sane.
19:16:33 <ais523> elliott: you might be able to get them to fix it on statutary warranty, if the damage is their fault
19:16:47 <ais523> elliott: I have one big / partition, but suspect it may be a bad idea
19:16:57 <ais523> also, an equally-sized partition for Windows
19:17:04 <Vorpal> my laptop has /boot and /.
19:17:10 <ais523> as the repartitioner on the Ubuntu installer wouldn't shrink the Windows partition to less than half its original size
19:17:16 <elliott> ais523: I haven't bothered to investigate further as I don't anticipate arguing with Apple to be productive, but I suspect they have a very bad definition of "fault"
19:17:18 <ais523> I suppose I should use it for local backups, or something
19:17:23 <ais523> but I haven't been bothered to figure out how to mount it
19:17:36 <ais523> elliott: for statutary warranty, it's not their definition that matters, but the legal one
19:17:39 <elliott> Vorpal: it does suck; I guess I might fix it some day if I have some free cash
19:17:45 <elliott> this machine works fine for now, though
19:17:49 <ais523> does the computer you're currently using have working number keys?
19:17:52 <Vorpal> elliott: see what ais523 said
19:17:56 <elliott> ais523: yep, but I'd have to convince them that they have to agree with my definition
19:18:04 <elliott> which sounds like an awful lot of trouble
19:18:13 <Vorpal> elliott: talk to your lawyer ;P
19:18:19 <Vorpal> (I doubt you have one)
19:18:26 <ais523> what went wrong with the old one, apart from the digits on the keyboard?
19:18:31 <elliott> Vorpal: If I had a lawyer, I'd probably have 500 pounds spare :P
19:18:46 <elliott> ais523: it turned off and didn't turn back on again
19:19:19 <ais523> with no obvious cause?
19:19:47 <elliott> this happened like a week ago, btw, I just forgot to say anything :P
19:19:51 <oerjan> <ais523> elliott: to Gregor's topic change
19:20:18 <oerjan> Gregor: I SUSPECT YOUR .txt LOGS DON'T INCLUDE TOPIC CHANGES
19:21:49 <Gregor> oerjan: I noticed that >_>
19:23:52 <oerjan> Gregor: i also suspect they don't include +t mode changes :P
19:24:03 <Gregor> oerjan: They don't include mode changes at all.
19:27:05 <oerjan> if not for freenode's stupid idea that there should be a way to avoid getting logged, i'd have liked to point out that a channel should BLOODY INCLUDE EVERYTHING PEOPLE ON THE CHANNEL SEE
19:27:29 <elliott> http://codu.org/logs/_esoteric/2011-11-09-raw.txt
19:27:40 <elliott> https://codu.org/projects/stuff/logbothg/
19:27:45 <elliott> I'm sure Gregor accepts patches.
19:27:55 <Gregor> elliott: I'm fixing it right now :P
19:27:56 <elliott> Anyway I'm pretty sure glogbot doesn't respect the idiotic "no-logging" thing.
19:27:57 <Gregor> It's half-fixed already.
19:28:13 <ais523> what's the no-logging thing?
19:28:35 <elliott> <oerjan> if not for freenode's stupid idea that there should be a way to avoid getting logged
19:29:12 <Vorpal> <oerjan> if not for freenode's stupid idea that there should be a way to avoid getting logged, i'd have liked to point out that a channel should BLOODY INCLUDE EVERYTHING PEOPLE ON THE CHANNEL SEE <-- err? avoid getting logged?
19:29:20 <oerjan> ais523: i think i saw it in a faq somewhere
19:29:31 <oerjan> it's not in the server intro message, though
19:29:44 <ais523> oerjan: Freenode doesn't like channels to be logged without warning the users of the channel (e.g. in the topic)
19:29:57 <ais523> I thought you were implying there was some way to send a message-to-channel that wasn't logged
19:30:16 <elliott> or rather there's meant to be
19:30:28 <oerjan> i'm not sure if there is one which _both_ our log bots simultaneously abide by :P
19:30:41 <elliott> neither of our log bots fail to log anything
19:30:45 <elliott> apart from clog which is just incomplete
19:31:02 <fizzie> "Be sure to provide a way for users to make comments without logging, --" -- freenode philosophy: channel guidelines.
19:31:10 <Gregor> Argh, I'm incompetent :P
19:31:20 <Gregor> OK, it's 2/3rds fixed (adding topics to log)
19:31:34 <Vorpal> fizzie: that is really simple actually. Tell them to turn off local logging. Then they can make a comment while not logging.
19:31:41 <Vorpal> what a badly worded statement
19:31:48 <elliott> "If you're considering publishing channel logs, think it through. The freenode network is an interactive environment. Even on public channels, most users don't weigh their comments with the idea that they'll be enshrined in perpetuity. For that reason, few participants publish logs.
19:31:48 <elliott> If you're publishing logs on an ongoing basis, your channel topic should reflect that fact. Be sure to provide a way for users to make comments without logging, and get permission from the channel owners before you start. If you're thinking of "anonymizing" your logs (removing information that identifies the specific users), be aware that it's difficult to do it well—replies and general context often
19:31:48 <elliott> provide identifying information which is hard to filter.
19:31:48 <fizzie> It's in the context of publishing logs.
19:31:49 <elliott> If you just want to publish a single conversation, be careful to get permission from each participant. Provide as much context as you can. Avoid the temptation to publish or distribute logs without permission in order to portray someone in a bad light. The reputation you save will most likely be your own."
19:32:24 <elliott> fizzie: You should put on your special op hat and tap my head three times and designate me the Official Catalyst.
19:32:27 <elliott> That's how it works, right?
19:32:42 <Gregor> Your way to make comments without logging is to go to #esoteric-unlogged .
19:32:50 <elliott> Relaxed, open-minded, responsible, unobtrusive, realistic, careful, attentive, minimalist, courteous, cooperative, someone with an internal locus of control, and a user...
19:32:52 <fizzie> I think the catalyst stuff has something to do with chemistry, but that's all I know.
19:32:53 <elliott> Yes, I am all these things!
19:32:57 <Gregor> As an added bonus, you may choose to opt out of hearing unlogged messages by simply not joining #esoteric-unlogged .
19:33:08 <elliott> Gregor: http://codu.org/logs/_esoteric-unlogged/
19:33:29 <fizzie> <span freenode:logging="disable">I sure hope this comment was not logged.</span>
19:33:31 <elliott> I invited glogbot to it. :P
19:33:46 <Vorpal> stupid bot that does that
19:34:07 <Vorpal> elliott: joins any invites it gets
19:34:32 <elliott> Vorpal: Why send a command for "start logging" when you could just use an existing IRC mechanism...
19:34:38 <elliott> Vorpal: Bonus: /invite requires op privileges.
19:34:43 <elliott> So glogbot can avoid authenticating that.
19:35:00 <Vorpal> elliott: sure, but surely only the owner of the bot should be able to add new channels
19:35:16 <Gregor> Vorpal: It's a public-access logbot, I shouldn't need to be bothered to add new channels.
19:35:17 <Vorpal> elliott: well lets invite it into all high volume channels then :D
19:35:26 <elliott> Vorpal: We're not ops on those channels, you moron.
19:35:28 <Gregor> Vorpal: Good luck getting ops on all of them.
19:35:39 <Vorpal> elliott: true, but do you need that if the channel is not +i?
19:35:58 <elliott> * #ubuntu :You're not a channel operator
19:35:58 <elliott> * Channel #ubuntu modes: +CLcntjf 5:10 #ubuntu-unregged
19:36:16 <elliott> +i is just restricting joins.
19:36:30 <Gregor> That /invite policy is a Freenode thing.
19:36:33 <Gregor> But, glogbot is a Freenode bot :)
19:36:46 <Vorpal> yeah pretty sure invites don't work like that on a standard ircd
19:36:51 <Gregor> OMG HOW DO I KEEP SCREWING THIS UP
19:36:53 <fizzie> There's a chanserv access flag to enable inviting.
19:36:55 <elliott> Like there's any such thing as a standard ircd.
19:37:05 <fizzie> The IRCnet ircd is the standard ircd. :p
19:37:05 <Vorpal> fizzie: isn't that /cs invite
19:37:20 <Vorpal> elliott: well, common ircd. As in how it is done on the other big networks
19:37:43 <fizzie> Vorpal: Could be; I suppose it would make sense that way.
19:38:01 <Gregor> FINALLY. After only twelve attempts, the logbot now has topic changes.
19:38:08 <Gregor> Now to add mode changes.
19:43:39 <oerjan> now i just need to ironically ban Gregor for abusing topic changes
19:44:07 <elliott> oerjan: ban ais523 instead, he abused mode changes :'(
19:44:28 -!- Gregor has set topic: #esoteric is Not Your Average Network chat channel! | #esoteric trying to enforce topic despotism: But how will this affect our children's fitness? That and more at 11 | http://codu.org/logs/_esoteric/.
19:44:52 <ais523> oerjan: I +t'd the channel in order to stop the topic change abuse
19:44:56 <ais523> I don't call that mode change abuse at all
19:45:08 <ais523> especially as it was only intended to be temporary, and was in fact changed back after a few minutes
19:45:14 <elliott> Oh man, Not Your Average Network
19:45:25 <oerjan> elliott: should i ban ais523 for not understanding jokes, instead?
19:45:42 <ais523> elliott: I got it right away
19:45:48 <ais523> and thought it was an amusing compromise
19:45:53 <Gregor> OK, topic/mode logging is now perfection.
19:45:59 <ais523> might be better without the caps, I guess
19:46:04 -!- Taneb has joined.
19:47:03 <elliott> forall r. (((m a -> m a) -> m a) -> r) -> r
19:47:31 <elliott> oerjan: I was trying to figure out what a coroutine monad looks like because I'm really bored :P
19:47:46 <elliott> (with fork :: CoroT m a -> CoroT m (), yield :: CoroT m ())
19:48:04 <elliott> nothing boring like StateT [CoroT m ()] m ofc
19:48:50 <oerjan> elliott: just put zzo38 on it
19:49:08 <elliott> ...but yeah, I started off with
19:49:26 <elliott> where the argument is a sort of yield
19:49:28 <elliott> you pass it a continuation
19:49:38 <elliott> it context-switches to every other thread then calls the continuation you gave it once that's done
19:49:43 <elliott> because you can't write fork
19:50:18 <elliott> oerjan: btw did you see Simon Marlow breaking reddiquette :P
19:52:06 <oerjan> well i haven't gotten around to reddit yet. also, laundry -->
19:55:06 <Taneb> 'Twould seem not...
19:55:08 -!- Taneb has quit (Quit: Leaving).
19:55:21 -!- Taneb has joined.
19:55:35 -!- Zuu has joined.
20:01:32 <Gregor> elliott: Why is glogbot not the most wildly popular logbot ever made?
20:01:54 <elliott> 'cuz it doesn't do mode changes.
20:02:05 <Gregor> elliott: But it does now!
20:02:55 <Gregor> Hey, my memory is distinct from glogbot's quality >_>
20:04:04 <elliott> I typed that before you said it did :P
20:04:11 <elliott> ISTR something like quits were broken a while ago.
20:06:54 <Gregor> They were only very partially broken.
20:07:10 <Gregor> It was join->nick->quit that it didn't detect properly.
20:07:18 <Gregor> It detected the join and the nick, but not the quit.
20:15:22 <Taneb> Heh, now even Adobe don't use Flash
20:15:54 -!- Phantom__Hoover has joined.
20:18:51 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:18:57 -!- derrik has joined.
20:22:52 -!- Aune has joined.
20:24:14 <HackEgo> 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
20:31:59 -!- tiffany has joined.
20:35:37 -!- GreaseMonkey has joined.
20:35:37 -!- GreaseMonkey has quit (Changing host).
20:35:37 -!- GreaseMonkey has joined.
20:37:41 <Gregor> NOW I remember why I hate PulseAudio so much.
20:37:47 <Gregor> BECAUSE IT FRIGGIN SUCKS
20:38:24 <Gregor> Why is mplayer stuttery and terrible through pulseaudio? And why is it that if I just have pulseaudio INSTALLED, anything that wants it will start it automatically without asking me? >_<
20:38:39 <oerjan> so how many programs do you hate for being too perfect?
20:39:13 <olsner> Gregor: stop complaining and just uninstall pulseaudio then
20:39:24 <Gregor> olsner: I need it for remote audio >_<
20:39:37 <Gregor> olsner: So I have to install it when I want remote audio, then uninstall it when I don't :P
20:39:55 <oerjan> well you're already good at sandboxing...
20:40:15 <Gregor> elliott: JACK is SO FRIGGIN' DIFFICULT.
20:40:22 <elliott> Gregor: Google a friggin' tutorial :P
20:40:27 <Gregor> elliott: I did! It didn't work!
20:40:34 <oerjan> Gregor doesn't know jack shit
20:40:44 <elliott> yeah Gregor's a fucking moron
20:42:01 <Gregor> elliott: That's it, I'm BANNING YOU ... from the logs ... or something.
20:42:34 <oerjan> logs without elliott, so useful
20:42:56 <elliott> You might get a whole percent of the messages.
20:47:13 <elliott> oerjan: did you know: Enum and Bounded are hard to use
20:48:39 <oerjan> > [minBound..maxBound] :: String
20:48:40 <lambdabot> "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\S...
20:49:11 <elliott> boundedEnumElems :: (Enum a, Bounded a, Eq a) => Elems a
20:49:11 <elliott> boundedEnumElems = go minBound maxBound
20:49:11 <elliott> | otherwise = Branch (go m mn) (go (succ mn) n)
20:49:12 <elliott> where mn = pred . toEnum $ nv + ((nv - mv) `div` 2)
20:49:36 <oerjan> > [minBound,'Ø'..maxBound] :: String
20:49:37 <lambdabot> "\NUL\216\432\648\864\1080\1296\1512\1728\1944\2160\2376\2592\2808\3024\324...
20:51:58 <elliott> *Main> boundedEnumElems :: Elems Bool
20:51:58 <elliott> Branch (Leaf False) (Leaf True)
20:51:58 <elliott> *Main> boundedEnumElems :: Elems Test
20:51:58 <elliott> Branch *** Exception: toEnum{Test}: tag (4) is outside of enumeration's range (0,3)
20:52:03 <elliott> where Test is A | B | C | D
20:52:50 <oerjan> ah i guess the problem is if mn == maxBound?
20:53:13 <elliott> I guess I could like compare mn to see if it's maxbound but uhhh
20:53:35 <elliott> oerjan: because the exception is on the first branch
20:53:45 <elliott> and no, I don't, I can just use fromEnum >:)
20:54:35 <Deewiant> You don't need Eq either, if you use fromEnum
20:55:11 <elliott> Thinking it might just be easier to do it with a -> [Bool]
20:55:32 <oerjan> elliott: itym where mn = pred . toEnum $ mv + ((nv - mv) `div` 2)
20:55:59 <elliott> oerjan: that produces an infinite tree for Test :P
20:56:19 <elliott> Phantom__Hoover: Help I don't want to impact?
20:56:29 <elliott> This is like Sburb but with a crappy loading screen.
20:56:42 <oerjan> elliott: oh i guess if they're 1 apart, it may fail?
20:56:49 <elliott> oerjan: auugh why is this ugly
20:57:02 <elliott> Phantom__Hoover: OMG CAN I IMPACT EARTH WITH A GIGANTIC MASSIVE ASTEROID
20:57:06 <oerjan> elliott: nv + ((nv - mv) `div` 2) is definitely wrong, anyway
20:57:14 <elliott> Phantom__Hoover: X-D One of the options for diameter is "Humpback Whale".
20:58:20 <elliott> Phantom__Hoover: :-( I was hoping I could watch it slam in.
20:59:19 <oerjan> elliott: should the pred . be there?
20:59:28 <elliott> oerjan: istr it failed even more without it :) i can ermove it
20:59:47 -!- Taneb has quit (Read error: Connection reset by peer).
20:59:51 <elliott> "The Earth is completely disrupted by the impact and its debris forms a new asteroid belt orbiting the sun between Venus and Mars.
20:59:51 <elliott> 100 percent of the Earth is melted
20:59:51 <elliott> Depending on the direction and location the collision, the impact may totally change the Earth's rotation period and the tilt of its axis.
20:59:51 <elliott> Depending on the direction and location of impact, the collision may cause a change in the length of the day of up to 38500000000000 hours.
20:59:52 <elliott> The impact shifts the Earth's orbit totally."
20:59:56 <elliott> Phantom__Hoover: "Day change: not significant"
21:00:15 <Gregor> elliott: Day changed to no-such-notion :P
21:00:29 <elliott> Gregor: It's just 38500000000024 hours long now.
21:00:57 <elliott> "Transient Crater Depth: 2560000000 km ( = 1590000000 miles )"
21:01:06 <oerjan> elliott: try where mn = toEnum $ mv + ((nv - mv) `div` 2)
21:04:01 <oerjan> <elliott> Phantom__Hoover: X-D One of the options for diameter is "Humpback Whale". <-- what about bowl of petunias?
21:04:33 <oerjan> actually then it should be sperm whale, i think
21:05:01 * Gregor starts putting in ridiculous parameters.
21:05:07 <Gregor> A ball of iron the size of Jupiter ...
21:05:28 <elliott> Gregor: Pffft, I put like 1000000000 in all the fields :P
21:05:39 <elliott> It just basically says "There is no more Earth!"
21:06:03 <oerjan> would that actually be a black hole...
21:06:40 <Gregor> "The Earth is completely disrupted by the impact and its debris forms a new asteroid belt orbiting the sun between Venus and Mars." yay
21:06:57 <Gregor> "Depending on the direction and location of impact, the collision may cause a change in the length of the day of up to 23.8 hours." lol
21:09:20 <Phantom__Hoover> WA is misbehaving when I try to find the Schwarzschild radius of a ball of iron the size of Jupiter.
21:10:09 <oerjan> it is probably detecting that you are constructing a weapon of mass destruction
21:10:17 <olsner> if you already know the size, what do you need the schwarzschild radius for?
21:10:34 <oerjan> olsner: to check if it would collapse into a black hole, duh
21:11:32 <oerjan> although it would probably collapse to some higher density than iron on earth :P
21:12:38 <Phantom__Hoover> And it's around five times the Chandrasekhar limit, so it would have to be a neutron star at least.
21:12:47 <oerjan> well but what is the total mass of this, is it more than a minimum size stellar black hole?
21:13:31 <elliott> Phantom__Hoover: What's the biggest ball of iron we can do? I want one.
21:13:41 <oerjan> hm what is the range of possible neutron star masses...
21:14:10 <Phantom__Hoover> Is electron-degenerate iron counted? Then you can have anything up to the Chandrasekhar limit.
21:14:33 <elliott> Phantom__Hoover: No I want something that looks like iron ok.
21:14:53 <oerjan> "In general, compact stars of less than 1.44 solar masses – the Chandrasekhar limit – are white dwarfs, and above 2 to 3 solar masses (the Tolman–Oppenheimer–Volkoff limit), a quark star might be created; however, this is uncertain. Gravitational collapse will usually occur on any compact star between 10 and 25 solar masses and produce a black hole."
21:15:00 <Phantom__Hoover> It's around a fiftieth of the Chandrasekhar limit, so it'd be a white dwarf.
21:15:45 <elliott> Phantom__Hoover: So what's the biggest non-vertically-challenged ball of iron
21:16:30 <elliott> Phantom__Hoover: OK well what's the biggest ball of iron you can think of that you're sure is of full stature.
21:16:53 <oerjan> this sounds... backwards
21:17:07 <Phantom__Hoover> oerjan, not really, stuff gets smaller as it gets heavier.
21:17:10 <elliott> Phantom__Hoover: ANSWER MEEEEEEEEEEEEE
21:18:23 <elliott> Phantom__Hoover: THERE ARE FOLLOW-UP QUESTIONS
21:19:01 <Phantom__Hoover> elliott, bang that into WA after s/m_e/mass of electron/, s/m_p/mass of proton/, s/rho/density of iron/, s/mu_e/1/
21:19:37 <elliott> Phantom__Hoover: I don't waaant toooo, mostly because Wolfram Alpha can't answer my follow-up question.
21:19:58 <Phantom__Hoover> Sure, but I can answer it with the answer to the previous.
21:20:28 <Phantom__Hoover> Well, it'd need another calculation, but that's just standard fluid pressure AFAIK.
21:20:39 <elliott> Phantom__Hoover: Do you know what the next question is.
21:21:28 -!- Ngevd has joined.
21:22:01 <elliott> Phantom__Hoover: http://www.wolframalpha.com/input/?i=%28planck%27s+constant+%5E+2%29%2F%2820*mass+of+electron*%28mass+of+proton%29%5E%285%2F3%29%29*%283%2Fpi%29%5E%282%2F3%29*%28density+of+iron%29%5E%285%2F3%29 It fucked it up slightly I think, but I can't figure out how to fix it.
21:22:51 <oerjan> "A planet such as Jupiter has about the largest volume possible for a cold mass.[2] Add mass to Jupiter and the planet's volume, somewhat counter-intuitively, becomes smaller."
21:23:19 <oerjan> http://en.wikipedia.org/wiki/Compact_star
21:23:54 <Ngevd> A rather limited subset of Minecraft could be considered a Linear Bounded Automaton
21:24:06 <Ngevd> I say rather limited.
21:24:22 <Ngevd> I mean, Turing-Complete enough for Wolfram to say it would be
21:24:34 <olsner> it has been done, I think
21:25:02 <Phantom__Hoover> The trick is to stick the player in a minecart and use them to load the tape.
21:25:06 <elliott> Phantom__Hoover: Also its parenthesisation.
21:25:21 <elliott> I don't think 20(m_e m_p)^5/3 is right.
21:26:05 <Deewiant> http://www.wolframalpha.com/input/?i=%28planck%27s+constant+^+2%29%2F%2820*mass+of+electron*%28%28mass+of+proton%29^%285%2F3%29%29%29*%283%2Fpi%29^%282%2F3%29*%28density+of+iron%29^%285%2F3%29
21:26:22 <Phantom__Hoover> http://scienceworld.wolfram.com/physics/ElectronDegeneracyPressure.html
21:27:28 <elliott> Deewiant: Thank, you are a helpful person.
21:27:41 <Phantom__Hoover> `learn Finns are helpful, albeit grossly overpopulated (cf. 'Finland').
21:28:47 <Ngevd> The two towns with the most esolangers are Helsinki and Hexham.
21:28:59 <elliott> We should get twinned or something.
21:29:06 <elliott> Phantom__Hoover: So do you know the answer now.
21:30:15 <Ngevd> Phantom__Hoover, that makes EVEN MORE PEOPLE FROM HEXHAM RELATIVELY
21:30:35 <Ngevd> Is there anybody other than Phantom__Hoover from the Edinburgh area on this channel?
21:31:06 <Ngevd> How about Gregoria?
21:31:44 * Phantom__Hoover realises that working out the mass from that pressure is non-trivial.
21:31:54 <Ngevd> West Lafayette, Indiana
21:32:17 <elliott> Phantom__Hoover: What would happen if we flung it at the Earth.
21:32:38 <elliott> NOT MY FAULT YOU GOT ME TO TYPE IN EQUATIONS
21:33:22 <elliott> Not a satisfactory answer Phantom__Hoover
21:33:34 <elliott> Phantom__Hoover: OK wait what if we just sort of glided it to the earth.
21:34:01 <elliott> Phantom__Hoover you are so bad.
21:34:25 <Phantom__Hoover> At those scales, it's basically the same as throwing blobs of water at each other in zero gravity (im good analgogy).
21:35:12 <elliott> Phantom__Hoover: OK but how close would it have to get before fun started happening on Earth (assuming the 1 m/s thing).
21:36:03 <elliott> Phantom__Hoover: Duuude you suuuuck.
21:36:14 <oerjan> i was interpreting that sploosh as more the kind of insect on a windshield thing.
21:36:24 <oerjan> where earth, in this case, is the insect.
21:36:48 <elliott> And then the ball of iron's windscreen wipers smudge us.
21:36:54 <Ngevd> But Helsinki and Hexham... BOTH BEGIN WITH 'H'
21:37:01 <Ngevd> Is there anyone from the Hague here?
21:37:04 <elliott> Okay now I'm imagining a perfectly spherical ball of iron just sort of gliding through the heavens with enormous windscreen wipers.
21:37:30 <Phantom__Hoover> How can it have windscreen wipers if it's perfectly spherical?
21:37:42 <oerjan> Phantom__Hoover: advanced alien technology.
21:38:01 <elliott> Phantom__Hoover: They're just regular car windscreen wipers but curved.
21:38:04 <ais523> Phantom__Hoover: actually, a perfect sphere is reasonably easy to windscreen-wipe
21:38:14 <elliott> They only wipe the front bit.
21:38:18 <elliott> (The bit that's going forwards.)
21:38:26 <elliott> Phantom__Hoover: They aren't part of the sphere.
21:38:51 <oerjan> Phantom__Hoover: advanced alien technology.
21:38:57 <Phantom__Hoover> (Magnets don't count; they'd cause a distortion in the sphere.)
21:39:00 <elliott> Phantom__Hoover: I don't know, how are they attached to cars?
21:39:21 <oerjan> elliott: advanced alien technology.
21:39:27 <elliott> Phantom__Hoover: Okay, now I'm laughing.
21:39:37 <oerjan> (toyota is secretly grey operated)
21:39:46 <elliott> Phantom__Hoover: OK it's perfectly spherical apart from a little indent where the wipers are attached, happy?
21:39:56 <Ngevd> `addquote <Phantom__Hoover> elliott, cars aren't perfectly spherical.
21:39:58 <HackEgo> 715) <Phantom__Hoover> elliott, cars aren't perfectly spherical.
21:40:26 <Ngevd> As opposed to non-sticky glue
21:40:34 * Phantom__Hoover wishes he'd set fire to that insect food in chemistry today just before the fire alarm went off.
21:40:40 <elliott> Phantom__Hoover: Why amn't science hapey.
21:40:59 <oerjan> elliott: because gramer
21:41:43 <oerjan> elliott: you didnt misple why
21:42:25 <elliott> oerjan: I misspelled wyh just fine.
21:44:17 <Ngevd> Quay is pronounced similar to "key".
21:45:11 <oerjan> i no i couldnt fine any homonyms of kay
21:46:11 <Phantom__Hoover> O god, r we goan to degenerate in2 thi style of Bascule the Teller?
21:46:17 <Ngevd> Yuo probly no tihs arleayd
21:46:45 <oerjan> hoos bascule the teller
21:47:37 <elliott> <Phantom__Hoover> O god, r we goan to degenerate in2 thi style of Bascule the Teller?
21:47:58 <elliott> Phantom__Hoover: Turns out my mind has been permanently warped by "i"s close to 2s.
21:48:20 <elliott> Phantom__Hoover: Although it dissonantly reacted by my zzo38 detector triggering on "O".
21:48:40 <elliott> oerjan: YUO'RE DOING IT WRONEGE ;____;
21:49:46 <elliott> oerjan: you have to duplicate your "i"s ok ;__; doing otherwise is issesponsible
21:50:28 <elliott> That would be really scary if not for the "u".
21:50:32 * Phantom__Hoover notes that Higher pass rates have climbed in the past too, is confuse.
21:51:13 <oerjan> Phantom__Hoover: they probaly wrap wen hiting 100%
21:51:35 -!- derdon has quit (Remote host closed the connection).
21:53:07 <Gregor> elliott: Pointing out the only correctly-spelled word? :P
21:53:12 <Gregor> elliott: (But "wrap" is write too!)
21:53:15 <elliott> Gregor: You mean: the only error.
21:53:25 <Gregor> NOTE JOKE IN LAST MESSAGE
21:53:51 <Gregor> Phantom__Hoover: *brain explodes*
21:55:03 -!- tiffany has quit (Read error: Connection reset by peer).
21:55:39 -!- tiffany has joined.
21:58:13 <Ngevd> I'm going to do some more work on Salesman
21:58:28 <Ngevd> By which I mean completely changing all the commands for the fourth time
21:58:58 -!- augur has quit (Remote host closed the connection).
21:59:39 <elliott> boundedEnumToBits :: (Enum a, Bounded a) => a -> [Bool]
21:59:39 <elliott> boundedEnumToBits a = go (fromEnum (minBound `asTypeOf` a)) (fromEnum (maxBound `asTypeOf` a)) (fromEnum a)
21:59:39 <elliott> where go :: Int -> Int -> Int -> [Bool]
21:59:42 <elliott> | v <= mn = False : go m mn v
21:59:44 <elliott> | otherwise = True : go (succ mn) n v
21:59:46 <elliott> where mn = m + ((n - m) `div` 2)
22:00:19 <ais523> hmm, is there any project whose name starts "ya" as an acronym/initialism/abbreviation for "yet another", but is the first project doing what it does?
22:00:49 <elliott> ais523: yapwnsyaaaiafyabitfpdwid
22:01:37 <Gregor> yamlpopl -> Yet Another My-Little-Pony-Oriented Programming Language
22:02:30 <elliott> ais523: Those were funny >:(
22:02:53 <Ngevd> A Salesman implementation must be able to solve the Travelling Salesman problem MULTIPLE TIMES during the course of execution
22:03:01 <Nisstyre> elliott: you highlighted me earlier
22:03:07 <Nisstyre> along with the rest of the channel
22:03:08 <elliott> Nisstyre: No, you must be mistaken.
22:04:06 <elliott> Gregor: Have you removed the line from the logs yet???
22:04:28 <Gregor> elliott: ALL THE LINES
22:04:51 <Nisstyre> you highlighted me and many other at precisely 12:53 Wednesday November, 09 2011 EST
22:05:10 <elliott> Precisely? So, not another second passed?
22:05:21 <Nisstyre> name your goddamn variables properly
22:05:35 <elliott> Those variables are perfectly well named.
22:05:36 <monqy> mnvmnvmnvmnvnvmnvmnvn
22:07:25 <ais523> elliott: sorry, I was out taking a phone-call
22:07:46 <elliott> ais523: What are we meant to do when we need someone banned urgently?
22:09:41 <ais523> elliott: ask #freenode?
22:09:52 <elliott> ais523: hmm... I'll give it a shot
22:11:30 <Gregor> Oooooh, now I'm curious who needs urgent banning.
22:12:48 -!- Ngevd has quit (Ping timeout: 245 seconds).
22:23:40 <Phantom__Hoover> Argh, how long until I go to university and get journal access.
22:24:07 -!- Ngevd has joined.
22:27:14 <Ngevd> Damn, I just realised Salesman is gonna have to simulate a basic economy
22:27:35 <Phantom__Hoover> Is this the travelling salesman problem taken to the next level?
22:27:51 <Ngevd> This is getting pretty complicated
22:28:28 <Ngevd> elliott, did you ever come up with your version of Brook?
22:28:55 <Ngevd> With dynamic graph-changing
22:29:33 <Ngevd> But it's a complete graph which is by default Cartesian
22:30:12 <Ngevd> It's possible to change arc weights, but only by doubling them or halving them (may change that)
22:33:10 <Ngevd> Thing is, in Salesman, the salesman actually buys and sells things
22:33:10 <Ngevd> It may have multiple commodities
22:33:47 <Ngevd> It is going to be so damn complicated
22:36:16 -!- Aune has quit (Quit: Lmnar).
22:36:20 <Phantom__Hoover> Minecraft has made me view all trees as ridiculously slender.
22:36:51 <Ngevd> Aww, now you got me thinking about Slender Man
22:38:08 -!- Ngevd has quit (Quit: ...).
22:38:25 <Vorpal> well, I need to sleep, night →
22:38:32 <Vorpal> `addquote <Phantom__Hoover> Minecraft has made me view all trees as ridiculously slender.
22:38:34 <HackEgo> 716) <Phantom__Hoover> Minecraft has made me view all trees as ridiculously slender.
22:40:17 -!- boily has quit (Ping timeout: 258 seconds).
22:41:29 -!- sebbu3 has joined.
22:41:29 -!- sebbu3 has quit (Changing host).
22:41:29 -!- sebbu3 has joined.
22:42:27 -!- sebbu2 has quit (Ping timeout: 240 seconds).
23:00:13 <ais523> THE COURT: You don't want to get me started on this. You big companies do not own the U.S. District Court. So, yes, you can have your protective orders, but when it comes to a public hearing, I'm not going to have to resort to Morse Code to understand what you are trying to tell me.
23:12:25 <ais523> (that's from Oracle vs. Google, against an Oracle lawyer)
23:12:56 <coppro> yeah, that judge is pretty awesome
23:12:59 -!- Rod56 has joined.
23:13:38 <ais523> I get the feeling from reading the rest of the trial that the judge thinks both sides are bullshitting him
23:13:45 <ais523> also, that he is quite probably correct
23:16:55 <elliott> ais523: wow, you mentioning that made me look at groklaw for the first time in years, which lead to me finding out that the original editor retired from it
23:17:03 <elliott> that's weird, feels like a universal constant changing
23:17:14 <ais523> elliott: you missed PJ retiring? wow
23:17:23 <elliott> ais523: I don't read Groklaw :)
23:17:25 <ais523> she still turns up now and again, especially if SCO are doing things
23:17:42 <ais523> but it's mostly written by Mark, who not only claims to be a lawyer, but obviously /is/ one from the way he talks
23:19:21 <elliott> ais523: what's the current state of SCO, btw?
23:19:34 <ais523> elliott: they sold pretty much everything they had to various shady companies
23:19:45 <ais523> and then tried to resume their litigation against IBM, believe it or not
23:19:55 <ais523> they tried to not resume IBM's counter-litigation against them at the same time
23:20:12 -!- Phantom__Hoover has quit (Quit: Leaving).
23:20:16 <ais523> I think they haven't heard back from the judge yet, who is probably still laughing
23:20:24 <elliott> ais523: SCO's lawyers were paid upfront or something, right?
23:20:40 <ais523> and are probably regretting that
23:21:08 <ais523> I think the only reason they haven't just defaulted is to prove to other potential customers that if they're hired for something, they'll go through with it no matter how stupid it is
23:21:14 <elliott> ooh, they renamed themselves!
23:21:29 <elliott> to... TSG Group, Inc.... so they're The SCO Group Group, Inc.
23:21:31 <elliott> ais523: http://en.wikipedia.org/wiki/SCO_Group
23:21:38 <ais523> oh, wow, I forgot about that
23:21:47 <elliott> The Santa Cruz Operation Group Group, Incorporated
23:22:22 <elliott> ais523: I don't think so? at least Wikipedia says it's Operation
23:22:36 <ais523> it's still laughing too
23:22:40 <elliott> See also: Caldera OpenLinux and The Santa Cruz Operation
23:22:40 <elliott> [edit]The Santa Cruz Operation (SCO)
23:23:02 <elliott> The SCO website now gives details of a new appeal against Novell, Inc, dated September 9, 2010 and presumably lodged with the United States Court of Appeals.
23:23:11 <elliott> oh, there's more info below
23:23:17 <elliott> SCO filed amendments to their certificates of incorporation on 15 April 2011. The SCO Group, Inc. was renamed TSG Group, Inc., and SCO Operations, Inc. became TSG Operations, Inc.[4]
23:23:18 <elliott> On 30 August 2011, the United States Court of Appeals for the Tenth Circuit affirmed SCO's loss to Novell in the second jury/bench trial.[70] SCO's appellate brief had argued that there were evidentiary errors and other issues at trial. The affirmed verdict held that Novell did not transfer the UNIX copyrights to SCO in the amended asset purchase agreement, and that Novell has the right to waive certai
23:23:18 <elliott> n alleged license violations.
23:25:21 <ais523> elliott: SCO can theoretically appeal to the supreme court, but they haven't tried
23:28:08 -!- Rod56 has left.
23:31:37 <elliott> hmm, this feels like interproject limbo :/
23:32:06 <elliott> this not coding anything :)
23:32:24 <ais523> but you have plenty of projects
23:32:51 <elliott> unfortunately, they're swapped out to disk
23:32:55 <elliott> and the scheduler isn't looking at them
23:33:48 <elliott> ais523: if I say yes, will you think that means I have control over it?
23:33:53 <olsner> I uninstalled scheduler long ago and switched to procrastinator
23:34:37 <oerjan> olsner: my scheduler did that all by itself.
23:34:37 <elliott> I think I've figured out what's happening
23:34:49 <elliott> my scheduler is swapping out all currently active processes
23:34:58 <elliott> because the next one it'll switch to
23:35:35 <ais523> is @ as disastrous as Feather?
23:35:46 <monqy> I thought feather too
23:35:50 <elliott> ais523: I don't /know/, it's only ever run as a background task
23:35:54 <oerjan> the black holes of vaporware
23:36:25 <elliott> ummm, someone give me something really interesting yet surprisingly easy to do, it's the only thing that can stop this
23:36:43 <ais523> elliott: write an optimizing parser for C
23:36:53 <elliott> ais523: an /optimising/ parser?
23:37:16 <olsner> a parser that optimizes itself?
23:37:20 <ais523> I suppose you could at least do constant-folding in the parse
23:37:31 <ais523> possibly even dead code elimination
23:38:03 <elliott> that doesn't sound fun _or_ easy :)
23:38:28 <ais523> different language, then
23:39:31 <elliott> project "try and get interested in working on my current projects first": failed
23:39:39 <elliott> something has gone horribly wrong :(
23:40:09 <ais523> elliott: hmm… write a Scheme impl in JS
23:40:35 <elliott> I think writing more JS code would be very bad for my health
23:40:45 <monqy> js impl in scheme; get them to run each other
23:41:26 <elliott> it can never truly be scheme
23:42:27 -!- derrik has quit (Quit: left).
23:42:44 <oerjan> write an optimizing parser for ... malbolge.
23:43:03 <elliott> oerjan: thanks: now i just want to give up on computing altogether
23:44:06 <elliott> it relies on me having a recent enough copy of it
23:45:04 <elliott> 2011-03-09.txt:19:30:24: <elliott> elliott@elliott-MacBookAir:~/Code/sixth$ make >/dev/null; wc -c sixth.o
23:45:04 <elliott> 2011-03-09.txt:19:30:24: <elliott> 75 sixth.o
23:45:04 <elliott> 2011-03-09.txt:21:31:02: <elliott> 81 sixth.o
23:45:08 * oerjan suddenly wonders if feather supports concurrency
23:45:33 <elliott> oerjan: I don't see why not
23:45:57 <oerjan> um i meant something _not_ lock-step
23:46:35 <elliott> 2011-09-03.txt:01:51:37: <elliott> also, I still have the code for that boot sector Forth...
23:46:57 <elliott> 2011-03-12.txt:09:01:17: <elliott> I think si/di are free, it's just a boot sector. But it's tiny, so I don't really care that much :P
23:47:14 <Gregor> ... my graphics card has an audio card.
23:47:17 <ais523> oerjan: I don't think race-conditiony-concurrency is possible
23:47:19 <Gregor> My graphics card ... has an audio card.
23:47:29 <Gregor> MY GRAPHICS CARD HAS AN AUDIO CARD *brain explodes*
23:47:29 <oerjan> those are some weird animals http://www.dagbladet.no/2011/11/09/nyheter/utenriks/romfart/astrobiologi/dyrenesnyheter/18952143/
23:47:58 <olsner> Gregor: your what has a what now?
23:48:10 <Gregor> olsner: my GRAPHICS CARD has an AUDIO CAAAAAAAARD
23:48:22 <oerjan> your audio card has a smell card but you cannot detect it *MWAHAHAHAHA*
23:49:05 <elliott> 2011-05-17.txt:17:19:05: <ais523> I think all it does is listen to conversation by the actual elliott and relay back and forth
23:49:18 <elliott> 2011-09-15.txt:02:44:51: <elliott> Some researchers put forth the thesis that monads could help with concurrency. At this point, it looks like their thesis has failed.
23:49:48 <monqy> Bears etc. stranded in space
23:49:55 <elliott> wow, I never made sprunge pastes in here in 2011-{03,04,09}
23:50:02 <olsner> oerjan: maybe he can get fnarf feedback
23:50:20 <elliott> [elliott@dinky esoteric]$ grep -ri --color=always 'elliott.*sprunge\.us/' 2011-0{3,4,9}-??.txt | wc -l
23:50:29 -!- sllide has quit (Ping timeout: 256 seconds).
23:52:02 <monqy> I love bears etc.. They are super cute!
23:52:04 <monqy> (to microscopic animals to be)
23:52:07 <elliott> http://sprunge.us/fhXB ouch
23:52:25 <oerjan> monqy: i think the english name is tardigrade
23:52:36 <Gregor> <monqy> I love bears etc.. They are super cute! <-- referring to hairy gay men
23:52:43 <Gregor> <monqy> (to microscopic animals to be) <-- referring to his sperm
23:53:09 <oerjan> Gregor, master of interpretation
23:53:48 <elliott> monqy: do you remember news-ham
23:54:01 <ais523> elliott: was the hyphen part of the name?
23:54:10 <monqy> to distinguish news-ham from newsham
23:54:11 <ais523> also, why isn't monqy from Hexham? his name sounds like he should be
23:54:14 <elliott> ais523: yes, obviously; newsham owned newsham
23:54:19 <ais523> monqy: they were different people?
23:54:19 <elliott> `addquote <ais523> also, why isn't monqy from Hexham? his name sounds like he should be
23:54:21 <HackEgo> 717) <ais523> also, why isn't monqy from Hexham? his name sounds like he should be
23:54:25 <elliott> ais523: newsham was a person
23:54:32 <olsner> news-ham - any relation to new-sham?
23:54:37 <elliott> ais523: a _complete_ coincidence, I assure you!
23:54:44 <elliott> newsham just stole the name of the fine news-dispensing ham IRC bot.
23:54:52 <monqy> why would i be from hexham
23:55:00 <ais523> because you're called monqy
23:55:04 <ais523> how is it pronounced, anyway?
23:55:09 <elliott> http://sprunge.us/GhYf news ham code (sometime before I added non-bbc feed support)
23:55:09 <monqy> is that a hexham thing
23:55:09 <olsner> monqy: if you're not from finland you're from hexham
23:55:13 <ais523> like "monkey", or slightly differently?
23:55:40 <ais523> monqy: note that the "you" in olsner's statement applies to you specifically
23:55:43 <ais523> not to people in general
23:56:00 <elliott> aha, http://sprunge.us/OYVO is one of the latest versions
23:56:03 <ais523> elliott: what language is that? golfScheme?
23:56:25 <olsner> the generic rule is not that much more complicated though
23:56:39 <ais523> esolang idea: a language that isn't sexp-based, but looks visually the same as Lisp
23:57:21 <ais523> what exactly did news-ham do? and why isn't it here atm?
23:57:30 <monqy> i haven't really decided what pronunciations for "monqy" are acceptiable
23:57:35 <elliott> http://sprunge.us/eXiM god, I forgot how lovely this thing is
23:57:51 <monqy> I was not expecting that
23:57:51 <Gregor> ais523: It was the world's least interesting non-ham-related news bot.
23:57:58 <elliott> ais523: whenever you pinged it, or said "what are the haps my friends", it'd give you a random recent BBC news topic
23:58:13 <ais523> that sounds surprisingly useful for a #esoteric bot
23:58:18 <elliott> ais523: you could also specify various topics which it would filter the result to (basically whatever BBC's feeds had, plus the Onion, plus a few other things) :P
23:59:25 <olsner> http://warpdrive.se/9473 hilarious