00:13:58 -!- aloril has joined.
00:28:10 -!- ais523 has quit (Read error: Connection reset by peer).
00:28:34 <zzo38> Is it OK in Haskell to have a class C and then a function of type C () => Int -> String and have it not callable unless you define that instance in the main program which imports that library? (Assuming relevant extensions are enabled)
00:29:16 <ion> What’s that useful for?
00:29:52 <zzo38> ion: Why aren't you using ASCII?
00:30:07 <ion> I’m using a superset of ASCII.
00:31:20 <zzo38> There is no point in doing so in this circumstances.
00:31:48 <zzo38> And I am not entirely sure what the things I have is useful for; but I do have some ideas of such uses.
00:33:06 <zzo38> Possibly, if you are defining a partial program. Such as, instead of .hs-boot stuff.
00:34:09 <zzo38> The stuff that needs to be defined in an external program, can simply be class methods (and associated types, too).
00:34:38 <zzo38> Since if they are () -> x then you can have x it is isomorphic.
00:38:38 <zzo38> Do you understand this now?
00:42:09 <oerjan> zzo38: i don't think C () => Int -> String is a possible useful type, since () is not mentioned to the right of =>
00:42:25 <oerjan> and so there will be no way for the class to be looked up
00:43:10 <zzo38> But, maybe the class has a method: f :: t -> Int -> String; Now you can call f () which requires that constraint
00:43:41 <oerjan> yeah that would work. although perhaps making it C Int is better.
00:43:45 <zzo38> (-XFlexibleContexts is required)
00:44:33 <zzo38> oerjan: However, it might be a class with many methods (and maybe even associated types); so () -> x is isomorphic to x you can just include any value you want there, similar to a .hs-boot file but different
00:44:49 <ion> zzo38: If it compiles and is useful, it’s surely ok. :-)
00:46:41 <oerjan> i think this is slightly discouraged in the same way as global variables, since it means you cannot use two different instances in the same program (or at least module)
00:48:20 <oerjan> although it resembles a bit what the reflection package is for
00:48:29 <zzo38> oerjan: Yes; still, in such cases the instance should only be defined in the main program (which compiles into an executable), so no libraries would define such an instance
00:48:31 <oerjan> if () were replaced by a generic type
00:48:59 <zzo38> Such as with a similar use of the .hs-boot feature
00:49:13 <zzo38> Although that isn't the only use of .hs-boot either.
00:49:56 <zzo38> Since .hs-boot still requires such a module to be imported and to exist; the other way I used is exporting instead, and usable in any main program
00:50:30 <zzo38> But yes it is like global variables and can be done in other ways
00:51:22 <zzo38> Of course using the global value passed to every function, still cannot do associated types
00:59:24 -!- oerjan has quit (Quit: Lost terminal).
01:08:09 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
01:08:41 <kallisti> strange that RWH uses this instead of >>, I guess to teach Applicatives?
01:09:26 <zzo38> I do commonly use both <* and *> with Parsec; >>= and join are hardly ever useful with Parsec
01:11:33 <kallisti> > ($ [1..10]) <$> (,) <$> [1..10]
01:11:34 <lambdabot> [(1,[1,2,3,4,5,6,7,8,9,10]),(2,[1,2,3,4,5,6,7,8,9,10]),(3,[1,2,3,4,5,6,7,8,...
01:11:45 <kallisti> > ($ [1..10]) <$> ((,) <$> [1..10])
01:11:46 <lambdabot> [(1,[1,2,3,4,5,6,7,8,9,10]),(2,[1,2,3,4,5,6,7,8,9,10]),(3,[1,2,3,4,5,6,7,8,...
01:12:25 <kallisti> > (<$> [1..10]) <$> ((,) <$> [1..10])
01:12:26 <lambdabot> [[(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(1,10)],[(2,1),(2,2...
01:12:47 <kallisti> > (=<< [1..10]) <$> ((,) <$> [1..10])
01:12:48 <lambdabot> Couldn't match expected type `[b]' against inferred type `(a, b)'
01:20:58 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
01:21:09 <Sgeo> Is *> just <* flipped?
01:21:57 <Sgeo> So it's like >> for applicatives?
01:22:15 <zzo38> Sgeo: Yes it is equivalent
01:28:05 -!- Vorpal has quit (Ping timeout: 252 seconds).
01:32:17 <kallisti> the syntax proposals for typeclass aliases kind of boggle me
01:34:19 <kallisti> the porposals I've seen do something like
01:34:29 <kallisti> class alias (A a, B a, C a) => D a where { ... }
01:34:34 <kallisti> I don't really understand the where clause.
01:34:47 <zzo38> My own proposal is to add a kind & and then do: type D a = (A a, B a, C a) where D is now of kind (* -> &)
01:35:00 <zzo38> And is the one seeming most logical to me.
01:35:32 <kallisti> so D is a typeclass even though it's declared as a type?
01:35:54 <zzo38> kallisti: Well, no it isn't; you cannot declare instances of it. But you can use it in constraints and so on.
01:36:27 <zzo38> (Of course it doesn't work in current Haskell, but if you added the & kind I proposed, then it would work)
01:36:45 <kallisti> I see nothing wrong with treating a typeclass declaration with no where to be an alias, and thus writing an instance for that alias produces an instance for each of the aliased classes.
01:36:47 <zzo38> (Adding the & kind also allows many other things to be done, including having class parameters with that kind)
01:37:04 <kallisti> now that could potentially be useful.
01:37:11 <kallisti> having typeclasses are parameters.
01:37:35 <zzo38> Yes I have often wanted it
01:38:14 <kallisti> you could break MonadPlus into three typeclasses
01:38:23 <kallisti> one with mplus, one with mzero, and one that's an alias for both.
01:38:34 <kallisti> the alias could be named MonadPlus, thus not breaking any code.
01:39:32 <kallisti> you could do similar things with Num.
01:39:48 <zzo38> I have often wanted typeclasses as parameters to classes, though. You are saying something different, but still could work.
01:40:07 <kallisti> yes I'm just saying that typeclass aliases would ease a lot of typeclass reforms.
01:40:20 <kallisti> while minimizing code breakage.
01:40:26 <zzo38> However, if you could do what you say, then you should also be able to do something like instance (A a, B a, C a) where { ... } since the type synonym is just the same thing as that
01:40:44 <kallisti> I guess that's fine, the syntax would need some work.
01:40:58 <zzo38> And once you define the type synonym, then instance D a where { ... } will work too
01:41:20 <zzo38> kallisti: I don't think the syntax needs any work; the syntax is the same as current Haskell syntax, the only difference is a new kind
01:41:40 <kallisti> no I was referring to the use of a tuple in the instance there. I suppose that's fine.
01:41:45 <kallisti> it's the best syntax I can think of.
01:42:07 <kallisti> it's not really a necessary change, but it would add a degree of consistency
01:42:31 <kallisti> and could perhaps be convenient in some situations where you want to define many small but related typeclasses.
01:42:42 <kallisti> for example Enum and Bounded are often related to each.
01:42:54 <zzo38> It isn't a tuple type, however. I suppose it mean the tuple syntax will have two kinds
01:43:13 <zzo38> Such a syntax is already used in constraints, anyways.
01:43:21 <kallisti> yes I don't think there's any diambiguity
01:43:25 <kallisti> because there is no tuple typeclass.
01:44:11 <kallisti> the only problem I see is that typeclasses don't really seem to fit into the kind model.
01:44:16 <kallisti> you can't use a typeclass as a type.
01:44:44 <zzo38> But it would allow many things to be done that do not currently work
01:45:09 <kallisti> if you parameterize a typeclass
01:45:19 <kallisti> what information do you gain? it would be nearly impossible to define a default method, for example.
01:45:33 -!- calamari has quit (Quit: Leaving).
01:45:36 <zzo38> Just like a type of kind (* -> *) cannot be used where a type of kind * is expected, so it is the same kind of thing other ones
01:45:51 <kallisti> hmm, I suppose it makes sense.
01:46:26 <kallisti> you could also do it as a "class family" :P
01:46:38 <zzo38> Another kind I have proposed is the + kind; types of that kind are natural numbers and can be used anywhere that a * kind type is expected, but not the other way around. If a type of kind * is expected and a type of kind + is used, it is the type with that many values.
01:47:00 <kallisti> there's already a kind hierarchy so it requires no special casing.
01:47:13 <zzo38> kallisti: O, yes. OK.
01:47:32 <kallisti> http://hackage.haskell.org/trac/ghc/wiki/IntermediateTypes#KindsareTypes
01:48:23 <kallisti> so + would just go under ?? probably.
01:48:43 <kallisti> where do you think it should go?
01:49:01 <zzo38> Example of & kind in class parameter: class ConstrainedMonad (c :: * -> &) (m :: * -> *) and same thing with Functor. Now ConstrainedMonad itself is of kind ((* -> &) -> (* -> *) -> &)
01:49:38 <kallisti> I think for clarity it would be nice to be able to put the kind annotation within the where.
01:50:06 <zzo38> kallisti: I think under * is probably best; it can become unboxed by the optimizer if necessary
01:50:12 <zzo38> But maybe I am wrong
01:50:32 <kallisti> well ?? implies that it can be used as a function argument type.
01:50:56 <zzo38> That is, put + under * but put & entirely separately from anything in that diagram
01:51:09 -!- nooga has quit (Ping timeout: 245 seconds).
01:51:56 <zzo38> kallisti: I know that, but I was thinking of using natural numbers of kind + as parameters of types that require types of kind *
01:51:59 <kallisti> what does + represent at a value level?
01:52:48 <zzo38> A type of kind + when used as a type of kind * means that is the number of possible values of that type (not counting bottoms).
01:53:31 <zzo38> For example, Maybe (Maybe (Maybe Zero))) is isomorphic to the type 3 except that 3 can be used as + or * so it can be used where types are created using natural numbers (using induction or whatever method)
01:54:06 <zzo38> (Where, in this example, Zero is an uninhabited type)
01:55:23 <kallisti> you could extend the kind hierarchy to have a new universal kind above ?, and include both ? and & under that.
01:55:40 <kallisti> the new root kind would then be the kinds allowed in type parameters.
01:57:28 <kallisti> that's a somewhat complicated tree. :P
01:59:06 -!- zzo38 has quit (Remote host closed the connection).
02:11:55 -!- azaq23 has quit (Read error: Connection reset by peer).
04:14:00 -!- primo has joined.
04:21:20 -!- zzo38 has joined.
04:22:14 <zzo38> FizzBuss TeX now in 142 bytes: \newcount\-\let~\advance\day0\loop~\-1~\day1~\mit\ifnum\-=3\-0Fizz\fi\ifnum\fam=5Buzz\rm\fi\ifvmode\the\day\fi\endgraf\ifnum\day<`d\repeat\bye
04:22:52 <zzo38> I think my original program was 145 bytes.
04:25:51 <zzo38> ion: Do you know how to do things in TeX?
04:27:36 <ion> I haven’t studied it beyond creating documents and doing trivial macro-style things.
04:28:27 <zzo38> What things have you done?
04:29:29 <zzo38> (My FizzBuzz program is a complete program; run TeX and paste this code and it will work. Ensure to use the executable called "tex"; it is not guaranteed to work with anything else, although you can try)
04:29:35 <ion> This is the most advanced thing i’ve done, and it’s still trivial. https://github.com/ion1/amuri/blob/master/lilypond.inc
04:30:53 <zzo38> I notice it uses extensions such as LaTeX and \write18.
04:31:16 <zzo38> My own programs and documents are all Plain TeX without extensions.
04:32:46 <zzo38> There are other extensions such as EncTeX, LuaTeX, pdfTeX, ConTeXt, etc. Sometimes they are used; LaTeX is probably the most common one, although I prefer Plain TeX.
04:33:31 <zzo38> In fact, once I posted a document here, and they couldn't get it to compile on pdfTeX, it only worked with Plain TeX. I don't know why that is, but I never intended it to work with anything other than Plain TeX anyways.
04:33:45 <zzo38> (If you want PDF output, you can still convert it using an external program afterward)
04:40:56 <pikhq_> zzo38: Strictly speaking, pdfTeX isn't an extension to TeX.
04:41:28 <pikhq_> Adding direct PDF output and a lot of microtypography stuff.
04:58:25 <kallisti> would it be sane to design web pages with TeX or LaTeX?
05:00:19 <ion> There’s a bunch of web content generated from LaTeX source.
05:00:23 <zzo38> kallisti: I don't think so; web pages are HTML.
05:00:40 <zzo38> But you should make TeX DVI file for printout instead of using HTML for that purpose, anyways.
05:01:41 <zzo38> pikhq_: There is differences though; I have been told that a document I have made with TeX will not work with pdfTeX. Using the "tex" executable will work.
05:03:36 <zzo38> There might be but it isn't always going to work. Only TeX can properly compile TeX documents; nothing else will.
05:05:02 -!- pikhq_ has quit (Ping timeout: 240 seconds).
05:05:11 -!- pikhq has joined.
05:07:37 <zzo38> But still, you could make a format file for TeX which has commands for creating HTML stuff, and either output HTML directly using \openout and \write, or use DVI specials and convert the DVI using external programs.
05:07:52 <zzo38> But it isn't the best way to do so in my opinion; simply createa printout DVI file instead.
05:09:14 <zzo38> I notice many of the new spam articles on esolang wiki are marked as minor edits; maybe they try to hide from some people that will revert it
05:35:10 -!- Jafet has joined.
05:53:57 -!- kejoki has joined.
06:04:29 <zzo38> quintopia: Kind of; not really.
06:05:09 <quintopia> zzo38: that kind of answer calls for clarification. what exactly do you believe in that arena?
06:05:16 -!- Slereah has quit (Ping timeout: 276 seconds).
06:06:23 <zzo38> It is probably difficult to explain. If you can ask me specific questions, I can try to answer them.
06:06:50 <zzo38> Looking at my Jyte stuff might have helped a little bit except that it is now broken.
06:08:03 <zzo38> You can also try to search the IRC logs for lines I have typed about religion.
06:19:29 -!- pikhq has quit (Read error: Operation timed out).
06:20:58 -!- pikhq has joined.
06:36:53 <oklopol> "<quintopia> ais523: i want a name for the class of music that may or may not have lyrics, but whose focus is directed away from the lyrics. namely, because the voices are being used more as instruments than "creators of meaning"" i put all music in this category. most popular music has rather little content for me.
06:44:00 <oklopol> irregularwebcomic has fun science stuff.
06:44:36 <kejoki> word word word word word ...
06:45:30 <oklopol> did you know that your name means (river in lojnish
06:46:12 <kejoki> unable to parse "(river in lojnish" probable missing delimeter
06:47:24 <kejoki> cool. But I'm still worried about going overtime on that deli meter.
06:49:23 <oklopol> actually it's not a general paren, it's for changing the way a compound word is grouped
06:49:46 <kejoki> lambdabot knows no Zaphod quotes! Shocked, I am.
06:50:40 <oklopol> last week i realized lojban is an awesome language and i should retry learning it
06:50:49 <kejoki> Is unicode actually used enough to be good for anything?
06:50:57 <zzo38> quintopia: If you have better questions (whether about religious stuff or otherwise), feel free to ask; or don't if you don't like to do so
06:52:19 <quintopia> zzo38: i don't know what to ask. are you spiritual? do you believe in any supernatural entities? do you practice any particular rituals? these seem the obvious questions to get a starting point...
06:53:41 <oklopol> i have an easier one, do you slaughter cows?
06:53:59 <kejoki> lojban is a perfect example of Gödel's Incompleteness Theorem moved into a non-abstract space. There is no possibility of creating an unambiguous human language.
06:54:41 <oklopol> err, lojban never tried to be unambiguous
06:55:05 <oklopol> it has like a million words for saying "this part i'll leave ambiguous"
06:55:14 <quintopia> kejoki: its prime feature is it lets you mark where you have left out some information. it makes ambi--yeah that
06:55:18 <oklopol> it tries to have unambiguous parsing, and it does.
06:55:24 <kejoki> syntactically unambiguous.
06:55:36 <oklopol> you claim it doesn't succeed in that?
06:55:51 <kejoki> either that, or KG was worng.
06:56:23 <monqy> yeah I dunno either
06:56:32 <quintopia> Gödel had nothing to say about human language afair
06:56:38 <oklopol> okay bye troll i'm going to work.
06:56:46 <monqy> I'm a bit reminded of itidus
06:56:47 <kejoki> nope. Just formal systems
06:57:10 <kejoki> my apologies. I get a little whacky when it's late.
06:57:50 <Jafet> You can blame Sapir-Whorf.
06:59:35 -!- primo_ has joined.
06:59:54 <kejoki> anyway, my point was that if you produce an unambiguous syntax you've got a formal system.
07:01:17 * kejoki <- is (hopefully) only *slightly* obnoxious, only part of the time.
07:01:26 <Jafet> No, a formal system is a formal system.
07:01:35 <quintopia> well, that may be true, for an interesting enough language
07:01:58 <quintopia> however, most languages are used to describe
07:02:12 <quintopia> they are use-based, not rule-based
07:02:38 -!- primo has quit (Ping timeout: 248 seconds).
07:02:56 <kejoki> got that. But how can you create an unabiguous grammar that is not rule based?
07:03:15 <kejoki> sorry. syntax. It's late.
07:03:40 <zzo38> quintopia: Correct. Those are good questions. I rarely practice religious rituals. I sometimes pray in my mind, or even physically; but this is more a kind of meditation. About supernatural entities, my beliefs might be difficult to describe as yes or no belief in supernatural entities I suppose; but I can say some of my opinions seem to say isomorphism of some parts of different kinds, and I can say I consider myself generally agnostic
07:04:41 <Jafet> kejoki: "subject-verb-object" is a rule that does not produce any kind of formal system.
07:05:09 <quintopia> kejoki: you can specify a syntax in various ways, including string-rewriting rules, but even given a large and fairly nuanced vocabulary, you don't necessarily have a set of axioms
07:07:03 -!- jajaja has joined.
07:07:07 <zzo38> quintopia: Parts of different kinds of religious beliefs. I am somewhat spiritual but not much. I also think is good idea different people can have different opinion on religious things.
07:07:11 <kejoki> Jafet: English is not "designed syntax," it's
07:07:37 <Jafet> Why are you bringing up english?
07:08:40 <kejoki> Jafet: because it's late and that was the first natural language that came to mind. I left off the "as an example"
07:09:14 <quintopia> zzo38: are there any beliefs that you believe it is virtuous to believe? example? are there any religious things you think it is wrong to believe (factually or morally)?
07:09:25 <zzo38> I do think texts and stuff of various religions can be good things to read; but don't simply agree everything they say, think about it yourself, too.
07:09:40 <kejoki> quintopia: unless the axioms are inherent in the rules.
07:10:07 <quintopia> kejoki: you don't seem to have a comprehensive understanding of what a formal system is.
07:10:24 <quintopia> when i say "rules" i mean something distinct from "axioms". every time.
07:11:16 <zzo38> quintopia: There are a few religious things which I believe to be factually wrong and/or morally wrong. There might be things I can consider virtuous to believe (I cannot think of specific examples of this time). But regardless, you must be able to think about these religious/philosophical things for yourself.
07:11:53 <kejoki> the axioms for the arithmetic of Natural numbers weren't set down until long after the rules.
07:12:04 <quintopia> zzo38: i know what i believe. i have thought about it. i'm just asking about you. what's an example of a religious teaching you think is definitely wrong?
07:12:35 <quintopia> kejoki: just now when you said "rules" you meant something that included the axioms.
07:12:43 <quintopia> those aren't the kinds of rules i mean.
07:13:45 <Jafet> There is no such thing as a religious teaching; every thing taught to people is taught by other people
07:14:12 <quintopia> Jafet: teaching is a synonym for doctrine. there is such a thing as religious doctrine.
07:14:41 <zzo38> quintopia: I have discussed "proper religion" on this IRC before. And, I never said you didn't know; that is OK (When I said, it is my opinion that you must be able to think about these things for yourself; I did not mean you (or anyone else) personally; I include myself in this "you"). (Just wait a minute or a few while I think of more to write...)
07:16:41 -!- quintopia has set topic: Brevity is the soul of keeping the link to the logs on my screen. | http://codu.org/logs/_esoteric/.
07:16:46 <zzo38> Many religious teachings can be good things to have if you do not simply blindly follow them. There may be very old religions, where some of the things they described would be factually wrong; however, some kinds of their spirituality might do (maybe). Morally is more difficult, since circumstances are also dependended.
07:18:00 <quintopia> "dependended" this is now my favorite word
07:18:02 <zzo38> However, religion should be unrestricted (restrictions include: copyright, patents, the government forcing you to follow a particular religion, and so on).
07:18:44 <quintopia> what? you mean i shouldn't be allowed to patent my religious rituals?
07:19:02 <pikhq> quintopia: No, you don't get to pull a Hubbard. :)
07:19:33 <kejoki> Suppose I have systems S and S', and they are the same, except that I have an axiom in S' that is a rule in S. Possible, or not?
07:19:55 <zzo38> quintopia: Yes; that is part of what I mean. (Of course it is simply my opinion; but once you read it you should still possibly consider it since things can be written you can learn from it)
07:20:17 <zzo38> Religion may be more important for some people than for others, and that is a good thing and as it should be.
07:20:39 <quintopia> zzo38: if i were to patent my religious rituals, their descriptions become open source, since they are published by the patent office. takes all the mystery out my mysteries, dunnit?
07:21:30 <zzo38> Spiritual stuff and religious stuff can be combined with philosophical stuff to thought
07:21:33 <pikhq> quintopia: That's what some people say science does to religion, and yet, last I checked, religion still exists. :)
07:22:23 <quintopia> pikhq: nonetheless, i wouldn't want the whole world to know just exactly what i do with your mother (and with goddess) when she decides to convert.
07:22:25 <zzo38> quintopia: No, they wouldn't become open source until they expired or a proper patent license exists (in either case, the document is still public; it is still open; but "open source" has a different meaning). It can take the mystery out.
07:23:26 <zzo38> quintopia: However, I would prefer, don't do too many secret things that nobody will say; such as bad things; it is sometimes abused so you have to be careful. Church of Scientology (which I consider an improper religion) does do many of these kind of bad things too.
07:23:52 <quintopia> zzo38: name something that you believe in that can never be explained by science
07:24:27 <zzo38> pikhq: Religion can still exist; not everything is the stuff that science removes from religion. Science explains things objectively, and religion can explain things spiritually instead (which is not useful except for such things as meditation and so on).
07:25:03 <zzo38> quintopia: Let me think...
07:27:01 -!- primo_ has quit (Quit: Verlassend).
07:27:22 <zzo38> Whatever beyond the multiverse that would function the multiverse can probably never be explained by science; whether or not it exists. God (in my definitions, a somewhat more abstract than most, so it is more philosophically than religion) is not explainable by science (although beliefs in God might be explainable by science).
07:28:06 <kejoki> quintopia: anything that can't be subjected to experiment, or verified by repeated experiment, can't be explained by science. Science is just a method. The rest of "it" is Natural Philosophy.
07:28:22 <pikhq> kejoki: So, anything that DNE
07:28:27 <zzo38> quintopia: The entire system as a whole plus things outside of the system.
07:28:57 <kejoki> pikhq: DNE is a definition, not an observation. It's a belief.
07:29:25 <pikhq> kejoki: It's a belief in invisible dragons and teapots orbiting Mars.
07:29:29 <zzo38> kejoki: Yes, those are things not explainable by science; but then, you would not even verify its existence in that way (if it is *refuted* by repeated experiment, you can say it does not exist)
07:29:47 <pikhq> And equally ridiculous.
07:30:12 <zzo38> pikhq: Invisible dragons and teapots orbiting Mars are physical objects. Even if they would be difficult to find, they are not the proper way of religion, which should properly deal with spiritual matters rather than physical ones.
07:31:07 <Jafet> I'm sure one of the numerous tiny rocks orbiting Mars may be used passably as a teapot
07:31:11 <quintopia> zzo38: that was directed at you specifically
07:31:38 <zzo38> That is difficult...
07:31:51 <quintopia> Jafet: phobos is probably big enough that a pint of tea at the center could be pressure-heated by gravity ;)
07:32:18 <pikhq> Jafet: But none of them are, most likely, the Utah teapot. :)
07:32:59 <zzo38> Some things are difficult to explain in words, but cannot be explained without words, so what do you want to call it? If you call it a stick, you miss all the other important properties. If you do not call it a stick, you do not say what it is.
07:33:38 <Jafet> This dilemma is easy solved with Wittgenstein
07:36:40 <zzo38> The Catholic Church does have some fictitious saints (once believed to be real, but later found to be mistaken and never actually existed). People still invoke them in their prayer, and can feel better; their existence or lack thereof is unimportant.
07:36:43 <kejoki> quintopia: I'll have to pick up on formal systems after I brush up on formal systems. You won this one, I need to find out how a rule in S can not be axiomatic in S'. A rule may be about manipulating symbols, but afaict an axiom is nothing but a rule that is assumed to be true
07:36:43 <Jafet> Wittgenstein: words have no inherent meaning, language exists to be misunderstood, communication is a crapshoot, humanity sucks
07:37:21 <kejoki> "Wittgenstein was a beery swine..."
07:42:13 <quintopia> kejoki: axioms are such as "zero is a number" and "there is a successor function, such that the successor of a number is a number" and "one is the successor of zero"
07:42:41 <quintopia> rules are like the law of syllogism which let us infer from the previously stated axioms that "one is a number"
07:46:11 <quintopia> syntax is what dictates what sort of statements i can make. aka, the syntactical rule "subject-verb-object" says that "zero is a number" is a well-formed formula (which we take as an axiom)
07:50:58 <kejoki> we rewrite from axioms to conclusions using rules stated in an allowed syntax. This I get. We then use these conclusions as if they were axiomatic to do further rewriting. "conclusion" here is usually the RHS a textbook system. My sloppiness was conflating "rule" and "conclusion".
07:51:37 <quintopia> no, you conflated something else too
07:52:24 <quintopia> inference rules do not have to obey any grammar constraints. indeed, a system may not even be able to coherently describe its inference rules with a well-formed formula
07:52:25 <kejoki> I apologized for say "grammar" when I meant "syntax" way back there.
07:55:10 <kejoki> I bet a compiler writer would disagree with that.
07:55:55 <zzo38> About my earlier comment about God: Actually, I have various ideas of God of which I think of many depending on circumstances and context. Really, there is no objective answer to this question.
07:56:31 <kejoki> but I see your point about inference rules.
07:57:17 <zzo38> So I can write more in other days too.
07:58:03 <quintopia> yeah, it's kind of strange the way compiler builders call specification of the symbol alphabet "syntax" and the syntax/grammar "grammar". really they should just be "this is the part where you use regular languages, and this is the part where you use LALR(1) CFGs"
08:00:06 -!- zzo38 has quit (Remote host closed the connection).
08:07:42 -!- Phantom_Hoover has joined.
08:13:41 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
08:15:16 -!- kejoki has quit (Quit: falling asleep at keyboard.).
08:17:22 -!- Slereah has joined.
09:30:41 -!- esowiki has joined.
09:30:46 -!- esowiki has joined.
09:30:46 -!- esowiki has joined.
09:31:20 -!- esowiki has joined.
09:31:20 -!- glogbot has joined.
09:31:25 -!- esowiki has joined.
09:31:25 -!- esowiki has joined.
09:53:47 -!- monqy has quit (Quit: hello).
09:54:24 -!- ais523 has joined.
09:57:56 -!- jajaja has quit (Ping timeout: 245 seconds).
10:11:26 -!- nooga has quit (Ping timeout: 272 seconds).
10:44:04 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f a
10:46:24 -!- ais523 has quit (Remote host closed the connection).
11:12:11 -!- ais523 has joined.
11:13:52 -!- itidus21 has joined.
11:27:31 -!- derdon has joined.
11:41:07 -!- oerjan has joined.
11:41:25 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
11:41:32 * oerjan murders quintopia in his sleep.
11:41:46 <ais523> oerjan: your sleep, or quintopia's
11:42:06 <oerjan> quintopia's, most likely.
11:42:52 <fizzie> It certainly sounds easier that way.
11:45:32 <oerjan> oh well, i guess all mediocre things must come to an end.
11:45:43 * oerjan still has no evidence that there are any good ones.
11:46:58 <fizzie> Ohhhhh, you're speaking of the topic.
11:47:07 <fizzie> I thought it was just a random murdering.
11:48:17 -!- ais523 has set topic: http://codu.org/logs/_esoteric/ | Putting the link to the logs at the start of the topic: the latest trendy subversion of 2012.
11:50:17 <fizzie> /_esoteric/logs/codu.org//:http | Best enjoyed using a little-endian browser.
11:50:39 <oerjan> 01:34:29: <kallisti> class alias (A a, B a, C a) => D a where { ... }
11:50:39 <oerjan> 01:34:34: <kallisti> I don't really understand the where clause.
11:51:01 <oerjan> presumably so you can write defaults, like fmap = liftM
11:52:14 <oerjan> half the point is to be able to write Monad instances like they are currently, and still get Functor and Applicative automatically
11:53:39 <oerjan> ideally you want all old code to keep working
11:54:36 -!- derdon has quit (Remote host closed the connection).
11:54:53 <oerjan> or as close to all as possible
12:09:01 <ais523> <dakta> The only sensible default behavior for hitting tab in the absence of defined tab-stops is to move to the next line.
12:09:09 <ais523> finally I found an appropriate place for tabs vs. spaces flamewars
12:09:14 <ais523> and I like dakta's thinking here
12:14:04 <ais523> meanwhile, I managed to get my highest-rated Reddit comment ever by bashing PHP
12:14:16 <ais523> I guess this says more about Reddit than anything else
12:32:25 -!- oerjan has quit (Quit: Lost terminal).
12:34:29 -!- oerjan has joined.
12:35:01 <oerjan> hm interesting, this time i did an experiment with having two simultaneous putty sessions, and only one got disconnected.
12:35:30 <oerjan> ...and i forgot again to remember to get the exact error message, darn.
12:35:58 <oerjan> this makes me more suspicious that the error might be on the nvg servers rather than my isp (knock on wood)
12:38:05 <fizzie> If it was the one with an IRC in it that got disconnected, while an idle one survived, it might be that TCP stacks' thing of only noticing things are broken when there's actually some attempt to send data. Pure speculation, of course.
12:39:37 <oerjan> i've even been careful to make sure to type in the irssi window occasionally
12:40:09 <oerjan> _but_ the disconnect didn't happen while i did that, nor was anything coming from the channel
12:41:00 <oerjan> also i put the putty's on different nvg servers, i've now put up a third one to check that.
12:42:12 <oerjan> i am sure both of those servers have disconnected me recently when in irssi, though
12:44:15 <fizzie> Networking is an inexact science.
12:45:29 <oerjan> yes. i am just hoping the isp didn't actually send a new router that was _worse_ than the old one.
12:47:30 <oerjan> the difference from before is that now obviously the nvg servers _notice_ i've disconnected
12:47:48 <oerjan> because the old irssi process disappears by itself
12:48:17 <oerjan> also, my laptop gives no messages about disconnected cabling
13:00:48 -!- ais523 has quit (Ping timeout: 252 seconds).
13:03:07 -!- ais523 has joined.
13:24:27 -!- pikhq has quit (Read error: Operation timed out).
13:25:32 -!- pikhq has joined.
13:30:54 -!- ais523 has quit (Read error: Operation timed out).
13:32:29 -!- cheater has quit (Ping timeout: 276 seconds).
13:39:23 -!- ais523 has joined.
13:48:16 -!- ais523 has quit (Ping timeout: 252 seconds).
13:48:40 -!- ais523 has joined.
14:01:33 -!- kallisti has quit (Ping timeout: 240 seconds).
14:03:14 -!- ais523 has quit (Ping timeout: 272 seconds).
14:09:45 -!- confuser has joined.
14:23:24 -!- oerjan has quit (Quit: Away from the non-boiling pot).
14:37:27 <itidus21> so i was watching my brother play this puzzle game luxor
14:38:03 <itidus21> at first it seemed mysterious to my eyes, until i started to pay attention and notice what was going on
14:39:53 <itidus21> so the game feeds you a stream of coloured balls, and those balls propagate along a curve and its bad if they reach the end of the curve
14:41:19 <itidus21> and what you can do is insert a coloured ball into the stream sort of like a cannon
14:42:35 <itidus21> and if your insertion causes a sequence of 3 or more then that sequence is removed from the stream and the left and right side connected
14:43:23 <itidus21> and if those 2 sides connected forms a 3 or more sequence they too are removed, and recursive
14:45:47 <itidus21> so it occured to me that skillful play involves setting up nested colours, and i thought aha thats where the fun is in the game
14:49:10 <itidus21> and it occured to me also that this was some kind of, albeit limited, computation
14:59:42 -!- nooga has joined.
15:42:22 -!- nooga has quit (Quit: Changing server).
15:59:57 -!- kallisti has joined.
15:59:57 -!- kallisti has quit (Changing host).
15:59:57 -!- kallisti has joined.
16:00:13 -!- Phantom_Hoover has quit (Remote host closed the connection).
16:02:19 -!- Phantom_Hoover has joined.
16:31:05 -!- Ngevd has joined.
16:31:20 -!- ais523 has joined.
16:34:48 <ais523> hmm, I got a reply from one of the MEPs I emailed about ACTA
16:35:28 <ais523> it was from an MEP who used to be part of UKIP, left it, and stood for the UK's Libertarian Party in a general election, and is currently an independent
16:35:34 <ais523> guess what her stance on ACTA is :)
16:35:42 <Ngevd> I like today's Gunnerkrigg Court
16:36:10 <ais523> I also got a form letter back from the Conservatives saying that they'd bring it to the attention of the relevant people
16:52:02 -!- ais523_ has joined.
16:52:17 -!- ais523 has quit (Disconnected by services).
16:52:22 -!- ais523_ has changed nick to ais523.
16:52:31 -!- Ngevd has quit (Read error: Connection reset by peer).
16:53:02 -!- oklopol has quit (Ping timeout: 252 seconds).
16:58:23 -!- oklopol has joined.
17:06:53 -!- augur has quit (Remote host closed the connection).
17:11:36 <lambdabot> forall b (m :: * -> *) c a. (Monad m) => (b -> m c) -> (a -> m b) -> a -> m c
17:13:07 -!- sebbu has quit (Read error: Connection reset by peer).
17:13:41 -!- sebbu has joined.
17:13:41 -!- sebbu has quit (Changing host).
17:13:41 -!- sebbu has joined.
17:24:28 * Sgeo witnesses elliott be wrong about something
17:24:29 -!- Gregor has set topic: Putting the link to the logs in the middle of the topic: the even-more latest trendy subversion of 2012 | http://codu.org/logs/_esoteric/ | Putting the link to the logs at the start of the topic: the latest trendy subversion of 2012.
17:30:22 <fizzie> Putting the http:// link all over codu.org the place in the /logs topic: the utter-lattermost /_esoteric trendy subversion of 2012 /
17:33:29 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b
17:34:39 <quintopia> any word on why oerjan murthered me?
17:35:04 <ais523> quintopia: because you moved the log links off oerjan's screen
17:35:25 <ais523> Gregor has probably just done the same thing
17:35:28 <ais523> so may be in trouble at this point
17:40:48 <ais523> Phantom_Hoover: have you seen Backslash Calculus?
17:40:52 <ais523> quintopia: I guess it has limited width
17:41:31 <quintopia> so my shortening of the topic should have brought the log link onto his screen, not pushed it off...
17:41:59 <ais523> hmm, oerjan implied it was a lengthening
17:42:41 <fizzie> ais523: I thought it was just the wipeout of the long-running optator stuff.
17:42:58 <ais523> perhaps quintopia has been murded unjustly!
17:43:28 -!- augur has joined.
18:09:39 <Phantom_Hoover> <ais523> Phantom_Hoover: have you seen Backslash Calculus?
18:10:00 <ais523> Phantom_Hoover: what do you think of the BF-like syntax?
18:10:10 <ais523> I'm reasonably sure it's an attempt to troll someone, but am not entirely sure who
18:10:12 <ais523> and was wondering if it was you
18:11:23 <ais523> well, the whole language is a (usable) joke
18:11:43 <ais523> INTERCAL-style or whitespace-style joke, not unneccessary-style joke
18:32:43 -!- Vorpal has joined.
18:49:37 -!- Ngevd has joined.
18:52:45 -!- azaq23 has joined.
18:53:00 -!- azaq23 has quit (Max SendQ exceeded).
18:54:00 -!- azaq23 has joined.
18:54:24 -!- kallisti has quit (Ping timeout: 252 seconds).
19:17:31 -!- Taneb has joined.
19:18:42 -!- Ngevd has quit (Ping timeout: 245 seconds).
19:23:08 -!- Taneb has changed nick to Ngevd.
19:51:35 -!- Frooxius has quit (Quit: ChatZilla 0.9.88-rdmsoft [XULRunner 1.9.0.17/2009122204]).
19:52:06 -!- Frooxius has joined.
20:01:00 -!- oerjan has joined.
20:04:13 <oerjan> <ais523> perhaps quintopia has been murded unjustly! <-- IMPOSSIBLE
20:07:01 <oerjan> * Sgeo witnesses elliott be wrong about something <-- that's what he gets for leaving #esoteric
20:13:16 -!- Ngevd has quit (Read error: Connection reset by peer).
20:13:38 -!- Ngevd has joined.
20:36:58 -!- Ngevd has quit (Quit: Goodbye).
20:40:11 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
20:53:29 -!- monqy has joined.
20:54:50 -!- zzo38 has joined.
20:58:41 -!- PiRSquared17 has joined.
21:12:08 -!- sebbu2 has joined.
21:12:09 -!- sebbu2 has quit (Changing host).
21:12:09 -!- sebbu2 has joined.
21:12:41 -!- sebbu has quit (Ping timeout: 276 seconds).
21:15:39 -!- kallisti has joined.
21:15:39 -!- kallisti has quit (Changing host).
21:15:39 -!- kallisti has joined.
21:20:25 -!- oerjan has quit (Quit: Lost terminal).
21:20:29 -!- zzo38 has quit (Remote host closed the connection).
21:20:41 -!- Phantom__Hoover has joined.
21:21:11 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
21:25:42 -!- GreaseMonkey has joined.
21:28:25 -!- sebbu2 has changed nick to sebbu.
21:34:31 -!- kallisti_ has joined.
21:38:23 -!- kallisti has quit (Ping timeout: 248 seconds).
21:52:21 -!- oerjan has joined.
21:54:50 <kallisti_> I guess this is more of a C question than a Haskell question, but it relates to FFI
21:55:05 <kallisti_> the initializer for the Haskell runtime wants a pointer to argc and argv
21:55:27 <kallisti_> I'm running Haskell in an environment where I have no access to an argc and argv. so I'm trying to fabricate argc and argv
21:55:38 <ais523> hmm, why don't you have an argc and an argv?
21:55:41 <kallisti_> hs_init, the initializer, wants argv to be char***
21:55:55 <ais523> 0 and a pointer to a char** containing NULL is technically correct
21:56:02 <ais523> but unusual, and I'm not sure if GHC would like it
21:56:08 <kallisti_> do I need to allocate memory for that? I tried to use a char array within a char* array
21:56:13 <ais523> err, a pointer to an int containing 0, and a pointer to a char** containing NULL
21:56:23 <ais523> kallisti_: right, it should complain at that
21:56:39 <ais523> you'd need to allocate memory because argv is mutable
21:56:44 <ais523> for reasons I don't fully understand
21:56:48 <ais523> but you can do it like this:
21:57:50 <ais523> char argument0[] = "/bin/myprog"; char argument1[] = "-option"; char* argv[] = {argument0, argument1, NULL}; int argc = 2;
21:58:04 <ais523> allowing the arrays to decay into pointers
21:58:11 <kallisti_> that's basically what I said that I'm doing.
21:58:55 <kallisti_> so that the stack allocated memory doesn't disappear (don't actually know if that's a problem. I'm bad at memory management. :P )
21:59:59 <kallisti_> note: expected ‘char ***’ but argument is of type ‘char * (*)[1]’
22:00:05 <kallisti_> I believe pointer decay only happens when you pass an array to a function.
22:00:41 <kallisti_> instead I should make a char[][][]
22:00:51 <kallisti_> and that will decay into the correct type (I think)
22:01:03 <kallisti_> .....or would a cast fix all of this.
22:02:53 <ais523> kallisti_: char *(*)[1] is a function pointer type
22:02:59 <ais523> are you sure you just didn't typo somewhere?
22:04:30 <kallisti_> I have no idea where it could be getting a function pointer....
22:05:47 <kallisti_> gives a warning. however if I define another top-level array and stick fake_argv in that, and then pass that array to hs_init
22:06:45 <kallisti_> char fake_argv[][][] = {{"bayes"}}
22:07:03 -!- Ngevd has joined.
22:07:08 <ais523> kallisti_: but that's an array of array of array
22:07:15 <ais523> you can't decay anything but the outermost level to a pointer
22:07:28 <kallisti_> oh okay, that's what I thought actually.
22:07:42 <kallisti_> I'm guessing this would give me the same warning.
22:07:58 <ais523> err, now I'm flummoxed as to what, if anything, that means
22:08:09 <ais523> I think it's just a parse error
22:08:14 <kallisti_> did I mention that I'm really really bad at C.
22:09:11 <kallisti_> bayes.c:14:1: warning: braces around scalar initializer
22:09:14 <ais523> have you tried my suggestion?
22:09:26 <kallisti_> the first one? yes I tried it before it was even suggested.
22:10:23 <kallisti_> ...it was the warning that I was originally given
22:10:28 <kallisti_> it's the reason I asked the question. :P
22:10:51 <kallisti_> anyway I've found a way that works but it seems incredibly silly to me.
22:11:02 -!- augur has quit (Remote host closed the connection).
22:13:14 <kallisti_> char **fake_argv_ref[] = {fake_argv};
22:13:29 <kallisti_> but is incredibly silly looking :P
22:14:25 -!- Ngevd has quit (Read error: Connection reset by peer).
22:19:31 -!- PiRSquared17 has quit (Quit: .).
22:21:50 <Gregor> ais523: I want some IOCCC /results/!
22:22:09 <ais523> Gregor: didn't they take a really really really long time last time?
22:22:13 <ais523> I doubt they'll be fast this time :)
22:24:44 <Gregor> I don't know how long they took last time.
22:30:46 <oerjan> just five years or so.
22:32:23 <Gregor> Not to /judge/ .... ???
22:33:36 <ais523> Gregor: yes, they took such a hilariously long time that everyone assumed the contest had died
22:34:17 -!- derdon has joined.
22:38:19 <Gregor> Hmm, I didn't realize that the huge delay had been even before judging. I thought they had finished the whole competition and then just not run a new one.
22:41:46 -!- azaq23 has quit (Quit: Leaving.).
22:47:39 <fizzie> char **fake_argv = ((char*[]){"foo", "bar", 0}); if you want to be all C99-compound-literal about it -- probably can be extended that one more level if you insist, with more horrible syntax -- but the give-the-other-objects-names-too is probably more common.
22:49:31 <Gregor> Uhhh, I don't think that's legal.
22:50:00 <fizzie> As does char ***fake_argv_list = ((char**[]){ ((char*[]){"a","b",0}), ((char*[]){"c","d",0})});
22:50:01 <Gregor> Hm, then I'm either wrong or GCC is very forgiving *shrugs*
22:50:27 <ais523> fizzie: that's incorrect, though, because it violates const-correctness
22:50:38 <fizzie> Why wouldn't it be? Compound literals can be arrays, and an array decays to a pointer to the first element.
22:50:41 <ais523> in particular, argv contains /writable/ strings
22:50:46 <ais523> according to the standard
22:50:52 <Gregor> Well, const correctness is a really boring reason why it's incorrect *shrugs*
22:50:52 <ais523> whereas your argv is populated with string literals
22:51:02 <ais523> and I have seen programs that write to argv
22:51:10 <ais523> even written one, although admittedly it was for the IOCCC
22:51:14 <ais523> (not the most recent one, the one before)
22:51:24 <fizzie> ais523: There's no rule a "fake_argv" needs to contain writable strings in the standard.
22:51:36 <fizzie> (That would be one weird rule.)
22:51:51 <ais523> fizzie: no, the standard's rule is about the real argv
22:51:58 <ais523> but I'm assuming that a fake argv is something that acts like argv
22:52:00 <ais523> apart from not being argv
22:52:58 <fizzie> That's a silly assumption. Especially when paired with such a strong word as "incorrect". There's nothing "incorrect" about that line as it is.
22:54:42 <fizzie> Though I'm a bit unclear about the lifetime of a compound literal in file scope.
22:56:18 <ais523> in file scope, probably the whole program, right?
22:56:33 <fizzie> That's what common sense would suggest.
22:57:13 -!- Jafet has quit (Quit: Leaving.).
22:59:04 <fizzie> Anyway, string literals is still better than string literals and no null-pointer-termination as was seen above.
22:59:41 <fizzie> Oh, right, that one had a writable string. Well, anyway.
23:02:25 <fizzie> There's also the easy fix of simply doing char ***fake_argv_list = ((char**[]){ ((char*[]){ ((char[]){"a"}),((char[]){"b"}),0}), ((char*[]){((char[]){"c"}),((char[]){"d"}),0})});
23:03:05 <ais523> fizzie: oh right, why didn't I think of that?
23:03:19 <ais523> (I'm both joking and serious at once)
23:03:25 <ais523> (because it's both ridiculous, and something I should have thought of)
23:04:21 -!- augur_ has joined.
23:05:44 <fizzie> (Half of those parens are probably unnecessary, I just have this habit of sticking an extra () around the full compound-literal.)
23:06:59 -!- sebbu has quit (Read error: Connection reset by peer).
23:10:33 -!- sebbu has joined.
23:14:33 <ais523> Your search - "sensationalised news for builders" - did not match any documents.
23:17:50 <fizzie> Your search - "build systems for build systems" - did not match any documents.
23:18:39 -!- Jafet has joined.
23:18:39 -!- Jafet has quit (Changing host).
23:18:39 -!- Jafet has joined.
23:25:17 -!- Vorpal has quit (Ping timeout: 276 seconds).
23:25:47 <ais523> fizzie: hmm, that's certainly a cromulent search
23:25:58 <ais523> you need a decent flowcharting tool to draw C-INTERCAL's
23:29:37 <ais523> <spambot> [[Download Stability of Multi-Dimensional Shock Fronts: A New Problem for Linear Hyperbolic Equations pdf ebook. Buy cheap pdf ebooks/audio books for iPhone/iPad/Android/Kindle.]]
23:29:41 <ais523> that's quite the article title
23:35:22 <Gregor> Or ... would I LISTEN to it?!?! HAHA AUDIO BOOK
23:35:50 <oerjan> always make sure your multi-dimensional shock fronts are stable
23:39:31 -!- Gregor has set topic: Putting My Little Pony references in the topic: the even-more-more latest trendy subversion of 2012 | http://codu.org/logs/_esoteric/ | This topic is the WORST. TOPIC. EVER..
23:39:54 <oerjan> i was thinking it was about time with a topic change
23:40:58 <Gregor> I did it wrong anyway.
23:41:05 -!- Gregor has set topic: Putting My Little Pony references in the topic: the even-more-more latest trendy subversion of 2012 | http://codu.org/logs/_esoteric/ | This topic is THE. WORST. POSSIBLE. TOPIC..
23:41:30 <oerjan> but now it's inaccurate.
23:41:45 <Gregor> But at least it's internally consistent.
23:41:55 <oerjan> since the last must certainly have been worse, since you got it wrong
23:42:35 <Gregor> Doesn't the fact that it's an accurate reference to My Little Pony: Friendship is Magic in the #esoteric /topic make it worse? Isn't an accurate reference worse than an inaccurate one, for the sake of topicality?
23:43:51 <oerjan> perhaps. all i know about my little pony is other people's complaints about it.
23:44:13 <Gregor> People who complain about it are terrible people. You shouldn't associate with them.
23:46:27 <ais523> Gregor: perhaps it's a reference to a different My Little Pony series
23:46:33 <ais523> apparently there are four and Friendship is Magic is the only good one
23:46:44 <ais523> (this is close to the extent of my MLP knowledge, apart from some names that have been dropped)
23:47:59 <oerjan> i am somewhat confused by Gregor apparently liking it and still thinking putting it in the topic is horrible
23:48:22 <oerjan> there might be sarcasm involved, i guess
23:49:23 -!- ais523 has quit (Remote host closed the connection).
23:49:53 <oerjan> you made ais523 ragepat again
23:51:15 -!- Systemzwang has quit (Read error: Operation timed out).
23:51:21 -!- Systemzwang has joined.
23:51:56 <oerjan> come see the zwang inherent in the system
23:52:54 <olsner> sorry, that's not systemwang