< 1229472374 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard (x,y) < 1229472374 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | even x = if even y then white else black < 1229472376 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | odd x = if even y then black else white < 1229472378 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :haskell is pretty. < 1229472389 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so ugly < 1229472392 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :disgusting code < 1229472396 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :lament: how is that ugly < 1229472399 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :that's lovely code < 1229472405 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the dimensionality is hard-coded right in < 1229472410 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :wat < 1229472419 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :lament: whaddya mean < 1229472420 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Haskel is pig disgusting < 1229472424 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Monad is murderer < 1229472426 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :makes me puke < 1229472431 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :lament: wat < 1229472434 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: lol < 1229472447 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :zuff: it's a 2d checkerboard, and it's dimensionality is actually part of the program logic < 1229472454 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :dimensionality? < 1229472462 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the fact it's 2d < 1229472464 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1229472465 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1229472468 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well, so? < 1229472474 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :it's a 2d checkerboard < 1229472477 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :in a library for 2d images. < 1229472477 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :zuff: that's lack of modularity < 1229472483 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you have something like < 1229472484 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :you're all bonkers < 1229472488 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lament's point is you can't really generalize it. < 1229472494 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well duh < 1229472495 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :of course you can't < 1229472496 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :struct point { int x, y } < 1229472499 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :then that's 2d < 1229472503 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but at least it's easy to add z < 1229472513 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and adjust whatever formulas < 1229472539 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but in your scenario the dimensionality is stuck right into "if even y then white else black" in a non-trivial way! < 1229472560 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well yeah but that's not a haskell issue on the other hand < 1229472579 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i just wanted to insult zuff's code < 1229472579 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you could (even x+y) it, and get over that < 1229472582 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1229472584 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :to which i have no real complaints < 1229472588 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :thought you wanted to insult haskell. < 1229472594 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, even(x+y) is way better < 1229472607 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and then even . sum < 1229472608 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well, you can't even use even/odd on a Double < 1229472614 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :as I have just discovered. < 1229472623 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard (x,y) = if even(x+y) then white else black < 1229472627 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well yes < 1229472642 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(even . sum) ? white : black < 1229472647 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1229472649 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard :: ImageC < 1229472649 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard (x,y) < 1229472650 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | even (x+y) = white < 1229472652 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | otherwise = black < 1229472667 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :now to figure out why you can't uyse even/odd on floats/doubles :D < 1229472674 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well I guess I could just round it < 1229472677 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because haskell sucks < 1229472685 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :so does your mom < 1229472690 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :zuff: why could you? < 1229472706 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well why couldn't you < 1229472706 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :even with modulus < 1229472716 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :even with modulus defined for doubles, even doesn't really make that much sense < 1229472728 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :modulus SHOULD be defined for doubles < 1229472731 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i guess there's an obvious definition < 1229472734 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and i ranted in #haskell for days about that < 1229472737 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lament: naturally. < 1229472746 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but even/odd clearly makes no sense for them < 1229472749 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i actually haskelled assume does that already < 1229472758 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lament: stop stealing my thoughts. < 1229472764 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :welp < 1229472765 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard :: ImageC < 1229472766 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :checkerboard (x,y) < 1229472768 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | even (floor x + floor y) = white < 1229472770 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : | otherwise = black < 1229472772 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :still pretty as hell < 1229472815 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what type is white? < 1229472823 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :Colour < 1229472825 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :type Colour = (Int,Int,Int) < 1229472829 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :r,g,b < 1229472836 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :type Image a = Point -> a < 1229472836 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :type ImageC = Image Colour < 1229472838 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :type Point = (Double,Double) < 1229472840 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :type Colour = (Int,Int,Int) < 1229472862 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :looks okay to me < 1229472893 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and yeah you should round the coords if you're using it like that < 1229472913 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but you shouldn't think that's the obvious definition for even for doubles. < 1229472920 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well yea < 1229472921 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :still < 1229472953 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i do agree even should be defined for doubles *somehow*, oklotalk defines everything, and it's pretty much perfect so haskell probably should do. < 1229472965 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*should too < 1229472967 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you mean < 1229472984 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :all values should be of one type, and all functions should be total? < 1229472991 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lament: yes! < 1229472999 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and all possible function names should be defined? < 1229473004 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes! < 1229473007 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1229473012 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :consider using Jot :) < 1229473018 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and all possible program codes should be parseable. < 1229473023 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah, Jot < 1229473028 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :also oklotalk < 1229473032 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :isn't jot stack-based < 1229473034 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's cheating < 1229473050 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :joy is stack-based < 1229473057 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :is "}" valid in jot? of course i'm making an additional guess here < 1229473065 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :jot only has two operations, 0 and 1 < 1229473066 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or... < 1229473069 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1229473071 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that jot :P < 1229473086 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render :: Integer -> Integer -> ImageC -> [[Colour]] < 1229473086 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render w h img = map (\x -> map (img . (,) x) [0..h']) [0..w'] < 1229473088 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : where h' = fromInteger h < 1229473090 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : w' = fromInteger w < 1229473092 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :soooooo prettyyyyyyy < 1229473109 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah sorry i wasn't thinking esolangs, because in esolangs it isn't really much to ask to have everything defined < 1229473114 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1229473116 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :that fails a bit < 1229473119 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can just use the brainfuck card < 1229473123 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :it's n+1 < 1229473129 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i should get back to reading < 1229473143 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render :: Integer -> Integer -> ImageC -> [[Colour]] < 1229473143 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render w h img = map (\x -> map (img . (,) x) [0..h']) [0..w'] < 1229473144 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : where h' = fromInteger h - 1 < 1229473146 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : w' = fromInteger w - 1 < 1229473153 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it would probably look much more readable as a list comprehension < 1229473161 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :it looks fine to me < 1229473162 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :but maybe < 1229473167 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :but damn, that's the first pretty haskell I've written < 1229473170 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :it's just >clicked< < 1229473180 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Integer -> Integer, here you are setting an arbitrary currying order for w and h, HOW IS THAT GOOD CODING? < 1229473184 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes scale :: Float -> Image a -> Image a < 1229473186 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: lol < 1229473197 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1229473201 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :I don't even need an ImageC requirement ther < 1229473210 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render :: Integer -> Integer -> Image a -> [[a]] < 1229473210 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :render w h img = map (\x -> map (img . (,) x) [0..h']) [0..w'] < 1229473212 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : where h' = fromInteger h - 1 < 1229473214 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric : w' = fromInteger w - 1 < 1229473235 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: yeah, and in another function he used a tuple for the same thing < 1229473251 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :no < 1229473252 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :i didn't < 1229473255 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :(x,y) is a point < 1229473260 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :width and height are rendering details < 1229473274 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to pass around points < 1229473281 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :but apssing around a width/height combination is useless it's just for rendering < 1229473294 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lament: yes, my second point, but i assumed you'd fill that out for me < 1229473306 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :zuff: how often do you pass around just a width or just a height? < 1229473317 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :maybe you need a RenderingDetails datatype? < 1229473325 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1229473331 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :lament: just in render :P < 1229473336 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i love being over-pedantic about code < 1229473347 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :scale :: Double -> Image a -> Image a < 1229473347 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :scale n img (x,y) = img (x/n, y/n) < 1229473349 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :wow, that was trivial < 1229473382 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :seriously < 1229473383 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :that worked first try < 1229473412 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1229473416 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :should I make colours doubles too? :P < 1229473417 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :Naw. < 1229473441 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :multiplication is pretty hard to get correct given a multiplication primitive, yes :P < 1229473461 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1229473496 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if you're working on reals, scaling is trivial. it's only algorithmically interesting when working with discrete images. < 1229473511 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if you're working with reals, you get scaling straight from the definition of scaling < 1229473512 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :which you did. < 1229473517 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :well yeah < 1229473521 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :however < 1229473523 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :my rendering is discrete < 1229473526 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i should read, i have an exam in 6.5 hours < 1229473528 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :but it just calls as N.0 < 1229473543 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i haven't read about my hintikka sets yet! < 1229473555 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1229473559 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: do you know how to write out bmps? < 1229473568 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you mean the format? < 1229473573 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :ya < 1229473584 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :header, list of bgr iirc < 1229473594 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :just byte after another < 1229473640 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :header is the standard microsoft stupid_blah_here, sizes and file lengths, just look it up < 1229473651 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :helfpul < 1229473659 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :it is very simple < 1229473666 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's so easy you don't need help, is my point < 1229473667 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :not as simple as TGA, but simple < 1229473680 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :oh, tga is simpler? < 1229473689 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks up tga instead < 1229473703 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't even know tga :) < 1229473724 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :easier for writing to, anyway, IIRC < 1229473734 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :ok, a tutorial that isn't a spec? :D < 1229473850 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :for bmp you don't need a tutorial < 1229473864 0 :zuff!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: well explain it < 1229473892 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember, i reverse-engineered the format from the hex, it's just a few bytes of header, only things that are dynamic are (w,h), and file length < 1229473912 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i was like your age back then, so show some balls :P < 1229473919 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION leaves quickly! < 1229473936 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :and also there is a restriction that the rows of the bitmap must be padded to be 4-byte aligned < 1229473958 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this i didn't know, but yeah figures < 1229478691 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1229479297 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1229479749 0 :jix!unknown@unknown.invalid QUIT :"..." < 1229480530 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :renderTGA "blah.tga" (0,0) (256,256) (256,256) . supersample (0.25,0.25) . magnify 16 . rotateImage 0.4 origin $ checkerboard red white < 1229480532 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :fun :) < 1229480546 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :(kind of slow here, though) < 1229484286 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1229493046 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1229500094 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1229500489 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Don't worry it's mostly perfectly innocent apart from the one bit which is all of it. < 1229500494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how reassuring. < 1229500613 0 :Judofyr!n=Judofyr@c1394BF51.dhcp.bluecom.no JOIN :#esoteric < 1229500623 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1229500666 0 :Judofyr!n=Judofyr@c1394BF51.dhcp.bluecom.no JOIN :#esoteric < 1229500799 0 :clog!unknown@unknown.invalid QUIT :ended < 1229500800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1229501054 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1229501076 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1229501429 0 :Judofyr!unknown@unknown.invalid QUIT : < 1229504751 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"You only need one wheel. Bikers are just greedy." < 1229506119 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1229518218 0 :zuff!unknown@unknown.invalid NICK :ehird < 1229518616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :12:51 psygnisfive has joined (n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net) < 1229518616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :12:51 Asztal: renderTGA "blah.tga" (0,0) (256,256) (256,256) . supersample (0.25,0.25) . magnify 16 . rotateImage 0.4 origin $ checkerboard red white < 1229518618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :12:51 Asztal: fun :) < 1229518620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :12:51 Asztal: (kind of slow here, though) < 1229518631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What is it with asztal and MizardX stealing everyone else's ideas? :P < 1229521348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :graph :: [Integer] -> ImageC < 1229521348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :graph lst (x,y) | (lst `genericIndex` floor x) > floor y = black < 1229521349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : | otherwise = white < 1229521351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :graph, but the wrong way around < 1229521357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(vertiaclly) < 1229522027 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1229524405 0 :jix!n=jix@dyndsl-095-033-066-062.ewe-ip-backbone.de JOIN :#esoteric < 1229524529 0 :Judofyr!n=Judofyr@062016182032.customer.alfanett.no JOIN :#esoteric < 1229525179 0 :Asztal!n=asztal@host86-155-73-79.range86-155.btcentralplus.com JOIN :#esoteric < 1229525297 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :hey, I wasn't stealing it, I was borrowing it < 1229525383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but you both then take the idea and finish it while the creator sleeps. :-P < 1229525400 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :I'm impatient :D < 1229525431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rm Image.hs < 1229525433 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :you could build a raytracer out of this quite easily, too :) < 1229526334 0 :Hiato!n=1@dsl-245-24-148.telkomadsl.co.za JOIN :#esoteric < 1229526378 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Is anyone here willing to quickly aid someone (me) struggling with a bit of horrible C++ (that is, all C++ is horrible) < 1229526443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why C++? Why god why? :P < 1229526526 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Indeed - irrlicht is why, and I'm useless with Ogre, so my options are limited < 1229526533 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm already barely able to hack some C. < 1229526567 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Why doth the heavans punish us so? < 1229526770 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1229526897 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1229528646 0 :Slereah!unknown@unknown.invalid QUIT : < 1229529951 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1229530501 0 :Slereah_!n=Slereah@ANantes-252-1-63-109.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1229532201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there? < 1229532213 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :aye < 1229532215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was going to implement DATE, but I'm unsure of the rcs specs < 1229532220 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :unsurprising < 1229532228 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Mycology tests it, no? < 1229532238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, indeed and you implement it < 1229532244 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's more precise than the specs, unless Mike changed the specs < 1229532259 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't be surprised if he didn't amend them < 1229532268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1229532271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :more precise how? < 1229532303 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :tests some things which Mike accepted (read: I made Mike accept) as correct but weren't explicitly in the spec < 1229532314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1229532333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :jd == julian day it says < 1229532339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that doesn't tell me much < 1229532345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how is it defined < 1229532348 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :wikipedia < 1229532381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"The Julian date (JD) is the interval of time in days and fractions of a day, since January 1, 4713 BC Greenwich noon, Julian proleptic calendar.[1]" < 1229532381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1229532387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it pushes in FPDP format? < 1229532390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it says fraction < 1229532393 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: "So if I edit the Wikipedia page, the definition changes?" :p < 1229532401 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: yeah, exactly < 1229532410 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nah, I can't remember exactly < 1229532422 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :probably in days so you ignore the fraction < 1229532423 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If it says "julian day", it's probably just the day number without the fractional part. < 1229532449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, damn you use tango instead of calculating it yourself < 1229532463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you have to consider leap years this seems painful in plain C < 1229532484 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I did about half of it myself and then realized that I can just use tango directly < 1229532505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1229532525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1229532531 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Wikipedia has a calculation formula too. < 1229532540 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you trust it! I see no citations there! < 1229532545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1229532552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think it gave a wrong answer which is why I turned to tango < 1229532553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :we will see if mycology agrees < 1229532560 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I probably misimplemented it though < 1229532565 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :too many variables < 1229532725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :assuming roughly 365 days / year... (4713 + 2008) * 365... probably ~ 2453000 or so < 1229532738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I know that is way off, like leap years, no year zero, and so on < 1229532772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems like a painful date representation for everyday use < 1229532847 0 :jix!unknown@unknown.invalid QUIT :"..." < 1229532892 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's certainly nicer to calculate with than Gregorian dates; the numbers are just too big to be human-friendly. < 1229533041 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also it has a huge drawback in that the nice round-number celebrations will not occur during my lifetime; 2.4*10^6 was in 1858, and 2.5*10^6 will be in 2132. Well, I guess I can't be sure about that latter one, but I think I'll be a bit surprised if I'm still alive then. < 1229533196 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You probably won't be surprised then, if you are; you would be now, if you found out that you will be < 1229533233 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Let's hope I remember to comment about it on the channel in 2132. < 1229533266 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least the Unix time counts seconds, so there are more excuses to celebrate. 1.25*10^9 is next August, for example. < 1229533429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hehe < 1229533437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway you should celebrate powers of two < 1229533439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not of 10 < 1229533443 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for unix date < 1229533585 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The 2^30th went already, and there's still some time before the year 2038 problem. Still, I might even be alive for that one, that's only 30 years to go. < 1229533742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I will definitely be alive for that one. :P < 1229533767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And most likely using a 64-bit computer and OS, you know, like os x 10.6. :P < 1229533774 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not if someone KILLS YOU. Not that I'm planning anything. < 1229533782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tru < 1229533784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :throw new Object; < 1229533786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting decipher < 1229533788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1229533789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ^ < 1229533792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sorry for mistab < 1229533802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :throw new Knife(destination = AnMaster); < 1229533850 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, what ehird said :-P < 1229533910 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :except Knife, k: print "it's not nice to throw knives at %s" % k.destination < 1229533947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whoa < 1229533948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :python++ < 1229533948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1229533953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's c++ and python! < 1229533953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :horrid < 1229533971 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :`catch` \(k :: Knife) -> printf "You hit %s. He collapses, blood pouring out of the wound." < 1229533988 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ehird < 1229533992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive < 1229534000 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :why were you quoting my signin? < 1229534005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wat < 1229534006 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The named parameter in the throw just reminded me of Python; since that's not C++. < 1229534040 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric : 12:51 psygnisfive has joined (n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net < 1229534048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1229534194 0 :Judofyr!n=Judofyr@062016182032.customer.alfanett.no JOIN :#esoteric < 1229534199 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1229534903 0 :jix!n=jix@dyndsl-095-033-066-062.ewe-ip-backbone.de JOIN :#esoteric < 1229535138 0 :psygnisfive!unknown@unknown.invalid QUIT :"Leaving..." < 1229536258 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1229537644 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :LOL KITTENS PWNS!!! < 1229537646 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Discuss. < 1229538152 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1229538305 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1229538307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm I found some internal code in glibc that seems to solve one of the major issues < 1229538312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for generic dates < 1229538323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well license is ok so :) < 1229538339 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: have you learned haskell yet? < 1229538351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, xmas holidays haven't started yet < 1229538460 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's ok. You have two hours. < 1229538474 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :The deadline has been moved, you see. < 1229538530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, no < 1229538542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I wanted to learn it for fun < 1229538548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and still want < 1229538756 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I think I can recommend Real World Haskell < 1229538760 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :as the tutorial < 1229538770 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it does seem to be good < 1229538783 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(i'm just reading it myself) < 1229538789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :learn you a haskell < 1229538791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :end of. < 1229538795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then go on to rwh < 1229538806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lyah teaches you what haskell's about, rwh tells you how to write programs with it. < 1229538917 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no < 1229538919 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1229538925 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :rwh starts from scratch < 1229538934 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :there's no need for another tutorial beforehand < 1229538934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know it does. < 1229538941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But LYAH is a way better introductory tutorial. < 1229538950 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you're a child with ADHD. < 1229538954 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :which you are. < 1229538959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't have ADHD. < 1229538969 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1229538992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But regardless of any ridiculous cartoons to the side LYAH is nicely paced, simple but not condescending, and explains the concepts nicely. < 1229539000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :real world haskell is then useful to learn how to write real programs in hs. < 1229539017 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1229539034 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it seems so far, though, that RWH is nicely paced, simple but not condescending, and explains the concepts nicely. < 1229539045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you already knew a lot of haskell, though. < 1229539072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, when there are two equal options and one has badly drawn elephants, the latter one wins out. < 1229539102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why are there several literal � in mycology in the DATE code? < 1229539116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some sort of non-printable char < 1229539186 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't think there are any non-printable chars, I avoid those < 1229539192 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but there will be non-ASCII bytes < 1229539214 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just a handy way of pushing values in the range 0-255 < 1229539304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm invalid in utf8 I believe < 1229539312 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :duh? < 1229539322 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what makes you think it's UTF-8 :-P < 1229539340 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and why would I be so stupid as to use UTF-8 in Befunge-98 code < 1229539348 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1229539351 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :especially in Mycology - how UTF-8 works at the Funge-Space level is UNDEF < 1229539355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but irritating when editor is set to it < 1229539362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :set editor to autodetect < 1229539371 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if editor can't, change editor < 1229539372 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :goto 10 < 1229539380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well an interpreter could potentially interpret any non-ascii as utf8 then < 1229539392 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1229539400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what < 1229539409 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : The Funge character set is 'display-independent.' That is to say, character #417 may look like a squiggle on system Foo and a happy face on system Bar, but the meaning is always the same to Funge, 'character #417', regardless of what it looks like. < 1229539426 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's not UNDEF, brain fart < 1229539436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well you said it was < 1229539442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed it isn't < 1229539442 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's not UNDEF, brain fart < 1229539593 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it still doesn't sound portable to use characters as "a handy way of pushing values", especially in the >127 range, if no-one says you need to load the program as bytes. < 1229539606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It does say, which is my point. < 1229539676 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It *doesn't* say an interpreter couldn't read the input as UTF-8, still. < 1229539743 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a matter of how literally you take the spec and how portable you want to be < 1229539749 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It just says the source files are made of characters, and characters have some associated numbers. < 1229539807 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And it especially allows for having characters greater than 255; to me it doesn't sound too far-fetched to read in UTF-8 encoded source files. < 1229539809 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It also says that on systems where characters are single-byte, the values are in the range 0-255 < 1229539828 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And the way I see it characters are single-byte on all modern systems; UTF-8 is just an encoding on top of that < 1229539844 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The fundamental unit of storage on modern OSs is the byte (besides the bit) < 1229539858 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It could still be argued that "characters" are stored in multiple (a variable amount of) bytes. < 1229539919 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And thus we come to how literally you want to read it and what meaning you ascribe to "system" :-) < 1229539946 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Sounds like discussion I had on this channel some time ago... :-) < 1229539949 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not that I care too much. But I think some Java-based Funge-98 core I wrote for one purpose or another used the character-based IO routines (especially since the spec says source files contain "characters"), which use the platform's default encoding for actual file-reading, which most likely is UTF-8. < 1229539963 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :On Windows it most likely won't be UTF-8 < 1229539981 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It'll most likely be locale-dependent (in europe, Windows-1252) or UTF-16BE < 1229540009 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :s/most likely is/might well be/, if you want to nit-pick; that's just a detail. < 1229540020 0 :Asztal!n=asztal@host86-163-44-207.range86-163.btcentralplus.com JOIN :#esoteric < 1229540062 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :True. I guess I was jabbing at the fact that that code will work differently on different systems, which is generally a Bad Thing < 1229540124 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Some could argue it's a Good Thing that it reads character-based text files the way the user expects them to be read, though. I don't have a firm onion on this. < 1229540151 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess it's the interpreter's user's responsibility to feed it sources in an acceptable format, anyway. < 1229540178 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I should think so. < 1229540233 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :And what about saving parts of funge-space? Some values are invalid as unicode codepoints, and some values exceed even what the original up-to-6-bytes UTF-8 can represent. < 1229540340 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Unicode-invalid values including anything that's negative; I guess it's again rather undefined. < 1229540443 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Presumably one could take as requirement that funge could dump anything funge-space might contain and can read its own dumps... < 1229540493 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But "o" is defined in terms of "text files"; and anyway I don't think current interpreters make it so that 'o' followed by 'i' doesn't mess anything up. < 1229540602 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since the spec speaks of "text files", so I guess you could even map all invalid codepoints to U+FFFD REPLACEMENT CHARACTER and claim to be conforming. The FILE fingerprint operations are more sensible anyway if you want to do "binary IO", whatever that means. At least the spec there (currently, anyway) sort-of says that W/R deal with values in the [0, 255] range and strip away higher bits. < 1229540627 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and I see the current spec for FILE has added a 'D' "Delete specified file" command. That wasn't there the last time I looked. < 1229540690 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It was one of Mike's early additions. < 1229540733 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, maybe it was there the last I looked, then, but it just didn't register. < 1229542033 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to write a program that will reliably thrash the memory cache so I can test how long a cache miss takes. < 1229542063 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :To do this, I'm allocating 128MB of memory, then stepping through a page at a time and doing nothing with it (but calling a function that the compiler can't know does nothing), then doing the same but stepping an int at a time. < 1229542080 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hypothetically, the second time around it should always be in the cache, so should almost always be faster. < 1229542083 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But noooooooooo. < 1229542090 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Oh, I'm stepping 1,000,000 times either way) < 1229542422 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah, well I'm an idiot. < 1229542429 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Bump it to a billion and suddenly I'm seeing giant differences :P < 1229542480 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :On my Core 2 quad, a cache miss costs on average 2.705207e-08 seconds (27 nanoseconds) < 1229542579 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :To put that into perspective, light travels about 8 metres in that time. (Okay, so it doesn't really provide any sort of perspective; it's still nifty.) < 1229542636 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Conclusions: light is slow as molasses. < 1229542693 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1229543752 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: You really can determine it to that many signaficant digits? < 1229543786 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, but it came consistently to something around 27nanoseconds for three runs. < 1229543797 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(That is, it always rounds to 27 nanoseconds) < 1229544149 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Does that test somehow preclude fist access to each cacheline from missing? < 1229544774 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :If time it takes to perform fetch that always misses is x and y for fetch where every nth acess misses, the miss penalty is not x - y, but n/(n-1) * (x - y), a relative error of -1/n. That's about 6% for n=16... < 1229545052 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Touché. < 1229546149 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well now I'm confused. < 1229546186 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I made some changes (amongst them, now the int-at-a-time loop actually just loops between [0] and [1]), and now the results I'm getting suggest that it takes only double as much time on a cache miss as a cache hit. < 1229546190 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That can't be right. < 1229546249 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unless I have an absurdly massive L2 cache I'm ignoring ... < 1229546467 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(And no, it's not that absurdly large :P ) < 1229546878 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe your processor designer has just been more clever than you. < 1229548940 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1229549623 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-252-201.hsi2.kabel-badenwuerttemberg.de JOIN :#esoteric < 1229550209 0 :KingOfKarlsruhe!unknown@unknown.invalid PRIVMSG #esoteric :exec cmd "echo 'Hello world!' >> /dev/null" < 1229550390 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :cmd and /dev/null? < 1229550428 0 :KingOfKarlsruhe!unknown@unknown.invalid PRIVMSG #esoteric :i'm chatting with /dev/null :) < 1229551044 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1229551802 0 :Asztal!n=asztal@host86-159-105-4.range86-159.btcentralplus.com JOIN :#esoteric < 1229553846 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1229557335 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1229557419 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1229557519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nethack is 247760 fucking lines of code? < 1229557521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :holy shit. < 1229557765 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :note to self: re-aquaint with nethack instead of working today < 1229557801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dewi: Hi Deewiant-- < 1229557819 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :I'm just Dewi < 1229557841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you don't like that name you can be (name = "Deewiant"; name[:3] + name[3:5]) < 1229557888 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :oh crap they are testing me < 1229557903 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't get the notation, sorry < 1229557919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :python < 1229557919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1229557924 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :indexing from 1 or 0 ? < 1229557929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1229557938 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :second param absolute or relative? < 1229557946 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :or should I say operand < 1229558042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :relative < 1229558045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1229558046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :absolute < 1229558057 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm relatively sure it's absolute < 1229558068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://uncyclopedia.wikia.com/wiki/Objectivist_C < 1229558080 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but i can't absolutely rule out relative either < 1229558202 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :A = A >:| < 1229558223 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Dude. < 1229558235 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I had the idea for an objectivist language before! < 1229558237 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :THEFT! < 1229558244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(cur) (last) 00:53, 21 December 2005 IMed (Talk | contribs) (New article) < 1229558254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :only change since: http://uncyclopedia.wikia.com/index.php?title=Objectivist_C&diff=1907626&oldid=447901 < 1229558258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait... < 1229558260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.wikia.com? < 1229558262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fuck wikia < 1229558264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they take over everything < 1229558277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they have to fucking put their fucking grubby hands on every wiki < 1229558285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :first it's hosting, then it's a bunch of ads, a new theme, let's take over your domain < 1229558287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pieces of shit. < 1229558398 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My hair forms haircicles.