< 1292457659 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: server down? < 1292457692 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nope < 1292458246 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Eversion LP > Homework < 1292458848 0 :TLUL!~TLUL@wikia/The-last-username-left JOIN :#esoteric < 1292459992 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1292460786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :dammit, ais went again < 1292461010 0 :Ilari!unknown@unknown.invalid QUIT :Quit: maintenance < 1292461089 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is http://www.wolframalpha.com/input/?i=integral+of+4-x+from+-1+to+0 Wolfram Alpha mistaken here, or am I screwing up my math? < 1292461115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In all likelihood it's you. :-P < 1292461187 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You're screwing up. < 1292461246 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :4(0) - 0 - [-4 - 1/2] = +5/2 < 1292461254 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wait what? < 1292461269 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps self < 1292461325 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :See, you're screwing up. < 1292461656 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Down? < 1292462056 0 :augur!~augur@208-59-167-26.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1292462932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you're about to be made active in agora < 1292462936 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and then what if people invade?! < 1292462943 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :we can't even get 8 objectors to a dangerous scammer right now!!! < 1292462944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SAVE AGORA < 1292463048 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why 8? < 1292463051 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why not 20? < 1292463163 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I thought everyone was so in love with "It should be so difficult to make arbitrary power-1 changes, no need to defend power-3 stuff against power-1 stuff" argumet < 1292463167 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*argument < 1292463221 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: It's 8. < 1292463227 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In this case. < 1292463229 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ratification scam. < 1292463400 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Objected < 1292463447 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's Agoran culture's fault < 1292463457 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Whine whine whine < 1292463462 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I like scams. < 1292463469 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh, git does directories the same way as elliott's-view-of-scapegoat < 1292463480 0 :Iwnda0!~nomad@pool-72-79-134-68.sctnpa.east.verizon.net JOIN :#esoteric < 1292463518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh, and stores the root directory hash with a patch < 1292463521 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :I think you'll find that the universe pretty much covers everything. < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : * < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : I can go back in time and make a different commit instead < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : * < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Commits not reachable from any head are eventually discarded < 1292463611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : o < 1292463613 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Typically after 90 days or so < 1292463617 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ok so it has anonymous commits too ... < 1292463620 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :like scapegoat! < 1292463661 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: SHUT UP WOMAN GET ON MY HORSE < 1292463661 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :Look at my horse, my horse is amazing. < 1292463675 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :finally. < 1292463688 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: I refuse to entertain your notions. < 1292463703 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :i got the notion < 1292463706 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :dont rock the boat baby < 1292463729 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Okay, so git just stores the entire current commit's tree ... < 1292463756 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://perl.plover.com/classes/git/samples/slide039.html "Look! It's like darcs but with an inferior UI!" < 1292463795 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :TODO: read http://www.newartisans.com/2008/04/git-from-the-bottom-up.html < 1292463843 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :is this the chat of intellectual geeks < 1292463850 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :because that's what im looking for < 1292463882 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: it's for esoteric programming languages. < 1292463890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but, yes, it's rarely on-topic. < 1292463893 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :oh cool thats close < 1292463953 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: If I start ranting about something this goat that it's me singlehandedly destroying my inner concept of version control systems through overthinking. < 1292463960 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: And if you read the topic message, they always change it, except the log URL should stay there. You can read the log if you want to. < 1292463981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :They aaalways change it :P < 1292463985 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :They being the gods, obviously. < 1292464009 0 :Ilari!~user@a88-112-56-215.elisa-laajakaista.fi JOIN :#esoteric < 1292464011 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: Additionally, EgoBot, HackEgo and fungot are absolutely not bots and acting as if they are will hurt their feelings. < 1292464012 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well yeah... loop through the sequence, it gives bizarre results.... but it seems what he actually checks < 1292464023 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Also http://esolangs.org/ since nobody reads the ChanServ message.) < 1292464026 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Actually anyone can, I am the last guy to change the topic message. < 1292464040 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :bots with receptors < 1292464074 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Iwnda0: Look at the wiki if you are interested with esoteric programming. < 1292464112 0 :Iwnda0!unknown@unknown.invalid PRIVMSG #esoteric :ok thanks for all of that < 1292464117 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what elliott thinks of Ur/Web < 1292464136 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :IMO, single-purpose languages scare me a bit, but it looks interesting. But magic syntax scares me < 1292464148 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: It's an interesting research topic by an expert and innovator in the field, the web part is totally irrelevant, and if you fall in love with it I will tear your heart out and smash it to pieces. < 1292464155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Magic syntax"? What? < 1292464163 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric : < 1292464167 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That's not "magic". < 1292464188 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Anyone trying to understand Ur/Web without a solid background in programming language design and type theory is really going to get nothing out of the exercise. < 1292464393 0 :elliott!unknown@unknown.invalid QUIT :Quit: Leaving < 1292464456 0 :TLUL!unknown@unknown.invalid QUIT :Quit: *disappears in a puff of orange smoke* < 1292464503 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Is it single-purpose? < 1292464540 0 :Iwnda0!unknown@unknown.invalid PART #esoteric :? < 1292464545 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't know how well Ur works as a standalone language < 1292464586 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Ur/Web? < 1292464774 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.impredicative.com/ur/ < 1292464803 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. What I do know is I have made a few programming languages meant for a single-purpose but can do other things as well due to turing-complete. I don't know if Ur/Web can make command-line programs either. < 1292465034 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it does not look as clean as haskell < 1292465056 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you know how to help make a few things with TAVSYS standard libraries? < 1292465438 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Ur seems ugly compared to haskell < 1292465458 0 :Gregor!unknown@unknown.invalid NICK :ILoveEval < 1292465598 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION assassinates ILoveEval for the good of security < 1292465652 0 :ILoveEval!unknown@unknown.invalid PRIVMSG #esoteric :I LURRRRVE EVAL < 1292465702 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Do you love it eval(some_user_entered_supposed_number) much? < 1292466099 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292466231 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1292466298 0 :augur!~augur@208-59-167-26.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1292466498 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292467193 0 :zeotrope!~a@unaffiliated/zeotrope JOIN :#esoteric < 1292467281 0 :tswett!unknown@unknown.invalid NICK :DDDD < 1292467301 0 :DDDD!unknown@unknown.invalid NICK :tswett < 1292467473 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :o.O' < 1292467720 0 :wareya!~wareya@cpe-74-70-142-220.nycap.res.rr.com JOIN :#esoteric < 1292467906 0 :wareya_!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1292468422 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Your C is terrible. < 1292468432 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :What say you, pikhq? < 1292468447 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those are not C's, they're D's < 1292468482 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Bah. < 1292468593 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :sshc: Ùńĩçôđë! < 1292468607 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :The last good thing written in C was Chopin's Concerto 3 < 1292468925 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :ACTION salivates < 1292468938 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :What is you guisers favorite distro? < 1292468988 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292469233 0 :ILoveEval!unknown@unknown.invalid PRIVMSG #esoteric :Your C is terrible because it has no eval. < 1292469253 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1292469304 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :I've recieved numurous affirmative PMs from augur < 1292469309 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :The answer is quite clear. < 1292469314 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sshc: s/^.*$/"\&"/ < 1292469333 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Ah, he's here now < 1292469349 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :I've said nothing < 1292469351 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :"&" < 1292469369 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\& means the entire matched string < 1292469378 0 :ILoveEval!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: Ping? < 1292469381 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :C has been used for plenty eval. < 1292469386 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: Ping! < 1292469389 0 :ILoveEval!unknown@unknown.invalid PRIVMSG #esoteric :AnybodyElseWhoMightWantToProofreadAPaper: Ping? < 1292469397 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :C no eval < 1292469417 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Ping! < 1292469428 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Not with less sophisticated regex transmissions < 1292469453 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :It was quite convenient to hide our quite excellent strategy from augur, no? < 1292469477 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1292469477 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has no idea who sshc is talking to < 1292469484 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :who are you < 1292469524 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Why... I am sshc. < 1292469531 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Most well known IRC user of this channel, at the moment. < 1292469551 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :I...am rather green. < 1292469556 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :That's who I am. < 1292469612 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :right < 1292469613 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :HOLY SHIT SOMEBODY ACTUALLY JOINED ############################################## < 1292469620 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels lucky for guessing right < 1292469621 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well i have no idea what you're on about < 1292469623 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :bai nao < 1292469628 0 :sshc!unknown@unknown.invalid PRIVMSG #esoteric :Right, later dude! < 1292469646 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what bai nao means in chinese < 1292469876 0 :fungot!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1292469919 0 :Wamanuz!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292469924 0 :Wamanuz2!~Wamanuz@78-69-168-43-no84.tbcn.telia.com JOIN :#esoteric < 1292469994 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://askville.amazon.com/eversion-video-game-children-play-adult/AnswerViewer.do?requestId=32693562 < 1292469997 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION facepalns < 1292470000 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :palms too < 1292473260 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, I should not be on IRC tomorrow. If I am, feel free to ban me for the duration. Duration ends ... should really end Saturday, I guess, not Friday < 1292473278 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But what if I start feeling depressedly lonely again? < 1292473279 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: is that an actual question? :O < 1292473347 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think I drained myself of happiness this past Thanksgiving < 1292473354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1292473407 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :From Tuesday to Saturday during that break, I was giddy. Stuff happened Saturday, and I wasn't the same, even after she told me to forget about it < 1292473437 0 :DrPhillate!~tehjamez@CPE00222d66da07-CM00222d66da03.cpe.net.cable.rogers.com JOIN :#esoteric < 1292473570 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :This past Tuesday, a friend of mine was telling me something that happened on the road that day < 1292473598 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I keep thinking that if she had been paying less attention, she might have died < 1292473606 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although I don't know the details, maybe I'm mistaken < 1292473651 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I've been driving and been in a situation where myself and one other driver needed to be alert or bad things might have happened < 1292473676 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a truck ahead of me made a sudden stop and I was forced to make an emergency lane change; if the guy in the other lane hadn't slowed back things would have been ugly < 1292473781 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Should I be worried that she listens to audiobooks in the car? < 1292473786 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :coppro, that's scary < 1292473802 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Very. < 1292473851 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly wonders what thing "Very" was in response to < 1292474099 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the line immediately above it? < 1292474178 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1292474194 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think I don't want to drive < 1292474336 0 :zeotrope!unknown@unknown.invalid QUIT :Quit: Lost terminal < 1292474883 0 :poiuy_qwert!~poiuy_qwe@bas5-toronto47-2925109240.dsl.bell.ca JOIN :#esoteric < 1292475461 0 :DrPhillate!unknown@unknown.invalid NICK :Room42 < 1292475721 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... APNIC has 1.06 /8s left before crossing 2x/8 threshold... < 1292475734 0 :Room42!unknown@unknown.invalid NICK :Elephantitus < 1292475828 0 :Elephantitus!unknown@unknown.invalid NICK :VerticalSmile < 1292476044 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :10 575 872 addresses (63.0% of /8) allocated this calender month... < 1292476116 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :IT'S THE FINAL COUNTDOOOOWN < 1292476153 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :About 17.8M addresses left to the threshold... < 1292476406 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Average allocation rate would be 700k addresses per day... At that rate 17.8M addresses would be gone in less than 4 weeks (mid-January that is)... < 1292476619 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You know, Sam Hughes's rant about One Chance comes to mind... < 1292476678 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Also looks like IPv6 routing is seriously borked for me... :-/ < 1292476725 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :ftp.fi.debian.org is reachable, ftp.se.debian.org isn't, as isn't Freenode IRC servers... < 1292476818 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Traceroute6 isn't very helpful... < 1292476845 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :(besides pointing out that packets do reach the gateway). < 1292476849 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :If the public starts pressuring ISPs sooner, say now instead of in 4 weeks, will there be 4 weeks less of pain? < 1292476992 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :"The Internet Corporation for Assigned IP address ICANNâ's experts warned that the existing IPv4 address will run out next January."... < 1292477064 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The sooner we raise a fuss, the sooner ISPs feel pressure, and... it's at least a little help. Although atually, it could backfire if the day comes around and the world doesn't end, which it won't < 1292477353 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Reminds me of some long lived threads on ISP forums about IPv6: The general theme is: 2005: "We have IPv6 in production use in our core network". Winter 2009: "When are customers going to get IPv6?", "It is planned, no timetable to annouce yet.". Repeat for each season. < 1292477360 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292477511 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :That is, Winter 2009, Spring 2009, Summer 2009, Fall 2009, Winter 2010, Spring 2010, Summer 2010, Fall 2010... < 1292477525 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :... The same Q&A pair... < 1292477990 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1292478172 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, is http://pastie.org/private/fuqe7yxf4gztpaofh0xbmg reasonably accurate? < 1292478288 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(It's not going to the press. Just my Facebook friends) < 1292478348 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :famous last words < 1292478355 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :"it" meaning IANA depletion? < 1292478384 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I titled it "The Internet is Full" < 1292478388 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Maybe a bit hyperbolic? < 1292478389 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1292478417 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, RIRs still have addresses, right? < 1292478556 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, how can I fix for accuracy? < 1292478581 0 :VerticalSmile!unknown@unknown.invalid NICK :tehjamezs < 1292478582 0 :tehjamezs!unknown@unknown.invalid NICK :tehjamez < 1292478770 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Instead of "it" in the January sentence, should I say "a major milestone"? < 1292478834 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tentatively pokes Ilari  < 1292478924 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION puts a clarifying thing in parentheses < 1292478951 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"ome estimates are predicting it (well, a major milestone showing that it's going to happen soon) to happen in January" < 1292478954 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :A bit awkward < 1292478956 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1292479173 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :I really hope 700k a day isn't going to be long time trend... < 1292479205 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :After the RIRs are depleted, it won't be. < 1292479268 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it would drain APNIC enough to make it allocate about 2 weeks ahead of (pessimistic) model predictions, but the bigger problem is that it would drain APNIC completely months before even the most pessimistic estimates so far... < 1292479309 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :And there's no telling what happens once IANA depletion is announced... < 1292479365 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We should make sure that IANA depletion makes the news. And not just the geek news < 1292479374 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We should get people angry at the ISPs < 1292479468 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, APNIC, is that asia? < 1292479557 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes. < 1292479640 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Problems with native IPv6: 1) Access networks usually can't carry it. 2) modems usually don't support it. Tunneled IPv6: Poor software support. < 1292479687 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Sure, if you control the CPE, you could upgrade it to terminate the tunnel, but usually that's not the case. < 1292479697 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Another problem with tunneled IPv6: Most users have no idea how to set such a thing up < 1292479701 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, hm... what will happens to phones? < 1292479711 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The IPv6-only Internet would be inaccessible to them < 1292479720 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, it is 10 easy steps (and 5 hard)! < 1292479736 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(the hard ones are convincing sixxs) < 1292479746 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, and getting every clueless Internet user to do those steps? < 1292479748 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :sixxs? < 1292479758 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, SixXS yes < 1292479791 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :bbl university < 1292479940 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Actually, with DHCP and access to logically same network segment, one could theoretically provode IPv6 access in automated fashion. But that "same network segment" is kinda tall order. < 1292479983 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wait < 1292479994 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :End-user hardware tends not to support IPv6? < 1292480008 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um... does this mean we're completely fucked? < 1292480052 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Basically, wait for user to send DHCP request. And in return, send back DHCP response and IPv6 router advertaisment. < 1292480104 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :DHCP configures IPv4 + nameservers, the RA configures the IPv6 layer 3... < 1292480204 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to sleep soo < 1292480206 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :n < 1292480288 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... Arp table has entry for default gateway that does not correspond to any known MAC of the DSL modem... < 1292480340 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Which would mean some telco equipment is on the same segment, or at least in bridged segment... < 1292480380 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and then there is some bad software that will crash if it receives a RA... < 1292480399 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Very, very little end-user hardware supports IPv6, yes. < 1292480413 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Because the only people more short-sighted than ISPs are electronics manufacturers. < 1292480426 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And we don't have rational, informed actors. < 1292480627 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, that settles it. < 1292480656 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Humanity is going to be either wiped out or delt a severe blow due to Global Warming < 1292480684 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :IPv4 depletion, given enough time, is FAR simpler to solve < 1292480696 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Given everyone working together < 1292480705 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We can't do that much... < 1292480902 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :3G network standards have supported an IPv4/IPv6 mixture since 2004 (3GPP R5); the 3GPP address autoconfiguration does IPv6 assignments (spec'd to provide a /64 for each mobile device, for personal-area-network brouhaha); I don't know about phones except that Symbian has done IPv6 since version 7.0s (2003). < 1292480921 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(That's in theory; I don't know how well that will go in practice, and whether anyone's actually tried that stuff out.) < 1292481519 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Night all < 1292481578 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1292482200 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Well, Android phones should at least be trivially upgradable to IPv6. < 1292482222 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(note: "should". You never know what some ignorant moron has done to it.) < 1292485191 0 :ILoveEval!unknown@unknown.invalid NICK :Gregor < 1292486322 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1292486386 0 :nopseudoidea!unknown@unknown.invalid QUIT :Client Quit < 1292486399 0 :clog!unknown@unknown.invalid QUIT :ended < 1292486400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1292486786 0 :evincar!~chatzilla@daffa.rh.rit.edu JOIN :#esoteric < 1292486828 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :Everyone has seen me sign on but I'm saying something to let you know I'm not just lurking. < 1292486856 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eek, the evil car is back < 1292486919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sadly you are the first to say anything for 1 hour 17 minutes < 1292486973 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1292489149 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: And I didn't notice you said anything for a while, either. I'm a great chatter. < 1292489168 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay. sadly i'm about to leave soon. < 1292489172 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :And sadly I must retire too. < 1292489185 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well bye then < 1292489187 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :Being sick and having to get up for class in four hours... < 1292489190 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :...sigh. < 1292489193 0 :evincar!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, later. < 1292489195 0 :evincar!unknown@unknown.invalid QUIT :Quit: Blah. < 1292489988 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1292491019 0 :tehjamez!unknown@unknown.invalid NICK :tehjamezZzZz < 1292492219 0 :atrapado!~rodrigo@193.144.79.241 JOIN :#esoteric < 1292492733 0 :Mathnerd314!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292492944 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :gregor has pingeth me < 1292492953 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yes gregor? < 1292493007 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :also i have the write-up on document classification now wee < 1292493094 0 :Ilari_!~user@2002:5870:38d7:1:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1292493174 0 :Ilari!unknown@unknown.invalid QUIT :Quit: Changing server < 1292493221 0 :Ilari!~user@2002:5870:38d7::1 JOIN :#esoteric < 1292493243 0 :Ilari_!unknown@unknown.invalid NICK :Ilari_antrcomp < 1292494432 0 :Ilari_!~user@2002:5870:38d7:1:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1292494507 0 :Ilari_antrcomp!unknown@unknown.invalid QUIT :Quit: leaving < 1292494509 0 :Ilari_!unknown@unknown.invalid NICK :Ilari_antrcomp < 1292497051 0 :MigoMipo!~John@62.119.155.253 JOIN :#esoteric < 1292497536 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292498822 0 :Mathnerd314!~mathnerd3@dsl.6.28.53.206.cos.dyn.pcisys.net JOIN :#esoteric < 1292498855 0 :Mathnerd314!unknown@unknown.invalid QUIT :Client Quit < 1292499195 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1292499224 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :18:03:54 it does not look as clean as haskell < 1292499225 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :18:10:38 Sgeo: Ur seems ugly compared to haskell < 1292499238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :coppro: please STFU, it is more powerful than haskell < 1292499242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :coppro: it contains new type-system research < 1292499255 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's not some random language < 1292499282 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :19:16:29 AnybodyElseWhoMightWantToProofreadAPaper: Ping? < 1292499286 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Shure < 1292499628 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:20:49 If the public starts pressuring ISPs sooner, say now instead of in 4 weeks, will there be 4 weeks less of pain? < 1292499634 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :people have been pressuring ISPs for 10 years. < 1292499669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:46:24 I titled it "The Internet is Full" < 1292499669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:46:28 Maybe a bit hyperbolic? < 1292499671 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :YOU DON'T SAY < 1292499701 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :21:42:52 Ilari, is http://pastie.org/private/fuqe7yxf4gztpaofh0xbmg reasonably accurate? < 1292499714 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what hope do we have for solving climate change? none without bioengineering, which won't happen because of politics! enjoy! < 1292500251 0 :Leonidas!unknown@unknown.invalid QUIT :Quit: An ideal world is left as an exercise to the reader < 1292500290 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://blogs.wsj.com/metropolis/2010/08/18/212-lust-old-phone-numbers-are-new-thing-in-tech-scene/ this is the stupidest thing ever i can't even comprehend < 1292500447 0 :Leonidas_!~Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1292500483 0 :Leonidas_!unknown@unknown.invalid NICK :Leonidas < 1292500696 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Actually, bioengineering won't happen because it isn't as good as it is portrayed as. What really prevents action on climate change is economics... < 1292500699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :22:23:47 Well, that settles it. < 1292500699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :22:24:16 Humanity is going to be either wiped out or delt a severe blow due to Global Warming < 1292500699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :22:24:44 IPv4 depletion, given enough time, is FAR simpler to solve < 1292500699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :22:24:56 Given everyone working together < 1292500699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :22:25:05 We can't do that much... < 1292500708 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You are so naïve it is hilarious. < 1292500735 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Converging catastrophes... Global Warming is just one of those... < 1292500830 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1292500858 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: Obviously we will all die. < 1292500916 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Actually, humankind getting dealt serious blow is much more likely than full wipeout. < 1292500927 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :(actually, inevitable) < 1292500958 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: I disagree about its inevitability. < 1292501079 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :It won't be global warming that is going to deal the main blow (just additional one). < 1292501204 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, the main blow will come from IPv4 depletion. < 1292501220 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats fizzie -----### < 1292501301 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :More like depletion of natural resources. < 1292501317 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :(IPv4 addresses don't count as natural resources) :-> < 1292501345 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1292501382 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION compresses fizzie's filesystem with md5sum < 1292501412 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :phosphorus looks like a big one... we're going to have to start recycling human sewage again < 1292501990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: let's hope the arsenic bacteria don't take over :D < 1292502010 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh, that seems to have been shoddy science anyway < 1292502078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: "Uh oh, Minecraft update." < 1292502082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: shush :) < 1292502122 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new." < 1292502126 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Notch twitter feed.) < 1292502129 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :arsenic is immensely rarer than phosphorus anyway < 1292502144 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new." < 1292502229 0 :fungot!~fungot@momus.zem.fi JOIN :#esoteric < 1292502265 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^echo "The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new." < 1292502265 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :"The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new." "The client wasn't updated, btw, that was a side-effect of copying the files around. T ... < 1292502440 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That is, in fact, exactly what made me bring the 'got here. < 1292502460 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :`echo "\"The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new.\"" < 1292502481 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :"\"The client wasn't updated, btw, that was a side-effect of copying the files around. The updater thought they were new.\"" < 1292502487 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh damn < 1292502487 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :FAIL < 1292502498 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :sorry :( < 1292502509 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :anyway, retweeting in irc is fun < 1292502569 0 :Slereah!unknown@unknown.invalid QUIT : < 1292502640 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : That is, in fact, exactly what made me bring the 'got here. < 1292502644 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What, me pinging you? < 1292502668 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, what oerjan did. < 1292502704 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to do the whole "there's an echo here", but noticed the lack of 'got. < 1292502737 0 :Slereah!~butt@ANantes-259-1-130-244.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1292502816 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, I wonder if the updater compares the web-version timestamp and the local minecraft.jar timestamp, and if so, whether you could disable auto-updating by adding a "touch ~/.minecraft/bin/minecraft.jar" into your minecraft startup script. < 1292502942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Maybe it hashes the server pathname too for NO GOOD REASON./ < 1292502953 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Wait, maybe "moving things around" meant moving things around in ~/.minecraft. < 1292502954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Creepy. < 1292502964 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't look like it :P < 1292502970 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually it probably just looks at the value in ~/.minecraft/bin/version, which looks suspiciously like a time_t *1000. < 1292503005 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So maybe you can disable auto-updating by putting a ridickulously large number in. < 1292503022 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Hey, look at Notch's ingenious solution to the problem "lastServer:hostname:port discards the port value because of the separator": "lastServer:aNNN.org_MMMMM" < 1292503026 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(For appropriate Ns and Ms.) < 1292503040 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I noticed. < 1292503047 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I guess the equivalent of "key, value = line.split(':', 1)" was just TOO HARD. < 1292503081 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1292503099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats FireFly -----### < 1292503115 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1292503116 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It'd be String[] key_value = line.split(":", 2); < 1292503122 0 :MigoMipo!~John@62.119.155.253 JOIN :#esoteric < 1292503160 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually, it's one of the examples in the String.split(String regex, int limit) documentation. < 1292503185 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"The string "boo:and:foo", for example, yields -- [regex :, limit 2:] { "boo", "and:foo" }" < 1292503195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: FireFly has developed crushing depression due to your constant swattling. < 1292503201 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: bahahaha < 1292503204 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1292503218 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Hrm < 1292503229 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well flies are supposed to live shitty lives < 1292503240 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least _ is a non-DNS-friendly replacement character, compared to something like "q". < 1292503259 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes but he's a firefly, he already has a recent, awful, overplayed pop song involving him, give him a break < 1292503260 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :And so is your mom, oerjan :| < 1292503279 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :DING DING DING someone did the your mom joke on one of the incorrect targets < 1292503284 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :prepare for canned response < 1292503288 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Ow < 1292503301 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :That sounds.. bad < 1292503305 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MY MOM IS DEAD YOU INSENSITIVE CLOD < 1292503313 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: close enough? < 1292503319 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: should do < 1292503335 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I would have gone for "MY MOTHER WAS KILLED BY YOUR KIND", but that is acceptable < 1292503357 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i ... don't recall any flies being involved. < 1292503412 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In the Semantic Web, FireFly's client would have seen the mom-dead metadata and made a yes/no confirmation query before sending the comment. < 1292503430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: surely it would be the mother metadata's dead property < 1292503434 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: isn't this conversation SO COMFORTABLE < 1292503440 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :anyway he's a firefly, not a fly :P < 1292503448 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or maybe he's a Fire Fly, like a fly on fire or something < 1292503459 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes, it would be in the Ontology(tm) somewhere, I just simplified. < 1292503483 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Being a fly on fire would make the swatting pretty pointless, though < 1292503488 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably some sort of a RDF graph. < 1292503565 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :FireFly: well oerjan is just that cruel < 1292503574 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and i don't think he's speaking to me any more :D < 1292503654 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :...what < 1292503744 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"He's so nice, he wouldn't hurt an on-fire fly", as the saying goes. < 1292503758 0 :nopseudoidea!~nopseudoi@85-168-235-235.rev.numericable.fr JOIN :#esoteric < 1292503819 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wut < 1292503856 0 :nopseudoidea!unknown@unknown.invalid QUIT :Client Quit < 1292504039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so how's the ultimately-meaningless patch theory going :D < 1292504404 0 :MigoMipo!unknown@unknown.invalid QUIT :Ping timeout: 250 seconds < 1292504563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :non-existingly < 1292505310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: flower < 1292505311 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :s < 1292505316 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(multiple/plural) < 1292506076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Harm Considered Harmful < 1292506137 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://74.125.155.132/scholar?q=cache:Dk-wWK6NAaIJ:scholar.google.com/+hello+world+considered+harmful&hl=en&as_sdt=40000000000 < 1292506142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WORST. PAPER. EVAR! < 1292506437 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :um < 1292506438 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :not quite < 1292506452 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :try this one http://journalofcosmology.com/Mars144.html < 1292506535 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :There are probably a lot worse papers than those... < 1292506755 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh, i know, but that was one i was already looking at that seemed at least a little bit worse < 1292506779 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so, go go gadget quick reply counterexample reflex! < 1292507266 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : try this one http://journalofcosmology.com/Mars144.html < 1292507267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no that's most awesome < 1292507324 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i suppose. but it's amusing that it is in journal of cosmology, clearly being an analysis of human sexual relations < 1292507336 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :not what i usually think of as cosmology < 1292507396 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i thought the message of the paper you linked was dead-on though. A lot of people teach OO very wrong. < 1292507435 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: thinking that paper and its "solution" are reasonable are a sign of brain damage. < 1292507465 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :only one who truly believes OO is the One True Solution to everything would mangle and overcomplicate Hello-fucking-world to fit their disastrous worldview. < 1292507469 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i didn't say the solution was reasonable < 1292507475 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i said the message is dead-on < 1292507475 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*is a < 1292507486 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the message includes the solution < 1292507502 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i wholeheartedly disagree with your statement < 1292507522 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :this is a question of pedagogy techniques, not whether or not OO is the One True Solution < 1292507543 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i would rather see hello world not used at all, however < 1292507566 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and actually jump right into a real problem that actually shows the purpose of OO < 1292507592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: here's an idea, maybe we shouldn't teach possibly the worst paradigm in recent history < 1292507597 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(original OO I can accept, Java I cannot) < 1292507617 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i agree. Smalltalk is better suited for teaching OO. < 1292507635 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :it's just there aren't any truly non-shitty implementations of Smalltalk < 1292507698 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. Nor Smalltalk." --Alan Kay, last sentenced paraphrased because I can't find a source actually including that bit < 1292507708 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :anyway smalltalk has perfectly good implementations < 1292507719 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Squeak's UI is a bit stupid but it has the Smalltalk-80 lineage. < 1292507731 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :squeak is pretty shitty < 1292507735 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :or at least < 1292507739 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :was, the last time i used it < 1292507750 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: from what do you derive that conclusion < 1292507782 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that you need to tell me where i can find a non-shitty smalltalk? < 1292507791 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: you fail at english < 1292507797 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: from what do you derive the conclusion that squeak is pretty shitty < 1292507806 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1292507834 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :all the problems i had with the system. i'd rather have one that didn't act like a VM, really. < 1292507840 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: it is not a VM. < 1292507852 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :it acts like an OS being run in a VM < 1292507868 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: Smalltalk-80 ran on the bare metal; Squeak is directly based on it, runs under an existing kernel and graphics layer because of portability. it also provides access to the filesystem as a convenience. < 1292507870 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :which is understandable considering smalltalk's origins < 1292507879 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it is like saying "I wish Linux didn't act like a VM, really." < 1292507889 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Smalltalk's power is /nothing/ and worthless without the integrated environment. < 1292507892 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :GNU Smalltalk is a joke. < 1292507900 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :< quintopia> which is understandable considering smalltalk's origins < 1292507907 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i indicated i get all that < 1292507922 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :but i disagree that you need it to be implemented like /that/ < 1292507930 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Feel free to disagree, but you're wrong. < 1292507944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In fact the adherence to the shitty Unix-alike OSes we all run on is why every development environment more or less completely sucks. < 1292507945 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :feel free to disagree, but you're wrong < 1292507957 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :now that i can agree with < 1292507958 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Thankfully Emacs is a slightly nicer environment, and is widely accepted -- but -- < 1292507959 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :only slightly. < 1292507971 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So would you prefer it if Smalltalk booted on the bare metal? < 1292507981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That would be even less integrated with your OS, and less portable too. < 1292507990 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :however, i would like a smalltalk that integrates nicely into /other/ tools. i don't want it running on the bare metal. < 1292508000 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i want the language itself < 1292508015 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :but if i had another computer < 1292508018 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that was smalltalk based < 1292508022 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i would be happy with it < 1292508027 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :like i would be happy with a lisp machine < 1292508036 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: ok, so press fullscreen in a smalltalk window. :p < 1292508036 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :for the purposes of the /computer i have/ < 1292508051 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :...they window already fills the screen :P < 1292508064 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the abstraction there is way too leaky < 1292508068 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so leaky it is annoying < 1292508078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i would switch to squeak if it booted on the bare metal and had drivers, probably. < 1292508086 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and i could make the UI less irritating. < 1292508112 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i might as well...not for everything of course, just for fun, and only if i had another computer to use it on < 1292508156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :eh, i'd just need a browser. :p < 1292508180 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i thought alan kay had a heavy hand in designing smalltalk < 1292508182 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292508185 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: precisely. < 1292508190 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :he invented it. < 1292508193 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but smalltalk is broken too. < 1292508205 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i'm wondering where that quote comes from < 1292508214 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a talk he did; the bit without smalltalk is widely quoted. < 1292508218 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ironically. < 1292508238 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so how does he think smalltalk is not OO? < 1292508240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: one of smalltalk's main problems is that it has inheritance, of course. < 1292508264 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OO has always been about message-passing from the start, not classes, not inheritance, message-passing, and anything that disrupts that isn't OO < 1292508267 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what's the proper way to do templating/code reuse in OO? < 1292508278 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: composition < 1292508282 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :/aggregation < 1292508293 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :combine components to produce bigger components. < 1292508325 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :and the proper way to do shared interfaces/interchangeable types? < 1292508356 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: you're going to have to state that in terms of what you're trying to accomplish, not OO buzzwords, for me to give a coherent answer. :) < 1292508559 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1292508565 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1292508624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1292508645 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: can i ask a scapegoat-related question? < 1292508699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you just did < 1292508702 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but feel free to ask a different one < 1292508719 0 :sftp!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292508721 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(semantic argument: are scapegoat-related-question-related questions scapegoat-related questions?) < 1292508740 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: only if you program Pelr < 1292508741 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Perl < 1292508744 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :((1, 2), 3) = (1,2,3) < 1292508745 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1292508784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's because array constants embed into other array constants by definition < 1292508796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's what the , operator does when given an array and scalar, or two arrays, as arguments in list contexts < 1292508832 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i mean, you can't always have your code going around asking what kind of object it has been passed and whether it accepts those messages, but you may want to have an entire class of objects that believe differently yet are guaranteed to have the same messages available < 1292508833 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1292508841 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ugh, i've forgotten the question < 1292508851 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"you can't always have your code going around asking what kind of object it has been passed and whether it accepts those messages," erm why would code ever do this quintopia < 1292508855 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sounds like a smell to me < 1292508858 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :well i can't be here every second of the day < 1292508871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: ? < 1292508873 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i was talking to ais523 < 1292508874 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: isn't that what an interface is, in the OO sense? < 1292508875 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :until i quoted you < 1292508883 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1292508891 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's what i'm trying to describe yes < 1292508891 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I had a new esolang idea last night < 1292508903 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was basically, "make a cross between ML and Prolog" < 1292508920 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the idea is sufficiently crazy to need no further complications to be eso, but I'd probably add some anyway < 1292508957 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(you can tell I had to do a project in OCaml over the last couple of days, it's what got me thinking along those lines...) < 1292508962 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: what are your thoughts on contracts, in the eiffel sense? < 1292509026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I want some editor advice; what's the fastest way to, given a huge number of files, look at them all and edit a small subset based on what they look like? < 1292509040 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at the moment I'm scrolling through them in less and using vi for any edits I need to make < 1292509042 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : elliott: i mean, you can't always have your code going around asking what kind of object it has been passed and whether it accepts those messages, but you may want to have an entire class of objects that believe differently yet are guaranteed to have the same messages available < 1292509045 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :can you answer my question? < 1292509061 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :why would code ever be "going around asking what kind of object it has been passed and whether it accepts those messages" < 1292509069 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : hmm, I want some editor advice; what's the fastest way to, given a huge number of files, look at them all and edit a small subset based on what they look like? < 1292509070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: grep? < 1292509097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it 's a situation that isn't really suited for grep < 1292509103 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: if it didn't have the ability to determine what messages an object had available by apriori knowledge like "it implements this interface" or "it inherits from that class" < 1292509109 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to look at a bunch of files submitted by students and fix the ones that are malformed < 1292509115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and they come up with really creative ways to do malformed < 1292509130 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: if you're passed an object as a parameter, then you use it according to some interface < 1292509132 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what's the problem? < 1292509155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :if some parameter is a number, you can do x*2. if it's a string, you can do x length. if it's a random-access container of some sort, you can do x at(3) or whatever. < 1292509159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, vi keeps annoying me with its nonintuitive choices of units of measurement < 1292509159 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: when you want to ensure that the wrong object doesn't get passed crashing your entire program < 1292509166 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. d2j deletes three lines, who'd have guessed? < 1292509179 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: directional keys < 1292509188 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: j is down 1 line < 1292509190 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :(it'd be nice to be able to guarantee this things at compile time, and it'd be nice to be able to compile) < 1292509191 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, j moves a line downwards < 1292509197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what? no < 1292509199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so d2j would delete two lines downwards, logically < 1292509218 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1292509222 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: don't you mean d2d? < 1292509235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: ok, well, we're talking about where smalltalk went wrong here < 1292509240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :again, perhaps, but d to mean line doesn't really make sense < 1292509240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: and duck typing is a major part of smalltalk < 1292509244 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so i don't see the relevance at all < 1292509252 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I keep using vim like it would be meant to work, rather than like it actually works < 1292509268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I'm assuming it sticks to a really rigid philosophy which is only an approximation of the one it's actually based on < 1292509270 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: use traditional-vi, see what it does :p < 1292509305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I also understand why vi doesn't do major modes, after using it for a while < 1292509316 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you really need to memorise things like what its definition of a word is to use it efficiently < 1292509324 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if that kept changing on you, it wouldn't really help < 1292509394 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: fine. so what are your thoughts on contracts, then? < 1292509404 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: completely unrelated? < 1292509419 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1292509433 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :whether they are a valuable idea in OO language design < 1292509465 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: i'm uninterested in OO language design < 1292509482 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh. you don't act like it. you can understand my thinking you are. < 1292509492 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: well, i know what smalltalk did wrong. < 1292509496 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but i don't think OO is the way forward. < 1292509506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I also have a vaguely related question: elliott and/or quintopia, what are your opinions on Objective C (purely as a language, ignoring things like userbase, etc) < 1292509517 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :no opinion < 1292509519 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :gotta go < 1292509531 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fair enough < 1292509542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: all the safety of C with all the speed of Smalltalk! at least the Smalltalk part's good. < 1292509544 0 :sftp!~sftp@79.174.49.208 JOIN :#esoteric < 1292509549 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ish. < 1292509560 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I spent ages reading Apple's guidelines about Objective C memory management; they were, surprisingly, exactly the same as Perl uses internally < 1292509616 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: *perl, surely < 1292509617 0 :zeotrope!~a@unaffiliated/zeotrope JOIN :#esoteric < 1292509625 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, yes < 1292509633 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I should have said perl(1) < 1292509646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically refcounting with a strong convention for when you change the reference count < 1292509651 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nah, it's "only perl can parse Perl", not "only perl(1) can parse Perl" < 1292509670 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the ability for the reference count to go below 1 without freeing the object, as long as it comes back up "soon enough" < 1292509736 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : and the ability for the reference count to go below 1 without freeing the object, as long as it comes back up "soon enough" < 1292509738 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's insane. < 1292509906 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's useful, though; the idea is that you always free an object before returning it from a function < 1292509923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the function you returned it to allocates it again if it wants it to stick around < 1292509935 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that sounds brittle :) < 1292509950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a defined place where everything with a refcount of 0 gets freed at once < 1292509963 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's between statements in Perl, or each iteration of the event loop in Cocoa < 1292510022 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292510050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's not brittle, but only works if you understand how it's meant to work < 1292510105 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: brittle from a human point of view, i mean < 1292510130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1292510139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in theory, you should be able to do it statically < 1292510652 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292510675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wrt scapegoat, I think I'm going to start hacking up a "test" implementation in Haskell or C, just to see "how it works" and catch any potential major problems before taking all the effort to start a complicated, optimised, robust implementation < 1292510676 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1292510681 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :also because i'm lazy, but want something to code < 1292510732 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Don't you mean "optomized"? < 1292510748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*OPTOMIZED(TM). < 1292510779 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, highly recommended reading: http://perl.plover.com/yak/git/ -- turns out git has a lot of *my* ideas :P < 1292510819 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: e.g., immutable hash-based indexing, maintaining directories the same way as files, and anonymous commits newer than the head (automatically removed after 90 days, apparently; not sure whether it's on next git invocation or "git gc" or whatever) < 1292510830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ofc, it still lacks the Scapegoat Patch Format of Wonderment < 1292510934 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :didn't you know git had immutable hash-based indexing? < 1292510978 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1292510985 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, yes < 1292510992 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I just didn't realise that it combined it with other parts of my design < 1292511024 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it seems that about half of my scapegoat ideas are basically unintentional adaptions of git to the scapegoat model :P < 1292511029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, incidentally, today as an experiment I deleted all my cookies and set Firefox to prompt before accepting them < 1292511032 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(wtf spellchecker, adaptions is a word) < 1292511039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: lynx does that by default, it's intensely irritating < 1292511048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it's... surprisingly less irritating than I thought it would be < 1292511051 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292511058 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: tried google yet? < 1292511061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mostly because it gives me the optoin to whitelist or blacklist domains the first time it happens < 1292511062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you get like 50 cookie requests < 1292511066 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I had them blacklisted already < 1292511070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292511077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I'm only getting one question per page request < 1292511090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I accept any cookies from a domain, I'm probably going to want to accept all of them, after all < 1292511096 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you'd like this, if it were for Firefox: https://chrome.google.com/extensions/detail/jeoacafpbcihiomhlakheieifhpjdfeo < 1292511114 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: completely anonymises google, disables tracking by digg, facebook, google, twitter, yahoo < 1292511158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, yes, it seems a little complex < 1292511167 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more or less like what I'm doing except with defaults < 1292511182 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: for a second there, you were zzo38 < 1292511195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"That thing that does exactly what I want to do is too complex in my opinion, so I wrote my own." < 1292511202 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(zzo-ly english left to the reader) < 1292511223 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :see with me i just write my own without justifying it :D < 1292511266 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cookies seem like javascript to me; most of the time they don't actually do anything useful for me so I may as well leave them off, and some of the time they're actively annoying < 1292511296 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the web is kind of inherently irritating :P < 1292511381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yup < 1292511385 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IRC's nicer in that respect < 1292511401 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, the web is kind-of hard to avoid nowadays if you use the Internet a lot < 1292511694 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if you ever figure out how you're meant to use trackpads ergonomically, please tell me < 1292511701 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I can't figure out how to do it without holding your wrist up uncomfortably < 1292511709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or using your thumb < 1292511712 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which is not very precise < 1292511749 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I use my index finger, with my wrist below the trackpad on the table < 1292511763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it works quite well, except I have to use my other hand to click < 1292511773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I'm doing something that can't be done with a simple tap on the touchpad < 1292511786 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how I play Enigma on this laptop, at least, and that needs quite a lot of precision < 1292511789 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wrist-on-table is very uncomfortable, and also you can't do that with it in your lap < 1292511802 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :("you're not meant to put it on your lap!!!!" only if it's a stupidly overly hot machine) < 1292511808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't have enough coordination to use a trackpad while holding the laptop < 1292511813 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hold? i said lap < 1292511816 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :as in sitting, on your lap < 1292511824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then it'd be too low to reach < 1292511843 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most of my laptop use at home is in bed, with me lying down and the laptop on top of the duvet < 1292511862 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wrist-on-duvet isn't a very stable position < 1292511881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1292511930 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I can use my other hand to help hold the laptop steady < 1292511936 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1292511941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the duvet is relatively stable because the rest of my body's holding it in place < 1292511959 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: personally, if i was designing a laptop, i'd make it longer, and somehow make the bit after the trackpad soft < 1292511965 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so you could use it as a wrist-rest < 1292511994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and put the trackpad somewhere other than the centre, to stop it being knocked so easily? < 1292512012 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: possibly :P < 1292512013 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose the alternative's to use something other than a trackpad < 1292512019 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or just somehow detect the hand position on the laptop < 1292512019 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like a good old-fashioned trackball < 1292512022 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and disable the trackpad accordingly < 1292512025 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ugh, i hate trackballs < 1292512039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I think I've used most of the common pointing devices in existence now < 1292512044 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I used a logitech trackball mouse exclusively for over a month, and when I switched back to a mouse I was so much faster and more comfortable < 1292512056 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mouse, trackpad, trackball, touchscreen, MouseKeys < 1292512061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, that's interesting < 1292512070 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :was it a finger trackball, or a thumb trackball? < 1292512089 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I used a thumb trackball by Microsoft, and it worked pretty well; it was much better than a mouse because the mice kept falling off the table and breaking < 1292512136 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: thumb < 1292512139 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :finger is probably nicer < 1292512142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but it was thumb < 1292512151 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it was a well-regarded one, too < 1292512162 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: this: http://www.bluesnews.com/miscimages/tmmarble150.gif < 1292512163 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I suppose it varies from person to person < 1292512373 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: scapegoat question: what's the algorithm to find @tip? I know how the Official Branch is defined < 1292512383 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but how would scapegoat actually go about finding the right hash in a haystack of hashes? < 1292512403 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's on my @tongue... < 1292512418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats oerjan distractedly < 1292512436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :here's one that would work but be inefficient: start off by taking all hashes from the branch you're trying to find @tip for; eliminate any commit/revert pairs (always necessary for anything sensible to work) < 1292512448 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wait, what? < 1292512449 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@tip is a branch < 1292512454 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how can multiple branches have a @tip? < 1292512455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if there are no conflicts, you're done; otherwise, remove the chronologically newest patch and check for conflicts, etc < 1292512463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, @tip is defined with respect to a repo and/or a branch < 1292512474 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it would mean "the most current version of everything" < 1292512480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is hilarious, but would take a while to calculate < 1292512493 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, fair enough < 1292512501 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the design in my head has no concept of repository, it seems < 1292512506 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what is a repository? < 1292512540 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically just a branch, but one defined by physical location < 1292512545 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm. < 1292512556 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: anyway, sure, that algo would work, but I was thinking something vaguely efficient :-) < 1292512561 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :if you have millions of hashes that would be ... "fun" < 1292512562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because you have a concept of push and pull, you have to have a concept of repository so you have something to push and pull into < 1292512576 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: do you have a concept of push and pull? < 1292512583 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I do, in terms of whitelisting < 1292512585 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in my model, pushing is just cp -R +scapegoat /another/+scapegoat < 1292512592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and pulling is just cp -R /another/+scapegoat +scapegoat < 1292512601 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ok, whitelisting < 1292512611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: in your model, then, your repo is the set of all hashes in the +scapegoat directory < 1292512613 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :forming a branch < 1292512633 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fair enough; I was under the impression that +scapegoat's not having some hashes is purely an implementation detail < 1292512641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but good point < 1292512659 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you were inconsistent on the point, I wasn't sure what your impression was < 1292512669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :perhaps... < 1292512671 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm just confused :) < 1292512683 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok, so are there any more efficient algorithms than you can think of than O(hashes)? :p < 1292512685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we can do things as either "all hashes in +scapegoat are part of the repo" or "only whitelisted hashes in +scapegoat are part of the repo" < 1292512711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: same algo, but optimised such that "check whether this set of hashes conflict" is efficient < 1292512726 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm < 1292512734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in particular, I'm thinking of caching whether the set of dependencies of a given hash are mutually consistent or not < 1292512735 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i can't think how to make that efficient without reading every single hash in th repo < 1292512736 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1292512788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so then, all you'd have to do is take toplevel hashes - those which nothing currently depends on - and take their most recent common ancestors, which would be quite a fast thing to do < 1292512791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and reconstruct from there < 1292512806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the notion of a toplevel hash is pretty irrelevant as far as the VCS goes, but seems to be very useful for optimisation) < 1292512950 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1292513414 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1292513516 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://www.ukresistance.co.uk/2010/12/by-public-demand-the-sega-toilet-game/ < 1292514014 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1292514703 0 :MigoMipo!~John@84-217-3-253.tn.glocalnet.net JOIN :#esoteric < 1292515360 0 :poiuy_qwert!~poiuy_qwe@bas5-toronto47-2925109240.dsl.bell.ca JOIN :#esoteric < 1292515365 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1292515680 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, a forum I just logged into had two checkboxes for "remember me?", one marked yes and one marked no < 1292515685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I checked both of them to see what would happen < 1292515690 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'll have to see if I'm still logged in tomorrow < 1292516879 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :hey ais < 1292516884 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i have a question about monads < 1292516930 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: in this electronics/wires analogy for monads, what is >>= ? < 1292517127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: connecting two blocks to each other, and also taking a second connection from the output of the first < 1292517147 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :where does the second connection go to? < 1292517154 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i think a drawing would help < 1292517185 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :(but i'm sure it can be explained without one) < 1292517205 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, >>= is combined with a lambda < 1292517209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, >>= \a. < 1292517217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it goes to wherever that lambda's connected to < 1292517218 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, anywhere < 1292517249 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand :( < 1292517273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see... monads are just computations with a sidechannel < 1292517286 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, the computations might do nothing but interact with the sidechannel, as in IO () or whatever < 1292517291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in which case, you just connect with >> < 1292517298 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, they might also produce a result, entirely independent of the monad < 1292517298 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, you're using a metaphor for monads? < 1292517310 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :A questionable one, too. < 1292517312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in which case, you need to put the result somewhere < 1292517316 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: it doesn't extend forever < 1292517321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I used it to teach cheater99 monads months ago < 1292517326 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What about the [], Maybe or Identity monads? < 1292517342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, >>= is like >>, but it lets you specify somewhere to put the result of the computation that the monad wraps < 1292517375 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i don't know >> yet < 1292517386 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, >> is literally just connecting two blocks together < 1292517391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :do you understand do notation? < 1292517400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or do you just understand the concept but not any notation? < 1292517411 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i don't know the notations < 1292517419 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, a >> b = a >>= const b. < 1292517420 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i may or may not understand the concepts behind them < 1292517430 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i don't know const, i'm a haskell n00b < 1292517444 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :const == K in the SKI calculus. < 1292517449 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i've just recently learnt about the state monad, and i'm trying to figure out how that works with the idea you gave me ais523 < 1292517457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, OK < 1292517470 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see... imagine a simple computation which doesn't have a monad at all < 1292517474 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1292517481 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :it has one input and one output < 1292517484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let a = 2 + 2 in a * 3, let's say < 1292517490 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, such things are probably a bad idea; the State monad is trivial enough that you can just look at the code itself. < 1292517492 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :so for example, a box, with a "pin" on the left and a "pin" on the right < 1292517499 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :like a DIP with just one pin on each side < 1292517500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292517501 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1292517502 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292517510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a monad is a sidechannel representing that < 1292517518 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1292517521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*sidechannel alongside that < 1292517525 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1292517526 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1292517533 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :a monad is a wire running above our box < 1292517535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292517538 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :our box is not connected to it yet < 1292517540 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1292517546 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :------------------ < 1292517548 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nor need it be ever, depending on what we do with the monad < 1292517551 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :-| |- < 1292517555 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1292517557 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok, now < 1292517562 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what does >>= do? < 1292517577 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, notationally speaking, we want to connect both the wire representing the monad, and the inputs and outputs of the boxes below < 1292517594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so there's more than one thing to connect, and that's where the notation gets a little complex < 1292517612 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's easier to start with >> first; that corresponds to ignoring the output pin of the computation itself, and just connecting the monad < 1292517614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if I do a >> b < 1292517616 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the same as < 1292517618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :------------------------ < 1292517619 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok go on < 1292517632 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :-| a |-o -| b |- < 1292517637 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where the -o means I didn't connect it to anything < 1292517650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :connecting the inputs of the boxes a and b is easy enough, as they're just functions and can take arguments < 1292517650 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :but the monad in your drawing isn't connected < 1292517656 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the monad is, that line above is continuous < 1292517662 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the boxes below aren't connected to each other at all < 1292517670 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :wait let's use some sort of online whiteboard maybe < 1292517678 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is there such a thing? < 1292517702 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :suppose I want to give inputs to a and b, still not connecting them to each other at all < 1292517706 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :you got java? < 1292517706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I do (a 6) >> (b 7) < 1292517708 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that gives me < 1292517710 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :--------------------- < 1292517722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :6-| a |-o 7-| b |- < 1292517731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, yes, but not the Oracle version, and it's unreliable sometimes < 1292517741 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's probably easier just to do it over IR < 1292517743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*IRC < 1292517793 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the point is, that although connecting the output of a to the input of b is the "obvious" thing to do, you could actually connect them anywhere < 1292517816 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so long as you don't try to take them in the opposite direction to the monad (that is, you can't take outputs from blocks that haven't run yet, unless you're writing in TwoDucks or something) < 1292517842 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1292517956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are you following this so far? < 1292517961 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1292517978 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i need to think about it but i just remembered i have to call someone real quick < 1292517990 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i'll let you know when i'm back, ok? shouldn't take a lot of time < 1292518000 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :cheater99, incidentally, do you know how the Maybe monad works? It's the easiest to understand non-trivial one. < 1292518039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: no it isn't, State is in this model < 1292518050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are a huge number of different ways to understand monads < 1292518058 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and different people learn it different ways < 1292518065 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :All of which don't work for at least half of them. < 1292518073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are concepts of monads where IO is simplest, where Maybe is simplest, where State is simplest < 1292518086 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are even ways of understanding monads based on starting from the trivial monad < 1292518095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(which is, surprisingly, actually useful on occasion) < 1292518108 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I mean, the category-theoretical version of monads is identical, but the metaphors you'd use are *completely* different. < 1292518126 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, monad transformers, isn't it? < 1292518140 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :That Identity is useful for? < 1292518153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not just that < 1292518165 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can use it for tagging values hungarian-notation-style, but more reliably < 1292518177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, "this needs to be escaped before showing to the user", etc < 1292518188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although there are other ways to do that anyway in Haskell < 1292518221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, for encapsulation purposes, to make an opaque handle that can only be passed around, not modified directly, by other parts of the program < 1292518272 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, using the Identity monad for that seems utterly stupid. < 1292518303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1292518304 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I mean, why not just do data EscapedString = EscapedString String, then give it a Show instance that escapes it? < 1292518311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really do a lot, though, just tag things < 1292518318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, ouch at making that a Show instance < 1292518332 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1292518332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the reason is, you couldn't do things like, say, concatenate your EscapedStrings together < 1292518342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*UnescapedString, I suppose < 1292518428 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could do something as simple as liftM reverse to reverse an EscapedString if it were a monad < 1292518443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :again, *UnescapedString < 1292518458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the idea is that these are identical to ordinary strings, just you have to be careful not to use them in situations you don't want) < 1292518458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : Phantom_Hoover: it doesn't extend forever < 1292518458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : but I used it to teach cheater99 monads months ago < 1292518461 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "teach" < 1292518469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, I think he "got" them < 1292518475 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, erm... Functor and fmap? < 1292518479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even though the metaphor was imperfect < 1292518482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: well, monads are sorts of functors < 1292518502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, liftM and fmap are IIRC the same function < 1292518509 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes, but why make them monads when they have no monadic properties whatsoever? < 1292518532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because they do < 1292518547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the monad version would be Tainted String, rather than UnescapedString < 1292518551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. it actually takes a type as an argument < 1292518559 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :There's an article on the Haskell wiki which complains about people who use monads when some other category-theory thing would do the job. < 1292518594 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, you *could* just define the relevant functions yourself. < 1292518595 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, "unescaped" was too specific < 1292518602 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I meant "untrusted", etc. < 1292518608 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ais523, yes, but why make them monads when they have no monadic properties whatsoever? < 1292518612 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :if they're monads they should have a Monad instance < 1292518616 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :regardless of how useful it may seem < 1292518617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. user input that you don't want to put straight into your SQL queries, whether they're strings or not < 1292518644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with them as monads, rather than functors, if you convert them from strings to, say, magic numbers for accessing some crazy enterprisey database < 1292518661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then they're still inside the same monad, and thus won't be passed to the database without explicitly extracting them from the monad < 1292518673 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wait, the point here is that you /don't want a functor/. < 1292518679 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it isn't < 1292518685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's fine to do arbitrary operations on the untrusted data < 1292518688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so long as it remains untrusted < 1292518707 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The original thing here was to escape strings, not have some general interface thing. < 1292518731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I slightly screwed up my original statement, I was being slightly too specific and should have realised you'd take me literally < 1292518748 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :OK. < 1292518774 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :But you were talking about uses of the Identity monad. < 1292518779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tep < 1292518783 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*yep < 1292518790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the point here is that Untrusted /is/ the Identity monad < 1292518804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you work out what >>=, return, etc. are, they come to the same thing < 1292518952 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i saw a post on perlmonks saying perl doesn't need monads because perl already has taint built in < 1292518968 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(the example being used for monads was "look, you can do taint in it without even any language support!") < 1292519008 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh mc updated < 1292519010 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, interesting < 1292519018 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, does it break with the server now? < 1292519020 0 :sebbu!~sebbu@ADijon-152-1-96-158.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1292519023 0 :MigoMipo!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1292519027 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: not updated < 1292519030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: he just moved some files. < 1292519045 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh? so what was that then < 1292519049 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: he just moved some files. < 1292519050 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, as in < 1292519057 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :on the server < 1292519058 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, changing directory structure? < 1292519061 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah okay < 1292519062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1292519066 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :on the server, right < 1292519070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :not in ~/.minecraft it seems, i checked < 1292519120 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so would a scapegoat impl cache the list of toplevel patches? < 1292519316 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hi < 1292519379 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, out of curiosity, where does join fit into your metaphor? < 1292519441 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hey < 1292519443 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://skrbl.com/156427695 < 1292519446 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :[[Although most filepatches will be hunks, darcs is clever enough to support other types of changes as well. A ``token replace'' patch replaces all instances of a given token with some other version. A token, here, is defined by a regular expression, which must be of the simple [a-z...] type, indicating which characters are allowed in a token, with all other characters acting as delimiters. For example, a C identifier would be a token with the fl < 1292519446 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ag [A-Za-z_0-9]. < 1292519446 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What makes the token replace patch special is the fact that a token replace can be merged with almost any ordinary hunk, giving exactly what you would want. For example, you might want to change the patch type TokReplace to TokenReplace (if you decided that saving two characters of space was stupid). If you did this using hunks, it would modify every line where TokReplace occurred, and quite likely provoke a conflict with another patch modifying < 1292519448 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :those lines. On the other hand, if you did this using a token replace patch, the only change that it could conflict with would be if someone else had used the token ``TokenReplace'' in their patch rather than TokReplace--and that actually would be a real conflict! ]] < 1292519452 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i did not know this ^ < 1292519458 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: we start out with a simple function, Ax = 2x < 1292519483 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and let's see how >>= works on things < 1292519491 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1292519519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I did < 1292519525 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've even used it before now < 1292519529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: hmm, OK < 1292519531 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: problem is, you have to do it manually < 1292519533 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, there? < 1292519535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: indeed < 1292519539 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1292519541 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, weird track south of your place. where does it go? < 1292519542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: which sort of makes the VCS a version ... creation system < 1292519544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, it isn't language-aware, so it replaces inside comments < 1292519556 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, not a very useful feature, then < 1292519557 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, Mt. Hoover? Dunno. < 1292519567 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :To the Batmobile! < 1292519568 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, you involved in it? it is above ground < 1292519569 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's rather limited, yes < 1292519570 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and FAAR < 1292519574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it could be much better < 1292519583 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :argh, skrbl is broken < 1292519586 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: what kind of track < 1292519588 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: well, in Haskell notation, we'd write that a x = 2 * x < 1292519596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(capital letters are reserved for type names) < 1292519598 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, minecart < 1292519598 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok < 1292519601 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you didn't click his fancy java whiteboard! he won't talk to you!1111 < 1292519608 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: i have no idea. ride it and see < 1292519614 0 :sebbu!~sebbu@ADijon-152-1-56-80.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1292519623 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it completely lacks boosters, but it is mega-scale < 1292519627 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if we want to double a value, and double it again, we could write, say, a (a 5), and get 20 < 1292519630 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: walk it then < 1292519636 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, wait for me! < 1292519649 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so we have a x = 2 * x. ok. < 1292519661 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :now it is represented by a box with one pin on the left and one on the right. < 1292519665 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292519700 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, does scapegoat have an easy patch-invert algo? < 1292519704 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://dabbleboard.com/draw?b=Guest527979&i=0&c=9d321a8e4ccd7efbf770e3f5f3517f427b010b35 < 1292519710 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :do you see a box with "a" on it here? < 1292519725 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: darcs does inverse patches as P^-1 P = nothing, but I think it's easier to do P P^-1 = nothing... I may be wrong though < 1292519747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that dabbleboard thing is flash. < 1292519755 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :to save you opening a browser. < 1292519883 0 :ais523!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1292519919 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :well, i hope thatwasn't the whiteboard! < 1292519965 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1292519988 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did the whiteboard hang up your pc? :O < 1292519988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, connection dropped < 1292519990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where was I? < 1292519997 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, you didn't actually link me to the whiteboard thing < 1292520000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, you did < 1292520001 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :http://dabbleboard.com/draw?b=Guest527979&i=0&c=9d321a8e4ccd7efbf770e3f5f3517f427b010b35 < 1292520005 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :he did, two of them, one JS, the other flash < 1292520006 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :dabbleboard < 1292520022 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :will it work for you? it's flash < 1292520075 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I loaded it in my non-locked-down browser < 1292520099 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :OK. do you see a box with an "a" on the drawing?? < 1292520110 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1292520117 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I guess it isn't working < 1292520132 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it loaded, but doesn't seem to have anything to do with what you're doing < 1292520135 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i wish i had that kind of dedication to explaining things to trolls < 1292520138 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :although i'm not sure why < 1292520140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, seems to be independent between me and you < 1292520146 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I'm a teacher, remember? it's good practice < 1292520152 0 :MigoMipo!~John@84-217-3-253.tn.glocalnet.net JOIN :#esoteric < 1292520164 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, most students aren't outright trying to waste your time ... ok maybe they are < 1292520181 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok, let's abandon the whiteboard concept. i'll try to find something for next time. let's continue describing on irc :) < 1292520184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, it isn't their fault < 1292520197 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:13] ais523: so we have a x = 2 * x. ok. < 1292520198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:13] now it is represented by a box with one pin on the left and one on the right. < 1292520199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:13] yep < 1292520201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:14] if we want to connect two of them together, we can do something like "let b = (a x) in (a b)" < 1292520202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:14] i.e. we've given a name to the result, and we can use the name later on < 1292520213 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think that's where we'd got to < 1292520216 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292520251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, that's how it works with monads involved < 1292520258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, let's wrap that one into a monad < 1292520262 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :monads are like burritos < 1292520262 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292520268 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://blog.plover.com/prog/burritos.html < 1292520274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I write (liftM a), that's our a function, except now it's inside a monad (and doesn't interact with it) < 1292520275 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's the only acceptable way to explain them < 1292520286 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the case of the sidechannel being independent of the function itself < 1292520291 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok < 1292520299 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(because it's Haskell and amazing at figuring out types, we don't have to say /which/ monad) < 1292520300 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how does liftM know which monad i want? < 1292520323 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :amazing like bread < 1292520324 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(but we could, as in ((liftM a) :: Int -> State Int Int)) < 1292520343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: basically, if there's only one that works from context, it uses that one < 1292520347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and normally, there is < 1292520347 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i am unconvinced your analogy has pedagogical value... although no monad analogy does < 1292520362 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :usually they just convey a sense of giving knowledge IMO < 1292520379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you can tell when it's worked when the other person starts disagreeing with you < 1292520385 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it shows they've slipped into a different analogy from you < 1292520391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :everyone has their own mental model of things like monads < 1292520393 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok, so from context < 1292520396 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292520397 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: monads are like mirrored piles of dung < 1292520399 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: don't you agree? < 1292520407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: now /you're/ trolling < 1292520417 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but if you don't agree, that's proof that it worked! < 1292520445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, what I did before, was to give a name to the return value of a x, so that I could pass it to another function < 1292520450 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok, so liftM just takes a function and gives it monadic type, without the function interacting with the monad in any way < 1292520454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(Haskell lets you abbreviate that a lot, but I won't because it's clearer without) < 1292520459 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: yep, it wraps the function up in a monad < 1292520462 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292520475 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean "give a name to the return value of a"? < 1292520488 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, 09:25:24 (but we could, as in ((liftM a) :: Int -> State Int Int)) < 1292520490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: well, if we wanted to use it more than once, for instance < 1292520490 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is not valid < 1292520490 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :*by < 1292520492 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in the slightest < 1292520496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: did I typo slightly? < 1292520496 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :liftM :: (Monad m) => (a1 -> r) -> m a1 -> m r < 1292520504 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1292520514 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it'd be State Int Int -> ... < 1292520516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it should be State Int Int -> State Int Int < 1292520524 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I did mean liftM, I just braintypoed for a moment < 1292520600 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: anyway, it's sort-of like assigning to a variable, except that it's a functional-style variable (lambda binding) which just gets its value once and then keeps it until it goes out of scope, rather than an imperative-style variable whose value you can change < 1292520632 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: an immutariable :) < 1292520669 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's probably a better name than the usual "lambda binding" < 1292520683 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'm lost < 1292520692 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "constant" would be right but unfortunately has incorrect connotations < 1292520694 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :how is liftM a "like assigning to a variable"? < 1292520738 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and besides < 1292520740 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: oh, it isn't liftM I was talking about < 1292520748 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oh, what were you talking about? < 1292520755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the "let b = (a x) in (a b)" example, because I thought you asked me about it < 1292520763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : what do you mean "give a name to the return value of a"? < 1292520770 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I mean, I named it b so I could use it later on < 1292520814 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the issues with IRC is that you get used to having multiple conversations at once, even with the same person < 1292520819 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok ok < 1292520820 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :so < 1292520829 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :we want to connect two a's together and call them b. ok. < 1292520849 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :wait no < 1292520860 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :we want to connect two a's together and call one of them b for some unknown reason < 1292520872 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we want to connect them together < 1292520874 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :oh, it's so that we get x < 1292520876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we call the point where we connect them b < 1292520880 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :let b = (a x) in (a b), alright. < 1292520888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so here, the first one takes input x, and output b < 1292520902 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :so (a b) == 2 * 2 * x < 1292520904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the second one takes input b, and its output is the output of the expression as a whole < 1292520907 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292520909 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292520917 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :"the second one" is (a .) < 1292520918 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1292520926 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :where . is a "place for a variable" < 1292520928 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1292520929 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1292520932 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :let's keep going < 1292520939 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :our aim is to understand >> or >>= < 1292520941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292520960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, let's say we want to connect two (liftM a)s together, and also connect their sidechannels together < 1292520975 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"our" aim? < 1292520976 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmm. < 1292520982 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :>> and >>= are what we use to do the connection < 1292521008 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so now, x is an integer with state as a sidechannel < 1292521064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if I feed it to one (liftM a), as in (liftM a) x, there isn't much of a problem < 1292521076 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :suppose I want to connect it to both the liftM as, and they have connected sidechannels < 1292521085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I need to connect the sidechannel, and connect the output as well < 1292521100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I do (liftM a) >>= (\b. liftM a b) < 1292521105 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1292521110 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :just a sec < 1292521112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, the >>= is doing two things < 1292521119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: *\b -> < 1292521123 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1292521128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*so I do (liftM a) >>= (\b -> liftM a b) < 1292521141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Haskell busy using a different notation from maths, it caught me out < 1292521157 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :so is ( (liftM a) >>= (\b. liftM a b)) 2 == 8? < 1292521163 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (\x.e) isn't very common maths :P < 1292521166 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, because 2 doesn't have a sidechannel < 1292521167 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :or is it "8 with some monad stuff wrapped around it"? < 1292521170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it is for me < 1292521171 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or even CS, really < 1292521179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you gave it a 2 with state, it'd give you an 8 with the same state < 1292521250 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, down? < 1292521255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because liftM-produced monad actions aren't interfering with the sidechannel at all < 1292521259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is why it has to be the same state < 1292521331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :\lambda q. (\lambda g. g (\lambda x. g (q x))) (\lambda b. (\lambda k. ((k (\lambda u. u)) (\lambda l. ((k b) (\lambda t. (l (t\ \mathsf{skip}))))))) (\lambda v.\lambda w. w v)) < 1292521334 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how does join fit in here? < 1292521341 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: that's an actual quote from my most recent paper < 1292521354 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, probably the esoprogrammingiest bit of it < 1292521355 0 :tehjamezZzZz!unknown@unknown.invalid NICK :tehjamez < 1292521356 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: can i read that paper? :p < 1292521368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :um, I'm not sure, let me check if it's online somewhere < 1292521369 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :yeah! < 1292521372 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :lambda ftw < 1292521372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or is it paywalled and copyright-stolen (alternatively, if you just don't like me) < 1292521395 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(copyright-stolen, n. a nonce neologism for what journals do to the copyright ownership of papers.) < 1292521406 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :admittedly, a pretty rubbish neologism < 1292521449 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, *a., surely? < 1292521459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: erm, yes < 1292521487 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I don't think it's been published yet < 1292521496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :here's the one before it: http://www.sciencedirect.com/science?_ob=MImg&_imagekey=B75H1-50XT4JJ-M-1&_cdi=13109&_user=122868&_pii=S1571066110000976&_origin=search&_coverDate=09%2F06%2F2010&_sk=997349999&view=c&wchp=dGLzVtz-zSkWA&md5=29034da8cccf0c1f639f8277873c9ad1&ie=/sdarticle.pdf < 1292521513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(in other news, online journal places have stupid URLs) < 1292521526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: paywall < 1292521527 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :$19.95. < 1292521530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1292521542 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doesn't paywall for me, presumably because I'm inside the University, rather than because I wrote it < 1292521547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the DOI is http://dx.doi.org/10.1016/j.entcs.2010.08.018 < 1292521578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, but it links back to the same place < 1292521580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1292521599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: $20 per read seems a little excessive for that sort of thing :) < 1292521659 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does your scrupulous adherence to the law prevent you from letting us see it? < 1292521663 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure < 1292521673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm a little confused, because I never knowingly signed copyright over to them myself < 1292521675 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it does not probably < 1292521685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I think it comes under the writing things for your employer category < 1292521691 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what most people do, that I know of, < 1292521699 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is publish the final-but-one draft before submitting it < 1292521705 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :online < 1292521715 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think that's "more legal" < 1292521723 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :since you're not publishing what they're publishing < 1292521730 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you're publishing a clearly inferior draft version, with three words different < 1292521753 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :aha: http://www.cs.bham.ac.uk/~drg/papers/mfps10.pdf < 1292521760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: SO HEY SCIENCE IS FREE RIGHT < 1292521765 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OPEN ACCESS, WORLD'S KNOWLEDGE FOR EVERYONE < 1292521771 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :PAY $19.95 TO READ MORE < 1292521775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :'tis indeed different, it's missing the logo < 1292521785 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh man, without the logo why should i even bother reading it < 1292521786 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and not, AFAICT, paywalled < 1292521794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :indeed it's not < 1292521810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: permission to upload that to filebin.ca for backup? < 1292521819 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it'll be there forever < 1292521820 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :on the off-hand chance that you own the copyrights to that draft < 1292521824 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fair enough < 1292521827 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok < 1292521831 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: reading < 1292521836 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, filebin.ca doesn't last forever < 1292521840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know this from experience < 1292521847 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : This paper is electronically published in < 1292521847 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Electronic Notes in Theoretical Computer Science < 1292521847 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : URL: www.elsevier.nl/locate/entcs < 1292521849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :guess what that URL is? < 1292521851 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :answer: 404'd < 1292521873 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i like this typographic awesomness of science papers... made by LaTeX < 1292521883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : This “functionalised” syntax can be represented in a more conventional way. For < 1292521883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :example, a program such as bool x; if (y) x=z and t else x=z or t can be < 1292521883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :written using the functionalised syntax as: < 1292521883 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : newvar(λx.if y (asg((and(der z)(der t)), x))(asg((or((der z), (der t))), x))). < 1292521885 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but obviously! < 1292521895 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: um you realise latex is ubiquitous? < 1292521898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: we're saying that the functionalised syntax is more convenient for our purposes < 1292521902 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even though it's harder to read < 1292521908 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'm just kidding :) < 1292521912 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ok, so... < 1292521916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nice that the references are hyperlinked < 1292521918 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :don't see that much < 1292521935 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: we have LiftM a's connected with >>=. What does >> do? < 1292521945 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what >> does is, it doesn't connect the output at all < 1292521955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is mostly only useful if there isn't one in the first place < 1292521970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :say, if you're not connecting liftM a, but, say, something that changes the state < 1292521981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which would change the sidechannel, but not produce output of its own < 1292521989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: darcs pet peeve: Shall I record this change? (1/2) [ynWsfvplxdaqjk], or ? for help: < 1292521996 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I like it < 1292522001 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: nonono, not the UI < 1292522002 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you know you can use -a, right? < 1292522010 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the "[ynWsfvplxdaqjk]" < 1292522015 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, the summary of what keys you can press? < 1292522019 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really, it could at least list the commands in separate blocks according to what they do (respond to the question, navigate, etc.) < 1292522023 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or just have fewer keys :) < 1292522029 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :elliott: sure, even I use LaTeX < 1292522034 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the [] is basically useless, if you forget how it works you need to use ? anyway < 1292522041 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's a pet peeve, it doesn't have to matter :) < 1292522074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: the other thing to mention is that there's a different notation you can use which does the same thing, just you don't have to write out all the >>=s and lambads < 1292522089 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ais523: gotta admint, it's interesting < 1292522100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it looks like this: {do b <- a x; a b} < 1292522105 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wrong < 1292522110 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :do { b <- a x; a b } < 1292522111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've messed it up again, haven't I < 1292522121 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, almost write this time < 1292522122 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*right < 1292522127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can tell I haven't used Haskell for a while :) < 1292522139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Haskell and ML are two languages that I find it hard to think about simultaneously < 1292522180 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, doing the scapegoat first draft in haskell may be a bad idea from you-reading-it POV :) < 1292522182 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*from a y < 1292522184 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :-ou-etc. < 1292522197 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: nah, I've done my little OCaml sideproject < 1292522202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and can go back to thinking in monads again < 1292522236 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so if i did (LiftM a >> LiftM a) x, where x is two-with-a-state, what would i get? < 1292522240 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :would i get anything at all? < 1292522247 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :can LiftMa be >>'d with itself? < 1292522264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's liftM with a lowercase l; and I think you'd just get an error < 1292522276 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :the proof is .... interesting < 1292522278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because you haven't given LiftM a an argument < 1292522292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(at least, not giving a function an argument doesn't normally cause an error in Haskell, just a partial application) < 1292522304 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(but I think it'd make them not connect due to being of the wrong types) < 1292522317 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :MONAD... now you're thinking with monads < 1292522354 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nooga: the long proof at the end, in an appendix? < 1292522359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that bit was mostly me, most of the rest was mostly Dan < 1292522375 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :!haskell :t liftM < 1292522377 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, that one < 1292522378 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :sorry yes, lowercase l < 1292522379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was a really annoying proof, it's something like 1000 simple cases < 1292522387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a few that require more thought < 1292522391 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit hard to read < 1292522395 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: do it in COQ!!1112 < 1292522409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nooga: indeed < 1292522414 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :DON'T MAKE ME THINK ABOUT COQ < 1292522419 0 :atrapado!unknown@unknown.invalid QUIT :Quit: Abandonando < 1292522443 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :liftM :: (Monad m) => (a1 -> r) -> m a1 -> m r < 1292522449 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :thanks ais523, it was very useful < 1292522454 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i can visualize this more now < 1292522458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ugh, did you write this latex? < 1292522487 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, are my continued exhortations for you to explain how join fits into this growing obnoxious? < 1292522502 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i think electronics are a very good parallel for functional programming < 1292522509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: no, I wrote it in LaTeX, but the whole thing was retyped < 1292522519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it isn't my LaTeX you're seeing there < 1292522525 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I can't remember what join does < 1292522526 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :since electronics circuits are (in theory) pretty much like functional language programs < 1292522533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I suspect it doens't fit the analogy too well < 1292522534 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ah... because there's "FORK; XOR" in math mode; the problem is, latex is seeing that as F*O*R*K;X*O*R, so the spacing is horrid < 1292522538 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, join = (>>= id) < 1292522540 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there are no side effects, for example, and no state unless you introduce it < 1292522547 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and \mathnormal{FORK} or however you do proper text italics in math mode (I forget) should have been used < 1292522550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: in practice too, that's what my papers are about < 1292522568 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :At which the analogy seems to break down since id doesn't map nicely to a box. < 1292522570 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: oh right, Dan's awful wrt text in math mode < 1292522586 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: stab him a bit for me, if you please < 1292522587 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :now write a compiler < 1292522590 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've known him to set \mathsf{} for an entire expression, just to write a few words in sans-serif < 1292522597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nooga: that's likely my PhD project < 1292522611 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :awesome! < 1292522622 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, in practice, you have problems such as ground plane interaction, capacitive coupling, ... < 1292522633 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: psht, no, clearly Feather is < 1292522637 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: umm, I'm a qualified electronic engineer? < 1292522640 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :but with careful analog design those are bypassed < 1292522651 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :everyimre you say anaology i get a notofication < 1292522653 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but we're just compiling onto FPGAs < 1292522655 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :because anal is a hottoipic word for me < 1292522658 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :tehjamez: analogy analogy analogy < 1292522663 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1292522671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tehjamez: why don't you filter it to whole words, rather than anywhere in a word? < 1292522674 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's fine, i'm just pointing out that you're thinking of fpgas whereas i'm thinking of linear electronic circuits in general < 1292522675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :methinks tehjamez has no idea where he is < 1292522678 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :because < 1292522684 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :what if someone says anal with a ? at the end < 1292522685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, you'll find it quite banal when people talk about analysis < 1292522692 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tehjamez: ? is nonalphabetic < 1292522693 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: damn you, i was pulling out analysis < 1292522698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: take that back! < 1292522699 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :oh its quite enjoyanalable < 1292522708 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: um... uoy nmad < 1292522713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh fine, i take it back < 1292522716 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, *nanalphabetic < 1292522717 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :furrfu < 1292522728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tehjamez: you could use \banal\b if you're using Perl-style regular expressions for stalkwords < 1292522735 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :hahahah < 1292522737 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but that's banal < 1292522743 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1292522758 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :nonanalphabetic: made out of nine letters. < 1292522767 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think we might see a banal publication in the correctly-spelled version of "Anals of Mathematics", analysing the most common analogies. < 1292522777 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: *Annals? < 1292522782 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :this is gettign hot < 1292522782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the joke doesn't work if you misspell a word < 1292522783 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION facepalms < 1292522789 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, the correctly-spelled version of Anals of Mathematics is Annals of Mathematics < 1292522796 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's why it's quoted, and corrected in the sentence < 1292522803 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1292522818 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :It's better to say annal with one n anyways < 1292522821 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hey, i have a question about verilog < 1292522825 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: do you use verilog at all? < 1292522830 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :and can you recommend learning it? < 1292522838 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I grew up on VHDL, rather than Verilog, but know a bit of Verilog < 1292522840 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i want to learn *something* for fpgas but not sure if verilog is the best < 1292522841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it depends on what you want to do < 1292522849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Verilog and VHDL are basically the same language with different syntax < 1292522851 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :well, i want to start with something simple < 1292522859 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :like, say, a few fifo's chained < 1292522865 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :with async clock < 1292522877 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i.e. a different clock for incoming and a different for reading out < 1292522880 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they suffer from the Brainfuck issue in a way, they're not only simple, but perhaps a little too simple to accomplish anything useful without lots of code < 1292522894 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: are they functional languages? < 1292522900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, they're behavioural < 1292522905 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :what does that mean? < 1292522909 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, let's see < 1292522922 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the main primitive in the langs in question is connecting wires < 1292522932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's interesting watching the patterns of one side of this conversation, as my IRC client is arranging for me :P < 1292522943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in VHDL syntax, a <= b means that b (an output) is connected to a (an input) < 1292522961 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and pretty much all you do in the lang are connect components together by connecting their pins < 1292522970 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: whereas b => a is greater-than-or-equal-to, naturally! < 1292522983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it actually means something completely different, and I can't remember what offhand < 1292522988 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well it /should/ be taht. < 1292522989 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :greater-than-or-equal-to is >= < 1292522990 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*that. < 1292522994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it's unrelated to <=, anyway < 1292523007 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :greater-than-or-equal-to is unrelated to connecting wires! :P < 1292523024 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(actually, greater-or-equal is probably something slightly different) < 1292523038 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the language doesn't have statements, like some other langs do < 1292523044 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just a whole load of "when a changes, b changes" < 1292523049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :umm, "when b changes, a changes" < 1292523054 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, e.g. if you do a <= b + 5 < 1292523062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then whenever b changes, a changes to the new value of b, plus 5 < 1292523072 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, the change is very slightly delayed < 1292523091 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what i'd like to see < 1292523099 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is a semi-functional language based on "signals" < 1292523103 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sort of like VHDL but with parameters < 1292523103 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :e.g. < 1292523107 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a(n+5) <= b(n) < 1292523111 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :then if you had a print function you could do < 1292523112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the langs also let you do things like "when the clock has a positive edge, b changes to a" < 1292523115 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :print(n) <= a(n) < 1292523128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and, that's pretty much all you can do if you want it to synthesize into hardware < 1292523129 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or e.g. < 1292523135 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :print("a =", n) <= a(n) < 1292523153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you're just simulating, you can do more things, like use imperative-style variables, and even print messages (thus a VHDL hello world is both possible and incredibly misleading) < 1292523166 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, Prologgy! < 1292523172 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: similar, but not quite < 1292523189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: got that? that's basically all VHDL and Verilog are, and yet they're what people /actually use/ to program FPGAs < 1292523194 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :except, < 1292523197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a(n+5) <= b(n) < 1292523201 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :would actually be < 1292523209 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a(m) <= b(n), add(n, 5, m) < 1292523215 0 :tehjamez!unknown@unknown.invalid PRIVMSG #esoteric :420? < 1292523224 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :where add is a "virtual" signal that continuously emits every combination of A+B = C < 1292523228 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :valid combination, that is < 1292523235 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: this sounds quite a bit like Proud now < 1292523239 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :tehjamez: if you don't know what esoteric programming languages are, go away < 1292523246 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: this is computable, though (add only does that in theory) < 1292523264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except it was uncomputable due to doing things like quantifying over all functions < 1292523273 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :factorial_result(0) <= factorial_of(0) < 1292523287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :er, wait < 1292523299 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :factorial(0, 1) <= tick < 1292523322 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :factorial(n, r) <= sub(m, 1, m'), factorial(m', r'), times(n, r', r) < 1292523338 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :tick could theoretically just tick at N Hz < 1292523343 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :back < 1292523346 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but in an actual implementation, you'd probably simulate it ticking at infinity Hz < 1292523357 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. everything depending on tick executes immediately < 1292523361 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or rather, you'd treat it as constant < 1292523375 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"factorial(0, 1) <= tick" would just add a permanent entry into a table saying "yup, factorial(0, 1) is being emitted" < 1292523398 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's basically Prolog for events :) < 1292523409 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you could even implement add, e.g. < 1292523415 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add(n, 0, n) <= tick < 1292523461 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add(n, m, r) <= add(m', 1, m), add(n, m', r'), succ(r', r) < 1292523475 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :succ would have to be built-in, though (assuming numbers are primitive) < 1292523475 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ever used altera? < 1292523483 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what fpgas DO you use? < 1292523502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : Assume for contradiction that there is an interaction v·w·m in exactly one of the sets [[M_2]](*) • [[M_1]](*) and K_2 • K_1 (with v and w interactions, and m a move), all moves in w are in θ', the last move in v is in θ, v is in both [[M_2]](*) • [[M_1]](*) and K_2 • K_1, and at least one of the following statements is true: m is not in θ, m is a P-move in M_1, or the last move in v is an O-move in M_1 and v·w·m is not a subse < 1292523504 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: name some non-altera, non-xilinx brand < 1292523509 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh wait, there aren't any < 1292523510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I'm not sure if there /are/ any < 1292523513 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1292523535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: let's say, I spent weeks trying to get the Xilinx boards to work, and couldn't < 1292523547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so my supervisor gave the FPGA job to someone else < 1292523557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I haven't been involved since, but I notice there's an Altera board sitting on the desk now < 1292523573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :do_print(n) <= some_signal(n) < 1292523580 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ouch :( < 1292523584 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's not good! < 1292523588 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ you could imagine that the platonically perfect runtime system would have a rule < 1292523593 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :has_been_printed(n) <= do_print(n) < 1292523594 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i hope you will get back on top of it < 1292523600 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: oh, no < 1292523602 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it made sense to move it < 1292523604 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and every program that /read/ things just set up a signal on that, etc. < 1292523610 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so what are you doing now? < 1292523615 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doing research >>> struggling with an FPGA board with incomplete and misleading documentation < 1292523616 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so this is "functional", arguably; at least, as functional as the language's actual mechanism < 1292523620 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: writing papers, rather than struggling with hardware < 1292523637 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I saw a FPGA ad in one of the magazines at the coffee room, and I don't think it was either one of those. (Though it could have been Xilinx. It was something PowerPC-based.) < 1292523642 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523 man, why don't you want to enjoy the INNER LOVELINESS of working with fpgas < 1292523649 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i hope you can get back to fighting the IDEs!!! < 1292523655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: because FPGA companies know they have no competitors < 1292523664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least, that's the impression I get < 1292523669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm joking < 1292523684 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (wrt cheater's response to the job being reassigned) < 1292523695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it made sense, really < 1292523704 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :better to put me somewhere where I can do something useful, than somewhere where I can't < 1292523750 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I was reaching the point of writing a bunch of programs just to pulse individual pins on the FPGA from the software's point of view, then getting an oscilloscope onto the FPGA board, all because, amazingly, Xilinx didn't even have a pinout for the evaluation board available) < 1292523753 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: agreed, thus the joke < 1292523758 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :admittedly a poor one < 1292523820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(instead, they had a big complex IDE-like program that was basically an FPGA setup wizard, which was huge and monolithic and did all sorts of crazy things, like embedding a processor onto the FPGA and forcing you to communicate via it if you wanted to do any I/O over an unnecessarily complex custom protocol) < 1292523831 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292523845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I seriously doubt it's possible to write a portable FPGA program < 1292523849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so where's our mcmap < 1292523858 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you want to interact with hardware, rather than just toggle pins on and off < 1292523904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: heh, I just saw the copyright notice at the bottom of Dan's website: "Copyright notice: This work is Copyrighted, and anybody caught usin' it without our permission, will be mighty good friends of ourn, cause we don't give a dern. We wrote it, that's all we wanted to do. (Woody Guthrie)" < 1292523920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292524307 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1292524322 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is munching on some really good panettone < 1292524327 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :or is it pannetone? < 1292524338 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :there should be a language based on the concept of panettone. < 1292524368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I also notice it's legally equivalent to all-rights-reserved, which is hilarious < 1292524372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did you answer my sg implementation question? I forget < 1292524383 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :also, wow, you're right < 1292524388 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :except, suing someone isn't very friendly < 1292524395 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so i imagine it's slightly permissive in practice < 1292524426 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :cheater99: panettone < 1292524436 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1292524440 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I forget what the question was < 1292524443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you may as well ask again < 1292524443 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: pantone < 1292524454 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: would an sg implementation cache a list of top-level patches? < 1292524454 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: No < 1292524459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: tanpone < 1292524468 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: No < 1292524485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I think so, it seems like the most efficient way to get things done < 1292524486 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: mascarpone < 1292524491 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how would it maintain this list? < 1292524494 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if there aren't too many, it might make sense even to cache their intersections < 1292524506 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: No < 1292524513 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :panacotta < 1292524516 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :mmm... < 1292524537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'd imagine in a subdir of +scapegoat; you'd delete them from the cache if they turned out to be depended upon by other apparently top-level patches < 1292524547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the great thing is, that lets you copy one subdir over another and it just works < 1292524576 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus preserving the ehird VCS property < 1292524588 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean, how would it know when to add or remove from the cache? < 1292524592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and how would it generate the cache the first time? < 1292524627 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :also, I'd likely maintain caches as e.g. cache/-toplevels, and then if there's two toplevel caches, sg discards them both and regenerates them < 1292524635 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whenever you add a patch to the DB, you also add it to the cache < 1292524641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or something of that sort < 1292524648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whenever you add something that depends on a patch in the cache to the DB, you delete the patch it depends on from the cache < 1292524648 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's all patches, then, isn't it? unless you remove them often < 1292524650 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :right < 1292524665 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: depends on == references a part of, right? < 1292524671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292524699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the cache doesn't need to hold the patches themselves, incidentally, just the list < 1292524707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :together with things like the most recent common ancestor of given pairs < 1292524707 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the hashes < 1292524710 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :surely < 1292524718 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, it holds their names < 1292524724 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, most common ancestor doesn't sound that hard < 1292524725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and some precalculated data < 1292524727 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :to do on-the-fly, I mean < 1292524737 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: especially lazily < 1292524739 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it probably isn't < 1292524763 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: get lists of all dependencies of P1 and P2, which is a simple tree-walk, really; then just iterate through both until you find a common one < 1292524779 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :unless the most recent common ancestor is thousands of revisions back, it'll be instant < 1292524788 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :get lists being lazy there, that is < 1292524792 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so that you only read what you need to < 1292524798 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(an argument for impure lazy computation...) < 1292524829 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ML does impure + lazy quite well, basically using closures that need a dummy argument to force them < 1292524840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let a = 1 + 2 calculates it now < 1292524848 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: indeed; scheme has basically the same thing < 1292524850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let a () = 1 + 2 calculates it each time you write a() < 1292524857 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :with DELAY and FORCE < 1292524867 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(force (delay (+ 2 2))) => 4 < 1292524894 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, scapegoat prototype 1 should load the whole repository into memory, I think < 1292524895 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underlambda does that too < 1292524901 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :seems reasonable < 1292524903 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :to avoid having to do lazy IO, which would be an unreliable pain in Haskell < 1292524921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on small projects, it might even be efficient and reliable < 1292524980 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : Assume for contradiction that there is an interaction v·w·m in exactly one of the sets [[M_2]](*) • [[M_1]](*) and K_2 • K_1 (with v and w interactions, and m a move), all moves in w are in θ', the last move in v is in θ, v is in both [[M_2]](*) • [[M_1]](*) and K_2 • K_1, and at least one of the following statements is true: m is not in θ, m is a P-move in M_1, or the last move in v is an O-move in M_1 and v·w·m is not a < 1292524981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: we should probably take the Varnish route in an actual implementation < 1292524981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :subset of K_2 • K_1. <-- my favourite part of that proof < 1292524986 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: just mmap the repository < 1292524990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292525001 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that sentence took me hours to figure out < 1292525009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it's just a list of apparently arbitrary assumptions < 1292525027 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that way, we can allocate repositories as big as we want (with a careless enough OS, which is Linux by default and I think BSDs), access them as ordinary memory, and still do things efficiently otherwise < 1292525034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then I spend half a page proving that they contradict each other < 1292525039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I've been won over by the Most Stuff Should Be In A Single DB position.) < 1292525041 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: :D < 1292525049 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :wow, this is insane: http://www.ramblesandruminations.com/2006/12/hi-im-here-for-my-panetone.html < 1292525070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, we wouldn't need a DB file if it weren't for the fact that individual changes need to be accessible < 1292525078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :leading to a huge explosion of objects < 1292525101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what a VCS is, isn't it? < 1292525104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I should go home < 1292525110 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292525127 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, change != patch < 1292525142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :if it was just storing patches, that'd be okay, but every single change in the patch has to be stored separately < 1292525310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm, repo = set of patches + irrelevant stuff like nicknames and caches < 1292525312 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :patches = set of changes < 1292525361 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1292525505 0 :poiuy_qwert!~poiuy_qwe@bas5-toronto47-2925109240.dsl.bell.ca JOIN :#esoteric < 1292525871 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Deewiant: down? < 1292525876 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think so, yes. < 1292525882 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1292526081 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: have you seen the destruction < 1292526085 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :of Deewiant < 1292526134 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: so where did the ground-level minecart path go < 1292526262 0 :cheater99!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292526466 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: ? < 1292526830 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, to a hill to the south of Mt. Hoover. Some furnaces and a workbench at the end. < 1292526861 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Anyone admitted to making it? < 1292526885 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It was almost certainly nailor. < 1292527052 0 :cheater99!~cheater@g230231134.adsl.alicedsl.de JOIN :#esoteric < 1292527072 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: btw yesterday I found some pumpkins in mount vorpal and took them < 1292527147 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :that's funny, i couldn't get gnocchi today at the italian place because they couldn't find any pumpkins < 1292527152 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :i think that explains it < 1292527176 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :elliott is a pumpkin thief < 1292527195 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1292528034 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric : Vorpal: btw yesterday I found some pumpkins in mount vorpal and took them <-- if you did that I expect them back < 1292528064 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: to be fair i also put the same number + 1 back in < 1292528090 0 :hagb4rd!~perdito@koln-4db40889.pool.mediaWays.net JOIN :#esoteric < 1292528102 0 :sebbu!~sebbu@ADijon-152-1-56-80.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1292528109 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, heh < 1292528128 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, down? < 1292528129 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1292528144 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, built marker at (4000,4000) < 1292528152 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: so? < 1292528227 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yeah you don't get it < 1292528235 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: what? < 1292528344 0 :pikhq!~pikhq@71-219-234-226.clsp.qwest.net JOIN :#esoteric < 1292528375 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: what? < 1292528409 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fun fact: invalid UTF-8 can make X crash. < 1292528426 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a light breeze can make X crash < 1292528605 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True, true. < 1292528823 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: mind if I colonise the unused peak of mt. vorpal? < 1292529042 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott: yes < 1292529052 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it isn't unused. The throne room extends below it < 1292529057 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :and other stuff too < 1292529089 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott: so basically it won't be a good idea < 1292529090 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: below it, but not on top < 1292529103 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I plan stuff there < 1292529115 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott: a glass star observatorium < 1292529118 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :(sp) < 1292529126 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :observatory. < 1292529140 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it already has some buildings on it < 1292529156 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, anyway, given your lava handling I want you NOWHERE NEAR ME < 1292529162 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I don't want everything burned down < 1292529197 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :nor do I want a waterfall there < 1292529216 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: what have I done with lava lately?? < 1292529218 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, go make your class cube somewhere far away < 1292529224 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, up at Deewiant's place... < 1292529230 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: nothing happened < 1292529241 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, fuck off < 1292529271 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: btw, have you done anything to the deewiant express lately? < 1292529432 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: btw, almost all the house survived the lava, and dewi didn't seem overly pissed off at it, so "fuck off" is a slight overreaction. < 1292529539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: are you /ignoring me? < 1292529551 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :He's playing < 1292529569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that doesn't mean he isn't /ignoring me! < 1292529583 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, but it can explain why he's not saying anything < 1292529594 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Does the Express still loop < 1292529605 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nah, I got rid of it < 1292529610 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: BUT WHY. < 1292529611 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(The loop, not the Express) < 1292529619 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Because with lag, it's hard to stop < 1292529627 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to pour lava all over Mount Vorpal in protest < 1292529634 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And then mine the debris < 1292529648 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And then dig Vorpal down to bedrock and surround him with a ten-thick layer of obsidian. < 1292529656 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And the rest up to sea level with TNT. < 1292529661 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That is what you have done to me, Deewiant. < 1292529868 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant just doesn't realise the horror. < 1292530049 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I was not /ignoring < 1292530198 0 :hagb4rd!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292530243 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1292530298 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wb ais523 < 1292530318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ty < 1292530370 0 :hagb4rd!~perdito@koln-4d0b75bb.pool.mediaWays.net JOIN :#esoteric < 1292530388 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: opinion poll: "verify :: Hash -> ByteString -> Bool" or "verify :: ByteString -> Hash -> Bool" < 1292530403 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, down? < 1292530406 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The latter < 1292530417 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: "fuck off" --you < 1292530429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it's obviously irrelevant, but I think the first is a little neater < 1292530431 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yes due to denying that you messed up < 1292530444 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yep, i was an evil deceiver < 1292530454 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how did i think that i could possibly defeat the awesome power of screenshots that everyone has seen < 1292530459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but darnit, I had malicious intent! < 1292530466 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Deewiant: you two have to duke it out to the death now < 1292530526 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Of course, I'm the one with no clue what the params mean < 1292530574 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: ais523 doesn't either, but it just checks that the bytestring hashes to the given hash < 1292530578 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which is sha-512, but that's irrelevant < 1292530582 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and returns whether it does or not < 1292530630 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :With the latter, verify = (==) . sha512 < 1292530653 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Very well then. < 1292530657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Wait, what? < 1292530660 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, indeed. < 1292530662 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, you're right. < 1292530668 0 :Sasha2!~WHAT@75-174-222-86.phnx.qwest.net JOIN :#esoteric < 1292530687 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Erm, no < 1292530689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Is it? < 1292530698 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is :-P < 1292530704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: indeed < 1292530758 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Know what's awesome? Two libraries, one that uses strict bytestrings, the other that uses lazy < 1292530767 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Okay, the map thing's online now. But do remember that I'm only sharing it on the "no bitching about it" condition; in fact I'll be away immediately and not discuss it at all, even if it has trivial bugs (like it probably has). < 1292530770 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Specifically, trying to use them both in one module < 1292530775 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's at https://github.com/fis/mcmap now. < 1292530780 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(And there's a README anyway.) < 1292530789 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Thanks. If Vorpal whines I'll lava Mount Vorpal. < 1292530797 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(That should be sufficient incentive, one thinks.) < 1292530799 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: What's the *ware term for that condition? < 1292530808 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Stfuware < 1292530817 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or "fuck you ware". < 1292530817 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Good enough < 1292530824 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That sounds reasonable, yes. < 1292530841 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll have to add some sort of a COPYING file at some point, maybe. < 1292530874 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: But until you do, it's PUBLIC DOMAIN!* < 1292530878 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*lies < 1292530917 0 :Ilari_antrcomp!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1292530926 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not expecting it to be horribly popular; it's not a very user-friendly tool. < 1292530944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: "In the most basic form, ./mcmap -r 600x600 host:port"; "Unknown option -r". < 1292530949 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: (Not a whine, just a bug report.) < 1292530951 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in either the readme or the C :P < 1292530991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OK, it's actually -s. < 1292531006 0 :Ilari_antrcomp!~user@2002:5870:38d7:1:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1292531053 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, heh. < 1292531059 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Shouldn't have done it from memory. < 1292531097 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I did fix at least that. < 1292531178 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: OMG IT DOESN'T HANDLE RIDING IN MINECARTS FIX IT FIX IT FIX IT I PAID FOR THIS SOFTWARE NOW GIVE ME MY SUPPORT < 1292531181 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Joking.) < 1292531208 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, I wonder what is with riding. It seems to go to (0,0,0) for that. < 1292531259 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There is an "attach entity" packet that (according to the protocol wiki) "is believed to" be sent when a player has been attached to a cart. < 1292531263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : Deewiant: ais523 doesn't either, but it just checks that the bytestring hashes to the given hash <-- I guessed that from the signature, with a name like that there's not much else it could do and yet be vaguely sane < 1292531275 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess after that it sends player motion relative to the attached entity, and then just moves the entity around. < 1292531308 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I like how chats are invisible if you use a light background, got confused there for a second. :p < 1292531319 0 :hagb4rd!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292531331 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Heh, yes. There's the --nocolor flag for that. < 1292531352 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Though then it won't strip out the color codes either. < 1292531360 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And you'll see §f's everywhere. < 1292531431 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :Carapace Averages Nine Thin Zit Loots | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1292531449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that topic was crying out to be anagrammed < 1292531477 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, err, I have zlib but not in pkg-config it seems < 1292531507 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: That's not fizzie's problem < 1292531520 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, just wondering why < 1292531526 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ubuntu 10.04 LTS < 1292531531 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie probably knows, 'cuz he's psychic. < 1292531538 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And you're totally obeying the "no questions" policy. < 1292531541 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I thought he used ubuntu too nowdays < 1292531550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: sometimes I think the main difference between you and zzo38 is that you give the context < 1292531566 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ais523, could be. < 1292531569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and zzo38 is too detached from what we're saying to get angry :P < 1292531576 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(at us, for anything) < 1292531587 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think I'd take two zzos over one Vorpal < 1292531655 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :since this one is zzo38, there should be 38 before him < 1292531674 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, switching to -lz for zlib works < 1292531751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :$ dpkg-query -S zlib.pc < 1292531751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :zlib1g-dev: /usr/lib/pkgconfig/zlib.pc < 1292531755 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's where mine is from. < 1292531892 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, awesome tool < 1292531899 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I have that package < 1292531903 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but I'm on last LTS < 1292531940 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292532279 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, I think scapegoat objects need types as part of their name, so e.g. "look at all patches" is a reasonable operation < 1292532301 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh btw: < 1292532302 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:44:30 ais523: btw, we wouldn't need a DB file if it weren't for the fact that individual changes need to be accessible < 1292532302 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:44:38 leading to a huge explosion of objects < 1292532302 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:45:01 that's what a VCS is, isn't it? < 1292532302 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:45:04 anyway, I should go home < 1292532303 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:45:10 --- quit: ais523 (Remote host closed the connection) < 1292532305 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:45:27 ais523: no, change != patch < 1292532307 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:45:42 if it was just storing patches, that'd be okay, but every single change in the patch has to be stored separately < 1292532310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:48:30 hmm, repo = set of patches + irrelevant stuff like nicknames and caches < 1292532312 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:48:32 patches = set of changes < 1292532314 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :chaneg ~= hunk < 1292532316 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*change < 1292532399 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1292532470 0 :hagb4rd!~perdito@koln-4db423e0.pool.mediaWays.net JOIN :#esoteric < 1292532671 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, stop ruining the hole < 1292532682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: a patch either has exactly one change, or is a set of other patches < 1292532682 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, conclusion: in the future keep exploration silent < 1292532682 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, RUINING IT BY FIXING IT < 1292532692 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, you broke it. Lava does not belong there < 1292532706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I should probably go back to calling them turtles again < 1292532712 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, but if you were silent about your achievements how would you prop up your ego? < 1292532742 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, very droll < 1292532771 0 :elliott!unknown@unknown.invalid QUIT :Quit: Leaving < 1292532773 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's a serious point! < 1292532779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, seems it didn't remember my login < 1292533410 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, would it be feasible to make it render leaves transparently? < 1292533708 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah that seems to work < 1292533712 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :hard coded patch thoug < 1292533715 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :though* < 1292533743 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could more easily just not render leaves at all. The surface bitmap (well, "blockmap") is being separately maintained by the updates for faster drawing, so you could just either skip leaves (like it skips air). < 1292533821 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that is what I did < 1292533854 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want to do that properly, you'll need to do that in both handle_chunk and block_change. < 1292533906 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah just did it in handle_chunk < 1292533922 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, the latter only matters if you go and dig out the leaves. < 1292533945 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Should probably add some sort of block-type enum for any block-specific customizations at some point. The current testing for air (!x) is a bit iffy too. < 1292533973 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, iffy how? < 1292533986 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also yeah the AIR_COLOUR thing for stuff like buttons won't do much < 1292534006 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's mostly meant for the cross-section map. < 1292534011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Where it works reasonably well. < 1292534103 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why is south now down btw? < 1292534104 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But I could have a better "these blocks are practically empty" table that it'd use for the surface map, and a command-line flag to include/exclude leaves in that. < 1292534110 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not down. < 1292534119 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least I don't think it is. < 1292534120 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, s/now/not/ < 1292534124 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1292534133 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Because I've oriented myself to ineiros' maps. < 1292534143 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1292534161 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And if I just swap x/y y/x, I get north/south properly but then east/west will be the wrong way around, and that's really confusing. < 1292534178 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and yes zoom would be nice, kind of hard to spot pumpkins now < 1292534252 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There could be some sort of highlight mode that'd greyscale the other block colors and turn the one you're looking for red, or something. (Or just desaturate-but-not-completely.) < 1292534253 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I hit some kind of redrawing bug < 1292534270 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What kind of? < 1292534279 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Not that I'm going to think about it now.) < 1292534282 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, vertical 1 pix wide lines < 1292534286 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, when I go south < 1292534291 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :into unmapped < 1292534306 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, note I have both a chunk at spawn, and a chunk at 4000,4000 < 1292534306 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't know about that. Screenshot? < 1292534321 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, sure, could be my fault when hiding leaves. who knows < 1292534356 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A surface that large will take quite a bit of memory. (61 megs or so.) < 1292534362 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Link to this magic mappy thing? < 1292534399 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Pleasepleaseplease? < 1292534404 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :/lastlog http < 1292534424 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, http://sporksirc.net/~anmaster/tmp/mcmap.png < 1292534436 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and I run the mapper on a separate computer :P < 1292534443 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, where's this mapper thing? < 1292534463 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, see what Deewiant said < 1292534493 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I did enter a minecart by mistake, not sure if that affects it < 1292534519 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I got some bit strange-looking surfaces when traveling by minecart, but, well, who knows. < 1292534609 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Re zoom, you could just use compiz' magical zoom if you're running it on another box (that can do that). < 1292534655 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I hope all the exploration won't make the server really run out of memory storing the world. < 1292534684 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess when unloading blocks from the clients it also unloads them from itself and only keeps them in the disk storage, though. < 1292534688 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least one could hope so. < 1292534703 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1292534709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : elliott: a patch either has exactly one change, or is a set of other patches < 1292534713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1292534719 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that box has intel graphics < 1292534720 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why not just do patch = set of changes < 1292534726 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I don't think compiz is a good idea there < 1292534734 0 :hagb4rd!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292534745 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : I should probably go back to calling them turtles again < 1292534750 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: turtles are the file trees < 1292534752 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: silly < 1292534772 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :as in, the actual tree with all the files, belonging to a specific patch < 1292534806 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1292534910 0 :hagb4rd!~perdito@koln-5d81f681.pool.mediaWays.net JOIN :#esoteric < 1292534987 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1292534990 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, down? < 1292535022 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Couldn't care less. < 1292535038 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, "tough shit". < 1292535564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ping? < 1292535837 0 :zeotrope!unknown@unknown.invalid QUIT :Quit: Lost terminal < 1292535916 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What's lime green in mcmap? < 1292535923 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, got it to work btw? < 1292535946 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes, thanks to your polite and helpful advice. < 1292535966 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, lime = green cobble < 1292535973 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ah, so that's a dungeon. < 1292536008 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, probably < 1292536159 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://imgur.com/1jip7 Goodbye AltaVista and delicious. < 1292536167 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Also AlltheWeb. < 1292536240 0 :yiyus_!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1292536283 0 :Slereah!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1292536337 0 :reiffert!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1292536364 0 :jix!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1292536364 0 :fxkr!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1292536589 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ping < 1292536667 0 :fungot!unknown@unknown.invalid QUIT :*.net *.split < 1292536667 0 :fizzie!unknown@unknown.invalid QUIT :*.net *.split < 1292536668 0 :tehjamez!unknown@unknown.invalid QUIT :*.net *.split < 1292536668 0 :sshc!unknown@unknown.invalid QUIT :*.net *.split < 1292536668 0 :myndzi!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :lifthrasiir!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :yiyus!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :jcp!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :augur!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :Ilari_antrcomp!unknown@unknown.invalid QUIT :*.net *.split < 1292536669 0 :Sasha2!unknown@unknown.invalid QUIT :*.net *.split < 1292536670 0 :Ilari!unknown@unknown.invalid QUIT :*.net *.split < 1292536670 0 :quintopia!unknown@unknown.invalid QUIT :*.net *.split < 1292536670 0 :Zuu!unknown@unknown.invalid QUIT :*.net *.split < 1292536670 0 :mycroftiv!unknown@unknown.invalid QUIT :*.net *.split < 1292536670 0 :Leonidas!unknown@unknown.invalid QUIT :*.net *.split < 1292536671 0 :hagb4rd!unknown@unknown.invalid QUIT :*.net *.split < 1292536671 0 :ais523!unknown@unknown.invalid QUIT :*.net *.split < 1292536671 0 :poiuy_qwert!unknown@unknown.invalid QUIT :*.net *.split < 1292536671 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :*.net *.split < 1292536672 0 :olsner!unknown@unknown.invalid QUIT :*.net *.split < 1292536672 0 :cheater99!unknown@unknown.invalid QUIT :*.net *.split < 1292536672 0 :MigoMipo!unknown@unknown.invalid QUIT :*.net *.split < 1292536672 0 :FireFly!unknown@unknown.invalid QUIT :*.net *.split < 1292536672 0 :sebbu!unknown@unknown.invalid QUIT :*.net *.split < 1292536673 0 :Vorpal!unknown@unknown.invalid QUIT :*.net *.split < 1292536673 0 :Gregor!unknown@unknown.invalid QUIT :*.net *.split < 1292536699 0 :Slereah!~butt@ANantes-259-1-130-244.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1292536699 0 :yiyus!~124271242@67.202.106.57 JOIN :#esoteric < 1292536699 0 :fxkr!~fxkr@night.fxkr.net JOIN :#esoteric < 1292536699 0 :jix!jix@tomakin.h-ix.net JOIN :#esoteric < 1292536699 0 :reiffert!~thomas@mail.reifferscheid.org JOIN :#esoteric < 1292536699 0 :hagb4rd!~perdito@koln-5d81f681.pool.mediaWays.net JOIN :#esoteric < 1292536699 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1292536699 0 :Ilari_antrcomp!~user@2002:5870:38d7:1:20e:a6ff:fe6f:2288 JOIN :#esoteric < 1292536699 0 :Sasha2!~WHAT@75-174-222-86.phnx.qwest.net JOIN :#esoteric < 1292536699 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1292536699 0 :sebbu!~sebbu@ADijon-152-1-56-80.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1292536699 0 :cheater99!~cheater@g230231134.adsl.alicedsl.de JOIN :#esoteric < 1292536699 0 :poiuy_qwert!~poiuy_qwe@bas5-toronto47-2925109240.dsl.bell.ca JOIN :#esoteric < 1292536699 0 :MigoMipo!~John@84-217-3-253.tn.glocalnet.net JOIN :#esoteric < 1292536699 0 :Phantom_Hoover!~phantomho@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1292536699 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1292536699 0 :fungot!~fungot@momus.zem.fi JOIN :#esoteric < 1292536699 0 :Leonidas!~Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1292536699 0 :Ilari!~user@2002:5870:38d7::1 JOIN :#esoteric < 1292536699 0 :tehjamez!~tehjamez@CPE00222d66da07-CM00222d66da03.cpe.net.cable.rogers.com JOIN :#esoteric < 1292536699 0 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1292536699 0 :Vorpal!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1292536699 0 :quintopia!~quintopia@209.59.220.33 JOIN :#esoteric < 1292536699 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1292536699 0 :Gregor!~Gregor@codu.org JOIN :#esoteric < 1292536699 0 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1292536699 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1292536699 0 :mycroftiv!~ircguy@h69-128-47-242.mdsnwi.dedicated.static.tds.net JOIN :#esoteric < 1292536699 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1292536699 0 :myndzi!myndzi@c-24-19-39-178.hsd1.wa.comcast.net JOIN :#esoteric < 1292536699 0 :lifthrasiir!~lifthrasi@61.251.165.38 JOIN :#esoteric < 1292536712 0 :pikhq!unknown@unknown.invalid QUIT :Excess Flood < 1292536713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ping < 1292536739 0 :pikhq_!~pikhq@71-219-234-226.clsp.qwest.net JOIN :#esoteric < 1292536783 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ah, tab stacking is nice < 1292536797 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :quartered the height of my tab bar < 1292536839 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: hm? < 1292536886 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :new feature in opera 11, allows you to combine tabs into tab groups (maybe they're called stacks) < 1292537023 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :indeed it's called a "tab stack", it displays the active tab and a small button to expand it and view all the other tabs in the stack < 1292537050 0 :Sasha2_!~WHAT@97-124-46-110.phnx.qwest.net JOIN :#esoteric < 1292537098 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: oh, you're a stupid opera user, i forgot < 1292537118 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :am I stupid? really? < 1292537142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: only in that you use opera :) < 1292537199 0 :yiyus_!1242712427@je.je.je JOIN :#esoteric < 1292537208 0 :Sasha2!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292537212 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: ok. < 1292537226 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: it's like, a little pocket of stupidity < 1292537233 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :like, if albert einstein regularly shot himself in the face < 1292537240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :he'd be a stupid self-face-shooter < 1292537242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but not stupid < 1292537259 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :fuck you ubuntu: "The computer needs to restart to finish installing updates. Please save your work before continuing." < 1292537272 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: dude, even debian does that < 1292537281 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(although it lets you make it go away for N times) < 1292537287 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the thing is, it wants to restart *before* upgrading < 1292537287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :where times = seconds, minutes, whatever < 1292537298 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: no, i think that's misleading wording < 1292537305 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it just means "i replaced the kernel, reboot, you bum" < 1292537308 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ineiros, torrenting? < 1292537310 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :maybe libc too < 1292537324 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: no, it's serious: pressing "install updates" does nothing but pops up that message < 1292537347 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: impressive. what. < 1292537360 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: not even os x does that ;) < 1292537365 0 :ineiros!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Yes. They released another episode of Pioneer One. Shouldn't take long. < 1292537400 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: os x does that for many (most?) upgrades though, you have to install-and-reboot in one operation < 1292537412 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: true. < 1292537420 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: it's irritating how long it can lock you in an "upgrading lol" screen < 1292537424 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it never used to do that in Tiger < 1292537449 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ineiros: You may NEVER EVER use your internet connection for recreational purposes; we *depend* on Minecraft! < 1292537511 0 :ineiros!unknown@unknown.invalid PRIVMSG #esoteric :elliott: That is honestly scary. :P < 1292537521 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'll just have to uninstall the automatic updates program so I'm not annoyed by there being updates it won't allow me to install < 1292537526 0 :tehjamez!unknown@unknown.invalid PART #esoteric :? < 1292537527 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ineiros: Well, if Vorpal was the only player, that would in fact be the case. < 1292537537 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: you could just disable them rather than uninstalling it :) < 1292537542 0 :ineiros!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Maybe I should take a second connection with a better upstream and make you people pay for it. :) < 1292537553 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ineiros: or just colocate :P < 1292537573 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: but... why would I keep it installed when I've disabled it? < 1292537587 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: because of the ubuntu-desktop metapackage < 1292537594 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it's not as if I have infinity space to give away to useless software < 1292537598 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ineiros: I keep suggesting the CloudCraft. < 1292537601 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: so that when Canonical add more and more crap in the next major release, you can get it without manually installing it! < 1292537606 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: P2PCraft < 1292537625 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: If everyone democratically decides that you're in a gigantic lava pit covered with obsidian at the bottom of the sea, well, you are! < 1292537668 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: ubuntu-desktop doesn't fit :) < 1292537680 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: ok, i'll bite: what machine is this? < 1292537706 0 :cheater99!unknown@unknown.invalid PRIVMSG #esoteric :that's cool, i didn't know there was a parisc channel < 1292537728 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually it would fit according to the package manager's estimate of used space < 1292537746 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it'd leave ~100MB of free space < 1292537768 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, incidentally, what happens when Beta comes out? < 1292537774 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: To quote the SDL documentation wiki: "A lot of the keysyms are unavailable on most keyboards. For example, the SDLK_1 keysym can't be accessed on a French keyboard. You get the SDLK_AMPERSAND instead. So, you should not hardcode any keysym unless it's one of the universal keys that are available on all keyboards." < 1292537788 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it's just this one, my main desktop system < 1292537800 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: how much disk have you got? how much is used? :p < 1292537809 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :5GB used to be plenty of space for linux, apparently not so much anymore < 1292537818 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :(currently using 4.6GB of it) < 1292537819 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Do you pick apart that protocol and reimplement mcmap? < 1292537821 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: mcmap is provided without support. :p < 1292537825 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: erm do you have a separate /home? < 1292537829 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or do you really stuff everything into 5 gigs? < 1292537830 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1292537835 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I didn't ask him to fix it, I'm just informing. :-P < 1292537839 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: no, he just adds handling for server-side inventory packets. < 1292537842 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: :P < 1292537871 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: (Do French keyboards have & where 1 should be?) < 1292537890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't know, but SDLK_1 doesn't work for my keyboard so I have to hack it. < 1292537896 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://3.bp.blogspot.com/_z9jvYW4hF3k/Sw56ZFHSceI/AAAAAAAAAB8/OhcuW0qzRG0/s1600/titanium_azerty_keyboard.jpg < 1292537901 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Looks like Frenchies have punctuation on shift. < 1292537903 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And & below 1. < 1292537905 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1292537908 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Looks like Frenchies have digits on shift. < 1292537915 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :As do I. < 1292537960 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: That's 'cuz you're Finnish. < 1292537964 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(The explanation for everything.) < 1292538019 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Sure, I'll fix for beta if it breaks, assuming it's not too dissimilar. < 1292538040 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do the Unicode-translation chars work better? < 1292538063 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Yes, my workaround was to add SDL_EnableUNICODE and use the .unicode field for 1,2,3 < 1292538068 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I demand you add a command to spit out the locations of objects in a specific list of object ID #s within +-X,Y,Z of your current position. --Vorpal < 1292538076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: (Actually that *would* be kind of useful X-D) < 1292538084 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: a big part of the partition is used by my home folder though, 300MB of irc logs for example :P < 1292538092 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: But upon reflection, I probably should've made it respond to !,@,# so I don't have to press shift. :-P < 1292538092 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'll fix it like that in the next version. < 1292538096 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Consider bzipping them :P < 1292538119 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Ooh, or a keyboard mapping config file. :p < 1292538122 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Just make it subtract (keysym of 1) from the keycode, and %3 it. < 1292538130 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Then every 3 successive keysyms on the keyboard work. < 1292538133 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SCIENCE < 1292538137 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: !,@,# aren't successive. < 1292538147 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Pick better keys < 1292538153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Or use multiple hands, stretched < 1292538155 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: THEY'RE THE DEFAULTS < 1292538161 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Thus why < 1292538164 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : fizzie: Just make it subtract (keysym of 1) from the keycode, and %3 it. < 1292538164 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : fizzie: Then every 3 successive keysyms on the keyboard work. < 1292538165 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :SCIENCE < 1292538179 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You could use qwe, rty, or uio! Assuming those scan properly. If not, pick other keys! < 1292538257 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant passed out from the awesomeness of my idea. < 1292538266 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :YOU COULD EVEN USE NUMLOCK < 1292538276 0 :Sasha2_!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292538487 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ping < 1292538493 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, incidentally, you might want to change the readme for mcmap to make it clear that you have to connect to 127.0.0.1 < 1292538502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: pong < 1292538509 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I thought that was pretty clear < 1292538515 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : elliott: a patch either has exactly one change, or is a set of other patches < 1292538515 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : hmm < 1292538515 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ais523: why not just do patch = set of changes < 1292538518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : I should probably go back to calling them turtles again < 1292538518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ais523: turtles are the file trees < 1292538518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ais523: silly < 1292538518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : as in, the actual tree with all the files, belonging to a specific patch < 1292538519 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : no? < 1292538531 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I tried localhost, which doesn't work < 1292538536 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: because patch = set of changes only does one level < 1292538543 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Also :(the port we use) whereas it's always :25567 for mcmap. < 1292538547 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and? :p < 1292538550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to group individual changes into a commit, individual commits into a tag, etc < 1292538560 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, true... but does a tag have to be a patch? < 1292538561 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Worked for me! < 1292538562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, a "merge resolution" is also a set of patches, some reverts and some unreverts < 1292538566 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean, a patch to /what/? < 1292538573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : also, a "merge resolution" is also a set of patches, some reverts and some unreverts < 1292538575 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: then it's not a set! < 1292538576 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's a list < 1292538577 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, /everything/'s a patch to nothing < 1292538579 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because the application order matters < 1292538580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: no, it's a set < 1292538587 0 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1292538589 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :howso? < 1292538596 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1292538599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the rule is, you apply patches before patches that depend on them < 1292538608 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, fair enough < 1292538610 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if it's ambiguous even then, you have a merge conflict < 1292538626 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, the other rule is, you don't apply a reverted patch at all (that is, if both the patch and its revert are in the set) < 1292538640 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is needed for merge resolutions to make sense at all < 1292538643 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm fairly sure that we need to reserve two hashes, BTW < 1292538649 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1292538651 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: for "Start" and "End" < 1292538653 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (SOF and EOF) < 1292538658 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which have no valid expression as patches < 1292538666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think that makes sense < 1292538671 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'd just do all-zeroes and all-ones, as that's a pretty unlikely hash < 1292538675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*both are pretty unlikely < 1292538678 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, that's wrong altogether < 1292538678 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OK, not unlikely in absolute senses < 1292538683 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hm? < 1292538683 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :different files have different SOF and EOF < 1292538688 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Of course. < 1292538692 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: But there are no files. < 1292538710 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Consider: Two empty files in a directory point to the same object, the Start/End patch. < 1292538710 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what do directories contain? < 1292538717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, no < 1292538720 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: err, yes < 1292538726 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :two empty files each have their own start and their own end < 1292538730 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Why? < 1292538735 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, if you did "add between start and end", how would you know which file it went into? < 1292538748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you don't have to; the directory tells you what to put in what file < 1292538751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the /only/ information for an addition is what it goes between < 1292538755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: that seems very backwards < 1292538767 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you look at the patch, apply it to the [(Start,""),(End,"")] string, and then write it to the file listed in the directory entry < 1292538768 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then, you'd have to amend the directory every time you changed a file in it < 1292538771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not just the metadata < 1292538775 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: this is great because you can completely rip out FS-centrism < 1292538776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :patches /do not have directory data/ < 1292538778 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just by replacing directories < 1292538784 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: then, you'd have to amend the directory every time you changed a file in it < 1292538786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: err, you do anyway < 1292538790 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :since the hash changes < 1292538791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, you don't < 1292538794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :since the hash changes < 1292538799 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the directory doesn't depend on the files in it at all < 1292538803 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :see, I create an empty directory < 1292538809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then I add a file to it, that doesn't change the original hash < 1292538822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it just adds a new one, "add file to directory with hash 1298371028938" < 1292538839 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: *add file to directory OSDIJFSODF with hash ASOIDHASOD < 1292538846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, no, no!!!! < 1292538862 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so directories are maintained completely differently to files? < 1292538863 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exciting < 1292538864 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the hash of "add file to directory with hash 129837192837", together with metadata, etc, /is/ the hash used to refer to the new file < 1292538872 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so directories are maintained completely the same as files < 1292538876 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why can't you have a file outside a directory? < 1292538891 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because then how would you know what project it was in? < 1292538902 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you wouldn't < 1292538906 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you seemed to understand this a couple of days ago... < 1292538913 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, I do < 1292538925 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm just trolling you at this point, in the hopes of making the system even more interesting < 1292538930 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(OK, the hash of "add file to directory with hash 129837192837", together with metadata, etc, /is/ the hash used to refer to the new file < 1292538935 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :helped, but after that I've just been trolling :)) < 1292538939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1292538950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in that case, shouldn't I just ignore you until you stop? < 1292538956 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i've stopped now < 1292538968 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK then, given "add file to directory with hash 129837192837", what does a patch that inserts a single line "hi" into that file look like? < 1292539016 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's "add 'hi' between 239487-SOF and 239487-EOF", where 239487 is the hash in question and -SOF and -EOF are hashes based on that < 1292539037 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, you could literally append the -SOF and -EOF to the end, because all that matters about the hashes is a unique method of creating them < 1292539037 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :haha, this mp3 player has a built-in hypnotoad feature, that plays the hypnotoad tune in the background when the program is running < 1292539038 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, what object do those hashes point to? < 1292539051 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to 239487, of course < 1292539054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :as the Implementation Guy, I insist all hashes point to an actual object < 1292539059 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, because they're != 239487 < 1292539066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: say they're 27 and 72 respectively < 1292539069 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what objects do they point do? < 1292539070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*to? < 1292539076 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the start and end of 239487 < 1292539076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: :D < 1292539086 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which are real concepts < 1292539091 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so every time you create a file, you create two patch objects too? < 1292539094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1292539104 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: And these patch objects are "SOF" and "EOF"? < 1292539112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :of that file, yes < 1292539120 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, so "SOF " and "EOF "? < 1292539133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would be one way to express it < 1292539139 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Fair enough then. < 1292539140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but, of course, an impl detail < 1292539153 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Of course; it's just that I'm the Implementation Guy looking to Actually Implement it. :) < 1292539166 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(I'm still down in the trenches of the object storage layer right now, though.) < 1292539178 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, let me see < 1292539245 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: patch := insert between and | replace with | delete | do all of | start of file | end of file < 1292539250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: except, for directories, it's < 1292539269 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :patch := insert | delete | do all of | empty-directory < 1292539273 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*empty directory < 1292539274 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Plain "localhost" worked just fine for me, too. < 1292539275 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes? < 1292539284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm checking that < 1292539315 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for directories, it'd be patch := insert file | insert directory < 1292539316 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And it's 25565 (not 25567) that's mcmap's (and Minecraft's) default port, unless I'm mistaken. < 1292539322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than just a plain insert < 1292539331 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, make it < 1292539334 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The listening port is a command line option too.) < 1292539343 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: patch := insert | delete | do all of | empty directory < 1292539344 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1292539348 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: where fileinfo also allows symlinks, etc < 1292539352 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, fair enough < 1292539361 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm thinking that these types will likely eventually be pluggable anyway < 1292539384 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: one problem I can see right off the bat is that "start of file | end of file " is a type constraint -- those must be "insert " changes -- that is not represented within the implementation type system < 1292539387 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but, then again, < 1292539389 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the eventual plan is to use C < 1292539393 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : so I checked both of them to see what would happen < 1292539395 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so we're in for that kind of pain /anyway/ :) < 1292539396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :FOR SCIENCE! < 1292539429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: turns out, my login wasn't remembered < 1292539433 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1292539450 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you wonder if the people in charge of the forum had ever heard of radio buttons < 1292539456 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, say P:S means "line S (blame: patch P)"; what does the patch (insert "cat" between P1 and P2) do to the file [P1:"rabbit", P3:"weasel", P2:"dog"]? < 1292539458 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: conflict? < 1292539468 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's how my apply function did it, it just wouldn't let you < 1292539471 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (assuming no merge handling) < 1292539485 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For the real "x-ray" vision mode, I thought I'd just add a key that causes mcmap to send "set block to glass" packets for each non-interesting (not ore, chest, etc.) block inside a given radius, and then (for fake-glass) reply to all "player digging" packets with set-block-to-what-it-was. < 1292539500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: conflict < 1292539517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: thought so < 1292539517 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(because there's no way to automatically guess whether it should go before or after the weasel) < 1292539539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I like how it turned from the string "weasel" into an actual weasel embedded in the file in the space of a few IRC messages. < 1292539539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, as for your hatred of the automatic v v v v ^ ^ ^ ^ conflict marking in files < 1292539559 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the obvious thing to do is to have a command to edit the files with conflict marking, but not do it by default < 1292539573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: possibly, but it shouldn't name it with the original filename < 1292539580 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: foo.conflicts I could accept, but not foo < 1292539588 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, often, in such cases, you want to edit the file into the unconflicted version < 1292539598 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so mv it back afterwards? < 1292539608 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, if you have sensible-for-everyone mcmap fixes (as opposed to local-only kludges), the github repo is public read-write, you can just push there. < 1292539611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the VCS shouldn't pose one of its own-format (even if it is a simple format) files as the real thing < 1292539620 0 :MigoMipo!unknown@unknown.invalid QUIT :Quit: Quit < 1292539634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I sort-of see what you mean; on the other hand, they're presenting something that should be edited into the real thing < 1292539638 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: IMO, if sg gets a merge conflict, it should refuse to update /any/ file you have *by default* < 1292539640 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, obviously it should work like sudoedit < 1292539652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: not even the files not involved in the conflict? < 1292539653 0 :wareya!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1292539661 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: indeed, since working directory wouldn't be in a consistent state < 1292539690 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it should print out the conflicts, you should be able to do "sg conflicts write filename" which would create filename.conflicts or whatever, which you would then fix, < 1292539702 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and then you'd do "sg conflicts fixed filename" < 1292539705 0 :wareya!~wareya@cpe-74-70-142-220.nycap.res.rr.com JOIN :#esoteric < 1292539714 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and once you'd fixed all conflicts, you could do "sg conflicts commit-fix" (command names all hypothetical) < 1292539720 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: something like that, anyway < 1292539735 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: of course, this only applies to when you try and check out a conflicting revision which ... wait < 1292539738 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :can that ever actually happen with sg? < 1292539749 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, if you explicitly specify a conflicting revision < 1292539755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which would make sense if, say, you wanted to fix the conflict < 1292539767 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how an a revision conflict with itself? < 1292539779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, you specify a patchset < 1292539784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if the set is internally inconsistent, that's a conflict < 1292539793 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why can you checkout multiple patches? shouldn't you only be able to check out one? < 1292539814 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, indeed, but that patch might be a set of patches < 1292539818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which conflict with each other < 1292539824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that's a perfectly sensible thing to want to do < 1292539843 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :people will want to resolve merge conflicts eventually, rather than leave the two version in the repo forever < 1292539861 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, but should you really be able to commit a patch that conflicts? < 1292539869 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just speaking platonically here < 1292539892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to pull a patch that conflicts, certainly < 1292539912 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fair enough < 1292539922 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are a huge number of usecases for that < 1292539930 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then your repo would be inconsistent, but you probably intended that < 1292539932 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, does the joint mine agreement cover the spoils from dungeon crawling? < 1292539933 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then you fix the inconsistency < 1292539988 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Not sure. < 1292540045 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The iron is unambiguously shared, though, so I'll give you half of that. < 1292540465 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :ineiros, can you generate a new map sometime soon? < 1292540721 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm < 1292540735 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: we need so many caches... maybe we can replace sg(1) with one big cache :) < 1292540738 0 :rodgort!unknown@unknown.invalid QUIT :Quit: Coyote finally caught me < 1292540745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1292540750 0 :rodgort!~rodgort@li125-242.members.linode.com JOIN :#esoteric < 1292540776 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I don't get darcs' patch theory < 1292540776 0 :ineiros!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Except one in about an hour. < 1292540781 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: all this commuting patches and stuff < 1292540789 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's never explained why it's really useful or correct at all < 1292540799 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't ever elaborate on why this is a good way to do merging < 1292540810 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: sorear looked into it, and concluded that it was just smoke and mirrors < 1292540823 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292540842 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, tl;dr: "I'm a physicist and can use LaTeX, therefore I've solved merging!"? < 1292540885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1292540898 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (as opposed to you: "I'm a computer scientist and it's fractal, therefore I've solved merging!" :-)) < 1292540916 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I'm not claiming to have solved merging, necessarily; I just came up with the model and noticed it had good merging properties < 1292540929 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I was joking :) < 1292540973 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: FWIW, the model seems sound to me. < 1292541018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed, it's at least fully-specified < 1292541020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it does something < 1292541028 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the only way in which it could malfunction is it not doing what we want < 1292541041 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: indeed < 1292541243 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1292541258 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, the type system of the object store I have in mind is quite queer < 1292541260 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Nifty... Konqi does not fallback from IPv6 to IPv4 at all (and neither it presumably will fallback from one address to another)... < 1292541297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Every object has a type, and every type mandates a certain set of fields. But arbitrary fields can be added to it, and are just ignored by clients that don't support them. < 1292541308 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Couple this with IPv6 routing problems and one is in for some nasty surprises... < 1292541308 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Modelling this in Haskell = OH SO MUCH FUN (pain) < 1292541316 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1292541336 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: Everyone sucks! < 1292541403 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I've been coding this like every object would have its own serialisation procedure, but I think I'm going to rewrite it to only support "string -> arbitrary binary data" maps. < 1292541414 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And then you write procedures to extract the keys you care about into a Haskell value. < 1292541418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(and vice versa) < 1292541498 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: any opinions on --and I know this is horribly implementationy-- the object store file format? < 1292541513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of any obvious features it would need < 1292541521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :other than storing the data, ofc < 1292541531 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I was thinking a B-tree, but I'm not sure how well that would work for a structure that's essentially a big set of (type,hash)=>stuff, with random lookup required on hash. < 1292541534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :give it a version number, so we can subsequently change the format if necessary < 1292541551 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Specifically it shouldn't require too many seeks, or a huge amount of iteration, to get to the stuff belonging to a given hash. < 1292541566 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the obvious storage system is a Perl-style associative array < 1292541573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's not much of a serialisation format, though < 1292541578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1292541646 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1292541688 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1292541706 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm not sure how B-trees let me do a random lookup like this, though, as I'm no filesystems guy... :/ < 1292541709 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Any ideas? :p < 1292541776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the trick with filesystem-style things is to reduce the number of seeks you need < 1292541797 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm far from an expert on that sort of thing either < 1292541810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I hear B-trees are used, but *eh*, serialisation format can wait! < 1292541813 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Who tracks revisions on disk anyway. < 1292541951 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1292542009 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does the server work for you? < 1292542017 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I get null pointer exception all the time no < 1292542018 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :now < 1292542026 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm connected < 1292542026 0 :zzo38!unknown@unknown.invalid QUIT :Quit: Now I will write TeXnicard. < 1292542043 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I had some weird item dupe bug then got disconnected < 1292542057 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I'll wait a few minutes for anything floating around there to get timed out < 1292542061 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :then I'll try again < 1292542080 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if that doesn't work, do you have any way to poke the server? < 1292542121 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Poke? < 1292542146 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has to admit all the spam in the esoforum doesn't look good, even if the noise is visible mainly because the signal is so tiny < 1292542173 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as in, get in contact with ineiros < 1292542181 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nope < 1292542197 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I'm sure ineiros REALLY WANTS TO BE CONTACTABLE 24/7 FOR THIS. < 1292542209 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In fact, Vorpal, maybe you should move in with him and watch him sleep. < 1292542219 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If the server goes down you could just breathe into his face until he wakes up. < 1292542227 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, strawman < 1292542240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sure, you could make an effigy of ineiros while you're there. < 1292542243 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Out of straw. < 1292542244 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: clearly what we need here is some kind of server-dream interface < 1292542258 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait logic turns off when you sleep. never mind. < 1292542267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Maybe we could just rewire ineiros's brain to connect to Minecraft when he sleeps. < 1292542274 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :...hell, *I* would go for that < 1292542360 0 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1292542382 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, any opinions on Unicode support? < 1292542397 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's obviously better than no Unicode support < 1292542400 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I /think/ at least the first paragraph won't have a smaller VCS-relevant unit than the line, so it isn't a big problem there < 1292542417 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so I guess it's just patch descriptions etc., where it's obviously a good thing < 1292542419 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1292542439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd suggest as using lines as the VCS basis to get something working, and switching to pluggable bases later < 1292542441 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I will IRC, homework, and verb nouns at the same time < 1292542448 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, and at the moment, the model of scapegoat we have /will/ mangle any binary file it can if you stuff one in < 1292542450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well, maybe < 1292542452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, with patch descriptions, etc, couldn't you just store them verbatim < 1292542457 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I suppose if \r isn't treated specially, it could be okay < 1292542461 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :certainly won't get small patches though < 1292542517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: http://esolangs.org/wiki/Talk:Tubes#Boxdrawing_symols aaargh painful to read < 1292542530 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: why don't you delete that page, seeing as you're a wiki admin as we all know >:D < 1292542533 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: true < 1292542533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I stayed well out of that, because I couldn't understand what it was about < 1292542569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "I want a charset encoding that has box-drawing chars as single bytes. What is it? (Is it obscure? If so, I'd better not use it.) Here is a C-based demonstration that I have no idea what the hell I'm talking about, and also use Windows. Goodbye!" < 1292542648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think he's talking about IBMgraphics, potentially < 1292542650 0 :ChanServ!unknown@unknown.invalid MODE #esoteric :+o oerjan < 1292542661 0 :oerjan!unknown@unknown.invalid MODE #esoteric :+b *!*Sgeo@*.dyn.optonline.net < 1292542662 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, which == codepage 437 < 1292542667 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: <3 < 1292542681 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(he asked me to do this yesterday if he failed the temptation) < 1292542684 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1292542695 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i like how you waited before pouncing < 1292542708 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i didn't i just was web browsing :D < 1292542727 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but it LOOKED like you did < 1292542729 0 :oerjan!unknown@unknown.invalid MODE #esoteric :-o oerjan < 1292542738 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i think he's crying now, he isn't responding to my /msg :D < 1292542920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : SORRY NO CAN DO < 1292542920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* Sgeo drowns elliott in tears < 1292542927 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you forgot to ban his clog access < 1292542996 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :well, night < 1292543033 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :<@oerjan> (he asked me to do this yesterday if he failed the temptation) <-- what temptation? < 1292543049 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: to not go to bed < 1292543052 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*COUGH* < 1292543068 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: the temptation to irc when he needed to do his homework < 1292543075 0 :Mathnerd314!~mathnerd3@128.198.97.64 JOIN :#esoteric < 1292543076 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, actually I just observed it was night < 1292543077 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, :P < 1292543083 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: should object keys be Unicode? :-D < 1292543089 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, the observation is still accurate < 1292543223 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"Minecraft is a game about placing blocks to build anything you can imagine. At night monsters come out, make sure to build a shelter before that happens." < 1292543228 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Worst sales text ever. < 1292543501 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: are you forgetting Enigma? < 1292543510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :enigma contains different floors ! < 1292543518 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :;d < 1292543518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: dammit, I *did* just forget about that before you reminded me < 1292543528 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :now the general quality of things in my head has decreased significantly < 1292543533 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i want minecraft ;f < 1292543535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :still, you never know, it /could/ help < 1292543547 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if I ever need to cheesy someone to death? < 1292543553 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :also, sorry it, I retract that statement < 1292543559 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, it's bad enough for people to talk about it < 1292543566 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "Downloading of large movie clips is useful, as you will likely review them many times." < 1292543569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :not /that/ one, I sure won't! < 1292543572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nooga: have you seen the Enigma trailer? it's hilarious < 1292543657 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: http://www.youtube.com/watch?v=WV9l26Y-mBk < 1292543675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nooga: (turn up for bad music)