Conversation with #inferno at Mon Apr 5 03:45:19 2010 on powerman-asdf@irc.freenode.net (irc) (05:51:45) Capso: anth_x: apparently all that has been removed from charon since 2002 or so? (07:26:46) mkmks left the room (quit: Ping timeout: 264 seconds). (08:26:31) robot12 [~robot12@robot12.kgts.ru] entered the room. (08:56:54) anth_x: rock on. (09:03:42) anth_x: this webserver's coming together nicely. (09:03:49) anth_x: i think tomorrow i'll have some non-trivial examples up. (09:05:37) anth_x: so, a question about dir structure, particularly in our /opt layout experiments. (09:07:48) anth_x: right now i've got config info in /opt/$pkgname/lib and the root of the web files in /lib/web/$sitename (it can host multiple sites). (09:08:42) anth_x: i don't really like that. separating the data from config, particularly across a package boundary like that, feels pretty artificial. (09:09:09) anth_x: i'm considering moving everything to /lib/web, and sticking the existing webroot down a level, under "root". (09:09:16) anth_x: or "hosts" or some such. (09:09:55) anth_x: (/opt/$pkgname/lib will have a mkfile that copies everything to /lib/web (unless redifined)) (09:56:46) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (10:32:54) powerman: anth_x: i may be very wrong, and i'm really sleepy now, but i don't see any real issues here, everything should be simple enough: the application/package itself is in /opt, and this mean only two things: 1) any user can "install" and run it, and 2) application can access any it internal data files (if any) inside it's /opt/ dir. Everything else - user's config for that application, any services provided or used by this application should be in their default location just like for non-opt packages - inside $user/ or /mnt/ etc. And user will just bind everything he need to these default locations (10:35:18) powerman: so, if you wanna place config for your web server in /lib/webdb/ (like /lib/ndb/) and serve websites from /lib/web/ - just hardcode these locations and don't bother about how user will create/bind these dirs (10:36:40) powerman: what you can provide inside /opt/$pkgname/lib is skeleton/example for /lib/webdb/ config files, which user can copy just like we copy /usr/inferno to /usr/me to "add new user" (10:44:43) powerman: at least, this is my understanding how to make things simpler in infernal :) way - doesn't make application ready for any environment, but instead ask user to setup (using namespace) environment required by this application before running it (11:58:42) rapidfx [~host666@vl-cen-ce1.avtlg.ru] entered the room. (12:34:12) mkn [~7c7cdbfa@gateway/web/freenode/x-vlodzmnxvlagccpj] entered the room. (14:36:13) mkn left the room (quit: Quit: Page closed). (14:59:54) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (15:43:40) bvalek2 [~bela@unaffiliated/bvalek2] entered the room. (16:19:16) bvalek2 left the room (quit: Quit: I've seen things you people wouldn't believe). (16:35:36) mkmks [~nf@90-230-91-71-no148.tbcn.telia.com] entered the room. (16:51:01) ericvh [~ericvh@32.97.110.63] entered the room. (16:53:43) mennis [~mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (17:04:23) mennis is now known as hardy87 (17:04:35) hardy87 is now known as mennis (17:10:30) rapidfx left the room (quit: Ping timeout: 276 seconds). (17:25:19) rapidfx [~host666@vl-cen-ce1.avtlg.ru] entered the room. (17:25:33) robot12 left the room (quit: Quit: Leaving.). (17:27:39) anth_x: powerman-asdf: you're exactly right. thanks. (17:49:44) Capso: hey (17:52:35) anth_x: howdy (17:54:04) Capso: have mjl-'s changes to inferno (regarding garbage-collection, which in turn lowers CPU usage and gives speed boost) been added to the inferno distribution yet? (17:57:06) anth_x: no idea. there are changesets applied to the google code repo, but i don't remember the comments being very useful. not sure how you'd check for a given functional change otherwise. (17:57:17) anth_x: (other than asking charles, obviously) (18:13:37) Capso: what's the Del equivalent in Inferno? (18:13:59) Capso: can't even stop a ping(1)... I'm hopeless (18:14:14) soul9: there is none i know of. (18:14:33) Capso: so you don't break commands in the shell in Inferno? (18:14:50) soul9: seems so (18:14:59) Capso: seriously? (18:15:04) anth_x: seriously. :-( (18:15:04) Capso: that's fucking loony (18:15:12) anth_x: open up the task manager and kill the proc. (18:15:33) anth_x: i've been doing that over and over with 'tail -f' for the last few days working on my web server. (18:15:34) soul9: :) (18:15:34) Capso: any idea on the rationale behind this? (18:15:39) anth_x: it's a royal pain. (18:15:48) anth_x: i don't know that there *is* one. (18:15:52) Capso: you're writing a web server in limbo/ (18:15:54) Capso: ?* (18:16:03) anth_x: if you provide a fix, i'd bet it'll get accepted. (18:16:04) soul9: Capso: in plan9 it's only rio that interrupts, otherwise you can't (18:16:29) anth_x: well, someone else wrote almost all of it, but it was 3e code (and this guy loves his exceptions). (18:16:39) anth_x: i've updated it. it runs. (18:16:52) Capso: why did you pick that webserver to update? (18:16:58) Capso: what's so cool about it? (18:17:11) Capso: how does it differ, in practice, than Plan 9's httpd? (18:17:31) anth_x: part of it's familiarity: i worked in the lab with the guy who wrote it (actually its predecessor, but same model). (18:18:15) anth_x: it's got neat facilities for external handler modules (which it calls "butlers"), including caching them. (18:18:18) Capso: well, it's not too difficult to become acclimated to Plan 9's httpd - even though you end up writing CGI stuff in C and have to go through /magic interface (18:18:41) anth_x: yeah, this thing's got a replacement for the /magic that i like much better. (18:18:45) Capso: external handler modules? is this like CGI, rc, or...? (18:18:54) anth_x: limbo. (18:19:05) Capso: right, sorry (18:19:28) anth_x: CGI-ish. i've not looked at what's actually required by the CGI interface per se in a long time, so i can't say whether it matches that or not. (18:19:37) Capso: so it can execute limbo code and produce its output back to the web - CGI (18:19:44) Capso: ah (18:19:46) anth_x: certainly the CGI model. (18:20:51) Capso: Kenji did a lot of stuff with his web server in Plan 9, particularly to improve he CGI end, so that you could have basic rc scripts... (18:21:11) anth_x: yeah, i like what he did. (18:21:45) anth_x: i wanted it in inferno, though, in part because there's a good chance production deployment won't be on plan9 (not sure yet). (18:22:42) Capso: emu(1) is a bit of a heavy-weight dis machine, sadly :( (18:22:55) Capso: else I would run more things in background a la emu (18:23:01) anth_x: but it provides so much more than just dis. (18:23:21) anth_x: that was the philosophical divide between java and inferno. (18:23:32) anth_x: inferno gives you an entire environment you can count on. (18:23:55) Capso: well, if all you want to do is export a few fileservers and run, say, a web server, etc., inside inferno, but without the rest of inferno, then through emu it's a bit of an overkill (18:24:16) Capso: oh, I'm totally for the inferno environment (18:24:24) soul9: emu-g? (18:24:24) Capso: but yeah, I guess you can't have the beans without the burrito (18:24:31) anth_x: heh. (18:24:44) Capso: soul9: what's that? (18:25:00) soul9: Capso: it's the graphics-less inferno (18:25:04) soul9: or emu i mean (18:25:25) Capso: I just use emu -c /dis/sh.dis 'set of commands'& (18:25:40) Capso: is there a separate thing called emu-g? (18:25:47) soul9: yeah but to build emu you need libX11 and sh*t (18:25:54) soul9: to build emu-g you don't (18:26:00) soul9: yes it's a different binary (18:26:22) soul9: need to modify the buildsystem tho, because (i don't know why it can't be an mk target..) (18:26:26) anth_x: it's just a build config file, like plan9's pc vs pcf. (18:26:41) Capso: does it really give emu a different functionality? (18:26:50) anth_x: it just removes graphics. (18:27:20) anth_x: which can make it easier to build in some environments, and reduces size. (18:28:03) Capso: any guide on building that? (18:28:20) soul9: nope :) (18:28:25) soul9: basically hit and miss (18:28:36) Capso: what exactly do you modify? (18:28:41) soul9: look for an emu target in the mkfiles and change that to emu-g (18:28:48) Capso: I see /emu/Plan9 ... something in the mkfile there? (18:28:51) soul9: oooook, i'll check in my install.. (18:29:42) soul9: f*ck (18:30:02) soul9: i still have the svn repo inferno version (18:30:58) soul9: ah (18:31:02) soul9: emu/Linux/mkfile (18:31:08) soul9: -CONF=emu #default configuration (18:31:08) soul9: -CONFLIST=emu (18:31:08) soul9: +CONF=emu-g #default configuration (18:31:08) soul9: +CONFLIST=emu-g (18:31:19) soul9: Capso: ↑ (18:36:31) less1 [~pravin@32.97.110.63] entered the room. (19:15:53) less1 left the room (quit: Remote host closed the connection). (19:16:15) less1 [~pravin@32.97.110.63] entered the room. (19:17:29) powerman: > Capso: any guide on building that? (19:17:34) powerman: mk CONF=emu-g install (19:17:43) soul9: o? (19:17:59) powerman: > Capso: emu(1) is a bit of a heavy-weight dis machine, sadly :( (19:18:09) powerman: why you think it's heavy-weight? (19:18:49) powerman: I run about dozen network services, each within own emu-g (20:10:11) Fish [~Fish@78.238.225.114] entered the room. (21:29:24) rapidfx left the room (quit: Quit: Leaving.). (22:15:52) Capso: there is no emu-g configuration for Plan 9 (22:45:08) powerman: Capso: yeah, sorry, it exists only for Linux, MacOSX and DragonFly BSD (23:17:35) The account has disconnected and you are no longer in this chat. You will be automatically rejoined in the chat when the account reconnects.