IRC log of openacs on 2002-04-03

Timestamps are in UTC.

00:07:18 [rbm]
oom
00:28:58 [paje]
paje (~paje@slxwy.dorms.usu.edu) has joined #openacs
00:29:10 [markd2]
markd2 (~Snak@r-41.15.alltel.net) has joined #openacs
00:46:35 [Psychephylax]
Psychephylax has quit (Read error: 110 (Connection timed out))
00:49:28 [til]
anyone here got dotlrn installed successfully?
01:26:55 [geilhufe]
geilhufe (~dgeilhufe@adsl-64-160-46-98.dsl.snfc21.pacbell.net) has joined #openacs
01:27:40 [geilhufe]
geilhufe has left #openacs
02:32:55 [markd2]
markd2 has quit (carter.openprojects.net irc.openprojects.net)
02:32:55 [paje]
paje has quit (carter.openprojects.net irc.openprojects.net)
02:32:55 [rbm]
rbm has quit (carter.openprojects.net irc.openprojects.net)
02:32:55 [til]
til has quit (carter.openprojects.net irc.openprojects.net)
02:32:55 [tontsa]
tontsa has quit (carter.openprojects.net irc.openprojects.net)
02:33:33 [markd2]
markd2 (~Snak@r-41.15.alltel.net) has joined #openacs
02:33:33 [paje]
paje (~paje@slxwy.dorms.usu.edu) has joined #openacs
02:33:33 [rbm]
rbm (rmello@fslc.usu.edu) has joined #openacs
02:33:33 [til]
til (til@port-212-202-128-197.reverse.qsc.de) has joined #openacs
02:33:47 [til]
til has quit (carter.openprojects.net irc.openprojects.net)
02:36:15 [rbm]
rbm has quit (carter.openprojects.net irc.openprojects.net)
02:36:15 [paje]
paje has quit (carter.openprojects.net irc.openprojects.net)
02:36:15 [markd2]
markd2 has quit (carter.openprojects.net irc.openprojects.net)
02:42:25 [dilbert]
[Global Notice] Hi all. We're experiencing difficulties, investigating now.
02:42:31 [markd2]
markd2 (~Snak@r-41.15.alltel.net) has joined #openacs
02:43:54 [paje]
paje (~paje@slxwy.dorms.usu.edu) has joined #openacs
02:43:54 [rbm]
rbm (rmello@fslc.usu.edu) has joined #openacs
02:45:08 [ChanServ]
[#openacs] This channel is logged: http://www.blogspace.com/openacs/chatlogs/ and blogged: http://www.thedesignexperience.org/openacs/ircblog
02:46:22 [til]
til (til@port-212-202-128-197.reverse.qsc.de) has joined #openacs
02:51:23 [tontsa]
tontsa (tontsa@livingfor.net) has joined #openacs
02:52:45 [lilo]
[Global Notice] Hi all. We appear to have experienced bandwidth limitation on one of our primary hubs. Core servers have been rerouted. Some additional rerouting will probably be necessary. Apologies for the inconvenience.
02:56:58 [dilbert]
[Global Notice] Hi all. We're experiencing packet loss to a primary hub and will be rerouting Oz. Please bear with us.
03:03:04 [markd2]
markd2 has quit ("wheeeee")
03:04:19 [markd2]
markd2 (~Snak@r-41.15.alltel.net) has joined #openacs
03:12:02 [jim]
til: key signature is an ordering of accidentals which, when applied to an otherwise all-white-key C major scale, will produce a major scale on a particular note. The key signature is nil for C major, contains Bb for F major and F# for G major.
03:13:41 [jim]
(with a major scale being a specific set of wholestep/halfstep patterns starting from the above-mentioned "particular note", and for the 3 examples mentioned are C, F and G)
03:14:08 [til]
thanks jim ... in some dust gathering parts of my brain i have some memories of that ... but i never knew the english vocabulary for it
03:15:24 [jim]
hearing and seeing intervals is the first skill you need as an improviser... for seeing them on the staff, you need to know your key signatures pretty athleticaly
03:17:22 [jim]
(for doing functional harmony assignments and checking the parts, the closer the ability is to Olympian, the better)
03:17:37 [jim]
and it's not hard to get to that point
03:18:56 [til]
not with the help of jim's unique upcoming online learning resource i guess ;)
03:19:43 [til]
i wish i would be practicing more ... err - at all i mean
03:20:48 [jim]
heh, I know how that goes... you could find a playing situation, lightweight schedule and levelwise... maybe a beginning theory and improv course
03:24:16 [til]
* til should
03:24:20 [jim]
I had a key signature drill basically functioning when the hd on the site went down...
03:24:28 [markd2]
:-(
03:24:49 [jim]
replaced the hd, I'm almost ready to start building the key signature drill
03:26:10 [markd2]
is it web-based?
03:26:15 [markd2]
or a program you download and run?
03:26:16 [jim]
yeah
03:26:22 [jim]
no, web
03:26:40 [jim]
I wrote it in tcl
03:26:47 [til]
cool
03:26:48 [markd2]
cool
03:27:10 [jim]
using the same technology as the fishtank abstractions in PS1
03:27:35 [jim]
then I stuck em in a multirow :)
03:28:11 [jim]
took me 2 hours to get that far; should take me an hour or less to get there...
03:28:29 [jim]
but I wanted to figure a way to use the database with it
03:28:55 [markd2]
that way you can extend it to the liturgical and grecian modes
03:28:56 [til]
let's get that in the oacs distribution - acs-keysig-drill-0.1d
03:30:37 [jim]
liturgical? major/minor? grecian = ionian, etc
03:31:00 [jim]
all that plus chords that come from a key
03:34:14 [til]
from the wouldnt-it-be-cool department: generating chords or intervals on the server, and have the user listen to them and decide what they are
03:35:53 [til]
there must be some easy way to generate .wav or .mp3 files with a script
03:36:36 [jim]
my theory teacher (-total- monster; amazing teacher), retired a few years back, started teaching at a nearby community college nearly 30-35 years ago, taught for some 25 years, created many of the courses including an amazing ear training course
03:37:31 [markd2]
who was this?
03:37:57 [jim]
Elvo S. D'Amante
03:38:27 [jim]
he has 2 books at Amazon, "All About Chords" and "Fundamentals of Music"
03:39:13 [markd2]
* markd2 adds it to the to-get list
03:39:27 [jim]
his ear training book comes in three volumes, the first one nearing production...
03:39:31 [rbm]
pretty deep musical stuff
03:40:55 [jim]
yes, the chord book does triads, 4-level chords (with 7ths or 6ths), 7-level (7th chords with 9ths, 11ths and 13ths)
03:41:06 [til]
an ear training course would really make sense to put on the web i guess, if done properly
03:41:36 [rbm]
I have a chords app in my visor. It's nice.
03:41:59 [markd2]
the David Burge one is a couple of CDs
03:41:59 [davb]
davb (dave@alb-24-58-162-46.nycap.rr.com) has joined #openacs
03:42:13 [rbm]
shh! davb arrived!
03:42:21 [markd2]
* markd2 hides the goat
03:42:29 [jim]
and doesn't stop there, he describes progressions, substitute chords and even touches on voice leading across changes
03:42:36 [davb]
argh, I thought I snuck in quietly
03:44:01 [davb]
is til around?
03:44:26 [til]
* til still hides
03:45:11 [til]
oh no, the curtain does not cover my feet
03:45:38 [markd2]
* markd2 de-feets til
03:46:05 [davb]
til: just wanted to see where you were on dotlrn, to compare notes
03:47:14 [til]
* til thanks markd2 very much
03:48:19 [til]
davb: some holes in the wall from banging against it with my head, not much more progress with dotlrn
03:48:47 [davb]
I got it installed, but it crashes when I try to go to the "my files" page.
03:49:16 [til]
i see the same as michael posted in that thread - empty community pages
03:49:35 [davb]
ah.
03:49:50 [til]
can't check for "my files" because i shut down oracle already. it's just too much for my laptop
03:50:12 [davb]
np:)
03:50:20 [til]
is your installation online somewher and could i look at it by any chance?
03:50:32 [davb]
in a minute it will be...
03:51:12 [til]
thanks
03:53:48 [davb]
don't click "my files" :)
03:54:43 [til]
... must resist ...
03:54:47 [markd2]
click it!!!!
03:54:48 [davb]
- /dotlrn/
03:55:17 [til]
does it crash aolserver?
03:55:55 [davb]
yes. segfaults, all threads die.
03:56:09 [til]
wow, impressive
03:56:24 [davb]
you are in
03:56:56 [til]
wohooo ... thanks davb!
03:57:01 [davb]
uhoh
03:57:09 [davb]
communities also crashes the server
03:57:18 [davb]
argh
03:57:28 [davb]
it uses the my files on the default portal apparently.
03:57:53 [til]
i just clicked on "Calendar" ... sorry
03:58:00 [davb]
nope, calendar is safe.
03:58:18 [davb]
it takes forever to startup, even with 512mb ram
03:58:31 [davb]
because of the extensive logging and my slow disk.
03:58:35 [til]
ah, ok
03:59:42 [davb]
ora8.c:3682:ora_tcl_command: error in `OCIStmtPrepare ()': ORA-01740: missing double quote in identifier
03:59:48 [til]
it'd be great if they would put up a demo site
03:59:49 [davb]
on customize this portal for a community.
03:59:55 [davb]
maybe they can't
04:00:10 [til]
because of their client? maybe, yes
04:00:12 [til]
*sigh*
04:00:46 [davb]
no I meant because it doesn't quite work.
04:00:50 [davb]
all this is GPL...
04:01:24 [til]
but maybe they are uncomfortable with their client seeing every error live
04:01:35 [til]
well, it's both then
04:01:40 [davb]
ah, that I could understand.
04:02:31 [rbm]
davb: authorize me
04:04:33 [rbm]
davb: ??
04:04:36 [rbm]
paje: twack davb
04:04:36 [paje]
rbm: what?
04:04:40 [rbm]
paje: again!
04:04:40 [paje]
* paje spanks talli
04:05:01 [davb]
rbm: sorry
04:05:31 [davb]
all set
04:05:38 [davb]
tracking down the missing/extra quote
04:06:04 [til]
wasnt there a posting about missing quotes in the dotlrn thread?
04:06:18 [davb]
probably. maybe I need to update
04:07:07 [rbm]
" The server has encountered an internal server error. The error has been logged and will be investigated by our system programmers."
04:07:37 [davb]
let me restart the server
04:07:55 [til]
call all your system programmers and investigate the error!
04:08:10 [davb]
argh.
04:08:19 [davb]
the cvs is not updating correcly.
04:13:19 [davb]
server is restarted
04:14:39 [davb]
argh crashed it again
04:15:12 [til]
i was clicking on forward on the calendar portlet
04:15:24 [davb]
nope, i think it was me again.
04:15:28 [til]
and always returned to the same date
04:15:35 [davb]
oh, that is not good either.
04:16:01 [til]
also - where is my recurrent date that i entered? i think it did not make it into the db
04:17:42 [jim]
ok, I stuck something up there, right now key signatures and intervals have nothing on them; I'll permisssion them out at the site map... but Chord Chorner has a site with an etp containing some stuff I wrote about 8 or 9 years ago
04:18:08 [markd2]
what was the url again?
04:18:23 [jim]
12.233.187.5:9000
04:19:04 [davb]
argh, i crashed mozilla!
04:19:06 [davb]
and emacs
04:19:17 [markd2]
paje: davb is also | dangerous
04:19:18 [paje]
okay, markd2.
04:19:39 [jim]
davb?
04:19:40 [paje]
well, davb is dangerous
04:19:42 [jim]
davb?
04:19:42 [paje]
davb is sad that EA is discontinuing Majestic. Of course, I would be more sad if I had ever paid for it.
04:19:45 [jim]
davb?
04:19:46 [paje]
it has been said that davb is dangerous
04:19:47 [til]
davb: let me guess - oracle is running on the same machine?
04:20:20 [davb]
ack, did it again
04:20:32 [davb]
til: yes.
04:20:36 [davb]
this sucks
04:20:55 [davb]
at least it didn't crash aolserver
04:21:08 [davb]
but it using up all my ram.
04:21:54 [davb]
ok, I am going to wait until tomorrow to fool with it.
04:24:35 [jim]
markd2: if you're looking at that thing, you'll notice you can see /doc and /api-doc... I put you and til in the Techies group, so if it happens to be handy to read docs from there, go for it
04:25:04 [markd2]
coolio
04:25:15 [markd2]
my brain is too tired tonight to think about it much tonight
04:26:41 [jim]
does the etp from 4.5 have general comments on pages? I decided to do the text/plain rendering using <pre> (stick stuff here) </pre>
04:27:20 [davb]
not out of the box. there is a etp-gc-procs.tcl that you can add to the info file.
04:28:52 [davb]
gotta go...
04:28:54 [davb]
davb has quit ("Client Exiting")
04:28:57 [jim]
which begins a conversation that I recall we had a month ago... I'll research and deal
04:31:45 [jim]
markd2: the stuff I wrote is fairly dense, and assumes you understand intervals fairly well...
04:32:04 [markd2]
and my brain is jello right now
04:32:27 [jim]
ok, so if you read it sometime and you have any questions, fire away
04:35:44 [markd2]
will do!
04:35:44 [markd2]
thanks
05:14:58 [markd2]
markd2 has quit ("wheeeee")
06:11:48 [talli]
talli (~talli@188.muka.lasv.snfccafj.dsl.att.net) has joined #openacs
08:03:21 [jkhong]
jkhong (~jkhong@202.151.216.94) has joined #openacs
08:26:48 [jkhong]
jkhong has quit ("Client Exiting")
12:09:59 [jim]
jim has quit (Read error: 110 (Connection timed out))
13:28:45 [davb]
davb (~dave@rrcs-nys-24-97-22-204.biz.rr.com) has joined #openacs
13:33:14 [davb]
hello
13:36:58 [ChanServ]
[#openacs] This channel is logged: http://www.blogspace.com/openacs/chatlogs/ and blogged: http://www.thedesignexperience.org/openacs/ircblog
14:18:02 [abbaJ]
abbaJ (~jabba@adsl-64-123-15-107.dsl.austtx.swbell.net) has joined #openacs
14:45:07 [markd2]
markd2 (~Snak@r-41.181.alltel.net) has joined #openacs
14:54:17 [markd2]
markd2 has quit ("wheeeee")
15:01:35 [davb]
argh
15:01:39 [davb]
more crashing
15:04:03 [davb]
dotlrn needs weblogs!
15:07:06 [davb]
k> 'lo morb
15:07:06 [davb]
<Morbus> i think i'm getting
15:07:08 [davb]
argh
15:07:19 [davb]
http://www.emergentmusic.com/index.jsp
15:07:19 [oacs-chump]
A: http://www.emergentmusic.com/index.jsp from davb
15:07:25 [davb]
A:|Emergent Music
15:07:25 [oacs-chump]
titled item A
15:22:24 [rbm]
morning all
15:22:37 [Jackal]
Jackal (~chatzilla@ECOLOGY.MIT.EDU) has joined #openacs
15:23:12 [Jackal]
can anybody point me to a simple ns_xml script/tutorial?
15:23:23 [Jackal]
hey guys
15:24:10 [davb]
- http://www.fifthgate.org/articles/aolserver/xml/ns_xml_doc.html
15:24:36 [davb]
shows at the end how to parse an rss file and output some html
15:25:15 [Jackal]
davb: I'm getting sytax errors with comands like [ns_xml node stats $node_id]
15:25:25 [markd2]
markd2 (~Snak@r-41.139.alltel.net) has joined #openacs
15:26:20 [Jackal]
however, that is the notation given in the fifthdate article
15:26:30 [davb]
please paste in the exact error message. otherwise we really can't help you.
15:27:22 [Jackal]
unknown command
15:27:29 [Jackal]
while executing
15:27:34 [Jackal]
"ns_xml doc stats $doc_id"
15:27:56 [davb]
check the log, looks like nsxml is not loading. you should see an error message if it could not load nsxml.so
15:28:29 [Jackal]
nsxml is loading and on the previous line, I have
15:28:37 [Jackal]
set doc_id [ns_xml parse $xml_doc]
15:28:52 [Jackal]
which doesn't give an error alone
15:37:16 [davb]
I suspect the article is wrong :)
15:37:24 [Jackal]
yeah me too
15:37:28 [davb]
I am not even sure the stats command is implemented.
15:37:42 [Jackal]
so where is the "official" documentation?
15:37:55 [davb]
markd2: could me crash come from libpthread somewhere do you think?
15:38:01 [davb]
Jackal: ns_xml.c :)
15:38:07 [Jackal]
it sucks when your just starting out..
15:38:11 [Jackal]
LOL :)
15:38:18 [markd2]
davb: it might. ya never know
15:38:18 [Jackal]
oh dear
15:38:49 [davb]
markd2: ok. I see way back in the backtrace where it starts a thread, then it just does tcl stuff until it crashes.
15:39:10 [davb]
Jackal: I should write a doc for ns_xml one of these days.
15:39:15 [markd2]
in that case, the crash will be in the tcl stuff somewhere
15:39:33 [davb]
ok. weird. I have the same aolserver as everyone else. argh!
15:39:50 [markd2]
can you put the stack trace(s) somewhere?
15:39:54 [Jackal]
would be helpful to us n00bs
15:40:15 [davb]
markd2: sure, thanks!!
15:43:48 [markd2]
that's a really deep stack
15:43:51 [markd2]
try upping your stacksize
15:44:01 [davb]
well what I did was just fool around with it. rss is a good think to start with. grab an rss file, and take it apart and stuff the data into some tcl lists, then output it as
15:44:04 [davb]
doh!
15:44:15 [davb]
output it as HTML
15:44:25 [davb]
actually hang on, I have code that does that I can send you...
15:45:15 [davb]
it was 500000, I doubled it.
15:46:19 [markd2]
it's also nuking in regex stuff - maybe see what regexp is involve,d and the data it's working on
15:46:35 [davb]
yeah!
15:46:42 [davb]
markd2 is a genius
15:46:55 [davb]
markd2++
15:47:02 [davb]
markd2 cookie
15:47:08 [markd2]
woo hoo!
15:47:11 [markd2]
is the stack waht it was?
15:47:15 [davb]
yes.
15:47:25 [davb]
now I get a "you have found a bug in our code" message!
15:47:43 [davb]
I better let everyone know that the stacks can be huge.
15:47:50 [davb]
ETP must have been doing the same thing.
15:48:40 [davb]
Jackal: http://www.thedesignexperience.org/rss-nsd.tar.gz has some sample code and a micro doc telling what it does.
15:49:15 [Jackal]
david: Thanks - I'll check that out
15:49:18 [davb]
argh,
15:49:45 [davb]
shit, with the stack at 1,000,000 i still crash the community page.
15:50:41 [davb]
wait, there are TWO stacksize params
15:50:46 [davb]
ns/parameters and ns/threads
15:51:02 [davb]
ns/threads was only 128k
15:51:14 [davb]
heh
15:51:17 [davb]
ok,get this.
15:51:26 [davb]
the one I changed was commented out, BUT it worked anyway.
15:51:31 [davb]
I am going insane
15:51:49 [davb]
maybe it is not stacksize.
15:52:39 [davb]
of my files still works
15:52:50 [davb]
yeah community works too!
15:52:58 [davb]
* davb is dumb
15:53:14 [davb]
stacksize 500000 is enough
15:54:34 [davb]
til: its working great. come on in!
15:55:15 [davb]
this is pretty cool, but need UI work.
15:56:03 [davb]
now to get this working will talli's calender server
15:57:10 [davb]
hmmm. have to make sure the openacs docs etc mention that stacksize issue.
15:58:36 [davb]
yeah, its not in the sample config files.
16:00:29 [davb]
* davb now notices he should have checked the config file first, instead of learning C to diagnose a little server problem
16:01:13 [markd2]
heh
16:01:23 [markd2]
the stacksize thing *always* throws me until I see a huge backtrace
16:01:47 [Jackal]
this is the sample XML string that I'm using:
16:01:49 [Jackal]
<?xml version="1.0"?><test version="1.0">this is a<blind>test</blind> of xml</test>
16:02:44 [davb]
ok.
16:02:50 [Jackal]
When I get the node children, I get back "this is a test of xml
16:02:57 [markd2]
markd2 has quit ("wheeeee")
16:03:07 [Jackal]
how can I get the content of <blind> </blind>
16:03:24 [davb]
I forget :) let me check...
16:03:33 [Jackal]
if I get children again (on the original child) i get an error
16:03:56 [davb]
hmmmm
16:04:16 [davb]
that should still work.
16:04:50 [davb]
what you need to do it walk down the tree.. (great metaphors huh?) until you get to blind.
16:05:06 [davb]
get the root node.
16:05:20 [davb]
first. get the doc_id
16:05:25 [davb]
then get the root node of that.
16:05:44 [Jackal]
set node_id [ns_xml doc root $doc_id]
16:05:45 [davb]
get the first child of the root node, that is the first tag after the <xml...>
16:06:05 [Jackal]
set children_list [ns_xml node children $node_id]
16:06:13 [Jackal]
set children_list [ns_xml node children $children_list]
16:06:26 [davb]
can't do that.
16:06:30 [Jackal]
thats what I understand by "walking down the tree"
16:06:32 [Jackal]
por que?
16:06:34 [davb]
$children list is a list
16:06:50 [davb]
you need [lindex 0 $children_list]
16:06:59 [Jackal]
oh - so how do I get a node_id from a child?
16:07:10 [Jackal]
oh ic - its a list of nodes?
16:07:13 [davb]
yes
16:07:27 [Jackal]
thank you very much
16:07:30 [davb]
the text between the <blind> tags is also a node.
16:07:34 [Jackal]
this is very helpful
16:07:37 [davb]
np.
16:07:53 [Jackal]
dude:
16:08:08 [davb]
in that link I mentioned, I have an some ns_xml help procs like first_child, get_node_by_name etc...
16:08:08 [Jackal]
how do you get anywork done answering all these questions?
16:08:18 [Jackal]
yeah - i saw those
16:08:20 [davb]
keeps my brain sharp
16:08:21 [davb]
:)
16:08:30 [Jackal]
i'm trying to wokr from the ground up
16:08:34 [davb]
ok.
16:08:38 [Jackal]
write my own helper procs
16:08:44 [davb]
good idea.
16:09:08 [Jackal]
maybe one day I'll learn all this crap
16:09:10 [Jackal]
:)
16:09:11 [davb]
we are also working on an update to ns_xml that adds alot of new coomands for manipulating the tree, deleting nodes, etc.
16:09:11 [paje]
okay, davb.
16:09:20 [davb]
we
16:09:22 [davb]
we?
16:09:22 [paje]
we are almost done though. or working on an update to ns_xml that adds alot of new coomands for manipulating the tree, deleting nodes, etc.
16:09:25 [davb]
heh
16:09:29 [davb]
paje: forget we
16:09:30 [paje]
davb: I forgot we
16:09:53 [Jackal]
lol
16:10:20 [rbm]
talli: you around?
16:13:51 [Jackal]
set children_list [ns_xml node children $node_id]
16:14:01 [Jackal]
set child_node [lindex 0 $children_list]
16:14:09 [davb]
thats the first child.
16:14:34 [davb]
do a foreach to cycle through the entire list.
16:15:04 [Jackal]
i get an error from just that :
16:15:11 [Jackal]
bad index "n1": must be integer or end?-integer?
16:15:21 [davb]
argh
16:15:34 [davb]
lindex $children_list 0
16:15:36 [davb]
sorry.
16:15:51 [Jackal]
oh - ok - I probably should have know that
16:16:16 [davb]
http://www.xwt.org
16:16:16 [oacs-chump]
B: http://www.xwt.org from davb
16:16:20 [davb]
B:|XWT
16:16:20 [oacs-chump]
titled item B
16:16:23 [Jackal]
tahanks that worked
16:16:39 [davb]
B:|XWT - XML Windowing Toolkit
16:16:39 [oacs-chump]
titled item B
16:16:48 [davb]
B: for deploying apps across the web
16:16:48 [oacs-chump]
commented item B
16:16:57 [rbm]
argh. That's crazy.
16:17:07 [davb]
B: needs a java applet or active X :(
16:17:07 [oacs-chump]
commented item B
16:18:10 [davb]
for the stuff I do, distributing a client that runs in Mozilla is a better choice
16:18:38 [rbm]
You could install the Tcl plugin and run Tk apps just like java apps
16:19:06 [davb]
true.
16:19:30 [davb]
kinda a pain if you try to dl a tcl file to read though :) usually they display as text.
16:19:36 [rbm]
except that the Tcl app would have 20 times less lines of code and be 10 times faster
16:20:12 [rbm]
http://www.softpanorama.org/People/Ousterhout/Threads/sld001.htm
16:20:13 [oacs-chump]
C: http://www.softpanorama.org/People/Ousterhout/Threads/sld001.htm from rbm
16:20:44 [rbm]
C:|Why Threads are a Bad Idea (for most purposes) - by John Ousterhout
16:20:44 [oacs-chump]
titled item C
16:21:14 [rbm]
That's for talli. In his latest Momentum e-mail he mentioned that momentum must be fast, and therefore multithreaded
16:21:24 [rbm]
Fast != multithreaded for most cases
16:21:42 [rbm]
and multithreaded != fast for most cases either
16:22:04 [rbm]
But Multithreaded == Much harder to program in ALL cases
16:23:39 [rbm]
Another problem with multithreaded apps is that if you crash a thread you crash the app. In a process-based app, you crash a child process and that's it. The parent process lives on.
16:23:47 [davb]
rbm: if it is a server and has to handle multiple simultaneous connections it will need threads?
16:23:54 [davb]
ie: aolserver
16:23:58 [rbm]
davb: Of course not. Look at PostgreSQL.
16:24:07 [davb]
really?
16:24:16 [davb]
that sames thread are ok for a database :)
16:24:21 [davb]
s/sames/says
16:24:45 [rbm]
davb: AOLserver has other reasons why it went multithreaded, especifically sharing of data and database connections.
16:24:55 [davb]
ok.
16:24:59 [davb]
* davb learns something new
16:25:16 [davb]
postgresql just uses multiple processes (backends)?
16:25:19 [rbm]
Yes.
16:25:34 [rbm]
It's A LOT easier to program using processes.
16:26:03 [davb]
ok.
16:26:11 [rbm]
The PG team has answered the question "MySQL is multithreaded, PostgreSQL isn't, therefore MySQL is better?" many times.
16:26:28 [rbm]
It's a common misconception.
16:26:35 [davb]
Apparently, noone understands the difference.
16:26:39 [davb]
like me :)
16:27:20 [davb]
rbm: dotlrn is running on my machine again, and not crashing if you want to look around.
16:27:24 [rbm]
http://www.ca.postgresql.org/~petere/comparison.html
16:27:24 [oacs-chump]
D: http://www.ca.postgresql.org/~petere/comparison.html from rbm
16:27:36 [rbm]
D:|
16:27:36 [oacs-chump]
titled item D
16:27:56 [rbm]
D:| A Response to the Featurewise Comparison of MySQL and PostgreSQL - by Peter Eisentraut
16:27:56 [oacs-chump]
titled item D
16:28:20 [davb]
people who care about their data use Postgresql.
16:28:31 [rbm]
You'll see a lot of MySQL users doing contortions to make sure mysqld stays up after it crashes.
16:28:54 [davb]
yeah, mysql is great and fast, until it falls flat on its face.
16:28:56 [rbm]
Because when a thread crashes, mysqld crashes. In PostgreSQL, a backend crashes and the client just has to make the connection again
16:32:25 [rbm]
On Linux for example, the overhead of creating a thread is basically the same as creating a child process, because on Linux threads _are_ lightweight processes.
16:33:01 [davb]
so if a process is easier to program, go ahead and use it.
16:33:30 [rbm]
If an application is not a perfect match for threads, don't use them. They ain't worth the effort.
16:33:50 [davb]
dotlrn works pretty good now. and its pretty fast on my AMD 950 with 512mb RAM running oracle.
16:33:52 [rbm]
For most cases processes will be better, easier and just as fast.
16:34:02 [rbm]
Athlon?
16:34:17 [davb]
yeah
16:34:35 [rbm]
Cool.
16:34:44 [rbm]
* rbm still only has a K6-2 300
16:37:56 [davb]
the new portal system is really nice.
16:38:08 [rbm]
davb: How's that? Is your site public still?
16:38:52 [davb]
it makes it super easy to customize a page. you can add applets or static sections that contain a description etc...
16:38:55 [markd2]
markd2 (~markd2@r-41.139.alltel.net) has joined #openacs
16:39:25 [davb]
it is not only public, but it isn't crashing!
16:40:02 [rbm]
Cool :)
16:40:21 [markd2]
woot!
16:40:31 [davb]
thanks to markd2's brain.
16:40:51 [davb]
wow, it takes way to long to create a news item.
16:41:49 [rbm]
So Can I go into my files?
16:42:17 [davb]
sure
16:42:31 [davb]
but there is still a bug
16:43:36 [rbm]
yeah, looks like it
16:45:44 [Jackal]
set children_list [ns_xml node children $node_id]
16:45:52 [Jackal]
set child_node [lindex $children_list 0]
16:46:03 [Jackal]
set grandchildren_list [ns_xml node children $child_node]
16:46:26 [davb]
rbm: the class file storage page works, but community and the my space file storage doesn't...
16:46:38 [Jackal]
davb: is this what your were telling me to do?
16:47:22 [davb]
Jackal: you can do that.
16:47:38 [davb]
not sure if it errors if there are not children though.
16:47:39 [rbm]
* rbm posts to sloan-bboard
16:47:53 [davb]
I think you might need to check the number of children first or something...
16:48:25 [davb]
spiffy, I can move a thread!
16:48:39 [Jackal]
right - just doing a test right now
16:48:55 [Jackal]
set xml_doc "<test version=\"1.0\">this is a<blind>test</blind> of xml</test>"
16:49:28 [Jackal]
well by my understanding <blind> would be the grandchild
16:49:43 [Jackal]
but I get:
16:49:45 [Jackal]
invalid node ID n2 n3 n4
16:50:14 [Jackal]
when doing:
16:50:15 [davb]
markd2: you are in
16:50:16 [Jackal]
set content [ns_xml node getcontent $grandchildren_list]
16:50:25 [davb]
you can't get the content of a list
16:50:38 [davb]
you will be using lindex ALOT
16:50:50 [davb]
hence the helper procs to get the first child node :)
16:51:13 [Jackal]
so I have the get the first element of the list?
16:51:45 [markd2]
davb: thanky
16:53:23 [davb]
jackal: you need to get the element you want :)
16:53:40 [rbm]
Jackal: Did you look at the docs?
16:54:18 [Jackal]
rbm: yes - looking now
16:54:27 [davb]
rbm: the docs explain the syntax, but I found it take a while to get the "feel" or parsing XML.
16:54:53 [rbm]
Jackal: Okay. That was my standard "I don't know the answer to your question" answer :-)
16:54:58 [davb]
hey, threaded bboard looks just like Q&A
16:55:01 [Jackal]
plus the doc has at least one syntax error
16:55:17 [Jackal]
when your learning, its hard to know if its your fault or not
16:55:23 [davb]
it had more when I learned :) he fixed alot.
16:55:32 [davb]
and I had to walk uphill 15 miles both way to read the docs
16:55:38 [Jackal]
:)
16:56:15 [davb]
I think they should limit how far back they go in the breadcrumbs, like 3 or 4 levels.
16:56:37 [davb]
oops, can't move threads quite yet...
16:57:09 [Jackal]
davb: i don't quite understand how there are more than one grand-child element in my XML.
16:57:46 [davb]
<blind>some text</blind> is 3 elements. they are all children of the element above.
16:58:10 [Jackal]
oddd...
16:58:28 [davb]
or something like that.
16:58:36 [davb]
remember the text between tags is also a node.
16:58:42 [davb]
even if its only whitespace.
16:58:51 [Jackal]
right
16:59:19 [Jackal]
seams awkward - those helper procs are looking more and more attractive
17:00:41 [davb]
that is what XML is :) I also wrote a proc that returns children, but leaves out nodes that only consist of whitespace. very handy.
17:01:59 [Jackal]
hmmm.. back to w3schools for me
17:02:02 [Jackal]
thanks guys
17:02:30 [davb]
np. good luck.
17:02:53 [davb]
its really scary when I am one of the XML in AOLserver experts.
17:04:00 [davb]
I need to get a bigger disk if I do much oracle work.
17:04:09 [davb]
I can't wait for the postgresql version of dotlrn.
17:05:01 [davb]
I am reading on the cms-list that several CMS products have complex install procedures, needing coordination of many different parts.
17:05:49 [davb]
cool!
17:06:03 [davb]
another webDAV contributor.
17:07:13 [markd2]
* markd2 is waiting for webdavb
17:07:20 [davb]
davb is now known as webdav
17:07:24 [webdav]
webdav is now known as webdavb
17:07:35 [markd2]
yay!
17:07:42 [markd2]
now if that damn godot guy would just show up
17:10:27 [webdavb]
now I can trying to figure out if I can get dotLRN to work for the online education thing we are working on. we aren't a college so alot of the stuff is extra.
17:17:47 [webdavb]
another webdav potentional contributer comes out of the woodwork
17:51:33 [webdavb]
webdavb is now known as davb
17:54:42 [davb]
hmmm.. I want simple-survey to be able to administer tests. well it can ask the questions, but there doesn't seem to be a way to score them.
17:55:53 [markd2]
extend the questions thing to include the expdected answer, then compare them in the submit pahsae?
17:56:03 [markd2]
or maybe make a new package based on simple-survey for online tests
17:56:07 [markd2]
that'd be kinda cool for doing personality tests
17:56:17 [markd2]
"which #openacs IRC personality are you?"
17:56:30 [markd2]
"oh, I see you like goats, hate pants, and are criminally insane. You're Talli!"
17:57:21 [talli]
you forgot dashingly handsome
17:57:31 [markd2]
that was implied of everyone here
17:57:44 [talli]
even that guy markd2?
17:57:51 [markd2]
I don't count
17:57:57 [markd2]
* markd2 is an hiedous orangutan
17:58:15 [talli]
hiedous == hedonistic
17:58:40 [markd2]
ook ook
17:59:22 [davb]
markd2: maybe. simple-survey can take long answers too. those might need to be human scored.
18:00:59 [markd2]
yeah
18:01:10 [markd2]
unless it's one or two word answers
18:01:14 [markd2]
you could supply a list of matches
18:01:18 [markd2]
the oracle tests had that
18:01:30 [davb]
yeah. I'll have to see what the poeple using it would want it to do :)
18:01:38 [markd2]
"query the _________ view to determine Vinod's wardrobe age"
18:01:59 [davb]
ah. cool.
18:02:31 [davb]
and with the chat people are working on, this could be a nice solution.
18:11:23 [talli]
talli has quit (Remote closed the connection)
18:34:55 [adler]
adler (~adler@reva.sixgirls.org) has joined #openacs
18:35:16 [adler]
hello parties
18:36:17 [davb]
hi adler
18:37:52 [adler]
hey davb.. long time, no irc
18:37:52 [Jackal]
Jackal has quit (Read error: 104 (Connection reset by peer))
18:38:37 [adler]
i had a pl/pg sql question ... and I can't find it in the docs, so I thought I'd probe the honorable openacs #
18:39:57 [adler]
I'm can't seem to put a literal single quote into varchar variable
18:40:15 [markd2]
whoa. there's an honorable #openacs? must be on another server
18:40:52 [adler]
yeah, I"m banned from that one, so I figured this was the next best thing.
18:41:57 [davb]
doubling the single quote doesn't work.
18:41:58 [davb]
?
18:42:44 [adler]
sub_select := ''( SELECT id AS '' || attr_name || ''_id, value AS '' || attr_name || '' FROM attribute_full WHERE name = '' || attr_name || '' ) AS '' || attr_name ;
18:42:45 [markd2]
markd2 has quit ("*honk*")
18:43:25 [adler]
I want to add a single quote into one of those [ '' literal text here '' ] blocks
18:44:06 [davb]
oh ok, hang on, I thought you meant pl/sql in oracle...
18:44:24 [davb]
you have to do ''' I think.
18:44:33 [davb]
check rbm's guide to quotes in pl/pgsql
18:44:58 [til]
just insert ' until it works, even if it looks like that at the end '''''''''''' for one single quote ...
18:45:31 [til]
seriously, i think i have already seen the occurence of 8 ' in a row in the oacs code
18:45:43 [adler]
haha.. where's rbm's guide?
18:46:26 [davb]
in the postgresql docs...
18:47:04 [davb]
http://www.postgresql.org/idocs/index.php?plpgsql-porting.html
18:48:01 [davb]
yeah, they really need to fix that and use some other character to delimit pl/pgsql code
18:52:48 [denshi]
denshi (~chatzilla@adsl-216-62-223-193.dsl.rcsntx.swbell.net) has joined #openacs
18:52:59 [denshi]
hello paje
18:55:36 [denshi]
paje: again!
18:55:37 [paje]
* paje spanks talli
18:59:02 [adler]
yeah
18:59:23 [adler]
http://www.postgresql.org/idocs/index.php?plpgsql-porting.html
18:59:23 [oacs-chump]
E: http://www.postgresql.org/idocs/index.php?plpgsql-porting.html from adler
18:59:48 [adler]
WHERE name = '''''' || attr_name || ''''''
19:00:11 [adler]
muchos thanks
19:00:14 [davb]
hi denshi
19:00:39 [talli]
talli (~talli@188.muka.lasv.snfccafj.dsl.att.net) has joined #openacs
19:00:45 [denshi]
hello, /[web]davb*/i
19:00:52 [denshi]
paje: again!
19:00:52 [paje]
* paje spanks talli
19:01:04 [talli]
what a welcome!
19:01:20 [denshi]
I hear they kicked you out of Hawaii.
19:01:35 [talli]
alas, yes
19:01:54 [markd2]
markd2 (~Snak@r-41.139.alltel.net) has joined #openacs
19:01:59 [adler]
Why? Were you talking shit about Arafat?
19:02:04 [adler]
(Hi Talli)
19:02:24 [talli]
hey adler
19:02:33 [talli]
ooo! are we having an argument about israel?
19:02:37 [talli]
how quaint!
19:02:47 [talli]
i say drown the whole fucking country.
19:02:48 [denshi]
check the logs, and no.
19:02:51 [adler]
That's just me
19:03:00 [talli]
and i'm a citizen of it
19:03:06 [adler]
it'd be like a cold shower
19:03:13 [talli]
haha
19:03:21 [adler]
for those excitable Meditarean folks
19:03:27 [denshi]
how does israel factor into this? I just assumed talli was kicked out of hawaii for various pants-related offenses.
19:05:07 [talli]
why do i read slashdot comments? do i actually enjoy keeping up on how stupid people are?
19:05:34 [davb]
you need another wacky open-source project to work on!
19:05:42 [davb]
to keep you too busy to read slashdot
19:05:52 [talli]
oh man
19:06:13 [talli]
maybe i'll start a markd2 emulation project
19:06:19 [adler]
heh
19:06:24 [markd2]
thta should be easy
19:06:26 [markd2]
* markd2 isn't turing complete
19:06:46 [talli]
well, then maybe i'll just build a model airplane
19:06:49 [talli]
and call it a markd2
19:07:06 [denshi]
here's stupid for you:
19:07:08 [talli]
does anyone think that a kibo emulation program could be built?
19:07:08 [denshi]
http://www.mysql.com/doc/M/E/MERGE.html
19:07:08 [oacs-chump]
F: http://www.mysql.com/doc/M/E/MERGE.html from denshi
19:07:22 [denshi]
F: evidence of MySQL's complete and total suckitude.
19:07:22 [oacs-chump]
commented item F
19:08:43 [davb]
what is that for?
19:09:42 [denshi]
F: they couldn't figure out materialized views, so they created a new operation and conviently used a keyword that conflicts with SQL99.
19:09:42 [oacs-chump]
commented item F
19:09:54 [markd2]
ooof
19:10:01 [denshi]
F: cockmongers.
19:10:01 [oacs-chump]
commented item F
19:10:05 [davb]
heh
19:10:35 [talli]
oh man
19:10:47 [talli]
sounds like they didn't do much RTFMing
19:11:19 [talli]
btw, one positive of reading slashdot comments was that i saw one guys sig that said: WWJD? JWRTFM!!!
19:11:48 [adler]
what a jem
19:11:49 [davb]
talli: did't you know people don't like all the complicated standard stuff. they just want to learn the easy mysql way.
19:12:39 [talli]
ooooo!
19:12:49 [talli]
i have an excellent pants quote
19:13:01 [denshi]
it annoys me b/c I was looking at adding the SQL99 MERGE to postgres, and here's MySQL fucking with the language space again!
19:13:10 [denshi]
paje, insult MySQL.
19:13:11 [paje]
MySQL. is nothing but a dankish ooze of ill-borne dog vomit.
19:13:14 [davb]
screw em
19:13:17 [denshi]
damn right.
19:13:29 [talli]
my brother was giving my parents and me a ride to the airport last week and seemed to be driving without his license
19:14:01 [talli]
he was wearing shorts rather than his jeans, which was a problem since he had his wallet tied to the jeans with a chain
19:14:34 [talli]
so as my parents were trying to explain to him the benefits of abstracting one's wallet from one's pants, he began to argue that he had a perfect solution
19:14:43 [talli]
his quote: "i haven't lost my pants in years!"
19:15:18 [denshi]
ooh, pizza. bbiam
19:15:33 [talli]
which is more than a certain person whose name i won't mention but it starts with vinod can say
19:18:49 [jkhong]
jkhong (~jkhong@202.151.216.4) has joined #openacs
19:19:58 [markd2]
is pg_dump the only postgrease backup solution?
19:21:16 [talli]
no, you can also send some hamsters in and they will memorize everything in your DB
19:21:26 [markd2]
woot!
19:21:31 [talli]
but then, you also need a hamster translator, which is expensive
19:21:39 [talli]
someone is working on a free implementation, though.
19:22:04 [jkhong]
Talli, wow, those are pretty smart hamsters -- mine won't look at it long enough. Short attention span ;)
19:22:09 [markd2]
db_hamster
19:22:59 [jkhong]
heh :) The Postgresql docs does mention backing up the filesystem, but you'd have to take the postgres offline first.
19:23:04 [talli]
i got my hamsters from vinod
19:23:11 [markd2]
sounds kinky
19:23:19 [jkhong]
I wonder if vinod has any more of them :)
19:23:23 [markd2]
I was just wondering if they've added anything like oracles hot backups
19:23:24 [talli]
hey
19:23:44 [jkhong]
On the subject of backups, do any of you encrypt your db backups?
19:24:21 [markd2]
No. I just put them on a public server like everybody else
19:24:28 [markd2]
at least that's what Talli told me to do
19:25:58 [jkhong]
uh oh, I can't tell if you're serious. Are you?? *confused*
19:27:02 [denshi]
what's wrong with pg_dump?
19:27:42 [markd2]
it's all ascii, isn't it? and does it handle binary objects?
19:28:12 [davb]
are there binary objects in pg?
19:28:19 [markd2]
this book I have says so
19:28:26 [markd2]
and coming from oracle land, I like the idea of a cumulative physical backup
19:29:02 [talli]
all this talk of backups and dumps make me feel a little, uhm, full
19:29:07 [talli]
must use the potty now
19:30:04 [jkhong]
talli, try not to leave your um.. dumps in the open would ya ;) A little encryption to cover things up would be good this time!
19:32:06 [adler]
who knows the syntax for "full" joining 3 or more tables at a time?
19:32:56 [jkhong]
I remember reading quite some time ago that OpenACS/postgres stores blobs in the filesystem, not the database. That was sometime around pre-7.0 postgres. Maybe it's changed, I don't know.
19:33:03 [davb]
select foo from bar1, bar2, bar3 .... ?
19:33:16 [davb]
openacs can store files in the database or filesystem.
19:33:51 [adler]
ti full join t2 on t1_id = t2_id ...
19:34:19 [davb]
do you have to explicitly specify the full join?
19:34:34 [davb]
you probably need an and
19:34:57 [adler]
yeah.. that way you get all the rows, not just the rows with matching join column values
19:36:43 [til]
select * from t1 join t2 on t1.id=t2.id join t3 on t1.id=t3.id ...
19:37:32 [til]
the t1, t2, t3 syntax is ok too i think, then you'd put the on's in the where clause: where t1.id=t2.id and t1.id=t3.id ...
19:37:46 [davb]
til: did you get my previous announcement about dotlrn?
19:38:06 [til]
yes, forgot to thank you for that
19:38:10 [til]
thanks davb ;)
19:38:24 [davb]
np:) I am happy I got it working!
19:38:31 [til]
is it possible to click on my files now?
19:39:03 [davb]
yes, but you get a "we have a bug" message. I haven't had time to look into it.
19:39:08 [davb]
my stacksize was too small.
19:39:30 [til]
ok
19:41:12 [talli]
my stacksize is never too small!
19:42:07 [davb]
markd2: For reasons of backward compatibility, pg_dump does not dump large objects by default. To dump large objects you must use either the custom or the TAR output format, and use the -B option in pg_dump. See the reference pages for details. The directory contrib/pg_dumplo of the Postgres source tree also contains a program that can dump large objects.
19:42:52 [davb]
or just use -b
19:43:55 [davb]
brb
19:54:46 [adler]
til: Are you sure that I can use those where clauses if I want do you an "full outer" join?
19:55:51 [talli]
anyone know a good mirror to get KDE3 from?
19:56:10 [adler]
and I noticed that join t1 and t2 and then join t1 and t3, then I get duplicate entries for rows that appear in t2 and t3
19:56:11 [talli]
i mean, besides denshi's mother
19:57:17 [adler]
i need something like (t1.id = t2.id = t3.id)
20:05:13 [markd2]
davb: thanks
20:05:22 [davb]
np.
20:05:25 [markd2]
one last question, is pg_dump read-consistent?
20:05:28 [davb]
hey! my files works now.
20:06:18 [davb]
yes. that is all the data is the dump is from the database at the exact some point.
20:06:26 [markd2]
excellent
20:06:28 [til]
adler: full outer is the one where neither id column must be null, right?
20:07:05 [davb]
oh :) looks like the myfiles bug was introduced by my error logging I added.
20:07:36 [til]
the above should be sth like (t1.id = t2.id = t3.id)
20:13:04 [til]
adler: you should only get duplicate rows for entries that appear more then once in one of the joined table, hmm
20:15:49 [adler]
from t1 full join t2 on t1.id = t2.id full join t3 on t2.id = t3.id gave me duplicate rows for rows that appear in t1 and t3 but not t2
20:16:59 [til]
did you try: from t1 full join t2 on t1.id = t2.id full join t3 on t1.id = t3.id
20:17:31 [til]
not sure why, but that seems more obvious
20:18:55 [adler]
that seems to work but I'll have to try with more data
20:18:59 [adler]
Thanks!
20:19:12 [adler]
the docs are slim with this info...
20:20:57 [til]
this is more standard sql stuff, so i wouldn't exclusively look in the pg docs
20:22:25 [adler]
right
20:23:47 [til]
and you are sure you want to do a full join, not an inner join, or left join? i wonder when one could need a full join over three tables
20:27:54 [adler]
let's see. I want this to work with any number of tables. The tables all have two columns. The first column is the row id and the second column is the value
20:42:17 [davb]
I don't see a way to add arbitraty pages of additional content with dotlrn.
20:42:17 [jkhong]
jkhong has quit (Read error: 104 (Connection reset by peer))
20:43:47 [davb]
I think i'll research adding etp as a dotlrn portlet/app/whatever
21:05:20 [jkhong]
jkhong (~jkhong@202.151.220.32) has joined #openacs
21:06:29 [jkhong]
Is it possible to mail a binary attachment using ns_sendmail?
21:06:44 [markd2]
I think you have to encode it yourself
21:06:53 [markd2]
and set up the various mimemagic to do the attachment stuff
21:06:57 [markd2]
there's probably a lib out there that does it
21:07:24 [jkhong]
thanks markd2. Any clues where to find the magic lib? :)
21:07:37 [markd2]
nope
21:08:30 [davb]
I thought vinod patched aolserver to make it work.
21:08:33 [jkhong]
I'll go look around for it. Might just appear before me! Thanks.
21:08:43 [davb]
ns_uuencode or something?
21:08:57 [markd2]
could be
21:09:00 [jkhong]
wait, tell me more about ns_uuencode! :) What does it do?
21:09:04 [markd2]
Vinod works his magic when I'm not looking
21:09:27 [davb]
I am not sure. he was working on acs-mail or messaging.
21:09:48 [davb]
let's consult the bboard
21:10:40 [jkhong]
consulting... :)
21:10:59 [davb]
here is a thread about that stuff.
21:11:03 [davb]
http://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=000339&topic_id=12&topic=OpenACS%204%2e0%20Design
21:11:56 [davb]
I am not sure if that is what you need.
21:13:12 [jkhong]
it's sortof. I just wanted OpenACS to mail me a copy of the nightly db backup. Will work it out from here. Thanks.
21:14:51 [davb]
np
21:15:21 [davb]
uhoh, someone just asked if we were planning on porting acs java to postgresql...
21:16:37 [jkhong]
:) Convert the guy to tcl!! hahaha
21:17:24 [rbm]
oom
21:17:39 [rbm]
davb: Where?
21:17:49 [davb]
oacs bboard
21:17:58 [rbm]
* rbm hasn't checked his mail yet
21:19:53 [davb]
ok, some idiotic commerical on the radio: if you had good speakers, your stereo would sounds like this, but your stereo probably sounds like this..
21:20:11 [rbm]
clever
21:22:31 [markd2]
* markd2 refrains from posting "porting the acs 4x java? you're in for a world of hurt bud"
21:26:41 [rbm]
* rbm just posted
21:30:40 [davb]
bye
21:30:44 [davb]
davb has quit ()
22:03:40 [adler]
adler has quit ("BitchX: it keeps going and going and going and going and...")
22:06:58 [markd2]
markd2 has quit ("wheeeee")
22:21:30 [jkhong]
jkhong has quit (Read error: 110 (Connection timed out))
23:35:53 [denshi]
denshi has quit ()