00:00:08 <oerjan> oklopol: you're doomed. DOOMED!
00:00:28 <oklopol> :---------------------------------------------------------------------------------O
00:00:51 <oerjan> as would anyone with that kind of nose, mind you
00:13:19 -!- oerjan has quit (Quit: leaving).
00:15:14 <augur> oklopol: ok heres the challenge
00:16:10 <augur> i will design a trivial little universe, with very simple physics, and a small finite number of universe configurations
00:19:09 <augur> ill provide you with causal graphs of these configurations and its your job to come up with a description of the physics governing this little universe
00:25:18 -!- augur has quit (Ping timeout: 260 seconds).
00:30:55 * Sgeo still doesn't see why he shouldn't switch to Haskell for all his needs
00:31:44 <pikhq> Because you should.
00:32:04 <lament> because python is better
00:32:18 <Sgeo> forM_ somelist $ \item -> do
00:32:21 <Sgeo> Has its own charm
00:32:46 <lament> if by charm you mean it looks ugly!
00:33:17 <Sgeo> It's not some magic syntax thing
00:33:41 <Sgeo> Unlike for/foreach in just about every other language
00:33:42 <fax> Sgeo, if/then/else *is* magic syntax, but it shouldn't be
00:33:49 <pikhq> Sgeo: forM_ is quite a bit more general, also.
00:36:48 <Sgeo> You know what I don't like? The emphasis that seems to need to be placed on efficiency
00:37:17 <Sgeo> The trivial quicksort that everyone talks about is apparently the wrong way to do it do to efficiency concerns, or something
00:37:29 <fax> Sgeo -- quicksort sucks
00:37:44 <fax> who needs to sort lists ?
00:37:51 <fax> seriously it's just a waste fo time
00:37:56 -!- charlls has quit (Quit: Saliendo).
00:38:33 <Sgeo> Can you say that about every algorithm where the trivial implementation is inefficient?
00:38:43 <oklopol> i bet i could live for a year without a list of any kind
00:39:06 -!- oerjan has joined.
00:40:00 <fax> Sgeo most everything in haskell is inefficent
00:42:18 * Sgeo wonders how you'd write a NetHack-like game in Haskell
00:42:24 <lament> haskell is for dorks who think they're nerds
00:42:24 -!- Asztal has quit (Ping timeout: 248 seconds).
00:42:35 <fax> Sgeo easy way to find out is to do it!
00:45:12 <Sgeo> There's no nice way to use two different types of STRefs in a single ST monad ins.. whatever it's called, is there?
00:45:27 -!- Slereah has quit (Ping timeout: 260 seconds).
00:46:01 <oerjan> um what do you mean by two different types of STRefs?
00:46:27 <Sgeo> An STRef that holds an Int and an STRef that holds a String, for instance
00:46:50 <oerjan> of course you can. excuse me while i look it up...
00:50:06 -!- Slereah has joined.
00:51:50 <oerjan> !haskell import Control.Monad.ST; import Data.STref; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (s ++ show n)
00:52:21 <oerjan> !haskell import Control.Monad.ST; import Data.STRef; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (s ++ show n)
00:53:07 <oerjan> !haskell import Control.Monad.ST; import Data.STRef; main = runST $ do sr <- newSTRef "1"; nr <- newSTRef 2; writeSTRef sr "n is "; writeSTRef nr 3; s <- readSTRef sr; n <- readSTRef nr; return (putStrLn $ s ++ show n)
00:53:28 <oerjan> yay just three attempts needed </s>
00:54:40 <fax> !haskell "n is 3"
00:55:08 * oerjan suddenly recalls that it was not necessarily safe to use $ with runST
00:55:37 <pikhq> Everything is inefficient in languages other than bits.
00:55:43 <oerjan> the function to run a command in the ST monad
00:55:47 <pikhq> coppro: runST :: St a -> a
00:56:33 <oerjan> and that type magic means it has varied whether you could use it with $
00:56:45 <oerjan> runST :: (forall s. ST s a) -> a
00:57:02 -!- Slereah has quit (Ping timeout: 260 seconds).
00:57:22 <Sgeo> I'm still confused about the forall. I know why it's there, but not what it oes
00:58:51 <oerjan> i suppose it ensures that two different invocations of runST can never know that they have the same s, and so are type incompatible and not confused
00:59:17 <Sgeo> That doesn't teach me what forall. is supposed to mean
00:59:33 <pikhq> oerjan: No, forall is not uniqueness typing.
00:59:45 <oerjan> pikhq: i didn't say that
00:59:54 <oerjan> s is a type, not a value
00:59:57 <Sgeo> There is Lady Gaga behind this window
01:00:32 <oerjan> Sgeo: the thing passed to runST must be a value that is polymorphic for _all_ possible s
01:02:46 -!- Slereah has joined.
01:03:54 <pikhq> The "s" must inherently come from runST, and cannot come from anywhere else, because of that forall. So, runST is pure.
01:04:07 <pikhq> Instead of being unsafePerformIO.
01:05:59 <oerjan> Sgeo: afaict the ability to use different types for your STRef's in an ST invocation is precisely how ST _differs_ from State. if you had only one type you would be able to use State with a map or something instead to simulate your refs. but ST with several types cannot be implemented in pure haskell.
01:06:42 * Sgeo still doesn't grok how State is implemented in pure Haskell
01:07:01 <oerjan> well at least you can read the definition
01:07:20 <pikhq> Sgeo: The State monad simply keeps track of a single value called a "state" and threads that around.
01:07:43 <oerjan> newtype State s a = State { runState :: s -> (a, s) }
01:07:44 <Sgeo> How does get get a hold of that thread, if it's type is State a?
01:08:22 <pikhq> You pass runState the initial state.
01:08:48 <pikhq> And "modification" of the state is actually replacing the state with an entirely different one.
01:09:03 <pikhq> (note: compiler may freely replace it with actual modification at will)
01:09:19 <Sgeo> And how is get defined, exactly?
01:09:39 <oerjan> instance MonadState s (State s) where get = State $ \s -> (s, s) put s = State $ \_ -> ((), s)
01:09:53 <oerjan> (line breaks got elided)
01:10:09 <oerjan> instance MonadState s (State s) where get = State $ \s -> (s, s); put s = State $ \_ -> ((), s)
01:11:02 * Sgeo needs a tutorial
01:11:28 <oerjan> so get is a State s s value that takes the threaded state and uses it _both_ for the returned value and the next threaded state
01:11:33 <coppro> oerjan: are those supposed to be uncurried?
01:11:50 <oerjan> get takes no arguments
01:12:16 <oerjan> (unless you unwrap the type first)
01:12:22 <Sgeo> What does the State function do?
01:12:36 <Sgeo> I know that mich
01:12:43 <pikhq> ... That's what it does.
01:12:49 <pikhq> It constructs a new value.
01:13:26 <oerjan> it builds an action in the State monad from a function describing how the threads the state and produces a result
01:13:42 <Sgeo> So get is something that would have >>= before it?
01:13:49 <Sgeo> As opposed to the more usual >>?
01:14:04 <oerjan> apart from type, an action in the State monad _is_ just such a function
01:14:21 <oerjan> nope, get has no function arguments as an action
01:14:30 <oerjan> put, on the other hand, does
01:15:04 <Sgeo> So get just gives the monad a function to execute?
01:15:07 <oerjan> put s is an action that ignores the old state and uses s as the new one
01:15:33 <oerjan> Sgeo: _every_ State monad action is just a function wrapped in a State constructor
01:17:30 <oerjan> and runState does nothing other than unwrap that constructor again. it's there for type purposes only.
01:19:23 -!- oklopol has quit (Read error: Connection reset by peer).
01:34:31 -!- wareya has quit (Remote host closed the connection).
01:47:25 <Sgeo> I keep seeing OCaml being suggested as a stepping stone to Haskell.
01:47:34 <Sgeo> Does that mean for me, OCaml would be a step backwardsa?
01:49:03 <oerjan> well ocaml does have some interesting features not in haskell
01:49:58 <oerjan> like an object system but still with type inference, and an ML-like module system with functors. and better records (haskell's are generally admitted to be awful)
01:51:41 <oerjan> so it might be good to take a look at it still
01:52:21 * Sgeo shouldn't be looking at anything but C# right now
01:52:27 <oerjan> of course for me ocaml _was_ a stepping stone to haskell, so i haven't used it for years
01:52:47 <oerjan> you might look at F# which i hear is descended from ocaml
01:53:16 <oerjan> but i also think it lacks some of those interesting features
01:53:30 <oerjan> while being .NET compatible
01:55:01 <fax> Sgeo ugh no way
01:55:22 <Sgeo> fax, project, with a deadline tomorrow
01:55:30 <Sgeo> Haven't done a single line of code for it today
01:55:33 <fax> @00:47 < Sgeo> Does that mean for me, OCaml would be a step backwardsa?
01:58:02 <Sgeo> You know, I tell my dad that there are people online much smarter than me, and he doesn't believe me
02:09:13 -!- mibygl has joined.
02:19:01 -!- Halph has joined.
02:19:51 -!- coppro has quit (Disconnected by services).
02:19:57 -!- Halph has changed nick to coppro.
02:21:09 -!- cheater2 has quit (Read error: Connection reset by peer).
02:21:41 -!- cheater2 has joined.
02:40:03 -!- cal153 has joined.
02:47:26 -!- jcp has joined.
03:01:40 <Sgeo> In Haskell, there always seems to be the Haskell way, and the fast way
03:02:15 <oerjan> i hear there also an intersection, known as fusion :)
03:02:19 <Sgeo> It's really starting to get on my nerves, tbh
03:02:40 * Sgeo should be thinking in C# right now
03:10:58 -!- clog has joined.
03:10:58 -!- clog has joined.
03:18:24 -!- augur has joined.
03:19:26 <mibygl> Wayat? Wayat? Wayat? Wayat?
03:19:34 <mibygl> Daygo! Daygo! Daygo! Daygo!
03:43:14 -!- mibygl has quit (Ping timeout: 252 seconds).
03:58:14 -!- zzo38 has joined.
03:59:17 -!- Asztal has joined.
03:59:37 -!- zzo38 has quit (Remote host closed the connection).
03:59:56 * Sgeo has had an incredibly unproductive day today
04:13:48 -!- oerjan has quit (Quit: Good night).
04:26:14 <Sgeo> (I don't know how to say yes in Lojban, so I said it in Esperanto)
04:32:29 * pikhq suggests you learn Japanese
04:34:19 <Sgeo> My computer professor seems to think I know a lot of programming languages
04:34:28 * Sgeo really only knows most on a superficial level
04:40:19 <fax> Sgeo every time I have to hand in computer work I get strange compliments about how advanced it is .. even when I try not to bed
04:40:42 <Sgeo> Why would you bother trying not to be advanced?
04:42:14 <fax> because I don\t like it when they tell me that :<
04:44:25 * Sgeo loves being way ahead of everyone else
04:44:50 * Sgeo doesn't love the fact that there's a deadline TOMORROW, it's almost midnight, and I haven't done a single worthwhile thing today.l
04:45:10 <coppro> what's the assignment?
04:45:25 <Sgeo> coppro, project that I've been talking about for the past few months
04:45:43 <coppro> and haven't paid attention
04:46:04 <Sgeo> coppro, game that I'm making with a few other people [only one other programmer]
04:46:16 <Sgeo> It's on the AW platform, so it's not as much work as it sounds, but still
04:46:42 <Sgeo> The um.. financer, I guess, is giving us some stuff, but wants to see results
04:46:44 <coppro> is the deadline the due date, or a partway-through thing
04:46:54 <Sgeo> partway-through
04:47:03 <coppro> and I presume you aren't there yet?
04:47:29 <Sgeo> Fairly close, but if the person's expecting 100%, it's not happening
04:48:08 <Sgeo> Anyways, I'm going to restart the computer, and hopefully that will leave a clean slate to let me focus
04:49:49 <coppro> let me give you a piece of advice
04:49:55 -!- Sgeo_ has joined.
04:50:05 <coppro> do not turn on IRC when you reboot, unless its necessary for your work
04:50:10 <coppro> if it is, join only the necessary channesl
04:50:55 -!- Sgeo_ has quit (Read error: Connection reset by peer).
04:52:47 -!- Sgeo has quit (Ping timeout: 260 seconds).
04:58:29 -!- Sgeo has joined.
04:59:04 -!- fax has quit (Quit: Lost terminal).
05:03:13 -!- Asztal has quit (Ping timeout: 265 seconds).
05:21:25 <augur> so, who wants to play with universes? :)
05:22:38 <Sgeo> I think I tend to seek 12 different tutorials for things
05:23:21 <Sgeo> Also, I've noticed something: I can accept learning a language because I have to. Such languages [C#, LSL] are treated as tools
05:23:54 <Sgeo> Other languages [Python, Ruby, Haskell, Scheme], it feels like they're all competing for my affection. It's as though I'll only allow myself to truly love one language.
05:32:48 -!- pikhq has set topic: This topic was correct once | Last topic change: 0 Anno Domini | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
05:37:38 <Sgeo> If Haskell can't do state, then surely it isn't Turing Complete?
05:38:21 <augur> sgeo, it can simulate state!
05:38:29 <augur> like the lambda calculus can!
05:38:43 <Sgeo> What does Calculus have to do with anything?
05:39:00 <pikhq> Sgeo: It can do more than simulate state.
05:39:13 <pikhq> ST is entirely imperative. It is also entirely pure.
05:39:14 <Sgeo> /ctcp pikhq time
05:39:26 <coppro> Sgeo: uh, please tell me that you haven't been hanging out in here for months while never once hearing of lambda calculus
05:39:30 <Sgeo> I thought Haskell can't do imperative
05:39:53 <augur> not calculus as in newton/leibniz
05:39:55 <augur> a "calculus" is a means of calculating something.
05:40:00 <pikhq> Sgeo: Well, you see, it only pretends to. With this "monad" bullshit.
05:40:09 <pikhq> Named after Monad Leibniz.
05:40:40 -!- wareya has joined.
05:41:24 <Sgeo> So, this Monad fellow.. he invented math and computers?
05:41:28 <pikhq> Used as follows: let Monad M = new template<Monad M <new template>> M(this); M.bind.return.imperative( // What follows is C++ code.
05:41:49 <pikhq> The syntax was chosen, of course, to be compatible with C++'s most brilliant design principles.
05:42:07 <augur> is SGEO being full of shit? XD
05:42:12 <pikhq> Oh, also. What follows after "//" is not a comment.
05:42:20 <pikhq> augur: The day is most certainly not 4-01.
05:42:31 <pikhq> And such a day has in no way any significance.
05:43:03 <augur> well! one never knows
05:43:18 <augur> i dont know Sgeo much
05:43:33 <augur> i also dont participate in april fools, so it never crosses my mind
05:44:14 <Sgeo> In all seriousness, there should be an esolang based on pikhq's "code"
05:44:31 <Sgeo> [In all full seriousness, I always say that there should be an esolang]
05:44:37 <wareya> I tried five fucking different floppy drives
05:44:41 <wareya> and not a single one worked
05:45:02 * Sgeo misread that as "fucking five". For some reason, AFD is making my mind act drunk
05:45:02 <pikhq> Hmm. The SCP foundation has had a breech. It would seem that today is a good day to die.
05:55:52 <Sgeo> btw, coppro, I've been here for years
05:56:05 <Sgeo> At the latest, since late 2007, when I got started on PSOX
06:01:39 -!- Oranjer has left (?).
06:03:43 -!- wareya has quit (Ping timeout: 240 seconds).
06:10:54 <Sgeo> Not working for me in Chrome, but still
06:11:06 -!- wareya has joined.
06:16:19 <pikhq> Doesn't work in Firefox.
06:16:57 -!- MizardX has quit (Ping timeout: 276 seconds).
06:27:06 * Sgeo is doing April Fool's stuff instead of trying to get this stuff done :(
06:28:01 <coppro> Sgeo: /quit, close your browser, reopen your browser, open exactly those pages which are required for your work
06:28:12 <Sgeo> Not going to /quit
06:28:31 <Sgeo> I need people to talk to
06:29:02 <coppro> then /part out of every channel except the ones related to your work
06:29:09 <coppro> you do not need people to converse with casually
06:31:45 <Sgeo> Can I talk to you while I work?
06:32:07 <Sgeo> I just had a semi-revelation: I don't need to actually have the bot do anything for this part
06:32:11 <Sgeo> It's pure in-AW code
06:32:23 <Sgeo> Except for persisting it, but that could be a separate part of the bot
06:43:16 * Sgeo feels like he's cutting corners by doing this
06:43:37 <Sgeo> Also, I did kind of take pikhq's statement as permission to talk casually in here
06:53:55 <Sgeo> For all I know, I have nothing to do, and the guy will be satisfied as-is
06:54:06 -!- metaphlex has joined.
07:03:50 -!- tombom has joined.
07:04:04 <Sgeo> I should at least add the mechanism for the bot to "click" items
07:05:10 -!- metaphlex has quit (Quit: Leaving).
07:06:04 -!- rapido has joined.
07:07:26 -!- rapido has left (?).
07:15:03 * Sgeo decides that he'll just write a report on the state of the bot, then go to sleep
07:39:21 -!- kar8nga has joined.
07:49:24 -!- tombom has quit (Quit: Leaving).
07:50:03 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:30 -!- kar8nga has quit (Remote host closed the connection).
08:18:37 <Sgeo> Hah! This small drop of code worked perfectly the first time!
08:26:16 * coppro wonders if that sale was real or if I'm going to get an April Fools' package
08:33:47 * Sgeo writes a "State of the Bot Address"
08:34:16 * Sgeo hopes that this is enough to convince the person funding this that enough was done so far
08:35:47 <coppro> http://www.youtube.com/watch?v=WccS6q8Mo-U&feature=channel&textp=fool
08:37:12 <Sgeo> flip=1 no longer works?
08:38:09 <Sgeo> Or, what was the thing to flip it?
08:38:16 <Sgeo> Last year or something
08:40:36 <Sgeo> They're reviving Virgle
08:42:36 <Sgeo> "And Project Virgle, our co-venture with Richard Branson and Virgin to launch the first permanent human colony on Mars, will henceforth be known as Project Vireka."
08:43:12 <coppro> http://googleblog.blogspot.com/2010/04/different-kind-of-company-name.html
08:44:33 <Sgeo> Is the death of star ratings on YouTube for real or Apr1st?
08:45:44 <coppro> signs point to permanent
08:45:55 <coppro> though one can never tell with Google
08:46:32 <Sgeo> Google tends to be more "nope, it wasn't April 1st joke after all"
08:46:39 <Sgeo> Then again, that's coming from one data point
08:47:41 <coppro> I also like the units of measure on the search page
08:48:17 <Sgeo> Maybe someone was using that information for something important! And now they just screw it up?
08:48:40 <coppro> "Whatever the outcome, the conclusion was clear: we aren't in Google anymore."
08:49:04 <Sgeo> lol; I think I missed that
08:52:14 <coppro> it was in the blog post I just linked
08:54:28 <Sgeo> coppro, I know, I read it before, and failed to notice that line
08:54:56 <Sgeo> Also, this "wear blue for autism on April 2nd" stuff is backed by racing4autism, which links to Autism Speaks and Generation Rescue
08:57:32 -!- lereah_ has joined.
09:29:11 <augur> the youtube stuff is awesome
09:30:06 <augur> i like the cosmonauty textp XD
09:32:36 -!- coppro has quit (Ping timeout: 276 seconds).
09:34:14 <myndzi> the ascii youtube video thing has actually been around a while
09:34:20 <myndzi> it was some other site that would do it
09:34:29 <myndzi> i like that youtube brought it in
09:36:23 <fizzie> For the DIY folks, it's pretty much always been possible to just plug a youtube get_video URL into mplayer, and use either the aalib or libcaca text-based video-out drivers.
09:36:24 -!- myndzi\ has joined.
09:39:14 <fizzie> Also for some reason on this work-workstation there's no TEXTp mode visible. Aw.
09:39:46 -!- myndzi has quit (Ping timeout: 264 seconds).
10:48:32 <Ilari> Does libcaca support 256-color mode? :-)
10:50:00 -!- Tritonio_GR has joined.
10:50:39 <fizzie> Ilari: I have a feeling it does, but I'm not completely certain.
10:51:30 <fizzie> Ilari: The web page just says "2048 available colours (some devices can only handle 16)". (I'm not sure where they have 2k colours... maybe using the "direct" X11 output, I think it had one too.)
10:51:50 -!- Tritonio_GR has quit (Client Quit).
10:52:08 <fizzie> Yes, there's ncurses, slang, x11 and gl drivers in it.
10:58:01 <Ilari> All kinds of "insane transports" and "insane platforms" are fun to do as an joke...
10:59:45 <Ilari> I haven't done any really crazy combos... I think the craziest was SSH inside SSH...
11:00:32 <Gregor> I remember running X11 over aalib once, don't recall what the middle layer that made that possible was though.
11:00:49 -!- Tritonio_GR has joined.
11:01:39 <Ilari> I once got Quake II using aalib by mistake...
11:02:10 -!- Tritonio_GR has quit (Client Quit).
11:03:42 <Gregor> Tritonio doesn't like that.
11:05:20 <Ilari> (SDL autofallbacks video drivers...)
11:05:23 <fizzie> Ascii-Quake never was much fun, but we spent a while playing networked 0verkill -- http://artax.karlin.mff.cuni.cz/~brain/0verkill/ -- which was pretty fun for a while.
11:15:44 -!- cal153 has quit.
11:16:29 -!- Tritonio_GR has joined.
12:11:15 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
12:19:59 -!- Tritonio_GR has joined.
12:24:25 -!- oerjan has joined.
12:25:07 <oerjan> dammit and here i thought the topic would be correct today :(
12:25:39 <oerjan> come to think of it, this might not be the day to expect such a thing
12:40:26 -!- rodgort has quit (Quit: Coyote finally caught me).
12:42:06 -!- oklopol has joined.
14:05:08 -!- oerjan has quit (Quit: leaving).
14:26:33 -!- Deewiant has quit (Remote host closed the connection).
14:26:56 -!- Deewiant has joined.
15:03:54 -!- oklofok has joined.
15:04:38 -!- oklopol has quit (Ping timeout: 240 seconds).
15:28:56 -!- MizardX has joined.
15:36:31 -!- FireFly has joined.
15:47:56 -!- BeholdMyGlory has joined.
15:53:31 -!- MigoMipo has joined.
15:55:23 -!- charlls has joined.
15:58:52 -!- lereah_ has quit (Remote host closed the connection).
16:12:23 -!- Asztal has joined.
16:26:25 -!- oklofok has quit (Ping timeout: 248 seconds).
16:39:59 -!- oklopol has joined.
16:45:57 -!- oklofok has joined.
16:47:25 -!- oklopol has quit (Ping timeout: 246 seconds).
16:55:08 -!- KingOfKarlsruhe has joined.
16:55:21 -!- cheater2 has quit (Ping timeout: 258 seconds).
16:57:49 <AnMaster> hm xkcd did a very nice thing for today
17:00:51 -!- cheater2 has joined.
17:01:17 -!- cheater2 has quit (Read error: Connection reset by peer).
17:01:35 -!- cheater2 has joined.
17:04:24 -!- jcp has joined.
17:12:39 -!- tombom has joined.
17:44:13 -!- augur has quit (Ping timeout: 264 seconds).
17:50:29 <AnMaster> hah at the units in google's search result
17:50:55 <AnMaster> Results 1 - 10 of about 1,810,000,000 for google. (0.14e+43 Planck times)
17:58:02 -!- cal153 has joined.
17:58:37 -!- zzo38 has joined.
17:59:54 -!- kar8nga has joined.
18:00:23 <Slereah> Must be a google US exclusive prank
18:00:36 <AnMaster> Slereah, but I use google.com normally
18:00:51 <Slereah> I do too, but it switches automatically to .fr
18:00:52 <AnMaster> just a link near the bottom of the front page
18:00:57 <zzo38> Some people made the "Check for brainwave activity" code as short as 10 bytes in shell scripts, I cannot quite figure it out but I did reduce it to 12 bytes. After 10 days I can figure out what it is
18:01:01 <Slereah> I hate it when softwares try to second guess me
18:02:02 <Slereah> There's a "post to facebook" option on the post window for april fool
18:02:16 <AnMaster> Slereah, oh and maps.google.com.au gives directions in AU slang
18:02:32 <AnMaster> "Turn a smidge left when you get to South Western Mwy
18:02:33 <AnMaster> Ya might have to cough up some cash along here"
18:02:58 <AnMaster> Slereah, still waiting for the RFC
18:04:28 <zzo38> Will there be a fool RFC this year?
18:04:48 <zzo38> Will INTERCAL be released this year?
18:05:36 <zzo38> RFC is short for "Request For Comment"
18:06:01 <zzo38> It is usually a specification for some internet protocol or something like that. But it can sometimes describe other stuff, too
18:07:32 <AnMaster> and there is usually joke ones on 1 April
18:07:43 <AnMaster> Slereah, are you serious about never having heard about RFCs?
18:07:57 <AnMaster> like the IRC RFC, 14xx (forgot the last two digits)
18:08:48 <AnMaster> Slereah, IP, TCP, HTTP and pretty much every other common non-vendor-specific protocol is specified in one (or more) RFC(s)
18:11:13 * Sgeo pulled a fax earlier, maybe Slereah's doing the same?
18:13:58 <oklofok> hello everyone, this morning i woke up to find i had turned into seven monkeys
18:14:25 <oklofok> and only three of those monkeys were virgins
18:19:36 <lament> congrats, you're 4/7 less of a virgin than before
18:20:16 <zzo38> Hello, this moring I woke up to find out that my bed was on the ceiling
18:20:27 <zzo38> And I had eight eyes, just like my D&D character does
18:20:36 <zzo38> But then I realized I was still sleeping
18:20:58 <oklofok> lament: i can't do the math do you mean i was a virgin before or that i wasn't or what?
18:21:03 <AnMaster> * Sgeo pulled a fax earlier, maybe Slereah's doing the same?
18:21:21 <AnMaster> oklofok, how many were using typewriters?
18:21:25 <Sgeo> AnMaster, I convinced at least two people that I was more of an idiot than I am
18:21:30 <oklofok> he's referring to the time fax said she didn't like haskell
18:21:37 <AnMaster> oklofok, this is of uttermost importance!
18:21:44 <oklofok> the time she said she doesn't know haskell
18:22:06 <AnMaster> Sgeo, wow. That would be like at absolute zero then?
18:22:18 <lament> oh, today is 1st of april, which means we can all lie to each other
18:22:32 <AnMaster> lament, why should I trust that?
18:22:48 <lament> but today is really the 1st of april
18:23:03 <AnMaster> lament, go to xkcd and type date into the javascript shell on that page
18:23:06 -!- augur has joined.
18:23:20 <lament> using xkcd in an argument instantly disqualifies you
18:23:44 <zzo38> Match 32? My calendar says it's Arch 42 and a half.
18:24:11 <AnMaster> lament, har. But I quite liked his unix like shell that he remade the front page into today
18:24:26 <Sgeo> It has an IRC client
18:24:45 <AnMaster> Sgeo, what network does it go to?
18:24:58 <Sgeo> Type irc AnMaster or something
18:25:11 <augur> i think xkcd should stick with this theme forever.
18:25:15 <Sgeo> Also, `find kitten` is fun
18:25:19 <zzo38> I just tried the xkcd shell. I typed "pwd" and it responded with "You are in a maze of twisty passages, all alike."
18:25:50 <Sgeo> sudo apt-get upgrade
18:27:32 <AnMaster> just tells you everything is fine or something (forgot exact message)
18:28:00 -!- cheater2 has quit (Ping timeout: 245 seconds).
18:28:55 -!- cheater2 has joined.
18:29:13 <Sgeo> AnMaster, not if you're using Firefox < 3, or IE
18:30:04 <Sgeo> AnMaster, look
18:32:13 <AnMaster> Sgeo, and I doubt my other installed browsers could check it
18:32:30 <AnMaster> (because they are text only and don't support javascript)
18:32:35 <AnMaster> Sgeo, as for "look" yes I saw that
18:32:52 <AnMaster> trivial to solve that once you realised that you were already carrying the lamp
18:33:52 -!- augur has quit (Ping timeout: 258 seconds).
18:35:30 -!- cheater2 has quit (Ping timeout: 245 seconds).
18:39:41 -!- cheater2 has joined.
18:43:42 -!- coppro has joined.
18:47:49 -!- augur has joined.
19:04:27 -!- augur has quit (Ping timeout: 260 seconds).
19:06:11 -!- Tritonio_GR has quit (Ping timeout: 276 seconds).
19:09:01 -!- oklofok has quit (Ping timeout: 252 seconds).
19:10:11 -!- adam_d has joined.
19:18:46 -!- cheater2 has quit (Ping timeout: 264 seconds).
19:22:45 -!- Tritonio_GR has joined.
19:24:15 -!- cheater2 has joined.
19:36:51 <zzo38> When I write a Linux distribution I will have to do some things like, "wg" is like "wget -O -", "e" is "echo", "en" is like "echo" but each parameter is output to a separate line, and so on
19:43:58 <zzo38> I should also do it so that if the window manager's key is pushed and released by itself, it will show/hide mouse pointer (moving the mouse also shows the pointer)
19:45:36 <Gregor> So essentially, you think Linux would be better if it was cryptically difficult to use.
19:45:59 <pikhq> Those are of great confusion.
19:46:08 <zzo38> Well, this is how I would make it, anyways. There would be more two letter commands and one letter commands, for one thing.
19:46:12 <pikhq> And I note that I only recently started using a window manager that reparents.
19:46:40 -!- oklopol has joined.
19:46:46 <zzo38> I would probably write a new shell, too, with some new features and some removed, and so on
19:46:52 <pikhq> coppro: Most window managers reparent windows so they can draw title bars.
19:47:00 <pikhq> And window borders.
19:48:19 <pikhq> Ratpoison leaves the parent as root, because who needs graphics?
19:48:26 <pikhq> That's not why you're running X, is it, silly?
19:49:23 <zzo38> And I also have to make it be: All window manager's functions are accessed with the window manager's key and combination with keyboard and/or mouse, except for clicking the title bar and task bar, which can be done without. Which key is the window manager's key could be configured, and can be indicated "wm-" in emacs notation
19:49:57 <zzo38> For example, wm-t could show/hide taskbar and wm-tab could switch next window, and so on, like that.
19:50:12 <zzo38> It should hide the title-bar for maximized windows, so therefore I will make it to do tha.
19:50:36 <pikhq> zzo38: That sort of thing is fairly common. I assume you'd go a bit further in that you would make *all* functionality keyboard-accessible, which few WMs use, but... Yeah.
19:50:50 <pikhq> Could quite reasonably just do a few minor patches against Fluxbox for that.
19:51:43 <zzo38> Yes, ake *all* functionality keyboard-accessible. Although, a few things would work with the mouse also because some things might work better with it, for example if you want to size/move a window or select window or stuff graphically (there is three mouse buttons, and also modifier keys, so there is many combinations)
19:52:59 -!- kar8nga has quit (Ping timeout: 276 seconds).
19:52:59 <pikhq> As I said, fairly reasonable, and it would probably not take much work to add to Fluxbox.
19:53:07 <zzo38> So, ALT+mouse won't drag a window unless ALT is the window manager's key. And even if it is, you have to use the middle mouse button.
19:53:23 <zzo38> Because wm key + left mouse button would be used to resize windows instead.
19:54:11 -!- sshc has quit (Quit: leaving).
19:55:57 <zzo38> We don't need any fancy gradient title-bars and 3-D dialog boxes and stuff like that. We don't need any icons or buttons on the title-bar either, the mouse already has three buttons!
19:57:10 * Sgeo is putting his project away for the rest of today, and all of tomorrow
20:01:39 -!- hiato has joined.
20:01:59 <zzo38> Many two-letter and one-letter command names are not used yet in UNIX, and some things I don't agree how they work (such as wget sending output to the file instead of to stdout, all programs should receive their input from stdin and send their output to stdout, and then you can use < > to redirect to files or | to pipes to other programs)
20:12:39 <zzo38> And if "pm" is the package manager, you could install an external package with "wg http://example.org/pm/web-browser | pm" or something like that.
20:13:59 <zzo38> Or, probably more like: wg http://example.org/pm/web-browser | s pm -I
20:15:16 -!- adam_d_ has joined.
20:18:08 -!- adam_d has quit (Ping timeout: 265 seconds).
20:20:05 <zzo38> When using a package manager, the path to the install files should be send to stdout and the status information to stderr
20:20:31 <Gregor> Y'know what would be nice? A soundfont for strings that didn't suck UTTERLY.
20:21:25 <coppro> somewhere over the rainbow
20:21:51 <Gregor> Filthy, disgusting lies.
20:23:19 -!- hiato has quit (Quit: You've been a wonderful audience).
20:23:32 -!- ehirdiphone has joined.
20:23:47 <Gregor> Actually, what would be really wonderful is a string quartet that would play what I wanted them to for no money :P
20:24:45 <ehirdiphone> So hey, I've been discharged from the unit. After Wednesday's meeting they decided they could find no problem and that my admission was an error.
20:25:13 <Sgeo> Hi ehirdiphone. I wish I was certain that that wasn't.. yeah
20:26:23 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
20:27:09 -!- dougx has joined.
20:27:36 * Sgeo wonders if xkcd.com works on the iphone
20:27:43 <ehirdiphone> I'm too tired to even go on the computer. Tomorrow.
20:28:19 <Sgeo> You can't check xkcd.com on the iPhone?
20:28:51 <Sgeo> http://xkcd.com
20:29:26 <Sgeo> Not talking about the comic
20:29:31 <ehirdiphone> Anyway, everything works on the iPhone. Except Flash.
20:31:30 * Sgeo is a Reddit admin!
20:31:57 <Sgeo> No, globally [mods are what's by subreddit, btw]
20:33:33 <Sgeo> Wait, why can't I upvote to infinity anymore?
20:33:43 <Sgeo> Oh, I don't have the admin thing active
20:34:10 <ehirdiphone> I should have known: I wondered why I never saw his posts or comments, if he is so prominent.
20:35:28 <Sgeo> YouTube has a new TEXTp mode
20:36:00 <Deewiant> http://youtube-global.blogspot.com/2010/03/textp-saves-youtube-bandwidth-money.html
20:37:32 <Sgeo> Epigram programming language?
20:41:19 <zzo38> The next feature they need to add is the one to automatically print out transcripts of videos, without requiring Flash
20:41:44 <zzo38> If they had that feature I would use it.
20:43:26 <ehirdiphone> Sgeo: Yes; and proof assistant. The development of its second version is going at a leisurely pace.
20:47:32 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
20:47:53 -!- ehirdiphone has joined.
20:48:18 -!- rodgort has joined.
20:48:21 <ehirdiphone> With some sort of drawing support, so I can write stuff and have it unicodified.
20:49:22 <lament> the iphone needs to be softer and more porous
20:49:47 <lament> for a more comfortable tactile experience and better retention of fecal matter
20:50:04 <Sgeo> Saw some article about "Youngest iPhone developer?" Apparently the person's 14
20:50:15 <Sgeo> Somehow, I don't think that sort of thing impresses ehirdiphone
20:51:27 <ehirdiphone> Inductive setoid : * := over : Pi (A:*). Pi (R:BinaryRelation A). setoid
20:51:30 <lament> after extensive experimentation, i have to say i still find regular 2-ply paper preferrable to any version of the iPhone
20:53:02 <ehirdiphone> Inductive setoidV : * -> * -> * := mask : Pi (A:*). Pi (R:BinaryRelation A). A -> setoidV A R
20:54:38 <ehirdiphone> Function setoidT : Pi (S:setoid). * := match S with over A R => setoidV A R end.
20:56:21 <ehirdiphone> Type rational : * := setoidT (over (natural x natural) (too lazy))
20:56:23 <fizzie> ehirdiphone: Coincidentally, the N900 repository has texlive.
20:56:48 <fizzie> I can't imagine it being very friendly to use.
20:58:25 <ehirdiphone> Inductive setoid : * := over : Pi (A:*). BinaryRelation A -> setoid.
21:00:14 <ehirdiphone> Except you need to add that A -> B has cardinality \aleph_0 iff B has. I think.
21:00:46 <ehirdiphone> Or otherwise... Hmm, more than the cardinality of B.
21:02:03 <ehirdiphone> Can't prove it, requires a bijection from A->B to naturals or finite set (naturals mod some N)
21:03:50 <ehirdiphone> Hmm. Does INF -> FIN really have infinite cardinality?
21:09:46 -!- zzo38 has quit (Remote host closed the connection).
21:11:57 <ehirdiphone> Type theory has really boring cardinalities
21:13:45 -!- adam_d_ has changed nick to adam_d.
21:19:39 <ehirdiphone> It does mean that the biggest thing can be constructed trivially, though β Inductive N : * := z : N; s : N -> N.
21:20:29 <coppro> red oval, green oval, blue oval
21:20:39 <ehirdiphone> I guess there are only countably infinite types.
21:21:49 <ehirdiphone> bijections between functions/types tofro naturals
21:22:51 <ehirdiphone> For functions, metajustification: if you can analyse functions' in/out pairs on countably infinite sets it can never exceed their cards
21:23:12 <ehirdiphone> For sets, too lazy to come up with a real justification
21:23:43 <ehirdiphone> Actual implementation for functions could be serialise ast. It doesn't matter.
21:27:59 -!- sshc has joined.
21:37:36 -!- augur has joined.
21:40:02 -!- oerjan has joined.
21:41:50 <Sgeo> ehirdiphone, can you read email on that thing?
21:42:12 <ehirdiphone> pow S := sum T, forall x:T, x in T -> x in S
21:43:47 <Sgeo> If you want, read the email I sent to agora BUS: Re: In Honor of B
21:43:56 <Sgeo> Or just http://pastie.org/private/vv0eusi1ahas50htd7w
21:46:17 <ehirdiphone> pow S := sum T, forall U, (forall x, x in U -> x in S) -> U in T
21:49:53 <oerjan> <lament> for a more comfortable tactile experience and better retention of fecal matter
21:50:27 -!- dougx has quit (Ping timeout: 265 seconds).
21:54:31 <oerjan> 13:11:57 <ehirdiphone> Type theory has really boring cardinalities
21:54:32 <oerjan> 13:12:21 <ehirdiphone> 0 <= card <= \aleph_0
21:54:46 <oerjan> um i thought cantor's proof was constructively valid
21:54:53 <Ilari> Darn, netcat doesn't seem to support IPv6... :-/
21:55:05 <ehirdiphone> Inductive apart (T:*) : T -> T -> Prop := lfer : forall T, forall x:T, forall y:T, (exists P, P x /\ ~P y) -> apart x y
21:55:20 <ehirdiphone> oerjan: Yeah but you cannot construct the reals
21:55:57 <oerjan> ehirdiphone: but (Integer -> Bool) can have no bijection with Integer, or whatever
21:56:35 <ehirdiphone> And all that means is that the comp reals have no cardinality as such
21:56:39 <oerjan> (terminating (Integer -> Bool), of course)
21:57:17 <oerjan> assume you have a bijection b : Integer -> (Integer -> Bool)
21:57:57 <oerjan> then \n -> not (b n n) gives a contradiction
21:58:09 <ehirdiphone> I think fax said something about this it is only metatheoretivally valid
21:58:50 <oerjan> well if (s)he means it in the sense that there _are_ countable models, then that is true of ZFC as well
21:59:05 <oerjan> but there can be no bijection _internal_ to the model
21:59:19 <oerjan> or surjection, for that matter
21:59:36 <ehirdiphone> anyway why is that a contradiction? Of course you have no idea what b does
22:00:21 <oerjan> well for b to be a surjection _means_ : forall f : Integer -> Bool, exists n : Integer such that b n == f
22:00:52 <oerjan> well let f = \n -> not (b n n)
22:03:18 <oerjan> well in ZFC they are of course equal, but here i don't know
22:04:16 <oerjan> i assumed you meant something called the reals in your system
22:04:38 -!- augur has quit (Read error: Connection reset by peer).
22:04:43 <oerjan> it is afaik _meaningless_ to compare cardinalities from ZFC with cardinalities in your system
22:05:01 <oerjan> they're not in the same fundamental theory model
22:05:10 -!- augur has joined.
22:05:15 <ehirdiphone> I wonder what the infinite cardinalities are?
22:05:38 <oerjan> and outside a model, everything can be considered countable if the axioms are (and they must be if things are finite strings)
22:06:03 <oerjan> well cantor's theorem can be iterated of course, to get a sequence of larger sets
22:06:38 <ehirdiphone> The computable reals are definitely smaller than the reals
22:06:42 <oerjan> um i'm talking about something more fundamental than the reals
22:07:06 <oerjan> basically, A^B is _always_ larger than B if A has at least 2 elements
22:09:25 <oerjan> of course not. for infinite cardinalities in ZFC, A^2 always has the _same_ size as A
22:10:10 <oerjan> erm i thought you were still confused about A -> B vs. B -> A
22:10:34 <oerjan> A^B is a notation for (B -> A)
22:11:26 <oerjan> it's intuitive based on cardinalities, |B -> A| = |A|^|B| in ZFC
22:11:53 <ehirdiphone> So maybe type theory "cardsets" β canonical types of a certain card are
22:12:29 -!- augur has quit (Read error: Connection reset by peer).
22:12:42 <ehirdiphone> N mod m (Fin m), N, N -> Bool, (N -> Bool) -> Bool
22:12:46 -!- augur has joined.
22:13:23 <oerjan> it presumably could only look at finitely many N for each function
22:14:13 <ehirdiphone> Admittedly that's propositions, not booleans, but...
22:17:15 <oerjan> it just feels, intuitively, like if your (N -> Bool) -> Bool function does not recognize its argument somehow (and wouldn't something like the halting problem prevent it from doing so in general) then it cannot really do anything better than testing specific N values
22:17:40 <ehirdiphone> (P z \/ ~P z) -> (forall n, (P n -> P (s n)) /\ (~P n -> ~P (s n))) -> (forall n, P n) \/ (forall n, ~P n)
22:21:11 <ehirdiphone> (B (f z) \/ ~B (f z)) -> (forall n, (B (f n) -> B (f (s n))) /\ (~B (f n) -> ~B (f (s n)))) -> Bool
22:22:48 <ehirdiphone> Inductive B : Bool -> Prop := yep : B true
22:23:48 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
22:28:01 -!- augur has quit (Ping timeout: 248 seconds).
22:31:55 <Sgeo> This is the Epigram language?
22:32:41 -!- augur has joined.
22:36:21 -!- adam_d_ has joined.
22:40:14 -!- adam_d has quit (Ping timeout: 265 seconds).
22:40:58 -!- Sgeo_ has joined.
22:44:06 -!- Sgeo has quit (Ping timeout: 265 seconds).
22:49:23 -!- augur has quit (Read error: Connection reset by peer).
22:49:52 -!- augur has joined.
22:54:24 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
23:02:18 <AnMaster> http://tools.ietf.org/html/rfc5841
23:02:53 <oerjan> sorry, you're two minutes too late. i cannot _possibly_ read this now.
23:02:58 <AnMaster> (1 april RFC this year it seems)
23:03:45 <AnMaster> "Packets do not have birthdays, so packets can be marked as surprised when they encounter unexpected error conditions."
23:04:05 <oerjan> AnMaster: it's April 2 now
23:04:23 <AnMaster> oerjan, well sure, but RFC are published in US timezones
23:04:29 <AnMaster> oerjan, also it isn't April 2 in UTC
23:04:47 <AnMaster> in UTC you have two hours - 5 minutes left
23:05:16 <oerjan> that would be _cheating_
23:08:29 -!- FireFly has quit (Quit: Leaving).
23:09:12 -!- FireFly has joined.
23:12:53 -!- charlls has quit (Ping timeout: 258 seconds).
23:18:59 -!- oerjan has quit (Quit: leaving).
23:22:31 -!- EgoBot has quit (Ping timeout: 258 seconds).
23:22:50 -!- tombom has quit (Quit: Leaving).
23:24:03 -!- HackEgo has quit (Ping timeout: 258 seconds).
23:24:53 * Sgeo_ sends AnMaster a few packets with the user mood >:)
23:25:49 <Gregor> Hahahah, Wikipedia's being clever by using misleading wording instead of outright lies :P
23:26:27 <Gregor> "A Japanese multinational conglomerate (headquarters pictured) investigates how some of its customers were accidentally sent back in time to the year 1999."
23:26:36 <Gregor> (Sony investigating the PS3 date bug)
23:26:51 <Sgeo_> Gregor, Wikipedia always does that
23:27:01 <Gregor> Never looked before :P
23:27:22 <Sgeo_> Hulu has a 3d button
23:27:56 <Sgeo_> http://www.hulu.com/internal/confidential/the-initiative-chapter-1
23:40:59 -!- MigoMipo has quit (Remote host closed the connection).
23:47:40 -!- Oranjer has joined.
23:48:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:00:05 -!- oerjan has joined.
00:02:00 -!- Gregor has set topic: History | News: 0 events tunes.org private sector in the beginning of Christ Foundation | http: / / / ~ 2 per year - and through Torah mandelstam. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:06:08 -!- FireFly has quit (Quit: Leaving).
00:14:01 -!- mibygl has joined.
00:14:19 * mibygl generates a text file containing ten web sites' Terms of Service.
00:14:44 * mibygl delimits them with "bork bork bork bork bork"
00:20:41 -!- augur_ has joined.
00:21:18 -!- augur has quit (Read error: Connection reset by peer).
00:21:24 <mibygl> Now I'd like to generate a three-word Markov chain out of this.
00:23:36 <mibygl> I guess three words is too much to ask, so I'm generating a seven-character one instead.
00:24:04 <mibygl> Since the average word contains one and a third characters.
00:27:13 <oerjan> ancient inca god of markov chains
00:32:22 -!- adam_d_ has quit (Ping timeout: 265 seconds).
00:37:19 <mibygl> "B. Types of Service is not changes upon the Ass, and all lawsuits brough the injury, the account integer. If a Products or goods the number of your period, The Roster"
00:45:50 -!- augur_ has quit (Ping timeout: 246 seconds).
00:49:34 <mibygl> TO AGREE TO THESE TERMS, DO NOT CLICK "AGREE," AND DO NOT USE THE SERVICE IN ANY MANNER WHICH CREATES THE IMPRESSION THAT SUCH ITEMS BELONG TO OR ARE ASSOCIATED WITH YOU OR, EXCEPT AS OTHERWISE PROVIDED HEREIN, ARE USED WITH BLPβS CONSENT, AND YOU ACKNOWLEDGE THAT YOU HAVE NO OWNERSHIP RIGHTS IN AND TO ANY OF SUCH ITEMS.
00:58:55 <AnMaster> <Gregor> (Sony investigating the PS3 date bug) <-- link?
00:59:16 <oerjan> that's some nice timing
01:04:46 <oerjan> AnMaster: try reloading now
01:05:25 <AnMaster> oerjan, I got the old version still
01:23:34 <mibygl> Wow, it's surprisingly difficult to create a user from the command line in OS C.
01:23:55 <mibygl> I can't believe that in the 90 versions they've released since OS X, they still haven't fixed that.
01:26:05 <AnMaster> <mibygl> Wow, it's surprisingly difficult to create a user from the command line in OS C. <-- yeah, I heard it is all a chimera that OS .
01:36:17 -!- Asztal has quit (Ping timeout: 248 seconds).
01:42:01 -!- augur has joined.
02:14:21 -!- augur has quit (Ping timeout: 265 seconds).
02:27:26 -!- augur has joined.
02:32:43 -!- augur has quit (Ping timeout: 265 seconds).
02:34:46 -!- adu has joined.
03:05:00 -!- mibygl has quit (Ping timeout: 252 seconds).
03:11:51 -!- augur has joined.
03:19:27 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
03:40:36 -!- jcp has joined.
03:51:21 -!- augur_ has joined.
03:51:42 -!- augur has quit (Read error: Connection reset by peer).
04:01:30 -!- Oranjer has left (?).
04:04:33 -!- augur_ has quit (Ping timeout: 265 seconds).
04:07:57 -!- oerjan has quit (Quit: Good night).
04:42:00 <Sgeo_> Got a wireless mouse!
04:51:42 <Sgeo_> Feels a bit fast though
04:52:01 <Sgeo_> And randomly nonworky
05:10:37 -!- charlls has joined.
05:33:04 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
05:52:56 -!- jcp has joined.
05:57:04 -!- augur has joined.
06:40:14 -!- kar8nga has joined.
06:57:24 <Sgeo_> No one minds if I mutter to myself in the channel, right?
06:58:27 <Sgeo_> Ok. Going to try to work out a sane way to think about AW action scripts to see if it might be TC [given an assumption that TC means you can add more "memory" as needed]
06:59:12 <Sgeo_> So, objects have names, and can, in response to existing, in response to user input, and in response to receiving a signal, send a signal to a name
06:59:23 <Sgeo_> Names do not have to be unique
07:00:46 <Sgeo_> The receiver of a signal can have a timer such that, its "signal done" event occurs some time later. Other objects can interrupt such events and stop them from occuring
07:01:22 <Sgeo_> However, if an object receives a signal, by itself it can't decide "if this I'll do this, otherwise I'll do that"
07:01:38 <Sgeo_> However, names can be changed, and not just by sending and receiving signals
07:01:54 <Sgeo_> I have too much of a headache to think about all of this. I should really just sleep.
07:23:00 -!- MizardX has quit (Ping timeout: 276 seconds).
07:38:22 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:54:32 -!- kar8nga has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:08 -!- lament has quit (Ping timeout: 240 seconds).
08:10:02 -!- lament has joined.
08:21:35 -!- adam_d has joined.
08:48:20 -!- augur has quit (Remote host closed the connection).
08:54:45 -!- adu has quit (Quit: adu).
09:02:36 -!- augur has joined.
09:37:21 -!- lereah_ has joined.
09:51:46 -!- FireFly has joined.
10:02:25 -!- Asztal has joined.
10:12:27 -!- alise has joined.
10:14:07 <alise> 14:31:55 <Sgeo> This is the Epigram language?
10:14:26 <alise> 15:04:05 <oerjan> AnMaster: it's April 2 now
10:14:34 <alise> Then you are very late: 12 am is the end of the fools.
10:16:47 <alise> A dark delimitation.
10:21:36 <alise> so hey, |Sigma x:T, P| = sum x:T, P
10:21:52 <alise> this is i think one of my favourite isomorphisms ... |x op y| = |x| op |y|
10:30:56 <alise> although since we're talking type theory and have no |.| :: Type -> Cardinality
10:30:56 <alise> it's actually more involved
10:30:56 <alise> like |a+b|=|a|+|b| is actually
10:30:56 <alise> hc(a,n) -> hc(b,m) -> hc(a+b, n+m)
10:30:56 <alise> where hc = "has cardinality"
10:30:57 <alise> for instance the statement about sigma would require some sort of function
10:31:11 <alise> ((y:T) -> hc(P[x := y], something))
10:31:22 <alise> where x[y:=z] is variable substitution
10:34:36 <alise> oklopol: but err you know the type theory notation in general right?
10:34:42 <alise> like a+b is Either a b
10:34:57 <alise> a*b is -- cartesian product here -- a pair of a and b (cardinality |a|*|b|)
10:35:26 <alise> (non-dependent) a -> b has cardinality |b|^|a|, but using b^a for that like in set theory is ugly
10:35:32 <alise> because, you know, we like our functions
10:35:40 <alise> and having it all in hugely nested superscripts would be silly
10:36:26 <alise> i wonder what the cardinality of Pi (x:T). S is...
10:36:57 <alise> product (x:T), |S|? if so that would be so perfect
10:37:11 <alise> say cardinality of 3 -> 3
10:37:26 <alise> |3| = 3, obviously
10:38:07 <oklopol> Pi (x:T). S is basically a definition of TxS where i live
10:39:34 <alise> oklopol: yeah but S can include x
10:40:05 <alise> refl : Pi (T : *). Pi (x : T). x = x
10:40:31 <alise> * is type of types smaller than *... I don't want to think about its cardinality right now
10:40:53 <alise> but for a given type T, Pi (x : T). x = x has the cardinality of T...
10:40:55 <alise> but you could have more complex things
10:41:10 <alise> Pi (x : N). Pi (y : N). x = y -> ()
10:41:13 <alise> remember -> is shorthand for Pi so
10:41:20 <alise> Pi (x : N). Pi (y : N). Pi (_ : x = y). ()
10:41:33 <alise> now of course this is the same as Pi (x : N). ()
10:41:34 <oklopol> and to continue my sentence ...it's S^T
10:41:48 <alise> so it certainly isn't the obvious thing
10:42:06 <alise> well not the number
10:42:10 <alise> because it has one value
10:43:59 <alise> \prod_{E:n=m} -- there's only ever 1 or 0 values of type n=m
10:44:53 <oklopol> Pi (x : T). x = x <<< what does this mean, the type of functions that ...?
10:45:11 <oklopol> sorry about the asynchronicity, i'm doing two things at once and i suck at it.
10:45:51 <alise> Pi (x:T).S is like T->S, but the value of the T is bound to x in S
10:46:08 <alise> its cardinality is product (x:T). S which is fitting because the tw are the same notation
10:46:12 <alise> which is just this isomorphism again
10:47:00 <oklopol> so in Pi (x : T). x = x what does = x mean
10:47:44 <oklopol> obviously the cardinality of Pi (x : T). x is 1
10:47:47 <alise> x = x is just nice notation for Eq x x
10:48:00 <alise> for all values x and y of the same type Eq x y is a type
10:48:16 <alise> (it has a more complicated type but ... that is the relevant parts)
10:48:19 <alise> (the rest is just type stuff)
10:48:32 <alise> so if we have a value of type x = y, we know that x and y are completely indistinguishable...
10:48:37 <alise> it's just equality
10:49:01 <alise> so we have m,n : N, and we know that m = n
10:49:03 <alise> so the two must be exactly the same
10:49:10 <alise> so we have \x. f x x refl
10:49:18 <alise> which is exactly the same as f, just with less stupid arguments
10:49:23 <alise> http://1.618034.com/blog_data/math/formula.3405.png
10:49:54 <alise> so the cardinality of functions (n:N) -> (m:N) -> n = m -> ()
10:49:59 <alise> is the same as the cardinality of the naturals
10:50:18 <alise> because the only function of type N -> () is \_.()
10:50:28 <oklopol> Pi n : N . 1 has cardinality |N|?
10:50:35 <alise> the last bit is wrong
10:50:52 <alise> http://1.618034.com/blog_data/math/formula.3406.png
10:50:59 <alise> because 1*1*1*1*... = 1
10:51:16 <alise> note the bold 1 in the |...| denotes the type with one value, tt : 1
10:51:23 <alise> the non-bold 1s are just the regular number 1
10:51:36 <alise> also the product in the |...| denotes dependent functions...
10:51:43 <alise> whereas after it's normal numbery products
10:52:07 <oklopol> so say n : N, then Eq n n is a type? what values are of that type?
10:53:05 <alise> let me just give you the definition in pseudohaskell
10:53:28 <alise> data Eq : forall a, a -> a -> Type where
10:53:37 <alise> refl :: a -> Eq a a
10:53:45 <alise> refl :: (x:a) -> Eq x x
10:54:29 <alise> http://1.618034.com/blog_data/math/formula.3407.png
10:54:33 <alise> generalised for non-1 result types
10:54:48 <oklopol> i thought i know that already, if x is of type a, then Eq a a is a type. i still don't see what things can be of that type
10:54:54 <alise> note that if T = Bool, |T| = 2, so we have 2^N_0, which is the cardinality of the reals...
10:55:00 <alise> actually they're the computable reals for us, but
10:55:17 <alise> if x is of type a, and y is of type a, then Eq x y is a type
10:55:31 <alise> when I restate things it's because you said something that was wrong
10:55:42 <oklopol> x:a -> Eq x x is a type is just a special case of that
10:55:49 <alise> that isn't even true
10:55:53 <alise> that isn't even remotely correct
10:55:56 <alise> Eq :: (A : Type) -> A -> A -> Type
10:56:05 <alise> refl :: (A : Type) -> (x : A) -> Eq x x
10:56:11 <alise> one is a type one is a value
10:56:15 <oklopol> "if x is of type a, and y is of type a, then Eq x y is a type" <<< i just instantiate this with x and y the same object
10:56:18 <alise> and Eq x y is a type for ALL x and y
10:56:24 <alise> oklopol: but it's IMPORTANT
10:56:29 <alise> because if they had to be the same it would be a useless type
10:56:31 <oklopol> and i get "if x is of type a, and x is of type a, then Eq x x is a type"
10:56:46 <oklopol> IT'S A FUCKING USELESS TYPE ANYWAY BECAUSE YOU HAVEN'T TOLD ME WHAT IT CAN CONTAIN
10:56:51 <oklopol> god you suck at explaining things
10:56:53 <alise> <alise> refl :: (A : Type) -> (x : A) -> Eq x x
10:56:56 <alise> I have; several billion times.
10:57:08 <oklopol> i'll ask fax at some point
10:57:17 <alise> I didn't sign up to teach type theory to someone who doesn't know it, so it's no surprise I'm not prepared for it.
10:57:23 <alise> refl does not return a type.
10:57:26 <alise> It returns a value of type Eq x x.
10:57:34 <alise> So is Eq, actually, because types are values. But.
10:57:58 <alise> So we have Eq x y, but only Eq x x is inhabited.
10:58:05 <alise> All the rest are uninhabited, so we can't prove (give a value) them.
11:03:31 <oklopol> yeah okay i see what Eq is now, the haskell does indeed explain it completely
11:04:26 -!- tombom has joined.
11:05:32 <oklopol> so Eq x y is inhabited by ":)" if x = y, otherwise there's no value of that type
11:06:05 <alise> except it's refl not :)
11:06:15 <alise> so obviously if we have m,n:N and m=n, m and n are completely redundant
11:07:49 -!- MigoMipo has joined.
11:35:26 <AnMaster> <alise> 15:04:05 <oerjan> AnMaster: it's April 2 now
11:35:26 <AnMaster> <alise> Then you are very late: 12 am is the end of the fools. <-- ?
11:35:42 <alise> Oh; perhaps it is only UK tradition.
11:35:51 <alise> It certainly is but I assumed it was so elsewhere too.
11:35:55 <AnMaster> I never heard of it before at least.
11:36:06 <alise> Well, it has fallen out of favour in this interblaggy world.
11:36:15 <AnMaster> I thought it went on for the whole day
11:50:40 -!- BeholdMyGlory has joined.
11:58:46 -!- MigoMipo has quit (Quit: Konversation terminated!).
11:59:59 -!- MigoMipo has joined.
12:01:49 -!- MigoMipo has quit (Remote host closed the connection).
12:03:32 -!- MigoMipo has joined.
12:12:26 -!- BeholdMyGlory has quit (Quit: Leaving).
12:12:59 -!- BeholdMyGlory has joined.
12:38:57 -!- oerjan has joined.
12:40:50 -!- kar8nga has joined.
12:54:49 -!- MigoMipo has quit (Remote host closed the connection).
13:05:36 -!- kar8nga has quit (Remote host closed the connection).
13:06:38 -!- alise has quit (Ping timeout: 258 seconds).
13:29:32 -!- alise has joined.
13:34:38 -!- oerjan has quit (Quit: leaving).
13:36:12 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
13:47:26 -!- Asztal has quit (Ping timeout: 265 seconds).
14:18:58 <AnMaster> from kernel changelog (for 2.6.33.2): "We believe this is a secure hole that a none privileged user can crash the system." Interesting, err, word choice.
14:21:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
14:21:41 -!- Sgeo has joined.
14:39:53 <alise> You can access /my/ secure hole hur hur.
14:46:25 * Sgeo wonders how legal it would be to make a language based on the Active Worlds action line stuff
14:51:32 <AnMaster> alise, another interesting sentence from the same changelog: "Fix this by explicitly storing the end of the biggybacked data in the decompressor, and use that to calculate the compressed image size."
14:52:03 <AnMaster> alise, grandma, what a big back you have!
14:52:23 <alise> ALL THE BETTER TO LAY YOU WITH
14:52:42 <alise> I had no idea I was so awesome
14:52:46 <alise> AnMaster: Of course it was!
14:53:09 <AnMaster> as I thought to begin with then
14:57:02 <AnMaster> I have noticed that in the kernel changelog the most awkward English grammar in commit messages seems to be written by *.jp people (according the the email in the author line)
14:57:28 <AnMaster> this is not just in this changelog, but almost every kernel changelog I read so far, which must be quite a large number by now.
14:58:08 <AnMaster> (either that, or Japanese sounding names with an email @intel.com, that is fairly too)
14:59:39 <alise> Yeah; Standard Japanese Programmer English is a strange breed.
15:00:30 <alise> Japanese is very different from English.
15:00:40 <alise> And Engrish is ubiquitous in Japanese culture.
15:01:18 <AnMaster> what about Hollywood movies and such on TV?
15:03:00 <alise> They do everywhere else :-)
15:03:12 <AnMaster> generally they just add text lines at the bottom
15:03:15 <alise> Also I'd say that Japan imports less culture from other countries.
15:03:20 <alise> Probably because we're too busy importing all theirs.
15:04:56 <AnMaster> Someone I know who once visited Germany (for an extended period of time, business stuff iirc) told me that she was bored one day and decided to see a movie at the local cinema. She decided on a Bond movie thinking "oh well, I can always understand the English and ignore the text lines". Unfortunately it turned out it was dubbed.
15:05:06 -!- lament has quit (Ping timeout: 260 seconds).
15:05:19 <AnMaster> In Sweden only movies aimed at children are generally dubbed.
15:05:52 <alise> I suppose you strongly push English there.
15:06:02 <alise> Less so in Germany I would imagine.
15:06:08 <alise> Because people actually speak German ;-)
15:06:22 <alise> Anyway, shoulda pirated it!
15:06:29 <AnMaster> we do generally speak Swedish though :P
15:06:38 <AnMaster> alise, this was during the early 1990s iirc
15:06:45 <AnMaster> so well, that would have been fun
15:06:52 <alise> Hells yeah, ZMODEM!
15:07:31 <alise> "Tarski, one of the early great researchers in set theory and logic, proved that AC is equivalent to the statement that any infinite set X has the same cardinality as the Cartesian product X x X. He submitted his article to Comptes Rendus Acad. Sci. Paris, where it was refereed by two very famous mathematicians, Frιchet and Lebesgue. Both wrote letters rejecting the article. Frιchet wrote that an implication between two well known truths is not a new
15:07:32 <alise> result. And Lebesgue wrote that an implication between two false statements is of no interest. Tarski said that he never again submitted a paper to the Comptes Rendus."
15:08:12 <AnMaster> AC is not alternating current here right?
15:09:58 -!- lament has joined.
15:11:24 * Sgeo wonders how someone who thought that one was the truth and the other was false would react
15:13:07 <alise> I am pretty sure that is trivially contradictory.
15:13:12 <alise> After all, they were proven to be equivalent.
15:13:21 <alise> So the rejection would be "LOL you made mistake"
15:13:29 <alise> Not "Nice paper, boy. It's shit."
15:17:20 <alise> One reason why the negation of the axiom of choice is trueAs part of a complicatedtheory about a singularity, I wrote tentativelythe following :We apply set theory with urelements ZFU to physicalspace of elementary particles;we consider locations as urelements, elements of U,in number infinite. Ui is a subsetof U with number of elements n. XiUi is the infinitecartesian product and a set of paths.
15:18:01 -!- Sgeo_ has joined.
15:18:45 <AnMaster> alise, I think "LOL you made mistake" would be "somewhat" anachronistic in this case
15:19:07 <alise> STFU Cantor --Wittgenstein
15:19:33 <alise> Hilbert, you're a fag. Please commit program-suicide. --Godel
15:20:06 <AnMaster> alise, Pretty sure it was "GΓΆdel"?
15:20:23 <AnMaster> and that should be transcribed as "Goedel" in English then, shouldn't it?
15:20:50 <alise> Yeah but nobody does.
15:20:57 <alise> lol - "Axiom of Life" = "~choice"
15:21:11 -!- Sgeo has quit (Ping timeout: 258 seconds).
15:21:15 <AnMaster> alise, that's what Hamlet said!
15:21:17 <alise> http://www.facebook.com/group.php?v=wall&gid=2243319629 group of idiots
15:21:49 <alise> well we know that 2b = 2*b
15:21:52 <alise> and as far as types go
15:22:05 <alise> (Bool,b) \/ ~(Bool,b)
15:22:12 <alise> if we interpret ~ as implication of falsehood
15:22:18 <alise> (Bool,b) \/ ((Bool,b) -> False)
15:22:34 <alise> so either you can construct a value of type (Bool,b) or you cannot
15:22:40 <AnMaster> what sort of strange syntax for "and" is (a,b)?
15:22:54 <alise> a*b = (a,b) in type theory
15:23:08 <AnMaster> alise, * is somewhat overloaded :P
15:23:17 <alise> and also cartesian product
15:23:37 <AnMaster> alise, is that * = multiplication for the last one?
15:23:39 <alise> plus it meshes well with disjoint union - a+b - |a+b| = |a|+|b|
15:23:48 <alise> if we do dependent tuples then we have
15:23:58 <AnMaster> wait, does that hold true for C? It doesn't, does it?
15:23:59 <alise> |sum x:T, P| = sum x:t, |P|
15:24:02 <alise> where P involves x
15:24:07 <alise> AnMaster: || is cardinality
15:24:24 <alise> |sum x:T, P| = sum x:t, |P| --- if P is constant, i.e. doesn't involve x
15:24:26 <AnMaster> alise, in "<alise> |a*b| = |a|*|b|" ?
15:24:28 <alise> then this is just |T|*|P|
15:24:43 <alise> so normal tuples are the degenerate case of dependent tuples
15:24:48 <alise> dependent function arrows:
15:24:48 <AnMaster> well the result is the same for abs() for R though
15:25:08 <alise> |prod x:T, S| = prod x:T, |S|
15:25:15 <alise> if we assume that S doesn't involve x
15:25:18 <AnMaster> but the overloaded syntax gets confusing
15:25:22 <alise> |S|*|S|*...|T| times...
15:25:37 <alise> we actually say the function arrow is S^T in set theory...
15:25:47 <alise> if we assume it involves x of course both of these are more complicated
15:25:59 <alise> AnMaster: exponentiation, obviously
15:26:24 <AnMaster> alise, not that obvious since most of the other syntax wasn't :P
15:26:38 <alise> well it is not my fault you don't know type theory :)
15:26:53 <alise> but sum/product types ar enamed that way because they're basically identical
15:27:07 <alise> they're how you['d define addition/multiplication on things like sets if you had to
15:27:12 <AnMaster> alise, It is just that I get confused when the line is possible to interpret sensibly as more than one thing
15:27:16 <alise> addition is obviously union - you add all the elements together
15:27:28 <alise> AnMaster: learn to disambiguate based on context
15:28:24 <AnMaster> alise, well, then ^ could have been XOR as well, not that likely but...
15:29:02 <alise> Incredibly unlikely - because |S|*|S|*...|T| times is obviously |S|^|T|.
15:41:04 -!- Sgeo_ has changed nick to Sgeo.
15:45:52 -!- lereah_ has quit (Quit: Leaving).
15:55:35 <alise> I wish oerjan was here
15:58:53 <Sgeo> Don't know when
16:05:35 <alise> Axiom func : nat -> (nat -> bool).
16:05:36 <alise> Axiom surj : forall f, exists n, forall x, func n x = f x.
16:05:39 <alise> oerjan was right, obviously
16:05:44 <alise> just felt like formalising it...
16:06:47 <Sgeo> I take it to mean that that either at least one of those axioms is self-contradictory, or they contradict eachother
16:07:11 <Sgeo> Wait, surj uses func
16:08:45 -!- MigoMipo has joined.
16:08:58 <alise> Sgeo: it's basically just one axiom
16:09:11 <alise> if we have a surjective mapping from naturals to functions from naturals to booleans, we're fucked
16:09:20 <alise> there are more functions from naturals to booleans than there are naturals
16:09:59 <alise> Informal proof, due to oerjan: Say the mapping is called magic. Consider f n := not (magic n n).
16:10:10 <alise> This is a function nat -> bool.
16:10:21 <alise> We know that for every function nat -> bool, there is a natural number n such that magic n = that function.
16:10:22 * Sgeo tries to understand what surjective means, based on the code. /me fails
16:10:31 <alise> Sgeo: simply the above
16:10:37 <alise> Call f's magic number fn.
16:10:43 <alise> Now consider (f fn).
16:10:47 <alise> = not (magic fn fn)
16:10:50 <alise> magic fn = f, so this is
16:10:59 <alise> So, f fn = not (f fn).
16:11:03 <alise> Contradiction. Q.E.D.
16:11:55 <alise> Sgeo: basically a function A->B is surjective if for every x in B, there exists a y in A such that f(y) = x
16:12:06 <alise> otherwise our nat -> (nat->bool) mapping could just be
16:12:56 <alise> Sgeo: incidentally the axiom of choice is about surjective functions
16:13:18 <alise> it states that every surjective function has a right inverse
16:13:23 <alise> or rather is equivalent to such
16:13:27 <Sgeo> "right" inverse?
16:13:58 <alise> so, for every surjective function f : A -> B, there exists a function g : B -> A such that f(g(x)) = x for every x in B
16:15:39 <alise> Sgeo: The formal proof that there cannot exist a surjective function from naturals to functions from naturals to booleans: http://pastie.org/900407.txt?key=w45dbutwoqcuuxwkqnpq
16:16:06 <alise> I had to define not myself - it seems Coq doesn't have it for booleans.
16:16:31 <alise> Then the proof just went by picking out what surj says about our f - that func n x = f x
16:16:46 <alise> then expanding this to not x = x
16:17:08 <alise> here's the steps as it goes:
16:17:11 <alise> after the destruction:
16:17:14 <alise> H : forall x0 : nat, func x x0 = notb (func x0 x0)
16:17:14 <alise> ============================
16:17:20 <alise> after the notdistinct:
16:17:22 <alise> H : forall x0 : nat, func x x0 = notb (func x0 x0)
16:17:23 <alise> ============================
16:17:23 <alise> func x x = notb (func x x)
16:17:27 <alise> then I just apply H and tada
16:17:35 * Sgeo needs to learn Coq before attempting to understand this
16:17:41 <alise> (we apply notdistinct because (b <> notb b) is shorthand for (b = notb b) -> False)
16:17:51 <alise> (so if we apply it, Coq realises we need to prove (b = notb b) to achieve our goal of False).
16:18:02 <alise> (which we can do: because surj tells us it is so)
16:18:25 <alise> Sgeo: This also suffices as a proof that the reals are more numerous than the naturals, btw.
16:18:52 <alise> Consider a real number as an infinite string of binary bits (it can just end in 0s if it isn't "really" infinite)
16:18:58 <alise> (nat -> bool) - f n is the bit at position n
16:19:03 <Sgeo> Reals can be treated as functions from .. ah
16:19:08 <alise> so (nat -> bool) ~~ real
16:19:17 -!- jcp has joined.
16:19:24 <alise> so the proof says that we cannot define a function from naturals to reals such that every real has a corresponding rational
16:19:28 <alise> so the proof says that we cannot define a function from naturals to reals such that every real has a corresponding naturla
16:20:27 -!- lament has quit (Remote host closed the connection).
16:27:23 -!- MizardX has joined.
16:49:30 -!- MigoMipo has quit (Remote host closed the connection).
17:14:31 <alise> /home/ehird/code/univ.agda:16,8-11
17:14:32 <alise> β‘β_ is not strictly positive, because it occurs in the 5th clause
17:14:33 <alise> in the definition of β‘_, which occurs in the first argument to β‘β_
17:14:33 <alise> in the 5th clause in the definition of β‘_, which occurs to the left
17:14:33 <alise> of an arrow in the type of the constructor all in the definition of
17:14:38 <alise> AnMaster: You'd like Agda; it has nice error messages!
17:14:45 <alise> Now to figure out what that perfectly well-formed English is trying to tell me.
17:21:43 <alise> You have me on Monday, too - such a special week's end this is.
17:27:50 <alise> I was here yesterday, too: but I was too tired to come here.
17:27:54 <alise> I was on my iPhone here, though.
17:36:02 -!- adam_d has quit (Ping timeout: 265 seconds).
17:49:32 -!- ais523 has joined.
17:51:42 <alise> AnMaster: it's the magical box of interpretation (I probably should have used brackets)
17:51:58 <pikhq> ... Man. Microsoft *still* gets buffer overflows.
17:52:13 <ais523> pikhq: I'm not surprised, that's inherent in C
17:52:20 <ais523> that it's hard to check for them
17:52:28 <pikhq> ais523: Not really. It's inherent in bad programmers for C.
17:52:30 <ais523> in theory, Splint can statically prove a program has no buffer overflows, but it's not very good at it
17:52:33 <AnMaster> ais523, you can avoid such data structures when possible
17:52:55 <AnMaster> of course for a binary stream there isn't any good alternative
17:53:03 <pikhq> I'd say that any programmer bad enough to do that sort of thing shouldn't be allowed to touch C when working.
17:53:15 <AnMaster> (and C doesn't really help with providing other good data structures)
17:54:12 <AnMaster> anyway, why this? Has there been a new windows exploit recently or what?
17:54:29 <pikhq> Nah, reading about how they've started doing... Fuzz testing.
17:55:27 <pikhq> And seeing bunches of buffer overflows in office.
17:56:05 <ais523> pikhq: in binary formats, or XML formats?
17:56:32 <pikhq> As it's the latest version of Office, I'm going to guess "both".
17:57:11 <ais523> buffer overflows in XML is just embarrassing
17:57:14 <AnMaster> fuzz testing can be very useful
17:57:42 * AnMaster remembers finding div by zero errors in both cfunge and ccbi early on using a fuzz tester
17:58:01 <pikhq> AnMaster: What's surprising is that they only started doing it.
17:58:07 <AnMaster> of course, such code isn't very good at finding anything but crash bugs, and only ones that aren't extremely complex to trigger
17:58:56 <ais523> hmm, I wasn't online yesterday
17:59:02 <ais523> any good April Fool's stuff I should look at?
17:59:34 <AnMaster> ais523, google used microweeks amongst other things to measure how long searches took
17:59:56 <Sgeo> One good, the other mine
18:00:13 <alise> pikhq: Programming in C is nearly impossible for a human!
18:00:18 <AnMaster> ais523, gigawatts, parsecs, "shakes of a lamb's tail" and Planck times were used too
18:00:27 <ais523> seems surprisingly uncreative for Google
18:00:30 <AnMaster> ais523, oh and the RFC was quite funny too
18:00:33 <AnMaster> ais523, they did other ones too
18:00:40 <Sgeo> ais523, you mean Topeka, right?
18:00:44 <ais523> what was the RFC this time?
18:00:58 <AnMaster> ais523, maps.google.com.au, did directions in Australian slang
18:01:05 <pikhq> alise: I can do it. For many cases not involving stack munging.
18:01:11 <pikhq> (getcontext et al scares me)
18:01:16 <alise> pikhq: Yeah, with what error rate?
18:01:24 <Sgeo> Google was renamed to Topeka
18:01:26 <AnMaster> ais523, oh and the Topeka stuff too yeah
18:01:38 <Sgeo> YouTube videos had a TEXTp option
18:01:49 <Sgeo> [not Google] Reddit made everyone an admin
18:01:53 <AnMaster> Sgeo, never got that working, was it flash only?
18:01:55 <Sgeo> Fark headlines were acrostics
18:01:59 <Sgeo> AnMaster, I.. guess
18:02:01 <ais523> also, that reddit thing sounds like utter chaos
18:02:09 <AnMaster> Sgeo, as in, couldn't get the html5 stuff to work for it.
18:02:22 <Sgeo> AnMaster, I imagine it might be Flash only
18:02:23 <pikhq> alise: Lower than you'd expect, actually.
18:02:32 <alise> pikhq: I doubt that highly :)
18:02:39 <pikhq> When using getcontext, nearly 100%. :P
18:02:39 <Deewiant> ais523: I think the admin-mode changes were local-only
18:02:58 <Sgeo> The admin stuff including infinite upvotes/downvotes
18:03:01 <pikhq> (which leads me to suspect that I should never, ever touch that.)
18:03:09 <AnMaster> ais523, the RFC was about a tcp option to mark packet mood
18:03:21 <ais523> hmm, as in you could perform admin actions but reddit faked the result rather than actually doing it?
18:03:30 <AnMaster> ais523, mood would be encoded as a string of ASCII chars making up a smiley
18:03:35 <Sgeo> ais523, and stored the result per user, I think
18:03:44 <AnMaster> (don't remember if IANA were supposed to assign them or not)
18:03:55 <Sgeo> [unless you changed your own headline, I think]
18:03:56 <Deewiant> AnMaster: It seems that TEXTp wasn't available in parts of Europe, somebody somewhere said that it worked for him through a US proxy but not from home
18:04:07 <ais523> and putting unreasonable registration requests onto IANA is standard with April Fools' RFCs, IIRC
18:04:10 <AnMaster> ais523, anyway: http://tools.ietf.org/html/rfc5841
18:04:36 <alise> ais523: haha, that's great
18:04:39 <Sgeo> ais523, check Agora?
18:05:09 -!- adam_d has joined.
18:05:13 <ais523> Sgeo: the first one where you submitted half the proposal is much funnier, given what happened to Nomicapolis
18:05:35 <AnMaster> <alise> pikhq: Programming in C is nearly impossible for a human! <-- hm. That raises some interesting questions about Kernighan and Ritchie....
18:05:41 <Sgeo> What happened to Nomicapolis?
18:06:30 <ais523> Sgeo: there was an attempt to copy B's ruleset to it, but accidentally only the first half was copied
18:06:39 <ais523> and the resulting ruleset didn't allow rule changes
18:06:44 <alise> AnMaster: They can't manage it either, they just only publish their successes
18:06:55 <ais523> AnMaster: see above, it's me who was asking rather than answering
18:07:11 <alise> In fact almost all existing programming languages are completely infeasible for programming which is why we have so many bugs.
18:07:19 <Sgeo> That does make the accidental post funny
18:07:24 <AnMaster> ais523, I saw the discussion about it, but I was unable to locate the line where it said what they did. Something related to admin I gathered
18:07:30 <alise> But people don't want to do a little more work once than do lots and lots of not much work, so they don't use better languages with good type systems.
18:07:30 <ais523> AnMaster: they made everyone an admin
18:07:40 <ais523> or at least, to think they were, according to what I was told earlier in this channel
18:07:48 <ais523> this is all second-hand info, though, and the people who actually told me are still here
18:07:53 <ais523> which is why I'm confused as to why you're asking me
18:07:55 <pikhq> alise: ButbutPOINTERS ARE MORE EFFICIENT
18:08:05 <Sgeo> There was a "turn admin on" link for logged in users
18:08:20 <Sgeo> It made an [A] thingy appear next to other user's name
18:08:30 <Sgeo> Which gave options like ban, x-ban
18:08:33 <alise> AGDA I AM CONFUSED
18:08:51 <Sgeo> It randomly did things like 16.14% shill account
18:08:59 <Sgeo> Let you "edit" headlines
18:09:30 <Sgeo> Upvote and downvote a single thing repeatedly. 10 or more repeated upvotes (not sure if it was 10) made it an upvote to infinity
18:09:38 <Sgeo> Similar in the other direction
18:09:56 <Sgeo> I might be forgetting some stuff
18:10:15 <ais523> personally, I think a language which is C + a proof that it doesn't contain buffer overflows, null pointer derefs, etc. is entirely feasible
18:10:24 * ais523 continues to be annoyed at Splint
18:10:33 <ais523> for purporting to do exactly what I want, and failing at it
18:10:49 <alise> Repeated variables in left hand side: n
18:10:52 <alise> I know Agda, god damn!
18:11:01 <AnMaster> pikhq, Nowdays I seldom use C unless I'm fixing code already written in C. I guess I still use C if I need to do something low level enough that a high level language is impractical.
18:11:16 <Sgeo> Watching Ark of Truth now
18:11:56 <alise> How the hell do you do dependent pattern matching in this thing?
18:12:06 <alise> head (witness (S n) f) (successor n) = ?
18:12:09 <alise> complains about repeated ns
18:12:17 <AnMaster> ais523, splint is a good idea. In practise I found it useless. Mostly because it generates parse errors on even the most basic C99 code. And sometimes also on perfectly fine C89 code.
18:12:33 <ais523> AnMaster: even without parse errors, some of its decisions are just bizzare
18:12:43 <alise> sjgdflkgjdfhdklgfhg
18:12:54 <AnMaster> ais523, iirc I managed to get splint to segfault when running it on all C files in a directory. The problematic file was one generated by flex. Never found out what in that file caused it
18:12:57 <ais523> e.g. you can move a closing brace of an inner scope one line without changing the meaning of the program at all, but with a visible effect on splint's output (warning vs. no warning)
18:13:33 <Deewiant> ais523: Well, lint-type things tend to be about style as much as semantics
18:13:38 <AnMaster> ais523, what is it that it warns about then?
18:13:45 <ais523> AnMaster: my guess is, it's just wrong
18:13:57 <ais523> I can't see any explanations for that behaviour other than a bug in Splint
18:14:04 <AnMaster> ais523, if it is just about indention style or something like that, it seems reasonable
18:14:14 <AnMaster> and yes, splint is buggy and unmaintained
18:14:34 <ais523> AnMaster: no, it was about memory leaks
18:15:22 <Deewiant> Well that's a bit messed up, isn't it :-P
18:16:29 <AnMaster> I found clang in static analyser mode moderately useful btw. Doesn't detect a lot of stuff yet and somtimes it "crashes"
18:16:34 <AnMaster> Not as in coredump, but as in assert(0 && "Message that only makes sense to a LLVM developer").
18:17:08 <AnMaster> (they seem to love assert(0 && "string") btw)
18:17:23 <Deewiant> Would you prefer assert(!"string")? :-P
18:18:10 <AnMaster> Deewiant, I would prefer never seeing either when running the program :P
18:18:16 <alise> I HAAAAAAAAAAAATE THIS
18:18:24 <Deewiant> But you can't have everything :-P
18:20:07 <AnMaster> however, clang in static analyser mode seems to have fairly low number of false positives for me (less than splint certainly!). And it doesn't warn about completely irrelevant stuff...
18:20:40 <AnMaster> can't really tell anything about number of false negatives. A bit hard to know unless you wrote the code with intentional bugs to test the static analyser...
18:22:16 <AnMaster> alise, very precise description that
18:23:06 <AnMaster> Deewiant, so you stated that I can't have everything without having any good explanation for why that is the case?
18:23:50 <Deewiant> It seems to be the way the world works
18:24:02 <Deewiant> I can't justify why the world works that way
18:24:39 <AnMaster> hm I first considered asking "why not" to that as well, but that would have been silly
18:28:25 <ais523> hmm, I don't believe the fuzz-testing Office thing, the article about it was posted on april 1 and claims Microsoft used other people's Windows computers as a botnet
18:29:04 -!- Oranjer has joined.
18:32:34 <ais523> Alex Brown deciding that OOXML is doomed to failure seems to be not an april fool's joke, though
18:32:55 <ais523> and that's the same sort of event as Miguel de Icaza noticing that Mono has an unclear patent situation
18:36:20 <Sgeo> "You have watched 72 minutes of video today."
18:41:34 -!- MigoMipo has joined.
18:49:20 -!- Oranjer has left (?).
18:54:42 -!- alise has quit (Ping timeout: 258 seconds).
19:00:25 * Sgeo wants to experiment with unsafeInterleaveIO
19:06:12 <Sgeo> Deferrs the IO operation until the value it gives is needed
19:06:20 <Sgeo> Haven't actually tried it yet
19:06:45 <AnMaster> wth, I only get an usable wlan signal on my laptop atm if I hold my hand like I was about to change the angle of the lid...
19:07:10 <ais523> so presumably it only works on input?
19:07:43 <AnMaster> the difference is huge too, like -79 dBm vs. -90 dBm for the signal. (My card doesn't report the noise correctly, so no idea about the SNR)
19:07:45 <Sgeo> ais523, well, say, an IO Integer can be made of something that outputs then inputs, so the output SHOULD be deferred until the input is needed
19:07:48 <Sgeo> That's what I'm testing
19:08:12 <Sgeo> I'll paste the results
19:08:26 <AnMaster> ais523, I assume you will be able to explain this
19:08:38 <Ilari> AnMaster: Your hand scatters/reflects more of the signal?
19:08:47 <ais523> AnMaster: probably you're reflecting the signal
19:08:57 <ais523> human skin is pretty reflective wrt microwaves
19:09:06 <AnMaster> ais523, it doesn't work unless I actually touch the plastic on the lid though
19:09:41 <Ilari> -90dBm is 1pW and -79 dBm is ~12.6pW... So about tenfold difference...
19:10:01 <AnMaster> if I hold my hand slightly away (a few mm I guess, hard to measure), I get the bad signal
19:11:46 <AnMaster> oh btw, what does the m stand for in dBm?
19:12:13 <fizzie> The "m" there denotes the reference power is 1 mW.
19:12:16 <Ilari> AnMaster: dB relative to mW. That p was supposed to be multiplier for 10^-12...
19:12:35 <ais523> Ilari: why convert? 10 dBm is a tenfold difference
19:12:39 <ais523> you don't need to convert back into watts
19:13:48 <Ilari> AnMaster: 0dBm => 1mW
19:14:08 <Sgeo> ais523, http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24603#a24603
19:14:20 <AnMaster> hm, wlan signals are _extremely_ weak then...
19:14:30 <fizzie> AnMaster: Yes, dB is a dimensionless unit; -90 dB could be anything, as long as it is 10^-9 of something.
19:14:41 <Ilari> dBm is the only case I have seen where unit used as reference is not written completely (there's dBV, dBW, etc...)
19:14:47 <ais523> Sgeo: ah, it didn't work?
19:14:56 <Sgeo> ais523, it worked perfectly!
19:15:10 <Sgeo> It only did the interleaved one when it was needed
19:15:18 <ais523> oh, I didn't notice the first wasn't interleaved
19:15:45 <fizzie> The wikipedia dBm page has rather nice table of values; "typical received signal power from a GPS satellite" is listed as -127.5 dBm, or 178 aW. That's not a whole lot.
19:15:47 -!- alise has joined.
19:16:08 <AnMaster> fizzie, isn't dB basically "the range we want is awkwardly large, lets use something logarithmic"? ;P
19:16:16 <Sgeo> alise, I'm in love with unsafeInterleaveIO
19:16:53 <alise> Sgeo: it is as unsafe as the name suggests.
19:17:14 <alise> Sgeo: it breaks Haskell's purity
19:17:22 <pikhq> It is somewhat less unsafe than unsafePerformIO, but still unsafe.
19:17:26 <AnMaster> though I wrote that above... seems I only thought it
19:17:35 <alise> getContents is acceptable in small utilities but not large programs.
19:17:53 <pikhq> Sgeo: It means that you can suddenly have errors occuring in any function.
19:17:58 <ais523> presumably, because if you use it twice it might only run once
19:18:01 <AnMaster> what does the "interleave" in it signify?
19:18:02 <alise> Sgeo: Because it breaks Haskell's purity.
19:18:09 <alise> Why not just use unsafePerformIO if you don't care about that?
19:18:14 <Sgeo> I meant, how does it break Haskell's purity?
19:18:16 <ais523> oh, that's unsafePerformIO
19:18:17 <alise> AnMaster: basically it splits off a lazy thread of IO
19:18:17 <pikhq> AnMaster: Side effects are interleaved with pure code.
19:18:29 <alise> so unsafeInterleaveIO (... read a file byte by byte)
19:18:32 <alise> produces a lazy string of the whole file
19:18:33 <Ilari> Satellite signals are usually extremely weak. That's why one usually sees modulations that have low SNR requirement (like QPSK).
19:18:36 <alise> only read as required by evaluation
19:19:02 <alise> consider an unsafePerformIO call that does output
19:19:02 <alise> then random pure code could cause unpredictable output
19:19:06 <alise> depending on the evaluation semantics of the implementation
19:19:09 <alise> all haskell specifies is non-strict
19:19:17 <pikhq> Sgeo: getContents >>= return foo -- You get errors in foo.
19:19:25 <AnMaster> pikhq/alise: and the "perform" in the other one signifies that it isn't lazy then I guess?
19:19:46 <alise> AnMaster: unsafeInterleaveIO :: IO a -> IO a
19:19:53 <alise> unsafePerformIO :: IO a -> a
19:19:59 <alise> unsafeInterleaveIO is just return (unsafePerformIO x)
19:20:08 <alise> unsafePerformIO is, of course, an abomination of the highest order.
19:20:10 <Sgeo> Wait, what's that in do notation? do { a <- getContents; return a}
19:20:21 <AnMaster> alise, ouch, unsafeInterleaveIO seems very nasty
19:20:25 <AnMaster> why does haskell even have it?
19:20:29 <alise> do {a <- getContents; return foo }
19:20:32 <alise> where foo is a pure expression
19:20:47 <alise> AnMaster: because it is useful: consider interact :: (String -> String) -> IO ()
19:20:59 <alise> interact f = do s <- getContents; putStr (f s)
19:21:06 <alise> AnMaster: getContents lazily returns all of stdin
19:21:08 <alise> this is convenient
19:21:12 <alise> it is a hack - but it is convenient
19:21:13 <pikhq> AnMaster: unsafeInterleaveIO is useful for various small utilities.
19:21:15 <alise> so the answer is convenience
19:21:32 <Sgeo> Oh, because while it's, with getContents, lazily going through the file, trying to get more out of the "list" may cause an IO error?
19:21:37 <AnMaster> are the usual "safe" IO facilities implemented using these unsafe ones internally?
19:21:57 <pikhq> AnMaster: No, the unsafe ones are done in terms of the safe ones.
19:22:11 <alise> AnMaster: Neither.
19:22:13 <alise> pikhq: that's nonsensical
19:22:19 <AnMaster> pikhq, err. It isn't 1 April any more...
19:22:23 <Sgeo> alise, maybe pikhq was being sarcastic?
19:22:25 <alise> AnMaster: unsafePerformIO is just an internal thing that hacks around with the uber-internal IO data structure.
19:22:28 <alise> The default IO operations are primitives.
19:22:40 <alise> The IO data structure is not exposed unless you import internal GHC modules.
19:22:49 <pikhq> alise: getContents is done in terms of unsafeInterleaveIO and 'safe' IO operations. My statement of this came out confused.
19:22:54 <Sgeo> Is my unterstanding correct?
19:23:07 <alise> it's more insidious but that is one special case
19:23:18 <Sgeo> Examples of insidiousness please?
19:23:39 <AnMaster> alise, hm what language is the io primitives implemented in?
19:23:48 <AnMaster> it would be neat if it was haskell
19:23:56 <pikhq> AnMaster: They're part of the Haskell runtime, I'm pretty sure.
19:24:03 <pikhq> Erm. Part of the GHC runtime.
19:24:08 <pikhq> The one bit of GHC that's not in Haskell.
19:24:11 <alise> AnMaster: what pikhq said
19:24:14 <alise> although the IO data structure is defined in haskell
19:24:20 <alise> and GHC itself is written in haskell (but the RTS is C)
19:24:24 <pikhq> (exception: random things like the evil mangler)
19:24:25 <alise> GHC is really gnarly code
19:24:31 <alise> some parts define the Monad class themselves
19:24:35 <alise> because haskell didn't have it at the time!
19:25:24 <AnMaster> I assume the stuff not implemented in haskell is kept to a minimum?
19:25:54 <alise> It's quite big but it's also rather good.
19:26:02 <alise> And most of the Prelude is in Haskell.
19:26:05 <alise> Almost all, in fact.
19:26:11 <alise> It's just auto-specialised behind the scenes.
19:29:20 <Sgeo> I just start experimenting with unsafeInterleaveIO, and I get told to avoid it :(
19:31:24 <Sgeo> My computer just started singing "Good Morning" to me
19:33:20 <Sgeo> Dear Megavideo: I waited 54 minutes. Now please let me continue watching my video
20:09:14 -!- Oranjer has joined.
20:31:41 -!- alise has quit (Ping timeout: 258 seconds).
20:37:38 <fizzie> You find the strangest things when digging through old home directories; here's a "cp" replacement that copies files by starting two processes, having the first read the input file, the second write the output file, and doing all communication between processes by using the SIGUSR1 and SIGUSR2 signals as the "dit" and "dah" symbols for morse code, and suitable pauses to distinguish words.
20:38:24 <fizzie> I'm not sure why it doesn't just use those two signals as "on" and "off" events (or just one signal to toggle) and timing for even the dit/dah distinguishement; but it's reasonably silly as-is.
20:42:10 <Ilari> Reminds me of programming assignment from one course...
20:45:06 <AnMaster> fizzie, so it doesn't work for non-text files?
20:45:28 <AnMaster> fizzie, as for using timing: would be unreliable on a non-realtime OS
20:45:29 <fizzie> AnMaster: Right. But be honest, how often do you need to copy non-text files anyway? Almost never!
20:45:43 <fizzie> Oh, but it's not a problem if you use long enough pauses.
20:45:48 <AnMaster> fizzie, more often than text files!
20:46:02 <AnMaster> only cp command today was to copy a kernel image to /boot
20:46:12 <fizzie> 20 milliseconds between bytes and 100 milliseconds between words, it seems.
20:46:26 <ais523> I don't think I've used cp for about a week now
20:46:38 <AnMaster> I use mv a lot more often than cp
20:46:40 <ais523> I don't copy very often; I did yesterday, but via the GUI
20:53:36 -!- alise has joined.
21:00:12 <pikhq> Gregor: Think maybe you could add the &butiwouldratherbereading= feature to Lonely Dino?
21:00:41 <Gregor> Shouldn't be /too/ difficult, I could cut up the images as they are ...
21:02:49 -!- adam_d_ has joined.
21:06:17 -!- adam_d has quit (Ping timeout: 265 seconds).
21:06:27 <alise> butiwouldratherbereading?
21:06:35 <ais523> sounds like an April Fool's URL param
21:06:54 <alise> That was a fun April Fool's Day, you guys! To replace T-Rex and company with Reginald and Beartato from Nedroid, I used the trick of a transparent PNG file that masked out the existing graphics. Then, I was free to put any new graphics on top! The empty mask file is here, if you want to play with it.
21:06:55 <alise> And play with it you might want to, because although I've turned off the image replacement by default, it's still available on the site! Just add "&butiwouldratherbereading=nedroid" to any Dinosaur Comics URL and you'll see something like this.
21:07:03 <alise> http://www.qwantz.com/index.php?comic=290&butiwouldratherbereading=nedroid
21:07:42 <Gregor> http://www.qwantz.com/index.php?comic=35&butiwouldratherbereading=nedroid
21:07:45 <alise> other params: achewood, pennyarcade, wigu, pokey
21:07:56 <alise> http://www.qwantz.com/index.php?comic=&butiwouldratherbereading=pokey -- thus creating the best comic strip conceivable
21:09:11 <alise> onewheretrexswearsmore
21:09:27 <alise> http://www.qwantz.com/index.php?comic=548&butiwouldratherbereading=daisyowl
21:12:06 * Sgeo decides that the best way to understand the State monad is to read the source
21:12:56 <ais523> it's pretty comprehensible anyway
21:13:08 <ais523> it's basically what you do in Haskell if you really want to make it an imperative lang
21:13:26 <ais523> although, more fun would be some sort of State variant that stored an associative array with ways to update individual elements
21:13:47 <Sgeo> Like the ST monad except with STRefs only storing one type?
21:14:14 <ais523> that way, you could compile imperative langs almost literally
21:14:25 -!- oklopol has quit (Ping timeout: 248 seconds).
21:15:43 <alise> Sgeo: It's nothing to do with ST.
21:15:49 <alise> ST is an entirely different strange beast altogether.
21:16:14 <pikhq> ST is a safe IO monad.
21:16:22 <Sgeo> alise, different from State [I know], or different from what ais523 is describing [please explain]?
21:16:25 <alise> Well, just the reference part.
21:16:27 <alise> Its semantics are odd.
21:16:32 -!- kar8nga has joined.
21:16:37 <pikhq> alise: Well. Yes. That's what makes it safe.
21:16:41 <alise> State is simply - you know how you could pass an extra argument to every function, Sgeo?
21:16:47 <alise> And just call with a modified argument to change state?
21:16:55 <alise> State just wraps that into a monad so you don't have to pass it around.
21:16:58 <alise> The semantics are identical,
21:16:59 <ais523> State is pretty much the purest form of a Haskell monad, I think
21:17:03 <Sgeo> alise, I know what it is, I'm trying to understand how it works, which is why I'm reading the source
21:17:07 <ais523> it's a monad, and the monad chain is accessible and user-defined
21:17:36 <ais523> as opposed to most monads which are designed to stop you arbitrarily changing the underlying chain, or even determining anything about it except via accessors
21:17:59 <alise> Monads are so passι.
21:18:43 <ais523> yep, they just get all the press because they're unusual to people who don't know Haskell
21:19:33 <alise> Dependent types are the shiznit.
21:19:51 <ais523> wait, people actually use the word "shiznit"?
21:20:15 <Sgeo> In theory, I could make my own function that is in the State monad that has state and a value passed to it, without using "get" and "put"
21:20:16 <pikhq> I have talked to people who think monads are a gargantuan, subtle, and strange library.
21:20:29 <alise> ais523: Especially when talking about mathematics!
21:20:52 <ais523> Sgeo: that's what it's /for
21:20:55 <pikhq> The State monad is a fairly simple thing. That'd be pretty easy to do.
21:21:12 <alise> ais523: no, he means
21:21:16 <alise> accessing state directly using the constructors
21:21:20 <pikhq> The only thing the State monad grants you is nice sugar for that.
21:21:43 <Sgeo> Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ?
21:21:56 <alise> Sgeo: It does not matter.
21:22:02 <alise> The monad laws require the two to be equal.
21:22:09 <pikhq> Sgeo: Yes, but it does not matter for any proper monad.
21:22:41 <pikhq> That's one of the monad laws.
21:22:57 <Sgeo> Which way of thinking about it would make the definition of >>= for State easier to understand?
21:22:59 <alise> Sgeo: why do you struggle with simple identities?
21:23:17 <ais523> Sgeo: think of "a >> b" as "do a then b"
21:23:25 <ais523> then it's obvious that a >> b >> c the parens don't matter
21:23:34 <ais523> and >>= is just a version where you can grab a return value
21:23:57 <Sgeo> alise, surely there was a time when you struggled with this stuff. When was that?
21:24:32 <ais523> Sgeo: I picked up monads pretty quickly
21:24:34 <Sgeo> [Not necessarily THIS stuff in particular, but Haskell in general, or specific parts of Haskell]
21:24:34 <alise> Oh, absolutely, I struggled with monads.
21:24:55 <alise> But I just seem to notice a sort of pattern where you have issues abstracting out simple laws to understand instances satisfying those laws.
21:25:17 <alise> Certainly I must have my own flaws in understanding that I do not myself notice.
21:25:54 <pikhq> Rule one with monads: they are simpler than you think. Rule two: they do nowhere near as much as you think. Rule three: there is no magic.
21:26:41 <Sgeo> syntactic sugar doesn't count as magic? :D
21:26:45 <Gregor> Rule four with monads: you may need more pixie dust.
21:27:33 <pikhq> Sgeo: That's no magic.
21:30:25 * Sgeo thinks he gets State's >>=
21:33:11 <alise> I wish fax was here
21:33:15 -!- comex has quit (Ping timeout: 268 seconds).
21:33:25 -!- comex has joined.
21:34:50 <Sgeo> alise, fax is in #haskell
21:35:10 <Gregor> <alise> I wish fax was here // Awwwww
21:35:19 <alise> to ask about type theory kthx
21:38:33 -!- oerjan has joined.
21:45:31 <Sgeo> Now, I need to learn to understand Functors and Arrows
21:46:04 <pikhq> Functors are trivial.
21:46:09 <Sgeo> alise, about my learning, I've noticed that I like to read a lot of different tutorials
21:46:15 <oerjan> <alise> if we have a surjective mapping from naturals to functions from naturals to booleans, we're fucked <-- note that "naturals" can be replaced with any set there
21:46:27 <pikhq> Functors are objects where fmap makes sense.
21:46:33 <Sgeo> oerjan, the real numbers don't make up a set?
21:46:53 <oerjan> Sgeo: _in both places_
21:47:48 <oerjan> it is indeed true (in ZFC) that there is no surjective mapping from reals to functions from reals to booleans.
21:48:47 <oerjan> also booleans can be replaced with any set that has a self-map without fixpoints (i.e. any set with at least 2 elements in ZFC)
21:49:17 <Sgeo> How much of that relies on the C in ZFC?
21:49:23 <oerjan> (i said it that complicatedly because i'm not sure if those are equivalent concepts in ehird's type theory stuf)
21:49:58 -!- pikhq has quit (Read error: Connection reset by peer).
21:50:01 * alise generalises it not to have nat; I realised it didn't need it but didn't think to formalise that
21:50:13 <oerjan> it was just my default theory for it. in fact it is essentially true for constructive set theory as well, which is why alise and i started discussing it
21:51:02 <alise> it is true in type theory of course
21:51:05 <alise> certainly so since I formalised it
21:51:40 <oerjan> in my intuition type theory is almost the same thing as constructive set theory.
21:51:50 <alise> Almost, but not quite.
21:51:54 <alise> Type theory has an equality type for instance.
21:52:09 <alise> And set theory, well, doesn't really have "dependent" sets in any meaningful sense.
21:52:13 <oerjan> i suppose you could have a simpler constructive set theory than that
21:52:15 -!- coppro has joined.
21:52:26 <alise> Plus things like quotient sets and the like - but the fundamental theories, sure.
21:52:31 <alise> oerjan: http://pastie.org/900901.txt?key=gfjqr1tonuchocnutw2dqw
21:53:23 <alise> I am surprised Coq does not already have notb/notdistinct. Or maybe it does?
21:53:30 <oerjan> in fact this is probably a theorem of pure lambda calculus, and the halting theorem, godel's incompleteness theorem and cantor's theorem are all special instantiations of it (diagonalization)
21:54:27 <alise> Diagonalisation is beautiful.
21:56:00 -!- coppro has quit (Client Quit).
21:58:35 <alise> oerjan: http://pastie.org/900907.txt?key=ny2be0sujqn23hvkcty1fa
21:58:45 <alise> Could generalise it from bool if you want, but...
21:59:47 -!- pikhq has joined.
22:01:44 <Sgeo> Should I consider rewriting some of my Python stuff in Haskell?
22:02:01 <Sgeo> Actually, most of it is on my old computer, so meh
22:02:20 <alise> let e := magic_surj in
22:02:20 <alise> match e (fun n : T => negb (magic n n)) with
22:02:20 <alise> let n := no_fixpoint_negb in
22:02:21 <alise> match n (magic x x) (sym_eq (H x)) return False with
22:03:18 <pikhq> Hey, Internet's back!
22:06:10 -!- tombom_ has joined.
22:08:48 -!- pikhq has quit (Read error: Connection reset by peer).
22:09:02 <oerjan> yay we managed to outrun him again
22:09:12 -!- sshc has quit (Quit: leaving).
22:09:51 -!- tombom has quit (Ping timeout: 260 seconds).
22:10:55 -!- kar8nga has quit (Read error: Connection reset by peer).
22:12:19 -!- coppro has joined.
22:15:06 -!- coppro has quit (Client Quit).
22:20:08 <oerjan> <alise> unsafeInterleaveIO is just return (unsafePerformIO x)
22:20:38 <oerjan> except with a guarantee of not evaluating more than once
22:21:19 -!- coppro has joined.
22:22:35 <oerjan> i used it in Malbolge Unshackled to create an infinite lazy datastructure containing IORefs. afaik that usage is perfectly safe.
22:22:57 <Sgeo> unsafePerformIO can't get evaluated more than once?
22:23:04 <Sgeo> erm, things made with
22:24:50 <oerjan> haskell compilers are perfectly permitted to inline pure code in multiple places
22:34:54 <Gregor> (Hence "unsafe" PerformIO)
22:35:30 <Sgeo> I meant unsafeInterleaveIO
22:35:30 <fizzie> Heh, that's funny; if you have alsamixer open, and then unplug the (USB) sound card it's controlling, you get http://pastebin.com/NL8Sew2t
22:37:40 <oerjan> Sgeo: indeed, it would be useless for its purpose if it could be evaluated more than once. imagine do l <- getContents; return (l,l) returning two different lists consisting of unpredictable parts of input
22:38:18 <oerjan> and getContents uses unsafeInterleaveIO internally
22:38:29 <oerjan> (or something very close to it)
22:39:21 <Sgeo> Isn't there some function (Monad m) => m m a -> m a?
22:39:58 <oerjan> 13:21:43 <Sgeo> Just to clarify my understanding quickly, a >>= b >>= c is parenthesized as a >>= (b >>= c) ?
22:40:01 <oerjan> 13:21:56 <alise> Sgeo: It does not matter.
22:40:04 <oerjan> 13:22:02 <alise> The monad laws require the two to be equal.
22:40:27 <oerjan> no, it must be (a >>= b) >>= c, the other one isn't even well-typed
22:41:04 <oerjan> damn egobot always disappearing
22:41:06 <Sgeo> What does it do with IO, and could unsafeInterleaveIO be written without unsafePerformIO using join somehow?
22:41:18 <alise> oerjan: oh of course
22:41:32 <Sgeo> (>>=) :: (Monad m) => m a -> (a -> m b) -> m b
22:41:49 <oerjan> Sgeo: it defers running the actual action until the result is needed. no way of doing that with join.
22:42:20 <oerjan> Sgeo: it was the fixity/precedence i was looking for, actually
22:42:57 <oerjan> so left as you'd expect
22:43:03 * Sgeo still gets confused by fixity
22:43:22 <oerjan> it's associativity and precedence bundled into one
22:43:37 <Sgeo> Then I'm confused by associativity
22:43:47 <oerjan> where associativity is in the syntactic sense
22:44:21 <oerjan> basically, should a >>= b >>= c mean (a >>= b) >>= c, a >>= (b >>= c) or be disallowed altogether?
22:44:37 <oerjan> those are infixl, infixr and infix, respectively
22:44:41 <Sgeo> Which is which.. oh
22:45:26 <oerjan> which side you start combining terms from, essentially
22:45:50 <Sgeo> What happens when you mix in other operators of equal precedency?
22:46:17 <oerjan> Sgeo: note that those first two are foldl (>>=) [a,b,c] and foldr (>>=) [a,b,c] respectively
22:46:29 <Gregor> HASKELL HAS NO CONCEPT OF NULLITY
22:46:38 <oerjan> or would be, if they were compatible types
22:47:40 -!- tombom_ has quit (Quit: Leaving).
22:47:43 <oerjan> Sgeo: join x intuitively runs x, then runs the result immediately as an action in the same monad. no deferring involved.
22:48:03 <oerjan> and you cannot simulate it without some special function
22:48:41 <oerjan> (of course monads other than IO may not strictly obey the concept of running things immediately)
22:49:45 <Sgeo> What are Arrows?
22:51:12 <oerjan> a kind of strange bundling of features afaict
22:51:35 <oerjan> they're morphisms in a category, so functions are your main example.
22:52:00 <oerjan> you can compose them with >>> . for functions f >>> g means g . f
22:52:09 -!- Deewiant has quit (*.net *.split).
22:52:09 -!- wareya has quit (*.net *.split).
22:52:09 -!- Slereah has quit (*.net *.split).
22:52:34 <oerjan> but they also include operations to combine stuff "in parallel", using pairs
22:52:36 -!- dixon` has joined.
22:52:42 -!- dixon` has left (?).
22:52:58 <oerjan> e.g. (f &&& g) x = (f x, g x) and (f *** g) (x,y) = (f x, g y)
22:53:11 <oerjan> (again using the function example)
22:53:14 <Sgeo> Well, I'm convinced. Let me brain bleach all my Haskell knowledge.
22:53:25 -!- Deewiant has joined.
22:53:25 -!- wareya has joined.
22:53:32 -!- Slereah has joined.
22:54:11 <ais523> hmm, I don't understand that restriction, as it goes away if you add a type signature
22:54:21 <ais523> that says just what the compiler had inferred anyway
22:54:30 <alise> which is why you disable it
22:55:09 <oerjan> ais523: the basic idea is that if you have an equation of the form x = ... then you should be able to expect the right side not to be evaluated more than once, in practice
22:55:25 <ais523> I don't see how that's related...
22:55:55 <oerjan> but if the type involves type classes, then the right side can only be evaluated after you pass the actual type dictionary into it
22:57:11 <oerjan> so it must be evaluated at least once for each type it's used with, and it may be hard for the compiler to catch all uses of the same type so even that might be duplicated
22:57:34 <oerjan> that's my understanding of the x = ... case.
22:57:58 <Sgeo> Semantically that should be equiv unless unsafePerformIO is involved, right?
22:58:34 <ais523> semantically it's irrelevant
22:59:12 <oerjan> for the (x,y) = ... and similar cases there is the additional complication that the type of x or y separately might not determine the full type dictionaries to use in the right part, so in that case you're not even allowed to override with an explicit type signature
22:59:52 <oerjan> although the compiler could try to be cleverer there, the standard does not demand it
23:00:24 <oerjan> Sgeo: yes. but someone has apparently coughed up an example where this causes exponential blowup in execution time
23:01:24 <oerjan> as for nonstandardness of GHC i don't know, unless you mean its heap of extensions which are optional...
23:01:52 <Sgeo> return quadrescence :: IO Chatter
23:05:11 -!- fax has joined.
23:06:15 <oerjan> well i don't use ghc so i don't know, i thought you had to use a flag for almost everything
23:06:36 <Sgeo> oerjan, what do you use? Hugs?
23:07:14 <Quadrescence> Sgeo: oerjan is sane and uses Standard ML with MLton
23:07:18 <oerjan> (i've recently downloaded the Haskell Platform, but i just saw that winghci will be bundled only with the coming release so i'm waiting a bit)
23:07:28 <oerjan> other than that, winhugs
23:08:35 <oerjan> (i got seriously annoyed when ghci insisted on waiting for the gvim editor to quit and i see winghci avoids that)
23:09:18 <oerjan> (gvim _tries_ to fork itself to avoid such unless you add a flag, but ghci somehow manages to thwart it)
23:09:39 <Quadrescence> oerjan: why isn't Monad a "subtype" of Functor? (why it doesn't inherit from the Functor typeclass)
23:09:54 <oerjan> Quadrescence: hysterical raisins
23:10:39 -!- Deewiant has quit (*.net *.split).
23:10:39 -!- wareya has quit (*.net *.split).
23:10:44 <oerjan> Functor was invented after Haskell 98 was standardized
23:11:05 <Quadrescence> mathematical functors and monads weren't invented with Haskell
23:11:19 <alise> but at first haskell only had monads
23:11:26 <alise> anyway, I'm feeling so sick that I had better go to bed now
23:11:27 <oerjan> and they've never managed to implement the "case class" feature that is supposed to make things seamless
23:11:32 -!- alise has quit (Quit: Leaving).
23:11:45 <oerjan> er it's not case class
23:12:42 <Sgeo> Is Scala any good?
23:12:48 <Sgeo> Or should I stick with Haskell?
23:13:06 <oerjan> i don't know i've just read about it's case classes
23:13:08 <Quadrescence> It has type safety, runs on the JVM, object oriented
23:13:47 <oerjan> Quadrescence: as of now you only need to implement (>>=) and return to make a Monad. and haskell doesn't currently have a feature that allows you to deduce a _superclass_ method (Functor's fmap) from that, that's what this class something feature would do
23:14:42 -!- wareya has joined.
23:14:44 <oerjan> they would also like to put Applicative in between, there
23:15:10 -!- adam_d_ has changed nick to adam_d.
23:16:29 -!- Deewiant has joined.
23:18:00 <oerjan> there's a lot of duplicated functionality between Control.Applicative and the older Control.Monad, in fact i once counted there were only a handful or so of functions in Control.Monad which were _not_ generalizable to Applicative
23:19:40 <oerjan> some of that is in Data.Traversable as well iirc
23:20:22 -!- MigoMipo has quit (Remote host closed the connection).
23:20:48 -!- Deewiant has quit (*.net *.split).
23:22:40 -!- Oranjer has left (?).
23:23:06 <oerjan> and a bit in Data.Foldable
23:24:14 -!- Deewiant has joined.
23:34:50 <fax> I dont know how to compute the product of gaussian periods
23:37:39 -!- pikhq has joined.
23:39:50 * oerjan suspects a connection with harmonic analysis of finite abelian groups
23:46:06 -!- Oranjer has joined.
23:48:44 <fax> if z^5=1 what is the value of z+2z^2+z^4 ?
23:50:00 <fax> apparentnyl it's always a rational, but it's not...
23:50:11 <pikhq> fax: What's the type of z?
23:50:25 <fax> complex number
23:50:31 <fax> complex real*
23:51:30 <fax> I think -1=(z^2+z^4)+(z^3+z^1)=x1 + x2 should mean that x1*x2 is a rational
23:53:33 <Gregor> It's a good thing Gore created the Internet instead of Clinton, or it would have been the Intern-net *BA-DUM CHING BAD JOKE*
23:53:38 -!- pikhq has quit (Read error: Connection reset by peer).
23:55:30 <oerjan> Data.Complex> [z+2*z^2+z^4 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]]
23:55:50 <oerjan> [4.0 :+ 0.0,(-1.0) :+ 1.17557050458495,(-1.0) :+ (-1.90211303259031),(-0.999999999999999) :+ 1.90211303259031,(-1.0) :+ (-1.17557050458495)] :: [Complex Double]
23:56:24 <fax> what about z^2+z^3?
23:56:50 <oerjan> Data.Complex> [z^2+z^3 | let r = mkPolar 1 (pi*2/5) , z <- map (r^) [0..4]]
23:56:50 <oerjan> [2.0 :+ 0.0,(-1.61803398874989) :+ 1.11022302462516e-016,0.618033988749895 :+ (-1.11022302462516e-016),0.618033988749895 :+ (-1.11022302462516e-016),(-1.61803398874989) :+ 2.22044604925031e-016] :: [Complex Double]
23:57:10 <fax> what the hell
23:57:25 <oerjan> z^2 is the conjugate of z^3
23:57:48 <oerjan> since they're inverses and on the unit circle
23:58:10 <oerjan> so it's really just Re (2*z^2)
23:58:17 -!- pikhq has joined.
00:00:28 -!- pikhq has quit (Read error: Connection reset by peer).
00:03:45 -!- pikhq has joined.
00:04:24 -!- pikhq has quit (Read error: Connection reset by peer).
00:05:04 <oerjan> apparently mkPolar 1 is also known as cis
00:05:27 <fax> "cos + i sin"
00:05:51 <fax> im pissed off about this cyclotomics
00:06:01 <oerjan> yeah i know, i meant it was a defined haskell function
00:07:23 -!- FireFly has quit (Quit: Leaving).
00:08:04 <oerjan> z^5 = 1 and not z = 1 means z^4 + z^3 + z^2 + z + 1 = 0 fwiw
00:08:25 <oerjan> i suppose that's one of the results, but it also is simply polynomial division
00:08:52 <fax> z^4 + z^3 + z^2 + z = -1
00:09:29 <fax> but we should be able to extract two sequences, x1 = z^4 + z^2, x2 = z^3 + z (say) such that x1+x2=-1 & x1*x2 = <some rational>
00:09:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:10:25 <fax> it doesn't seem to be true though :(
00:10:49 <oerjan> well z and z^4 are also conjugate, so z+z^2 and z^4+z^3 are conjugate
00:11:06 <oerjan> and multiplying conjugates at least gives a positive real
00:11:20 <fax> 2.6180339887498945
00:11:36 <fax> (that is 1+phi, which is not rational)
00:11:58 <fax> so I'm a bit lost now as for what I should do
00:12:03 <oerjan> another option would be z+z^3 and z^4+z^2
00:12:16 <fax> well that gives 0.38196601125010515
00:12:30 <fax> which is 1/2.6180339887498945
00:13:29 -!- pikhq has joined.
00:13:49 <oerjan> well i don't know this stuff, anyway
00:17:51 <fax> !hs let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1])
00:17:55 <fax> !haskell let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1])
00:17:59 <fax> `haskell let w = exp (2*pi*sqrt(-1)*(1/17)) :: Complex Double in (sum $ map (w^) [3,10,5,11,14,7,12,6])*(sum $ map (w^) [9,13,15,16,8,4,2,1])
00:18:42 <oerjan> (-4.0) :+ (-5.06434096082401e-016) :: Complex Double
00:20:10 <oerjan> you may try privmsg'ing lambdabot. prepend with "> "
00:20:23 <fax> *Galois Data.Complex> multiplicativeGroupGenerator 52
00:20:23 <fax> *Galois Data.Complex> map(\i->2^i`mod`5)[1..4][2,4,3,1]
00:20:23 <fax> *Galois Data.Complex> let w = exp (2*pi*sqrt(-1)*(1/5)) :: Complex Double in (sum $ map (w^) [2,3])*(sum $ map (w^) [4,1])
00:20:26 <fax> (-0.9999999999999999) :+ 6.861555643110582e-17
00:20:38 <oerjan> i guess that won't show up here
00:20:53 <fax> multiplicativeGroupGenerator 5 = 2
00:21:13 <fax> orbit of 2 in multiplicative Z/5Z = [2,4,3,1]
00:21:33 <fax> so the periods (w^2+w^3)(w^4+w) = -1
00:21:34 <oerjan> 3 is also a generator, i should think
00:21:37 <fax> but I thought I did this......
00:21:45 <fax> I just pick the first generator
00:22:33 <oerjan> as i said, exp (2*pi*sqrt(-1)*(1/5)) = cis (2*pi/5)
00:22:56 <fax> I don\t understand what I had wrong before
00:23:17 <Sgeo> This mouse still feels too weird
00:23:33 <oerjan> well we didn't try that splitting
00:23:34 <Sgeo> Also, changing the speed of the thing also changes the speed of the trackpad
00:23:39 <fax> (w+w^4)*(w^3+w^4) <------- augh!!!
00:23:41 <fax> im so stupid
00:25:31 * Sgeo switches back to his wired mouse
00:26:28 <oerjan> fax: i was trying to suggest things that were conjugates of each other, if the product was supposed to be negative no wonder that didn't work :D
00:26:51 <fax> oerjan, but you are right -- they are conjugates
00:27:23 <oerjan> if they were conjugates their product would be positive
00:27:42 <oerjan> (w^2+w^3) and (w^4+w), that is
00:27:49 <fax> oh right I see
00:28:23 <fax> so there's a 'fast' way to calculate the value of (w^2+w^3)*(w^4+w)
00:28:31 <fax> but it's really confusind and complicaetd ;D
00:29:03 <oerjan> exactly the right kind of thing for a computer program, you'd think
00:29:46 <fax> I am trying to program this algorithm but it is really a lot harder than anything I have worked on before
00:29:53 <fax> well I guess that is the wrong way to put it
00:29:59 <Sgeo> What if you tried it imperatively?
00:34:26 -!- coppro has quit (Ping timeout: 260 seconds).
00:40:17 <fax> this... appears to only work for fermat primes
00:40:27 <fax> but that is not good because there are other primes
00:42:28 <oerjan> oh? what goes wrong for 7, say?
00:42:48 <fax> well give me 10 mins I will try p = 7 on paper
00:44:00 <fax> [3,2,6,4,5,1]
00:44:05 <fax> that's the orbit of 3
00:44:13 <oerjan> i was _getting_ there :D
00:45:10 <oerjan> so do you take (w^3+z^2+w^6)*(w^4+w^5+w^1) ?
00:45:19 <oerjan> or would, if it worked
00:46:11 <oerjan> how did i get that z there
00:46:23 <fax> http://www.pasteit4me.com/312001
00:47:01 -!- ais523 has quit (Remote host closed the connection).
00:47:52 <oerjan> huh, so [3,6,5] and [2,4,1], or [3,4] and [6,1]
00:48:36 <fax> [3,4], [2,5] and [6,1]
00:48:45 <fax> so the thing splits into 2*3 or 3*x
00:48:47 <fax> so the thing splits into 2*3 or 3*2 ***
00:49:17 <oerjan> you multiplied all three
00:49:37 <fax> in general if we have an orbit that covers the whole group [a,b,c,d...]
00:50:07 <fax> it seems like you can share it out (one for me, one for you, one for him, one for me, ...) into sets which (obviously sum to -1) and multiply to make a rational number
00:50:21 <fax> but why they multiply to make a rational..... I have no idea
00:50:28 <oerjan> oh you are taking all the cosets of a subgroup?
00:50:43 <fax> yes I guess they are cosets aren't they
00:50:54 <fax> the group is Z/pZ by the way (multiplicative)
00:51:10 <fax> (I don'tknow if I neglected to say that earlier)
00:51:31 <oerjan> i understood that much
00:51:42 <oerjan> although i wouldn't call that Z/pZ...
00:52:04 <oerjan> wikipedia used a superscript X
00:53:03 <oerjan> hm since the multiplicative group is cyclic, i guess all subgroups are cyclic too so given by a single element
00:53:26 <fax> oerjan, ooh that explains why you can keep doing it!
00:54:34 <fax> it's a bit usesless to know that y1+y2+y3 = -1 & y1*y2*y3 = 1
00:54:36 <fax> you can't solve this equation
00:54:47 <oerjan> in fact if this is the case you don't need to find a primitive root at all, unless you want to classify everything
00:55:00 <fax> p-1 is always even
00:57:08 <augur> OMG BLUE BUBBLEGUM JONES
00:57:28 <fax> hey augur :)))
00:57:40 <augur> i had an idea for a fun little challenge
00:57:46 <fax> the universe thing?
00:57:51 <augur> yeah did i mention it to you?
00:58:00 <augur> ive been modelling simple universes
00:58:08 <fax> what is a universe ?
00:59:11 <augur> ok so in this context, a universe is some topology, some number of particles that inhabit that topology (or some properties over that topology, take your pick), and some number of rules that govern the physics of those particles in that topology
00:59:59 <fax> augur WOLFRAM??
01:00:19 <fax> this sounds like cellular automata
01:00:24 <augur> im sure you could model (some) of these universes as CAs
01:00:28 <fax> except on arbitrary topology
01:00:31 <augur> but the physics dont have to be defined CAly
01:00:36 <fax> oh there are non-CA rule sets?
01:00:44 <augur> well you could do so if you wanted.
01:01:21 <augur> just as an example, imagine you had an infinite discrete universe with a particle occupying one position in the universe
01:01:46 <augur> you could say that it has a constant velocity in some direction and so forth
01:01:53 <augur> im sure you could also define a CA for this tho
01:06:12 <augur> so do you know the setup of the game?
01:07:39 <fax> I guess so
01:07:42 <fax> it sounds very difficult
01:08:09 <augur> it is rather, i think
01:08:15 <augur> just to reiterate, the game goes like this
01:08:44 <augur> i secretly design a (simple) universe. then i provide to you the causal graph of the universe
01:08:52 <fax> oerjan, btw -- x1 = z^3+z^6+z^5 ; x2 = z^2+z^4+z^1 gives x1 = -1/2-sqrt(-7/4) ; x2 = -1/2+sqrt(-7/4)
01:08:53 <augur> and you have to determine the design i used.
01:09:11 <fax> augur, the causal graph is a picture ?
01:09:25 <fax> augur I want to try this but I am not likely to win
01:10:08 <augur> the causal graph is basically just a directed graph, where each node is one of the possible configurations of the universe, and each directed arc connects a configuration to a "successor" confiuguration
01:10:17 <fax> so the problem is, I know that z^3+z^6+z^5 = -1/2-sqrt(-7/4) -- but that doesn't help me find any expression for z^3 or whatever
01:10:22 <augur> ie the configuration the universe would be in after running the physics one time unit forward
01:11:27 <augur> you could imagine a universe with a single point in it, and that point has a single property Energy that is one of the integers, and the "physics" is such that Energy increases by one every time step
01:11:51 <oerjan> well z^3 is a 7th root of unity, i don't know whether they can be expressed with real roots
01:12:13 <augur> so the causal graph of this universe is basically 0 -> 1 -> 2 -> 3 -> ... where each state corresponds to one of the configurations {(point, energy)} of the universe
01:12:24 <augur> does this make sense, fax?
01:12:46 <fax> vaugely :)
01:13:00 <augur> or imagine you have a universe that is a string of text
01:13:23 <augur> with say 1 of 26 "particles" (letters) in each position
01:13:35 <fax> oerjan, well there is a theorem that every root of unity can be expressed in radicals (from Gauss)
01:13:39 <augur> these are the configurations of this universe
01:13:55 <fax> oerjan, but I am completely failing to see how it works for non-fermat primes
01:14:02 <augur> then theres some physics that says each "configuration" is followed by, lets say, the "next" string
01:14:13 <augur> or god only knows what the universe is, right
01:14:22 <fax> augur yeah I get that it just seems if you can choose any rule you want that it's impossible to figure it out
01:14:33 <augur> well let me give you a very simple one :)
01:14:42 <augur> here is a simple causal graph: 1 -> 1
01:16:05 <augur> this is the simplest universe i can think of
01:16:30 <fax> that sucks
01:16:39 <fax> idiot universe
01:16:41 <augur> cmon, think of what kinds of universes this could be :)
01:16:49 <augur> what is the universe and the physics
01:16:59 <augur> actually its a whole class of universes, but
01:17:01 <fax> the universe is {1} and the physics is I
01:17:35 <augur> basically, yeah. the universe is a 1x1 universe with no particles (or 1 particle) and no physical laws that change anything.
01:17:51 <augur> alternatively it could be seen as any universe with no particles an no physical laws that change anything
01:18:05 <augur> heres the next simplest one i can think of
01:18:24 <fax> the universe is {1,2} and the physics is I
01:18:37 <augur> well, what do you mean bye {1,2}?
01:18:47 <augur> the 1 and 2 that i used are just names for configurations
01:18:47 <Gregor> What do you mean, BYE! {1,2}
01:18:51 <fax> it's just the nodes of a graph
01:18:55 <fax> there are no edges yet
01:18:56 <Gregor> (Sorry, couldn't help myself)
01:19:10 <augur> but the nodes in the graphs are not the universe
01:19:25 <augur> the universe is a topology plus a physics that this graph describes
01:20:14 <augur> the universe envisioned is as follows:
01:20:30 <augur> a 1x2 universe with one particle (which can be in either location) and no physics
01:20:54 <augur> or, a 1x1 universe with one particle (which can be pointing in either one of two directions) and no physics
01:21:12 <oerjan> no, it's a particle which can be either red or blue!
01:21:17 <augur> the configurations for the former are: [o| ] and [ |o]
01:21:33 <augur> and for the latter: [<] and [>] lets say.
01:22:43 <augur> heres another universe thats similar: 1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4
01:24:34 <augur> im sure you can imagine what this is
01:24:58 <oerjan> yes, it's a 1x2 universe with two particles *ducks*
01:25:14 <augur> unless you hve some physics in there
01:25:30 <augur> then definitely not
01:25:38 <augur> because that universe would be [o|o]
01:25:44 <augur> and would have only one state
01:25:55 <augur> making its causal graph the same as the first universe: 1 -> 1
01:25:56 <oerjan> you didn't say particles couldn't be in the same position
01:26:07 <augur> ahhaaa good thinking oerjan :)
01:26:12 <augur> then yes, you're right
01:26:15 <augur> it could be that universe
01:26:42 <oerjan> anyway i predict the number of possibilities will become hopelessly large, fast
01:26:49 <augur> or it could be a 1x1 universe with a particle that faces one of four directions, or two particles that face one of two directions, or, ...
01:26:58 <augur> well, the number of possibilities might
01:27:08 <augur> but im not looking for _my_ solution, just _a_ solution
01:27:28 <augur> so heres another universe thats kind of interesting
01:27:33 <oerjan> "faces directions" sounds similar to momentum.
01:28:09 <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4
01:28:15 * Sgeo wants to use Haskell for everything
01:29:07 <augur> ill even be generous and tell you the physical makeup of the universe
01:29:13 <augur> 1x2, one particle.
01:30:07 <oerjan> well we have 2^3 states, so one bit could correspond to position of particle
01:30:42 <augur> thats a truism, ofcourse
01:30:52 <augur> because, modulo anything else, the particle can be in exactly two positions
01:31:03 <augur> so the universe has at least 2*n configurations
01:31:06 <oerjan> well it means the particle can have 4 inner states in each position
01:31:27 <augur> you're veeeery close
01:31:33 -!- Oranjer has left (?).
01:31:41 <augur> now just figure out what the physics is :)
01:31:46 <oerjan> it could point in each of four directions
01:33:01 <oerjan> i make it a rule that the particle is _always_ changing position, each step
01:33:50 <oerjan> so 1,3,5 and 8 correspond to the same position, 2,4,6,7 to the other
01:34:30 <oerjan> now we can say that 7 and 8 are both pointing down
01:36:20 <augur> btw, when you interpreted 1x2, did you interpret that to be 1 high or 1 across?
01:36:38 <oerjan> the particle always rotates its pointing direction each step, but skipping the down direction
01:37:02 <oerjan> i believe this gives the required graph
01:37:25 <augur> thats what i intended :p
01:37:42 <oerjan> er what's what you intended
01:38:37 <oerjan> 1 and 4 point left, 2 and 5 up, and 3 and 6 right
01:38:45 <oerjan> and rotation is clockwise
01:41:26 <augur> now let me do one thing to my universe: expand the size to 2x2 now. the causal graph is as follows:
01:41:41 <oerjan> this analysis was made somewhat easier by the fact it contained two aspects that did not interfere with each other
01:42:00 <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7
01:42:17 <augur> identical physics, one particle, just in 2x2 not 1x2
01:42:34 <oerjan> what do you mean by identical physics?
01:42:39 <augur> that is, not the physics oyu just devised, but the physics that i had in mind.
01:42:57 <augur> so this universe and the previous one are different _only in size_
01:43:02 <oerjan> now we have 4 positions rather than 2
01:43:32 <oerjan> and there are still 4 inner states possible
01:43:49 <oerjan> assuming those can be selected independently
01:43:53 -!- coppro has joined.
01:44:21 <augur> well they can, but the physics constraints which configurations are possible as next configurations.
01:44:51 <augur> for all of this you can assume that all properties of particles are independent of their position
01:45:44 -!- mibygl has joined.
01:45:54 -!- pikhq has quit (Read error: Connection reset by peer).
01:51:21 -!- Oranjer has joined.
01:51:48 <oerjan> this time there are 8 non-repeating states, while there were only 2 the last time
01:52:17 <augur> you mean states which, once left, are never again reached?
01:52:46 <augur> ill give you an even better hint
01:52:56 <augur> if you think of the particle as a robot instead, the physics makes more sense.
01:53:44 <oerjan> which means doubling the positions did not just add an extra irrelevent bit, it has to interfere with stuff
01:54:12 <oerjan> otherwise, there would be only 4 non-repeating states
01:54:14 <augur> there is no constraint on the configurations that the particle can appear in
01:54:40 <augur> the particle can be found in each of the four positions in each of the four states.
01:54:46 <oerjan> i mean the new bit and the old ones have to have physical interaction
01:55:24 <augur> let me know if you want more hints
01:55:40 <oerjan> <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 1; 9 -> 10 -> 1; 11 -> 12 -> 3; 13 -> 14 -> 5; 15 -> 16 -> 7
01:57:01 <oerjan> there is still room for one bit aspect that does nothing but flip each turn (in fact this is clearer here since you numbered things to alternate odd/even turns)
01:57:25 <augur> remember, im not using your physics but mine. so you cant assume its doing what yours did :)
01:57:30 -!- pikhq has joined.
01:57:49 <augur> want another hint?
01:57:52 <oerjan> no, but i _am_ assuming i have to come up with something that fits the previous one as well
01:58:11 <oerjan> otherwise this would be easy
01:58:31 <augur> hint: its not always changing position, nor internal state, during each time step.
01:58:46 <augur> but it *is* at least changing one of them
01:58:59 <oerjan> um the last point is obviouas
01:59:13 <augur> just making sure that it was :P
02:02:01 <oerjan> i think i've got it, just checking
02:02:37 <oerjan> <augur> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 1; 7 -> 1; 8 -> 4
02:03:00 <oerjan> just checking it gives the same
02:05:57 <oerjan> each step, _if_ the particle is pointing toward another reachable position, it moves there. otherwise it rotates clockwise. this fits both universes.
02:07:58 <augur> now figure out the structure of this universe, given those physics, and 1 particle:
02:08:29 <oerjan> hm this is turning out more interesting than i expected :P
02:08:48 <augur> 1 -> 2 -> 1; 3 -> 4 -> 3; 5 -> 6 -> 5; 7 -> 8 -> 7; 9 -> 10 -> 1; 11 -> 12 -> 2; 13 -> 14 -> 3; 15 -> 16 -> 4
02:09:07 <augur> so tell me the geometry of the universe.
02:09:46 <augur> you can already figure it must be a universe with 4 positions. but what are their arrangement, and is there more to the geometry than just that.
02:10:25 <oerjan> there is at least some toroidal stuff going on
02:10:44 <oerjan> that's the only way you could flip between two states with those physics
02:11:33 <oerjan> wait four positions...
02:20:42 <fax> so I'm a bit disappointed
02:20:57 <fax> I thought this program would be able to derive solution for the cubic equation and stuff like that
02:21:03 <fax> but it seems like you have to hard code all that in :[
02:21:12 <fax> (in the roots of unity subroutine)
02:21:24 <fax> (unless I am [hopefully] missing something)
02:25:41 <augur> no ideas yet, oerjan? :)
02:25:53 <oerjan> augur: the universe is 2x2, with the left edge and right edge wrapping to each other. one (but not the only) assignment of states to positions is:
02:27:13 -!- adam_d has quit (Ping timeout: 265 seconds).
02:28:13 <augur> you might want to look at larger universes, and see if there are any parallels between them when you wrap one dimension
02:28:36 <augur> or see if there are parallels between when you wrap one dimension and when you wrap a second
02:29:10 <augur> oerjan, if you enjoy this, i can try to put up a site with a bunch of these
02:29:44 <oerjan> for the first, there would be 2*n final cycles where n is the number of rows
02:29:58 <oerjan> one for each going left, the other right
02:31:04 <augur> and each of those cycles would have m incoming paths of length n
02:31:14 <augur> well, half of them would
02:31:30 <oerjan> there are 2*m*n cycles
02:32:09 <augur> there are actually 2*n cycles
02:32:16 <augur> you were right the first time
02:32:33 <oerjan> um s/cycles/states in cycles/
02:32:56 <oerjan> actually, only the top and bottom rows would have incoming paths
02:33:05 <augur> right yes, sorry :)
02:33:50 <augur> now are there any salient relationships between the unwrapped universe and the wrapped universe?
02:34:12 <oerjan> n to each of the m states in the cycle
02:35:10 <oerjan> well the downwards and upward paths still exist in both
02:35:45 <oerjan> the unwrapped universe has only one cycle, along the border
02:36:37 <oerjan> with 2*(m+n) states in it
02:36:42 <augur> look at the state graphs
02:36:51 <augur> keeping the state labels the same in both
02:38:55 <oerjan> well, everything _not_ approaching a border is of course the same
02:39:17 <augur> you mean everything that _is_ approaching a border
02:39:23 <augur> well, half the borders
02:39:26 <augur> because half the borders remain
02:40:05 <oerjan> by approaching i mean being next to, about to collide with it or pass through
02:40:32 <oerjan> and yeah only the changed borders
02:40:48 -!- Gracenotes has quit (Quit: Leaving).
02:40:53 -!- samosa has joined.
02:41:26 <samosa> What is this channel for?
02:41:43 <oerjan> augur: conclusion, only 2*n edges are actually removed and 2*n added
02:41:51 <oerjan> esoteric programming languages
02:42:36 <samosa> lulz, i mean what does esoteric mean?
02:43:17 <oerjan> in this case it means weird and often useless
02:43:22 <pikhq> Esoteric, (adj.): unusual and not well-known.
02:44:40 <oerjan> ^bf >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
02:45:35 <oerjan> also frequently unreadable
02:45:48 <fungot> mibygl: you don't know what is correct?) not declared in this scope points to *here*" ( or newline).
02:46:34 <oerjan> unfortunately a couple of our bots are missing, including the one with most esolangs in it
02:46:57 <oerjan> on the other hand, fungot is _written_ in one (and implements two others)
02:46:58 <fungot> oerjan: please note how carefully i used capitalization, rather than against mine except for locative-object ( which makes no sense
02:47:37 <mibygl> Can I ask fungot what languages e implements?
02:47:38 <fungot> mibygl: and the best, mmh.
02:47:43 <oerjan> mibygl: um, someone claimed you were == uorygl, is this correct?
02:47:48 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
02:48:08 <mibygl> If I were not uorygl, I would be impersonating uorygl, which is not a nice thing to do.
02:48:24 <mibygl> So fungot only implements two languages? Bah.
02:48:27 <augur> so oerjan, did you want me to put up one of those sites?
02:48:48 <oerjan> you mean having the same last 3 letters is impersonating?
02:48:58 <mibygl> If those letters are "ygl", yes.
02:49:27 <mibygl> On another network, instead of uorygl/mibygl, I'm Warrigal/Mibbigal. That's also an impersonation sort of thing.
02:49:54 <oerjan> augur: i don't think i'll be spending a lot of time on it, honestly. but who knows.
02:50:26 <augur> what if i offered a cash prize for a theory of how to infer properties of the universe from the properties of the causal graph?
02:50:48 <oerjan> mibygl: you have to note that fungot implements those languages _in_ befunge
02:50:49 <fungot> oerjan:, so i'd like to keep the secret weapon secret!" if you eval what magic outputs in javascript, but there would be
02:51:23 <oerjan> (it does not expose befunge itself to others than fizzie, presumably for security reasons)
02:53:22 <oerjan> hm fungot does have definable commands though
02:53:22 <fungot> oerjan: which wasn't that fnord at all
02:53:30 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
02:53:34 -!- sshc has joined.
02:53:49 <oerjan> mibygl: just write a /// interpreter in brainfuck and you'll be all set ;D
02:54:52 <oerjan> Gregor: your bots are missed
02:55:21 -!- pikhq has quit (Read error: Connection reset by peer).
02:55:44 <Gregor> I wish I could figure out what keeps happening to 'em.
02:55:50 -!- HackEgo has joined.
02:55:51 -!- EgoBot has joined.
02:56:38 <oerjan> mibygl: did you see me mention itflabijtslwi in response to your comment about /// and input?
02:57:25 <oerjan> !slashes /*/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,1,\\,0\/\/,\\,\/.\//********/.//.0
02:57:31 <EgoBot> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
03:00:07 -!- sshc has quit (Quit: leaving).
03:01:54 <mibygl> !slashes /!/@@@@//@/####//#/$$$$//$/ nom/om!
03:01:55 <EgoBot> om nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom nom
03:02:28 <mibygl> Now I want to do /// busy beaver stuff.
03:02:46 <mibygl> Try to write the program of length N with the longest finite output.
03:03:34 <mibygl> Call that length ?(N).
03:03:42 * mibygl ponders when ?(N) is first larger than N.
03:04:37 <mibygl> Let's see, /x/yyy/xxx is 10 long and outputs 9, /x/yyyy/xxx is 11 long and outputs 12.
03:05:04 -!- coppro has quit (Ping timeout: 246 seconds).
03:05:47 <mibygl> By using that trick a bunch of times, as I did in that om nom nom thing, you can achieve nearly exponential growth.
03:05:58 <oerjan> seems hard to do something fancier in that short span
03:06:16 <mibygl> Mmkay, what's the best you can do in 80 characters?
03:06:38 -!- pikhq has joined.
03:07:55 <mibygl> Here's a simple attempt: /0/1111//1/2222//2/3333//3/4444//4/5555//5/6666//6/77777//7/88888//8/99999/00000
03:08:31 <mibygl> I think it outputs 2,560,000 characters.
03:08:47 -!- pikhq has quit (Read error: Connection reset by peer).
03:08:49 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@**
03:08:49 <EgoBot> ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
03:09:51 <mibygl> It would be nice if we had a Slashes unescaper.
03:11:14 <mibygl> So the result of that substitution is /*\*/+\+//+\+/*\*\*\*/?
03:14:09 <oerjan> anyway as you can see it doubles the number of **'s
03:14:27 <mibygl> So, /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\// has 38 characters, right?
03:14:42 -!- fax has quit (Quit: Lost terminal).
03:15:16 <mibygl> If you just plopped two in, you'd have four characters to spare...
03:15:43 <mibygl> If you use that twice.
03:16:06 <oerjan> which should give you something 2^2^n
03:16:29 <mibygl> Using two probably doesn't help at all.
03:17:28 -!- pikhq has joined.
03:18:42 -!- pikhq has quit (Read error: Connection reset by peer).
03:19:11 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**++
03:20:12 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**--
03:20:12 <EgoBot> --------------------------------
03:20:25 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\\-\//**--
03:20:26 <EgoBot> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:20:48 <oerjan> oh we're already beyond 80
03:22:47 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:22:59 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:23:25 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:23:25 <EgoBot> ---------------------------------------------------------------
03:23:27 <mibygl> Um, I'd think that the second replacement would replace * with yet anther replacer.
03:24:00 <mibygl> Replace @ with * and * with something else in it.
03:24:26 <mibygl> The first one will generate a bunch of *s; the second one will turn each * into a doubler.
03:24:44 <mibygl> Oh, I see that you're doing something like that already.
03:25:02 <mibygl> Uh, put some spaces in there so I see what's going on.
03:25:27 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\// @@@@ /*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\// ** --
03:25:28 <EgoBot> ---------------------------------------------------------------
03:26:10 <oerjan> i reduced to 3 to keep it below 80 chars
03:26:28 <mibygl> Oh, that actually is what I was looking for.
03:27:05 <oerjan> unfortunately, that causes it to take some more time to get up to speed
03:27:12 <mibygl> Why doesn't that first output a bunch of *?
03:27:20 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**----
03:27:20 <EgoBot> ---------------------------------------------------------------------------------------------------------------------------------------------
03:27:32 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:27:43 <mibygl> Since the first /@/\/... just makes the @s into *s, doesn't it?
03:28:00 <oerjan> that must have been fairly big because it doesn't print anything XD
03:28:07 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:28:07 <EgoBot> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:28:42 <oerjan> um no, it turns the @'s into * 3/2-icaters
03:28:59 -!- pikhq has joined.
03:29:55 <mibygl> So, have you beat the one that uses only one 38er yet?
03:30:10 -!- pikhq has quit (Read error: Connection reset by peer).
03:30:33 <oerjan> well, i _hope_ the thing with 6 @'s above failed to respond because it got really big
03:31:19 <mibygl> Calculate how many it makes!
03:31:45 <oerjan> the 3/2 thing makes that a little awkward :D
03:33:44 -!- pikhq has joined.
03:34:02 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 5
03:34:38 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 6
03:35:22 -!- pikhq has quit (Read error: Connection reset by peer).
03:35:32 <oerjan> it means the 5 @'s produce 13 *'s and the 6 @'s produce 19 *'s
03:35:49 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in iterate m3h 2 !! 1
03:36:21 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [13,19]
03:37:53 <oerjan> um wait that makes no sense
03:38:37 <mibygl> If 19 is all you get, then this is worthless.
03:39:06 <oerjan> the @@@@@ one above printed more than 316 -'s, something is wrong
03:40:01 <oerjan> !haskell let m3h n = 3*d + r where (d,r) = n `quotRem` 2 in map (iterate m3h 2 !!) [1..19]
03:40:03 <EgoBot> [3,4,6,9,13,19,28,42,63,94,141,211,316,474,711,1066,1599,2398,3597]
03:41:07 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@**
03:41:21 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@@**
03:43:09 <oerjan> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
03:43:24 <oerjan> (just checking if my terminal is really 80 wide
03:44:31 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\//@@@@@/*/\/-\\-\/+\\+\/\/+\\+\/-\\-\\-\//**--
03:44:32 <EgoBot> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:45:35 <oerjan> that is _not_ what egobot printed the last time
03:46:24 <oerjan> it had about another line. perhaps that 3597 long one previous caused a bug...
03:46:56 <oerjan> it never printed anything, after all.
03:47:45 <oerjan> anyway 3597 is worthless, as you say, we hadn't even filled in with @'s from the single substitution one
03:49:03 <oerjan> !slashes /@/\/*\\*\/+\\+\/\/+\\+\/*\\*\\*\\*\//@@@@@@@@@@@**
03:49:25 <oerjan> that should be 4096, although it seems to stall egobot again
03:49:33 <EgoBot> ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
03:51:10 <oerjan> !slashes /-**/*-/---****************
03:51:44 <oerjan> hm wait that can be reversed :D
03:52:10 <oerjan> !slashes /-*/**-/--------*
03:52:10 <EgoBot> ****************************************************************************************************************************************************************************************************************************************************************--------
03:52:29 <mibygl> And you can do that lots of times.
03:52:37 <oerjan> _now_ we're kicking :D
03:52:44 <mibygl> Getting something like 2^^14 of them.
03:53:45 <oerjan> !slashes /-*/**-//*-/--*/--*
03:54:14 <oerjan> !slashes /-*/**-//*-/--\*/--*
03:54:14 <EgoBot> --------------------------------****
03:55:13 <oerjan> !slashes /@/\/-*\/**-\/\/*-\/--\\*\//@-*
03:55:52 <oerjan> !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@-*
03:55:58 <oerjan> !slashes /@/\/-\\*\/**\\-\/\/*\\-\/--\\*\//@@-*
03:56:04 -!- Alex3012 has joined.
03:56:23 <oerjan> apparently too much to hope for
03:57:38 <oerjan> !slashes /-*/**-//*-/--\*//-\*/**\-/--*
03:58:31 <oerjan> !slashes /-*/**-/----**
03:58:32 <EgoBot> ********************************----
03:58:50 <oerjan> now why didn't the previous one print the same...
04:00:00 <oerjan> i escaped every relevant *- boundary inside the substitutions that i can see...
04:00:01 <mibygl> What are we hoping for that's too much?
04:00:47 <Sgeo> Quick question about the BSD license: What do I put for "Organization", given that it's myself?
04:00:55 <oerjan> to be able to copy substitutions into @'s, and then apply them to pass - and * doubling past each other four times...
04:00:59 -!- pikhq has joined.
04:01:28 <oerjan> "No, completely chaotic"
04:01:47 <Sgeo> "Neither the name of the Sgeo"
04:02:04 <mibygl> Last time I put an organization into an Organization box, it credited all my work to that organization.
04:02:24 <oerjan> !slashes /-*/**-//*-/--\*/--*
04:02:25 <EgoBot> --------------------------------****
04:02:29 <Sgeo> What's the MIT license like?
04:02:50 <oerjan> !slashes /-*/**-//*-/--\*/-*
04:03:06 <oerjan> !slashes /-*/**-//*-/--\*//-\*/**\-/-*
04:03:07 <EgoBot> ********************************----
04:03:26 <oerjan> that was better. and one more iteration would kill it XD
04:04:41 <oerjan> which means two @'s is too much to hope for again. hm...
04:09:15 <oerjan> -* => **- => ----** => 32*, 4- => 4*2^32-, 32* => 32*2^(4*2^32)*, 4*2^32- => ...
04:10:29 * Sgeo wonders if codepad.org is an inappropriate way to distribute this code
04:14:08 <Sgeo> http://codepad.org/wd8oGuUT
04:14:11 <Sgeo> Such a mess :/
04:20:59 <Sgeo> Python mapping of a C API
04:24:09 <Sgeo> http://forums.activeworlds.com/showthread.php?p=124425#post124425
04:32:31 <oerjan> !slashes /*1/11*//*\*/*//1*/*1+//1+/+1/*****1
04:32:57 <oerjan> !slashes /*1/11*//*\*/*//1*/*\1+//1+/+1/*****1
04:32:58 <EgoBot> *++++++++++++++++++++++++++++++++11111111111111111111111111111111
04:41:24 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//++/+0+//+///(//(((((1)
04:41:25 <EgoBot> 000000000000000000000000000000023
04:44:23 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((1)
04:45:39 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((((1)
04:46:41 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1+/(((((((1)
04:46:42 <EgoBot> (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11+
04:49:28 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+/(((((((1)
04:49:29 <EgoBot> (++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111+
04:50:15 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((((((1)
04:50:32 -!- Gracenotes has joined.
04:51:59 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(11111)
04:52:42 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:01:01 -!- Oranjer has left (?).
05:04:17 -!- sshc has joined.
05:04:22 -!- sshc has quit (Changing host).
05:04:22 -!- sshc has joined.
05:04:27 <mibygl> Hey, you got it to output 1024.
05:04:41 -!- adu has joined.
05:07:45 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:07:58 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:07 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:10 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:12 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:24 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:26 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+11111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:31 <mibygl> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//((((((((((1)
05:08:40 <mibygl> I must say, this function doesn't make much sense.
05:09:15 <mibygl> This is what I get for trying to understand things without analyzing them.
05:09:36 <oerjan> well what you are doing is changing the output base
05:10:42 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 | n <- [2..10]]
05:10:57 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..10]]
05:11:00 <EgoBot> ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024"]
05:11:55 <oerjan> well the parts from 2000 and down, at least
05:13:00 <oerjan> !haskell import Data.Char; import Numeric; main = print [showIntAtBase n intToDigit 1024 "" | n <- [2..12]]
05:13:02 <EgoBot> ["10000000000","1101221","100000","13044","4424","2662","2000","1357","1024","851","714"]
05:14:46 <oerjan> i need to reorder a bit
05:15:20 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(111)
05:15:59 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//41/5//42/6//61/7//44/8//81/9//(+/(//++/+0+//+///(//(((111111111)
05:16:39 -!- Copyleftist has joined.
05:17:13 -!- Copyleftist has quit (Client Quit).
05:17:41 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((111111111)
05:18:25 -!- Copyleftist has joined.
05:18:26 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((((1)
05:18:40 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((1)
05:18:51 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//((((((((1)
05:18:55 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((((((1)
05:19:48 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//(((((111)
05:20:23 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//111()
05:21:08 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//25/7//44/8//45/9//(+/(//++/+0+//+///(//111() 1111() 11111() 111111() 1111111() 11111111() 111111111()
05:21:21 -!- Copyleftist has quit (Client Quit).
05:21:30 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//(+/(//++/+0+//+///(//111() 1111() 11111() 111111() 1111111() 11111111() 111111111()
05:27:07 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1)) 1((1(1)) (1(1(1)) 1(1(1(1)) ((((1)
05:27:07 <EgoBot> 1 2 3 4 5 6 7 8 9 A B 100 110 120 130 14
05:27:39 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1)) 1((1(1)) (1(1(1)) 1(1(1(1)) ((((1)
05:27:40 <EgoBot> 1 2 3 4 5 6 7 8 9 A B C0 D0 E0 F0 10
05:28:53 <oerjan> !slashes /(1/11(//(\(/(//1(/(\1+//1+/+1//)/+//+1111111111111111/1\+//11/2//21/3//22/4//23/5//42/6//43/7//44/8//45/9//46/A//47/B//84/C//85/D//86/E//87/F//(+/(//++/+0+//+///(//1() (1) 1(1) ((1) 1((1) (1(1) 1(1(1) (((1) 1(((1) (1((1) 1(1((1) ((1(1) 1((1(1) (1(1(1) 1(1(1(1) ((((1)
05:28:53 <EgoBot> 1 2 3 4 5 6 7 8 9 A B C D E F 10
05:29:43 <adu> how are you
05:30:43 <oerjan> well i should be going to bed but instead i'm apparently doing number display in /// :)
05:33:58 <adu> i'm writing an arbitrary-precision lib
05:34:16 <adu> which i will use to write a serialization lib
05:34:28 <adu> which i will use to write a scripting language
05:34:48 <adu> which i will use to write simulation software
05:34:57 <adu> which i will use to write artificial intelligence
05:35:05 <adu> which i will use to take over the world !!!
05:35:20 <oerjan> dammit i was going to joke how this would end :D
05:35:49 <oerjan> you missed "write an operating system" in there, though
05:36:00 <adu> no, i don't need to write an os
05:36:10 <adu> that's where the AI comes in
05:36:21 <adu> it will write all the drivers for me
05:36:51 <adu> it will crawl the web for documents about all devices ever made
05:37:25 <adu> it will also reverse engineer Win32 drivers as well
05:37:38 <adu> it will do everyone's homework
05:37:54 <oerjan> um... that's not a good thing?
05:38:10 <adu> which part?
05:38:15 <oerjan> doing everyone's homework
05:38:20 <adu> ya i was jk
05:38:43 <adu> that would be like, some kinda VIP service
05:39:28 <adu> oerjan: what would you have AI do for you?
06:06:02 -!- oerjan has quit (Quit: Good night).
06:06:24 -!- mibygl has quit (Ping timeout: 252 seconds).
06:17:44 -!- samosa has quit (Quit: samosa).
06:53:09 -!- kar8nga has joined.
07:11:55 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:24:03 -!- MizardX has quit (Ping timeout: 276 seconds).
07:35:48 -!- adu has quit (Quit: adu).
07:43:44 -!- kar8nga has quit (Remote host closed the connection).
07:44:46 -!- kar8nga has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:23 <Deewiant> lifthrasiir: PyFunge bug: if ; is the first character in a file, it doesn't work properly
08:16:58 -!- kar8nga has quit (Remote host closed the connection).
08:28:00 -!- kar8nga has joined.
08:40:47 -!- cheater2 has quit (Ping timeout: 258 seconds).
08:54:19 -!- kar8nga has quit (Remote host closed the connection).
09:21:56 -!- MigoMipo has joined.
09:43:01 -!- charlls has quit (Ping timeout: 264 seconds).
09:50:50 <AnMaster> Deewiant, a bit hard to test with mycology though I imagine?
10:00:05 -!- cheater2 has joined.
10:03:19 -!- tombom has joined.
10:49:48 -!- adam_d has joined.
10:50:35 -!- Tritonio_GR has joined.
11:29:16 -!- BeholdMyGlory has joined.
11:29:19 -!- BeholdMyGlory has quit (Changing host).
11:29:19 -!- BeholdMyGlory has joined.
11:39:15 -!- alise has joined.
11:53:21 -!- olsner_ has joined.
12:19:20 <AnMaster> also I found out why I was unable to use some 802.11n networks. Wrong reg domain setting.
12:19:41 <AnMaster> (that issue confused me for months)
12:20:35 <AnMaster> (it was on "world" setting, which is defined as the subset of channels allowed everywhere)
12:22:14 <AnMaster> what were you going to tell it then?
12:22:47 <alise> Actually I was being a jerk to you
12:41:18 <alise> Now where is coppro?
12:48:52 -!- cheater2 has quit (Read error: Connection reset by peer).
12:49:45 -!- cheater2 has joined.
13:06:08 -!- tombom has quit (Quit: Leaving).
13:08:27 -!- olsner_ has quit (Quit: olsner_).
13:38:52 <alise> Oh, dear; an unwinnable game of robotfindskitten.
14:09:09 <Deewiant> AnMaster: Well yes, I'd need a separate file but I won't bother with that for a bug that only shows up in one interpreter
14:20:32 -!- MigoMipo has quit (Remote host closed the connection).
14:25:31 -!- oklopol has joined.
14:38:03 -!- alise has quit (Ping timeout: 258 seconds).
14:52:52 <fizzie> My rfk86 is a bit prone to unwinnables, because the screen is smaller than is typical, but I think I generate the same amount of NKIs.
15:00:30 -!- olsner_ has joined.
15:56:35 -!- mibygl has joined.
16:33:36 -!- olsner_ has quit (Quit: olsner_).
16:43:19 -!- jcp has joined.
16:46:36 -!- BeholdMyGlory has quit (Remote host closed the connection).
17:22:52 -!- Gracenotes has quit (Remote host closed the connection).
18:04:22 -!- adam_d has quit (Ping timeout: 265 seconds).
18:05:02 -!- adam_d has joined.
18:10:35 -!- MizardX has joined.
18:21:18 * Sgeo will try walking outside a bit today
18:22:02 -!- FireFly has joined.
18:59:58 <AnMaster> <alise> Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!?
19:03:04 <AnMaster> also I need to figure out how to make ubuntu call iw reg set SV on boot...
19:06:38 <AnMaster> problem is that it needs to be done before the wlan interface goes up, otherwise it won't take effect for some reason
19:17:40 -!- fax has joined.
19:29:54 -!- MigoMipo has joined.
19:51:50 -!- alise has joined.
19:52:49 <alise> Hello, hello, hello, hello!
19:54:33 <alise> 11:00:34 <AnMaster> fizzie, NKI?
19:54:35 <alise> 10:59:58 <AnMaster> <alise> Oh, dear; an unwinnable game of robotfindskitten. <-- is that possible!?
19:54:38 <alise> Apparently in the flash version.
19:55:04 <AnMaster> alise, I thought the kitten was always generated, but I guess I was wrong
19:55:30 <alise> I am not using my laptop!; I am using the ole' desktop. Not the iMac.
19:55:41 <alise> Is a semicolon after an exclamation mark /really/ valid? I mean, honestly.
19:56:38 -!- coppro has joined.
19:57:25 <AnMaster> alise, perfectly, ! is logical not, and ; is "skip to next ; in path"
19:57:45 <alise> Your wittosity is unmatched, surely.
19:57:49 <alise> In this world. Universe!
20:00:34 -!- BeholdMyGlory has joined.
20:04:07 <fizzie> AnMaster: In rfk86, at least, the kitten is always generated, but it may be unreachable.
20:14:43 -!- alise has quit (Remote host closed the connection).
20:22:57 -!- adam_d_ has joined.
20:23:01 <AnMaster> fizzie, does that even make sense?
20:25:59 -!- adam_d has quit (Ping timeout: 265 seconds).
20:31:38 <fax> where is alise
20:31:39 <fax> fffffffffffffffff
20:44:47 <fizzie> AnMaster: Sure. You can't move diagonally in rfk86, so if you have an object that is surrounded by 4 other objects (in the corner, 2 other objects is enough), you can't ever touch that object. If it happens to be the kitten, you are out of luck.
20:47:42 <fizzie> (You can move diagonally in the official robotfindskitten, but that just means you need more stuff to block the kitten totally.)
20:49:33 <fizzie> And, after all, robot must touch items to determine if they are kitten or not.
20:52:23 <AnMaster> fizzie, I never seen an unreachable object in the "official" one
20:54:48 <fizzie> If you hve a large terminal, it's pretty unlikely. But it's still possible.
20:55:19 <fizzie> With a 20x5 terminal window (where you only get 20x2 cells of grid) it happens more often than not.
20:56:31 <fizzie> And if you make a small enough terminal window, robotfindskitten ends up in an infinite 100%-CPU loop; probably it's trying to place objects randomly and not finding any free slots.
20:59:18 <oklopol> i remember when i was 8 and had that bug
21:09:32 <AnMaster> fizzie, hm terminal is 180x41 according stty size
21:12:15 -!- augur has quit (Ping timeout: 268 seconds).
21:23:26 -!- mibygl has quit (Ping timeout: 252 seconds).
21:42:15 -!- hiato has joined.
21:42:42 -!- MizardX has quit (Ping timeout: 276 seconds).
21:42:44 -!- hiato has changed nick to sheep.
21:42:55 -!- sheep has changed nick to hiato.
21:43:05 -!- augur has joined.
21:45:14 -!- hiato has left (?).
22:05:35 -!- MizardX has joined.
22:20:49 -!- isthac has joined.
22:22:52 * isthac is no entirely satisfied with his nick, wanted something that sounded like it was straight out of lovecraft's work
22:23:46 -!- isthac has changed nick to hiato.
22:27:59 <Gregor> And you stuck with it for so long, too.
22:30:51 <hiato> I know, having withdrawel symptoms as we epeak, but my newly hired councellor says i'll get through it
22:38:34 -!- hiato has left (?).
22:41:17 <Gregor> .za is to South Africa as .ch is to Switzerland.
22:41:26 <Gregor> In that it's not actually short for any /official/ name.
22:43:09 <pikhq> Though, .za would have at least made since if the TLDs were done in '65. :P
22:43:51 <pikhq> (.za is an abbreviation of Zuid-Afrika, Dutch for South Africa. Dutch was an official language there before '65.)
22:49:10 <Gregor> You'd have to go back a bit farther for .ch
22:49:27 <pikhq> Confoederatio Helvetica.
22:49:56 <pikhq> Which actually makes a *little* bit of sense. That's apparently minted on Swiss coins...
22:51:18 <pikhq> (TLD for the Soviet Union)
22:52:40 <Sgeo> There's someone with the email address n@ai
22:53:08 <pikhq> I'd like to see someone with the address root@.
22:53:34 <pikhq> HE ADMINISTERS THE ENTIRE NET
22:58:02 <pikhq> DNS TLDs are fairly ridiculous.
22:58:23 <pikhq> It is reserved for sites in Catalan.
22:58:34 -!- AnMaster has quit (Read error: Connection reset by peer).
22:58:57 <pikhq> (a somewhat obscure Romance language)
23:00:26 -!- AnMaster has joined.
23:01:37 <oklopol> sometimes i like to pretend pikhq never googles anything but actually just happens to know everything
23:02:17 <pikhq> I <3 me Wikipedias.
23:03:21 * pikhq googles "omniscience"
23:04:03 * Sgeo once tried to make a mathematical proof that no omniscient beings existed
23:04:29 <oklopol> there's this wp page about one of our professors that says he studies math and something like alien abductions. i almost asked him about this, but luckily found out that the wp page had actually confused two professors with the same name before
23:04:33 <pikhq> Sgeo: Under what axioms?
23:04:54 * Sgeo didn't QUITE grasp that Turing machines didn't take/need to take input/output, and that not being computable by a turing machine != not knowable
23:05:43 <pikhq> Yeah, a UTM is a machine that can compute any algorithm, not a magic machine that does everything. :P
23:05:53 <pikhq> (that's a UTM + magic oracle)
23:06:13 <pikhq> Hmm. Magic oracle? Me want.
23:15:40 -!- oerjan has joined.
23:28:57 -!- oerjan has quit (Quit: Reboot).
23:31:23 -!- oerjan has joined.
23:34:51 <fizzie> Is hiato's "newly hired councellor" some sort of sneak-dig at the ehird of many names?
23:35:27 <fax> why isn't alise back
23:44:10 -!- Oranjer has joined.
23:56:24 <coppro> Sgeo: the input and output of a TM are the tape
23:59:24 -!- FireFly has quit (Quit: Leaving).
00:00:46 -!- MigoMipo has quit (Ping timeout: 264 seconds).
00:04:01 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:05:04 <AnMaster> fuck gnome 2.30. They *edited* the old icon theme for the worse. It looks ugly as fuck. And no they didn't save the old icon theme under another name as far as I can tell.
00:16:00 <AnMaster> ah here we go. Old version extracted to /usr/share/icons/gnome-previous
00:34:39 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
00:35:50 -!- jcp has joined.
01:38:32 -!- Alex3012_ has joined.
01:39:11 -!- Alex3012 has quit (Ping timeout: 265 seconds).
01:39:15 -!- Alex3012_ has changed nick to Alex3012.
01:45:32 -!- adam_d__ has joined.
01:48:22 -!- adam_d_ has quit (Ping timeout: 265 seconds).
02:01:54 -!- adam_d__ has quit (Ping timeout: 265 seconds).
02:11:47 -!- Oranjer has left (?).
02:19:42 <augur> not just anybooody
02:21:35 <fax> idk I can't figure out what to do now
02:23:47 <fax> for my self :S
02:24:02 <augur> watch the new doctor who episode!
02:24:04 <fax> I understand why you can't trisect an angle :D
02:24:15 <fax> everyone talks about doctor who
02:24:16 <augur> well you CAN trisect an angle
02:24:19 <fax> I haven't been watching it
02:24:23 <augur> just not with a compass and straightedge
02:24:30 <fax> augur want me to tell you i
02:24:31 <fax> augur want me to tell you it
02:37:15 <fax> so are you
02:58:39 <pikhq> By "rape" he of course means "scour one's existence from the earth".
02:59:08 <pikhq> And I'm not sure where that takes me, but in the end, your mom's a whore.
03:07:13 <fax> I bite off augurs hand
03:18:24 <Sgeo> fax, what's the proof?
03:18:42 <fax> Sgeo -- okay
03:19:17 <fax> the first thing is to notice that if we have lengths x and y on our paper -- we can also construct x+y, x-y, xy, x/y using our straightedge and compass
03:20:05 <Sgeo> How do you do xy and x/y?
03:20:12 <fax> the only other thing we can really do is draw a circle and intersect a line with it: analytically this means solving something like x^2+y^2=r^2 against a linear equation -- all in all we can take square roots this way
03:27:05 <fax> you put x and y at right angles
03:30:06 <fax> no you don't sorry
03:30:10 <fax> you put x and 1 at right angles
03:30:18 <fax> then you draw the hypotenuse, and exend it out (forever)
03:30:25 <fax> you need a '1' value to multiply things
03:30:39 <fax> I mean you could just use a thumbwidth or something
03:30:41 <Sgeo> Oh, you're responding to my x*y x/y question
03:30:53 <fax> so this is a triangle with sides, 1:x
03:31:24 <fax> you exend the baseline too, until you find a place where the height down is y, and that gives a (similar) triangle with is y:xy
03:31:37 <fax> to divide numbers you can just reverse this procedure
03:32:52 <fax> Sgeo, so in effect we have a field (have you met this structure from algebra before??)
03:33:13 <Sgeo> I've heard of fields, don't really know what they are. They define certain operations on them?
03:33:39 <fax> well a field is just something which has +,-,*,/ and stuff like (x+y)z = xz+yz
03:34:03 <fax> so we can construct every element of our field with a ruler and compass!
03:34:51 <fax> say our field so far is R, we can adjoin some square roots to get R[sqrt(x)] which is again a field
03:36:11 <fax> obviously constructing an angle is equivalent to constructing it's cosine. In the case of the angle being 360/n it's equivalent to constructing the n-gon right?
03:36:39 * Sgeo is only half paying attention, tbh
03:50:38 -!- fax has quit (Ping timeout: 240 seconds).
06:07:14 -!- oerjan has quit (Quit: Good night).
06:09:47 -!- zzo38 has joined.
06:10:43 <zzo38> I found another esolang called ModanShogi it is based on a shogi game movements
06:10:47 <zzo38> http://github.com/yhara/ShogiModan
06:32:00 * Sgeo can easily imagine writing a Haskell implementation of BF before ever understanding a nice way to write a Python implementation of BF
06:34:01 <Sgeo> Mind you, with Haskell, I can use Parsec
06:34:43 <pikhq> Which is severe overkill for Brainfuck parsing.
06:37:20 <Sgeo> I guess it's healthier to figure out how to do without
06:58:11 <coppro> Sgeo: you saw my parser in Haskell, did you not?
06:58:12 <zzo38> Nobody expects the Spanish Inquisition.
06:58:26 <Sgeo> coppro, um, part of it
06:58:32 <Sgeo> I don't think I saw the full thing
06:58:48 <Sgeo> And at any rate, I want to process everything into BFCmds before processing
06:58:53 <zzo38> And nobody expects the big monster with three tentacles on the same ship either, unless *I* say so.
06:59:26 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24645#a24645
07:00:14 * Sgeo obviously shouldn't have said processing in both places, if that's what you mean
07:01:09 <Sgeo> And yes, I think BFComment can be useful. Say I also want to write a simple optimizer
07:01:19 <Sgeo> Don't need to interpret to do that
07:01:26 <Sgeo> And I can leave comments in place
07:01:49 <Quadrescence> Sgeo: I hope one day you learn python and haskell and maybe even scheme
07:02:11 * Sgeo knows Python fairly well
07:05:43 <Sgeo> Quadrescence, are you going to explain yourself?
07:08:02 <Quadrescence> If a good friend was here, I'd have him explain
07:09:19 -!- dixon has joined.
07:09:59 <dixon> I heard someone was being stupid and wanted to use monadic parsing for brainfuck.
07:10:15 <dixon> Who gets to wear the dummy hat?
07:10:36 * Sgeo wants to see proof that dixon /= Quadrescence
07:10:49 <dixon> AWWW Sgeo GETS TO WEAR THE DUMMY HAT!
07:11:02 <dixon> Well, first you should /msg nickserv info dixon all
07:11:24 <dixon> And see that I've been registered years before Quadrescence with an entirely different account.
07:12:25 <dixon> Then you should stop using monadic parsing, which I'm guessing at least 100 people in this channel told you was a bad idea.
07:13:22 <Sgeo> Overkill == bad idea?
07:14:18 <dixon> It'd be like driving your children to school in a tank.
07:14:28 <dixon> When all you really wanted was side-impact airbags.
07:15:18 <zzo38> Do you think 42 is really the proper answer to life, the universe, and everything, or do you think not?
07:17:02 <zzo38> Quadrescence: Why do you think that, please?
07:18:09 <zzo38> Can you please explain what evidence and how you can come to that conclusion from the given evidence, I would like to know how
07:18:41 <Sgeo> Turing was gay, we in this channel talk about stuff that Turing did a lot, therefore we are all gay.
07:18:55 <zzo38> Sgeo: That's a dumb way.
07:19:11 <zzo38> Perhaps it was true of Turing but it doesn't make that of everyone
07:19:13 <Quadrescence> zzo38: do you mind if I finish these sun chips and mtn dew
07:19:24 <Sgeo> zzo38, no kidding?
07:19:31 <zzo38> Quadrescence: I really don't care. They aren't mine
07:19:34 <dixon> zzo38: He integrated you over a finite portion of a hypergeometric function and realized you swung the wrong way.
07:19:53 <zzo38> I'm actually asexual
07:21:48 <dixon> I have some twins to eat later. I'm waiting for them to arrive :3
07:24:08 <zzo38> (In case you didn't know, I was asking "Why?" to Quadrescence's)
07:25:12 <zzo38> Do you mean "hungry" or "hungwy"?
07:26:12 * Sgeo should really be sleeping
07:27:38 <zzo38> And I have never heard of such a word as "hungwy" and I don't know what it means
07:28:35 <dixon> It's etymologically related to "twat." I would ask if you were familiar, but it seems you've already implied not.
07:37:51 <zzo38> Do you have any idea of making spell in D&D game?
07:40:43 <zzo38> I have ideas to make spell to swap the text contents of two books or scrolls, and also to make the caster's hand fall off, and so on
07:46:04 <zzo38> The real country of freedom is "Pull down to select"
07:49:49 -!- pikhq has quit (Read error: Connection reset by peer).
07:50:36 <zzo38> And when Sevil arrives on the ship, if there is not a big monster with three tentacles arriving on the same ship, something has gone wrong and you have to figure out what's wrong.
07:50:39 -!- zzo38 has quit (Quit: zzo38).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:29 -!- pikhq has joined.
08:15:08 * Sgeo was thinking about how to get the optimizer working, and it helped me figure out a bit of the parsing
08:19:05 * dixon was thinking about how to get Sgeo's brain working, and it helped me figure out that he's probably just hopeless :\
08:24:57 <dixon> I wuv you Sgeo, I do, I'd just wish you'd listen to the four people telling you that you're strangling kittens with oil pipeline.
08:25:09 <Sgeo> I'm not using Parsec
08:25:36 <dixon> I would give you a hug, but I have a tendency to cop a feel.
08:26:02 <Sgeo> I _am_ using a data BFCmd that means I can't just write parseBFChar '+' = BFInc etc
08:27:43 <dixon> You could always try python-llvm, for the lulz.
08:28:22 * Sgeo should be sleeping
08:28:31 <Sgeo> Sleep will probably let me think better when I awake
08:28:36 <Sgeo> It's 3:26AM here
08:29:32 <Sgeo> Either you're rounding, or there's a mysterious 3min difference
08:29:47 <Sgeo> erm, *looks at timestamp* 4min
08:30:25 <dixon> Well, I'm using NTP, so I hope it's not wrong.
08:58:31 -!- FireFly has joined.
09:16:08 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
09:39:26 -!- adam_d has joined.
09:50:30 -!- tombom has joined.
09:54:31 -!- Gracenotes has joined.
10:23:39 -!- olsner_ has joined.
10:26:06 -!- MigoMipo has joined.
10:31:38 -!- Tritonio_GR has quit (Quit: Leaving.).
10:47:53 -!- BeholdMyGlory has joined.
11:47:24 -!- BeholdMyGlory has quit (Remote host closed the connection).
12:00:51 -!- olsner_ has quit (Quit: olsner_).
12:32:22 -!- cheater2 has quit (Ping timeout: 268 seconds).
12:38:20 -!- cheater2 has joined.
13:06:44 -!- olsner_ has joined.
13:14:39 -!- fax has joined.
14:17:11 -!- olsner_ has quit (Quit: olsner_).
14:30:16 -!- MigoMipo has quit (Remote host closed the connection).
14:43:14 -!- oerjan has joined.
15:30:02 -!- BeholdMyGlory has joined.
16:13:44 -!- oerjan has quit (Quit: leaving).
16:23:47 -!- MigoMipo has joined.
16:28:01 -!- adam_d has quit (Ping timeout: 265 seconds).
16:39:10 -!- hiato has joined.
16:46:15 -!- hiato has quit (Ping timeout: 276 seconds).
16:47:56 -!- hiato has joined.
16:54:21 * Sgeo goes to write a separate tape manipulation module
16:55:24 * fax does something more interesting than implement brainfuck
16:59:54 * Sgeo wonders if he's over-engineering
17:01:21 -!- jcp has joined.
17:23:21 <AnMaster> what is that sort of "always" falling tone called now again?
17:23:47 <AnMaster> there was one in Mario64, if you went up the final stairs before collecting enough stars
17:24:06 <AnMaster> I remember hearing some name for that sort of sound once
17:25:33 <AnMaster> fizzie, do you happen to know? I think I remember you were involved in a discussion about them here ages ago?
17:31:18 <fizzie> I vaguely remember a discussion about them, but not any specific name. I think the tones themselves were mentioned on some "auditory illusions" page.
17:33:30 <fizzie> Apparently it's sometimes called Shepardβs paradox, though that name seems to be a bit ambiguous.
17:33:36 <fizzie> http://www.moillusions.com/2006/05/audio-optical-illusions.html
17:34:06 <Gregor> "Audio optical illusions"
17:34:33 <fizzie> Everyone seems to call them that. :p
17:34:57 <fizzie> http://angrydylan.blogspot.com/2007/11/shepards-paradox.html is another bit, and you can obviously google more.
17:35:47 <fizzie> http://en.wikipedia.org/wiki/Shepard_tone is also related.
17:35:52 <fizzie> Phew, maybe that was enough linkery.
17:37:52 -!- olsner_ has joined.
17:39:41 <Gregor> That's a lot less of a trick than I originally assumed it might be :P
17:43:29 <hiato> I wonder if someone owns that
17:43:51 <AnMaster> www.com.com seems to redirect to cnet
17:44:00 <AnMaster> so presumably they own www.www.com.com too
17:44:02 <Deewiant> It's a subdomain of com.com, which belongs to cnet
17:45:14 <hiato> http://org.org/ --- wth is this place?
17:46:19 <fizzie> Someone's random photos is what it looks like.
17:46:31 <AnMaster> fizzie, why not call it audio illusions instead?
17:46:41 <AnMaster> I mean, there is no good reason to include the word optical there
17:46:57 <hiato> meh, with such n awesome name
17:47:09 <AnMaster> unlike if you were to use the Swedish word for optical illusions: "synvillor" where "syn" refers to "sight"
17:47:27 <AnMaster> calling it "ljudsynvillor" would be quite reasonable then
17:47:56 <AnMaster> (because "villor" alone means nothing related to illusions. It means "villas". Go figure)
17:48:12 <AnMaster> I guess ljudvillor would be interpretable too
17:49:30 * Sgeo wonders if his decision to make moveRight :: Tape a -> Maybe (Tape a) will just confuse him beyond all home
17:51:11 <hiato> Sgeo: BF in Haskell? I have but one question: why?
17:55:23 <AnMaster> Sgeo, won't moving right always be possible?
17:55:36 <AnMaster> while moving left might hit the start
17:55:57 <AnMaster> hiato, then it will always be possible in both directions
17:56:20 <hiato> yeah, that's how i'd do it
17:56:50 <Sgeo> Well, I want there to be several kinds of tape
17:57:03 <Sgeo> It's possible to make tape unbounded at both ends, or bounded at both ends
17:57:40 <AnMaster> hiato, nah I would do infinite tape upwards, but finite downwards
17:57:44 <Sgeo> data Tape a = Tape [a] a [a]
17:57:45 -!- coppro has quit (Ping timeout: 276 seconds).
17:57:59 <Sgeo> With the head of each list being the element closest to the head
17:58:03 <AnMaster> while infinite in both directions would be an analogy to Z
17:58:05 <Sgeo> erm, tape head
17:58:11 <fax> uphill both ways
17:58:26 <AnMaster> your tape hiato would be an analogy to N modulo x
17:59:02 * AnMaster wonders what a tape analogous to Q or R would be
17:59:16 <AnMaster> also what a finite, non-wrapping one would be
17:59:41 <Sgeo> How would I make a tape that wraps? let the_list = [0,0,0,0,0] in Tape (reverse the_list) 0 the_liist?
18:00:01 <Sgeo> No, I don't.. think so
18:00:03 <fax> Sgeo: it's impossible
18:00:04 <AnMaster> now I want an uncountably infinite bf tape :(
18:00:29 <hiato> I donno, I just find it easier to give a generous length, then rotate tape as needed, always working on the first element
18:00:34 <AnMaster> just take the current position modulo the length of the day
18:01:31 <hiato> tail a ++ [head a]
18:01:44 <AnMaster> then yes it makes sense to use a circular linked list
18:02:15 <fax> no it doesn't
18:02:27 <AnMaster> hiato, if the language is single assignment that would be rather inefficient
18:02:37 <AnMaster> assuming cons style lists that is
18:02:54 <AnMaster> use a double linked circular list
18:02:59 <AnMaster> moving left or right is trivial
18:03:06 <AnMaster> just follow the pointer in the relevant direction
18:03:11 <AnMaster> of course that requires a low level language
18:03:23 <fax> if you are going to use mutable variables then you should make the values mutable rather than the cons
18:03:36 <hiato> AnMaster: yeah, true, but that's the concpt, and if mage lazy it doesn't really matter - all operationse on the first etement only
18:04:10 <AnMaster> hiato, what the heck was "mage" a typo for...
18:04:12 <hiato> New keyboard layout
18:05:12 <AnMaster> I'm perfectly happy with qwerty
18:05:24 <AnMaster> I don't type that much, I code. Meaning I think more than I type
18:05:49 <hiato> naah, just an experiment
18:06:11 <AnMaster> well okay I use inline asm in C sometimes...
18:06:38 <hiato> You're just afraid of it's power
18:07:48 <AnMaster> because what needs 200 lines of C needs maybe 20 lines of erlang. (well usually not quite as dramatic ratio, but when the stuff is heavy on memory handling it might be)
18:08:30 <AnMaster> how many lines of C would it take you to write a program that recurse through a set of directories given on the command line, finding duplicate files
18:08:38 <AnMaster> it should avoid reading files if possible
18:08:44 <AnMaster> by checking the size of the files
18:08:57 <hiato> yeah, well, if people talk efficiency and anything other than ASM, they're just making up useless -etrics
18:09:14 <AnMaster> hiato, well, efficient in programmer time
18:09:39 <AnMaster> I think maybe 1000 lines at most
18:09:53 <AnMaster> but in erlang it took me, what, *checks*
18:10:18 <AnMaster> 232 lines, including comments and blanks
18:10:31 <hiato> Yeah, 10000's because I know no C libraries and would prob implument another language and link to bash or something
18:10:35 <AnMaster> Language Files Code Comment Comment % Blank Total
18:10:35 <AnMaster> ---------------- ----- --------- --------- --------- --------- ---------
18:11:39 <AnMaster> step 1: recurse and read file info, store in a dict the size as key, and append the filename to the value
18:11:48 <AnMaster> so all files with the same size is in the same key
18:13:16 <AnMaster> step 2/3: (2) for each such key it goes through and calculate the hash of each file, stores a 2-tuple {size,md5sum} with filenames (3) for each such key, now it finally checks that they are the same, and we don't have a theoretical hash collision
18:13:25 <AnMaster> step 2/3 are done interleaved to make use of disk cache
18:13:32 <AnMaster> that is, it won't need to read the files in again
18:13:48 <AnMaster> step 2 is done to not have to load as much file data into memory at once
18:13:56 <AnMaster> since I need to run this on fairly large files
18:14:27 <AnMaster> a lot often the files will be much smaller
18:15:10 <hiato> Hmmm, but as you probably considered, tle size comparison isn't really necessary, in fact, i'm sure any decent hash takes it into account anyway
18:15:47 <AnMaster> hiato, the size is to reduce having to read the files from disk
18:15:55 <AnMaster> if there are no two files of the same size
18:16:00 <AnMaster> it doesn't have to read those at all
18:16:10 <AnMaster> since getting the size is way faster than reading the file
18:16:19 <AnMaster> it maps to a simple stat() or such at some level
18:16:37 <hiato> ok, cant fault you then
18:16:38 <AnMaster> hiato, I ran this on the linux source tree with a compiled kernel in it
18:16:50 <AnMaster> it was way faster than a naive bash script that I used before
18:17:07 <AnMaster> as in, 30 seconds vs. 7 minutes
18:17:22 <hiato> Really? I thought pipes and such are lazy
18:18:39 <hiato> wait, I'm slow with kbd
18:19:30 -!- iamtheobject has joined.
18:20:42 <AnMaster> hiato, they just work concurrentlyu
18:21:25 <AnMaster> Gregor, btw wth is up with the topic? You set it last it looks like
18:23:19 <hiato> An efficient implementation in *sh would take into account that pipes as data flow are lazy, more specifically, if used as a source, it will only feed as much as is requested, so you could easily implement a naieve list and glob for files based on hashes andpipes that feed data only to the point that the conditional request fails
18:24:22 <AnMaster> pipes are just concurrent, not lazy
18:24:38 <hiato> and i did all that typing
18:24:39 <AnMaster> and writes block if that buffer is full
18:25:49 <AnMaster> theoretically I could optimise my implementation by doing the md5 calculation while data is being read in
18:25:55 <AnMaster> shouldn't be too hard in erlang
18:26:09 -!- ehirdiphone has joined.
18:26:55 <Sgeo> Hi ehirdiphone
18:27:01 <Sgeo> Why are you on the iPhone?
18:27:04 <hiato> ehirdiphone: phone?
18:27:42 <Sgeo> I think I'm overengineering my BF interpreter
18:27:54 <hiato> Have you seen the cw input interface for the iPhone?
18:28:44 <hiato> Morse Code iput, er, iDitDah or somesuch
18:28:50 -!- olsner_ has quit (Quit: olsner_).
18:28:54 <fax> ehird god dammit
18:30:06 <hiato> ehirdiphone: http://kb1ooo.com/iditdahtext/iDitDahText.html
18:30:51 <pikhq> Sgeo: You are *probably* overengineering it.
18:31:20 <fax> I was wanting to talk to you for ages
18:32:24 <ehirdiphone> I /do/ have to pick things up from the old house.
18:32:26 <AnMaster> ehirdiphone you and fax have been missing each other with like 5 minutes for *days*
18:32:44 <AnMaster> ehirdiphone, have things improved btw?
18:33:04 <pikhq> fax: Dude, some people have real lives. Granted, ehird is normally an exception. Still. :P
18:34:32 <ehirdiphone> ais formulated me getting a girlfriend as the most ludicrous explanation for the unit absence possible. Nuff said :P
18:34:50 <fax> nuff said??
18:35:10 <oklopol> well gf's are extremely easy to get
18:35:37 <oklopol> oh she didn't get the nuff
18:36:02 <fax> wnat the fucking hell is going on
18:36:07 <AnMaster> was watching that video hiato linked
18:36:35 <oklopol> is "pareto optimal" in common usage?
18:36:41 <oklopol> do you all know what it means?
18:38:01 <oklopol> okay that's enough of an answer for me
18:39:16 <ehirdiphone> fax: Be more precise and if you want to talk do.
18:40:24 <fax> ehirdiphone do you know who I am ??
18:40:25 -!- ehirdiphone_ has joined.
18:40:26 -!- ehirdiphone has quit (Remote host closed the connection).
18:40:28 -!- ehirdiphone_ has changed nick to ehirdiphone.
18:42:14 <ehirdiphone> fax: I was under the impression you wanted to talk :P
18:43:01 <Gregor> http://www.nuffy.net/pics/funny/toilate/toilete_signs_08.jpg Little did they know that ZW birds are female :P
18:50:10 <AnMaster> <oklopol> is "pareto optimal" in common usage? <-- what *does* it mean
18:50:49 <AnMaster> <ehirdiphone> fax: Be more precise and if you want to talk do.
18:50:49 <AnMaster> <fax> ehirdiphone do you know who I am ??
18:50:50 <AnMaster> * ehirdiphone_ (~ehirdipho@82.132.248.25) has joined #esoteric
18:50:50 <AnMaster> * ehirdiphone has quit (Remote host closed the connection)
18:50:50 <AnMaster> * ehirdiphone_ is now known as ehirdiphone
18:50:50 <AnMaster> <ehirdiphone> fax: I was under the impression you wanted to talk :P
18:50:55 <AnMaster> ehirdiphone, in case you missed some of that
18:51:32 <ehirdiphone> fax: What do you mean, do you know who I am?
18:51:34 <AnMaster> <Gregor> http://www.nuffy.net/pics/funny/toilate/toilete_signs_08.jpg Little did they know that ZW birds are female :P <-- ZZ? ZW?
18:52:31 <AnMaster> <fax> I'm your father ehirdiphone. <ehirdiphone> NOOOOOOOOOOOOOOOOOOOOOOOOOOO!
18:52:32 <Sgeo> Bleh at there being no Integer -> Char
18:52:36 <Gregor> XX is female, ZW is female, so in fact these bathroom signs are indicating that male birds (and some insects, etc) use the same restroom as female mammals (e.g. humans :P ), and female birds (etc) use the same restroom as male mammals (e.g. humans)
18:53:30 <Sgeo> Maybe I should just have the tape be Tape Char
18:53:37 <AnMaster> Gregor, what is the circle and the triangle symbols?
18:53:40 <Gregor> AnMaster: In the US, that's just about the only word we don't use to refer to the room :P
18:53:48 <Sgeo> Although that complicates + and - slightly
18:53:50 <Gregor> AnMaster: That I can't answer ...
18:53:54 <Sgeo> well, not really, I guess
18:55:04 <AnMaster> Gregor, why call it restrooms?
18:55:10 <AnMaster> Gregor, also what about "loo"?
18:55:20 <AnMaster> "water closet: a toilet in Britain
18:55:20 <AnMaster> wordnetweb.princeton.edu/perl/webwn"
18:55:23 <Gregor> That's a word with no meaning whatsoever here.
18:55:40 <pikhq> "Loo" is just fine. Don't think many people *use* it, but I'm pretty sure most people would understand it just fine.
18:55:56 <Gregor> pikhq: GET OUT OF MY COUNTRY YOU TRAITOR COMMY
18:56:10 <pikhq> AnMaster: "Uh, the toilet's in the bathroom..."
18:56:21 <pikhq> ehirdiphone: "Uh, the toilet's in the bathroom..."
18:56:24 <oklopol> you don't need to call them anything, just say you're gonna take a shit
18:57:13 <oklopol> "i intend to leak fecal matter out of my ass, where should i do this"
18:57:14 <Gregor> OK, OK, so most people would know what "loo" means.
18:57:27 <AnMaster> pikhq, here in Sweden toalett can be both the room, or the equipment. When referred to as the room it is a room which contains only the equipment and handfat (English word slipped my mind, you was your hands there)
18:57:33 <Gregor> But it would be like this "loo" -> "funny British word for bathroom" -> "bathroom"
18:57:38 <Gregor> Not "loo" -> "bathroom"
18:57:40 <AnMaster> it wouldn't be used for a room that contained a bathtub or such as well
18:57:48 <Gregor> Whereas WC would just have people scratching their heads.
18:58:07 <Gregor> AnMaster: "handfat" is officially the greatest word ever.
18:58:09 <AnMaster> WC is common on signs for toilets around here
18:58:14 <pikhq> AnMaster: A room with just a toilet is also a bathroom. ;)
18:58:37 <Gregor> "restroom" and "bathroom" are used interchangeably here.
18:58:39 <pikhq> In floor plans, it's termed a "quarter bath". In spite of having 0 baths.
18:58:41 <Gregor> Not in English, in American vernacular.
18:58:50 <ehirdiphone> I always thought that abba song was about toilets when I was really young
18:59:02 <AnMaster> ehirdiphone, well no one would say "water closet" in the same way as no one says "dihydrogen monoxide"
18:59:19 <AnMaster> as in, I actually heard people using it, but just as a joke
18:59:56 <AnMaster> argh now I feel I have that tune on my head
19:01:01 <AnMaster> ehirdiphone, that "water closet: a toilet in Britain" was from define:loo btw
19:17:03 -!- dixon has quit (Ping timeout: 276 seconds).
19:17:53 <ehirdiphone> Izi USB jai ow zkqodj wkdhf euwixb jdb jd dk ne fdisk zlqpxh
19:18:04 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
19:18:42 <ehirdiphone> Ozowkd abxoxbs fowoxjwj x dj jz. I icori h dj oso odj jebwkxodocidisbbaixieisoso kj jwoxppskjajco ackvpgirurvx iwospwiiqbzbc woxpfkf.
19:19:17 -!- tombom has quit (Quit: Leaving).
19:19:50 -!- dixon has joined.
19:20:43 <AnMaster> -00:01/10:33, and I'm near the end of this file
19:21:02 <hiato> 19:33 < AnMaster> was watching that video hiato linked <------ er?
19:21:06 <AnMaster> funny the way it continues to count
19:21:57 <AnMaster> had a video demoing the thing on it
19:22:54 <hiato> also, at least vlc can count, dont get me started about mpd and streams
19:26:28 -!- dixon has quit (Ping timeout: 240 seconds).
19:26:51 -!- Sgeo has quit (Ping timeout: 265 seconds).
19:28:06 <hiato> It just gives seemingly random numbers. Fair enough, it cant be expected to track position in a stream, but it gives me things like 99:01:01:01
19:28:23 -!- dixon has joined.
19:28:25 <hiato> i mean, what is that? The radio station is older
19:28:44 <hiato> and I've been listening for maybe ten minutes
19:28:45 <AnMaster> hiato, possibly in the current segment?
19:30:33 <AnMaster> hiato, or 99 indicates a stream
19:31:16 <AnMaster> 99:01:01:01 <-- is 99 in hundreds of hours?
19:31:33 <AnMaster> hiato, well what is the last unit in?
19:31:39 <hiato> let me connct now and show you
19:32:51 <hiato> 07:17:47 is the one pice of info
19:33:04 <hiato> the other is my corroct listen time
19:33:07 * AnMaster has a 3 line, 14 column lcd here
19:33:18 <AnMaster> should I make it possible to get a console on it?
19:33:27 <AnMaster> would need a user space daemon for it
19:33:36 <AnMaster> since I need to program it with libusb
19:33:48 <AnMaster> it can only display a limited charset btw
19:34:19 <hiato> oklopol: wouldn't know, never took french
19:34:44 <oklopol> ("isn't ic written i see")
19:36:00 -!- MigoMipo has quit (Read error: Connection reset by peer).
19:37:19 <hiato> AnMaster: 20:30 < AnMaster> since I need to program it with libusb ---> what about a parallel port? Significantly easier
19:37:22 -!- Sgeo has joined.
19:37:54 <Sgeo> My dad stepped on the switch for the power thing that powers the cable modem
19:38:13 <hiato> Gregor: what is a "mandelstam"?
19:38:23 -!- jcp has joined.
19:38:48 <Gregor> It's a verb. "to mandelstam"
19:39:09 <hiato> Ok, and it's meaning is?
19:39:14 -!- dixon has quit (Ping timeout: 276 seconds).
19:39:25 <Gregor> Well ... it's a mandelly kind of ... stamming.
19:41:24 <hiato> Oh? Wouldn't have guessed that, sneaky and deceptive. So it's like like a not so frabtious way of presbiedling
19:47:54 <Sgeo> I think my bftape.hs is good enough
19:48:10 -!- adam_d has joined.
19:48:51 <Sgeo> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660#a24660
19:50:39 <hiato> Sgeo: any particular reason for moveby?
19:50:52 -!- lament has joined.
19:51:05 <Sgeo> The main program stores BF commands as, e.g., BFMove 5
19:51:15 <Sgeo> Instead of just BFRight
19:53:20 <hiato> I like the modifyTapeHead
19:57:24 <Sgeo> It seems like it can take a while to figure out how to write a line of Haskell, but reading it is easy
19:58:09 <Sgeo> And it's generally important to be able to read code later, more so than writing it now..
19:58:46 -!- dixon has joined.
19:59:20 <AnMaster> Gregor, I have a little request for your musical skills
19:59:27 <AnMaster> Gregor, something I think might be interesting
19:59:57 <AnMaster> Gregor, the result of merging the internationale and some of Chopin's music
20:00:04 <AnMaster> I have no idea what it would sound like
20:00:18 <AnMaster> and I lack the skill to do it myself
20:02:09 <AnMaster> Gregor, is that a good or bad sign?
20:02:35 <Gregor> However, I do believe this is probably beyond my skills.
20:03:09 <Gregor> Did you have anything more specific than "Chopin's music"?
20:03:39 <AnMaster> Gregor, well, some suitable music by him. I'm not quite enough expert on him to be able to name a specific piece
20:03:46 <AnMaster> Gregor, but iirc you liked him a lot
20:04:03 <AnMaster> so I assumed you would be able to pick a suitable, slow piece that is typical Chopin
20:04:16 <Gregor> e.g. "Any Chopin Nocturne #whatever" :P
20:05:24 <AnMaster> Gregor, you see, I and some other people were discussing this in another channel (on another network).
20:05:55 <Gregor> I imagine the fact that you've ever heard The Internationale before and I have not has a lot to do with our respective positions on Earth :P
20:07:24 <AnMaster> Gregor, you haven't heard the Internationale?!
20:07:38 <AnMaster> (assuming that "ever" was a typo for "n&"
20:07:54 <Gregor> Maybe I have before, but dismissed it as "extraordinarily generic anthem-sounding music"
20:08:27 <AnMaster> Gregor, it is just that it is about as far as you can get from a Chopin nocturne
20:08:34 <AnMaster> which is why we were discussing merging them
20:09:09 <AnMaster> Gregor, I have no idea if it is possible, and if it is, if the result is interesting
20:09:11 <Gregor> So I assume you were referring to merging not so much in creating a piece of music which is a stylistic merge, but actually mixing recordings of both into some horrible mutant.
20:09:31 <AnMaster> but considered that I once heard a boogie-woogie waltz...
20:09:37 <AnMaster> I don't consider it *impossible*
20:10:22 <oklopol> i'm good at mixing X and deathcore for any value of X, if anyone's interested
20:11:11 <oklopol> to any X/deathcore ratio less than or equal to 0.5, i suspect
20:11:48 <oklopol> that was actually mostly a joke, deathcore isn't what i usually write (although it is what i usually listen to).
20:11:56 <AnMaster> Gregor, http://www.youtube.com/watch?v=eFO0SXf4mw4 (lyrics in Swedish btw, but the music itself should be interesting, the boogie-woogie waltz)
20:12:38 <AnMaster> the composer and perfomer is the famous (in Sweden) comedian Povel Ramel
20:15:26 <oklopol> that's some serious liquid insanity
20:17:36 -!- Alex3012 has quit (Read error: Connection reset by peer).
20:17:36 -!- Sgeo_ has joined.
20:17:36 -!- Alex3012 has joined.
20:19:52 <oklopol> if i mix deathcore and nothing, won't the result be just deathcore
20:20:52 <oklopol> also people generally manage to name the genre of any of my music, except those who hear an electric guitar and say metal or rock
20:20:58 -!- Sgeo has quit (Ping timeout: 265 seconds).
20:21:10 <oklopol> god i'm getting tired of inequalities
20:22:13 <oklopol> there should be a don't somewhere in there
20:22:20 <dixon> X usually denotes a set
20:22:40 <dixon> Or something that isn't a variable.
20:23:17 <oklopol> you mean in something like let (X, S, m) be a measure space, X is not a variable?
20:23:32 <oklopol> or what do you mean by variable
20:23:39 <dixon> A variable varies.
20:23:52 <oklopol> err no it doesn't, in math
20:24:15 <ehirdiphone> a variable is just something you plug in values for
20:24:24 <dixon> x \in R, thus x can VARY to be any value in R
20:24:32 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
20:24:38 <oklopol> and in (X, S, m), X can VARY to be any set
20:24:51 -!- ehirdiphone has joined.
20:25:34 <ehirdiphone> dixon: That's a stupid definition of change.
20:25:46 <dixon> ehirdiphone: Thanks?
20:25:53 <oklopol> absolutely any set can be made a measure space out of
20:26:01 <oklopol> x \in R has more constraints
20:26:38 <oklopol> if you say let x \in R and then prove something about x, you're doing it for any value of x. similary, if you let (X, S, m) be a measure space, and prove something about it, you prove something for any measure space.
20:26:46 <oklopol> what's the difference making x a variable and X not one?
20:26:50 <dixon> oklopol: Vitali set, boiiiiii
20:28:06 <oklopol> i'll assume you were joking above
20:28:55 <dixon> I'll assume you're pretending not to know about non-measurable sets.
20:29:29 <oklopol> i know about non-measurable sets
20:29:45 <oklopol> i just don't see how vitali set made any sense
20:29:52 * Sgeo_ wonders if making his parser blind to too many [ is a bad idea
20:30:46 <Sgeo_> well, too many ] will probably cause it to ignore everything after the extra [
20:30:53 <oklopol> if X is a vitali set, then you can't make a measure space out of it?
20:33:16 <Quadrescence> bad program = doesn't do what it's supposed to
20:33:36 <oklopol> dixon: any set X can be made into a measure space by setting S = {{}, X} and m(a) = 0 for all a \in S
20:33:38 <Sgeo_> This parser is getting uglier by the second :/
20:33:47 <dixon> So if a measurable space has a lebesgue measure, and the Vitali set isn't lebesgue measurable
20:34:23 <dixon> That's wonderful, but is that making a measure space of the Vitali set itself, or a different set containing the vitali set as a subset?
20:34:57 <oklopol> it's making a measure space of the vitali set, X = vitali set. i assumed the vitali set was an example of something X can't be
20:34:59 <Sgeo_> ehirdiphone, is that a joke?
20:35:04 <oklopol> because you said X can't be *absolutely any set*
20:35:04 <Sgeo_> After several people told me NOT to?
20:35:21 <oklopol> and said this is because "vitali set boiiiiii"
20:35:24 <pikhq> ehirdiphone: Brainfuck parsing.
20:35:36 <oklopol> also you can even make R^n into a measure space such that all vitali sets are measurable
20:35:42 <oklopol> i'll leave this as homework
20:35:52 <Sgeo_> ehirdiphone, pikhq and Quadrescence and dixon
20:35:58 <pikhq> And 4 lines out of it. :P
20:36:10 <Sgeo_> pikhq, um, this is much much more than 4 lines
20:36:27 <ehirdiphone> Sgeo_: dixon is a moron and pikhq should be ashamed :P
20:37:07 <Sgeo_> How about this: I do it both ways
20:37:47 <AnMaster> <oklopol> that's some serious liquid insanity <-- what is?
20:38:21 <oklopol> Quadrescence: can you explain his statement about X vs x?
20:38:45 <oklopol> i hope there's a better argument out there than vitali set boiiiii
20:38:56 <Sgeo_> Which is better: A language that's easy to write in but difficult to read, or a language that's easy to read in but difficult to write?
20:39:22 <Quadrescence> oklopol: I don't really remember what the argument was
20:39:41 <Sgeo_> It's just that it seems that Haskell tends to be a bit of the latter, imo
20:40:07 <oklopol> or read logs, it's not a very interesting argument
20:40:26 <Quadrescence> you can reiterate the question/whatever so we are all on the same page
20:40:38 <ehirdiphone> Avoid stating informed opinions until you're informed :P
20:41:03 <oklopol> the claim was that X usually denotes matrices or sets and is therefore not a variable, unlike x which denotes things like real numbers
20:41:20 -!- Oranjer has joined.
20:41:26 <oklopol> and that in x \in R, x can *vary*, whereas if you say (X, S, m) is a measure space, X can't vary
20:41:38 <Quadrescence> dixon: do you agree with what he just said (that this was the claim, be it true or false)
20:41:51 <oklopol> i don't see how there's any distinction between those
20:41:55 <dixon> Quadrescence: I said X can't assume all values.
20:42:13 <dixon> e.g., a non-measurable set
20:42:27 <dixon> Assuming lebesgue measure
20:42:32 <oklopol> that statement i just find plain weird
20:42:43 <oklopol> why couldn't you make a non-measurable set into a measure space
20:43:13 <oklopol> any set made into a measure space as for instance (X, {{}, X}, m), m(a) = 0 for all a
20:43:40 <Sgeo_> Dear Notepad++: Please don't attempt to match [ and ] if they're in single quotes
20:43:57 <dixon> Any negative number can be made nonnegative by adding its inverse. That doesn't make it initially nonegative.
20:43:58 <Quadrescence> Dear Sgeo_, learn to use a decent fucking editor
20:44:13 <oklopol> also x \in R, so even if it was MeasurableSet, X would still be a variable in the same sense that we name an arbitrary element of some class
20:44:47 <oklopol> dixon: what? a vitali set is not in any way inherently non-measurable, as i said there are measures on R^n where vitali sets can be measured.
20:45:01 <oklopol> why? what's the difference?
20:45:09 <dixon> oklopol: It's not Lebesgue measurable!
20:45:16 <oklopol> we say let X \in Set, and we say x \in R
20:45:26 <oklopol> and then we talk about that one x or X that can't change during the discussion
20:45:27 <dixon> I just said "assuming Lebesgue measure" like 10000000 times
20:45:59 <oklopol> err right, the second time i missed that
20:46:01 <Quadrescence> I did for a second but now I don't. When I think variable, I think: forall X in D, f(X)
20:46:13 <oklopol> that's a weird assumption because it's not relevant that X can be non-measurable in some measure
20:46:31 <dixon> The most popular measure :\
20:46:39 <dixon> (among the ladies anyway)
20:46:53 <oklopol> it's still irrelevant if we're talking about whether X can be made into a measure space
20:47:05 <oklopol> obviously there will be some spaces where X is not a measurable set, for any X except {}
20:47:22 <oklopol> and yeah sure it's the most popular
20:47:35 <dixon> Quadrescence: Make a measure space of boobies. Get your sigma algebra all over that :3
20:48:11 <Quadrescence> oklopol: also IIRC you just interchanged "measure space" and "measurable space" a few times
20:48:22 <oklopol> Quadrescence: can you explain why "forall X in D, f(X)", as a definition for variable, makes x a variable in "x \in R", but not X in "X \in Set"
20:48:35 <oklopol> i seriously doubt that, but maybe, let's see
20:48:51 <Quadrescence> oklopol: I can explain if I add more context to the question
20:49:27 <oklopol> i did talk about non-measurable set, and meant non-lebesque measurable, that might not have been clear from context
20:49:30 <Quadrescence> idk this discussion is boring let's listen to Sgeo_ talk about stuff
20:49:31 <Sgeo_> Awesome, this parser seems to actually be working
20:50:14 <Quadrescence> I wonder if his parser is parsing or if he is confusing lexing with parsing or both
20:50:28 <Sgeo_> Well, kind of. Extra ] causes it to cut off, and it seems to automatically put ] at the end if needed
20:51:40 <oklopol> the fact ] is causing him trouble suggests parsing
20:52:23 <oklopol> i ate so much pizza i'm all twitchy
20:52:32 <Quadrescence> oklopol: yes I agree so I suppose he is talking about parsing and not lexing
20:52:38 <oklopol> is that healthy / even possible?
20:52:43 <oklopol> maybe it's caffeine kicking in
20:53:31 <oklopol> Quadrescence: but what do you think, is he using a separate module for the parser and the interpreter
20:54:04 <oklopol> speaking of caffeine, i should probably make some coffee before i get tired
20:54:06 <Quadrescence> probably because he seems to be the type that would overengineer the dick out of something
20:54:19 <dixon> God did that to women
20:54:42 <oklopol> "out of something", so i think god did it to guys
20:54:51 <Sgeo_> I have the definition of the tape and functions that operate on it in a separate module
20:54:59 <oklopol> women are more optimal in many ways
20:55:00 <dixon> oklopol: the pizza is slowing you down
20:55:18 <dixon> I'm going to win our pseudo-argument now >:)
20:55:38 <Quadrescence> Sgeo_: so do you really have a stateful tape? or do you have a thing that generates new tapes from old ones
20:55:50 <oklopol> men are more in the direction of movie-autistic genius in that they suck and own at things more often than women
20:55:51 <Sgeo_> new tape from old ones
20:56:06 <Sgeo_> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24660
20:56:16 <oklopol> which is away from the equilibrium of perfect humanness
20:57:01 <oklopol> dixon: i never considered it a pseudo-argument, although i agree it was a complete waste of everyone's time
20:57:15 <dixon> oklopol: If we didn't have time to waste, we wouldn't be on IRC
20:57:17 <dixon> Haskell is so anti-climactic.
20:57:25 <dixon> You slave for hours and what do you have to show for it? 44 lines.
20:58:12 <oklopol> counted just fine on my screen
20:58:24 <dixon> Have a monospaced font?
20:58:26 <Sgeo_> The modify lines seem to be below the 44
20:58:26 <Quadrescence> dixon: you probs have that alignment junk I hate
20:58:33 <dixon> Quadrescence: DO NOT
20:58:37 <oklopol> yes, i consider non-monospace ugly
20:58:48 <dixon> oklopol: Do you read websites in monospace?
20:59:10 <oklopol> also i disable all features on pages, they are just white on black monospace
20:59:16 <ehirdiphone> I helped him set up windows. Everything on his screen is
20:59:20 <oklopol> ehirdiphone made the theme for me
20:59:20 <dixon> HAHahaAHaHahhahaHahahAHa
20:59:21 <Quadrescence> jk Sgeo_'s idea of using parsec to parse bf was the worst idea
20:59:40 <oklopol> almost everything, some things override it
20:59:56 <oklopol> people are like wtf why is your computer broken
21:00:01 <Quadrescence> well, that is, if you use more than 2 websites on the internet
21:00:06 <dixon> oklopol: That's just because you use Windows.
21:00:21 <oklopol> what's just because? the override?
21:00:58 <Deewiant> If he used something other than Windows they'd say that because it's not Windows
21:01:25 <oklopol> well you see they don't actually say anything because i never take my computer outside and no one even visits me
21:01:31 <oklopol> i mean i meet people but never here
21:01:52 <dixon> oklopol: Sure you did.
21:02:07 <dixon> oklopol: You just go to your measure theory class and home to fap to it.
21:02:16 <dixon> We now know the truth!
21:02:34 <oklopol> measure theory isn't really what i do, measure spaces are just the only thing i was sure everyone would know
21:02:58 <oklopol> not like let [n, k, d]_q R be a linear code
21:03:15 <oklopol> well where everyone = {dixon} :D
21:03:22 <Sgeo_> Why are you asking me?
21:03:30 <oklopol> Sgeo_: i said everyone knows measure spaces
21:03:37 <oklopol> and *someone* decided to take that literally
21:04:08 <Sgeo_> Can you find someone else to assume to be ignorant?
21:04:18 <Quadrescence> yeah fuuuuuuuuk taking "everyone" LITERALLY since there are so many other ways to take it
21:05:18 <AnMaster> ehirdiphone, and other similar clients
21:05:25 <AnMaster> I made erc format it that way too
21:05:28 <dixon> oklopol: Or because it was the highest level of knowledge you could surmount in order to battle my raging ego.
21:05:52 <Sgeo_> Woohoo, I think it's working
21:06:30 <pikhq> AnMaster: That is a fekking bizarre alignment thing.
21:06:50 <AnMaster> pikhq, well no. It is supposed to be like xchat. But Quadrescence's nick is one char longer than the max length
21:06:58 <AnMaster> pikhq, this it overflows into the other area
21:07:04 <pikhq> See, that's bizarro.
21:07:13 <oklopol> the linear code thing was the highest level
21:07:27 <oklopol> i assume you don't care what they are
21:07:31 <pikhq> And that's all that does that.
21:07:46 <AnMaster> pikhq, when I used irssi it did it too
21:07:48 <Sgeo_> http://hpaste.org/fastcgi/hpaste.fcgi/view?id=24662#a24662
21:07:52 <AnMaster> because I set irssi up that way
21:07:53 <Sgeo_> Seems to be somewhat working
21:08:01 <pikhq> AnMaster: Why do you break your IRC clients?
21:08:05 <Sgeo_> Another function will combine BFAlters and BFMoves etc.
21:08:07 <AnMaster> pikhq, I find it *WAY* easier to read
21:08:27 * Sgeo_ wishes it wasn't so ugly
21:08:43 <dixon> Sgeo_: Use another language.
21:09:02 <AnMaster> dixon, then it wouldn't be a bf parser
21:09:21 <Sgeo_> ehirdiphone, any ideas for improvements?
21:09:24 <AnMaster> or do you mean the language the parser is written in?
21:09:27 <dixon> It wouldn't be in Haskell.
21:09:35 <dixon> AnMaster: The language it was written in .
21:10:12 <ehirdiphone> Sgeo_: don't mention parsing the rest twice. using god forbid a monad would avoid such duplication
21:10:34 <oklopol> codes are subsets of Q^n, where Q is some set. if we take Q to be the finite field of size q then Q^n is a vector space over Q, and linear codes of type [n, k, d]_q R are just subvector fields of Q^n of dimension k (d and R are minimum distance between two codewords and max distance between a non-codeword and the code)
21:10:35 <dixon> Keep your sick functors away from my categories
21:11:06 <oklopol> (have to define what you mention)
21:11:12 * Sgeo_ is not sure how he'd use a monad to help here
21:11:49 <oklopol> ew at parsec or linear codes?
21:12:00 <dixon> Linear codes are fine.
21:12:14 <oklopol> if you like coding theory (the theory of uniform length codes) then linear codes are very useful
21:12:38 <dixon> I like cryptography, so some information theoretic properties of coding and error correction come into platy.
21:13:01 <Sgeo_> I'll also do it in Parsec
21:13:06 <Sgeo_> Both ways will be available
21:13:07 <ehirdiphone> dixon: how about whenever anyone mentions haskell you take a big gulp of shut the fuck up- in place of the current pipe the fuck up
21:13:24 <dixon> ehirdiphone: Or I could not. That works better for me.
21:13:49 <Sgeo_> ehirdiphone, the non-Parsec way teaches me stuff, the Parsec way makes it a bit more useful for checking stuff
21:13:51 <Quadrescence> because haskell can be written in pointless/POINT-FREE style
21:14:15 -!- tombom has joined.
21:14:20 -!- tombom has quit (Changing host).
21:14:20 -!- tombom has joined.
21:14:31 -!- coppro has joined.
21:14:32 <oklopol> i know very little cryptography
21:14:41 <ehirdiphone> dixon: Yeah but you're the most irritating person here except me
21:15:03 <dixon> ehirdiphone: I'm also the second-coolest person here.
21:15:09 <dixon> You'll have to live with the paradox.
21:15:38 <oklopol> a i am i ami amiai maimaimaiamiamiamai
21:15:53 <dixon> Peanut is the coolest.
21:15:53 <oklopol> AM I COOLEST I WUN BE COOLAST :<<
21:16:27 <oklopol> ehirdiphone: you don't have an age exception for long.
21:16:36 <dixon> Queen of her domain.
21:16:43 * Sgeo_ wonders how this parser handles lazy lists
21:16:50 <Sgeo_> Erm, that was poorly phrased
21:17:44 <ehirdiphone> My spellchecker has now learned unirritatibg.
21:17:45 <oklopol> well i don't know which country you are now, although i have my guesses, but i consider 15 enough for everyone.
21:18:01 <Sgeo_> It seems to handle strings with _|_ in the middle nicely
21:18:11 <dixon> oklopol: The Swedish have a saying: If it's not in diapers, it's old enough to be stretched.
21:18:38 <dixon> ehirdiphone: Neutral perverts.
21:18:59 <tombom> that was what i was thinking
21:19:11 <ehirdiphone> dixon: the swiss are more neutral and THEY DEFEND CATHOLICISM
21:19:15 <dixon> Or because his boyfriend just turned 15
21:19:28 <ehirdiphone> or well they share a name with the pope's guards
21:20:33 <dixon> Hitting on my young self.
21:20:36 <oklopol> well i do find 15-yo girls sexy like any normal male
21:21:00 <dixon> oklopol: Like you are a vampire
21:21:21 <ehirdiphone> oklopol's bf is me he's saving my penile virginity for 15
21:21:22 <Quadrescence> ehirdiphone: how old are you if you can disclose
21:21:59 <Quadrescence> ehirdiphone: next time just don't answer or say you don't want to
21:22:09 <oklopol> i would tell you but it may have changed since i last heard it
21:22:21 <oklopol> i hate ages, should memorize years of birth instead
21:22:42 <oklopol> oh umm then i wish i hadn't said that
21:22:47 <dixon> oklopol: Birthdays. Using coding theory.
21:22:50 <oklopol> because i have two numbers for your age
21:23:11 <dixon> Has iPhone in his name, obv 14.
21:23:28 <dixon> Because YOU ARE EDUCATED EVIL
21:23:30 <ehirdiphone> dixon: your accuracy is physically painful
21:23:34 <dixon> oklopol: Birthday paradox
21:23:52 <oklopol> was it about time dilation or something
21:24:05 <ehirdiphone> If it redeems me I bought this thing in 2007 when it was still uncool :|
21:24:16 <dixon> oklopol: EARTH HAS SIMULTANEOUS FOUR 25 HOUR DAYS
21:24:22 <dixon> YOU ARE EDUCATED EVIL
21:24:23 <oklopol> ehirdiphone: and you waited until it was cool till you started using it?
21:24:27 <dixon> http://timecube.com
21:24:46 <hiato> YOU STUPID BECAUSE OF EDUCATION LIES
21:24:50 <Sgeo_> It's more likely that there are two people in a room of.. I forgot how many .. who share a birthday than you might intuitively think
21:25:07 <oklopol> i would never have guessed
21:25:31 <Sgeo_> At 23 the chance of there being two people who share a birthday is 50%
21:25:38 <tombom> i forget, are larouchites rather dismissive of negative numbers
21:25:48 <dixon> then as you get more than 23, that goes up rapidly.
21:26:07 <dixon> http://en.wikipedia.org/wiki/Birthday_problem for epic win
21:26:08 <Quadrescence> Sgeo_: iirc? you mean "if i just looked at wikipedia behind this window a second ago correctly"?
21:26:17 <Sgeo_> Quadrescence, I didn't
21:26:30 <dixon> Quadrescence: No, because It old him from my cryptographic memory of awesome
21:26:36 <dixon> ehirdiphone: Yes dear?
21:26:36 <oklopol> i remember 23 from reading some book in like 5th grade
21:26:47 <oklopol> not what it means, but the number in that context
21:26:57 <dixon> ehirdiphone: I keep the house.
21:27:10 <dixon> You can have the kids.
21:27:11 <oklopol> i used to read all sorts of crap as akid
21:27:20 <dixon> Me too. Like Playboy.
21:27:43 <dixon> ehirdiphone: It'd be just like you to not put out and call it quits.
21:27:53 <Quadrescence> dixon, i heard that the library you wrote years ago is becoming an official part of the standard library for the D programming language
21:28:04 <dixon> Why did I ever even think you were so much to want to than do anymore like?
21:28:07 <Quadrescence> it is so cool to meet people who know that much about crypto
21:28:18 <ehirdiphone> Quadrescence: but that means dixon will be
21:28:33 <dixon> Less Internet-famous than Q.
21:28:49 <coppro> D is a bad attempt at fixing C++
21:28:58 <ehirdiphone> cpressey is more famous than walter bright :p
21:29:19 <oklopol> i'm less known than all of you put together
21:29:20 <Quadrescence> D was a very good attempt, and rather successful in terms of the language itself, but politics and everything around it was not good so etc
21:29:40 <coppro> no, D as a language is pretty bad
21:30:01 <ehirdiphone> if not for time cube just become -1 times more famous
21:30:10 <dixon> coppro: D as a language is fine. It's just the implementations that suck.
21:30:18 * Sgeo_ can't seem to copy from GTK+ applications to any other application
21:30:27 <oklopol> no D is okay as a language and the politics is okay, but it has a crappy name
21:30:39 <coppro> and the syntax, while easier to parse than C++'s, is even uglier
21:30:46 <Sgeo_> Wiat, it's working now?
21:30:59 <oklopol> Quadrescence: do you think his code is now working?
21:31:09 <dixon> coppro: Fixes issues with <<<<<<<<this>>>>>>>>.
21:31:16 <Sgeo_> Why is it that all-of-a-sudden, copy/paste from XChat is working. It never worked before
21:31:21 <Deewiant> I think the ! is much better than <>, parsing problems or not
21:32:00 <dixon> ehirdiphone: Much better to parse.
21:32:01 <Quadrescence> ehirdiphone: note that << is an operator in C++, so is >>, so is <, so is >
21:32:03 -!- MizardX has quit (Ping timeout: 276 seconds).
21:32:14 <coppro> dixon: yes, much better to parse. Also uglier
21:33:39 <Quadrescence> anyway it's a fact that if someone thinks D is uglier than C++, then that someone also think bjarne stroopywoopy's mop head is hotter than raven riley after a shower
21:33:54 <Sgeo_> Everything should just use Haskell's type system :D
21:33:55 <Gregor> AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P
21:34:28 <Quadrescence> Especially those things which require values to be a part of types
21:34:49 * Gregor looks up Raven Riley for comparison
21:34:53 <coppro> Haskell's type system is nice but hardly ideal
21:35:34 <Quadrescence> Sgeo_ is just amazed and etc after using haskell for one day and is professing wisdom and whatever he thinks he has obtained
21:35:57 <Sgeo_> I've been using Haskell for more than one day
21:36:09 <Sgeo_> Just haven't written a large project in it before
21:36:38 <pikhq> THOU SHALT HAVE BUT ONE CHARACTER IN YOUR MACHINE ALPHABET. LAMBDA.
21:36:38 <Sgeo_> How about, I started no later than September 26, 2009
21:36:47 <Sgeo_> And have made Haskell puns before then
21:36:54 <pikhq> LAMBDA LAMBDA LAMBDA, LAMBDA LAMBDA.
21:37:07 <Quadrescence> Sgeo_: Oh it seems you've started about 1 day ago
21:37:35 <Sgeo_> ehirdiphone, execution-wise or concept-wise?
21:37:39 <Quadrescence> esp. since just yesterday you said "is it worth learning haskell?!?!?!"
21:40:26 <coppro> Sgeo_: Did you know that Haskell curries?
21:40:45 <pikhq> Did you know that curry is *delicious*?
21:40:48 <Sgeo_> Is there supposed to be a pun based on someone's name in there?
21:41:16 <dixon> Howard you figure that out?
21:41:26 <coppro> the guy the language is named after, even
21:41:42 <pikhq> Haskell Curry. Hooray.
21:41:57 <coppro> for whom both Haskell and currying are named
21:42:49 -!- impomatic has joined.
21:42:51 <dixon> Only an iPhone user would schoenfinkel
21:43:39 <pikhq> I think it should be "Haskelling".
21:43:47 <pikhq> "In Haskell, every function is haskelled."
21:44:09 -!- MigoMipo has joined.
21:44:16 <pikhq> Yeah, well. Schoenfinkel should change his name to Haskell.
21:44:26 <Sgeo_> Wasn't currying invented before Haskell? Haskell Curry did Currying stuff, not Haskell stuff
21:44:35 <dixon> I think programmers should stop sullying great mathematicians by naming shitty languages after them.
21:45:32 <coppro> everyone knows that things in math and science aren't named after the discoverer, but the researcher
21:45:37 <ehirdiphone> dixon: our sole resident /actual/ mathematician has his name in the haskell98 report
21:45:47 <Slereah> http://verrahrubicon.free.fr/Combinator.pdf
21:45:58 <dixon> ehirdiphone: Much to his embarrassment, I'm sure.
21:46:28 <dixon> And he's not your sole resident mathematician.
21:46:50 * Sgeo_ thinks ais523 counts as a mathematician.
21:47:04 <dixon> Not if that's secretly alise.
21:47:14 <pikhq> Sgeo_: More of a computer scientists.
21:47:33 <Sgeo_> ais523 is multiple people now?
21:47:40 <pikhq> dixon: Trolltastic.
21:47:51 <dixon> pikhq: No, I'm serious.
21:48:02 <pikhq> dixon: ... Oerjan == alise wha?
21:48:11 <dixon> pikhq: ais--whatever.
21:48:29 <pikhq> ais523 == oerjan wha?
21:48:34 <ehirdiphone> Admittedly, only Wolfram cared about the implications
21:48:53 <pikhq> ehirdiphone: ... The hell?
21:49:08 <ehirdiphone> I propose we collectively ignore dixon on the grounds that he is duck-fuckingly annoying
21:49:36 <pikhq> dixon: http://en.wikipedia.org/wiki/Alex_Smith_(The_Simplest_Universal_Computer_Proof_contest_winner) Here's ais523's Wikipedia article. :P
21:49:47 <dixon> pikhq: I asked if ais was alise?
21:51:37 <dixon> I don't hate anyone.
21:52:01 <oklopol> i have nothing against dixon but if everyone else ignores him i'll probably start talking to him here
21:52:25 <dixon> Yes, the world needs more sheep. Good call.
21:52:44 <ehirdiphone> ok operation Duck Fucking begins, im no longer highlighting dixon at all
21:53:33 <dixon> I find it somewhat humorous, ehirdiphone, that you equate ignoring me to bestiality.
21:53:51 <Quadrescence> No offense to anyone, but no academic institution would really accept this as something: http://www.wolframscience.com/prizes/tm23/TM23Proof.pdf
21:54:02 <oklopol> you wouldn't stop talking to someone if everyone else just saw your half of all your conversations?
21:54:11 <ehirdiphone> Quadrescence: he wasn't exactly trying for that
21:54:14 <oklopol> why not just talk in pm and spam your half on the channel then
21:54:24 <oklopol> well i guess that's more work
21:54:29 <ehirdiphone> he had his proof wolfram demanded shit he collated it
21:54:50 <ehirdiphone> he was just playing around to find a proof
21:54:56 <oklopol> Quadrescence: why? (i haven't read it)
21:55:09 * Sgeo_ doesn't ignore people
21:55:29 <pikhq> Quadrescence: Yeah, it's up to Wolfram's standards, not anyone sane's standards. :P
21:55:29 <dixon> oklopol: No, I'd keep talking just to annoy the people who were ignoring others. But I'm a bastard.
21:56:06 <ehirdiphone> Quadrescence: Amuway it's being published in Complex Systems
21:56:32 <ehirdiphone> Last I heard they keep asking him to change it
21:57:14 <oklopol> oh it says "I" instead of "we"
21:58:24 <dixon> I think it has more to do with the Impact headings and whatnot.
21:59:28 <ehirdiphone> he just used the default openoffice style iirc :p
22:00:23 <dixon> Really? Looks like Impact Condensed :\
22:01:12 <oklopol> (well of course it looks like shit, it's not monospaced!)
22:01:43 <dixon> Quadrescence: You're just looking at the Perl code.
22:02:13 <dixon> Math can be beautiful.
22:02:15 <Quadrescence> ehirdiphone: actually we are talking about some computer science
22:02:15 -!- jcp has quit (Read error: Connection reset by peer).
22:02:28 <dixon> It's even more beautiful when typeset properly.
22:03:12 <Quadrescence> i was kidding anyway since CS is a subset of math
22:03:33 <dixon> subfield, it retains its arithmetic and is closed under... I'm kidding.
22:03:42 <Quadrescence> also oklopol http://www.file-pasta.com/file/0/funktio_rec.pdf
22:04:07 <ehirdiphone> closed under actual physical COMPUTERS OMG
22:05:15 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
22:05:38 -!- ehirdiphone has joined.
22:06:18 <oklopol> my dream is to become such a great mathematician my papers will be published in journals even though i mandate they be printed in monospace.
22:06:45 <oklopol> well actually my dream is to ever get anything published anywhere, but anyway
22:07:18 -!- charlls has joined.
22:07:26 <ehirdiphone> submit it to Annals of Mathematics then Rejecta Mathematica
22:07:41 <dixon> Keep your Masterpieces in a Personal Journal.
22:08:00 <pikhq> oklopol: What about if you demand that they be in monospace with *unrendered* TeX?
22:08:28 <oklopol> actually i'm fine with math notation
22:09:00 <dixon> Except pochhammer.
22:09:16 <ehirdiphone> I like it apart from the inconsistent/ambiguous bits
22:11:55 <dixon> And there's some abuse of notation with matrices and unit vectors too, but nothing too bad.
22:12:37 <ehirdiphone> |x| is crappy but most of the rest is fine
22:12:58 <ehirdiphone> (1 massively ambiguous 2 starter = terminator)
22:13:22 <dixon> ||x|| is slightly annoying
22:13:40 <dixon> Not so much when typeset, but in IRC, etc.
22:13:52 <ehirdiphone> ||x||, for all those negative cardinalities
22:14:27 <fungot> AnMaster: c-h b c-x o c-s eval c-s etc. automatically translating scheme to human language
22:14:36 <AnMaster> <Gregor> AnMaster: You've inspired me to actually try to learn to /play/ something by Chopin properly :P <-- hahah
22:14:51 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
22:14:53 <oklopol> if x is a set and its cardinality is negative, you need ||
22:16:02 <ehirdiphone> ||.|| looks like very squashed breasts obvs
22:16:29 <AnMaster> you don't have enough imagination
22:16:42 <ehirdiphone> Quadrescence has never seen ||.|| shaped breasts, ha!
22:17:05 <pikhq> Coreutils... GNU coreutils...
22:17:18 <pikhq> I have never before seen a 782 line "cat" program.
22:17:24 <AnMaster> Quadrescence, he knows how to use internet. I doubt he hasn't.
22:17:42 -!- hiato has quit (Quit: underflow).
22:18:03 <AnMaster> pikhq, I have! Last time coreutils cat was mentioned in here.
22:18:29 <pikhq> HOW DO YOU MAKE A FREAKING IMPLEMENTATION OF CAT THAT COMPLEX
22:18:46 <Quadrescence> IDK ADDING ERROR CHECKING AND OTHER THINGS THAT COULD FUCK UP IN C
22:19:04 <pikhq> Quadrescence: Hah.
22:19:10 <AnMaster> ehirdiphone, yes, what with all the quantum state you have to emulate
22:19:13 <pikhq> AnMaster: ... Significantly more than file concatentation.
22:19:14 <ehirdiphone> Quadrescence: 782 lines? you write really bad C
22:19:16 <AnMaster> in case someone puts it in a box
22:19:25 <oklopol> i have seen more boobs online than irl
22:19:32 <pikhq> It does rather a lot of manual buffering, as well.
22:19:32 <AnMaster> pikhq, you could try mmap()ing the file if possible
22:19:37 <oklopol> hope this isn't too much of a shock
22:19:39 <AnMaster> that should add some 20 lines at least
22:19:43 -!- iamtheobject has quit (Quit: Leaving.).
22:19:52 <dixon> oklopol: That's true of anyone. The difference being you have seen boobs IRL. The same cannot be said by ehird.
22:20:02 <pikhq> AnMaster: That would be saner than what this is doing.
22:20:12 <pikhq> Manual. Buffering.
22:20:12 <AnMaster> pikhq, then what *is* it doing
22:20:27 <dixon> cat is so well written
22:20:51 <ehirdiphone> dixon and Quadrescence are currently embracing one another discussing their next contrarian move
22:20:55 <pikhq> Quadrescence: And then there's something called "crazy".
22:21:11