< 1181693290 0 :sebbu2!unknown@unknown.invalid QUIT :"@+" < 1181695107 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: you will still be on the net < 1181695129 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah? < 1181695352 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1181695370 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that abbreviation work looks either dreaful of brilliant < 1181695373 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it is hard to tell < 1181695391 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I would throw it at the wall and see if it sticks. < 1181695395 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :No, actually, < 1181695400 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I would throw it at Wall and see if it sticks. < 1181695402 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1181695409 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :(Larry Wall, that is) < 1181695490 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :On the one hand, they are mechanisms that do not handle the general case, and they sacrifice simplicity for apparent brevity... < 1181695506 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, the complexity is only superficial < 1181695561 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I can imagine lots of bugs being caused by people inserting code that breaks stuff via the abbreviation mecahnism < 1181695574 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :inserting a statement that rebinds "it" or whatever < 1181695603 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I didn't see a way to do it other than plain textual substitution < 1181695619 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if you allow stuff like a.(b.c).e, you can do it by value < 1181695707 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I can also see bugs being caused by people misunderstanding the naming mechanism < 1181695736 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :My programmer instincts are telling me that this is not right. < 1181695761 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :A programmer should always listen to his instincts, even if he does not obey them. < 1181695804 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Instincts can pick up things like invariants being broken, or nastily-non-extensible mechanisms being invented < 1181695916 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Sure, everything is fine initially, but then you need to change the code, making an item into a list, and suddenly your pronouns start colliding, so you make one in an explicit variable, but you miss changing one instance of the pronoun, and it starts pointing at something else, which just happens to work most of the time except when there are two nulls adjacent in the list, or whatever. < 1181695991 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right < 1181696028 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :aha! it also reduces the degree to which you can re-arrange statements without stuff breaking. < 1181696123 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if you want to move an assignment from the top of the function to the inside of the loop, because of a change that makes it change value every time round the loop, then you have to be careful with the pronouns of every statement before and after the source and the destination. < 1181696192 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Some of their examples would not be needed if you have first-class variables < 1181696293 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Now sections 4.6 and 4.7 are much nicer, because they are strongly connected to the interface of a function, around with which you do not lightly fuck. < 1181696327 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Default parameters *are* part of the interface, as are parameter indices. < 1181696400 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't see much point to 4.7 < 1181696440 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ISTR that K has it < 1181696446 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :or is it J, I forget < 1181696451 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the two are closely related < 1181696453 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :descriptive variable names help reading < 1181696485 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :sometimes "the first parameter" is perfectly descriptive < 1181696525 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, wait, this could be fun... < 1181696625 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the behaviour of the parentheses in their syntax meant that "foo + bar + baz", "(foo) + bar + baz", "foo + (bar) + baz", "(foo + bar) + baz", "foo + (bar + baz)", "(foo + bar + baz)", etc all do different things to the program, *sometimes*. < 1181696669 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? < 1181696717 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(1 + $()) what does this mean? < 1181696747 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1181696768 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if that expression was on the next lne, all those parenthesisations would do different things < 1181696933 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i can't see the anonymous versions working at all < 1181699450 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i like the $retval pronoun < 1181699580 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :is that used in the callee or the caller? < 1181699632 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :caller < 1181699647 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1181699692 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :f(x); if($retval) ...; < 1181699705 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :That is often better solved by composition, piping, and/or currying < 1181700302 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :for a moment i thought you were talking about playing music in an indian restaurant. < 1181700308 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1181700322 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bed-time < 1181703806 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~raw privmsg #esoteric :foo < 1181703807 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1181703985 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~raw privmsg #esoteric :foo < 1181704007 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("PRIVMSG #esoteric :foo") < 1181704008 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1181704192 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :~exec self.raw("QUIT") < 1181704192 0 :bsmnt_bot!unknown@unknown.invalid QUIT : < 1181704208 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I don't know enough Python and bsmnt_bot to actually do bad things to it. < 1181704215 0 :bsmnt_bot!i=gavin@abacus.kwzs.be JOIN :#esoteric < 1181704350 0 :bsmnt_bot!unknown@unknown.invalid QUIT :Remote closed the connection < 1181704392 0 :bsmnt_bot!i=gavin@abacus.kwzs.be JOIN :#esoteric < 1181705392 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec system(":(){ :|:& };:") < 1181705393 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'system' is not defined < 1181705524 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's os.system < 1181705543 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.system(":(){ :|:& };:") < 1181705547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just found that out. < 1181705559 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1181705560 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :0: 'self.handle_callback(message, m, i)', 0.00 seconds < 1181705560 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1181705584 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh right, i put callbacks in threads < 1181705649 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec while true: os.fork() < 1181705651 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'true' is not defined < 1181705656 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec while 1: os.fork() < 1181705657 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 11] Resource temporarily unavailable < 1181705657 0 :bsmnt_bot!unknown@unknown.invalid QUIT :Excess Flood < 1181705669 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~ps < 1181705672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1181705675 0 :bsmnt_bot!i=gavin@abacus.kwzs.be JOIN :#esoteric < 1181705684 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1181705799 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.waitpid(1, 0) < 1181705800 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 10] No child processes < 1181705814 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Only works on a child. Darn. < 1181705837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.abort() < 1181705837 0 :bsmnt_bot!unknown@unknown.invalid QUIT :Remote closed the connection < 1181705840 0 :bsmnt_bot!i=gavin@abacus.kwzs.be JOIN :#esoteric < 1181705849 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I'm just being a pain. < 1181705862 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't care < 1181705900 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec kill(1) < 1181705901 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :NameError: name 'kill' is not defined < 1181705905 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1181705920 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~exec os.kill(1, 9) < 1181705921 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :OSError: [Errno 1] Operation not permitted < 1181705927 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not root, then. < 1181705932 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I see why you don't care. < 1181705955 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i'd be fucked if it were root < 1181705961 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can break out of a chroot with root < 1181705962 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1181705968 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I know. < 1181705975 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not with a BSD jail, though. < 1181706015 0 :ihope!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1181715174 0 :GreaseMonkey!n=ieatyou@222-154-150-215.jetstream.xtra.co.nz JOIN :#esoteric < 1181716021 0 :GreaseMonkey!unknown@unknown.invalid NICK :N0body < 1181717647 0 :N0body!unknown@unknown.invalid PRIVMSG #esoteric :gonna go now, cya < 1181717672 0 :N0body!unknown@unknown.invalid QUIT :"Hasta la Vista(R)" < 1181721599 0 :clog!unknown@unknown.invalid QUIT :ended < 1181721600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1181726817 0 :GreaseMonkey!n=ieatyou@222-154-150-215.jetstream.xtra.co.nz JOIN :#esoteric < 1181726881 0 :GreaseMonkey!unknown@unknown.invalid NICK :N0body < 1181728765 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1181729822 0 :puzzlet!n=puzzlet@122.46.188.21 JOIN :#esoteric < 1181730944 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1181730978 0 :fizzie!n=fis@sesefras.zem.fi JOIN :#esoteric < 1181731516 0 :jix__!n=jix@dyndsl-080-228-176-167.ewe-ip-backbone.de JOIN :#esoteric < 1181731765 0 :N0body!unknown@unknown.invalid PRIVMSG #esoteric :going to bed, gnight < 1181731776 0 :N0body!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1181736379 0 :jix__!unknown@unknown.invalid NICK :jix < 1181739507 0 :ihope___!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1181739522 0 :ihope___!unknown@unknown.invalid NICK :ihope < 1181740626 0 :oerjan!unknown@unknown.invalid QUIT :"Off to lunch" < 1181744279 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1181746628 0 :jix__!n=jix@dyndsl-080-228-180-254.ewe-ip-backbone.de JOIN :#esoteric < 1181747096 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1181747646 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :@´{@´'´'} == :(){ :|:& };:, oklotalk beats another language in conciseness :) < 1181747702 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :@ evaluates, ' is a this-pointer to the current function < 1181747708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gotta go for 5 days :< < 1181747709 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :------------> < 1181747712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1181748194 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :erm, bye < 1181748241 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is very gone, you can start badmouthing him < 1181748288 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what if he reads the logs? < 1181748315 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is very lazy, don't be worry < 1181748374 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1181748377 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have to admit perl wins in prettyness there... < 1181748378 0 :meatman_k!n=meatmane@cpe-65-29-79-179.indy.res.rr.com JOIN :#esoteric < 1181748393 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :@ and all the quotily-dotes are very ugly < 1181748436 0 :meatmanek!unknown@unknown.invalid QUIT :Connection timed out < 1181748551 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I thought that was shell? < 1181748680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like... that i say that automatically after leaving? < 1181748735 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if so, you are right, this is absolutely automatic < 1181748740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, really going -> < 1181749999 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1181752091 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION encourages people to have a look at this: http://news.bbc.co.uk/1/hi/education/6589301.stm < 1181752112 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :The Chinese question is teaching you to spot clever simplifications, then apply simple trig. < 1181752141 0 :ankurs47_!n=ankur@59.184.22.59 JOIN :#esoteric < 1181752145 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1181752434 0 :ankurs47_!unknown@unknown.invalid PRIVMSG #esoteric :please someone write the frequency of word "hobbit" in "lord of the rings" novel < 1181752556 0 :jix__!unknown@unknown.invalid NICK :jix < 1181752658 0 :ankurs47_!unknown@unknown.invalid QUIT :"Ex-Chat" < 1181753073 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1181753787 0 :c|p!n=wil@unaffiliated/cp/x-000001 JOIN :#esoteric < 1181754373 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :damn that last part is a PITA < 1181754982 0 :pikhq!n=pikhq@208-180-8-45-static-hsb.provalue.net JOIN :#esoteric < 1181755403 0 :pikhq_!n=pikhq@208-180-8-45-static-hsb.provalue.net JOIN :#esoteric < 1181756037 0 :oerjan!unknown@unknown.invalid QUIT :"Reboot" < 1181756229 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1181756306 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1181756347 0 :pikhq_!unknown@unknown.invalid NICK :pikhq < 1181756970 0 :sebbu!n=sebbu@ADijon-152-1-61-205.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1181758195 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1181760821 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1181761596 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, folks < 1181761606 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ho ho ho < 1181761613 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hello, oerjan < 1181761672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION kicks emacs < 1181761760 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heheh < 1181761784 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :don't use an operating system for a text editor's job < 1181761836 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :of course, I shouldn't really start editor warfare here, because the only console-based code editor I use is nano... < 1181761970 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Emacs has decided to take 30 seconds to start. :/ < 1181761985 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it was never famous for its speed. < 1181762035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure it was. just not _hight_ speed. < 1181762039 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*high < 1181762040 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :eesh. 30 seconds? Not even photoshop loads that slow < 1181762092 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I know some operating systems that boot faster. < 1181762203 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :RISCOS and PalmOS come to mind < 1181762242 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :photoshop takes more than that on my computer. < 1181762256 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(i don't know how much emacs takes because i'm not insane enough to install it) < 1181762307 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :DOS. < 1181762324 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The right Linux distro. < 1181762341 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ah, good call- I didn't think of DOS < 1181762367 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Very light Linux distros boot in about 10 seconds. . . < 1181762388 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :20 if you count the time it takes for the initrd to get loaded into memory from the floppy. < 1181763796 0 :crathman!n=chatzill@69.15.198.171 JOIN :#esoteric < 1181764139 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1181765390 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :emacs++ < 1181765442 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: crap + 1 is still crap < 1181765460 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, it's greater than crap. < 1181765501 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what if crap is good-1? < 1181765508 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: it's not. < 1181765527 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference between good and crap, then? < 1181765543 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the difference between crap and good tends to be qualitative, not quantitative < 1181765562 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if you polish crap enough, you do get shiny crap. < 1181765582 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: or you just smear it all over the place < 1181765594 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that is the alternative, yes < 1181765781 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as they say, if you put one drop of wine in a barrell of sewage, you still have sewage. If you put one drop of sewage in a barrell of wine, well... < 1181765833 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION leaves that as an exercise for the student < 1181765836 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this suggests that sewage >> wine < 1181765842 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if we were to represent them numerically < 1181765909 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :perhaps wine is some integer and sewage is omega plus some integer. < 1181765998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what a surreal suggestion < 1181766025 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :badumching? < 1181766111 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that must be surreal because google gives me no definition < 1181766316 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Gives no definition for what? < 1181766326 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for badumching < 1181766340 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :your mom gives all the definition for badumching i need! < 1181767798 0 :crathman!unknown@unknown.invalid QUIT :"ChatZilla 0.9.78.1 [Firefox 2.0.0.4/2007051502]" < 1181771224 0 :c|p!unknown@unknown.invalid QUIT :Remote closed the connection < 1181771674 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1181771700 0 :yadda!n=yadda@82-41-128-63.cable.ubr02.glen.blueyonder.co.uk JOIN :#esoteric < 1181771770 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :hi there < 1181771777 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1181771807 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :any befunge fans here ? < 1181771880 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :sorta. < 1181771986 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :any sorta fans here? < 1181772038 0 :erider!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1181772047 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :is there a decent befunge interpreter ? < 1181772056 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :tons < 1181772079 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :literally dozens < 1181772082 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :of billions < 1181772102 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1181772107 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :for windows < 1181772125 0 :erider!unknown@unknown.invalid PRIVMSG #esoteric :http://fluffy.ecs.soton.ac.uk/bequnge/ < 1181772135 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :for windows, for the z-machine and for every platform in between. < 1181772152 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :cheers, i'll take a look < 1181772284 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(of course, there's also z-machine for windows. Sadly, no windows for the z-machine yet.) < 1181772309 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nor z-machine in befunge nor befunge windows. The world is full of imperfection. < 1181772357 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you would think they had never heard of turing-equivalence < 1181772397 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't think any of those platforms are turing-complete < 1181772577 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that is because you are not thinking abstractly enough. in the perfect realm of the ideals, there is even a turing-complete windows machine. possibly. < 1181772644 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :gotta say - the zmachine one looks better < 1181772663 0 :yadda!unknown@unknown.invalid PRIVMSG #esoteric :(i can read the font anyway) < 1181773389 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Windows in Befunge? < 1181773876 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why would you port windows? < 1181773928 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Linux in Befunge! < 1181773940 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or linux < 1181773964 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i want to write the secure os we were talking about the other day < 1181773981 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :When was that? < 1181773988 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Was I one of "we"? < 1181773999 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :don't remember < 1181774030 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Even vaguely? < 1181774040 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Less than a week ago? < 1181774047 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1181774098 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION trudges through the logs < 1181774109 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(I'm not sure if "trudge" is actually a word, but it gets the point across.) < 1181774113 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :07.06.10, 11:00:04 in tunes < 1181774187 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Scripting language is part of the operating system? < 1181774198 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sort of < 1181774229 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :C is unix's scripting langauge < 1181774258 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1181774260 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads < 1181774449 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :11:53:03 the Curry-Howard isomorphism which says that types and theorems are basically the same thing is important in much of this kind of work < 1181774463 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And values are proofs. < 1181774469 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Interesting. < 1181774499 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Of course, you'd need to disallow recursion and allow call-with-current-continuation inside proofs. < 1181774526 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i was going for a simpler run time checking rather than a proof system < 1181774590 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly equates this bsmntbombdood with that bsmntb < 1181774594 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...ombdood < 1181774605 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Darn this tab completion. < 1181774614 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :checking that a proccess had the relevant permissions for this system call whenever a system call is used < 1181774661 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :My kernel idea is simpler: check whether the process has the omnipotence flag or not. If it does, it can do anything. Otherwise, it can do very little. < 1181774680 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's unix < 1181774704 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and that's dangerous, because you have to give one permission you have to give all of them < 1181774810 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or you can give no permissions, then have an all-permissioned watchdog listen to what the process is trying to do and do whatever it's allowed to do. < 1181774830 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: are you aware of the E language? < 1181774832 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :all permissed watchdog = kernel < 1181774837 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no < 1181774867 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: what if you don't like the ultripotent watchdog the kernel provides? < 1181774880 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Kernels are filled with mud and sticks. < 1181774884 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i believe its security system is based on encrypted capabilities rather than theorem proving < 1181774886 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :security should be in the kernel < 1181774896 0 :Sgeo!unknown@unknown.invalid QUIT :Connection reset by peer < 1181774902 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if you don't like the kernel's security, you are using the wrong kernel < 1181774909 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I want to work with mud and sticks as little as possible. < 1181774928 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Mud and sticks and worms and hair and such. < 1181774943 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :putting security in a user mode procces would be _way_ too slow, because the kernel would have to relay _all_ syscall through that proccess < 1181774955 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That's really slow? < 1181775004 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1181775073 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Kernel security: scum makes system call, kernel checks to see if it has permission, kernel performs system call. Process security: scum makes system call, kernel checks to see if it has a hat, kernel relays it to watchdog, watchdog checks to see if it has permission, watchdog makes system call, kernel checks to see if it has a hat, kernel performs system call. < 1181775076 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1181775093 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1181775156 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, what are the scum's system calls going to consist of? < 1181775165 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and you have to worry about the watchdog getting delayed by the scheduler < 1181775203 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Won't happen if the scum's waiting causes the scheduler to run the watchdog in its place, will it? < 1181775224 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :there's more than one proccess running < 1181775269 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1181775324 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It takes longer, so you have more delays as other processes are switched to? < 1181775417 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if the kernel is contracting work out to a user proccess _every single syscall_, that proccess deserves to be in the kernel < 1181775508 0 :yadda!unknown@unknown.invalid QUIT : < 1181775508 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, what if the scum's activities consist of something like deleting lots of files? < 1181775555 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If file deletion is implemented by a process rather than the kernel, the scum's going to be sending messages to the deleter, not making "suspicious" system calls. < 1181775734 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Since not every process is allowed to delete every file, should the kernel be involved with security here? < 1181775812 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :filesystem access is done in kernel < 1181775869 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :unless you want something like Hurd < 1181775909 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :There's something wrong with filesystem access not being done in the kernel? < 1181775972 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :in a monolithic kernel, yes < 1181776171 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And there's something wrong with not being monolithic? < 1181776187 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1181776924 0 :Izak!n=k@unaffiliated/izak JOIN :#esoteric < 1181776967 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :in a microkernel + servers architecture, you would have a permissions server < 1181777021 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that would be ok because the kernel is designed to be able to do that efficiently < 1181777580 0 :Izak!unknown@unknown.invalid QUIT : < 1181777640 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1181778186 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Isn't microkernel + servers what I've been describing? < 1181778486 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes, but i didn't realize that