< 1263514453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Imaginary-base arithmetic is not much different from negative-base arithmetic, since an imaginary-base number may be considered as the interleave of its real and imaginary parts; using INTERCAL-72 notation, < 1263514455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : x(2i) + (2i)y(2i) = x(2i) ¢ y(2i). < 1263514456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :—Wikipedia < 1263514461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, INTERCAL actually used in a serious example < 1263514465 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1263514471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1263514475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we've finally made it, guys < 1263514477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're mainstream! < 1263514478 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that isn't INTERCAL-72 notation < 1263514479 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :though < 1263514490 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it would be more like DO .1 <- ALSDFJSALDFJO@I#U$L!@JOUQE(W < 1263514497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's using its notation for interleave. < 1263514500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, intercal is not line noise. < 1263514506 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty close < 1263514508 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I've coded in it < 1263515480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : we're mainstream! <-- then what to do now < 1263515539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shit this is so fucking difficult < 1263515542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm gonna try gadts < 1263515549 0 :comex!i=comex@c-98-210-192-54.hsd1.ca.comcast.net JOIN :#esoteric < 1263515555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, also ¢ is Princeton syntax for interleave. Isnot $ it for more modern? < 1263515561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"-72" < 1263515576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes I said that < 1263515581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Princeton syntax" < 1263515585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very clearly there < 1263515592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wikipedia says "using INTERCAL-72" < 1263515598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Therefore what you are saying about more modern syntax is irrelevant < 1263515608 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: most modern compilers will accept $, but ¢ is the canonical operator < 1263515608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I was just trying to remmeber < 1263515609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus < 1263515618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it would be more like DO .1 <- ALSDFJSALDFJO@I#U$L!@JOUQE(W <-- you used $ there < 1263515625 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1263515625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1263515627 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that was incidental < 1263515628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He was writing line noise < 1263515641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, true, doesn't change that he included it < 1263515651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and intercal is different line nose IME < 1263515654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :more " for a start < 1263515666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was disagreeing with that before—god, this is fruitless. < 1263515684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I know you were < 1263515684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1263515704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your mom. < 1263515760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The irrelevance of integralosity < 1263515870 0 :augur!n=augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1263515893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wanna be CDATA'd < 1263515898 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that's what she said < 1263515907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do hope you got my pun. < 1263515918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was on The irrelevance of integralosity < 1263515923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not the last line < 1263515928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1263515933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's much better if you read it as the last line. < 1263515935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I already started typing when you wrote it < 1263515948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm? < 1263515968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wanna be CDATA'd → I wanna be sedated (reference to http://en.wikipedia.org/wiki/I_Wanna_Be_Sedated) < 1263515973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"I wanna be sedated" "That's what she said" < 1263515983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1263515993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thus implying that the sexual prowess of the butt of the joke is so limited that women ask to be sedated so that they will not feel it as much. < 1263515997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just call me joke explainer < 1263516047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you are claiming that title? then you will have to duel Ryan North first < 1263516112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Woot it worked < 1263516115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm so happy < 1263516122 0 :soupdragon!unknown@unknown.invalid QUIT :"Leaving" < 1263516158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what did < 1263516186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This Haskell code < 1263516207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plan9port switched to hg? < 1263516279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :From? < 1263516283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cvs < 1263516291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think it's always been hg. < 1263516292 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :there's no ghc for p9, but there's hugs < 1263516300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hugs sucks < 1263516308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, they why is there .cvsignore in there still < 1263516308 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :yea < 1263516319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and lots of related cvs files < 1263516321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Dunno, then. < 1263516379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : My brain just exploded. < 1263516381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : I can't handle pattern bindings for existential or GADT data constructors. < 1263516382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Instead, use a case-expression, or do-notation, to unpack the constructor. < 1263516383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :—GHC < 1263516427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, XD < 1263516440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, are most that funny? < 1263516451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, most of them are just technical and very confusing. < 1263516461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, very confusing. Like? < 1263516467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You end up patternmatching on the first words and the structure of the error message to debug problems. < 1263516473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sec < 1263516478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll get a good one < 1263516508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least gcc errors are usually not very cryptic. Unless you are doing lambda ;P < 1263516512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Inferred type is less polymorphic than expected < 1263516514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Quantified type variable `me' escapes < 1263516515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :g++ on the other hand... < 1263516515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : When checking an existential match that binds < 1263516517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : x :: Element me BODY < 1263516518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : The pattern(s) have type(s): WrapElem BODY < 1263516520 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : The body has type: Element me BODY < 1263516521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In a case alternative: WrapElem x -> x < 1263516523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In the expression: < 1263516524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : case < 1263516526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (decompose (BODY [WrapElem (CDATA "poop")] :: Element BODY HTML)) < 1263516527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : of { < 1263516531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : WrapElem x -> x } < 1263516533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly, that's when doing crazy code < 1263516540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, nonense to me < 1263516547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nonsense* < 1263516563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a rather specialised error. :) < 1263516598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what does it mea < 1263516600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mean* < 1263516619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We have: < 1263516621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data WrapElem a = forall me. WrapElem (Element me a) < 1263516625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So basically, you can have e.g. < 1263516625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also is there no line number there? < 1263516630 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's on the previous line < 1263516631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[WrapElem Foo] < 1263516633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can have that < 1263516638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And that means that you can have < 1263516644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1263516652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[WrapElem (something whose me type variable is Blah), WrapElem (something whose me type variable is Baggo)] < 1263516653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And it works < 1263516662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it lets you do heterogenous lists of a sort, yeah? < 1263516667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The problem is, what I did is basically < 1263516669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1263516671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Take the first element of that list < 1263516677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and extract the innards from the WrapElem < 1263516679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The problem is < 1263516683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The type of that list is [WrapElem Something] < 1263516686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So < 1263516693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We don't know what type "me" will be from that < 1263516702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it's breaking the abstraction of WrapElem, and letting you break things, if it lets you get the value out < 1263516703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Something being like void* ? < 1263516712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, being irrelevant to the issue < 1263516718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263516723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :—Because the inner type variable "me" would have to escape and leak from WrapElem. < 1263516727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So you can't do it. < 1263516735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Of course, this is... not so common to do. < 1263516743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, is there a way to get at the value then? < 1263516784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also what does WrapElem do? < 1263516794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sure; if all the values inside the WrapElems share a typeclass (and this is in the type signature), you can extract it to use methods of that type class on it < 1263516796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we can do < 1263516803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data Showable = forall a. (Show a) => a < 1263516810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(show is the class of values that can be given a good string representation) < 1263516812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263516813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Show is < 1263516814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then < 1263516822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[Showable 1, Showable "butt", Showable [1,2,3]] < 1263516824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1263516829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data Showable = forall a. (Show a) => Showable { unShowable :: a } < 1263516832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then [Showable 1, Showable "butt", Showable [1,2,3]] < 1263516834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and we can do < 1263516840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :map (show . unShowable) thatList < 1263516844 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263516848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unShowable extracts the value of type (Show a) => a from the list < 1263516855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then we call show on it < 1263516857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and we get back < 1263516858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not possible in generic? < 1263516860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :["1", "butt", "[1,2,3]"] < 1263516864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ? < 1263516870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not possible without a typeclass. < 1263516873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263516875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or, well, a function that works on values of any type. < 1263516879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like id :: a -> a :P < 1263516900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Basically a lot of this stuff is because we want a useful feature of the type system, but there's some hole that lets us break the type system with it < 1263516902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we just plug that hole < 1263516903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that would be a useless non-transformation in general < 1263516914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :id is useful sometimes in Haskell < 1263516917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1263516932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I imagine as a parameter to not map but similar funcs < 1263516936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it could be useful < 1263516948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Prelude> :t foldr id < 1263516949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr id :: b -> [b -> b] -> b < 1263516951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So: < 1263516957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::t? < 1263516963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :show-me-the-type-of < 1263516965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263516967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr 3 [succ, succ, pred] → 4 < 1263516969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1263516971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr id 3 [succ, succ, pred] → 4 < 1263516985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whereas foldr in general is foldr :: (a -> b -> b) -> b -> [a] -> b < 1263516985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess ti would get you the tail of the list you are folding? < 1263516988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh foldr < 1263516991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well the head then < 1263516995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1263517001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So id is just a → a < 1263517002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nvm < 1263517005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But since our list contains functions < 1263517011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It turns into (a → b) → (a → b) < 1263517015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which is the same as < 1263517021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a → b) → a → b < 1263517031 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well < 1263517035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They have to be monomorphic but < 1263517040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's (a → a) → a → a < 1263517042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wouldn't fold* require a function that takes both accumulator and current value from list < 1263517042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :get it? < 1263517044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So the second argument, a, becomes the type of foldr's next argument < 1263517053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it does. < 1263517059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was trying to explain it but you're not listening so I won't bother < 1263517059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, id does that?? < 1263517066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was listening < 1263517069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :trying to < 1263517107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also yes I see what you mean there I think < 1263517108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay, we need lambdabot in here < 1263517110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Frsrs < 1263517112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :To explain < 1263517124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Basically < 1263517132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Prelude> :t foldr < 1263517133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr :: (a -> b -> b) -> b -> [a] -> b < 1263517134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Prelude> :t id < 1263517136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :id :: a -> a < 1263517137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, if we pass id as the first argument of foldr < 1263517142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It must be of type (a → b → b) < 1263517146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's the same as < 1263517147 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot can do some haskell < 1263517149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a → (b → b) < 1263517151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1263517154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now < 1263517159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :id's first argument must have the same type as its second < 1263517161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So this turns into < 1263517164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it is basically optimising it? < 1263517167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(b → b) → (b → b) < 1263517174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What? < 1263517180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That sentence makes no sense whatsoever. < 1263517183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, optimising the type < 1263517189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to make it as simple as possible < 1263517191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not optimising... It's specifying < 1263517195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Making it less general < 1263517197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So anyway < 1263517200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well okay < 1263517203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We have id :: (b -> b) -> (b -> b) < 1263517204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bad word choice < 1263517209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because of that specification < 1263517211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right? < 1263517213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1263517217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :makes perfect sense < 1263517217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is the same as < 1263517220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(b -> b) -> b -> b < 1263517229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(when we want two arguments in haskell we just curry it) < 1263517230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :makes kind of sense yes < 1263517239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, since < 1263517246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr :: (a -> b -> b) -> b -> [a] -> b < 1263517251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Our next parameter is b, which as we can see in our id signature is b. < 1263517254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So that's any value. < 1263517255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell foldr id 1 [(+1), (*10), (+1)] < 1263517260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i explained that < 1263517263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plz don't interrupt my explanation < 1263517267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So, the list. < 1263517269 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :21 < 1263517271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it does make kind of sense yes < 1263517273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, what's the "a" in our id type? < 1263517275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(b -> b). < 1263517286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we give it a list of functions of b -> b. < 1263517305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, oh *now* I see how it can be useful too < 1263517308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very cool < 1263517317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Here's how that evaluates: < 1263517333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, in his defence oerjan's example *did* help a lot < 1263517338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Alright < 1263517349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(+1) `id` ((*10) `id` ((+1) `id` 1))) < 1263517354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The last 1 because we're at the end of the list < 1263517356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263517358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we take foldr's second parameter < 1263517363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now, we can just eliminate the ids there; they do nothing. < 1263517365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we get < 1263517375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(+1) ((*10) ((+1) 1)) < 1263517378 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, foldr starts at head and goes to tail? Or was it the reverse < 1263517379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In more common terms, < 1263517384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :((1+1)*10)+1 < 1263517386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1263517390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not the reverse, you got it < 1263517393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263517396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr is the same, but it nests leftwards instead of rightwards < 1263517402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldr has the nice property that you can use it on infinite lists < 1263517403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so foldl is the reverse? < 1263517405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ooh, I wonder if this works < 1263517408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1263517415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: they're identical in behaviour apart from when given infinite lists < 1263517420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mostly, foldl is faster < 1263517422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but foldr works on infinite lists < 1263517442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, foldr would be tail recursive in scheme, but foldl wouldn't? Or isn't it cons style list? < 1263517456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is. < 1263517459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let me show you the source < 1263517465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, the other way around < 1263517470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] @src foldl < 1263517471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] foldl f z [] = z < 1263517473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] foldl f z (x:xs) = foldl f (f z x) xs < 1263517475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] @src foldr < 1263517476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] foldr f z [] = z < 1263517478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] foldr f z (x:xs) = f x (foldr f z xs) < 1263517479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No need to understand Haskell < 1263517481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just look at where the parens are in the recursion structure < 1263517487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263517490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can see there why foldl doesn't work on infinite lists < 1263517492 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but foldr grows the stack < 1263517498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :foldr looks tail recursive indeed < 1263517502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or wait no < 1263517506 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION realizes he should have used a list that wasn't its own reverse... < 1263517507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1263517508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :misread < 1263517514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, :D < 1263517515 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!haskell foldr id 1 [(+1), (*10), (+2)] < 1263517516 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :31 < 1263517523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: here's a fun example for you: foldr id [] $ cycle [(1:)] < 1263517529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for AnMaster: < 1263517533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cycle [x] is an infinite list of x < 1263517536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[x,x,x,x,...] < 1263517540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, (:) is cons < 1263517544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so (1:) [3,4] is [1,3,4] < 1263517551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so foldl is tail recrusive, but foldr is not? < 1263517552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we have an infinite list of functions which, when given a list, prepend 1 to them < 1263517560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You know how foldr id works < 1263517563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we start with [] < 1263517565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1263517566 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :saw it < 1263517570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And, each element of the infinite list, we run (1:) on it < 1263517573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The result? < 1263517575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[1,1,1,1,... < 1263517578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And this *actually works*. < 1263517584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm right < 1263517585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can run it in GHCi and see the 1s appearing as fast as your CPU will let them. < 1263517594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(f $ x is just f x) < 1263517602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except sometimes when you would have to do f (blah) you can do f $ blah < 1263517607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well it makes sense to not compute the list until it is required < 1263517608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just an aid < 1263517613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yep < 1263517614 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems like a lazy feature < 1263517617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Indeed < 1263517626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, nothing mind boggling in that < 1263517633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just so cool that you can say things like "Apply this infinite list of functions to this empty list" and get something back < 1263517636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Something relevant < 1263517644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Fine, want something more interesting? < 1263517651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: for scheme, the foldl equivalent is tail recursive. for haskell, lazy evaluations makes everything a lot more fishy < 1263517654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is just very functional and high level. I would expect a CAS to be able to do it as well < 1263517659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Prelude> take 10 $ foldr id [] $ map (:) [1..] < 1263517660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[1,2,3,4,5,6,7,8,9,10] < 1263517669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yeah < 1263517670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So map (:) [1..] turns into [(1:),(2:),...] < 1263517672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1263517673 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which is why there is foldl' to force evaluation at each step < 1263517695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but why can't foldl work on infinite lists < 1263517701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can stop at the step you need, no? < 1263517705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] [01:04] @src foldl < 1263517706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] [01:04] foldl f z [] = z < 1263517708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:04] [01:04] foldl f z (x:xs) = foldl f (f z x) xs < 1263517709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Trace the evaluation < 1263517717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldl f z (1:xs) = foldl f (f z x) xs < 1263517719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets see < 1263517720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1263517723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1263517727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let's say z = 0 < 1263517736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foldl f 0 (1:xs) = foldl f (f 0 1) xs < 1263517741 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :uhm < 1263517743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, is z the accumulator? < 1263517746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1263517750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So we do foldl f (f 0 1) xs < 1263517754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, those short variable names really confuses me < 1263517757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc etc etc etc < 1263517760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Until we reach f z [] < 1263517762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And then we return z < 1263517766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We never build anything up < 1263517771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We compute it all via tail recursion, then return the accumulator < 1263517771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1263517780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263517783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The short variable names are only confusing in hyper-abstract code < 1263517791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which you don't have to write very often :) < 1263517792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why not use map for that thing < 1263517798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Er, how? < 1263517803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1263517807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that infinite list < 1263517816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mapping over infinite list makes sense < 1263517823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I did < 1263517828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263517832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:07] Prelude> take 10 $ foldr id [] $ map (:) [1..] < 1263517833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:07] [1,2,3,4,5,6,7,8,9,10] < 1263517835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[01:07] So map (:) [1..] turns into [(1:),(2:),...] < 1263517838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah there < 1263517838 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that foldr id [] $ cycle [(1:)] could use undefined or anything at all of the right type instead of [], since it is never actually used < 1263517864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: indeed < 1263517927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is wonderful once you know it < 1263517937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The problem is that Haskell makes you want to do abstract, awesome code < 1263517949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And by doing so, you run into difficulties < 1263517951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And this makes it seem like Haskell is difficult < 1263517961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just that the language's awesome power encourages people to do crazy things :-) < 1263517970 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :s/power/purity/ < 1263517998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# pacman -Ss tdb < 1263517998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :extra/tdb 1.2.0-1 < 1263517998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : A Trivia Database similar to GDBM but allows simultaneous commits < 1263518006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what the hell is a "Trivia database" < 1263518009 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :map f = foldr ((:).f) [] iirc < 1263518022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something for "in popular culture" sections on wikipedia? < 1263518046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: also http://foldr.com/ < 1263518048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(enable js) < 1263518070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why is there no foldl? < 1263518074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1263518076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :foldl.com < 1263518077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it used to exist < 1263518081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it expired or something < 1263518113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it shows "The web page you tried to visit might have been trying to steal your personal information. That page was removed after being identified as a "phishing" web page." < 1263518114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1263518384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I want to write a Scheme→C compiler. < 1263518393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So I will. < 1263518449 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: And your implementation method? < 1263518464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :CPS-transform followed by Cheney on the M.T.A. < 1263518467 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to guess the awesome one. < 1263518471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Simple, beautiful, performant! < 1263518480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Implemented in Haskell, because dammit I want to write some Haskell. < 1263518496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You guessed right :P < 1263518498 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheh. < 1263518499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and read that paper on regex. Of course I knew that regex were equiv with NFA and DFA. They teach that sort of thing at university < 1263518507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ I knew it before < 1263518516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, but it's a practical paper about practical implications. < 1263518524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And also a guide to implementing NFAs efficiently. < 1263518532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(for regexps) < 1263518539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes indeed. I would have gone to DFA instead < 1263518555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The argument is advocating NFA, so that's unlikely. < 1263518587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm? as in, since I didn't know about the efficient NFA algorithm < 1263518605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I see. < 1263518612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I did know it was equiv with DFA and DFA was fast < 1263518619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That algorithm is implemented by the inventor of computer regxps. :) < 1263518645 0 :FireFly!unknown@unknown.invalid QUIT :"Leaving" < 1263518649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for practical purposes I would have said "argh I can't back ref" < 1263518663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Meh :P < 1263518687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I actually use back ref quite often < 1263518700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure not all the time < 1263518708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is there any sort of guarantee in a regular C program that the first N memory locations won't be allocated? < 1263518712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess there is, up to a point. < 1263518737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#f = 0, #t = 1, '() = 2, ASCII characters = 3 to 259. < 1263518744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you mean near NULL? < 1263518746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Apart from that, lower bit is 1 means that it's a fixnum. < 1263518749 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, it's a pointer. < 1263518759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if you mean the first page of memory: "no" < 1263518760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I need memory locations 0 to 259 to be free, to be specific. < 1263518767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not in generic < 1263518781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, pointers to variables on the stack end with 0, right? < 1263518805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, on linux "most likely" page 0 won't be mapped since it kernel usually forbids it < 1263518813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Good enough for me < 1263518817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dosemu (or was it dosbox) depends on it though < 1263518824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so does sheepshaver < 1263518835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, as for ending on zero < 1263518837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :depends < 1263518853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it will likely be aligned < 1263518857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so a 4 byte integer yes < 1263518865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a char? maybe not < 1263518879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not guarantee though < 1263518900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :all implementation defined and could in theory vary between runs < 1263518918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/* < 1263518919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Anatomy of a value: < 1263518920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 0 #f < 1263518922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or between calls < 1263518922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 1 #t < 1263518923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 2 () < 1263518925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 3 to 258 \0-\255 < 1263518927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Otherwise, if the low bit is 1, it's a fixnum. Otherwise, it's a < 1263518928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pointer to a tag. < 1263518930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*/ < 1263518931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What about calloc, I wonder? < 1263518936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ? < 1263518938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Cheney on the M.T.A. is basically oriented around putting most values on the stack.) < 1263518941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it will zero the bytes < 1263518943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about it < 1263518951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I mean, will calloc return an even pointer? < 1263518953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably, I guess. < 1263518967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not guaranteed afaik < 1263518995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, in practise on linux: yes < 1263519010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not even guaranteed on posix iirc < 1263519079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, btw I will probably get 24 mbit/s ADSL. Will considering distance to exchange reach probably around 18 mbit/s < 1263519081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, either it does that or it breaks. < 1263519082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not my issue. < 1263519093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Move and get 100 Mb/s. < 1263519103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm currently on ADSL2 but artificially capped < 1263519108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at 8 mbit down < 1263519122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yeah, three blocks iirc < 1263519124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263519148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, would be useless however < 1263519161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Meh < 1263519161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since most other places can't keep up with that < 1263519166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1263519168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes they can < 1263519176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, mirrors I mean < 1263519178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BitTorrent, kernel.org, ... basically everywhere download speed matters. < 1263519185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm really? < 1263519186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1263519186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You saw how fast Deewiant downloaded that kernel. < 1263519191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Less than 20 seconds < 1263519195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what kernel? < 1263519196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For the entire kernel source < 1263519201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I didn't < 1263519206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: You did, you commented on it < 1263519210 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :When we were trying to strip down Linux < 1263519215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh then < 1263519216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263519217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2.6.3x for some x < 1263519221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thought you mean recently < 1263519223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like 60 megs in under 20s < 1263519260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, was it fizzie's system? < 1263519260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or Deewiant? < 1263519262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I forgot < 1263519271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant < 1263519331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define is_boolean(v) ((v) < 2) < 1263519332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define is_nil(v) ((v) == 2) < 1263519334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define is_char(v) (((v) > 2) && ((v) < 259)) < 1263519336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :La dee dah < 1263519382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Before AnMaster says "evaluated twice", let me say "compiler output". < 1263519394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I didn't plan to < 1263519409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also what did you need the low mem locations for? < 1263519441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/* < 1263519443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Anatomy of a value: < 1263519444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 0 #f < 1263519445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 1 #t < 1263519446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ye < 1263519447 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 2 () < 1263519448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes* < 1263519448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 3 to 258 \0-\255 < 1263519449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I saw that < 1263519450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Otherwise, if the low bit is 1, it's a fixnum. Otherwise, it's a < 1263519451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pointer to a tag. < 1263519453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*/ < 1263519458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This way, I have inline storage of booleans, nil, characters and small integerss. < 1263519459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just don't know how it fits in < 1263519461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*integers < 1263519481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1263519482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Leaving big integers, other numbers, symbols, pairs, procedures and a handful of other types boxed. < 1263519483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263519512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sure all the masking required will be faster? < 1263519525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sure. < 1263519530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also which gc will you use? < 1263519532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: masking of what? < 1263519535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1263519542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, gonna write my own. < 1263519552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, masking to test every time you want to number chrunch a cons style list < 1263519554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Trivial stop-the-world, noncompacting mark and sweep. < 1263519562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*crunch < 1263519568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1263519576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Faster than dereferencing a pointer and checking it for equality, which is what you'd have to do anyway. < 1263519604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm true < 1263519608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about vectors? < 1263519651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how will you store vectors < 1263519669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Boxed. < 1263519679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scheme isn't a language with efficient representation, you know. < 1263519689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it could be in theory < 1263519728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Only with heuristics. < 1263519778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well yeah, there should be some "I will not redefine -+*/ lambda, define + a few more" option < 1263519809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to allow proper constant folding and so on < 1263519818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's not Scheme. < 1263519825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, actually it could work without it < 1263519826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :JIT it < 1263519833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't help. < 1263519839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if those are overridden, just recompile it < 1263519843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, doesn't it? < 1263519848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol, well, okay, that could work < 1263519876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 80% at least of the programs won't actually redefine those < 1263519904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably 98% or something < 1263519945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if multiple *v in the same expression will be optimised away < 1263519954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :after all, theoretically the value could change between them < 1263519973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, depends on if the compiler can say it won't < 1263519980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it volatile? < 1263519984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1263519996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define tag_of(v) \ < 1263519997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (is_boolean(v) ? tag_boolean : \ < 1263519998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is_nil(v) ? tag_nil : \ < 1263520000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is_char(v) ? tag_char : \ < 1263520001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is_fixnum(v) ? tag_fixnum : \ < 1263520003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is_symbol(v) ? tag_symbol : \ < 1263520004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then it most likely will be optimised away, unless it is global and other functions are called < 1263520005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : is_pair(v) ? tag_pair : \ < 1263520006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : panic("Invalid tag %d (%x, %b)", *v, *v, *v)) < 1263520007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1263520008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in betweem < 1263520011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :between* < 1263520018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or other such edge case < 1263520050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, does it need to check the tag all the time < 1263520055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1263520065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's fast enough. < 1263520073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not really in the case of: (+ 4 2 (- 2 4)) < 1263520095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's a problem almost all Scheme implementations share. Stop bugging me about it. < 1263520100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, since it just got the value it knows the type < 1263520110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes but why not write it *better* < 1263520122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it would be fun < 1263520122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because I'm just trying to have fun, not deal with gnarly edgecases. < 1263520125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263520137 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Since it's compiling to C, GCC can compile away a lot of the more stupid things. < 1263520142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, is there any scheme implementation that won't < 1263520146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :won't* do that < 1263520205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Stalin almost certainly doesn't. < 1263520222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh...? < 1263520230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Google it. It's a Scheme compiler. < 1263520230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, chicken? < 1263520233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :R4RS. < 1263520241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263520246 0 :jpc!unknown@unknown.invalid QUIT :Remote closed the connection < 1263520247 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, any R5RS? < 1263520257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what are the major diffs between R4RS and R5RS? < 1263520261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. I don't want to think about it. Also, I need to go to the toilet soon. < 1263520265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Some stuff. < 1263520273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Stalin only works on a subset of R4RS, anyway. < 1263520281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But it's faster than hand-written C programs for number-crunching. < 1263520295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that's impressive < 1263520296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how < 1263520303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Very good compilation. < 1263520335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:55: warning: comparison between pointer and integer < 1263520338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Repeat 7945983459345 times. < 1263520343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what the flag to disable that warning is. < 1263520359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cast one < 1263520369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also be wary of integer and pointer size < 1263520373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, a compiler flag. < 1263520373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you want intptr_t < 1263520375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, it has to be equal. < 1263520389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you use intptr_t not int then? < 1263520394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I use void *. < 1263520401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and for integers? < 1263520405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :void * < 1263520409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch :D < 1263520412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with the low bit being 1 < 1263520419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's the standard implementation technique < 1263520423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all schemes do it, even ruby does it < 1263520430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, the C way of doing it is intptr_t in C < 1263520434 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Don't care. < 1263520439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also you invoke undef behaviour I believe < 1263520444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:55: error: invalid operands to binary & (have ‘void *’ and ‘int’) < 1263520447 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, fuck off you stupid compiler. < 1263520462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, intptr_t is the answer < 1263520468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shut up. < 1263520476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just trying to be helpful < 1263520481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll just cast. < 1263520499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, to? < 1263520521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you say "int" well you just dropped x86_64 compatibility < 1263520527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I never say that. < 1263520530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I always use pointers. Always. < 1263520531 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :good < 1263520535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1263520535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even when doing arithmetic. < 1263520556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, gcc can optimise less then possibly. Not sure < 1263520569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:55: error: invalid operands to binary & (have ‘void *’ and ‘void *’) < 1263520571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1263520577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see. I told you so < 1263520584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define cast(v) ((long) v) it is < 1263520592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, :P < 1263520595 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: s/long/intptr_t/. < 1263520596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*(v) < 1263520604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: This will break if sizeof void* != sizeof long anyway < 1263520606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So why bother < 1263520606 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :intptr_t is guaranteed to be the same size as a pointer. < 1263520611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, indeed < 1263520625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Name one architecture where sizeof void * != sizeof long but has intptr_t < 1263520629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll wait here. < 1263520640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is wrong with intptr_t though < 1263520646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why do you hate it < 1263520648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't solve my casting woes, for one. < 1263520655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't hate it, it's just not a solution to any of my problems. < 1263520657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So stop suggesting it. < 1263520658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it does as well as long does < 1263520661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Doesn't Win64 have 32-bit longs? :P < 1263520662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Exactly. < 1263520664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And no better. < 1263520666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yes it does < 1263520668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I depend on POSIX. < 1263520669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1263520694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slight disadvantage of using macros here is that all of my errors point to the same line :P < 1263520695 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Just use intptr_t. It can only break by not existing. < 1263520717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I officially rename this channel #intptr_t < 1263520723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intptr_t is c99 only, anyway < 1263520751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it? so what? < 1263520774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, by depending on POSIX you will have a C99 compiler < 1263520774 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And if something's sufficiently braindead to not offer stdint.h, it can fuck off. < 1263520788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact you might not have a c89 one iirc < 1263520789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I bet that number-of-platforms-supporting-C99-and-intptr_t < number-of-platforms-not-supporting-C99-but-having-sizeof-long-be-sizeof-void-pointer < 1263520789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1263520790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263520826 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: intptr_t is "correct". Assuming sizeof(long) == sizeof(void*) is "retarded". < 1263520837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And will make a Win64 porter kick you in the balls. < 1263520846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can you shut the fuck up and let me code how i like because it's for fun thx < 1263520861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also since you depend on POSIX, number-of-platforms-supporting-C99-and-intptr_t == 100% of your goal < 1263520875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Turns out POSIX support doesn't mean total POSIX support. < 1263520880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It just means "not Windows". < 1263520892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, MacOS classic? < 1263520908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also internix < 1263520916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1263521029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1263521305 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should design an architecture with: 16-bit shorts, 32-bit ints, 64-bit longs, 128-bit long longs, and 256-bit pointers. < 1263521611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night → < 1263521637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Fine. intptr_t it is. < 1263521650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I would like to note that Cheney on the M.T.A. is unportable anyway. < 1263521659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It depends on calloc, which is not specified by either C or POSIX. < 1263521673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Unless you want to malloc everything, but that'd be painful.) < 1263521705 0 :anmaster_l!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263521791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, the gc will have to look at the C stack. < 1263521795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or did neither of these things cross your mind? < 1263521802 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://www.opengroup.org/onlinepubs/000095399/functions/calloc.html There's the calloc spec. < 1263521846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I meant the Single UNIX Specification. < 1263521848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[3] Maximally portable implementations may shun alloca, since it is not required by either ANSI C or Unix. < 1263521852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And I mean alloca. < 1263521864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I doubt POSIX has alloca, either. < 1263521878 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, POSIX isn't ANSI C or POSIX. < 1263521883 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Erm. < 1263521884 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alloca. < 1263521891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or SUS. < 1263521897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And, since my gc will have to inspect the C stack... < 1263521901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm already pretty damn unportable. < 1263522052 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You could, of course, just use variable-length automatic arrays. < 1263522056 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which are C99. < 1263522106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And the GC? < 1263522134 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The best that can be done with that is make it not *too* unportable. < 1263522141 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(see: Boehm GC) < 1263522253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, why do I need intptr_t? If I never use an integer type and do arithmetic on the (void *) it's irrelevant. < 1263522256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And that would give me total support < 1263522258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/$/./ < 1263522335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Except that you're casting from void * to long for some of the arithmetic. < 1263522399 0 :nooga_!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263522466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Am I? < 1263522480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I only did that for ((v)&1), which I'm sure could be written in another way. < 1263522499 0 :nooga!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1263522504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:57: error: invalid type argument of ‘unary *’ (have ‘int’) < 1263522509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Woot, now I get to cast in the other direction < 1263522540 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... int to void*? I MURDER YOU. < 1263522576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intptr_t to (void *). < 1263522587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What's that? You hate the fact that the compiler choose a value for it? Oh how cute. < 1263522592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :STFU. < 1263522609 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Argh. Right. Damned GCC, expanding the typedefs. :P < 1263522633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/hSje < 1263522634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whoa. < 1263522645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is your brain on macros. < 1263522666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/TSXD < 1263522669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This time, through indent < 1263522684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh lol < 1263522691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's erroring because *(void *) is-a void < 1263522699 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hahaha. < 1263522708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i hate c's integer/pointer model :( < 1263522713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why can't we just have a type < 1263522715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"word" < 1263522720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*word is-a word < 1263522725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can do arithmetic on it < 1263522727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's it < 1263522743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, seems that *wasn't* the issue < 1263522749 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm halfway to making these inline functions < 1263522763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tada < 1263522857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, does panic() actually exist in linux c compilations as in the kernel panic? < 1263522859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and just not work? < 1263522861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1263522864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION changes the name of panic < 1263522892 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure that Linux's panic() function is kernelspace-only. < 1263522901 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It definitely doesn't have a man page. < 1263522916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right, it was just complaining about tag_name and wrong but not panic not existing < 1263522925 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1263523040 0 :MizardX!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263523110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION restructures his tag functions. < 1263523115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/me restructures his tag functions. < 1263523116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define tag_of(v) \ < 1263523118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ((v) < 2 ? tag_boolean : \ < 1263523119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (v) == nil ? tag_nil : \ < 1263523121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (v) < 259 ? tag_char : \ < 1263523122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (v) & 1 ? tag_fixnum : \ < 1263523124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : *(enum scm_tag *)(v)) < 1263523125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define check_tag(v,t) \ < 1263523127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (tag_of(v) == (t) \ < 1263523129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : || (wrong("Expected type %s, but received %s", \ < 1263523130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : tag_name(t), tag_name(tag_of(v))), 0)) < 1263523132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's simpler. < 1263523156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (((((scm_value) 3+('g'))) < 2 ? tag_boolean : (((scm_value) 3+('g'))) == ((scm_value) 2) ? tag_nil : (((scm_value) 3+('g'))) < 259 ? tag_char : (((scm_value) 3+('g'))) & 1 ? tag_fixnum : *(enum scm_tag *)(((scm_value) 3+('g')))) == (tag_boolean) || (wrong("Expected type %s, but received %s", tag_name(tag_boolean), tag_name(((((scm_value) 3+('g'))) < 2 ? tag_boolean : (((scm_value) 3+('g'))) == ((scm_value) 2) ? tag_nil : (((scm_value) 3+('g'))) < 259 ? < 1263523158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tag_char : (((scm_value) 3+('g'))) & 1 ? tag_fixnum : *(enum scm_tag *)(((scm_value) 3+('g')))))), 0)); < 1263523160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Damn common subexpressions. < 1263523167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'ma rewrite check_tag as an inline function. < 1263523271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There. It's simple now. < 1263523286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/IMfG < 1263523297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(That long line and the first argument to check_tag being macro results, obviously.) < 1263523311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The former is tag_of(v), the latter is char('g'), although come to think of it that needs renaming. < 1263523382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oops; s/scm_tag/enum scm_tag/. < 1263523418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: __attribute__((noreturn)), yeah? < 1263523524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Your program is wrong and you should feel bad." is, I think, a good error message. < 1263523585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ooh, I just had a ridiculous idea. < 1263523599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Do # "foo.scm" line in the generated C source, then use __FILE__ and __LINE__ in the error messages. < 1263523601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like it! < 1263523777 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heheh. < 1263523797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :inline void _wrong(char *file, int line, char *fmt, ...) __attribute__((noreturn)) { < 1263523800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Apparently this is wrong and/or invalid. < 1263523809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Erm, why did I specify inline?) < 1263523825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, it works if I put noreturn before void. < 1263523837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or just after void, which I prefer. < 1263523852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Heh, slight issue < 1263523861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Internal functions have to call _wrong instead of wrong < 1263523865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :To propagate the lines < 1263523892 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Stick noreturn in the function declaration, not the definition. < 1263523897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1263523899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Where? < 1263523904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I see what you mean. < 1263523907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have no function declarations, sir/ < 1263523909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*sir. < 1263523912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, for user functions, yes. < 1263523914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For internal functions, no ned. < 1263523916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*need < 1263523943 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, then. < 1263524017 0 :zzo38!n=zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1263524032 0 :jpc!n=jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1263524102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:~/src/scm2c$ ./skeleton < 1263524103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ERROR: Expected a boolean, but received a char < 1263524105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in skeleton.c, around line 83 < 1263524107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:~/src/scm2c$ < 1263524108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^_^ < 1263524310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Here's a fun thing stolen from the Cheney on the M.T.A. example: < 1263524333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :blahtype symbol_foo = {tag_symbol, "foo"}; < 1263524341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scm_value quote_foo = &symbol_foo; < 1263524353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then the only time you need to cons for a symbol is when (string->symbol) is called. < 1263524394 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Today at the Free Geek, I was on testing scanners. It was not too difficult to figure out, but I HAD TO INSTALL TWO PACKAGES IN ORDER TO DO SO, and I still couldn't find the 12V cord for some of the scanners. What is wrong with these people? < 1263524435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They want to infest your system with bloatware. Isn't it obvious? < 1263524440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Although I think the cord thing is just a global conspiracy. < 1263524595 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, it was the computer there, it was meant for printer testing but they do scanner testing at that station, too. < 1263524607 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :They have cords for all sorts of other voltages, but not 12 volts < 1263524620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Programs writing programs? < 1263524621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :…How perverse. < 1263524624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ an actual comment on a site < 1263524626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1263524631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And so the idiot discovers compilers < 1263524667 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Which site? < 1263524677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://hackaday.com/2009/12/31/coffeescript-like-aspirin-for-javascript/ < 1263524683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Was linked from somewhere that was linked from somewhere etc < 1263524708 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Argh. Hack A Day usually has smarter people... < 1263524873 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So much stupid there. < 1263524895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The language itself is pretty nice, it's like JavaScript turned into something that looks like a functional language. < 1263524901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which is, uh, exactly what it is. < 1263524921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Generally it seems to be a language based on definitions instead of assignments and such. This reduces the number of lines needed in many cases and makes the program simpler to debug." < 1263524925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ENGLISH OPTIMISER RUNNING < 1263524929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"It seems like a functional language." < 1263524938 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I think a function should be like: (x;x*x) or like {x;return x*x;} depend how you wanted it < 1263524969 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, Coffeescript looks like a decent strict functional language. < 1263524980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: (\x -> x*x) < 1263524982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That acceptable? < 1263524999 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It borrows postfix-conditions from Perl. I like postfix-conditions. < 1263525008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :update-alternatives: using /usr/bin/scheme-r5rs.scheme48 to provide /usr/bin/scheme-r5rs (scheme-r5rs) in auto mode. < 1263525010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :update-alternatives: using /usr/bin/scheme-srfi-7.scheme48 to provide /usr/bin/scheme-srfi-7 (scheme-srfi-7) in auto mode. < 1263525015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Debian is so... generic. < 1263525025 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK, but I was just saying there is many good thing in Mozilla Javascript, but now I think we should have some short functions too, and a few other things, such as backward exceptions, and other things < 1263525044 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Postfix conditions aren't bad. Tiny bit quirky, but not bad. < 1263525054 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Make a decent number of things look nice. < 1263525066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :print item foreach item in list if verbose < 1263525083 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that's the sort of thing that looks nice. < 1263525087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If we go Perl-like and have implicit $_, and rename "foreach" to "each"... < 1263525091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :print each item in list if verbose < 1263525093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or even < 1263525097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if verbose print each item in list < 1263525110 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't like that kind of postfix conditions because the condition has to be calculate first and therefore should be written at first < 1263525132 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: ... < 1263525134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: code is for humans first, machines second < 1263525147 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Why should evaluation order have anything to do with your syntax? < 1263525173 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What ehird said. < 1263525205 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The Forth programming language does it correctly, in my opinion < 1263525223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :print item/42, beep for each item in list if verbose and beepy < 1263525247 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The Forth programming language does not have syntax for humans. < 1263525252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes it does. < 1263525258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Sorry; I like Forth.) < 1263525268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :("for", "each" and "for each" being equivalent.) < 1263525270 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It has syntax for machines that humans don't have too much trouble with. < 1263525306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(So you can also write: beep, print "The number is " number, beep for each number in 1 to 10.) < 1263525430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Okay, crazy naturally-reading feature idea: < 1263525439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"until foo ...", where foo is undefined, sets foo to no. < 1263525446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"while foo ...", where foo is undefined, sets foo to yes. < 1263525449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Both on the first iteration. < 1263525457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So you can write "until stop ..." without declaring it. < 1263525525 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Other crazy feature: "a; b" is actually "calculate a, calculate b, return a". < 1263525529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Use-case? < 1263525533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :verbose: no; flag "Show lots of debug output." < 1263525600 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1263525627 0 :zzo38!unknown@unknown.invalid QUIT :Remote closed the connection < 1263525651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"say sorted parameters" < 1263525655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This would be a fun language, actually < 1263525689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Okay, is this going to far? "for each foo" → "for each foo in foos". < 1263525699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Does proper pluralisation; "for each person" → "for each person in people". < 1263525702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*too far < 1263525729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If it's not going too far, then I declare "say contents for each parameter" to be the most readable cat(1) ever written. < 1263525766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Seems fun, if hard to implement. < 1263525789 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably end up being the best language with an English-ish syntax. < 1263525800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, the transformation is < 1263525807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :say contents for each parameter < 1263525822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :say contents for each _ in parameters < 1263525826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :say contents _ for each _ in parameters < 1263525833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for each x in parameters, < 1263525835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : say contents x < 1263525840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for x in parameters, < 1263525844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : say contents(x) < 1263525845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and finally < 1263525849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for x in parameters, < 1263525852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : say(contents(x)) < 1263525884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Actually, it's not really Englishy so much as allowing free word order and implying variables. < 1263525922 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Thus why it's the best. It doesn't suck. ;) < 1263525930 0 :nooga!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263525938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, bare keyword arguments. < 1263525954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For instance, "with file named filename" is with (file(named=filename)). < 1263525973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"with file myfile named filename" is with (file(myfile, named=filename)) < 1263525983 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Of course, the function would have metadata specifying what the keyword arguments are. < 1263525986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/$/)/ < 1263526137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wish C identifiers were more flexible < 1263526157 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The more I read about CoffeeScript, the more I like it. < 1263526161 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It pattern matches. < 1263526186 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Screw Javascript. < 1263526204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :define_symbol(symbol_x2D_x3E_string, "symbol->string"); < 1263526207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yay, name mangling! < 1263526288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pattern matching you say? < 1263526289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :list is < 1263526291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (): say "Empty." < 1263526292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (one): say "One item." < 1263526294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (one,two): say "Two items." < 1263526295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : otherwise: say "Some items." < 1263526346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Unfortunately, my C code will be rather inefficient. :( < 1263526347 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heheh. < 1263526353 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sadly. < 1263526371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even just recursing will be "look up name in current environment, handle errors, check type, call function pointer". < 1263526443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll omit arity checking, though. < 1263526449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Correct me if I'm mistaken but can't the compiler do arity checking? < 1263526514 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Arity checking is mandatory in ISO C if the function has defined arity. < 1263526560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, of course, gcc will do my arity checking. < 1263526563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thanks, gcc! < 1263526566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :struct procedure { < 1263526567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : enum scm_tag tag; < 1263526569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : scm_value (*fn)(); < 1263526570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : scm_value closure[]; < 1263526572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :}; < 1263526579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess that's a closure, not a procedure, technically. < 1263526582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fn doesn't have defined arity. < 1263526590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...oh, of course. < 1263526602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Meh < 1263526605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let it burn < 1263526611 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hah. < 1263526711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that if he uses C global variables to model Scheme toplevel definitions, he doesn't need to make every function a closure. < 1263526715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :After all, they won't close on anything. < 1263526731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...so, wait, I don't have to look up in an environment. Sweet. < 1263526733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thank you, C! < 1263526800 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheheh. < 1263526826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now I have to implement some basic functions. < 1263526831 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Meanwhile, I've added global closures to my functional C. < 1263526839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sweet. < 1263526846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We should merge projects :P < 1263526850 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(onerr is a global closure, which can be replaced with a different closure) < 1263526872 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263526878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now remove all non-closure-defining functions apart from main. < 1263526885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :All you will have is closures, and main. < 1263526889 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheheh. < 1263526895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also: you must implement cons with lambda, not as a C structure. < 1263526896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GO FOR IT < 1263526899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GOFER IT < 1263526903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or Scheme it. < 1263526908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yuk yuk < 1263526911 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Removing all non-main closures will be easy. < 1263526922 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Implementing cons with lambda will by somewhat annoying. < 1263526929 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But only somewhat. < 1263526937 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :After all, lambda now mallocs. < 1263526971 0 :nooga_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263527068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :void proc_recurse(scm_proc cont) noreturn { < 1263527069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return proc_recurse(cont); < 1263527071 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So, C isn't Turing-complete, I guess. C-except-where-pointers-can-be-infinite is, though, right? < 1263527071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1263527075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hand compiled Scheme procedure, that. < 1263527080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (recurse) (recurse)) < 1263527084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hand-compiled < 1263527087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: No. < 1263527089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is no such C. < 1263527094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because of sizeof. < 1263527110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well. < 1263527113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sizeof returns in multiples of char < 1263527113 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sizeof is in multiples of char. < 1263527116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you have a bignum char... < 1263527118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then yes, C is TC. < 1263527123 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If char could be infinite, then it could be TC. < 1263527134 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*However*, char must have a maximum value. < 1263527137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Most ridiculously overblown char type EVAR < 1263527140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ah, right. < 1263527145 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1263527151 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This is a C99 restriction. < 1263527153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: What if some bit pattern was reserved for "infinity"? < 1263527155 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The word "except" is omnipotent; it can do whatever it takes to make things work. < 1263527170 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :C90 makes no such restriction. < 1263527172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And (infinity-X) is, for X, infinity->0, _->infinity < 1263527178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Thus, C90 is TC. < 1263527179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :infinity+X is infinity, etc < 1263527186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Does C99 forbid you having such a magical value? < 1263527190 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So let's assume that it removes sizeof or something. < 1263527193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If so, just make 0 = infinity internally < 1263527195 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Or turns it into C90. < 1263527196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and 1 = 0, etc < 1263527202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No? < 1263527208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then CHAR_MAX is INFINITY. < 1263527228 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. That... Is actually entirely valid. < 1263527237 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :data FancyInteger = FI Integer | PosInfinity < 1263527237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:99: warning: function declared ‘noreturn’ has a ‘return’ statement < 1263527239 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263527239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1263527243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to help you, compiler! < 1263527271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how to disable it < 1263527273 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Nuke the return or the noreturn. ;) < 1263527298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: No; it's "noreturn" and defined to nothing if not GNUC. < 1263527316 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1263527320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And "return" helps dumb compilers know that we don't need to set up things to remember our values. < 1263527325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So I'll just ignore the warnings. < 1263527340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... #define return < 1263527341 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263527347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1263527355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if gcc does totally ignore them if you do noreturn anyway < 1263527413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: http://sprunge.us/WMZV < 1263527419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think "unmitigated failure" is an appropriate term here. < 1263527422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(This is with -O3.) < 1263527436 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So, who wants to figure out how a stripped-down version of Haskell could be turned into something looking like assembler code? < 1263527439 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*call proc_recurse*. < 1263527442 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*facepalm* < 1263527460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Oh ha, I didn't even notice that < 1263527464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I was thinking more of the SEVENTY BAJILLION movls beforehand < 1263527492 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heheh. Yeah... < 1263527511 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :(This is Haskell where the entire program is one expression built out of these primitives: case ... of {... -> ...}, \... -> ..., ... ..., let ... = ... in ..., and constructors) < 1263527515 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Haskell->Core->STG->Asm, I believe, is the transformation path. < 1263527523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:103: error: non-static initialization of a flexible array member < 1263527524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :skeleton.c:103: error: (near initialization for ‘(anonymous)’) < 1263527526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dude, I specified {}. < 1263527527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fuck off. < 1263527543 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: And you just described Core right there. < 1263527592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Well, making it static completely eliminated it from the assembly. XD < 1263527599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think static unless the user specifies to export it is a good idea. < 1263527615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Especially since every function call will result in calling a function. < 1263527629 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: static __attribute__((used)) will force it to be compiled in, BTW. < 1263527634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:~/src/scm2c$ ./skeleton < 1263527636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Segmentation fault < 1263527637 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though, you probably don't want that... < 1263527637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That... you... < 1263527639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You just fail. < 1263527649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You should fuck a pig, because you fail that much, gcc. < 1263527658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: BTW, actually, I don't _want_ tail call optimisation. < 1263527670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cheney on the M.T.A. relies on the stack getting too big often... < 1263527716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:~/src/scm2c$ ./skeleton < 1263527717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :poop < 1263527719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :poop < 1263527720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Segmentation fault < 1263527722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I would appreciate more than two calls, however. < 1263527724 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, but GCC does TCO on all -O levels. < 1263527733 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: great. Now consider an assembly language where you have a "put this data structure on the heap" instruction. And stuff. < 1263527736 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Except 0. < 1263527736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Except not on noreturn functions. < 1263527740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or something. < 1263527753 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Really. That's odd. < 1263527756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Well... < 1263527758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I pasted you that asm. < 1263527763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/WMZV < 1263527766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That was with -O3. < 1263527766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1263527774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Simply < 1263527777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :void noreturn proc_recurse(scm_proc *cont) { < 1263527778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return proc_recurse(cont); < 1263527779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1263527781 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Compare without the noreturn? < 1263527808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.globl proc_recurse < 1263527809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : .type proc_recurse, @function < 1263527811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :proc_recurse: < 1263527812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pushl %ebp < 1263527814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : movl %esp, %ebp < 1263527815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.L7: < 1263527817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : jmp .L7 < 1263527819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So... noreturn tells GCC "be really dumb-fuck retarded about tail calls". < 1263527831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now, if it didn't _also_ do a billion movls, that'd be great. < 1263527835 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Apparently. < 1263527840 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, it gave you a busy loop; what did you want? < 1263527859 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: The tightest loop. < 1263527870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: I want a recursive call. < 1263527873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It *should* overflow the stack. < 1263527875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-foptimize-sibling-calls < 1263527877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Optimize sibling and tail recursive calls. < 1263527878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Enabled at levels -O2, -O3, -Os. < 1263527880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Kerching < 1263527894 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, -fno-optimize-sibling-calls, et viola. < 1263527898 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Well, then, have it calculate proc_recurse(cont) and then do something before returning. < 1263527898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1263527908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: No; because it should not try and save things like it did. < 1263527910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because that's retarded. < 1263527926 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Why do you want a stack overflow? < 1263527934 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So the garbage collector runs. < 1263527948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :T.28: < 1263527950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pushl %ebp < 1263527951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : movl %esp, %ebp < 1263527953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : popl %ebp < 1263527954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ret < 1263527956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : .size T.28, .-T.28 < 1263527957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : .p2align 4,,15 < 1263527959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Question. How the fuck does this recurse? < 1263528022 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ... What the fuck? < 1263528026 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just... What the fuck? < 1263528046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds puts("poop") in there to try and make sense of it < 1263528057 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gcc needs a "do all your regular TCO stuff except say call, not jmp" option :P < 1263528085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1263528095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It seems that the sttrategy it uses is... < 1263528099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I see the issue. < 1263528107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :noreturn+return = gcc makes fals assumptions < 1263528111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*false < 1263528118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Conclusion: Pick one. < 1263528118 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That'd do it. < 1263528120 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :#define return < 1263528121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I pick removing noreturn. < 1263528128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just counterproductive. < 1263528145 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Doesn't work < 1263528149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"noreturn" appears to break recursion too. < 1263528195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yay! < 1263528197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It does what I want now. < 1263528211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...no, it doesn't. < 1263528216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Does -O3 normally break code this wantonly? < 1263528276 0 :jpc!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263528283 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :No, but when it DOES break code, it does so that wantonly. < 1263528291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Argh, -O2 breaks it too < 1263528293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHY OH WHY < 1263528301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static void proc_recurse(scm_proc *cont) { < 1263528303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return proc_recurse(cont); < 1263528304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1263528307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is NO excuse for not compiling that properly. < 1263528337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-O0 produces the best code of all < 1263528339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :proc_recurse: < 1263528341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : pushl %ebp < 1263528342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : movl %esp, %ebp < 1263528344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : subl $24, %esp < 1263528345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : movl 8(%ebp), %eax < 1263528347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : movl %eax, (%esp) < 1263528348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : call proc_recurse < 1263528350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : leave < 1263528351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ret < 1263528372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is there, like, an __attribute__((recurses)) I can use? < 1263528542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: The really fucking retarded solution? If you give it a non-void return type, it works fine. < 1263528551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hurr void expressions on their own are useless < 1263528551 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: AAAAGH. < 1263528552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nobody has side effects < 1263528558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :SO FEKING RETARDED. < 1263528566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*FUCKING < 1263528571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think this is definitely a sweary occasion. < 1263528618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides to write some nice library functions to take his mind off the pain < 1263528662 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :BTW, I'm having trouble getting code as retarded as what you're getting. < 1263528673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1 < 1263528676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Linux 32-bit < 1263528684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-O3 -S < 1263528692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also -fno-optimize-sibling-calls sometimes < 1263528703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :gcc (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4 < 1263528712 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :x86_64, with -O3 -m32 -S < 1263528746 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Compiling void proc_recurse(void *c){return proc_recurse(c);} < 1263528769 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think it's your compiler that's borked. < 1263528783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe 4.4 regressed. < 1263528798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, it's the default Ubuntu compiler. < 1263528894 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445536 Well, here's an *old* bug doing the same thing. < 1263529020 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not finding any regressions. < 1263529096 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/XWTH That's with -O3 -m32 -fno-optimize-sibling-calls -S < 1263529147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: va_end should be right before the }, right? < 1263529151 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/RDdL And that's with the __attribute__((noreturn)) added. < 1263529152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even if it will never be reached? < 1263529174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ugh, your code is so much nicer. < 1263529184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, I count old=2003 or earlier. :P < 1263529188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :**old* < 1263529193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :old=2005 or earlier. < 1263529214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, va_end comes before return. Right. < 1263529225 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :va_end needs to be after you are done using va_arg. < 1263529252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There, I wrote +. < 1263529257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Properly variadic and all. < 1263529269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Only does fixints, though, but that's all I have. < 1263529275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Even checks for integer overflow. < 1263529287 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I strongly suspect your compiler is just borked. Build a new one. < 1263529298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ubuntu's and therefore Debian's stock compiler? < 1263529299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Broken? < 1263529301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hahaha. No. < 1263529357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static void cons(scm_proc *cont, scm_value car, scm_value cdr) { < 1263529358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : scm_pair p = { tag_pair, car, cdr }; < 1263529360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return cont->fn(cont->closure, &p); < 1263529361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1263529362 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But it's generating code that doesn't even recurse. < 1263529363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I hope that's... valid. < 1263529368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds inline to that < 1263529374 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's fekking borken. < 1263529401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I love the part where there's no malloc in my program < 1263529406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's so relaxing. < 1263529421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, 4.4.1 is not the stock Debian compiler. It was the compiler in Debian unstable for a while. < 1263529430 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I think I meant to ask a question. < 1263529431 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/unstable/testing/ < 1263529450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION realises that his architecture doesn't work if you redefine a function at the top level. < 1263529454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bah. I'll fix it later. < 1263529457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ubuntu. < 1263529463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ubuntu would not ship a broken compiler, man. < 1263529471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's Apple's forte. < 1263529476 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Ubuntu has before. < 1263529500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static inline void proc_car(scm_proc *cont, scm_pair *p) { < 1263529506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like the part where I get some type-checking for free. < 1263529531 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, but now I know the answer to my question, so I'd have to ask a different question, if any at all. < 1263529563 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Ubuntu would not ship a broken compiler" "But it's producing incorrect code!" "Not. Broken." < 1263529570 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'd file a bug report, honestly. < 1263529574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean not broken because of Ubuntu < 1263529576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Eh, I might < 1263529580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I might just build my own gcc, too < 1263529584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Unless it breaks that too :P < 1263529588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static inline void proc_cons(scm_proc *cont, scm_value car, scm_value cdr) { < 1263529590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : scm_pair p = { tag_pair, car, cdr }; < 1263529591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : return cont->fn(cont->closure, &p); < 1263529593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1263529594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cool implication of this: < 1263529612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you do (cons 1 2), and pass it to a function: That function gives you a reacharound. By which I mean it accesses a pointer on your stack to read the pair. < 1263529624 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GCC is actually rather hard to break. < 1263529629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scheme: Perfect if you're gay for programming languages. < 1263529666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I think it's just a pathological case < 1263529689 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Which functions correctly on my older compiler. < 1263529806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1263529816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Look, if you want I'll give you ssh and you can compile gcc for me. < 1263529873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just remembered an sf story soupdragon should read < 1263529878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION links it here for later linkage: http://docs.google.com/Doc?id=ddv7939q_20gw8h9pcx < 1263530214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Sweet: thanks to gcc, unused core library functions will be automatically removed from the result. < 1263530276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: also, it only breaks with "static" in front < 1263530280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try it with static in front < 1263530281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bet it breaks < 1263530563 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I get null with "static". :P < 1263530577 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION defines a main < 1263530606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :__attribute__((used)) < 1263530611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or, yeah, call it in main < 1263530614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and watch the fail < 1263530617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't break. < 1263530632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...you should compile gcc for me :P < 1263530677 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though I'm not entirely sure why it's doing subq $8, %rsp;call proc_recurse < 1263530821 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's the __attribute__((noreturn)) that makes it slightly weird. < 1263530887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1263530911 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But... Correct. < 1263530911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What gives the optimal results (least saving-variables before the call, but still an actual call instruction)? < 1263530926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Without noreturn, using "return foo" and the -fno-...? < 1263530934 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :__attribute__((noreturn)). < 1263530990 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :-fno-... leaves around "leave;ret". < 1263531024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But does that not cause TCO? < 1263531028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, wait, noreturn stops TCO. < 1263531058 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't know why it does, but it does. < 1263531061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: static noreturn works for you? < 1263531067 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1263531084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :god damn you :P < 1263531160 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gentoo: it has correct compilers. :P < 1263531161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Do those static noreturns have a "return" statement in them? < 1263531171 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1263531188 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The generated code is the same without. < 1263531201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right, so leave it in for dumb compilers < 1263531206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1263531240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My library has cons, car, cdr and +. < 1263531251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What else, I wonder? < 1263531257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Simple stuff.) < 1263531282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, behold my + implementation! http://sprunge.us/egVj < 1263531296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whether it could actually be any more complicated is open to debate. < 1263532081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Hmm, that actually doesn't impose all that much penalty over a non-variadic version, does it? < 1263532084 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sure it could! < 1263532087 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Make it idiomatic C++. < 1263532099 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Not much at all. < 1263532140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.josbuivenga.demon.nl/calluna.html < 1263532141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My god; the typeface, it is beautiful. < 1263532145 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And since it's static, GCC will helpfully unroll it if it would make sense to. < 1263532152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: XD < 1263532192 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Calluna is a good-looking font. < 1263532193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I sort of want to buy Calluna. Sure, I have the regular face, but damn it's pretty. < 1263532200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :On the other hand... < 1263532201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$119. < 1263532208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't really have that much money to spend on a typeface. < 1263532245 0 :jpc!n=jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1263532346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines an italic &c glyph in Calluna, gets sad because he can't have it. < 1263532355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why do I torture myself so? < 1263532429 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :karma. it's all that book burning you did in a previous life. < 1263532445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I must have been a dick. < 1263533752 0 :ehird!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1263534886 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1263538907 0 :FireFly!n=firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1263538983 0 :Slereah!n=Slereah@ANantes-259-1-92-4.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1263539001 0 :coppro!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1263539119 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1263539172 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1263539597 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263539799 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1263540451 0 :coppro!unknown@unknown.invalid QUIT :"I am leaving. You are about to explode." < 1263540564 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1263541353 0 :coppro!unknown@unknown.invalid QUIT :"I am leaving. You are about to explode." < 1263541598 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1263542399 0 :clog!unknown@unknown.invalid QUIT :ended < 1263542400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1263543012 0 :coppro!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543013 0 :fungot!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543013 0 :yiyus!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543014 0 :Pthing!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543014 0 :rodgort!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543014 0 :Deewiant!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543014 0 :lifthrasiir!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543014 0 :olsner!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543015 0 :mycroftiv!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543015 0 :bsmntbombdood!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543015 0 :EgoBot!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543015 0 :zeotrope!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543016 0 :uorygl!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543016 0 :puzzlet!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543016 0 :comex!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543016 0 :dbc!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543016 0 :sebbu!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543017 0 :mtve!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543017 0 :HackEgo!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543017 0 :SimonRC!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543017 0 :Ilari!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543018 0 :cal153!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543018 0 :nodd!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543018 0 :Gregor!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543019 0 :fizzie!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263543144 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1263543144 0 :comex!i=comex@c-98-210-192-54.hsd1.ca.comcast.net JOIN :#esoteric < 1263543144 0 :Pthing!n=pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1263543144 0 :cal153!n=cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1263543144 0 :dbc!n=daniel@130-94-161-238-dsl.hevanet.com JOIN :#esoteric < 1263543144 0 :nodd!n=oklopol@a91-153-117-63.elisa-laajakaista.fi JOIN :#esoteric < 1263543144 0 :zeotrope!n=sazeinel@bas3-kitchener06-1096650646.dsl.bell.ca JOIN :#esoteric < 1263543144 0 :sebbu!n=sebbu@ADijon-152-1-22-188.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1263543144 0 :rodgort!n=rodgort@li14-39.members.linode.com JOIN :#esoteric < 1263543144 0 :yiyus!i=12427124@je.je.je JOIN :#esoteric < 1263543144 0 :fungot!n=fungot@momus.zem.fi JOIN :#esoteric < 1263543144 0 :mycroftiv!n=infernus@h69-128-47-243.mdsnwi.dedicated.static.tds.net JOIN :#esoteric < 1263543144 0 :EgoBot!n=EgoBot@codu.xen.prgmr.com JOIN :#esoteric < 1263543144 0 :bsmntbombdood!n=gavin@97-118-192-33.hlrn.qwest.net JOIN :#esoteric < 1263543144 0 :olsner!n=salparot@c83-252-238-148.bredband.comhem.se JOIN :#esoteric < 1263543144 0 :lifthrasiir!i=cbxvpLMT@haje12.kaist.ac.kr JOIN :#esoteric < 1263543144 0 :Deewiant!n=deewiant@kosh.hut.fi JOIN :#esoteric < 1263543144 0 :Ilari!n=user@88.113.39.59 JOIN :#esoteric < 1263543144 0 :mtve!n=nnnnnmtv@65.98.99.53 JOIN :#esoteric < 1263543144 0 :SimonRC!n=sc@fof.durge.org JOIN :#esoteric < 1263543144 0 :HackEgo!n=HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1263543144 0 :uorygl!n=warrie@lunch.normish.org JOIN :#esoteric < 1263543144 0 :puzzlet!n=puzzlet@wikipedia/PuzzletChung JOIN :#esoteric < 1263543144 0 :Gregor!n=gregor@65.183.185.22 JOIN :#esoteric < 1263543144 0 :fizzie!i=fis@iris.zem.fi JOIN :#esoteric < 1263544180 0 :FireFly!unknown@unknown.invalid QUIT :"Leaving" < 1263544382 0 :nooga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263544911 0 :jpc!unknown@unknown.invalid QUIT :"I will do anything (almost) for a new router." < 1263545730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : It depends on calloc, which is not specified by either C or POSIX. Yeah, POSIX isn't ANSI C or POSIX. <-- Happy typo day! < 1263545806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : This is your brain on macros. <-- since a compiler will generate it, will it matter? < 1263546138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : say contents for each parameter <-- end tell < 1263546217 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1263546264 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : If you have a bignum char... <-- then what would CHAR_BIT be? < 1263546306 0 :ais523!n=ais523@unaffiliated/ais523 JOIN :#esoteric < 1263546551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : So... noreturn tells GCC "be really dumb-fuck retarded about tail calls". <-- it could be a side effect of what it actually tells gcc. Which is "this function won't return, so you can know that any code after the call to it is dead, and you don't need to handle it actually returning ever, no need for a function epilogue either there!" < 1263546686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : pikhq: The really fucking retarded solution? If you give it a non-void return type, it works fine. <-- returning a value from a void function is undefined isn't it? < 1263546710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait it isn't that. Still that line is strange. I'm not sure it is well defined indeed < 1263546748 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :link? < 1263546797 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of the N900, there's a rather funky package in the repository: easy-deb-chroot. It installs a 1.5G Debian (lenny) image you can chroot into; there's Iceweasel w/ Java, Gimp and the full OpenOffice.org suite installed by default, but you can obviously install anything in the Debian arm port. < 1263546820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Unless it breaks that too :P <-- --enable-bootstrap < 1263546910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Gentoo: it has correct compilers. :P <-- unsurprising < 1263547025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets to end < 1263547025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, link to? < 1263547053 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1263547095 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the source file he's discussing < 1263547110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263547125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, there was only snippets, mostly inline in irc < 1263547138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : static void proc_recurse(scm_proc *cont) { < 1263547138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : return proc_recurse(cont); < 1263547138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : } < 1263547141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe you meant that < 1263547175 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1263547193 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why is it messing with noreturn then? < 1263547193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, there were multiple versions of it, would be easier to check logs yourself. Instead of me repasting it all < 1263547243 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1263547248 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is too lazy < 1263547355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, he is implementing a scheme->C compiler < 1263547360 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1263547360 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird that is < 1263547372 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how's he doing call-cc? < 1263547381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, I don't think he got there yet < 1263547404 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :might as well start there once you have your data structures < 1263547409 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :if you can't to call-cc, no point < 1263547431 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: he's likely at school, considering the day of the week, time of the day, his age and the fact that it's termtime < 1263547442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263547456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, s/to/do/ ? < 1263547466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh hi there < 1263547467 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1263547473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and probably, but he log reads < 1263547481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did notice he wasn't in channel < 1263547495 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ehird, school? Does not happen! < 1263547504 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Does not compute. < 1263547508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, was that a reference to Nation? < 1263547511 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeppers < 1263547525 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I use that all the time now < 1263547526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also it looks like fizzie didn't spot it. < 1263547563 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, didn't they make an play or opera or Nation iirc? Think I read about that somewhere. < 1263547564 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I haven't read it. Too new, you see. < 1263547579 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: s/or N/of N/? < 1263547586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, indeed < 1263547610 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1263547610 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't surprise me < 1263547672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also lag spikes < 1263547725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very irritating < 1263547725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :jumps between 2 and 30 seconds of lag < 1263547725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only on freenode < 1263547767 0 :cal153!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1263547918 0 :SimonRC_!n=sc@fof.durge.org JOIN :#esoteric < 1263547925 0 :SimonRC!unknown@unknown.invalid QUIT :Broken pipe < 1263548382 0 :cal153!n=cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1263548835 0 :anmaster_l!n=AnMaster@d83-181-48-146.cust.tele2.se JOIN :#esoteric < 1263549529 0 :Pthing!n=pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1263549980 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Heh... Lag reading is frozen at 104s lage... < 1263550111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, 0.1 atm for me. And yes I had similar issues a moment ago < 1263550320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lagging a lot for me too every now and then < 1263550345 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263550363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[470] #freenode ##overflow Forwarding to another channel Forwarding to another channel < 1263550363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, /that's/ unusual < 1263550382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :looks like loads of people are rushing over to #freenode to see what's going on < 1263550382 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not really < 1263550382 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it does happen after lots of joins < 1263550382 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :oh wiat < 1263550382 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :wait* < 1263550404 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :you mean the double message < 1263550418 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :*that* is strange < 1263550418 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :why was forwarding repeated < 1263550418 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also no, just lots of spambots joining and then directly being banne < 1263550418 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :banned* < 1263550446 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :this connection seems unlaggy though < 1263550464 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :lindbohm.freenode.net < 1263550473 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :hm seems to be in Sweden < 1263550480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and ##overflow is a pretty pointless channel, seeing as it's moderated and has no ops < 1263550484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it only exists for the message in the topic, I think < 1263550487 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anmaster_l: no, I mean the channel ##overflow itself is pretty pointless < 1263550489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(lag at 79s for me...) < 1263550499 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric : anmaster_l: no, I mean the channel ##overflow itself is pretty pointless < 1263550500 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :err what < 1263550505 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric : hm seems to be in Sweden < 1263550505 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric : and ##overflow is a pretty pointless channel, seeing as it's moderated and has no ops < 1263550505 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric : it only exists for the message in the topic, I think < 1263550505 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric : anmaster_l: no, I mean the channel ##overflow itself is pretty pointless < 1263550512 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anmaster_l: it's moderated, and has no ops, therefore nobody can be voiced < 1263550514 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :that is what it reads like here < 1263550515 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1263550520 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what you replied to < 1263550554 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, issue: There is nothing that " anmaster_l: no, I mean the channel ##overflow itself is pretty pointless" matches up to on my end < 1263550562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : I don't know what you replied to <-- neither do I, this lag is making regular conversation pretty much impossible, we're going to have to start quoting I think < 1263550611 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :01 ais523, " I don't know what [...]" Or use serial numbers. I use odd, you even < 1263550622 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :03 and no it isn't octal < 1263550650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :01 ais523, " I don't know what [...]" Or use serial numbers. I use odd, you even <--- that still makes no sense because it would be unclear what people were replying to < 1263550710 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :05 (in reply to ais 01, which should have been 02 in fact) how so? < 1263550781 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :07 ais523 it works like threads on mailing lists. that "in reply to" header whatever the spelling was (in-reply-to?) < 1263550795 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 05 (in reply to ais 01, which should have been 02 in fact) how so? <-- because the arrow method of quoting gives more context (you don't need to quote a quote, so it doesn't get ridiculously long), and doesn't have a message 100 problem < 1263550830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 07 ais523 it works like threads on mailing lists. that "in reply to" header whatever the spelling was (in-reply-to?) <-- and I'm not really sure about in-reply-to just because I set my email client not to do threads (threads are just a poor substitute for proper quoting) < 1263550866 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :09 ais523, in reply to "message 100 problem", well we could just add a third digit, in fact I don't know why I added a 0 to begin with < 1263550893 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : 09 ais523, in reply to "message 100 problem", well we could just add a third digit, in fact I don't know why I added a 0 to begin with <-- also, the whole odd/even thing fails as soon as anyone else wants to talk < 1263550919 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :11 ais523 in reply to "email client not to do threads" <-- what the heck. It is still useful on high traffic lists where you only want to follow some discussions < 1263550977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : what the heck. It is still useful on high traffic lists where you only want to follow some discussions <-- but it fails utterly as soon as a discussion forks; forcing people to reply to the most recent message all the time is no way to do a conversation < 1263551011 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :13 ais523, in reply to "odd/even thing fails", well then what about using the first digit as a person id, the the remaining (variable count) as a message id. Or generate something like an UUID for every message (a7bc5039-c606-4956-9cd6-22c560783927) < 1263551046 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : well then what about using the first digit as a person id, the the remaining (variable count) as a message id. Or generate something like an UUID for every message (a7bc5039-c606-4956-9cd6-22c560783927) <-- you're seriously overthinking this < 1263551050 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :15 ais523, it doesn't fail utterly in that case. It works fine to keep two forks. < 1263551075 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :17 in reply to "overthinking", yes it was a joke < 1263551084 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : it doesn't fail utterly in that case. It works fine to keep two forks. <-- it doesn't work fine to keep 80 to 100 forks, which is what a high traffic discussion should become < 1263551113 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :19, in reply to "80 to 100 forks" works, for 5 forks or such it works. < 1263551127 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :21 which is what I consider a high traffic list < 1263551144 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :23 even on lkml I doubt you hit 80 to 100 forks < 1263551167 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :25 and yes some quoting is useful. but >>>>>>>>>>>>>>>>>>>>>>>>> is really irritating < 1263551173 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :27 two levels work fine < 1263551204 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :29 maybe up to 3 or 4 at most. More than that and you end up with wrapping issues and what not < 1263551252 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :31 ais523 ^ < 1263551289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : even on lkml I doubt you hit 80 to 100 forks <-- pretty much half of messages end up as forks if people reply to the message they actually should reply to, rather than the most recent one < 1263551327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : and yes some quoting is useful. but >>>>>>>>>>>>>>>>>>>>>>>>> is really irritating <-- have you never heard of an indentation reset? < 1263551348 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :33 (in reply to ais523 replying to msg 19), sure, but most of those won't get replies in my experience. < 1263551367 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :35 (in reply to ais523 replying to msg 25), no I haven't < 1263551371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : have you never heard of an indentation reset? <-- or, fwiw, simply editing out the messages you aren't responding to < 1263551386 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :plus ping is low enough atm < 1263551390 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :so we don't need it < 1263551407 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :right now at least < 1263551488 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway, did you get into #freenode? < 1263551499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I haven't tried for a while < 1263551501 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :trying again now < 1263551511 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nope, went to ##overflow again < 1263551523 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, flood option is 15.3 < 1263551526 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :err < 1263551528 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :15,3 < 1263551538 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :so it means 3 clients per 15 seconds I believe < 1263551547 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, try again every few seconds for a while < 1263551561 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :since the quota is filled up with spambots very fast < 1263551566 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anmaster_l: respond to a channel being DOSed by DOSing it? < 1263551578 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no. But that is the only way to get in < 1263551587 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :it isn't dosing it < 1263551590 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :just retrying the opteration < 1263551615 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for ever 4 spambots about one real user is getting in < 1263551633 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, got in this time < 1263551646 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, quite quiet atm. < 1263551660 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, surprisingly so < 1263551676 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wasn't a while ago < 1263551874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, those like "urcahnqk" look like those spambot thingies < 1263552116 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1263552324 0 :MizardX!n=MizardX@unaffiliated/mizardx JOIN :#esoteric < 1263552477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, hi there < 1263552484 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi AnMaster < 1263552506 0 :anmaster_l!unknown@unknown.invalid PRIVMSG #esoteric :ais523, getting lag issues again on my other connection. Sigh < 1263552523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah now it showed up here finally < 1263552525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :took a while < 1263552740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, ais523: does either of you understand xkcd today < 1263552747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't < 1263552772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do either* ? < 1263553058 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :it is a robot battle < 1263553062 0 :Pthing!unknown@unknown.invalid PRIVMSG #esoteric :apparently < 1263553095 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Based on the last frame, it might be some sort of a soccer-style game the robots are supposed to play. < 1263553124 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They do that sort of stuff quite a lot. < 1263553171 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's http://en.wikipedia.org/wiki/RoboCup for example; though I have no idea if they do anything that'd involve >1 ball in the game at the same time. < 1263553380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm okay < 1263553766 0 :oerjan!unknown@unknown.invalid QUIT :"Lost terminal" < 1263554616 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow: http://blogs.perl.org/users/cpan_testers/2010/01/msnbot-must-die.html < 1263554634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems that Microsoft DOSed the CPAN testers, probably by accident < 1263554934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263554941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :did he mail them about the issue? < 1263554952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :he/she* < 1263555270 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure, there isn't much info on the page < 1263555281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1263555859 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1263555916 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :he/she/it* -- stop with the discrimination against genderless AI entities. < 1263555943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm good point < 1263561445 0 :FireFly!n=firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1263561814 0 :soupdragon!n=somebody@unaffiliated/fax JOIN :#esoteric < 1263565402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how goes esoteric projects atm? < 1263565415 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on hold while I do RL work < 1263565422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263565478 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1263566100 0 :ineiros!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263567053 0 :ineiros!n=itniemin@dsl-hkibrasgw1-fe27f900-103.dhcp.inet.fi JOIN :#esoteric < 1263567438 0 :nooga!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263568686 0 :BeholdMyGlory!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1263568995 0 :anmaster_l!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1263570723 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what kind of rl work? :o < 1263570817 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :augur: teaching, and research < 1263570826 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :WAT < 1263570828 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :how old are you :| < 1263570830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I just came back from teaching Java < 1263570832 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :augur: 22 < 1263570836 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1263570839 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :TAing? < 1263570841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1263570856 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :where are you a TA? < 1263570871 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :whats your gradschool, that is < 1263570883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :TA? < 1263570883 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :not "The CS Dept. x3" that would be a bad answer :| < 1263570886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what does that for < 1263570888 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :teaching assistant < 1263570896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263570903 0 :anmaster_l!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1263570905 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :a far more complex program than a proof assistant! < 1263570921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's probably the #1 most popular job done by postgraduate students in order to gain extra money < 1263570935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm doing it simply to give me an extra year for my research < 1263570938 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ais523: where do you go to gradschool? < 1263570987 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :augur: Birmingham University < 1263570991 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :cool cool < 1263571033 0 :nodd!unknown@unknown.invalid PRIVMSG #esoteric :yeah ais523 is not just a pretty face < 1263571039 0 :nodd!unknown@unknown.invalid NICK :oklopol < 1263571053 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :nodnol! < 1263571067 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, sounds reasonable. But don't you need to take a course^Wmodule in pedagogy then? < 1263571081 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :TAing doesnt require that, no < 1263571084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263571088 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :because its not for like < 1263571090 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :highschool < 1263571092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as a result, most TAs are rather rubbish < 1263571092 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its for universities < 1263571096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know I would be a bad teacher, it isn't like I can explain thing < 1263571107 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i can explain things SO WELL OMG < 1263571111 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263571112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've been told i should be a teacher < 1263571117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, not to someone who doesn't know most of it already < 1263571125 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :me neither < 1263571136 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :im also teaching a pseudo-class this upcoming semester on intro programming for some fellow ling grads < 1263571149 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :which makes me want to ask -- if anyone has suggestions, do tell < 1263571163 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i'd love to know what you think i should do. im going to try and do it like SICP < 1263571214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :augur, isn't it specified what the class should be about? < 1263571221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like which language and such < 1263571227 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :no, because im the one who made the class up < 1263571242 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its just for some fellow grad students who recently realized "hey, i should learn to program" < 1263571257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :augur, as for lisp, in general most people who aren't really good at the concepts it uses tend to have way easier to learn an imperative language first < 1263571266 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just to get the idea of "control flow" and such < 1263571273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and "function" < 1263571285 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well, im going to cover a lot of basis, but people here i think understanding recursion well enough < 1263571290 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah you learn functions much better from non-functional programming < 1263571296 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :we have lots of people who do semantics, lambda calculus all over the place, etc < 1263571305 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'd imagine linguists would have an easier time with a Lisp than with anything else. < 1263571305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least that is my observation. If they are math students then Lisp might in fact be easier < 1263571326 0 :soupdragon!unknown@unknown.invalid QUIT :"Leaving" < 1263571343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, not really, but lisp is quite hard as a concept, python would possibly be a good start if you hadn't done *any* programming before < 1263571438 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe so, i don't really want to think about hard problems like these < 1263571535 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ok im off < 1263571536 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :bye guys < 1263571577 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :bai < 1263571609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bie < 1263571689 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :buy < 1263571693 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION coughs. < 1263571981 0 :soupdragon!n=somebody@unaffiliated/fax JOIN :#esoteric < 1263572043 0 :nooga!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1263572216 0 :soupdragon!unknown@unknown.invalid QUIT :Client Quit < 1263572310 0 :soupdragon!n=somebody@unaffiliated/fax JOIN :#esoteric < 1263572679 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263573852 0 :ehird!n=ehird@91.105.66.124 JOIN :#esoteric < 1263573929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yodelling absolutely puts yodelling < 1263573959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, we're getting insanely active < 1263573963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :two >200 KiB logs in five days < 1263573993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01:02:18 say contents for each parameter <-- end tell < 1263574004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey, at least mine has sane semantics and is more of a translation of Perl to lighter-weight syntax. < 1263574011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :say foreach @ARGV is how that works in Perl, after all. < 1263574019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foreach → for each is obvious, and @ARGV → parameters too. < 1263574034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01:09:11 So... noreturn tells GCC "be really dumb-fuck retarded about tail calls". <-- it could be a side effect of what it actually tells gcc. Which is "this function won't return, so you can know that any code after the call to it is dead, and you don't need to handle it actually returning ever, no need for a function epilogue either there!" < 1263574036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Exactly < 1263574038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's true :P < 1263574053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I want it to do that, but still CALL < 1263574058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I]t seems my gcc is broken < 1263574059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*It < 1263574061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm not surprised that noreturn messes up if you *do* in fact return < 1263574065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since pikhq compiled it < 1263574066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with 4.3 < 1263574070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it worked perfectly < 1263574073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly how i wanted it < 1263574075 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In every which way. < 1263574076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It isn't just noreturn < 1263574078 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I never got it to break. < 1263574080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it messes up with just static < 1263574080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it could be that it just happened to work but it shouldn't < 1263574081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263574081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with no noreturn < 1263574091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay that's strange < 1263574102 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gentoo's GCC vs. Ubuntu's. < 1263574116 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm going with Gentoo's being correct; that sucker gets tested a lot. < 1263574131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01:23:24 might as well start there once you have your data structures < 1263574133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01:23:29 if you can't to call-cc, no point < 1263574135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cheney on the M.T.A. < 1263574136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'nuff said. < 1263574273 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds that his C lambdas close much more nicely when you implement the closures as a void*[]. < 1263574284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's what I'm doing, heh. < 1263574306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm considering going with the Cheney on the M.T.A. hand-translated style, though, and just defining closure[0-n] < 1263574311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for easier allocation < 1263574314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(alloca is kinda meh) < 1263574318 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Much nicer than creating a bunch of structs. < 1263574464 0 :SimonRC_!unknown@unknown.invalid NICK :SimonRC < 1263574472 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : *c = (void*[]){xgc_malloc(sizeof(unsigned int) * (n+1)), &f}; < 1263574479 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now *that's* how you close. < 1263574479 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263574483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Of course, my case is rather different to yours... < 1263574488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Being that malloc() is pretty much verboten. < 1263574493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Unless I really need a *big* data structure.) < 1263574502 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Whereas I feel free to just use malloc everywhere. < 1263574507 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And never, ever, ever free. < 1263574516 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that's Boehm GC's job!) < 1263574528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yeah, but you can't use a struct initialiser and then return a reference to it. < 1263574558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not really. < 1263574570 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Pity, too. < 1263574592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: But I can! < 1263574630 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION mutters < 1263574747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I love how I barely have to implement any scoping. < 1263574776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If we declared a variable and haven't gone to a new continuation, use it directly. Otherwise, fetch it from our environment. < 1263574784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(which is just env->varname.) < 1263574853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If I add global function pointers so you can redefine top-level functions, then the additional logic is just "if there's no lexical bindings of this before the top level, assign to the pointer named global_whatever or something." < 1263574901 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yeah, that's about as simple as it gets. < 1263574991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: btw, I know Linux won't allocate anything below at least (void *)259, most likely, but do you know about other OSs? < 1263574993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BSDs? < 1263575006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define F ((scm_value) 0) < 1263575007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define T ((scm_value) 1) < 1263575009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define nil ((scm_value) 2) < 1263575010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define tag_char(x) ((scm_value) 3+(x)) < 1263575012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define tag_int(x) ((scm_value) (x<<1)+1) < 1263575013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is what I have < 1263575027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So I depend on: pointers' low bit is 0, no pointer is <259 < 1263575059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could, of course, make it 1, 3, 5 for F/T/nil, but that breaks the fact that you can do if (foo) to detect #f. < 1263575076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I could also spread out the chars so they have low bit 1, but I think this way is nicer < 1263575078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :easier unpacking < 1263575087 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Most UNIXs won't allocate the first page. < 1263575102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Know of any that do? < 1263575107 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1263575111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, wait, I know that 0 won't be allocated < 1263575117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it could be 0, 1, 3 for F/T/nil < 1263575120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that preserves the if < 1263575129 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's generally not allocated so that NULL is guaranteed to segfault. < 1263575130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: then again, even pointers isn't mandatory either is it? < 1263575154 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Not mandatory, just common. < 1263575206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then i'll just leave it as is because i'm depending on common behaviour anyway < 1263575215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I should just call it a Scheme compiler for x86 Linux < 1263575220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c is just my assembly :P < 1263575249 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think even Boehm GC assumes even pointers. < 1263575255 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... And Boehm GC runs everywhere. < 1263575271 0 :augur!n=augur@129-2-175-77.wireless.umd.edu JOIN :#esoteric < 1263575272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :03:45:16 he/she/it* -- stop with the discrimination against genderless AI entities. < 1263575284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or, you know, genderless humans. < 1263575291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Rather more likely :P < 1263575408 0 :jpc!n=jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1263575632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :08:00:57 augur, as for lisp, in general most people who aren't really good at the concepts it uses tend to have way easier to learn an imperative language first < 1263575634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :false < 1263575742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, it is based on observation about average people. Not on observation of those in this channel < 1263575783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also yes it is not a scientifically rigours study < 1263575787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes,* < 1263575793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is still false; imperative programming is only intuitive because that's how it's taught. < 1263575807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Certainly perhaps a "man on the street" could understand a list of instructions but not a simple mathematical function, but < 1263575810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so both are equally easy to learn? < 1263575816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. This man is not, will never be, and is not suitable to be a programmer. < 1263575821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. These are linguists we're talking about. < 1263575830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You know the curry-howard isomorphism? Programming is logic? < 1263575837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Types are statements and values are proofs? < 1263575845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There's one of those for linguistics and logic. < 1263575846 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh right linguists. That probably means some fancy language will be easier indeed < 1263575850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And thus linguistics and (functional) programming. < 1263575865 0 :augur_!n=augur@129-2-175-68.wireless.umd.edu JOIN :#esoteric < 1263575875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I would say that functional programming has a higher learning curve, but much fewer stubbed toes after the initial climb. < 1263575896 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Most definitely. < 1263575921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And beginning programmers have a *lot* of stubbed toes, because writing understandable, reliable imperative code is almost impossible. < 1263575922 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Much agony results from debugging imperative code. < 1263575940 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Especially in low-level languages, where a bug can readily rewrite the stack... < 1263575972 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :what's this about curry howard for linguistics < 1263575977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* pikhq finds that his C lambdas close much more nicely when you implement the closures as a void*[]. <-- as a array of void pointers? Why? < 1263575980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :an* < 1263576064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: i don't remember where I saw it, but it was on lambda the ultimate or something, also, augur has said it < 1263576080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically your linguist notation is the typed lambda calculus, iirc < 1263576082 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: void **c=xgc_malloc(sizeof(void*)*2);c[0] = foo;c[1]=&bar; vs. struct the_closure_t {int *a;int *b} *c=xgc_malloc(sizeof(struct the_closure_t));c=(struct the_closure_t){foo, bar}; < 1263576142 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :link? < 1263576143 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :BTW, that struct declaration has file scope. < 1263576160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Or, you know, genderless humans. <-- that exists? < 1263576169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: "i don't remember where I saw it" < 1263576183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: occasionally but very rarely < 1263576206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Probably. Gender is fluid: you have transgendered people, people who's gender identity is basically in-between, etc. < 1263576212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(If I meant "sexless humans" I would have said that.) < 1263576214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"because writing understandable, reliable imperative code is almost impossible." <-- for new programmers only you mean? < 1263576221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1263576225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean it very literally. < 1263576243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for experienced programmers I find it "hard" instead of "almost impossible" < 1263576251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you disagree, then you don't have a strict enough definition of reliable. < 1263576253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I agree with ehird; I can write relatively understandable imperative code, and sometimes it even ends up reliable, but it's nowhere near as good as equivalent functional code would be < 1263576257 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless it's very simple < 1263576265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Coding in a functional language makes you totally rethink how reliable things can be. < 1263576304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Heck, Dijkstra spent the entire life of a genius trying to figure out how to write understandable, reliable imperative programs. < 1263576310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He... sort of succeeded. < 1263576319 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :what's the point in even saying this < 1263576324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think Unix managed fairly well considering that tools like valgrind didn't even exist back then. < 1263576325 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :not ever program is a function < 1263576332 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :not every program is a function* < 1263576335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: But every program is a function. < 1263576336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and indeed < 1263576340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Unix was not reliable and it has never been reliable. < 1263576345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I didn't say imperative was better than functional < 1263576350 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :that's ridiculous pikhq, that's like saying everything is made from atoms < 1263576360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: Heheh. < 1263576360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And you think the original Unix code was understandable? Wow. < 1263576361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just said it wasn't quite as unreliable as ehird wanted to suggest < 1263576382 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The original Unix code used fixed size buffers for a huge number of things. < 1263576384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm well aware of that parts of it wasn't < 1263576387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you haven't even programmed in any purely functional programming languages, let alone programming seriously in one, so it's understandable you would think that. < 1263576394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also what about modern *nix < 1263576398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like FreeBSD < 1263576400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But Unix's code was definitely not understandable; it was a mess. And it was extremely unreliable. < 1263576403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I read parts of freebsd kernel < 1263576407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fairly understandable < 1263576421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Y'know the term "buffer overflow"? The Unix opinion on them was "Why would you want to make the buffer overflow, anyways?" < 1263576422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you have no idea how reliable code can be because you've only ever used impure languages < 1263576427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's not really any way to explain it < 1263576444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I coded in scheme quite a bit. I don't mention everything in this channel. Far from everything is esolang related < 1263576457 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Scheme's not purely functional. < 1263576459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is not a purely functional language. < 1263576463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Neither is Erlang. < 1263576463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I was getting to that < 1263576471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm aware of neither being pure < 1263576477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The gap between functional and purely functional is immense, and it is where the immense reliability emerges. < 1263576492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm also aware of that both give better results than imperative languges < 1263576517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The Haskell code I have written *can only fail if the compiler or the kernel have bugs*. < 1263576519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however, haskell does have a steep learning curve. I only went up it a tiny bit < 1263576526 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(or, of course, you run out of memory) < 1263576530 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :pikhq how do you know that? < 1263576540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It only has that learning curve because you are used to other kinds of code. < 1263576546 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: It's fairly trivial to see. < 1263576548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, or logic errors. < 1263576555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's false; you cannot ensure that without dependent types < 1263576557 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :pikhq what sort of programs are you thinking about then? < 1263576558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it's close to the truth < 1263576562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the type system helps you guarda gainst those, too. < 1263576575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I'm not interested in debating this , really. < 1263576580 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's the only way for almost *any* Haskell code to fail. < 1263576582 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263576584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I have always said I wanted strong typing, that being one of the things I really miss in erlang < 1263576586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: false < 1263576596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Strong typing as you know it is a waste of time. < 1263576611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if the compiler does it automatically it isn't < 1263576618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is utter folly and makes programs incredibly inexpressive until you get to around the H-M + typeclasses level. < 1263576695 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :you can express a C-like language in haskell (using a monad) and then writing programs in this is equally hard as writing them directly in C -- functional programming doesn't help anything < 1263576700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also it helps catch some bugs certainly. erlang has optional type annotations. Using those I found very useful. Such as the system can tell that it is possible to pass something that won't work somewhere < 1263576701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or suc < 1263576704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :such* < 1263576717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: Let me borrow a term from Conal, then: denotational programming is more reliable. < 1263576718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I understood that haskell has a very useful type system, I assume thus it is even better < 1263576722 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: And then you're not doing functional programming, you're making Haskell into the ultimate imperative language. < 1263576735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I'm very bored about this because AnMaster has no hope in hell of understanding. < 1263576738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So let's talk about something else. < 1263576746 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Learn Haskell, and be enlightened. < 1263576754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: he said he tried to bugt gave up < 1263576754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what about other pure languages < 1263576764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no I said I tried and put it on hold < 1263576765 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :pikhq I still want to know what programs you wrote that are obviously correct < 1263576767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I'd like something like the Splint dialect of C, but with a less cumbersome syntax and that actually works < 1263576770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: aka gave up < 1263576781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, like you and most of your projects? < 1263576784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I'm not like that < 1263576786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, please let's not tell AnMaster to learn Haskell; I Might End Up Maintaining His Code™. < 1263576792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you're boring < 1263576796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: even versions of true in commercial UNIX have had bugs found in them before < 1263576804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what has that got to do with anything < 1263576804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: Whole lot of relatively trivial ones. < 1263576807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: pikhq was exaggerating < 1263576826 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The non-trivial ones are merely *most likely* correct. I've not bothered proving it. < 1263576842 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :Some people realize "functional programming languages are great for functional programming, most programs are functions" but they express it in an odd way, saying stuff like "SET! makes programming impossible, object orientation is broken, ocaml sucks - the only way to get any real programming done is to use foldr in haskell" < 1263576867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : pikhq, what about other pure languages < 1263576872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, still waiting for an answer < 1263576879 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... Which other ones? < 1263576883 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :pikhq I got that you didn't prove it but if you can just tell by inspection that they are correct that's pretty cool -- but I guess you don't want to show me any of these for some reason? < 1263576884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Miranda and Gofer!!!!!11 < 1263576884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that is what I'm wondering < 1263576892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, are those the only ones? < 1263576893 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There's Haskell, and a handful of Haskell-oids... < 1263576897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And... ? < 1263576903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: very few practical ones. < 1263576910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why so few? < 1263576927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because they're subtle and require intelligence to create and compile. < 1263576932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263576941 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: http://sprunge.us/ETYc < 1263576941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Compare to, say, Python, which was whacked together in a few days based on a few vague ideas and a lot of C. < 1263576954 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: cat. < 1263576961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main = interact id < 1263576963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cat. < 1263576970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cat does not have options, btw. < 1263576993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not make something like haskell but with a simpler syntax and less steep learning curve? < 1263577000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The syntax is simple. < 1263577000 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: /bin/cat does. < 1263577005 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... Haskell has a rather simple syntax. < 1263577005 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster because it would still suck < 1263577008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I meant "simple as lisp" < 1263577008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Removing the learning curve would make it suck. < 1263577013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Liskell. (It sucks.) < 1263577034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why not make something like c but with compiler-enforced safety and no memory management? < 1263577040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also I didn't intend it as a production language. Rather as a language like scheme, for learning mostly < 1263577044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather than for performance < 1263577044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has to be just as fast and low-level < 1263577047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and incur no run-time overhead < 1263577061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't intend mine as a production language, either! < 1263577077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just for learning. So can I have this safe, no-memory-management C that is fast, low-level and has no runtime penalty for its features tomorrow? < 1263577079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so you are saying that scheme is impossible or such? < 1263577085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is not purely functional. < 1263577090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's true < 1263577093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: btw you should use http://community.haskell.org/~ndm/cmdargs/ for command line args :P < 1263577103 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Probably. < 1263577103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's all type system and shizz < 1263577104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it is the same vs other more advanced lisps really < 1263577109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: TYPE SYSTEM < 1263577177 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :pikhq okay I guess I see what you mean -- you are programming at such a high level that there's no confusion about what's going on here < 1263577193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: btw it should be putStr not putStrLn < 1263577199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus I have yet to find a good haskell tutorial. < 1263577214 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Dankon. < 1263577226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if neither Learn You a Haskell nor Real World Haskell get you understanding haskell, it is merely your imperative mindset that is broken. < 1263577253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, the former I just found silly, the latter I don't remember seeing < 1263577257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION googles < 1263577270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh was it book only? < 1263577270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Waah, it's silly. It sucks and Haskell sucks and you suck." < 1263577273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1263577273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather than website < 1263577284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Look, I'm really uninterested in talking about this, so please don't highlight me about it again. < 1263577285 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, it's meant to be silly so its' fun to read < 1263577287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "Waah, it's silly. It sucks and Haskell sucks and you suck." <-- never said that. < 1263577295 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :I recommend that book it's good < 1263577295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I said don't highlight me about it again. < 1263577301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what I said is, I found it silly and not fun at all < 1263577310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thus it didn't work for me < 1263577313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: btw - for stdin is baad < 1263577314 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :maybe you just don't want to know haskell < 1263577330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it breaks the uniform identifierspace that is the filesystem and requires every program to do additional processing < 1263577335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when /dev/stdin is a perfectly good name :( < 1263577337 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yes, but 'tis the standard. < 1263577341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon, I don't have the money to pay for books currently except course literature. That is expensive as it is < 1263577341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1263577343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can do better! < 1263577356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's published online you dumbfuck < 1263577360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's a whole link on the homepage to read it < 1263577364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're being deliberately obstructive < 1263577364 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster not sure what that has to do with it < 1263577373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm then I misread the result < 1263577389 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Real World Haskell is *also* available online. < 1263577399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, first result was amazon.com you see < 1263577426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then o'reilly < 1263577437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, no books are both online and sold < 1263577440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the site for the book was only at the 7th place < 1263577442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://diveintopython.org/ is a LIE < 1263577446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well it didn't say near the top < 1263577451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and stop being silly < 1263577461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'M VERY SERIOUS NOW :| < 1263577472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, everyone just looks at the top few results at google usually < 1263577513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :After I just said "it's not just a book"? < 1263577519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You're just wasting our time. < 1263577537 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1263577540 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :what was I saying < 1263577603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm? where? If you mean " AnMaster: it's published online you dumbfuck" then it was afterwards < 1263577616 0 :nooga!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263577616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1263577616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anything before that I must have missed < 1263577619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :before < 1263577666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well unable to locate it, but I don't really care. Won't make you change your mind anyway. *shrug* < 1263577666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ohai < 1263577671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i done rewrite your program as oneliner < 1263577678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main = putStr =<< (fmap concat $ getArgs >>= mapM readFile) < 1263577687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok technically "cat" on its own a nop < 1263577691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i'm paid by the anticharacter! < 1263577698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : oh was it book only? < 1263577699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "Waah, it's silly. It sucks and Haskell sucks and you suck." < 1263577699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : No. < 1263577702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh you mean that no? < 1263577708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[17:40] oh was it book only? < 1263577709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[17:40] No. < 1263577711 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :import UnixInOneLine < 1263577711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[17:40] rather than website < 1263577716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see order here < 1263577716 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :cat = unix id < 1263577725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it looked like it was connected to that quoted line < 1263577740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soupdragon: is unix "interact but with file arguments" :P < 1263577747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, like trying to point out the sarcasm in a very clear way < 1263577765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, please do remember the timing issues with irc. < 1263577777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fix your massive lag. < 1263577785 0 :augur_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263577788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 0.1 seconds yes < 1263577793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what my meter shows < 1263577799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh. < 1263577841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, * Ping reply from ehird: 1.01 second(s) < 1263577849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :either most of the lag is on your end or between servers < 1263577852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :182 ms here. < 1263577860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well then between servers < 1263577860 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: cat was one of my earlier Haskell programs. < 1263577865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not much I can do about that < 1263577895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1263577904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :echo time! < 1263577924 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :main = putStr =<< getArgs < 1263577925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main = putStrLn =<< (unwords <$> getArgs) < 1263577933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: type error. < 1263577939 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah, right. < 1263577955 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, getArgs :: IO [String]. Need some unwords. < 1263577993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main = putStr =<< (fmap (reverse . concat) $ getArgs >>= mapM readFile) < 1263578008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ohai i turned you into tac < 1263578013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Except it's character-based tac, not line-based.) < 1263578018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Also, it prints the last argument first.) < 1263578034 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :main = interact $ unlines . map reverse . lines < 1263578040 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :stdio-only tac. < 1263578043 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Whoo. < 1263578214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides that a good compilation strategy is transforming the Scheme program into an sexp form of C. < 1263578225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...although I don't want to implement macros right now. < 1263578378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol, OS X ehird:staff shows up in linux as 501 dialout < 1263578474 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1263578532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what distro? < 1263578541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on arch iirc users start below 1000 < 1263578543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kubuntu < 1263578546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably Snow Leopard < 1263578553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yeah users would start about 1000 there < 1263578554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"shows up in linux as" < 1263578554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, -_- < 1263578565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(sorry, I'm in a misinterpetitive mood at the moment) < 1263578571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I didn't actually get around to upgrading to Snow Leopard < 1263578576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also that would be version, not distro < 1263578590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, technically Snow Leopard is a distribution of Darwin. :P < 1263578597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it's like saying jaunty is a different ubuntu distro than karmic < 1263578604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :With its own, proprietary windowing system and applications. < 1263578609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, note "technically" < 1263578615 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sometimes it feels like that! < 1263578643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where can I list all the fs types i can mount? < 1263578645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it requires a mind bending definition of distro though < 1263578653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, atm? somewhere in /proc < 1263578660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/proc/filesystems < 1263578662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : The argument following the -t is used to indicate the file system type. The file system types which are currently sup‐ < 1263578663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ported include: adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, ext, ext2, ext3, ext4, hfs, hfs‐ < 1263578665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : plus, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, < 1263578666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs. Note that coherent, sysv and xenix are equivalent and that xenix and < 1263578668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : coherent will be removed at some point in the future — use sysv instead. Since kernel version 2.1.21 the types ext and < 1263578671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : xiafs do not exist anymore. Earlier, usbfs was known as usbdevfs. Note, the real list of all supported filesystems depends < 1263578671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, however, loading more modules may change which ones are available < 1263578674 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : on your kernel. < 1263578676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or just man mount < 1263578678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hfs-plus then < 1263578683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:/media$ sudo mount -t 'hfs-plus' -o user=ehird,group=ehird /dev/sda2 Macintosh\ HD < 1263578685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mount: unknown filesystem type 'hfs-plus' < 1263578687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, "note the real list" < 1263578688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*look of disapproval* < 1263578700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, it's really "hfsplus" < 1263578703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thanks, misleading man page < 1263578704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I love you < 1263578704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes see. < 1263578716 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: "hfsplus" on my manpage < 1263578724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's nroff you should probably hate, rather than the manpage itself < 1263578734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is just line broken there < 1263578742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eh didn't work giving -o uid=ehird,gid=ehird ;( < 1263578746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*:( < 1263578750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yar < 1263578766 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1263578772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :man mount give me the plan9 page < 1263578784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay only that shell < 1263578785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1263578830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: those are filesystem-specific options, and hfsplus has no specific options it seems < 1263578846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1263578852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll just have to chown the directroy then < 1263578854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*directory < 1263578856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NUCLEAR OPTION < 1263578864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read only filesystem < 1263578865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fml < 1263578868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fine then < 1263578872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll just copy all the files < 1263578879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird@meson:/media/Macintosh HD/Users/ehird$ cd Music/ < 1263578880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bash: cd: Music/: Permission denied < 1263578886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FFFFFFFUUUUUUUUUUUU < 1263578887 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :try sudo cd < 1263578890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wonderful < 1263578891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: lol < 1263578894 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1263578899 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(try starting a root shell, then cding) < 1263578901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sudo sucks for being a program < 1263578902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that... XD < 1263578907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do "sudo foo >bar" all the time < 1263578909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and get bar: permission denied < 1263578918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I do sudo su - < 1263578918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then realise GOD DAMMIT SUDO SHOULD BE HANDLED BY THE SHELL < 1263578922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: aka sudo -s. < 1263578927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there is a difference < 1263578933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sudo -s doesn't reset umask < 1263578938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sometimes I do "sudo cp /dev/stdin bar" < 1263578949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess "sudo cp <(sudo ...) bar" would also work < 1263578958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, which really matters since mine is set to not allow world any permissions by default < 1263578966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thus I need a reset umask from a login shell < 1263578969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you use umasks? < 1263578970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're crazy. < 1263578972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for some reason I haven't got it to work < 1263578975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in any other way < 1263578976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what? < 1263578985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : there is *always* a default umask < 1263578987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fairly sure even ais523 will agree here < 1263578997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :0022 usually < 1263578997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, but seting it yourself < 1263579004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cp -R iTunes\ Music ~ < 1263579005 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :umask is as far as I can tell only useful in shellscripts < 1263579007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why not? it's what it is meant for < 1263579017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh dear < 1263579021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's 21 gibibytes < 1263579032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it makes more sense to deny world-execute and world-read to your home dir, then it does to mess with the umask < 1263579040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: *than < 1263579047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, yes, *than < 1263579049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I should get more sleep < 1263579063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yes but that messes up ~/public_html < 1263579072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, since web server can't access it any more < 1263579072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Filesystem Size Used Avail Use% Mounted on < 1263579074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/dev/sda3 61G 4.0G 54G 7% / < 1263579081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how long do you think copying 21 gibibytes from one partition to another will take? < 1263579100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, thus I need only that to be world read and execute in my home dir. keeping the rest out < 1263579109 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm actually not sure < 1263579118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let's find out < 1263579125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Go go gadget cp -R < 1263579139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*time cp -R < 1263579142 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it took me maybe about an hour to copy 1 gigabyte from one computer to another via compressed rsync and an Ethernet cable < 1263579153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :root@meson:/media/Macintosh HD/Users/ehird/Music/iTunes# time cp -R iTunes\ Music ~ < 1263579156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dun dun dun dun < 1263579157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dun dun dun dun < 1263579159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dun DUN < 1263579164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, gbit or 100 mbit? < 1263579166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ethernet is slower than disk methinks < 1263579173 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: agreed < 1263579176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, I mean < 1263579177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ethernet+disk < 1263579178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was just giving that as a comparison < 1263579183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I should be getting, like, 100 mbit/s, sustained < 1263579188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so —whips out Frink— < 1263579196 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: actually, slowest was probably trying to compress and decompress stuff on a netbook < 1263579208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not sure; it's gigabit on one computer, but I don't know about the other one < 1263579212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the slower connection would be used < 1263579213 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :21 gibibytes / (100 megabits/s) -> minutes < 1263579214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :58720256/1953125 (exactly 30.064771072) < 1263579217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :About half an hour. < 1263579222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you will find this crazy: when I need fast transfer between my laptop (has gbit ethernet) and my desktop (100 mbit only) I use ethernet over wirewire instead < 1263579229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that give me about 4 times as fast as 100 mbit < 1263579229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wirewirewire. < 1263579240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1263579242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :firewire* < 1263579246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :obviously < 1263579293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thing is, desktop firewire hardware is kind of buggy, it doesn't work after you unplug the cable until next reboot again. that pci card is *really* old though < 1263579300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since 2003 or so I think < 1263579308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe 2002? < 1263579316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well early firewire times anyway < 1263579321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is amarok still okay? < 1263579326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :guess you wouldn't know < 1263579340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was superb back in the kde 3 days, kde 4 seems to have messed up the button layout so i don't know what more they'll change < 1263579343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(they overlap weirdly now) < 1263579351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it was rather screwed-up when I last tried it < 1263579363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 21 gibibytes / (100 megabits/s) -> minutes <-- that ignores protocol overhead < 1263579363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but then, I've been having trouble with Phonon for a while < 1263579367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is ip then tcp < 1263579370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://static.kdenews.org/jr/amarok-2-beta-3.jpg < 1263579374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :behold the fucked up buttons < 1263579375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, it doesn't really fit what I want from a media player, I'm using Totem at the moment to play music < 1263579376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: disk to disk. < 1263579382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it serves a different purpose from Amarok < 1263579383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, partition to partition < 1263579398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah well then you have to consider seek time < 1263579401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah i usually just put my whole library on shuffle and skip liberally < 1263579403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it needs to seek back and forth < 1263579406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :between the partitions < 1263579406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's the last fuss < 1263579417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I have a bunch of .pls files < 1263579425 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and Totem set to play them in random order repeatedly < 1263579429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and also skip liberally < 1263579430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: true, but every album by itself should be continuous on disk i think < 1263579437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it shouldn't be too bad < 1263579448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, but if i just drag all my music into amarok i don't need to set up pls files < 1263579451 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I used to use the media buttons for that, but this computer doesn't have them, so I use super-F, super-B, super-P as forwards, back, play/pause) < 1263579457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you defragged your hfsplus disk recently < 1263579463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it is continuous < 1263579465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hfs doesn't do defragging. < 1263579466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :neither does ext < 1263579473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hfs did under classical < 1263579474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but i copy the albums in blocks, obvs < 1263579479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can defrag offline using tar, IIRC < 1263579479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, not apple tool < 1263579495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there was "norton utilities 6.0" with "speed disk" < 1263579499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1263579500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1263579503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: music libraries let me have a very streamlined piracy process, get torrent → download → put into music library → fiddle with tags a bit → it comes up in shuffle < 1263579529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have a very streamlined process for legitimately adding legitimately obtained music to my playlists, to < 1263579530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*too < 1263579537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, saying that to ais is like, well, I can't think of the right word < 1263579543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, but obtaining legitimate music is slower < 1263579546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :totem can edit playlists GUI-wise, but I mostly just open them in Emacs and add the new file in < 1263579547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: wholly intentional < 1263579554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I realised that. < 1263579559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1263579564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's mostly from computer games I own legally < 1263579572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :either that, or music I wrote < 1263579590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my music is mostly *.flac from cds I own legally < 1263579598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I rip those I listen to often < 1263579602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the rest I keep on cd < 1263579613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: aargh, thanks for the earworm < 1263579629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, what have I done now? < 1263579642 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Perceptively Chilly Sonata? < 1263579642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: made me think of video game music < 1263579652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: heh, I actually like video game music < 1263579653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because, even in *.ogg it would fill over 70 GB, (based on taking average compression of a few of the cds and then multiplying by number of cds) < 1263579655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha wow, i forgot all about gregor's < 1263579661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and have deliberately tried to get it stuck in my head at will < 1263579663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i loved my onerous cake-eating festival one < 1263579665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was so chaotic < 1263579667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :most are 60-70 minutes long so no great variance there < 1263579669 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I used to sing it from memory in long car journies < 1263579681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, but you made me get the earworm of ambient background music that lasts 20 minutes < 1263579688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 70GB is a lot? < 1263579693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is just irritating unless you're actually playing a game < 1263579698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, for music yes on a 350 GB disk < 1263579705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm trying pretty hard to not burst out laughing now < 1263579713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :huh. then what do you use it for? < 1263579723 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you don't play games, and you don't watch movies < 1263579734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I prefer to keep it in cd form for all but the top favourites < 1263579742 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it's not a lot? < 1263579745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, source code checkouts < 1263579748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just like cd's < 1263579752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, what? < 1263579774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :checkouts surely can't take that much? < 1263579781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, compiled code < 1263579789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also photos < 1263579806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I have a good camera. Raw format. Creating HDR panoramas is fun < 1263579820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that may easily end up at 1-2 GB working directory for one panorama < 1263579823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1263579828 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i believe you < 1263579838 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this time. < 1263579857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, the data to keep around when done is: the panorama, the raw images, and scripts with settings. Which is maybe 150-200 MB < 1263579865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the scripts being tiny, a few kb or so < 1263579898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :obviously if a human writes it, its size is not significant < 1263579913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hm? Well most of them are auto generated, describing used settings < 1263579916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no one could ever fill 350 GB < 1263579922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like "this white point and blah blah" < 1263579934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, how do you mean, panoramas do fill a lot < 1263579949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :by typing shit, a human could never fill 350 GB < 1263579970 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, system stuff takes a few gb. around 10 for /usr /var / and such (in total) < 1263579976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :swap is at 2 gb < 1263579980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: AnMaster manually types in his os binarise < 1263579984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*binaries < 1263579986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :true story < 1263579995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then home is the rest, and that is more than 75% filled < 1263580012 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also I said that most was images < 1263580031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you live for a hundred years, and during each second type like 100 characters, then you get close < 1263580033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: 14 GiB out of 21 GiB copied, it's going quickly < 1263580046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i believed you ages ago, i just said "yeah, scripts can't take much". < 1263580083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, exactly. Well there is that few hundred kb description of matching control points in the images for the panorama. Ask fizzie about hugin < 1263580092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm too lazy to describe details < 1263580093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(100 bytes/s) * 100 years -> gigabytes < 1263580095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :315.569259746784 < 1263580097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(GB, not GiB.) < 1263580125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slightly more accurate: < 1263580129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i did actually calculate it < 1263580133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(500 bytes/minute) * 80 years -> gigabytes < 1263580133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :21.0379506497856 < 1263580139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :500 bytes/min being 100 wpm < 1263580141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1263580143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc that assumes no sleep < 1263580155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway what if you record exact time stamp for each key press? < 1263580157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :food could be via a tube < 1263580164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, you've gotta be like 10 to type that fast at least < 1263580167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, and how the hand moved < 1263580176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, sleep, let's say tesla pattern all your life < 1263580181 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if chinese would like that job < 1263580188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1263580209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's 80 minutes of sleep a day < 1263580218 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it can't be done < 1263580230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what, the tesla pattern? < 1263580234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://tesser.org/sleep/teslapattern/ < 1263580235 0 :kar8nga!n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1263580240 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah and it's such a great pattern we can assume 100 years lifespan < 1263580241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is done. < 1263580246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no :P < 1263580251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway so < 1263580258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :80 minutes a day < 1263580274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(80 minutes/day) * 80 years -> years < 1263580275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4.4444444444444444444 < 1263580276 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it must be extremely unhealthy < 1263580282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: it is not < 1263580284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :polyphasic sleep is fine < 1263580293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, tesla is experimental < 1263580299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but uberman seems to have little to no long term effects < 1263580305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and tesla is just more hardcore uberman < 1263580340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(500 bytes/minute) * (80 years - 14.4444 years) -> gigabytes < 1263580342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :17.239443470213560991 < 1263580348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nothing you do in no way affects how long you live, or how healthy you are < 1263580350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everyone knows this < 1263580357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so if you do the tesla pattern all your life, live for 80 years, get fed via a tube, < 1263580368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and spend all your time after age 10 either sleeping or typing at 100wpm < 1263580381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and make no fluctuations in speed, ever < 1263580392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can produce about 17.23 GB of text. < 1263580400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(again, gigabytes not gibibytes) < 1263580400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1263580402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fin < 1263580417 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is it in gibibytes? < 1263580423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :less. < 1263580423 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: What if you do shift-home,end,shift-insert all the time when it gets profitable < 1263580428 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Er, forgot to copy < 1263580428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how much less < 1263580429 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But anyway < 1263580431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: left to the reader < 1263580434 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: work it out yourself < 1263580437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :root@meson:/media/Macintosh HD/Users/ehird/Music/iTunes# time cp -R iTunes\ Music ~ < 1263580439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :real 21m5.663s < 1263580440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.784s < 1263580442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sys 1m30.970s < 1263580443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faster than 100 mbit/s, great < 1263580463 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, it'll grow exponentially so it'll be a shit-tonne more. Fin < 1263580468 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that time interesting < 1263580481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is there missing from real < 1263580483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1263580487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: but that's not human creation < 1263580489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what isn't covered by user and sys < 1263580493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: disk. < 1263580494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :waiting? < 1263580505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but that would be sys iirc? < 1263580517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm maybe not waiting for it to finish < 1263580517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :waiting for disk, rather. < 1263580522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1263580587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, shift-home and shift-insert in emacs? < 1263580598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. Not in Emacs. < 1263580618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it could be vim, which I don't really remember all the details in < 1263580627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It could be a regular text field. < 1263580648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh in X? < 1263580649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263580655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sigh. < 1263580659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stfu. < 1263580688 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, shift-home moves to the top of the history in X apps I tried ? < 1263580713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well depends on program < 1263580751 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you fluent in acme? < 1263580772 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: I can use it. < 1263580795 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :do you like it? < 1263580822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let's see if Amarok can do ALAC. < 1263580823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: Yes. < 1263580888 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it's weird but has some awesome solutions < 1263580978 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :plan9 is awesome, it makes you read manpages < 1263581072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nooga, iirc ehird more than once said that most programs shouldn't require documentation to understand < 1263581084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, AnMaster, always trying to incite conflict < 1263581087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, easy to figure out user interface < 1263581102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just quoting you < 1263581111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for no purpose other than to incite conflict. < 1263581151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no because I considering you an authority on "usable user interfaces for other people than me" < 1263581188 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :uhhhhh < 1263581191 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :no, i mean it < 1263581235 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it's exotic < 1263581270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: just ignore AnMaster, he's just trying to get me riled up. < 1263581302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not. I'm just interested in *if* that will happen or not < 1263581316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my goal is not to make it happen, but rather to see if it will happen < 1263581319 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :...and then you'll get infuriated and i'll be called idiot again < 1263581335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nooga, hey he will get angry at me not you < 1263581354 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :but i'm near this time ;( < 1263581359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HatfulOfHollow can't work fast enough. < 1263581383 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, a band or artist? < 1263581406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.bash.org/?4281 < 1263581438 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah thought it was about music, since that was recently discussed < 1263582081 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :http://www.frappr.com/?a=mygroups&id=4644452 average eso hacker < 1263582129 0 :soupdragon!unknown@unknown.invalid PRIVMSG #esoteric :llol < 1263582130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just another esoteric hacker, < 1263582156 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... maybe TAEB should have been called JAPH < 1263582156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whut < 1263582159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :frappr's going down? < 1263582164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION exports it < 1263582174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we are compiling a lot of content for this request, thanks for being patient, please only click the link once. < 1263582175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay... < 1263582176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why vlc prints "[0x23bbfa8] main input error: ES_OUT_RESET_PCR called" once every time a file is played < 1263582187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, I saved the kml < 1263582189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the hexdecimal number varies < 1263582191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Don't know if it has the photos, probably not < 1263582211 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what's frappr? < 1263582217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: a map site thing < 1263582220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the esolang map is on it < 1263582227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(see chanserv line when you come in) < 1263582231 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes < 1263582234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's going down, apparently, so I backed it up < 1263582237 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I forgot all about the esolang map < 1263582238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not with photos i think, it was a small file < 1263582249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but probably the locations and names, maybe the text < 1263582261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263582262 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :what for? < 1263582283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember such a chanserv line < 1263582302 0 :anmaster_l!unknown@unknown.invalid PART #esoteric :? < 1263582302 0 :anmaster_l!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1263582303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: /cycle. < 1263582311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: why not < 1263582331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well yes I did as anMaster_l < 1263582347 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1263582351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anmaster_l* < 1263582362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, missing plugin... < 1263582377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :js afaik < 1263582384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :flash for the little scrolly thing < 1263582391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's not mandatory < 1263582397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I enabled js < 1263582403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, it's the map. < 1263582411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe it needs flash to cycle through things < 1263582421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no map on there. As in no actual map < 1263582450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, swfdec didn't work, nor did gnash < 1263582451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :enable flash and try < 1263582455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adobe flash < 1263582457 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i hate facebook < 1263582460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets popcorn < 1263582461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm not crazy < 1263582471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah evil frappr security holes < 1263582552 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :... < 1263582626 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1263582639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what < 1263582646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :found out acme doesn't have syntax highlighting? :P < 1263582659 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :my irssi is broken, page down does not work after i press page up < 1263582662 0 :nooga!unknown@unknown.invalid PART #esoteric :? < 1263582677 0 :nooga!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263582680 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :;| < 1263582683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, can I get the kml, it says you can't download it twice < 1263582685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-_- < 1263582688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:10] what < 1263582689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:10] found out acme doesn't have syntax highlighting? :P < 1263582691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I already downloaded it. < 1263582695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, but I can't < 1263582697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since you did < 1263582699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I AM THE SOLE PROPRIETOR < 1263582700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can you send it to me < 1263582703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1263582708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NO, I WILL RULE THE MAP WITH AN IRON FIST MWAHAHAHAHA < 1263582709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes ok < 1263582713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1263582725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's in google earth format i think < 1263582732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/nbbpfe/126358227137742.kmz < 1263582735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes I have that open from my gentoo install < 1263582736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xml based i think too < 1263582738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe gzipped xml < 1263582742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since arch doesn't have a package for it < 1263582747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :check if it includes the pics < 1263582765 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :screw syntax highlighting, rio's way of handling text is too weird already < 1263582805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it doesn't say who for the points < 1263582810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's unconventional but good < 1263582821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nooga: practice moving your hand to the mouse :p < 1263582823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and no pics < 1263582824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1263582831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that may be a google earth problem < 1263582832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just the points < 1263582835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: open it in an editor or sth < 1263582838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try gunzipping it too < 1263582842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(remember to save a copy first) < 1263582852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's zip < 1263582853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not gzip < 1263582858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that too < 1263582904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the images are in the zip archive < 1263582909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least some *.jpg are < 1263582923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Error interpreting JPEG image file (Improper call to JPEG library in state 200)" < 1263582933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for three of the images < 1263582965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1263582982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe jpeg2000 or soemthing silly < 1263582990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data readability is unimportant as long as it's there :P < 1263582997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plenty of time to figure out the format < 1263583025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :8ff24142d0385118657d3a492b403fbc2_medium.jpg < 1263583027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that one fails < 1263583032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :8ff24142d0385118657d3a492b403fbc2_medium.jpg: empty < 1263583037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that is what file says < 1263583044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so well I don't believe there is any data there < 1263583049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Alright < 1263583050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably a 0-byte file < 1263583055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What about the others, are they proper jpegs? < 1263583055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes < 1263583062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, maybe just no picture was specified or something < 1263583063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, seems like it, gimp can view them < 1263583070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of people? :P < 1263583071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :file says they are jpg < 1263583082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how many images should there be < 1263583094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are 12 < 1263583098 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :meh, just use gwenview or something, why would anyone use the GIMP as an image /viewer/? < 1263583100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :including the 3 broken < 1263583111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: feh! < 1263583115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or, just, whatever KDE does. < 1263583116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I used eog first, them gimp in case eog was unable to handle some strange file format < 1263583122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whatever KDE does doesn't seem to be an annoying principle to me right now. < 1263583124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, isn't feh a window manager? < 1263583127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1263583129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :image manager < 1263583133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1263583135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not manager < 1263583136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :viewer < 1263583146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah < 1263583150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1263583152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1263583164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I said *window* manager < 1263583166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not image manager < 1263583169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but okay < 1263583183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] ehird, isn't feh a window manager? < 1263583185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] AnMaster: no < 1263583186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] image manager < 1263583188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] erm < 1263583189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] not manager < 1263583191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[19:18] viewer < 1263583192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Two-stage error correction system. < 1263583217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway it doesn't include lables for who for most of the data point < 1263583221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263583248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, like for those in helsinki < 1263583254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lots of yellow pins there < 1263583257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: grep the file for... I don't know, some names < 1263583258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but no names for them < 1263583261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see if the names are at least there < 1263583268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well those elsewhere have some names < 1263583289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, almost all data points in the file lack names < 1263583291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a few has it < 1263583304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There are yellow square pins on frappr.com too < 1263583321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not square, the round google ones < 1263583357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, the one for oerjan has no label < 1263583363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, at least I can tell that < 1263583384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also some of the points look dubious < 1263583389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can compare with frapper < 1263583396 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to see if they have a name for oerjan's pin < 1263583398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could but frappr's interface sucks < 1263583405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lessee < 1263583426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, would be Norway, about where it gets narrow < 1263583429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Trondheim < 1263583432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Norway there's rune, Wh1teWolf, Joakim < 1263583436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Rune < 1263583440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Huh, Rune = kipple < 1263583455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for trondheim < 1263583458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about oerjan. Is his pin unnamed? < 1263583462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan isn't on the map at all. < 1263583470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, slightly south of the joakim pin < 1263583478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a bit more to the west < 1263583480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and to the left a bit? < 1263583496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, at the south end of some large lakes < 1263583510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe the sea going deep in < 1263583511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can't see such a pin. < 1263583513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :could be fjords < 1263583519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is one here though < 1263583523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from that kml file < 1263583523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I see a red circle with a dot, but that's just marking Trondheim < 1263583526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is unnamed < 1263583535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just a glitch, then < 1263583543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://toastytech.com/guis/xnetscape.gif ← redhat 5 < 1263583548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how many pins are there in total? < 1263583582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ grep "" 126358227137742.kml | wc -l < 1263583582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :531 < 1263583583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1263583588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do we even have that many? < 1263583593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :look < 1263583597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the pin I see for trondheim < 1263583599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is right next to the name < 1263583600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Trondheim < 1263583604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so I bet it's just ... marking trondheim < 1263583615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :531 is probably the cities it knows plus us handful < 1263583627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there are *lots* of spurious pins then < 1263583627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263583636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, they are unnamed. Very helpful XD < 1263583637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :filter the ones that have namse < 1263583638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*names < 1263583650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also it doesn't explain why there are more than one in Helsinki < 1263583653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :about 7 or so < 1263583660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :all unnamed < 1263583668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sec < 1263583673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Helsinki is just AWESOME < 1263583683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The more pins THE MORE AWESOME < 1263583692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 37 < 1263583698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in .fi we have < 1263583699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with names < 1263583700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol < 1263583706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shadikka < 1263583713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :keymaker < 1263583718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and tat's it < 1263583720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*that's < 1263583723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 37 sounds right < 1263583728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a host of unnamed pins :P < 1263583731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.frappr.com/esolang/members < 1263583732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let's count! < 1263583737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :8 on first page < 1263583748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :8 on the second page, ok, we can assume 8 on a page < 1263583752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are two unnamed plus one "Gustaf" in Stockholm < 1263583755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1263583756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.frappr.com/esolang/members?pg=7 < 1263583760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lots of (People) with no name < 1263583762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just some glitch < 1263583767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the 37 are all the real people < 1263583771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1263583773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so just ignore the unnamed ones < 1263583827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, one real in australia? < 1263583835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lemme check < 1263583854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1263583857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Mark Schad < 1263583873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does it have Castle Hill, New South Wales, Australia < 1263583875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as metadata < 1263583877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also "There is no spoon." < 1263583882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just wondering if truly everything is in there < 1263583896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1263583905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, pictures does not show up < 1263583906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however < 1263583940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait what, now they do after restarting google earth -_- < 1263583969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*pictures do not show up < 1263583970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1263583972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, good < 1263583974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all saved < 1263583977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not that anybody will want it < 1263584001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, there are 12 valid pictures on fappr < 1263584012 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not all of them are valid in the kmz < 1263584024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, there are 9 images + 3 empty < 1263584026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well... save them to disk manually and note who's they are. < 1263584028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while there are 12 valid there < 1263584030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in a text file < 1263584033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263584034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or if you're daring < 1263584036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :make a copy < 1263584037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and put them in that copy < 1263584039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :have to figure it out < 1263584051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could unzip it yourself you know ;P < 1263584060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so could your mom :| < 1263584070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, she doesn't know what a zip file is < 1263584106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gregor is missing < 1263584108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey i just realised my statement works as an innuendo too < 1263584109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in image < 1263584113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm so ... unintentional < 1263584134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm unable to get the right type < 1263584141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they are all *_medium in the zip < 1263584148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but the images on the website are *_small < 1263584154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Mimas: That's no moon. Wait, yes. Yes it is. < 1263584177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: change the url < 1263584180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to have _medium < 1263584195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263584213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :looks scaled up < 1263584255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also there are huger versions for some < 1263584258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that weren't saved < 1263584264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so save them < 1263584289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :funny the large version for Gregor is smaller than the medium < 1263584294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I was right about upscaling < 1263584471 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The "backyard" of the university main building: http://zem.fi/~fis/alvar.jpg < 1263584493 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :now for the partyyyyyyyyyyyy!!! < 1263584513 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :s/for/to/ < 1263584581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh the size *killall -9 firefox* < 1263584592 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1263584593 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Huh? It's just some 8000 pixels wide. < 1263584593 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION opens it in gimp < 1263584601 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yeah made firefox swap trash < 1263584610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before half was loaded < 1263584624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here's a nickel, buy some ram < 1263584639 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :My firefox uses 192M RES on that < 1263584640 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how much ram does a nickel buy these days < 1263584647 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :More than 192M < 1263584674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, gimp timed out < 1263584675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1263584700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: that's really pretty < 1263584703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also I have 1.5 GB in this box < 1263584717 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : oerjan, ais523: does either of you understand xkcd today < 1263584722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :finland is pretty < 1263584742 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what fizzie said about a game i guess, i assume the point was that they cheated horribly < 1263584783 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :norway is prettier. so there! < 1263584793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it's not like norway is entirely composed of fjords < 1263584811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: when was that pic taken < 1263584815 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The university campus courtyard is perhaps also not the prettiest piece of Finland ever. < 1263584822 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, there are also ravishing mountains < 1263584824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes but it is pretty. < 1263584830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whereas norway is just boring because i said so < 1263584836 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Four hours ago or so. < 1263584837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :norway's too... tranquil. < 1263584846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's like ... 21:46 there right? < 1263584852 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Now, yes. < 1263584853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so around 18:00. < 1263584872 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Closer to 17, actually; I just looked at the hour part. < 1263584881 0 :jpc!unknown@unknown.invalid QUIT :Remote closed the connection < 1263584884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, alvr? < 1263584886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alvar* < 1263584890 0 :ais523!unknown@unknown.invalid NICK :scarf < 1263584909 0 :jpc!n=jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1263584922 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The place is called "Alvarin aukio" (Alvar's plaza) after Alvar Aalto. < 1263584923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also yes wonderful panorma. HDR no? < 1263584924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi scarf < 1263584928 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1263584935 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :just randomly typoed this nick in a whois, and found it wasn't taken < 1263584938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah wait no < 1263584938 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :and it's a nice one < 1263584939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it isn't < 1263584945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scarf would be a good name for a bot < 1263584950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :those windows are too bright for it to be HDR < 1263584950 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1263584951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i should perform a hostile takeover of that nick < 1263584954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scarf: it feels botty < 1263584959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bots should have names of random nice objects < 1263584962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or concepts < 1263584968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, very light sky < 1263584969 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I was talking in competitive pokemon channels < 1263584972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unexpected < 1263584972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :endeavour, scarf, table < 1263584974 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : he/she/it* -- stop with the discrimination against genderless AI entities. < 1263584978 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :and as a result to me, it feels like 1.5 times speed but you can only use one attack < 1263584979 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's actually LDR by accident: turns out the camera disables automatic exposure bracketing when shutter time is >1 second, for some reason. < 1263584985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :YM (s)h/it < 1263584991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scarf: wut xD < 1263584993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ouch < 1263585019 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There's quite a lot of streetlight-etc.-caused "light pollution" in the sky around here whenever it's snowy or otherwise non-clear weather. < 1263585027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, saved large images and those missing medium ones < 1263585033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus mapping < 1263585041 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :ehird, pretty useful for revenge-killing things before they sweep your team, also on leads < 1263585042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(as the html table) < 1263585049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a few other issues too: the horizon is a bit snakey because leveling it would mean too much cropping or black regions (the tripod wasn't quite level, but there was something like 40 cm of snow and I had to hurry so I didn't bother setting it up well), and there's visible seams in the middle (where the first/last image merge, manual keypoints could fix that). < 1263585095 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: oh, i forgot to mention the ravishing archipelagos < 1263585123 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: book me a plane ticket to norway and i'll agree < 1263585126 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which include some of the mountains < 1263585130 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :anyway, it seems the reason for all the Freenode lag is that someone's invented a website that causes visitors to it to repeatedly join Freenode and post spam < 1263585138 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :POST spam, in fact, it's an IRC/HTTP POST polyglot < 1263585161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isn't it fun how so much evil is esoteric < 1263585176 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :because the obvious ways are the easiest to defend against < 1263585198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1263585216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hugin can level it for you < 1263585232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes manual keypoints are good < 1263585241 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :scarf: The exploit itself is POST, but presumably that site uses javashit? < 1263585245 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :ooh, the MSNbot story has gone from languishing low on Reddit to getting massively voted up < 1263585247 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: yes < 1263585255 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :because it keeps sending in a loop < 1263585261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw how many degrees is it? < 1263585267 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :360. < 1263585271 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :otherwise I think you'd have to require the visiting user to keep clicking on a button, getting a blank page, going back and trying again < 1263585276 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :which wouldn't be nearly as effective < 1263585276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then what do you mean in the middle < 1263585281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't it be at the edges? < 1263585295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah wait I can spot it < 1263585303 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In the middle of the image file there are visible seams. There might be at the edges, too, I haven't looked at it that way. < 1263585307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the middle of that amphitheatre-like thingy < 1263585307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1263585311 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1263585316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: wait it's circle not... straight? < 1263585317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1263585326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :next you'll tell me the freaky building geometry isn't real either < 1263585353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : ehird, the one for oerjan has no label <-- i'm not on frappr, i have a pretty high threshold for doing things that require registering < 1263585366 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not registering it's entering a name :P < 1263585369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it isn't. it is due to a rectilinear projection I think < 1263585373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, isn't that what you used? < 1263585375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: fuck. < 1263585380 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think it wanted my email at least < 1263585382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i thought the architecture was sweet :( < 1263585386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: huh okay < 1263585389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think you were joking though ;P < 1263585394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not 100% sure < 1263585402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: maybe the unnamed points are all the people who visited and it autodetected a location for < 1263585405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but didn't choose to add themselves < 1263585407 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Equirectangular. You can't make a rectilinear image with a horizontal FOV larger than 180 degrees. < 1263585410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so oerjan went to the page < 1263585411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :got marked in trondheim < 1263585413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, maybe < 1263585413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and went away < 1263585422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, would be kind of strange < 1263585447 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zoom in further and tell us what the name of the area is < 1263585451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ask oerjan if he's there :P < 1263585453 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The middle (of the image file) is where the first and last (chronologically) images merge; it's possible the tripod moved during the rotating of it. It was on snow, after all. < 1263585467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so is the freaky architecture real < 1263585469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the curvy building < 1263585490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on a slant < 1263585494 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: If you're talking about the one with the bright windows, no: that front wall is straight. < 1263585508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait that's even straight, not just a curvy building not on a slant? < 1263585508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, do you own a panoramahead? < 1263585509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fml < 1263585514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :insert the space < 1263585523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: show that panorama to the head of university architecture < 1263585528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and tell him to redesign it to look like that < 1263585547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then the panorama wouldn't look like that < 1263585555 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Nope, just a regular tripod. Fortunately most content in that image is sufficiently far away not to suffer badly from parallax problems. < 1263585556 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i would be slightly worried if frappr could detect my location more precisely than "trondheim"... < 1263585569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yeah < 1263585589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, even that is spooky < 1263585606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well let's find out! < 1263585609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, don't care < 1263585612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to see it like that in person < 1263585621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the curviness on a slant just looks so beautiful < 1263585626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also there is noise if you zoom in, multiple exposures would have reduced noise in many areas as well < 1263585639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the effects of that is wonderful < 1263585643 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, but I had a bus to catch. < 1263585656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh also if you are lazy you could send me the photos and *.pto and I could fix it up < 1263585665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I quite like messing around in hugin, it's fun < 1263585702 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In any case: if I level the horizon, I have to crop unacceptably much out of the image; the problem is that the camera pitch angle has not been constant during the 360-degree circle. (Most likely because the tripod itself was tilted.) < 1263585740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well yes, but you can still fix the issue with that seam < 1263585744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a few other smaller seams < 1263585758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I always aim at getting less than 2 pixels max distance from the optimiser < 1263585763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :less if just doing an image stack < 1263585796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there are at least two seams near the middle < 1263585796 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :wow, Reddit thinks the MSNbot spam is because it's looking for "Robots.txt" with a capital R < 1263585802 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :and doesn't honour "robots.txt" < 1263585817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scarf, that's craz < 1263585819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :crazy* < 1263585830 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :of course, the two are the same on Windows < 1263585832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I find it doubtful < 1263585845 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :other redditors seem to disagree, though < 1263585867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scarf, btw it still shouldn't use as many bots at once < 1263585879 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :yes, and it doesn't seem to honour crawl-delays < 1263585908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, found five visible semas < 1263585911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems* < 1263585917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one in the curved house < 1263585917 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*seams < 1263585926 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I noticed that one too. < 1263585944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :three in the middle building < 1263585963 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Though I'm not sure you can call it "the curved house", seeing that it isn't very curved. < 1263585966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and one in the raied brick wall < 1263585974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, curved in panorama < 1263586009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what are those things that look kind of like mountings for swings at the left side of the image < 1263586014 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: See http://zem.fi/~fis/alvar2.jpg for a partially fixed version. < 1263586016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on that raised bit of land < 1263586030 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... I wonder if the spam attack last night (the GNAA run) was related to that website? < 1263586053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The GNAA targeted *all of Freenode*? < 1263586068 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think they are skylight-style windows, though I don't really know what is under that part of the building. < 1263586069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that made the seam in the raised land worse < 1263586071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's so ambitious it's awesome. < 1263586092 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Uh no... It was too targetted in time and space to be via website. < 1263586113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, gnaa did the recent POST bots? < 1263586121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[20:07] Uh no... It was too targetted in time and space to be via website. < 1263586122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[20:08] Ilari, gnaa did the recent POST bots? < 1263586130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ilari has figured out the secret to time travel. < 1263586135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Take that, oklopol! < 1263586139 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric : funny the large version for Gregor is smaller than the medium < 1263586140 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :? < 1263586144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1263586148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's hilarious out of context. < 1263586154 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yup < 1263586157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, frapper image < 1263586166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION removes all Rs from the world < 1263586166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :frappr* < 1263586174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Could the hilarity even increase further < 1263586176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, har! < 1263586178 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hrm. Do you mean "seam in the raised land" that thing below the middlemost "swing mount" window? < 1263586179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you ruined it :( < 1263586179 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I figured bit later that it isn't likely that the GNAA run was doing of the IRC HTTP POST spamming website. < 1263586186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, I'm just surprised since the messages it spammed didn't seem like their style < 1263586202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes < 1263586207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that wasn't as marked before < 1263586231 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It is, in fact, a real piece of geography: it looks just like that in the source images too. < 1263586249 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The multiple clients in that GNAA run started and stopped in such that it impiles having some kind of central control. < 1263586257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, middle house, some seams in the snow. Or just very strange snow < 1263586279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, on those steps a bit up < 1263586281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :near where they end < 1263586288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(vertically that is) < 1263586292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :horizontally near the middle < 1263586310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some sharp vertical changes in the snow < 1263586357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also what about the ends. I don't have a panorama viewer handy < 1263586375 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't have one either, I haven't checked at all how well they merge. < 1263586394 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Also, Someone (With Wikipedia affiliate cloak) impiled that there was more involved than simple DDOS... I know no further details of that... < 1263586437 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :But the simplest explanation would be small botnet... < 1263586437 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Speaking of the Wave university, you can see the "A!" logo (blurrily) in the flag far right in the image. < 1263586449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, there were some bots today in #freenode, well a lot. Was due to really cleaver HTTP post to irc.freenode.net:6667 < 1263586464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: indeed < 1263586466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heard from a staffer < 1263586526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah I think I know where to find a panorama viewer < 1263586568 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If you have it open in Gimp, you could just copy-paste-layer-move things around a bit. < 1263586571 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Of course, that website can provode some coordination. But coordination at small timescales is bit another matter (there are ways, but its more complicated). < 1263586613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay it is in aur < 1263586650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh doesn't build it sounds like < 1263586651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1263586654 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Or even Filters/Map/Image tile if you don't mind a duplication of the image size. (Though maybe 16 kilopixels is a bit wide.) < 1263586681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I wanted projection correction < 1263586808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so what projection did you use? < 1263586827 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The vertical FOV is a bit poor; the camera does a (35mm-film-equivalent) 36 mm focal length objective in the maximum tele-position; that translates to horizontal FOV of 51.35 degrees, or vertical in this case because the camera was tilted 90 degrees. < 1263586838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :...? < 1263586848 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's the equirectangular projection. < 1263586886 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what the panorama viewers do. < 1263586908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :iirc the gnaa just spawn a bunch of clients < 1263586911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :centrally < 1263586914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :rather than any sort of outsourcing < 1263587227 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Just to make you feel the disillusionment, here's a wide-angle (121 degrees) rectilinear (read: normal camera) projection of the "curved building": http://zem.fi/~fis/alvarr.jpg < 1263587246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it fits together but it doesn't use the right projection hrrm < 1263587259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: jesus christ, it's just a fucking box < 1263587278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't you rather they redesigned it to the curvy-on-a-slope specification < 1263587297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i love how the ampitheater thing is then followed by the curve reversing in the wrong one < 1263587303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's great :< < 1263587362 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, I can make you a cylindrical or spherical one, if the viewer likes those more. < 1263587375 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I'm not sure... < 1263587450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, try cylindrical < 1263587470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tesseractical < 1263587519 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Stitching. < 1263587649 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://zem.fi/~fis/alvarc.jpg -- cylindrical projection, horizontal FOV 360 degrees, vertical 80 degrees in the original 8000x2137 pixel canvas; then cropped with top=215, bottom=1379. (And left=0, right=8000 of course.) < 1263587651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :building another panorama viewer to test it < 1263587671 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Though the curvy horizon might also make it look pretty strange. < 1263587693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes possibly. it is slow to download < 1263587698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :24,9K/s < 1263587703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it must be on your side < 1263587705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what changed < 1263587726 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Possibly other interested people. < 1263587728 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Who knows. < 1263587735 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's only one Mbps upwards, anyway. < 1263587752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://zem.fi/~fis/alvarc.jpg is even curvier omg < 1263587757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1263587764 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not as slanty though, so not as good < 1263587766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now do spherical < 1263587897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a lot of the ground went missing fizzie < 1263587923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait no < 1263587927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I blame that viewer < 1263587979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay remember to not resize the window before it finished loading the image < 1263587983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or it will fuck it up < 1263588022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1263588045 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That sounds very robust. < 1263588049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still that bilding is only curved horizontally now < 1263588127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bilduing. < 1263588135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :building yeah < 1263588144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I wouldn't mind some black areas if it was reasonably straight < 1263588167 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Coincidentally I am currently stitching an image like that. < 1263588218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah < 1263588220 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :frankenimage < 1263588222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what projection? < 1263588233 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Cylindrical, again. It's the more usual one. < 1263588388 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://zem.fi/~fis/alvarhc.jpg - cylindrical, hfov 360, vfov 90 with a canvas of 8000x2546 pixels; cropped with top=148, bottom=1740. (I can't deduce right now whether those cropping details are relevant for a cylindrical projection; they might be, given that the image file doesn't have the horizon in the middle.) < 1263588389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NO < 1263588391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I WANT CIRCULAR < 1263588398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you did cylindrical last time < 1263588402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :spherical < 1263588403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1263588436 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I can do you a fisheye view with a 360 degree hfov; that's something you don't see every day. (I doubt there are very many fisheye lenses exceeding 180 degrees.) < 1263588449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I would love to see it < 1263588454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also I heard of a few at 240 < 1263588457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is about max < 1263588465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: do it < 1263588474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know what would be sweet < 1263588476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :panorama glasses < 1263588478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're computerised < 1263588481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also one at almost 360, using a mirror ball mounted in front of it < 1263588484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and if you looked at that university building through one < 1263588486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as a commercial product < 1263588487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'd look curved like it is < 1263588491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would be so fucking sweet < 1263588602 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, there was also that christmas-ornament mirror-ball panorama tutorial. :p < 1263588688 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The 360-degree fisheye is a bit of a... corner case, though: http://zem.fi/~fis/alvarf.jpg < 1263588697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am tripping balls < 1263588703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :purely thanks to that image < 1263588718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, can we get the original one again with straight horizon < 1263588721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's like staring into a crystal ball < 1263588724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :projection that is < 1263588728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :into a universe with black oles < 1263588731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shiit < 1263588757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so is that what the world would look like if i could see behind me < 1263588758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1263588770 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That one was actually already there as alvarh.jpg, I just forgot to mention it. < 1263588819 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For an image like this with just about 60 degrees of real vertical field-of-view, the cylindrical and equirectangular don't look so different. < 1263588827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[20:52] fizzie: so is that what the world would look like if i could see behind me < 1263588829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[20:52] :| < 1263588830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i must know < 1263588851 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess it depends on what sort of a lens you'd have in your behind-seeing eye. < 1263588866 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure you could see things cylindrically too. < 1263588901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you didn't manage to straighten it very well :/ < 1263588902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would be so fucking cool if i had 360 degree 3d vision < 1263588909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so i could see behind of things etc < 1263588914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even if they're behind me < 1263588920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'd be able to see... like... everything < 1263588930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i dislike 2d vision < 1263588933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :depth perception is a hack! < 1263588969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it wouldn't look like that. It is a 3D image mapped into a 2D plane < 1263588971 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, well, I didn't want to spend time with it; I just stuck a couple of horizontal-line control points to the "curvy building" so that at least that would be straight. < 1263588981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: meh, anyway < 1263588983 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :point is < 1263588987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :360 degree 3d vision = < 1263588991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can see behind things, and also behind you < 1263588995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how large are the source images + hugin project < 1263588999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I would like to fix it :) < 1263589017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :assuming the download isn't insanely huge < 1263589055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, the curvy building isn't very straight here at the bottom < 1263589109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which indicates the viewer is confused maybe < 1263589172 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It could be just that; it might not understand the unsymmetrically cropped cylindrical projection. < 1263589183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well I tried the h one too < 1263589191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263589202 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's equally unsymmetrically cropped and a more curious projection, so... < 1263589216 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not a very large; 19 source images of about 3.5 megabytes, and the project. < 1263589224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well it is supposed to support rectirectangular < 1263589254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, tar.bz2 it up and send it over? < 1263589258 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Well. Maybe you could try feeding it an uncropped image. < 1263589258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :please < 1263589270 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, if you want. < 1263589271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, maybe I could find something that works yes < 1263589284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh btw are those jpeg input then? not raw->tiff? < 1263589292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes thanks < 1263589355 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :JPEG, yes. I don't bother with raw; the camera sensor is so noisy already at ISO100, anyway. I guess you might get a bit more range out of it, but not very much. I was counting on multiple exposures more, but... < 1263589406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah well the noise, there is where multiple exposures help. 4 * exposure settings * direction I found works nicely < 1263589412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wish I had a faster cf card however < 1263589456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw my camera requires me to hold down the button during all multiple exposures < 1263589461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is retarted < 1263589469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I don't use bracketing, I do it manually < 1263589481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to get non-blurry images < 1263589527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I wonder if you could reconstruct motion blurred images due to camera moving if you knew exactly how it had moved? < 1263589529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably not < 1263589542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you don't know what reading is from where :/ < 1263589560 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can sharpen them more intelligently if you know the degradation model, though. < 1263589571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so where is the url? ;) < 1263589574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for the project < 1263589580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :really? that's interesting < 1263589647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Deconvolution if you can represent the blurring as a convolution, which you often can. < 1263589667 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually http://en.wikipedia.org/wiki/Motion_blur has an example of Wiener deconvolution. < 1263589672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so where is the url? :)))) < 1263589692 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Just a moment. I managed to overwrite (one of) the .pto file(s). :p < 1263589707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, wow < 1263589721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hg to get the old one back? < 1263589730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I always maintain the non-images in bzr < 1263589751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't. < 1263589765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kay < 1263589785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, the hc or h *.pto is enough for me < 1263589804 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I'll just package up the hc .pto. < 1263589881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and the images :) < 1263590021 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :68081068 bytes, that's not too much. < 1263590029 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Even with the abysmally slow upload I have. < 1263590040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ouch? why so slow? < 1263590052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for me stitching tends to take the main time < 1263590057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the order of minutes < 1263590065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(7-10 or so) < 1263590071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but then I use larger source images < 1263590100 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes; the stitching speed also tends to depend quite a lot on the selected output size. < 1263590121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw what sort of mounting for the tripod? ball? < 1263590181 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's some specs at http://www.amazon.com/Velbon-DF-40-Lightweight-Panhead-Release/dp/B000167TXY -- "cheap" was the primary selection criterion. < 1263590202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, doesn't look like a ball mounting < 1263590208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's good for panoramas at least < 1263590253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, my tripod has a ball head, it is abysmal for panoramas. You can't properly level it between images < 1263590265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you have to make sure to more than cover it all up so you can extract the useful bit < 1263590283 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :How 'bout 天安门坦克 < 1263590296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for panoramas only advantage over hand held is that it is steadier < 1263590317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, ? < 1263590323 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Wrong channel :P < 1263590328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still uploading? < 1263590335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, what channel was it target at? < 1263590394 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Oh, it was already there when I said the file size; the URL should have been a privmsg right before that. < 1263590404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah found it < 1263590417 0 :augur!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1263590427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: talking 'bout google decensoring? :P < 1263590432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you said 3.5 MB? it's 65 MB < 1263590444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what happened there :D < 1263590450 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yup < 1263590451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: The incident is referred to in china as 六四事件 < 1263590454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: "June Forth Incident" < 1263590457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That'd be the best search to try < 1263590465 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 19 images of 3.5 MB each. < 1263590469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, aaah < 1263590471 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Google sez that means "64 events" < 1263590472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, right < 1263590472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: According to local laws, regulations and policies, some search results are not shown. < 1263590475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: on http://www.google.cn/search?hl=zh-CN&source=hp&q=%E5%85%AD%E5%9B%9B%E4A%8B%E4B6&btnG=Google+%E6%90%9C%E74%A2&aq=f&oq= < 1263590486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(at the bottom) < 1263590491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So no, Google is still censored < 1263590492 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lamesauce < 1263590496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still why do I only get like 76 K/s according to wget. I usually get around 700 K/s from most places < 1263590500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What they're considering is, I believe, withdrawing from China entirely. < 1263590507 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1263590509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*withdrawing from < 1263590572 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's still only that 1 Mbps ADSL upwards. That's only 122 Kbps even theoretically speaking. < 1263590587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh it is from your home? not from university website? < 1263590598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I thought you put all your stuff like fungot there < 1263590599 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well i like those boring lists of procedures that a) we catch things the other wouldn't, and in what context is it useful? < 1263590602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1263590603 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1263590606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't think hosting zem.fi on a university connection would be good. < 1263590611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He says it's a laptop, remember? < 1263590615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :With I think User Mode Linux subservers. < 1263590617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1263590630 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: It's linux-vserver right now, I think. It changes from time to time. < 1263590642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: "It just changes by itself. Sometimes I don't even notice!" < 1263590673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :║ * The name of Heikki Kallasjoki may not be used to endorse or ║ < 1263590674 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :║ promote products derived from this software without specific prior ║ < 1263590676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't we establish some time ago fungot had reached singularity? < 1263590676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :║ written permission. [How would that even work?] ║ < 1263590677 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: could be arranged! i'll have to start using the console, which is supposedly a dialect of lisp < 1263590677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1263590678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that explains it < 1263590679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :real men use BSD2 < 1263590680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which doesn't have that clause < 1263590690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes but it's not Friendly or Unfriendly < 1263590692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just Ambivalent < 1263590698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is why it's not doing anything for us but the universe is still here < 1263590702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, isn't that fizzie? < 1263590713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cory Doctorow was quoted as saying "worst. singularity. EVER!" < 1263590720 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, right < 1263590727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1263590731 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But yes, anything zem.fi is home. All network services of the university department I work are down this whole weekend (today 4PM to Monday-morning), anyway; they're preparing for some Wavey stuff. < 1263590732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :All facts, facts that are true. True facts. < 1263590746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1263590815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: could be arranged! i'll have to start using the console, which is supposedly a dialect of lisp <-- that was coherent if non-sensical (sp?) < 1263590817 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that terminology is best to proceed right to scheme? you are clearly working outside of class < 1263590820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^style < 1263590821 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube < 1263590825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as I guessed < 1263591123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still downloading .... < 1263591130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eta 13 seconds now < 1263591148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, care to give me a checksum (md5, sha or whatever) < 1263591156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just to make sure it isn't damaged < 1263591279 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :sha1sum says 5a2a3493518de7d3500c713fd594d4b522442a73. < 1263591306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right, same < 1263591543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, may I ask, why that set of custom parameters to optimise for? < 1263591796 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember what the set was. If it has the pitch for two images unoptimized, that was because I set those manually to get the row of images forced straight, so that I could crop it better. (Even though it made the horizon snakey.) < 1263591833 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1263591838 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And it might have separate x/y shifts for all images, because that sometimes helps when the camera position has changed between shots. < 1263591882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you didn't optimise pitch on two of the images < 1263591887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1263591888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1263591911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh I didn't know about x/y shifts < 1263591934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway found a few bad control points, bringing max distance down from 7 to 5 < 1263592008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, different zoom in different images? < 1263592011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The points are all automagics, and I don't think I even did the usual "remove the largest-distance ones" operation. < 1263592017 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "nonsensical" isn't hyphenated < 1263592039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scarf, ah ok < 1263592041 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Shouldn't be any different zoom. I may have optimized the "view" parameter separately though. < 1263592053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you did indeed < 1263592058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and they differ quite a bit < 1263592067 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That wasn't probably very intentional. < 1263592123 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, it's a bit trickery that for x/y shift optimization you have to create a separate "lens" for each image, and then you can't (or maybe you can, I just don't know how) have the other lens-specific parameters (such as view) linked. Well, except by not selecting those for optimization ever. < 1263592171 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can't indeed hm < 1263592648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://02d9656.netsoljsp.com/SarcMark/modules/user/commonfiles/loadhome.do < 1263592649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :o_x < 1263592886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, squatter? < 1263592898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what makes you think that < 1263592909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :looking at design instead of reading it < 1263593170 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1263593193 0 :BeholdMyGlory!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1263593219 0 :jpc!unknown@unknown.invalid QUIT :Connection timed out < 1263593228 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1263593278 0 :BeholdMyGlory!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1263593635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, some cleanup done. Adding lots more control points. I usually auto generate about 100 per overlap < 1263593689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, optimising barrel distortion would be nice but seems impossible with the "different lens" stuff < 1263593722 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :barrels are best distorted with an axe < 1263593859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, augh < 1263593888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it refers to an optical thingy though < 1263593910 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah i googled < 1263593931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1263594373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, whooo max dist below 2 now < 1263594800 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, tried nona-gpu btw? < 1263594811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I haven't yet < 1263594818 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1263594821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure if my hardware supports it. geforce 7600 < 1263594826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :might be too old < 1263594846 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :OpenGL renderer string: GeForce 7600 GT/PCI/SSE2 < 1263594847 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So same here. < 1263594854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah no < 1263594863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is geforce 7600 GS/AGP < 1263594866 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, same generation anyway. < 1263594884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :OpenGL renderer string: GeForce 7600 GS/AGP/SSE2 < 1263594885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to be exact < 1263594899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, true. Is that PCI or PCI express? < 1263594905 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :PCIE. < 1263594907 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: How goes the Scheme? < 1263594909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1263594919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, strange they didn't call it PCIX < 1263594923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also stitching now < 1263594929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets see what it looks like < 1263594930 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: PCIX was already taken. < 1263594937 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I was about to say that. < 1263594940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I suspect disaster due to different lenses < 1263594944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh right < 1263594946 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Though it was "PCI-X". < 1263595001 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have this other panorama, taken today-evening inside the computer science building, but it's slow to play with; there's 99 source pictures, and 13321 (autogenerated) control points so even the optimizing steps take a while. < 1263595003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh it looks better < 1263595027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :may be due to tiff not jpeg < 1263595027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in part < 1263595116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw the house in the middle. what is it < 1263595116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and is it curved? < 1263595230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Nothing been done. Probably will work on it very son, though. < 1263595230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if it is curved, is the top of it really that < 1263595230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in the diagonal lines down < 1263595230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :along the walls < 1263595231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is there an easy way to find what font an alias maps to on my system? < 1263595231 0 :soupdragon!unknown@unknown.invalid QUIT :"Leaving" < 1263595284 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The only curved part that I can think of are the auditorium seats/windows. < 1263595302 0 :scarf_!n=scarf@unaffiliated/ais523 JOIN :#esoteric < 1263595314 0 :scarf!unknown@unknown.invalid QUIT :Nick collision from services. < 1263595323 0 :soupdragon!n=somebody@unaffiliated/fax JOIN :#esoteric < 1263595327 0 :scarf_!unknown@unknown.invalid NICK :scarf < 1263595335 0 :augur!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595335 0 :anmaster_l!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595335 0 :SimonRC!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595335 0 :zeotrope!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595336 0 :puzzlet!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595336 0 :uorygl!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595337 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The diagonal slopes are straight, three-dimensionally speaking; I don't think they necessarily map into lines in an equirectangular projection, though. < 1263595380 0 :puzzlet!n=puzzlet@61.251.165.103 JOIN :#esoteric < 1263595405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, right < 1263595406 0 :uorygl!n=warrie@lunch.normish.org JOIN :#esoteric < 1263595412 0 :zeotrope!n=sazeinel@65.93.143.150 JOIN :#esoteric < 1263595444 0 :zeotrope!unknown@unknown.invalid NICK :Guest23566 < 1263595523 0 :comex_!i=comex@c-98-210-192-54.hsd1.ca.comcast.net JOIN :#esoteric < 1263595769 0 :Ilari_!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1263595836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you can link them separately it seems < 1263595836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from the camera and lens tab < 1263595836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least they have separate "link" click boxes there < 1263595873 0 :cal153!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :HackEgo!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :dbc!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :mtve!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :sebbu!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :Ilari!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595873 0 :comex!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263595935 0 :scarf!unknown@unknown.invalid QUIT :Remote closed the connection < 1263596592 0 :Ilari_!unknown@unknown.invalid NICK :Ilari < 1263596907 0 :Ilari!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263596907 0 :uorygl!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263596907 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263596908 0 :nooga!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263596909 0 :jix!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263596909 0 :Leonidas!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597146 0 :lifthras1ir!i=r8UXdG9h@143.248.133.205 JOIN :#esoteric < 1263597274 0 :olsner_!n=salparot@c83-252-238-148.bredband.comhem.se JOIN :#esoteric < 1263597283 0 :Ilari!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1263597283 0 :uorygl!n=warrie@lunch.normish.org JOIN :#esoteric < 1263597283 0 :BeholdMyGlory!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1263597283 0 :nooga!n=nooga@sc82.internetdsl.tpnet.pl JOIN :#esoteric < 1263597283 0 :jix!n=jix@cyb0rg.org JOIN :#esoteric < 1263597283 0 :Leonidas!n=Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1263597286 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1263597333 0 :jpc!n=jw@98.202.196.76 JOIN :#esoteric < 1263597365 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I'm just not quite sure what it does. At least the values stayed different even though I linked them; but maybe it fixes them in a relativistic sense. < 1263597365 0 :soupdragon!unknown@unknown.invalid PART #esoteric :? < 1263597365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FreeType fails so badly at subpixel rendering it's not funny. < 1263597476 0 :mycrofti1!n=infernus@h69-128-47-243.mdsnwi.dedicated.static.tds.net JOIN :#esoteric < 1263597574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Of course, its greyscale rendering is even worse; either you get wispy, badly kerned, unreadable text or put the hinting on slight and get grey, fuzzy, unreadable text. < 1263597574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sigh. < 1263597649 0 :olsner!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597649 0 :Deewiant!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597650 0 :rodgort!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597650 0 :bsmntbombdood!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597650 0 :lifthrasiir!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597650 0 :mycroftiv!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597650 0 :EgoBot!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597725 0 :anmaster_l!n=AnMaster@83.181.48.146 JOIN :#esoteric < 1263597726 0 :anmaster_l!unknown@unknown.invalid QUIT :Killed by sagan.freenode.net (Nick collision) < 1263597727 0 :Deewiant_!n=deewiant@kosh.hut.fi JOIN :#esoteric < 1263597727 0 :bsmntbombdood_!n=gavin@97-118-192-33.hlrn.qwest.net JOIN :#esoteric < 1263597728 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Fontophiles. < 1263597728 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Still weird. < 1263597728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not my fault that: < 1263597728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. I have above-average vision, and < 1263597728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. Freetype makes text unreadable. < 1263597728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not complaining out of æsthetic concerns, but purely the fact that it makes text harder to read. < 1263597728 0 :EgoBot!n=EgoBot@64.62.173.65 JOIN :#esoteric < 1263597760 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1263597760 0 :anmaster_l!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1263597764 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1263597768 0 :anmaster_l!unknown@unknown.invalid QUIT :"Leaving" < 1263597768 0 :augur!unknown@unknown.invalid PART #esoteric :? < 1263597768 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1263597769 0 :rodgort`!n=rodgort@64.71.152.39 JOIN :#esoteric < 1263597891 0 :cal153!n=cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1263597891 0 :dbc!n=daniel@130-94-161-238-dsl.hevanet.com JOIN :#esoteric < 1263597891 0 :sebbu!n=sebbu@ADijon-152-1-22-188.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1263597891 0 :HackEgo!n=HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1263597891 0 :mtve!n=nnnnnmtv@65.98.99.53 JOIN :#esoteric < 1263597895 0 :SimonRC!n=sc@217.155.91.250 JOIN :#esoteric < 1263597895 0 :BeholdMyGlory_!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1263597898 0 :BeholdMyGlory_!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597898 0 :SimonRC!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597898 0 :HackEgo!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597898 0 :dbc!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597898 0 :mtve!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597898 0 :cal153!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597899 0 :sebbu!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263597924 0 :Deewiant_!unknown@unknown.invalid NICK :Deewiant < 1263597968 0 :anmaster_t!n=AnMaster@83.181.48.146 JOIN :#esoteric < 1263598136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fizzie, should all be same lens but unlinked for the ones you want different < 1263598136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : that seems to work < 1263598136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hope that gets through this time < 1263598136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm pesimistic thiugh < 1263598136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :though* < 1263598164 0 :cpressey!n=CPressey@173-9-215-173-Illinois.hfc.comcastbusiness.net JOIN :#esoteric < 1263598181 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric : fizzie, should all be same lens but unlinked for the ones you want different < 1263598181 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric : that seems to work < 1263598181 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :another try at it < 1263598307 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :O_O < 1263598307 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :DAMN YOU NETSPLIT < 1263598314 0 :FireFly!unknown@unknown.invalid QUIT :"Leaving" < 1263598349 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Absolutely not. < 1263598375 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :(to everything) < 1263598378 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, full hinting works for me ;P < 1263598378 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, or just turn off antialiasing < 1263598391 0 :rodgort`!unknown@unknown.invalid QUIT :Client Quit < 1263598629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, perhaps you have substandard vision < 1263598681 0 :rodgort!n=rodgort@64.71.152.39 JOIN :#esoteric < 1263598681 0 :mycrofti1!unknown@unknown.invalid NICK :mycroftiv < 1263598918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: i think mixing roman numerals and decimal is far more interesting, you should change it back < 1263598941 0 :regalia!n=scott@host-0-130.mimpvbg.clients.pavlovmedia.com JOIN :#esoteric < 1263598941 0 :regalia!unknown@unknown.invalid PART #esoteric :? < 1263598941 0 :regalia!n=scott@host-0-130.mimpvbg.clients.pavlovmedia.com JOIN :#esoteric < 1263598941 0 :regalia!unknown@unknown.invalid PART #esoteric :? < 1263599108 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: if freenode continues exploding, probably will happen < 1263599273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I wear glasses if that is what you mean. The way you suggest it, it sounds like you consider it stupid or something < 1263599273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fuck off < 1263599277 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :WHY DOES FREENODE ASPLODE SO MUCH? < 1263599342 0 :augur!unknown@unknown.invalid QUIT :farmer.freenode.net irc.freenode.net < 1263599350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, replying to speculation that he might have substandard vision as full hinting is unreadable with "YOU JUST THINK I'M STUPID FUCK OFF" since 2010 < 1263599363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster has an awful lot of "since time" franchises. < 1263599667 0 :augur!n=augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1263599668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pcc can build a bootable openbsd kernel < 1263599668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sweet < 1263599939 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :'Night, folks. < 1263599939 0 :cpressey!unknown@unknown.invalid PART #esoteric :? < 1263599940 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: long time no see < 1263599940 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :oh that is c pressey there. Didn't notice at first < 1263599940 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1263599943 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cynical since 1991 < 1263599959 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(yes, that's before he was born) < 1263599959 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, about funge109 and so on, there seemed to be a general lack of interest in it, I suggest a technical corrigendum to befunge98 instead to make clearer some matters about k and t (plus some other minor details) < 1263599960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahahaa < 1263599971 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, :D < 1263599977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he quit to avoid talking about befunge < 1263599979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1263599983 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how weird < 1263599991 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :anyway that was all I had to say about it < 1263599996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :too late < 1263599996 0 :anmaster_t!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1263599998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he left before you said it