00:00:00 yeah it's pretty obvious 00:00:10 elly: nod 00:00:37 that's why I said 'if it gets too troublesome' as it's definitely a trade off 00:00:37 The answer is that it is a bit difficult to do on the current ircd source, especially since they'd rather not force a whole-network server reboot at this point. They're switching to a complete rewrite of the ircd soonish, and said rewrite does block this attack. 00:01:32 chandler: yeah, I know Freenode is a little creaky, and I don't think a lot of IRC servers are built to have the flexibility to add stuff to handle things like that on the fly easily 00:01:36 Rather than set the channel +R, I think we'd rather have a guardian bot that ejects miscreants who mindlessly mutter multiple messages. 00:01:48 (Sorry, that got away from me there.) 00:02:10 chandler: just don't say it 10 times fast, on IRC :P 00:02:26 Shanker [n=Guest@unaffiliated/shanker] has joined #scheme 00:03:07 there are some reverser type methods you could use to add the functionality, but you would want to test the hell out of that before putting it on public servers 00:03:31 so it would only be appealing if this is a long term problem 00:04:18 Adamant: I've been told that the replacement ircd does in fact have a heuristic to block this, so the problem will go away eventually. (Or rather, this particular *cause* of the problem will go away eventually.) 00:04:19 pogeys4855 [i=c46hkMdx@Doberanala-1-pt.tunnel.tserv9.chi1.ipv6.he.net] has joined #scheme 00:04:26 -!- ChanServ has set mode +o chandler 00:31:58 ccl-logbot [n=ccl-logb@setf.clozure.com] has joined #scheme 00:31:58 00:31:58 -!- names: ccl-logbot MichaelRaskin sstrickl nvoorhies niko kloeri_ happycube JoelMcCracken Daemmerung Mikaeel_Mohamed leppie kilimanjaro bytecolor rmrfchik mathk clog Adamant Obfuscate REPLeffect jmcphers ASau sepult parolang copumpkin bgs100 Arelius SharkBra1n mrsolo RageOfThou saint_cypher jonrafkind Sergio` bweaver reprore gnomon masm rdd mreggen csmrfx leppie|work Zuu tarbo NNshag Fufie TR2N partisan tjafk Checkie tltstc elf borism snorble specbot 00:31:58 -!- names: minion lisppaste emma nullpo jao BD|gone Poeir incubot eno gabot alexsuraci @elly rotty qeb`away ineiros j0ni klutometis zbigniew rapacity peddie tizoc Axioplase_ mbishop C-Keen d3z mornfall Armageddon00 rudybot Khisanth offby1 Terminus ironChicken ecraven yosafbridge roderic pjb @chandler mrd` jyujin_ jay-mccarthy jayne sjamaan nicktastic brx slxix eli kencausey _Jordan_ stepnem felipe mmmulani blackened` Pepe_ dfeuer Mr_Awesome dlouhy mhoye 00:31:58 -!- names: nothingHappens SharkBrain XTL cmatei Leonidas erg tomaw__ duncanm cky sphex xwl_ tabe` Adrinael nutmegmagi z0d Len__ kniu saccade guenthr nowherman nasloc__ jimrees ray joast antoszka ve olejorgenb bzzbzz ski 00:32:08 eqvqzsrldpba [n=erhpio@74.115.1.8] has joined #scheme 00:32:28 wsg [n=tuwhxi@c-98-231-89-140.hsd1.fl.comcast.net] has joined #scheme 00:32:31 -!- wsg [n=tuwhxi@c-98-231-89-140.hsd1.fl.comcast.net] has quit [K-lined] 00:32:59 -!- eqvqzsrldpba [n=erhpio@74.115.1.8] has quit [Connection reset by peer] 00:35:08 hm 00:35:19 there's still a decent amount of bots appearing 00:35:27 we could set +r instead of +R, perhaps 00:35:37 mlmlnxwiq [n=nnweg@pool-98-116-108-80.nycmny.fios.verizon.net] has joined #scheme 00:35:52 -!- mlmlnxwiq [n=nnweg@pool-98-116-108-80.nycmny.fios.verizon.net] has quit [Connection reset by peer] 00:36:14 nqfb [n=sraz@S01060022b0d3b77b.wp.shawcable.net] has joined #scheme 00:36:24 What is +r? 00:36:29 -!- nqfb [n=sraz@S01060022b0d3b77b.wp.shawcable.net] has quit [Connection reset by peer] 00:36:31 only registered users can join 00:36:39 Oh. I'm not bothered by the bots appearing. 00:36:43 alright 00:36:48 Are you? 00:36:50 no 00:36:59 irssi doesn't bother me when people join and part 00:39:50 -!- nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has quit ["Leaving..."] 00:40:42 pzqhksy [n=org@cpe-75-180-44-236.columbus.res.rr.com] has joined #scheme 00:41:41 -!- pzqhksy [n=org@cpe-75-180-44-236.columbus.res.rr.com] has quit [Broken pipe] 00:43:33 kwfnllguw [n=czvzd@ool-45799703.dyn.optonline.net] has joined #scheme 00:44:04 -!- kwfnllguw [n=czvzd@ool-45799703.dyn.optonline.net] has quit [Broken pipe] 00:44:22 cxtxmzqy [n=lirbmodg@pool-96-243-129-250.tampfl.fios.verizon.net] has joined #scheme 00:44:30 -!- cxtxmzqy [n=lirbmodg@pool-96-243-129-250.tampfl.fios.verizon.net] has quit [K-lined] 00:47:24 drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has joined #scheme 00:48:20 Daemmeru` [n=goetter@1133sae.mazama.net] has joined #scheme 00:54:28 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit [Read error: 60 (Operation timed out)] 00:54:33 -!- Daemmeru` [n=goetter@1133sae.mazama.net] has left #scheme 00:54:43 -!- RageOfThou [n=RageOfTh@users-55-167.vinet.ba] has quit [Connection reset by peer] 00:54:52 RageOfThou [n=RageOfTh@users-55-167.vinet.ba] has joined #scheme 00:57:09 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 00:57:12 -!- SharkBra1n [n=gerard@125-239-134-95.jetstream.xtra.co.nz] has quit [Remote closed the connection] 00:58:54 -!- nvoorhies [n=nvoorhie@m208-191.dsl.rawbw.com] has quit [Client Quit] 01:02:08 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 01:03:34 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 01:03:36 elly: So its time to teach rudybot a new trick? 01:03:48 er, not sure? 01:03:56 if offby1 wants to do it, sure 01:04:09 or eli I guess 01:05:57 *offby1* jerks awake 01:06:48 elly: what trick? 01:07:06 chandler talked about it above 01:07:26 basically, automatically quieting spambots 01:07:34 ah, but that assumes I have enough focus to parse scrollback :-| 01:07:38 :P 01:07:59 I can see the channel's been attacked by the bad kind of bot 01:08:27 well, I can't deal with it now anyway; I'm about to lose my connection. 01:08:38 feel free to send email; you can almost certainly figure out my email address 01:09:49 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:10:07 okay! 01:10:29 I'd rather run a separate bot than grant +o to rudybot. 01:10:41 Not that I don't trust rudybot, but I don't trust it. 01:10:57 -!- masm [n=masm@bl10-245-202.dsl.telepac.pt] has quit ["Leaving."] 01:11:09 ahaha 01:12:18 I can hear rudy now, I'm sorry chandler, I'm afraid I can't do that.... 01:15:24 it's really too bad the average bot is dumb as a box of hammers 01:15:43 minion: are you as dumb as a box of hammers? 01:15:50 ... 01:16:06 minion isn't registered. Sigh. 01:16:46 -!- saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 01:19:50 -!- chandler has set mode -R 01:19:59 granting ops to my bot? i don't trust it either 01:20:09 -!- chandler has set mode +R 01:20:25 -!- minion [n=minion@common-lisp.net] has left #scheme 01:23:10 hrm 01:23:22 I'd like a bot that could be interactively modified 01:23:26 scheme could do this 01:23:28 minion [n=minion@common-lisp.net] has joined #scheme 01:23:34 minion: can you talk now? 01:23:45 *Sigh*. 01:24:01 hi do you have the lisp equivalent in scheme of labels? 01:24:25 labels? 01:24:36 mathk: letrec? 01:25:06 minion can't talk because it's "newly registered" and I haven't received the verification mail from Freenode. 01:25:09 -!- chandler has set mode +v minion 01:25:12 minion: does this fix it? 01:25:13 yes 01:25:15 chandler: I think you can exempt them 01:25:16 yeah 01:25:24 minion: I'm happy that you can talk now. 01:25:24 well, i don't think i m happy that you can talk now though 01:25:32 minion: Cheeky bugger. 01:25:33 Would you /please/ stop playing with me? 3 messages in 20 seconds is too many. 01:25:36 ho yeap sure 01:25:41 -!- chandler has set mode +v lisppaste 01:26:03 minion: are you as dumb as a box of hammers? 01:26:17 that appears to be the case :P 01:26:20 Oh, it's ignoring me now. Double bugger. 01:26:27 minion: are you as dumb as a box of hammers? 01:26:29 It's actually too smart for my own good. 01:26:37 it must be ignoring me as well 01:26:39 It goes silent if it thinks it's being played with too much. 01:26:40 minion: help 01:26:41 There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms". 01:26:43 maybe it is jealous that you voiced lisppaste :P 01:26:48 See, it's just the chatbot that's the problem. 01:26:57 -!- mrsolo [n=mrsolo@nat/yahoo/x-nmnmbtxcelxyalgv] has quit [Read error: 60 (Operation timed out)] 01:27:01 no idea 01:27:26 elly: But yes, being able to interactively modify a bot is actually quite nice. 01:27:30 yeah 01:27:36 I think it would be really neat 01:27:41 *elly* ponders how to design such a thing 01:27:42 karme [n=user@HSI-KBW-095-208-171-082.hsi5.kabel-badenwuerttemberg.de] has joined #scheme 01:28:13 elly: Or even just typing commands at the REPL can be useful. 01:28:16 yeah 01:28:19 rudybot can be sorta interactively modified ... if you're me 01:28:24 well, the REPL is what I want by 'interactively modified' 01:28:49 minion has improved his Turing-test performance recently 01:28:54 I was playing around with 'plausible name generation' in another channel and I tried the pattern 01:29:06 poo-bot 01:29:09 the first result was "bioshipmen", which I rather like 01:29:29 offby1: someone is yanking on my strings, and it hurts. 01:30:28 owch 01:32:08 -!- copumpkin [n=copumpki@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 01:37:22 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 01:43:28 -!- mathk [n=mathk@lns-bzn-35-82-250-253-45.adsl.proxad.net] has quit ["..zzZzzZ"] 01:49:44 -!- chandler has set mode -v minion 01:49:47 minion: Can you still talk? 01:49:48 please stop playing with me... i am not a toy 01:49:54 -!- nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Remote closed the connection] 01:50:00 OK, good. 01:51:17 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 01:51:31 -!- saint_cypher [n=saint_cy@adsl-99-2-72-93.dsl.pltn13.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 02:01:37 chandler, elly: if you want then I can easily make my bot do whatever when a nick spits out the same sentence with "http://..." three times in a row. 02:01:48 eli: that would be excellent :) 02:02:19 I'm assuming that you know what it needs to say? 02:02:28 huh? 02:02:34 ngh, bot attacks in a few smaller channels now 02:03:07 What the bot needs to do when this happens. 02:04:02 And BTW, my bot doesn't have a REPL -- but it detects module changes in a handlers directory, and will reload the handlers. IMO, this is even more convenient than a repl -- which is what rudybot has. 02:04:10 that's cute 02:04:14 is the source somewhere around? 02:04:22 if your bot normally stays opped, then all it has to do is +q the user 02:05:07 OK, I'll hack the repetition thing in a few minutes. You'll need to be more explicit -- I'm not fluent enough in IRC to know what "+q the user" means... 02:05:18 ah, okay 02:05:25 send: MODE +q user!*@* 02:05:40 I'll hack the repetition thing first. 02:06:09 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #scheme 02:08:58 -!- Checkie [i=3147@unaffiliated/checkie] has quit [Read error: 110 (Connection timed out)] 02:10:26 -!- rdd [n=user@c83-250-52-182.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 02:14:22 saint_cypher [n=saint_cy@c-24-130-33-243.hsd1.ca.comcast.net] has joined #scheme 02:14:30 foo 02:14:31 foo 02:14:32 foo 02:14:33 foo 02:14:36 http://bleh 02:14:38 http://bleh 02:14:39 http://bleh 02:14:40 eli: You're repeating yourself -- be careful! 02:14:41 http://bleh 02:14:41 *gabot* slaps eli 02:14:42 http://bleh 02:14:43 *gabot* slaps eli hard 02:14:44 http://bleh 02:14:44 *gabot* slaps eli hard 02:14:46 Done. 02:14:57 elly: So? 02:15:19 eli: send MODE #scheme +q user!*@* 02:15:26 then remove it, I dunno, after they quit/leave 02:16:01 -!- karme [n=user@HSI-KBW-095-208-171-082.hsi5.kabel-badenwuerttemberg.de] has left #scheme 02:16:13 THe string should be just that -- "MODE #scheme +q eli!*@*" in the above case? 02:16:43 yep 02:16:51 then get chandler to give it ops as appropriate 02:16:58 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 02:18:09 eli: I don't think a URL should be necessary to trigger the repetition filter; we've had problems with other spambots that weren't handing out URLs. 02:18:36 chandler: OK, that would be easy too. I'll do the mode thing first. 02:18:54 in general, users that are repeating themselves are haters :P 02:19:05 eli: is there a way for ops to remotely turn it on/off? 02:19:12 caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has joined #scheme 02:19:13 eli: OK. Also, the bot should be identified as a registered nick. 02:19:44 chandler: It is. (And it's almost as safe as my nick, since it's running on the same machine.) 02:20:00 elly: I don't know what that question means... 02:20:18 eli: I would like a way to tell it to stop or start enforcing that 02:20:44 OK, just give me a second with the feature requests. 02:20:45 That's a good idea. 02:21:00 eli: Is this the only function gabot has? 02:21:44 chandler: It has a bunch of silly things, and it also logs stuff (which it does only on #plt-scheme, since I'm still using tunes.org otherwise) 02:21:51 gabot: Joke. 02:21:51 eli: Huh? 02:21:54 gabot: joke 02:21:54 *gabot* mumbles something 02:21:56 "Where's my Rolex!!!!!" 02:21:57 *gabot* laughs out loud 02:22:06 Like that. It's mostly a proof of concept thing. 02:22:11 I don't suppose you could remove and turn off the silly bits? 02:22:24 *elly* feels bad having any more than necessary running with privileges 02:22:26 eli: Would it be difficult to split out this one function? 02:23:09 Why? Is there extra danger in having that? 02:23:37 It's not coming up with any text of its own, other than what's in the source files, so there's no way to make it say bad stuff. 02:23:52 Are you confident that none of those silly things can be used to trick it into sending raw commands of an attacker's choice to the server? A number of multi-purpose bots I've seen have had issues with that. 02:24:01 Ah. 02:24:12 chandler: Yes. 02:24:19 gay bot? come now, Shirley there is a better name ;) 02:24:22 Like Robby Drop Tables? 02:24:25 It's wll protected against newlines etc. 02:24:28 I repeat myself when under stress. 02:24:29 I repeat myself when under stress. 02:24:29 I repeat myself when under stress. 02:24:30 Daemmerung: You're repeating yourself -- be careful! 02:24:30 I repeat myself when under stress. 02:24:31 *gabot* slaps Daemmerung 02:24:35 Owwwww 02:24:45 Daemmerung: Pleased to meet you Mr. Belew. 02:25:02 Daemmerung: And with that you tested the change -- it now doesn't require an http:// if the line is more than 10 characters long. 02:25:26 eli: OK, then. The last request is that I'd like it to ask to be opped when it needs to, and drop the +o bit when it's done, just to avoid being an attractive nuisance. 02:25:33 I try not to keep +o for the same reason. 02:26:08 -!- chandler has set mode -o chandler 02:26:42 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnlwknd 02:26:44 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnlwknd 02:26:45 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnlwknd 02:26:46 eli: You're repeating yourself -- be careful! 02:26:49 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:26:51 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:26:52 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:26:54 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:26:54 eli: You're repeating yourself -- be careful! 02:26:59 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:26:59 *gabot* slaps eli 02:27:02 wkndwldnlwkdnlwkndlwkndlwkdnlwkdnl 02:27:02 eli: MODE #scheme +q eli!*@* 02:27:14 OK, it's saying that now. 02:27:34 Did you mean to do that for debugging purposes? 02:27:38 chandler: That involves some interaction with chanserv and waiting for its replies? 02:27:54 (Yes, I made it say the line so I won't forget it.) 02:28:14 Yes. It'd need to use the CS command to request ops like so: CS OP #scheme 02:28:23 When the mode is set on the bot, it needs to use it. 02:28:48 -!- drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has quit [Success] 02:29:07 Hmm... This will require a little more work. 02:29:25 *eli* thinks 02:29:28 Gosh, this is just the kind of thing that Scheme is *good* at. 02:29:54 Well, I'm sure that you know about planning ahead for this kind of stuff... 02:30:08 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [Read error: 60 (Operation timed out)] 02:30:15 Or rather not planning ahead for some kind of an asynchronous interaction. 02:31:50 rudybot: tell minion to change gabot's nick to scherly 02:31:50 bytecolor: eh? Try "rudybot: help". 02:32:00 heh 02:32:00 I know about getting stuck because I didn't plan for it and I didn't have call/cc to help get me out of the bind... 02:32:49 so, I think this will not be a problem in terms of #scheme, but maybe a broader solution 02:32:56 (`call/cc' won't help here.) 02:33:01 but even three repetitions is a bit much 02:33:06 (at least not with my code.) 02:33:13 if you're trying to prevent link spread. 02:34:00 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 02:34:54 I suppose you don't even need call/cc if you're willing to write it as (call-with-ops (lambda () #| stuff to set the +q mode here |# )) 02:36:03 chandler: my bot is mostly synchronous -- no forking of a thread for each utterance. 02:36:06 I wish I had seen all this stuff earlier 02:36:19 eli: I'm not seeing the problem. 02:36:49 chandler: It can't just wait for the chanserv reply, since it needs to listen to the usual chatter too. 02:37:00 All you need to do is to stick the thunk passed to `call-with-ops' on a pending list. When you process a MODE event that includes +o on your current nick, execute any thunks in that list, then drop +o. 02:37:13 After some time passes and you don't get +o, drop things off the thunk list. 02:37:25 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 02:38:04 call/cc helps by allowing you to "wait" while still processing other events, but it's not a significant help in this one case. 02:39:29 We use threads for that, but while it's waiting it needs to somehow circumvent the usual handler stack when these messages arrive. 02:40:16 I'm not understanding what needs to be circumvented at all. 02:42:03 copumpkin [n=copumpki@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 02:42:26 There's the code that deals with incoming text, and it needs to listen to a specific reply from chanserv and if it gets that, it needs to act on it, and not hand it over to the usual handlers. 02:42:39 But this is probably getting to be specific to the way I made it. 02:44:13 It's not a reply from ChanServ you're looking for, but a MODE message with +o on your nick. 02:44:38 -!- ChanServ has set mode +o chandler 02:44:59 ChanServ doesn't send a PRIVMSG or NOTICE to me at all when this happens. 02:45:07 OK, but still it all goes into the same place. 02:45:15 *eli* will brb, baby maintenance 02:46:48 If I could see the code, I could probably understand better the issue. 02:47:15 eli: You now have the ability to +o yourself in #scheme, if you want to test the commands. 02:53:28 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 02:53:31 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [Client Quit] 02:58:13 -!- kniu [n=kniu@HOHOHO.RES.CMU.EDU] has quit [Remote closed the connection] 03:03:07 kniu [n=kniu@CMU-311358.WV.CC.CMU.EDU] has joined #scheme 03:08:54 sepult` [n=levgue@xdsl-87-78-102-251.netcologne.de] has joined #scheme 03:15:24 chandler: I'll post the revised version at some point (there's an old version at tmp.barzilay.org/elibot.tgz). The main problem is that I didn't make it respond to mode changes etc -- I don't know enough to make it deal with these... 03:15:25 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 03:17:10 Apologies for the question completely off-topic, but does anyone here know how to instruct Mac OS X never to automatically mount external file systems writably? 03:18:35 -!- bytecolor [n=user@32.152.75.40] has left #scheme 03:19:08 http://foo 03:19:09 http://foo 03:19:10 http://foo 03:19:10 eli: You're repeating yourself -- be careful! 03:19:11 http://foo 03:19:11 *gabot* slaps eli 03:19:13 http://foo 03:19:48 eli: gabot is also now able to op itself. Be careful in your testing. 03:20:03 chandler: Ah, I was about to tell you about that. 03:20:14 Riastradh: This would probably be a good question for #opendarwin, if you can wrangle a useful answer out of the lazy and disaffected inhabitants of that channel. 03:20:15 Is there any way to register a channel quickly? 03:20:30 I think it only takes one command to register it. 03:20:40 chandler, that's what I dimly recalled, although I thought that #opendarwin had probably evaporated by now. 03:20:43 Ugh, chanserv fun again. 03:21:00 eli, do you need a channel to be registered with ChanServ, or do you need it merely to exist? 03:21:06 If you need it merely to exist, just join it. 03:21:27 Riastradh: He's trying to get gabot to request ops from ChanServ when it needs it, so it needs to be registered. 03:21:35 I see. 03:21:40 Riastradh: I need it to be registered, so I can test the bot thing without spewing messages here that would be almost as bad as the spam. 03:21:52 eli: join #gabot 03:21:52 *gabot* glances around nervously 03:21:57 Has there been a problem with spam lately? 03:22:10 Yes, a severe problem. 03:22:10 Yes, earlier today. 03:22:15 I see. 03:22:24 chandler: Using `#gabot' would be too confusing... 03:23:03 eli: For testing? OK. Pick another name. 03:23:10 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit [Client Quit] 03:23:41 chandler: I have one, but getting it registered is fun (I need to be an op, etc etc) 03:23:50 Riastradh: Try adding rdonly to the AUTOMOUNTD_MNTOPTS option in /etc/autofs.conf ? (untested) 03:24:13 -!- sepult [n=levgue@xdsl-87-78-29-182.netcologne.de] has quit [No route to host] 03:24:13 eli: This is just a temporary testing thing, right? 03:24:24 That's what I get from chasing the man pages, anyhow. 03:24:24 Yes. 03:24:24 eli: You can register a temporary channel and then drop the registration when you're done. 03:24:30 That's why I suggested #gabot. 03:24:31 *gabot* pretends to be busy with ... stuff 03:24:40 OK; that's a bit annoying. 03:24:58 annodomini, is that related to all file systems, or only to networked ones? I got the impression that the automount daemon has to do only with networked file systems such as NFS. 03:25:27 Oh, maybe. 03:25:45 Riastradh: #opendarwin hasn't evaporated, but it has grown steadily more surly over time. 03:26:26 chandler: that was triggered when using its name last in a sentence, should be disabled now. gabot 03:26:31 Worked. 03:26:39 chandler, are they likely to take kindly to my notion that I don't want Mac OS X to automatically mount any external file systems writably, or are they too surly for that? 03:27:17 They're surly enough that they're probably not likely to take kindly to any notions of anything. Though at this point I think most of the regulars are off observing Beer O'Clock by now anyway. 03:29:21 xwl [n=user@125.34.171.81] has joined #scheme 03:29:58 -!- xwl [n=user@125.34.171.81] has quit [Client Quit] 03:30:10 xwl [n=user@125.34.171.81] has joined #scheme 03:32:03 Riastradh: do you want to forbid a particular one, or any one 03:32:33 Checkie [i=5894@unaffiliated/checkie] has joined #scheme 03:34:57 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 03:37:40 so, I've never really looked at a lot of the disk management stuff on OS X, but this might be useful 03:37:47 http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man8/diskarbitrationd.8.html#//apple_ref/doc/man/8/diskarbitrationd 03:37:49 -rudybot:#scheme- http://tinyurl.com/yjnzt9r 03:38:18 it looks like there is a plist that controls a lot of stuff for that daemon 03:39:21 Yes, such as (1) whether it is enabled, (2) what it is called, and (3) what its pathname is. 03:40:23 uman [n=uman@unaffiliated/uman] has joined #scheme 03:40:39 brinkman [n=brinkman@cpe-74-68-108-87.nyc.res.rr.com] has joined #scheme 03:41:00 -!- JoelMcCracken [n=joelmccr@pool-96-236-180-142.pitbpa.east.verizon.net] has quit ["This computer has gone to sleep"] 03:41:12 the plist is at the bottom of the manpage unless you mean something else 03:41:38 Yes, I know. I was telling you what is in the plist that the man page mentions. 03:41:47 ah 03:41:48 sorry 03:42:05 so yeah, that's not helpful, sorry 03:42:46 there are some particular Mac fora that are watched by Apple devs, I can ask a friend which ones 03:43:42 I assume banning specific devices does not work, because fstab can kinda/sorta do that 03:44:35 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:45:09 What I want is exactly the opposite of banning specific devices. 03:45:36 well, ban/mount ro 03:45:52 but you want everything mounted ro, no exceptions 03:45:56 alright 03:46:57 It wouldn't bother me if there were exceptions that Mac OS X automatically mounted writably; what I want is for its general rule not to be to mount them writably. 03:47:13 alright. 03:49:50 eliyahooo [n=eli@c-24-61-14-53.hsd1.ma.comcast.net] has joined #scheme 03:50:43 chandler: OK, it does the op/deop thing now. 03:51:17 -!- eliyahooo [n=eli@c-24-61-14-53.hsd1.ma.comcast.net] has left #scheme 03:52:49 tjaway [n=timj@e176199229.adsl.alicedsl.de] has joined #scheme 03:53:03 eliyahoo [n=eli@c-24-61-14-53.hsd1.ma.comcast.net] has joined #scheme 03:53:14 http://foo 03:53:14 -!- clog [n=nef@bespin.org] has quit [Excess Flood] 03:53:16 http://foo 03:53:18 http://foo 03:53:18 eliyahoo: You're repeating yourself -- be careful! 03:53:20 http://foo 03:53:20 *gabot* slaps eliyahoo 03:53:21 http://foo 03:53:21 -!- ChanServ has set mode +o gabot 03:53:22 -!- gabot has set mode +b %eliyahoo!*@* 03:53:22 -!- ChanServ has set mode -o gabot 03:53:30 clog [n=nef@bespin.org] has joined #scheme 03:53:38 -!- eliyahoo [n=eli@c-24-61-14-53.hsd1.ma.comcast.net] has quit [Remote closed the connection] 03:53:50 Great success. 03:53:59 -!- chandler has set mode -b %eliyahoo!*@* 03:54:21 chandler` [n=n@opendarwin/developer/chandler] has joined #scheme 03:54:24 test 03:54:27 test 03:54:29 test 03:54:32 test 03:54:34 test 03:54:37 test 03:54:39 test 03:54:43 chandler`: either a url or longer than 10 chars. 03:55:01 Is there a reason for that restriction even? 03:55:08 this is longer than 10 characters 03:55:10 this is longer than 10 characters 03:55:12 this is longer than 10 characters 03:55:13 chandler`: You're repeating yourself -- be careful! 03:55:14 this is longer than 10 characters 03:55:15 *gabot* slaps chandler` 03:55:17 this is longer than 10 characters 03:55:17 Riastradh: turning off automounting and using entries in fstab looks easy enough, but is not really what you want either. 03:55:17 -!- ChanServ has set mode +o gabot 03:55:18 -!- gabot has set mode +b %chandler`!*@* 03:55:18 -!- ChanServ has set mode -o gabot 03:55:26 -!- chandler has set mode -b %chandler`!*@* 03:55:50 I don't know. Seems safer. You can't spam much without a url and with less than that... 03:56:48 chandler: As for whatever you did (the thing that shows as "-b") -- is it necessary? 03:57:17 Oh, I'm just clearing it out so I can test it again as chandler`. 03:57:21 Otherwise, I wouldn't be able to speak. 03:57:29 -!- stepnem [n=stepnem@88.103.132.186] has quit [K-lined] 03:57:29 OK. 03:57:30 -!- Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has quit [K-lined] 03:57:56 I just thought that there might be some limit on the number of quiets. 03:58:04 There is, actually. 03:58:20 Riastradh: external drive lockout is apparently possible on Server but not what you want either. 03:58:55 chandler: I can make it send out an email when that happens. Doing it automatically when the nick leaves would be more difficult. 03:59:11 Riastradh: Ah, and now you've seen how Apple Core OS engineers respond to entirely reasonable questions. 04:00:00 Adamant, I'm giving up on this. If I want to conduct forensics, I'll use another operating system; for now, I'll try to work around the problem at hand by replacing an ailing disk and dedicating its replacement to Time Machine backups, rather than splitting it into multiple partitions of which only one is used for Time Machine. 04:00:49 chandler: ? 04:01:01 another channel? 04:01:05 Yes. 04:01:08 alright 04:01:19 (What happened was that I connected an external USB disk that was partitioned thus, Mac OS X mounted all partitions writably, something broke, I reconnected it, and then Mac OS X spent twenty minutes fscking -- until something broke again, during the fsck...) 04:01:31 ah 04:01:59 Time Machine is, to put it mildly, wacky. 04:05:22 Well, Time Machine is a separate issue. Its involvement in this rumpus is coincidental. 04:06:11 Riastradh: probably, but if the ailing drive had a Time Machine partition that could somehow be involved. 04:06:37 hiyuh [n=hiyuh@157.82.72.92] has joined #scheme 04:07:43 unless you mean "a USB cable/connection" broke 04:07:53 or Firewire or etc. 04:08:22 -!- tjafk [n=timj@e176211136.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:08:46 alright, probably annoyed you enough while trying to help. sorry this happened and good luck on getting stuff fixed. 04:08:50 I don't know what broke. (It is a USB cable, yes; and it is a cheap USB hard disk enclosure. Some day, perhaps I'll get around to obtaining a better FireWire enclosure.) Mac OS X reported that the external disk had been removed unexpectedly. 04:08:56 -!- RageOfThou [n=RageOfTh@users-55-167.vinet.ba] has quit [Read error: 113 (No route to host)] 04:08:59 ah 04:09:01 No, you didn't annoy me. 04:09:32 (The #opendarwin folks are stiff competition!) 04:10:01 Riastradh: I was having trouble remembering how much of a Unixhead you were because I thought you started out on Lisp Machines, so I wasn't sure if I was just pointing out obvious stuff you already knew 04:10:14 foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has joined #scheme 04:10:54 *elly* annoys Riastradh 04:11:06 *copumpkin* annoys elly 04:11:08 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-241-175.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 04:11:33 *elly* waits for Riastradh to annoy copumpkin! 04:11:43 *Riastradh* yodels copumpkin's cat. 04:11:55 :O 04:12:34 my cat is pumpkin's opposite cat 04:12:53 can you coyodel his? 04:13:05 Riastradh: I got to the point of wondering whether d-a-d was in Obj-C so you could modify it's behavior relatively easily, which is pretty much overkill and not sustainable. 04:14:23 Adamant, yes, well, the folks in #opendarwin had gotten to suggesting (1) overriding the mount(2) system call in diskarbitrationd with a dynamic library hack, and (2) writing a kext to hack IOKit's data structures to treat removable media as nonwritable. 04:14:32 lol 04:14:51 yeah that's kicking it up a notch 04:15:15 Which is actually shockingly helpful. 04:15:27 well it would work 04:15:42 but it would be some work, especially maintenance 04:15:46 Now, I'm sure that would work, and it probably wouldn't take all that long (maybe a weekend, since I'm not especially familiar with Mac OS X internals), but still. 04:15:51 Usually I just get told that I'm doing it wrong, and if I persist I'm told that I'm too stupid to understand why things are the way they are. 04:16:23 Riastradh: the first would probably not be that awful, for the second, you would probably have to spend some time with IOKit 04:16:49 it's a bit hard to pick up. 04:19:53 Anyway, perhaps some day I'll also once again have something relevant to say in #scheme. 04:20:14 :P 04:20:35 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 04:21:11 What's going on with the committees^Wworking groups? 04:21:40 There was a meeting on the 12th, I believe. 04:22:08 I know there was some sort of deadline earlier this month which whooshed by. 04:37:05 JoelMcCracken [n=joelmccr@pool-96-236-180-142.pitbpa.east.verizon.net] has joined #scheme 04:42:58 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [Read error: 60 (Operation timed out)] 04:43:29 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 04:43:49 -!- sepult` [n=levgue@xdsl-87-78-102-251.netcologne.de] has quit [Remote closed the connection] 04:47:00 I don't suppose there's a builtin symbol-append, is there? 04:47:08 my macros look sort of ugly without it... 04:47:36 There isn't. What's the problem you're really trying to solve here, that entails using macros that concatenate symbols? 04:48:18 actually, doing that isn't necessary 04:48:28 I'm working on my parser combinator library: http://l.leptoquark.net/~elly/parser.scm 04:48:49 I am adding a macro define-combinator to remove some of the repetiveness of seq, seq-bind, and alt 04:50:09 SharkBra1n [n=gerard@118-93-238-71.dsl.dyn.ihug.co.nz] has joined #scheme 04:50:19 *caoliver* is annoyed. Google video has "shaped" my download of a Gerry Sussman talk to 72KB/sec. 04:50:51 Obviously, caoliver, you are illegally downloading a movie! 04:50:57 Or is it `downloading an illegal movie'? 04:51:17 Gerry's talk on the legacy of CS. 04:51:30 Wonder what he'd think of it. 04:51:44 caoliver: Google is doing the shaping? 04:51:47 elly, how does that entail concatenating symbols? 04:52:27 Well someone if my path. 04:52:31 s/if/in/ 04:52:47 Riastradh: it doesn't; I wanted to have the combinator macro expand into parse-, but I decided the parse- prefix is silly 04:53:53 Personally, I like the define-record some Schemes provide which expands into define-record-type but saves a _lot_ of typing. 04:54:30 Of course, I have an Emacs macro that performs the expansion automatically :) 04:57:40 can someone give me an example of how to use match-lambda? 04:57:45 I feel like it would be _very_ useful here 04:57:57 ((match-lambda (x x)) (match-lambda (x x))) 04:58:04 ...er, I mean: 04:58:08 ((match-lambda (x (x x))) (match-lambda (x (x x)))) 04:58:48 Riastradh: how would I write a match-lambda that takes a list of three elements and returns the second element? 04:59:14 ((match-lambda ((a b c) b)) (list 1 2 3)) 04:59:55 No, foof, that's how you write 2, not how you write what elly asked. 05:00:14 plt does not believe in: (match-lambda ((a b c) b)) 05:00:15 elly: The answer is the car of that expression. 05:00:44 And PLT uses a different match syntax. 05:00:47 oh, I see 05:01:13 In PLT you want (match-lambda ((list a b c) b)) 05:01:56 aha! 05:04:42 hrm 05:04:50 I should be using fold and andmap here 05:06:48 rudybot: eval ((match-lambda [(list _ x _) x]) (list 1 2 3)) 05:06:51 eli: error: with-limit: out of time 05:07:00 *eli* slaps rudybot 05:09:12 Wow, small world. I just saw an SO post from a user called Brian Campbell who claims to be related to Riastradh. 05:09:42 http://stackoverflow.com/questions/2090755 05:10:07 omg 05:15:38 jonrafkind [n=jon@97-126-171-138.slkc.qwest.net] has joined #scheme 05:22:44 -!- foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has quit [Remote closed the connection] 05:24:22 foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has joined #scheme 05:38:27 -!- parolang [n=user@8e4a01246100775874c4f448e9887093.oregonrd-wifi-1261.amplex.net] has quit [Remote closed the connection] 05:43:11 bytecolor [n=user@32.152.120.170] has joined #scheme 05:45:54 (positive -1) 06:16:53 jengle [n=jengle@69.0.54.57] has joined #scheme 06:22:43 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 06:25:05 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 06:26:37 Mikaeel_Mohamed [n=Mohamdu@129-97-241-175.uwaterloo.ca] has joined #scheme 06:29:42 -!- SharkBra1n [n=gerard@118-93-238-71.dsl.dyn.ihug.co.nz] has quit [Read error: 113 (No route to host)] 06:30:16 SharkBra2n [n=gerard@118-93-238-71.dsl.dyn.ihug.co.nz] has joined #scheme 06:32:46 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 60 (Operation timed out)] 06:36:55 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 06:37:23 -!- foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has quit [Remote closed the connection] 06:38:25 -!- jengle [n=jengle@69.0.54.57] has quit ["Leaving"] 06:41:28 -!- Riastradh [n=riastrad@tissot.csail.mit.edu] has quit ["leaving"] 06:44:49 nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has joined #scheme 06:58:13 -!- kniu [n=kniu@CMU-311358.WV.CC.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 07:03:09 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 07:14:13 -!- caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has left #scheme 07:16:54 bokr [n=eduska@95.154.102.124] has joined #scheme 07:18:00 -!- bokr [n=eduska@95.154.102.124] has quit [Client Quit] 07:18:13 bokr [n=eduska@95.154.102.124] has joined #scheme 07:44:47 foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has joined #scheme 07:49:47 -!- NNshag [n=shag@lns-bzn-35-82-250-229-252.adsl.proxad.net] has quit [Read error: 60 (Operation timed out)] 07:53:40 mathk [n=mathk@lns-bzn-55-82-255-182-81.adsl.proxad.net] has joined #scheme 08:03:08 kniu [n=kniu@HOHOHO.RES.CMU.EDU] has joined #scheme 08:03:25 NNshag [n=shag@lns-bzn-60-82-254-220-198.adsl.proxad.net] has joined #scheme 08:09:38 -!- kniu [n=kniu@HOHOHO.RES.CMU.EDU] has quit ["Leaving"] 08:09:55 kniu [n=kniu@HOHOHO.RES.CMU.EDU] has joined #scheme 08:54:16 -!- JoelMcCracken [n=joelmccr@pool-96-236-180-142.pitbpa.east.verizon.net] has quit ["This computer has gone to sleep"] 08:56:55 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-241-175.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 09:22:09 -!- brinkman [n=brinkman@cpe-74-68-108-87.nyc.res.rr.com] has quit [Client Quit] 09:27:17 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 09:28:32 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 09:29:10 nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has joined #scheme 09:41:31 Edico [n=Edico@unaffiliated/edico] has joined #scheme 09:46:45 Sveklo [n=sveklo@unaffiliated/sveklo] has joined #scheme 09:50:01 choas [n=lars@p5B0DBA40.dip.t-dialin.net] has joined #scheme 10:09:17 -!- SharkBra2n [n=gerard@118-93-238-71.dsl.dyn.ihug.co.nz] has quit [Client Quit] 10:10:03 -!- jmcphers [n=jmcphers@218.185.108.156] has quit [Remote closed the connection] 10:11:42 -!- pjb [n=t@64.Red-79-149-158.staticIP.rima-tde.net] has quit [Remote closed the connection] 10:18:44 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 10:38:45 mario-goulart [n=user@67.205.85.241] has joined #scheme 10:45:29 -!- Sveklo [n=sveklo@unaffiliated/sveklo] has quit [Read error: 104 (Connection reset by peer)] 10:45:31 Sveklo_ [n=sveklo@unaffiliated/sveklo] has joined #scheme 10:47:24 -!- hiyuh [n=hiyuh@157.82.72.92] has quit ["|_ e /\ \/ i |/| G"] 10:52:31 -!- Sveklo_ [n=sveklo@unaffiliated/sveklo] has quit ["Leaving..."] 11:09:52 -!- mario-goulart [n=user@67.205.85.241] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 11:32:11 Belaf [n=campedel@net-93-144-10-196.t2.dsl.vodafone.it] has joined #scheme 11:43:02 -!- kilimanjaro [n=kilimanj@unaffiliated/kilimanjaro] has quit ["Leaving"] 11:49:33 -!- bokr [n=eduska@95.154.102.124] has quit ["Ex-Chat"] 11:51:07 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 11:54:57 they're dead Jim 11:55:00 Foofie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 11:57:07 is it just me or is the best code always written after midnite? 12:00:49 I think the best code tends to be written when it's quiet and the only distractions you have are the ones you want. 12:00:58 which is often midnight :P 12:01:03 or later :P 12:01:50 nod, no dogs, kids, horns, mowers, etc. 12:07:41 or other coders you can't keep at arms length, or meetings, or bosses. 12:08:25 heh, I wouldn't know anything about that. I'm just a fan of code 12:09:01 did they get gabot working? 12:09:51 bytecolor: you'll hit #1 if you ever code anything with friends 12:10:40 you'll probably hit the trifecta in most work environments 12:10:40 I've worked on a few small projects over the net with some people in the past, nothing major 12:11:35 bytecolor: coordinating stuff is hard even if everyone likes each other a lot and mostly agrees on stuff 12:11:56 or at least that's been my experience 12:12:38 heh, nod, I've had write acces to a couple of trees on sourceforge. Don't think I ever screwed anything up too bad ;) 12:12:51 probably not :P 12:12:54 hopefully not :P 12:13:02 -!- Fufie [n=innocent@86.80-203-225.nextgentel.com] has quit [Read error: 110 (Connection timed out)] 12:13:50 I've got a project I wrote 3 years ago on sourceforge, but the Tk/Opengl libs broke and I gave up on it 12:14:07 Python! 12:15:54 bytecolor: sometimes you're trying to get stuff done on something, and your friend is working on it too, and you can't stay in 'Away' mode forever, and you can't just block them due to rudeness, but you're talking too much unrelated stuff or trying to talk about the project too much 12:16:14 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #scheme 12:16:17 so that's kind of the arms length problem :P 12:16:24 ah 12:17:07 -!- ASau [n=user@83.69.227.32] has quit [Read error: 54 (Connection reset by peer)] 12:18:20 -!- foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has quit [Remote closed the connection] 12:18:23 foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has joined #scheme 12:18:50 does this have a `name' (define (foo) (lamba (cmd . args) (case cmd ((this) (do-this)) ((that) (do-that))))) 12:19:09 I find my self using that well not a lot but quite a bit 12:19:55 (define f (foo)) (f 'this) (f 'that) 12:33:55 sloyd [i=sloyd@station457.vo3.net] has joined #scheme 12:35:31 ASau [n=user@83.69.227.32] has joined #scheme 12:39:33 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:41:18 bytecolor: what, some kind of dispatch table? 12:41:21 did you ever read SICP? 12:42:34 it's sometimes referred to as "data-directed programming", if i catch your drift; http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-17.html#%_idx_2430 12:43:27 masm [n=masm@bl10-6-252.dsl.telepac.pt] has joined #scheme 12:46:07 klutometis: a little of sicp 12:51:08 nod, the very last section 'Message passing' that's basically what I'm doing. That may very well be where I got it from ;) I guess I'm so used to C++ an Python I lean toward `objects' with some flavor of methods an state 12:51:30 I dont want to get into object systems in scheme though 12:53:11 CLOS is one of the finest object systems ever made 12:53:15 I'd rather learn more functional style programming 12:54:02 that's what I find most interesting about lisp/scheme, you can write just about anything with it eh? 12:54:12 Unbeatable flavors! 12:54:12 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 12:54:21 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:54:50 heh, I'm writing this parser and just making shit up as I go along ;) 12:59:32 All work and no play makes Jack an ax wielding maniac 12:59:32 12:59:32 All work and no play makes Jack an ax wielding maniac 12:59:32 All work and no play makes Jack an ax wielding maniac 12:59:33 bytecolor: You're repeating yourself -- be careful! 12:59:33 All work and no play makes Jack an ax wielding maniac 12:59:33 *gabot* slaps bytecolor 12:59:45 ah, gabot is on the job! 13:15:33 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 13:18:56 a-s [n=user@nat-240.ro.66.com] has joined #scheme 13:43:56 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 13:45:38 davazp [n=user@56.Red-79-152-90.dynamicIP.rima-tde.net] has joined #scheme 13:49:39 -!- nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has quit ["Leaving..."] 13:50:22 mathk_ [n=mathk@lns-bzn-24-82-64-166-91.adsl.proxad.net] has joined #scheme 13:59:14 -!- mathk [n=mathk@lns-bzn-55-82-255-182-81.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 13:59:14 -!- mathk_ is now known as mathk 14:09:37 Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has joined #scheme 14:17:09 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 14:17:43 yosafbri` [n=yosafbri@adsl-71-142-234-156.dsl.scrm01.pacbell.net] has joined #scheme 14:18:07 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 14:19:14 -!- yosafbridge [n=yosafbri@adsl-71-142-227-255.dsl.scrm01.pacbell.net] has quit [Read error: 60 (Operation timed out)] 14:20:24 -!- yosafbri` [n=yosafbri@adsl-71-142-234-156.dsl.scrm01.pacbell.net] has quit [Client Quit] 14:21:04 yosafbridge [n=yosafbri@adsl-71-142-234-156.dsl.scrm01.pacbell.net] has joined #scheme 14:23:20 -!- j0ni [n=joni@192.219.30.200] has quit [Read error: 110 (Connection timed out)] 14:34:17 -!- bytecolor [n=user@32.152.120.170] has quit [Read error: 110 (Connection timed out)] 14:35:13 hotblack23 [n=jh@p4FC5BC9B.dip.t-dialin.net] has joined #scheme 14:37:30 -!- jonrafkind [n=jon@97-126-171-138.slkc.qwest.net] has quit [Read error: 110 (Connection timed out)] 14:39:12 mickn [n=mickn@69-165-151-81.dsl.teksavvy.com] has joined #scheme 14:47:44 -!- nutmegmagi [n=swalters@pool-71-101-160-3.tampfl.dsl-w.verizon.net] has quit [Client Quit] 14:49:44 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 14:49:56 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 14:49:56 -!- foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has quit [Remote closed the connection] 14:49:59 foof [n=user@FL1-125-199-31-117.osk.mesh.ad.jp] has joined #scheme 14:50:12 Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #scheme 14:53:00 nutmegmagi [n=swalters@pool-71-101-160-3.tampfl.dsl-w.verizon.net] has joined #scheme 15:02:39 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 15:05:48 swathanthran [n=user@unaffiliated/shyam-k/x-8459115] has joined #scheme 15:07:21 -!- Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 15:11:45 Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has joined #scheme 15:14:02 j0ni [n=joni@192.219.30.200] has joined #scheme 15:19:32 -!- Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 15:21:38 -!- davazp [n=user@56.Red-79-152-90.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 15:24:12 Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has joined #scheme 15:25:17 -!- leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has quit [] 15:29:41 Da SS? 15:33:06 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:35:18 -!- nutmegmagi [n=swalters@pool-71-101-160-3.tampfl.dsl-w.verizon.net] has left #scheme 15:50:12 leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has joined #scheme 15:53:02 mario-goulart [n=user@67.205.85.241] has joined #scheme 16:00:24 -!- Foofie [n=innocent@86.80-203-225.nextgentel.com] has left #scheme 16:08:23 stepnem [n=stepnem@88.103.132.186] has joined #scheme 16:18:12 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 16:22:28 lvh [n=lvh@83.101.50.95] has joined #scheme 16:37:32 foof: are you listening? 16:38:20 -!- leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has quit [] 16:38:32 *foof* pulls his fingers out of his ears 16:38:33 What? 16:41:11 Oh, I didn't say it, yet :) 16:41:31 I had a chance to try your fixes to chibi ffi, thanks. 16:41:55 I think I've got a problem with the constructor, though... 16:42:20 I can have either segfaults or lockups by using it. 16:43:15 A little time ago you suggested trying a compile option to check whether the problem was with the GC, could you tell me again? 16:43:35 Oh, actually I know what the problem is. 16:43:52 Oh, good, then there's no point I try to find out :) 16:44:19 The option you want is SEXP_USE_DEBUG_GC=1, but let me make one change. 16:44:30 Are you going to fix the problem? 16:44:37 leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has joined #scheme 16:44:39 yes, 1 minute... 16:44:43 ok, thanks 16:46:04 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 16:46:39 Try the latest dev. 16:46:51 -!- xwl [n=user@125.34.171.81] has quit [Remote closed the connection] 16:47:06 ok 16:52:58 -!- chandler has set mode -R 16:53:02 -!- chandler has set mode -o chandler 16:55:02 Oh wait... 16:55:17 foof: let me try again, but it seems still broken... 16:55:23 yeah, sorry 16:55:35 Oh, no problem :) 16:56:29 There are conceptually two types of records - packed, where the C data follows the Scheme object, and unpacked, where the C data is on the C side. 16:57:15 I haven't gotten around to setting up a way for the GC to know the size of packed objects. 16:57:48 jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has joined #scheme 16:57:52 for unpacked you just keep a pointer in the scheme object, right? 16:57:58 right 16:58:08 Ok, I see. 16:58:54 By the way, do you think you're going to support unions in the ffi? You seemed not convinced about it. 16:58:55 You could change the type definition with the fixed size, but then that type wouldn't support unpacked objects. 16:59:27 Ideally I want to allow both packed or unpacked instances of any C type. 16:59:51 How do you choose whether to use packed or unpacked? 17:00:18 aleix [n=aleix@95.17.144.241] has joined #scheme 17:00:29 -!- aleix [n=aleix@95.17.144.241] has quit [Client Quit] 17:00:36 The constructor would always make a packed object (modulo a setting to the contrary), return values from C functions would always be unpacked. 17:00:57 Ah, ok. 17:01:04 Although a quick fix would be to make the constructor always unpacked. 17:02:29 lolcow [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has joined #scheme 17:02:30 -!- leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 17:03:25 I'm not in a hurry, I can wait for when you find a way to fix it. I already had a trick to define my own constructors by means of 'c-declare' and 'define-c' 17:03:45 Checking in a fix now... 17:03:46 I guess what I had were unpacked objects. 17:05:42 Hang on... were you using the constructor with arguments? 17:06:35 -!- lolcow [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 17:06:38 leppie [n=lolcow@dsl-243-1-100.telkomadsl.co.za] has joined #scheme 17:06:49 no, without arguments: "constructor: (make-s1)" 17:07:17 OK 17:07:52 drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has joined #scheme 17:09:43 Try the latest again. 17:11:15 Oh, and unions will be supported, I was just debating allowing a raw interface, vs. requiring a selector to choose between union types (otherwise you can willfully guarantee a segfault). 17:11:41 And nested structs will be supported, that's the raison d'etre of the parent pointer. 17:12:03 But busy now, wait a couple weeks on that. 17:12:56 all right. 17:16:52 Oh, it looks way better now :) 17:16:59 Cool :) 17:17:06 Then I can go to sleep :) 17:17:56 I've got a couple of little fixes, if you want, but I'll let you know tomorrow, then. Sleep well :) 17:18:37 Good night. You can also just post issues if you want. 17:19:08 Allright, good night 17:19:27 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 17:23:15 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 17:25:07 *foof* remembers he already setup the infrastructure for packed pointers... 17:27:58 eno [n=eno@nslu2-linux/eno] has joined #scheme 17:30:56 borism_ [n=boris@213-35-233-194-dsl.end.estpak.ee] has joined #scheme 17:31:34 -!- mickn [n=mickn@69-165-151-81.dsl.teksavvy.com] has quit ["Leaving"] 17:32:11 -!- borism [n=boris@213-35-233-107-dsl.end.estpak.ee] has quit [Read error: 54 (Connection reset by peer)] 17:32:40 -!- hotblack23 [n=jh@p4FC5BC9B.dip.t-dialin.net] has quit ["Leaving."] 17:36:05 brinkman [n=brinkman@cpe-74-68-108-87.nyc.res.rr.com] has joined #scheme 17:36:17 Mikaeel_Mohamed [n=Mohamdu@129-97-241-175.uwaterloo.ca] has joined #scheme 17:47:56 kghif [n=trpmfcty@5571fc3b.ftth.concepts.nl] has joined #scheme 17:47:56 -!- kghif [n=trpmfcty@5571fc3b.ftth.concepts.nl] has quit [Broken pipe] 17:48:24 I /whois kghif 17:48:46 Hmm. 17:49:23 any ops around ? 17:50:15 kghif is gone already, niko. 17:50:26 others will come 17:53:07 Well, I'm afraid I'm about to leave for lunch. 17:54:00 We're +R at the moment. Inconvenient, but does deflect the likes of kghif. 17:55:40 +R? 17:55:53 Under 17 not admitted without parent or guardian. 17:56:01 Or was that mode turned off last night? 17:56:04 Neat. How'd you pull that off? 17:56:19 I didn't. One of elly/chandler did. 17:57:10 And one of elly/eli is writing a bot to automagically snuff spammers. Should help with kilimanjaro's special secret friend, too. 17:57:19 That bot will obviate +R. 18:02:34 gnn [n=abrwzm@78.234.210.18] has joined #scheme 18:02:35 -!- gnn [n=abrwzm@78.234.210.18] has quit [K-lined] 18:03:57 JoelMcCracken [n=joelmccr@pool-96-236-180-142.pitbpa.east.verizon.net] has joined #scheme 18:09:24 -!- ChanServ has set mode +o chandler 18:09:31 -!- chandler has set mode +R 18:09:33 eli: Ping! 18:09:48 chandler: really quick pong 18:10:01 eli: See above. The bots have switched tactics. 18:11:00 Mohamdu [n=Mohamdu@129-97-241-175.uwaterloo.ca] has joined #scheme 18:19:30 chandler: I'll see about it in about 20m (food now). 18:20:03 OK, sounds reasonable. 18:20:28 cky_ [n=cky@h-166-165-140-13.ip.alltel.net] has joined #scheme 18:21:17 -!- cky [n=cky@cpe-065-190-148-048.nc.res.rr.com] has quit [Read error: 60 (Operation timed out)] 18:25:07 cky [n=cky@cpe-065-190-148-048.nc.res.rr.com] has joined #scheme 18:31:47 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 18:32:13 In spreading misinformation I inadvertently have pinged more sapient parties. My work here is done. 18:32:18 *Daemmerung* leaves for the gym 18:48:51 -!- cky_ [n=cky@h-166-165-140-13.ip.alltel.net] has quit [Read error: 110 (Connection timed out)] 18:52:30 -!- Mohamdu [n=Mohamdu@129-97-241-175.uwaterloo.ca] has left #scheme 19:05:24 pavelludiq [n=quassel@91.139.197.90] has joined #scheme 19:07:07 -!- kniu [n=kniu@HOHOHO.RES.CMU.EDU] has quit [Remote closed the connection] 19:07:37 kniu [n=kniu@HOHOHO.RES.CMU.EDU] has joined #scheme 19:16:04 -!- drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has quit ["Leaving"] 19:16:18 drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has joined #scheme 19:18:07 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-241-175.uwaterloo.ca] has quit [Client Quit] 19:21:03 -!- nvoorhies [n=nvoorhie@adsl-76-216-21-95.dsl.pltn13.sbcglobal.net] has quit [Client Quit] 19:24:14 kilimanjaro [n=kilimanj@unaffiliated/kilimanjaro] has joined #scheme 19:35:47 -!- brinkman [n=brinkman@cpe-74-68-108-87.nyc.res.rr.com] has quit [Client Quit] 19:36:31 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 19:38:01 MrFahrenheit [n=RageOfTh@users-55-144.vinet.ba] has joined #scheme 19:38:30 HG` [n=HG@xdslhr245.osnanet.de] has joined #scheme 19:42:02 -!- Obfuscate [n=keii@ip98-176-17-38.sd.sd.cox.net] has quit ["Upgrading IRC client."] 19:42:25 Obfuscate [n=keii@ip98-176-17-38.sd.sd.cox.net] has joined #scheme 19:44:01 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 19:45:38 -!- emma [n=em@unaffiliated/emma] has quit [Read error: 60 (Operation timed out)] 19:46:30 -!- pavelludiq [n=quassel@91.139.197.90] has quit [Remote closed the connection] 19:48:36 emma [n=em@unaffiliated/emma] has joined #scheme 19:53:46 -!- HG` [n=HG@xdslhr245.osnanet.de] has quit [Client Quit] 20:05:15 Sergio`_ [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has joined #scheme 20:05:41 -!- Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Read error: 110 (Connection timed out)] 20:09:46 rgrau` [n=user@4.Red-88-16-70.dynamicIP.rima-tde.net] has joined #scheme 20:16:15 -!- Sergio` [n=Sergio`@a89-152-184-50.cpe.netcabo.pt] has quit [Read error: 110 (Connection timed out)] 20:22:16 chandler: Sorry for the delay, there was a local meltdown in the descendantal unit. 20:22:30 chandler: Looking at the log, I can't even figure out what happened exactly. 20:23:03 All I see is a huge block of `VERSION' messages from many people, including one from my client: "(notice) eli(private): VERSION rcirc on GNU Emacs 23.1.1" 20:23:27 So it seems that somehow the attack made many clients spill out their version to the world somehow. 20:23:43 This might also explain lines like this: "(notice) clog(private): ERRMSG unknown CTCP: VERSION Eli's IRC bot:1:MzScheme 4.2.3" 20:24:04 which look like clog's reaction to gabot spilling its version out somehow. 20:24:26 eli: It looks like the attacking drones are now sending unsolicited CTCP VERSION replies. 20:24:46 That starts the process; other clients then respond to the whole channel. 20:24:53 Replies? 20:25:00 I saw CTCP VERSION requests. 20:25:25 I think gabot is incorrectly sending a CTCP VERSION request when it should send a CTCP VERSION reply. 20:25:41 *eli* digs in the code 20:25:42 And that was probably highly annoying to everyone in the channel. Sorry. 20:26:56 Riastradh: I have this (hopefully obvious) code for the reply: 20:27:11 (defhandler CTCP/VERSION (say (format "\1VERSION ~a:1:MzScheme ~a\1" *name* (version)))) 20:27:15 is this incorrect? 20:27:43 chandler: Yeah, that looks similar -- a huge block of VERSION messages. 20:28:29 chandler: The confusion is that on my Emacs I see the reply from gabot only -- but this is probably because it has "Eli" in it, and Emacs shows me the line since it's my nick. 20:28:51 chandler: In any case, it doesn't look like there's a way to avoid that, no? 20:30:08 chandler pasted "what I saw, as interpreted by irssi" at http://paste.lisp.org/display/93807 20:31:17 So it seems that your version reply is actually coming out as a request. 20:31:59 This is odd. 20:32:01 ... because it's not being sent to the requestor, but to the channel. 20:32:15 Ah. 20:32:35 So the reply line is correct, but should be sent only to the requesting nick? 20:32:40 Yes. 20:32:55 And can you tell me how I can trigger that, so I can debug it? 20:33:14 Do a CTCP VERSION to a channel that gabot is in, but you probably shouldn't do it to #scheme. 20:33:19 Is it in another channel? 20:33:44 It's in a `#klum' channel, which is where I'd try this stuff. 20:33:49 The syntax in irssi for doing this is: 20:33:55 /ctcp #klum VERSION 20:34:07 OK, that works. 20:35:09 And btw, this means that the huge block of version replies that I see on its log is due to the fact that it requested a VERSION from everyone, and not really a problem, right? 20:36:32 Yes, eli. 20:38:01 OK, I think that I fixed it now. 20:38:22 (Feel free to try it on #klum to verify...) 20:39:36 It's not quite right: it needs to be sent as a NOTICE, not a PRIVMSG. 20:39:57 OK. 20:41:04 Uh, actually, can you write the full line that it needs to spit out? 20:41:24 NOTICE chandler : 20:43:02 OK, so now I have: "NOTICE :\1VERSION Eli's whatever:1:MzScheme 1.2.3\1" -- is this correct? 20:43:13 I believe so. Let me try it. 20:43:28 Yes. It's working correctly now. 20:44:09 OK, thanks -- and sorry for the IRC-ignorance. 20:45:09 No worries. 20:45:30 I assume gabot will slap people who issue repeated VERSION messages? 20:45:52 Doesn't seem so. 20:46:26 No, it doesn't -- it only tracks utterances. 20:46:31 eli: Is source code available for gabot? I'm a relative scheme novice and would be interested in poking around, as a bit of an education. 20:46:39 That is -- something that was privmsg-ed. 20:46:45 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 20:46:56 Obfuscate: I'll put it up. 20:47:02 The VERSION requests I was sending should be PRIVMSGs, not NOTICEs. 20:47:09 eli: Great, thanks. 20:47:20 ... Perhaps not, though. 20:47:55 chandler: If you tell me how to produce these two repeated spams I can move the block of code higher in the chain to find them too. 20:48:02 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 20:48:39 Try /ctcp #klum VERSION this is a test message 20:48:58 The other thing I tried was just a NOTICE instead of a PRIVMSG. You may want to track those as well. 20:49:05 lvh_ [n=lvh@83.101.56.42] has joined #scheme 20:49:19 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 20:49:30 -!- lvh [n=lvh@83.101.50.95] has quit [Read error: 60 (Operation timed out)] 20:49:33 To produce a notice, try /notice this is a test message. 20:51:28 Obfuscate: http://tmp.barzilay.org/elibot.tgz 20:51:37 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 20:52:06 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 20:53:03 chandler: Can you tell me how to do these things with /quote? Looks like my emacs client prevents the extra text at the end of that /ctcp line. 20:53:56 Same for /notice, which it doesn't seem to allow me to do. 20:54:03 (That's rcirc, BTW.) 20:54:46 The first would be something like /quote PRIVMSG #klum :\1VERSION test test test test\1 20:55:06 But I don't know if rcirc will interpret the \1 there or not. 20:55:19 The second is /quote NOTICE #klum :This is a test message. 20:55:59 eli: Is this plt-scheme? I don't have it installed at the moment, so I'm not entirely sure, but it looks like it. 20:56:45 chandler: OK, NOTICE works, and `C-q C-a' works for the first, although I still don't see the "test test test" part... 20:57:06 14:55 eli [n=eli@winooski.ccs.neu.edu] requested CTCP VERSION from #klum: test test test test 20:57:10 You're clearly sending it. 20:57:30 Ah, so it must be hiding it when it displays it. 20:58:00 Obfuscate: Yes, it's very PLT. You can get it in almost any form you want. (If you want it on another implementation, then I can't help you there...) 21:00:17 eli: No, this is good; I can understand it. I just wanted to make sure I was looking at the right scheme (I normally use chicken). 21:00:19 Thanks again. 21:00:24 jmcphers_ [n=jmcphers@218.185.108.156] has joined #scheme 21:02:02 Obfuscate: FWIW, the code should generally be understandable, but there are a few semi-extreme magic tricks. IIRC, there's the code that reloads modified handlers, there's the code that defines a handler (as something that looks like a function, but really matches on the input), and there's the specific handler language -- these are all very PLT specific, and will be hard to port. 21:03:35 chandler: Done. 21:04:58 Great, thanks! 21:07:03 eli: I'm not so interested in porting it... just seeing how others do things in scheme. My exposure to the language has only been through some shared scripts at work and I've been having trouble getting into serious use of scheme: the things we do at work are far too complicated to be good for learning from. 21:07:45 Obfuscate: What kind of things are they? 21:09:03 Mostly data transformations of various sorts: a lot of math and physics. 21:09:17 -!- stepnem [n=stepnem@88.103.132.186] has quit [Excess Flood] 21:09:37 stepnem [n=stepnem@88.103.132.186] has joined #scheme 21:09:45 -!- stepnem [n=stepnem@88.103.132.186] has quit [Excess Flood] 21:10:02 Guest13919 [n=stepnem@88.103.132.186] has joined #scheme 21:10:03 -!- Guest13919 [n=stepnem@88.103.132.186] has quit [Excess Flood] 21:10:35 Obfuscate: what sort of math and physics 21:10:45 stepnem_ [n=stepnem@88.103.132.186] has joined #scheme 21:10:50 Obfuscate: OK -- if you're interested in that, I can point you at some libraries that are related. (Though it sounds like you're interested in doing general things too.) 21:10:57 there's SICM 21:11:14 eli: Sorry if you see a bunch of VERSION requests in your gabot logs; I was testing to see if it throttled responses at all. 21:11:28 which is probably old hat but may be worth checking out on Google Books 21:12:04 Obfuscate: What implementation is used for the scripts you mentioned at work? 21:12:53 chandler: I didn't see any. (But no, I don't do any kind of a delay between outputs.) 21:12:56 eli: We do large-scale biomechanical simulations. Most of my work has been with C/C++/asm (which is what I'm on the project for), and I have a little functional experience (haskell, some prolog variants), but scheme is quite the change for me and I still have no idea what I'm doing. ;) 21:13:23 chandler: We're using chicken along with a lot of C++ code. 21:13:46 eli: Oh. Perhaps it's outbound throttling on my client. 21:14:07 eli: You might want to add throttling to gabot; some malicious users have been causing clients to flood off by targeting them with VERSION requests. 21:14:27 -!- stepnem_ is now known as stepnem 21:14:39 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [Remote closed the connection] 21:16:02 Obfuscate: You can have a look on planet.plt-scheme.org -- two people that have a bunch of things in that area are williams and wmfarr (click on their usernames to see a list of their packages). Specifically, what williams is doing is related to massive simulations somehow. 21:19:04 -!- gabot [n=eli@winooski.ccs.neu.edu] has quit [Remote closed the connection] 21:19:11 gabot [n=eli@winooski.ccs.neu.edu] has joined #scheme 21:19:31 eli: Thanks for the hint: will do. I think I'm going to take it slowly to get some of the basics underfoot until trying to tackle anything major in scheme though: I don't entirely understand all of the #,@ @': conventions yet (yet). 21:19:40 -!- kniu [n=kniu@HOHOHO.RES.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 21:20:37 Obfuscate: If you're just starting, then it's best to stay out of any code that uses these things... And if you're fine with PLT, then have a look at the top of docs.plt-scheme.org -- there are some texts that are intended to introduce you to the environment. 21:21:04 (Disclaimer: I'm PLT-biased, so don't take my advice about choosing an implementation...) 21:22:00 -!- gabot [n=eli@winooski.ccs.neu.edu] has quit [Remote closed the connection] 21:22:09 gabot [n=eli@winooski.ccs.neu.edu] has joined #scheme 21:22:24 kniu [n=kniu@CMU-311358.WV.CC.CMU.EDU] has joined #scheme 21:22:46 -!- gabot [n=eli@winooski.ccs.neu.edu] has quit [Remote closed the connection] 21:22:54 gabot [n=eli@winooski.ccs.neu.edu] has joined #scheme 21:23:25 chandler: OK, it's now sleeping 0.4s between two successive outputs. 21:24:05 I've been fine with chicken so far (since it's what we use for work), but I'm looking at plt-scheme now. 21:27:50 chandler: (Sorry, it takes me a while to retrieve a way to disable him kicking you.) 21:28:05 -!- Sergio`_ is now known as Sergio` 21:29:28 pavelludiq [n=quassel@91.139.197.90] has joined #scheme 21:32:16 plt-scheme/mzschemecgc isn't exactly PAX-friendly. :) 21:33:52 eli: Don't worry about it. 21:36:48 Obfuscate: PaX is hardly friendly to dynamic languages. Not all the world is C. 21:37:52 Obfuscate: I don't know what that is exactly (I can only guess that is the kernel thing and not the archive utility) -- but like chandler said, it does want to create executable code dynamically, which shouldn't be surprising. 21:38:24 mzschemecgc? Is that MzScheme with the conservative GC? 21:38:28 Obfuscate: Also, you shouldn't use the cgc thing -- the conservative GC has some inherent problems that cannot be solved. 21:38:30 (i.e., the bug) 21:38:51 Obfuscate: ... and I was about to add that some people (like Riastradh) consider it a bug... 21:39:23 I should imagine that if MzScheme generates machine code dynamically, it writes that code into memory mmapped with PROT_EXEC. 21:39:38 It should. 21:39:50 That applies to both the foreign interface and the jitter, btw. 21:40:36 So I wonder how any of this is unfriendly to PaX, which I thought was just something that mapped non-text segments nonexecutable by default. 21:41:02 Maybe there's some additional system call needed for that? 21:41:05 eli: Note taken. I was just trying to build it. 21:41:27 Riastradh: I'll let you know in a couple minutes what the exact source was. 21:41:45 I know that at least one of the BSD things makes pages not executable by default, and mzscheme should work there. 21:42:07 From Wikipedia: "The PaX implementation does not allow a memory page to have permissions PROT_WRITE and PROT_EXEC both enabled when mprotect() restrictions are enabled for the task; any call to mprotect() to set both (PROT_WRITE | PROT_EXEC) at the same time will fail due to EACCESS (Permission Denied)." 21:42:33 snearch [n=olaf@g225055193.adsl.alicedsl.de] has joined #scheme 21:42:52 Ugh. That sounds like it will make such problems. 21:43:30 mfredrickson [n=mfredric@c-24-1-31-58.hsd1.il.comcast.net] has joined #scheme 21:43:45 -!- mfredrickson [n=mfredric@c-24-1-31-58.hsd1.il.comcast.net] has quit [Remote closed the connection] 21:44:06 The other problem with PaX is that it prevents programs from obtaining large chunks of address space in a contiguous allocation via mmap(), because of course C does not need this (usually). 21:44:57 That seems more problematic than the first. 21:47:59 -!- snearch [n=olaf@g225055193.adsl.alicedsl.de] has quit ["Ex-Chat"] 21:48:55 snearch [n=olaf@g225055193.adsl.alicedsl.de] has joined #scheme 21:49:33 -!- snearch [n=olaf@g225055193.adsl.alicedsl.de] has quit [Read error: 104 (Connection reset by peer)] 21:50:21 snearch_ [n=olaf@g225055193.adsl.alicedsl.de] has joined #scheme 21:52:58 chandler: RANDMAP shouldn't have that effect unless the user is somehow expecting multiple mmaps to return contiguous regions (which they shouldn't do). It doesn't randomize individual pages for a single mmap call. 21:53:07 *RANDMMAP 21:54:06 Obfuscate: It has the effect of preventing a 32-bit process from obtaining the largest possible contiguous map of ~2.5GB. 21:54:12 (in one mmap call) 21:59:02 chandler: Ah, okay, I see. It's an implementation issue due to the way it chooses the lowest base address for a mapping. 21:59:54 If the operating system allocates a scattering of pages for, say, libraries, all over the address space, there simply may not be a contiguous 2.5 GB subspace left. 22:00:11 No, it's not an implementation issue; it's fundamental to the concept of address space layout randomization. 22:01:12 Quoth the Wikipedia page: `It is extremely uncommon for a program to require a large percent of the address space for either [the data segment or the heap].' 22:01:36 [citation needed] 22:01:49 Many garbage-collected implementations of modern programming languages violate exactly this assumption. 22:01:52 Are you just thinking of limited address space? 22:02:00 Absolutely not. 22:02:35 Without address space layout randomization, a 32-bit process can obtain a roughly 2.5GB-sized contiguous anonymous map under Linux and most other operating systems. 22:02:51 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:03:05 If the layout of maps used by the linker and C heap is randomized, this will not be the case. 22:03:08 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 22:03:12 Oh, nevermind. I thought you were talking about another problem. 22:03:26 Yeah, that sounds right. 22:04:37 This is not because the programs running in those implementations use all of that virtual address space all at once (usually, they don't), but because the implementation allocates memory sequentially from a contiguous virtual address block, and periodically garbage-collects the subspace, or subspaces of it. That is, the userland program does not map memory segments in little chunks from the operating system. 22:05:24 PaX is an operating-system-level solution to a problem created by C-like applications that enforces C-like assumptions on all programs running on the operating system. 22:06:12 The advantage to using a contiguous anonymous map for a heap is that allocation can be made quite cheap: in many cases, only a few instructions are required, and the write barrier can be implemented in hardware by applying PROT_NONE protection to a barrier page . 22:06:29 Yeah, I understand address space fragmentation. I thought chandler was referring to pax's inability to map segments with low base addresses on 32-bit platforms. 22:06:54 I don't know anything about that problem. 22:08:53 rdd [n=user@c83-250-52-182.bredband.comhem.se] has joined #scheme 22:15:24 Basically, because pax simply randomizes bits for determining the address (which actually only chooses the earliest section to map), addresses below that are generally unavailable, even if there is no suitable free group to alloc above it, so you can run into bizarre issues where it appears that you have enough address space and memory, but accessing it isn't immediately possible. 22:16:19 It's only a userspace issue though, so it's generally not noticeable. 22:19:38 Yeah, if there's no free group fit to allocate above it, the operating system might have to take some quotient of a free group, and who knows what it'll give you then... 22:23:15 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [Read error: 110 (Connection timed out)] 22:25:46 -!- jao [n=jao@72.Red-213-98-196.dynamicIP.rima-tde.net] has quit [Connection reset by peer] 22:29:55 Linux will just give you... nothing (which a lot of code never bothers checking), and then wait for your application to crash. 22:30:46 -!- JoelMcCracken [n=joelmccr@pool-96-236-180-142.pitbpa.east.verizon.net] has quit ["This computer has gone to sleep"] 22:34:06 morphir [n=morphir@84-52-234.12.3p.ntebredband.no] has joined #scheme 22:34:34 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 22:36:30 what is the difference between a quote and a list? 22:38:08 quotemstr [n=quotemst@cpe-67-247-228-249.buffalo.res.rr.com] has joined #scheme 22:38:27 Why did scheme go with #t, #f, and '() instead of the older t and nil convention? 22:39:34 "Basically, what "quote" does is to switch off the Scheme evaluator." 22:39:43 *morphir* nods 22:40:38 morphir, a list is a Scheme object. QUOTE is a symbol naming a special operator in the usual environment; the rule to evaluate a list whose external representation is (QUOTE ) is simply to yield the object . 22:41:05 -!- sloyd [i=sloyd@station457.vo3.net] has left #scheme 22:41:28 By contrast, the rule to evaluate, say, ( ...), where is not a special operator, is to evaluate all of the subexpressions, and all the s, and then to apply the value of to the values of the s as arguments, and then to yield the value returned by the operator. 22:41:57 screw_chanmode_r [i=sloyd@station457.vo3.net] has joined #scheme 22:42:38 quotemstr, the pun between false and nil leads to no end of confusing code, which in turn leads to superfluous bugs. Writing #T and #F rather than, say, TRUE and FALSE gives the true and false values readable external representations. 22:43:12 I see. Thanks. 22:43:22 Also, the pun leads to tofu. 22:44:29 -!- snearch_ [n=olaf@g225055193.adsl.alicedsl.de] has quit [Read error: 104 (Connection reset by peer)] 22:46:55 pjb [n=t@64.Red-79-149-158.staticIP.rima-tde.net] has joined #scheme 22:47:57 jao [n=jao@72.Red-213-98-196.dynamicIP.rima-tde.net] has joined #scheme 22:54:05 quotemstr: There is an additional pun that Riastradh didn't mention (or maybe I missed it, but it's worth making it explicit) -- in older lisps, `t' and `nil' are plain symbols, so (symbolp (< x y)) is true, and worse: (symbolp '()) is true. 22:54:21 Why is that a problem? 22:54:28 because those aren't symbols 22:54:35 I can understand the list pun being confusing, but the boolean-as-symbol one? 22:54:46 (< x y) is not a symbol in any sense of the word :P 22:55:05 elly: Well, they *are* symbols. Why is it bad that the result of a comparison is a symbol? 22:56:33 elly: t and nil ARE symbols. 22:56:49 elly: more over they are constant variables, bound to t and nil themselves, respectively. 22:57:20 elly: on the other hand, < et al. are specified to return a generalized boolean, which, when true, may indeed not be the symbol CL:T. 22:57:21 quotemstr: The problem there is that many people would expect something that is a symbol to not be a list -- yet `nil' is both. 22:57:41 The confounding of symbol objects with variable bindings, of course, is a separate problem of Common Lisp. 22:57:56 Well, it's rather the other way. A list is either the symbol NIL (denoting the empty list), or a CONS cell... 22:58:09 (deftype list () '(or null cons)) 22:58:15 elly: Do you, like me, dislike that the symbol `t' (or any other non-boolean? value) is true in R(456)RS Scheme? 22:58:20 quotemstr: Yes, and that (what pjb pointed at and Riastradh referred to) is another problem. Try that in lisp: (let ((t 1)) (+ t 2)) 22:58:25 chandler: yes 22:58:29 chandler: it ought to be #t and only #t 22:58:34 eli: this is non conforming. 22:58:46 eli: you cannot rebind a constant variable. 22:58:51 pjb: I know -- *that* is the problem. 22:59:02 How is that a problem? 22:59:20 elly: Horray. Revolutions are built one person at a time. Eventually, we shall prevail! 22:59:30 chandler: :) 22:59:35 nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has joined #scheme 23:00:05 If we introduced multi-continuation procedure calls, we could just do away with most uses of booleans, especially the bad ones. 23:00:12 pjb: CL just chooses to grab two random names and make it impossible to use them as identifiers. One of them is a common one-character name, which is a pretty obnoxious decision in my opinion. 23:00:34 pjb: It's a problem because it ought not to be different than any other kind of shadowing. 23:00:41 eli: notice that you can always (shadow 't) and use your-package::t as you wish. 23:00:50 (er, lexical variable shadowing) 23:00:54 pjb, and *that* is a problem because it involves the package system. 23:01:03 :-) 23:01:45 pjb: (Yes, I know. But see Riastradh...) 23:03:13 Actually that's related to one of the core differences between CL and Scheme -- the former can tolerate such mutilated namespace, whereas the latter considers symmetrical treatment of all names as holy. 23:06:05 -!- mmmulani [n=mmmulani@nat/uwaterloo/x-xqiirytrenfoujsv] has quit [Read error: 60 (Operation timed out)] 23:21:05 Summermute [n=Summermu@c-68-55-123-182.hsd1.dc.comcast.net] has joined #scheme 23:23:47 what is a dotted pair? 23:23:57 (cons 1 2) 23:24:15 opposed to (cons 1 '()) 23:24:35 what is the difference? 23:25:38 what exactly is the difference between a list and a pair? 23:25:38 -!- Zuu [i=zuu@unaffiliated/zuu] has quit [Read error: 104 (Connection reset by peer)] 23:26:34 A list is constructed by chaining pairs together, morphir. 23:27:11 The set of (proper) lists is defined recursively: () is a list, and if L is a list, then a pair whose cdr is L is also a list. 23:27:22 a dotted pair is a list, if I understand correctly.. yes? 23:29:41 The term `dotted pair' usually refers either to a notation for pairs, whereby a pair whose car is, say, 3, and whose cdr is, say, 5, is written (5 . 3); or to pairs that are actually *not* lists, because the usual way that pairs are written abbreviates pairs that also happen to be lists, so that, for example, a pair whose car is 3 and whose cdr is () is written simply as (3), not as (3 . ()). 23:29:41 if I do, > (list? (cons 1 2)) 23:29:49 I get #f 23:30:33 That's right. Although (cons 1 2) yields a pair, the cdr of that pair is not a list (2 is neither nil nor a pair whose cdr is a list), so the pair that (cons 1 2) yields is not a list. 23:31:27 http://dottedpair.com/ <-- waste of a perfectly good domain name 23:31:35 ~/win 28[6~[6~ 23:31:54 Zuu [i=zuu@0x55529f1b.adsl.cybercity.dk] has joined #scheme 23:32:09 Having some terminal trouble, chandler? 23:32:35 argh. asorry 23:32:53 Gee, are you typing into irssi through an iPhone or something? 23:32:55 > (car '(5 . 2)) 23:32:55 5 23:32:55 > (cdr '(5 . 2)) 23:32:55 2 23:32:55 > 23:33:25 Riastradh: that is basically what I get. 23:33:29 Daemmerung: Look at the "Team" page -- sounds like the name is not a coincidence. 23:33:35 #o033[2J 23:33:46 morphir, yes? 23:34:02 eli: ah, missed the Dylan ref 23:34:07 Riastradh: Terminal, I'll say. It's killing me, it is. 23:34:57 Daemmerung: There's also a lot of MIT-ish references on the first guy. 23:35:54 This terminal is killing me! One of us has got to go. 23:36:12 *Daemmerung* thinks "Dotted Pear" would be a better name 23:36:27 Riastradh: what is a basic pair then? 23:36:42 because I only learned about lists and atoms 23:36:48 -!- pjb [n=t@64.Red-79-149-158.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 23:37:06 morphir, a pair simply is an object with two locations for subobjects, called its car and its cdr. 23:37:09 a pair behaves like a teenage list 23:37:55 Using pairs, one can construct lists, by putting the first element in the car of a pair, and the list of remaining elements in the cdr of the pair, in the form of another pair whose car is the second element of the list and whose cdr is the list of the still remaining elements, and so on. 23:37:58 so a pair is really nothing 23:38:05 What? 23:38:11 its just a the beginning of a list? 23:38:23 I know that 23:38:28 A pair is a generic 2-tuple. 23:39:51 so its a list. 23:39:55 No... 23:40:02 Not every pair is a list. 23:40:06 Some pairs are lists. 23:40:27 (1 . 2) <-- why is that not a list? 23:40:59 It's just a box with two compartments; the objects you put in the compartments are called the pair's car and cdr. If the cdr of the box is another box, and the cdr of that box is still another box, and so on, until you get to a box whose cdr is nil, then what you have before you is a list. In any other case, what you have is not a list. 23:41:00 its not a linked list, but its a list 23:41:54 OK, in a general sense, a pair has a list of two objects inside it, but in the context of Scheme, the word `list' has a more specific meaning, and if you use the word `list' in the more general sense in the context of Scheme you will only confuse your listeners. 23:45:21 morphir: Are you studying the language yourself or for some class? 23:45:25 ok, so for a list in scheme to be a actual list, it has to be linked. 23:45:55 eli: my self. 23:45:56 `List' in Scheme means what is sometimes called `linked list' in broader contexts. 23:46:08 morphir: a `list' in Scheme is a particular thing. It is not any apparent literal sequence. "abc" is not a list, nor is #(1 3 5 7 9). 23:46:13 I got no scheme class to attend other than sicp (online) 23:46:17 rudybot: init r5rs 23:46:21 Daemmerung: error: with-limit: out of time 23:46:30 bytecolor [n=user@32.154.173.234] has joined #scheme 23:46:34 *Daemmerung* gives rudybot the finger 23:47:07 Riastradh: That was the result of a G1 that decided to spontaneously switch back to EDGE, thus resulting in a ssh typing latency approaching infinity. 23:47:08 morphir: And what book are you using? 23:47:09 incubot: (list? '(1 . 2)) 23:47:10 #f 23:47:22 incubot: (list? '(1 . (2 . ()))) 23:47:22 #t 23:47:45 eli, sicp 23:47:50 and little schemer 23:48:54 morphir: If you have such problems getting the basic way that `cons' is used, and how that relates to lists, then you should consider trying htdp. That would prevent much of the confusion by approaching it more methodically. 23:48:59 morphir: what is the Law of Cons? 23:49:31 Daemmerung: you caught me there you bastard 23:49:48 I have to run for the book .. 23:52:04 I have not recurred enough on the book yet to be able to remember them 23:52:53 eli: I get how cons is used. 23:53:29 *eli* sighs 23:53:43 morphir: there is a "Law of Cons" because `cons' returns a pair. A pair is the building block from which one constructs lists. A list is a sequence of pairs constructed by particular rules. 23:54:53 yeah. But if your second argument is not a list, you will create a basic pair 23:55:07 That is correct. And a dotted pair is not a list. 23:55:11 which is indeed data, 23:55:32 Just because a pair contains two data does not make it a list. Not in the scheme sense of list. 23:55:38 s/scheme/Scheme 23:55:40 Daemmerung: (That law of `cons' is an early attempt at sorting this mess out.) 23:55:55 which again leads to the conclusion of scheme having more than one data type (list), but also a pair 23:56:07 What conclusion, again?? 23:56:17 Scheme has many types of data. 23:56:37 data structures I mean 23:56:49 conclusion, scheme rawks! 23:57:51 eli: (I should dig out my ancient Little Lisper and see what it had to say about all of this.) 23:58:43 Haven't cracked this in a while.... 23:58:47 *bytecolor* just ate a burrito the size of his forearm 23:58:58 ...wow, it's a lot less cute. 23:59:22 Little Lisper? lol 23:59:59 "The Little Lisper" is the 1974 antecedent of "The Little Schemer."