IRC log of swhack on 2002-02-24

Timestamps are in UTC.

00:00:36 [bijan]
Hmm. I'm not actually measuring some things correctly.
00:00:52 [bijan]
That seems somewhat dependan on the math lib
00:03:20 [sbp]
long time: I could time it, but I'm trying to time Eep at the mo'. It's being a bit barfy
00:05:19 [bijan]
Heh.
00:05:50 [bijan]
I'd really ahve to compile that sucker by hand. I'm not sure I *want* to :)
00:06:44 [sbp]
heh, heh
00:17:57 [AaronSw]
* AaronSw waves
00:18:02 [bijan]
hey aaron.
00:18:11 [AaronSw]
Hey bijan
00:19:03 [AaronSw]
Hm, lots of new people
00:20:09 [AaronSw]
I'm in the middle of "The Star Fraction" now, so I'll catch up on stuff later.
00:20:13 [bijan]
oh aaron.
00:20:19 [AaronSw]
yeah?
00:20:24 [bijan]
Any long running n3 things not involving builtins?
00:21:13 [bijan]
* bijan still looking for tests.
00:21:24 [AaronSw]
None come to mind.
00:21:55 [bijan]
Oh well.
00:22:51 [AaronSw]
Wow, Lessig wrote me a personal thank you note! That's awesome.
00:22:59 [bijan]
For?
00:23:24 [AaronSw]
I guess it's sort of a secret.
00:23:39 [AaronSw]
Some RDF stuff I did for him...
00:24:31 [AaronSw]
Ooh, neat: http://apple.slashdot.org/
00:27:23 [sbp]
* sbp returns
00:30:02 [sbp]
1.52 0.11 for that test? Hmm... something must have borked
00:31:23 [bijan]
1.52?
00:31:49 [sbp]
seconds to parse the NTriples files (800KB), seconds to perform the query
00:32:16 [bijan]
Which ntriples file. the geo thing?
00:32:35 [sbp]
yeah. I converted it to NTriples since I didn't want to crash test my N3 parser... :-)
00:32:40 [bijan]
Heheheh.
00:32:45 [bijan]
Got ya beat *there*.
00:34:42 [sbp]
wow! it wasn't kidding!
00:34:43 [sbp]
1.42999994755
00:34:43 [sbp]
0.160000085831
00:34:53 [bijan]
This is eep?
00:34:56 [sbp]
yep
00:35:00 [bijan]
Did you just smoke both me and cwm?
00:35:01 [bijan]
You pig.
00:35:05 [sbp]
bwahahahaha!
00:35:15 [sbp]
I think the problem with rm's test is IDLE
00:35:26 [sbp]
if IDLE has to print something really huge, it just stands there
00:35:37 [sbp]
OTOH, I might be wrong - it might be a problem with the inference module
00:35:43 [sbp]
but the query module is... well, rather fast
00:36:07 [sbp]
* sbp goes to get a drink
00:38:24 [sbp]
Hmm... and the output file is 0.99MB
00:38:32 [sbp]
Python is an awesome thing
00:38:57 [bijan]
Hmm.
00:39:03 [bijan]
Something seems up with that.
00:39:27 [sbp]
I can post you the data, if you like
00:39:34 [bijan]
sure.
00:40:11 [bijan]
What is your query engine doing, btw?
00:40:26 [bijan]
I guess if it's just a loop over the list, that could be nippy.
00:42:19 [sbp]
it's querying for the triples, plus matching the variables
00:42:26 [sbp]
[sent, BWT]
00:42:32 [sbp]
or BTW...
00:42:37 [bijan]
"querying...*plus* mathcing?"
00:42:45 [sbp]
yeah
00:42:57 [sbp]
?x :y ?z is not the same as ?x :y ?x
00:44:24 [bijan]
ouch, y'know, *that's* something that bites me.
00:44:27 [bijan]
I think.
00:44:35 [sbp]
what's that?
00:44:50 [sbp]
oh, does it not match the variables?
00:45:04 [bijan]
er..hmm.
00:45:46 [sbp]
test case: store: :p :q :p . :p :q :r . query: { ?x :q ?x } log:implies { ?x :q ?x } .
00:45:47 [bijan]
in {?x :parent ?z. ?y :parent ?z} => {?x :co-parent ?y} and
00:46:06 [bijan]
:bob :parent :sally. :mary :parent :sally.
00:46:13 [bijan]
I will get that bob and mary are their own co-parents
00:47:03 [sbp]
Ugh
00:47:04 [bijan]
Oh, this isnt' the inference? This is the query?
00:47:17 [sbp]
yep, just the query
00:47:38 [bijan]
D'oh!
00:47:43 [bijan]
I thought this was the *inference*.
00:47:46 [sbp]
heh, heh
00:47:53 [sbp]
I'll benchmark the inference...
00:48:05 [AlexMax]
AlexMax has quit ("ButchX-p6 by conio Accept no limitations")
00:50:02 [bijan]
*Much* less than a second.
00:50:08 [sbp]
Doing query test...
00:50:08 [sbp]
0.160000085831
00:50:08 [sbp]
Doing inference test...
00:50:08 [sbp]
0.27999997139
00:50:12 [bijan]
Hmm.
00:50:33 [bijan]
How many hits do you get?
00:50:41 [sbp]
still pretty quick. that's using infer.filter, which is the main inference function
00:50:42 [sbp]
hits?
00:50:47 [sbp]
1211
00:50:54 [bijan]
I get 1211
00:50:58 [bijan]
From your query.
00:50:59 [sbp]
7266 1211 1211
00:51:18 [sbp]
7266 is the length of the input, in triples
00:51:52 [bijan]
0.02 for the query
00:52:00 [bijan]
For some varient of the query.
00:52:27 [bijan]
7269 for the triples
00:52:39 [sbp]
ooh, slight discrepancy
00:52:45 [bijan]
The rules.
00:53:21 [bijan]
Still.
00:53:37 [bijan]
I'm not sure what your inference thing is.
00:53:44 [bijan]
Are you doing the rule we used?
00:53:47 [sbp]
yep
00:54:00 [sbp]
it does { ?x :blargh ?y } => { ?x :blargh ?y } .
00:54:13 [bijan]
Do you optimize for that/
00:54:13 [bijan]
?
00:54:32 [bijan]
Where do you accumulate results?
00:54:42 [bijan]
* bijan suspects that writing to rdf_db is *really* killing him.
00:54:48 [sbp]
no - it's pretty general. But then, once you have a query engine, it's just a matter of plugging the variables back in at the other end
00:55:01 [sbp]
accumulate results?
00:55:17 [sbp]
it can print them out as a Python list, or as NTriples
00:55:25 [bijan]
Ok, so in a list.
00:55:33 [bijan]
yes, accumulating in a list is faster for me, I'll bet.
00:55:40 [bijan]
Writing each to the database is slow.
00:55:48 [bijan]
Interleaving the writes is prolly slow.
00:56:04 [sbp]
yeah... there are a number of reasons why it would be slower
00:56:39 [bijan]
I wonder why CWM is slower.
00:56:42 [bijan]
So much slower.
00:56:48 [bijan]
And I wonder if this is a corner case where you do well.
00:56:56 [bijan]
Or whether you do well in general.
00:56:58 [sbp]
the new CWM? Tim is interning formulae now
00:57:07 [sbp]
well in general: I doubt it :-)
00:57:18 [sbp]
I'm just trying to set up rm's test case right now...
00:57:32 [bijan]
And I have to run! Hurry up!
00:57:52 [sbp]
I'm trying, I'm trying!
00:59:17 [sbp]
it seems to just sit there
00:59:22 [sbp]
let's reduce the test case a bit...
01:00:18 [bijan]
Hmm. I bet you have to traverse the list for each additional statement?
01:00:25 [bijan]
You might be better off shrinkin the rules.
01:00:46 [sbp]
yep, I just did... still running
01:00:48 [bijan]
If you have big_list_of_triples (datastore)
01:01:05 [bijan]
Then for each antecedent statemetn: search list until get hit.
01:01:21 [bijan]
And having to start over if you get a miss down the line...
01:01:24 [bijan]
yeah, that will be slow.
01:01:48 [sbp]
Hmm...
01:02:18 [bijan]
(Assuming that I have your inference strategy correct)
01:02:25 [bijan]
even if that's fast for the once through case.
01:02:52 [sbp]
I added one triple to the ante and desc, and it added a second to the query...
01:02:57 [sbp]
s/query/inference/
01:03:08 [bijan]
Which one?
01:03:12 [bijan]
music one?
01:03:14 [bijan]
Or the geo one?
01:03:16 [sbp]
yep
01:03:18 [sbp]
the music one
01:03:28 [sbp]
ah, add one more and it just sits there
01:03:32 [bijan]
bug?
01:03:39 [sbp]
it seems to be
01:03:47 [bijan]
* bijan is disappointed.
01:04:04 [bijan]
* bijan shifts to being superior because of correctness, rather than performance.
01:04:29 [sbp]
difficult to tell, though. The new line is a ?x ?y ?z type of thing, which might be causing it grief - but it already had one to handle
01:04:30 [bijan]
Is it any three triples or a specific third triple?
01:04:35 [sbp]
correctness: heh, heh
01:04:49 [sbp]
dunno, this one is still hanging. I'll cut it and try again
01:04:50 [bijan]
Oh, I'm *creaming* you on documentation!
01:05:05 [sbp]
yeah. There isn't any Eep documentation :-)
01:05:09 [bijan]
And Looks. I'm Much Cuter. ;)
01:05:11 [bijan]
Yes, I know :)
01:05:17 [bijan]
That's why I'm killing you :)
01:05:22 [sbp]
heh, heh
01:05:35 [sbp]
but "Cuter"? nah
01:05:42 [bijan]
*Definitely*.
01:05:44 [bijan]
No question.
01:05:48 [bijan]
Everyone agrees!
01:05:53 [sbp]
I don't
01:05:58 [sbp]
so it can't be everyone
01:06:02 [bijan]
"Everyone who counts agrees!"
01:06:12 [sbp]
I count! 1, 2, 3, 4, 5, 6, 7...
01:06:16 [bijan]
You do too, actually; you just lie about it.
01:06:28 [sbp]
Perhaps
01:06:29 [bijan]
ok I've really got to run. ta
01:06:32 [sbp]
c'ya!
01:06:36 [bijan]
bijan has quit ("Leaving")
01:09:57 [sbp]
ooh, it seems to be a problem in the query module, in fact
01:10:42 [sbp]
without this one particular line, it's really quick:-
01:10:43 [sbp]
Doing parse test...
01:10:43 [sbp]
0.0499999523163 134
01:10:43 [sbp]
Doing query test...
01:10:43 [sbp]
1.05000007153 134
01:12:33 [sbp]
ooh, it just did a slightly different test in about half a minute:-
01:12:33 [sbp]
Doing query test...
01:12:33 [sbp]
36.4199999571 134
01:13:52 [sbp]
and again, with a proper "length of results" count: 36.25 31
01:14:38 [sbp]
ah, I have an idea
01:17:19 [sbp]
* sbp tries it with a new cp function
01:17:44 [sbp]
Pff, slower: 37.6799999475 31
01:20:45 [sbp]
Hmm... it's the last bit of a particular function that's taking so long
01:21:12 [sbp]
argh! no wonder
01:21:12 [sbp]
1014513652.06 265856
01:21:32 [sbp]
265856 cartesian paths! not efficient going through all of them...
01:22:00 [sbp]
s/paths/products/
01:25:23 [sbp]
so, it is the cp function doing it... ugh
01:27:54 [sbp]
ooh, with the new function, I get a MemoryError
01:27:56 [sbp]
that's a new one
01:30:20 [sbp]
bijan will be so happy :-)
01:34:45 [sbp]
heh, the test that crashes out all of the time is trying to compute 35,624,704 cartesian products
01:40:11 [sbp]
* sbp mails bijan the good news
01:42:29 [sbp]
heh, heh:-
01:42:30 [sbp]
File "query.py", line 61, in xtquery
01:42:30 [sbp]
if n > 500000: raise "You want me to find "+str(n)+" cartesian products? Pff"
01:42:30 [sbp]
You want me to find 35624704 cartesian products? Pff
01:46:38 [AaronSw]
http://www.python.org/doc/current/lib/profile.html
01:47:28 [sbp]
ooh, neat
01:47:42 [sbp]
* sbp says "ooh" a lot lately
01:47:57 [AaronSw]
Me too, I think.
01:48:10 [sbp]
'tis a good word
01:48:35 [AaronSw]
Heh, google bought the word "python" on Google.
01:48:46 [AaronSw]
--
01:48:47 [AaronSw]
python=$10K?
01:48:47 [AaronSw]
Enter Google's programming contest
01:48:47 [AaronSw]
Win fame, fortune and a trip to CA
01:48:47 [AaronSw]
google.com/programming-contest/
01:48:48 [AaronSw]
--
01:48:59 [sbp]
heh
01:50:03 [AaronSw]
They have a lot of different versions of it, but they don't seem to have bought other languages.
01:50:26 [AaronSw]
Ah, they bought C++
02:09:19 [bijan]
bijan (bparsia@login6.isis.unc.edu) has joined #swhack
02:09:35 [sbp]
uh oh
02:09:44 [bijan]
I came on to giggle!
02:09:50 [sbp]
damnit!
02:10:13 [bijan]
I am curious about the huge discrepancy in your times :)
02:10:24 [sbp]
me too
02:10:45 [sbp]
well, for smaller queries, you don't get many results, so it's stunningly fast
02:11:00 [bijan]
Eh, that alone isn't good reasoning.
02:11:10 [sbp]
but for larger ones, you get more results... for each result, your cp value goes up by the length of that result
02:11:18 [sbp]
it skyrockets quite quickly
02:11:33 [bijan]
"many results", you mean consequences per application?
02:11:35 [sbp]
goes up: as in *multiplied* by the length
02:11:47 [sbp]
no, not consequences...
02:11:51 [sbp]
this is in the query module
02:12:03 [bijan]
I don't understand.
02:12:08 [bijan]
The geo example had lots of results...
02:12:13 [bijan]
OHOHOH.
02:12:17 [bijan]
YOu mean anding the results/
02:12:19 [bijan]
?
02:12:34 [bijan]
(That's the same as what I meant by consequences0
02:12:49 [sbp]
Hm... yeah, I guess so
02:12:53 [bijan]
(A query is just an inference to the matches in the antecedent)
02:13:10 [bijan]
Like the sample one you gave.
02:13:30 [bijan]
So, filtering a list is fast.
02:13:40 [bijan]
(Hmm. I wonder if list comprehensions would be nippy..)
02:14:00 [bijan]
SOrry.
02:14:07 [sbp]
well, it just performs simple matching, and then ponders over the paths through each of the results
02:14:08 [bijan]
Say I have a query statemetn A.
02:14:13 [sbp]
O.K.
02:14:33 [bijan]
To match A against the store, I wall the list examining each statement.
02:14:42 [bijan]
If it matches, it goes into the results.
02:14:48 [bijan]
When I read the end of the list I'm done.
02:14:49 [bijan]
Yes?
02:15:11 [sbp]
yep
02:15:13 [bijan]
If I have two query statements, A and B
02:15:19 [bijan]
I wall the list gathering all the As?
02:15:25 [bijan]
Then walk the list gathering all the Bs?
02:15:31 [sbp]
[(a results), (b results)]
02:15:36 [sbp]
and then find the paths
02:15:58 [bijan]
"paths'?
02:16:13 [sbp]
cartesian product
02:16:28 [sbp]
here's how I caught it:-
02:16:28 [sbp]
for item in all: n *= len(item)
02:16:29 [sbp]
if n > 500000: raise "You want me to find "+str(n)+" cartesian products? Pff"
02:16:41 [sbp]
"all" is the list of results, per above
02:16:49 [sbp]
[n is initially 1]
02:17:12 [bijan]
Hmm. I'm not sure I understand.
02:17:16 [bijan]
Which N hurts?
02:17:25 [bijan]
The length of the query? (A & B &...n)
02:17:39 [bijan]
Or the length of the results (rA & rB &....)
02:17:45 [sbp]
the product of the lengths of the items in the results
02:17:55 [sbp]
(rA * rB *....)
02:17:59 [bijan]
Ah.
02:18:09 [bijan]
Because you cross compare all the permutaitons.
02:18:14 [sbp]
yep
02:18:20 [bijan]
*that's* dumb.
02:18:23 [sbp]
yep
02:18:45 [sbp]
rather: that's *dumb*.
02:19:24 [bijan]
Ouch. i"m trying to generate a simple unification algo for that.
02:19:34 [bijan]
For your walk the list technqiue.
02:19:36 [bijan]
Not trivial.
02:19:46 [bijan]
especially without backtracking.
02:20:03 [sbp]
indeed. the approach seemed very intuitive to me, but I didn't consider what'd happen when I scaled it up a little bit... :-)
02:21:56 [sbp]
the only way to beat it would be to totally scrap the algorithm, and start again
02:22:05 [bijan]
Well, yes.
02:23:06 [bijan]
Yay! You're again behind me in completeness too! :)
02:23:45 [sbp]
I'm a fair way behind in all places... except for small queries :-)
02:24:00 [bijan]
Well, actually, there too.
02:24:07 [bijan]
Sorry.
02:24:12 [sbp]
how's that?
02:24:38 [bijan]
Well, you kill me if I use an n3 rule writing to a "heavy" context.
02:24:56 [bijan]
But if I use a findall I'm 2 order of mags faster :)
02:25:56 [sbp]
* sbp ponders re-writing vs. scrapping
02:26:17 [bijan]
In general, SWI queries are going to be reasonable quick.
02:26:49 [bijan]
I mean, I don't *have* to use an N3 rule to find all the foos that match bar.
02:26:55 [bijan]
That's part of the reason to do in SWI :)
02:27:07 [sbp]
yep... I can see the logic behind using Prolog
02:27:16 [bijan]
SO that I can write prolog programs to manipulate the n3 store.
02:27:59 [bijan]
Come over to the dark side.
02:28:06 [bijan]
Learn prolog...
02:28:09 [bijan]
Work on mine...
02:28:42 [sbp]
by the time I would have learned Prolog to the extent that I can help you with CWMClone, you'll have finished it and gone on to better things
02:29:16 [bijan]
Ha! I doubt it :)
02:29:26 [bijan]
But I would be happy to turn it over to you ;)
02:29:37 [bijan]
Hey, your other choice is to rewrite query...
02:29:47 [bijan]
Learning prolog is looking good, eh?
02:30:20 [sbp]
blargh. I suppose. Any good manuals online?
02:30:26 [bijan]
Yes.
02:30:34 [sbp]
.google Prolog primer
02:30:35 [Galahad]
Prolog primer: http://www.ibc.wustl.edu/moirai/cs_magenta/prolog.html
02:30:36 [bijan]
SEveral *Excellent* tutorials, actually.
02:31:33 [sbp]
well, that one is weak
02:31:37 [bijan]
I link to a few from my first article
02:31:42 [sbp]
.google Prolog tutorial, that bijan approves
02:31:43 [Galahad]
no results found.
02:31:46 [sbp]
ah, good point
02:33:32 [bijan]
Hmm. WHy do you get the cartesian product?
02:34:08 [sbp]
so that I can match the variables against all of the paths
02:34:24 [bijan]
Ok, A & B
02:34:37 [bijan]
I'm walking for A, find a match.
02:34:42 [bijan]
Why not check B right then?
02:34:47 [bijan]
Will that help?
02:35:04 [sbp]
yeah, but that'd be a totally different way of querying
02:35:13 [sbp]
in fact, it's the original way that I wrote it, as I recall
02:35:22 [bijan]
Sure, it's a kind of unification.
02:35:28 [bijan]
Why did you abandon it?
02:35:50 [sbp]
the latter way seemed easier (it was much easier to program), and faster for the small tests that I ran
02:36:36 [bijan]
Well, what about filter on A, then walk rA to see if B matches?
02:36:49 [sbp]
Hmm...
02:36:49 [bijan]
I don't understand the "paths' :)
02:37:05 [sbp]
perhaps I could print out debug information for a sample query?
02:37:08 [bijan]
The cartesian product doesn't maek *sense*
02:37:16 [bijan]
Sure.
02:38:46 [sbp]
the query:-
02:39:50 [sbp]
print tquery(eep.parse("""?x <#sonOf> ?y .
02:39:50 [sbp]
?y <#sonOf> ?z ."""),
02:39:50 [sbp]
eep.parse("""<#Bob> <#sonOf> <#Fred> .
02:39:50 [sbp]
<#Fred> <#sonOf> <#John> .
02:39:50 [sbp]
<#John> <#sonOf> <#Wayne> ."""), 1)
02:40:23 [bijan]
Ok, can, both match all of them.
02:40:46 [bijan]
You store bindings with the results?
02:41:15 [bijan]
i.e., {(?x, #bob) (?y, #Fred)...
02:42:01 [sbp]
argh, sorry, I got disconnected
02:42:03 [sbp]
actually, that's not a good example because the query triples are basically identical
02:42:04 [bijan]
Or somthing.
02:42:06 [sbp]
here's a better one:-
02:42:12 [sbp]
print tquery(eep.parse("?x <#sonOf> ?y .\n?x <#name> ?z ."),
02:42:12 [sbp]
eep.parse("""<#Bob> <#sonOf> <#Fred> .
02:42:12 [sbp]
<#Fred> <#sonOf> <#John> .
02:42:13 [sbp]
<#Bob> <#name> "Bob" .
02:42:15 [sbp]
<#Fred> <#name> "Fred" ."""), 1)
02:42:29 [sbp]
and the debug information:-
02:42:29 [sbp]
all results: [[[<#Bob>, <#sonOf>, <#Fred>], [<#Fred>, <#sonOf>, <#John>]], [[<#Bob>, <#name>, "Bob"], [<#Fred>, <#name>, "Fred"]]]
02:42:30 [sbp]
dict of results: {'?z': None, '?y': None, '?x': None}
02:42:46 [sbp]
I store the bindings only at the very end, when it does the variable matching
02:42:54 [bijan]
I don't understand.
02:43:12 [bijan]
You found all the #sonOfs
02:43:20 [bijan]
THen all the #names
02:43:22 [sbp]
and all the names
02:43:32 [bijan]
then, for each sonOf.
02:43:37 [sbp]
no
02:43:50 [sbp]
not for each sonOf. This when I get the cp
02:43:58 [sbp]
which turns out to be: [[[<#Bob>, <#sonOf>, <#Fred>], [<#Bob>, <#name>, "Bob"]], [[<#Fred>, <#sonOf>, <#John>], [<#Bob>, <#name>, "Bob"]], [[<#Bob>, <#sonOf>, <#Fred>], [<#Fred>, <#name>, "Fred"]], [[<#Fred>, <#sonOf>, <#John>], [<#Fred>, <#name>, "Fred"]]]
02:44:18 [sbp]
then I apply matching
02:44:30 [bijan]
Ergh.
02:44:32 [bijan]
Pretty print that?
02:44:36 [sbp]
sure...
02:44:47 [bijan]
Or pretty paste, whatever :)
02:45:02 [sbp]
[[<#Bob>, <#sonOf>, <#Fred>], [<#Bob>, <#name>, "Bob"]]
02:45:02 [sbp]
[[<#Fred>, <#sonOf>, <#John>], [<#Bob>, <#name>, "Bob"]]
02:45:03 [sbp]
[[<#Bob>, <#sonOf>, <#Fred>], [<#Fred>, <#name>, "Fred"]]
02:45:03 [sbp]
[[<#Fred>, <#sonOf>, <#John>], [<#Fred>, <#name>, "Fred"]]
02:45:39 [sbp]
the original query is ?x <#sonOf> ?y .\n?x <#name> ?z .
02:45:40 [bijan]
Then you see if ?x is the same in the first one?
02:45:48 [sbp]
yep
02:45:58 [bijan]
Ok, yes, that's insane :)
02:46:07 [sbp]
well, it's a bit more generic than that, because it has to work for all queries...
02:46:41 [bijan]
Hmm. But hte originalist is just a list of triples yes/
02:46:42 [bijan]
?
02:46:48 [bijan]
Are you using a >2.1 python?
02:46:49 [sbp]
the original list of what?
02:46:52 [sbp]
Python 2.2
02:46:53 [bijan]
triples
02:46:57 [bijan]
Ooo! Ok
02:47:00 [sbp]
yeah, that's just a list
02:47:04 [bijan]
Try a list comprehension on it!
02:47:15 [sbp]
and how would I be doing that? :-)
02:47:20 [bijan]
(Taking a leaf from mnesia)
02:47:26 [bijan]
Hit the manual.
02:47:40 [sbp]
* sbp prints out a copy and goes to find a hammer
02:47:57 [bijan]
A list comprehension is basically a query of the form "All items where item is blah blah blah
02:48:48 [bijan]
I don't know the python syntax for them.
02:49:29 [bijan]
Mnesia (the erlang distributed db) uses them for it's query language (mnesymone)
02:49:31 [sbp]
oh, right: [x(s) for s in list]
02:49:44 [bijan]
There you go.
02:50:05 [sbp]
I use that all over the place for stuff. What do I do with in in the query, though?
02:50:06 [bijan]
Ok, what would be the transform of the query...
02:50:41 [bijan]
Well, look at your query...
02:51:06 [bijan]
?x :sonOf ?y. ?x :name ?z.
02:51:20 [bijan]
Hmm.
02:51:23 [bijan]
No.
02:51:52 [bijan]
Damn, I'm still binding the variables paritally :)
02:52:12 [bijan]
End up with your cross product again.
02:52:53 [sbp]
When I was writing the first query engine, I kept doing partial bindings... quite frustrating. Then I thought I had it figured out for Eep :-)
02:53:15 [sbp]
well, it does *work*
02:53:17 [bijan]
Partial bindings are the right why.
02:53:19 [bijan]
way
02:55:17 [bijan]
What's your break over point?
02:55:31 [bijan]
3 query statements and 100 items?
02:55:31 [bijan]
:)
02:55:36 [sbp]
*ahem*
02:55:48 [bijan]
Just curious ;)
02:55:56 [sbp]
at the moment, I raise an exception when asked to find the cp of more than 500000 paths
02:56:07 [bijan]
Hmm. I wonder if number of variables plays a role.
02:56:08 [sbp]
that'd take about 2 minutes, I guesstimate
02:56:14 [bijan]
Interesting.
02:56:37 [bijan]
50,0000 paths is...
02:56:45 [bijan]
Er.
02:56:50 [bijan]
50,000...
02:58:00 [sbp]
the problem is, it's dependent not just on the amount of query triples, but the amount of query answers too, for each query triple. So it's difficult to give an exact borking point
02:58:09 [bijan]
Yes.
02:58:17 [bijan]
THough query hurts you worse.
02:59:12 [bijan]
That you're triple bound makes high query triple numbers likely
02:59:49 [sbp]
triple bound?
03:00:30 [bijan]
Having to cast yoru statemetns as triples.
03:00:50 [bijan]
I.e., if you could have polyadic predicates, you could smoosh them together.
03:01:09 [sbp]
well, it's telling that all of the tests worked. In actual fact, I rarely run big queries
03:01:18 [sbp]
polyadic: quite. But this is RDF, mister!
03:02:10 [bijan]
That's what I said ;)
03:02:14 [sbp]
ah, the borking point will be dependent upon the amount of variables per query triple
03:02:26 [sbp]
[obviously]
03:02:27 [bijan]
Why?
03:02:51 [bijan]
Well, except in how they affect the number of results?
03:02:52 [sbp]
because the amount of matches you get rises from 1 to 2 to 3 univars in the query triple
03:03:21 [sbp]
the number of results is a big factor, since the cp is dependent upon the product of them all
03:03:52 [bijan]
So, not at all except in affecting the number of results ;)
03:04:05 [bijan]
IOW, it's teh number of results which affect the borking point ;)
03:04:20 [bijan]
Hmm. Some simple analysis should help, yes?
03:04:29 [bijan]
If you have 3 vars, kill that triple
03:04:40 [bijan]
SInce it matches anything, it permits anything.
03:04:53 [bijan]
If you have *no* vars, do that first and just check the bindings.
03:05:13 [sbp]
if n is 1 and res is the list of results, for i in res: n *= len(i). if n is now bigger than 500000, bork
03:05:26 [sbp]
yep, the simple analysis should help
03:05:48 [sbp]
but I tried it, using a slightly more complex simple query (I used an xrquery, in fact)
03:06:16 [sbp]
so it did a bit of the matching at query time. Obviously not enough, because it still borked
03:06:49 [sbp]
the only way to fix it would be to change the algorithm so that for each member on the first result, you pass the current bindings along, and so on until you reach the end of a path
03:07:01 [sbp]
it's the sane way, the normal searching algorithm
03:07:02 [bijan]
Yep.
03:07:03 [AaronSw]
My policy of keeping everything comes in handy. My little brother Noah is using my 8th grade homework since the teachers assigned him the same thing they assigned me.
03:07:15 [sbp]
lol!
03:07:30 [bijan]
* bijan finds that annoying, in a priggest way.
03:07:36 [bijan]
priggish.
03:07:40 [AaronSw]
.wn priggish
03:07:41 [Galahad]
priggish defined as:
03:07:42 [Galahad]
- adj : exaggeratedly proper; "my straitlaced Aunt Anna doesn't approve of my miniskirts" [syn: {prim}, {prissy}, {prudish}, {puritanical}, {square-toed}, {straitlaced}, {straightlaced}, {tight-laced}, {victorian}]
03:08:34 [sbp]
heh. "priggishly prissy puritanical prude". Wonderful
03:08:51 [bijan]
* bijan having been an instructor, forced by university rules to enforce measures against cheating, doesn't have fond memories of that.
03:09:09 [sbp]
I'll bet
03:10:41 [sbp]
but the 8th grade is hardly degree-time
03:10:56 [bijan]
Hmm. Eep might actaully work for the chimp, well.
03:11:00 [AaronSw]
I'm not letting him copy my writing assignments, but I figure the empirical data is ok. (I told him to try searching on Napster first.)
03:11:09 [bijan]
Ah!
03:11:25 [bijan]
Prolly, unless the task is to gather the empirical data ;)
03:11:43 [AaronSw]
Hey! He's gathering it...
03:11:53 [sbp]
heh, heh
03:11:54 [bijan]
You knew what I meant.
03:12:37 [bijan]
The skill of looking stuff up is important, as is the skill of getting your older brother to turn over *his* results, but they're different than runnin gan experiment.
03:13:27 [AaronSw]
The assignment was more like, go see if your family has these genetic traits...
03:18:05 [bijan]
Ok, ta.
03:18:06 [bijan]
bijan has quit ("Leaving")
03:29:46 [AaronSw]
Ugh, the monitor beeping is back
03:30:03 [sbp]
what's that?
03:30:29 [AaronSw]
My monitor emits the high-pitched hum when nothing changes on the screen.
03:30:49 [sbp]
quick fix: turn the monitor off, put a bin bag over it, and haul it out the nearest window. No more humming!
03:31:04 [AaronSw]
Unfortunately it's part of my computer: I have a laptop, remember?
03:31:13 [sbp]
ah... of course
03:33:31 [sbp]
ooh, another potenial flame war on www-html
03:33:45 [sbp]
"Let's make the web accessible to everybody but popular browser users!" - Robert Koberg
03:34:02 [AaronSw]
Heh!
03:34:50 [Ash]
Ash (~aaron@166.70.121.2) has joined #swhack
03:34:54 [AaronSw]
Ash!
03:35:02 [Ash]
hey there, other Aaron
03:35:06 [Ash]
;-)
03:35:12 [sbp]
* sbp waves
03:35:15 [AaronSw]
* AaronSw dons PROTECTIVE GEAR
03:35:15 [Ash]
I just installed your archiver proxy
03:35:18 [Ash]
hey sbp
03:35:18 [AaronSw]
oooh
03:35:27 [Ash]
well, grabbed the code and ran it. Heh.
03:35:37 [AaronSw]
It seems your machine hasn't melted yet. This is good. :)
03:35:48 [sbp]
Archiver Proxy: working out of the box since the fall of 201
03:35:51 [Ash]
I've been wanting something that does this for a while, and it's been on my project list but I haven't gotten around to writing it.
03:35:52 [Ash]
good job
03:35:53 [Ash]
:)
03:35:53 [sbp]
er... that'd be 2001
03:35:58 [AaronSw]
Heh.
03:36:01 [AaronSw]
Thanks.
03:38:41 [AaronSw]
If you visit it with your web browser, you get a little web server with configuration options and access to your archived docs
03:39:40 [Ash]
hmm
03:39:47 [Ash]
'Resource temporarily unavailable'
03:39:53 [Ash]
the config page is cool.
03:40:01 [AaronSw]
thanks
03:40:06 [AaronSw]
where do you get the "temporarily unavailable" message?
03:40:13 [Ash]
When I try to go to a site
03:40:31 [Ash]
Odd.
03:40:36 [AaronSw]
That's odd... you're not inside a company firewall or something, are you?
03:40:44 [Ash]
Not this machine, no.
03:40:47 [Ash]
It's just nat'ed.
03:40:52 [AaronSw]
what's the full message?
03:41:09 [Ash]
Error connecting to slashdot.org on port 80: Resource temporarily unavailable
03:41:14 [Ash]
with a 404 up to
03:41:15 [Ash]
p
03:41:28 [AaronSw]
wacky.
03:41:39 [AaronSw]
can you `telnet slashdot.org 80`?
03:42:01 [Ash]
Yes indeedy.
03:42:51 [AaronSw]
Weird...
03:42:52 [Ash]
* Ash moves his web browser a wee bit closer to his irc window
03:43:15 [Ash]
4400 pixels is too far away
03:43:33 [AaronSw]
Heh.
03:44:20 [AaronSw]
That error sounds like your networking interface is messed...
03:44:25 [Ash]
* Ash hugs his desk full of monitors
03:44:37 [Ash]
Well, everything else is working fine...
03:45:08 [Ash]
ACK
03:45:10 [AaronSw]
Does the code print out An error occurred, details are in errors.txt?
03:45:14 [Ash]
the dreaded ^M!!!
03:45:18 [Ash]
Nope.
03:45:20 [AaronSw]
Aargh!
03:45:29 [Ash]
Your code has a bunch of ^M's in it.
03:45:33 [Ash]
;-)
03:45:38 [AaronSw]
^Ms? in my code?
03:45:52 [Ash]
The dos carriage returns.
03:45:53 [Ash]
Heh.
03:45:57 [sbp]
<AaronSw> *me*?
03:46:07 [sbp]
<AaronSw> you must be mistaken, guv'ner
03:46:09 [Ash]
* Ash gives AaronSw a proper editor
03:46:09 [Ash]
;-)
03:46:18 [AaronSw]
Hey! I do use a proper editor these days.
03:46:25 [AaronSw]
I'm pretty sure I got rid of all the ^Ms
03:46:30 [Ash]
xemacs on win32 doesn't add these ^M's
03:46:49 [AaronSw]
maybe it's the HTTP server
03:47:01 [Ash]
ah crap, I don't have my .emacs here yet
03:47:02 [Ash]
grr
03:47:08 [Ash]
I can't M-x from-dos the file
03:47:09 [Ash]
heh
03:47:22 [AaronSw]
Heh.
03:47:40 [AaronSw]
Yeah, must be the HTTP server since my local copy is in UNIX.
03:48:13 [AaronSw]
And I use a Mac anyway, so it wouldn't have \n\m, which is what I'm getting from the server.
03:48:21 [sbp]
$ python -c "import urllib2; print urllib2.urlopen('http://logicerror.com/archiverProxy-code').read().count('\r')"
03:48:21 [sbp]
778
03:48:40 [Ash]
Probably, AaronSw :)
03:48:51 [AaronSw]
[Course that's not much consolation sine I wrote the server too...]
03:48:56 [Ash]
What port does this thing default too?
03:48:58 [Ash]
-o
03:49:08 [Ash]
i set it to 8080
03:49:17 [AaronSw]
It says when it starts up... 8888 I think
03:49:38 [Ash]
8000
03:49:41 [Ash]
nope, same problem
03:49:44 [Ash]
criminy
03:50:14 [Ash]
Ooh.
03:50:38 [Ash]
Could other users on the local machine go in and change the proxy settings, out of curiosity?
03:50:56 [AaronSw]
I'd expect so, depends what browser you're using.
03:51:03 [Ash]
Interesting.
03:51:42 [AaronSw]
Oh, you mean the configuration settings on the ArchiverProxy? Yeah, anyone with access to its port could.
03:51:52 [AaronSw]
That's sorta one issue with running it for lots of people.
03:52:17 [Ash]
Yeah, that's what I mean.
03:52:29 [AaronSw]
Ash, try setting DEBUG_LEVEL = 2 in the code
03:53:23 [wmf]
wmf (wesf@cs242733-11.austin.rr.com) has joined #swhack
03:53:33 [AaronSw]
hey wmf
03:53:35 [Ash]
(0) OOO (11, 'Resource temporarily unavailable')
03:53:35 [Ash]
(0) R sender_connection_error((11, 'Resource temporarily unavailable')) for slashdot.org:80
03:53:35 [Ash]
(0) sender closing
03:53:35 [Ash]
(0) sender closing
03:53:38 [Ash]
* Ash floods
03:53:42 [wmf]
howdy
03:53:43 [Ash]
hi, wmf.
03:53:43 [AaronSw]
Hm, that wasn't too helpful.
03:53:50 [Ash]
No joke.
03:53:52 [AaronSw]
wmf, been reading "The Star Fraction" today.
03:53:54 [Ash]
* Ash tries it on a local site
03:53:58 [wmf]
cool
03:54:01 [AaronSw]
It's good.
03:54:02 [wmf]
what do you think?
03:54:12 [AaronSw]
He had me won from the first few pages.
03:54:25 [AaronSw]
And I always laugh politely at the geek jokes.
03:54:44 [wmf]
there's going to be a Beep: The Definitive Guide
03:54:52 [AaronSw]
Oooh. Who's writing it?
03:54:58 [AaronSw]
.google Beep: The Definitive Guide
03:54:58 [wmf]
Rose, of course
03:54:58 [Galahad]
Beep: The Definitive Guide: http://www.amazon.com/exec/obidos/search-handle-url/index=books&field-author=Rose,%20Marshall
03:55:10 [sbp]
* sbp waves to Wes
03:55:17 [Ash]
.google intro to beep
03:55:17 [Galahad]
intro to beep: http://beepnik.wiredobjects.com
03:55:20 [Ash]
.google beep for dummies
03:55:21 [Galahad]
beep for dummies: http://www.phonelosers.org/red_box.html
03:55:44 [AaronSw]
.google teach yourself to be an unleashed beep dummy in 21 days
03:55:45 [Galahad]
teach yourself to be an unleashed beep dummy in 21 days: http://www.efeduniverse.com/uew/floods/year2000/ff08302000.html
03:55:54 [Ash]
lol
03:56:39 [AaronSw]
Hm, somehow a Wolf isn't what I'd associate with BEEP...
03:56:56 [wmf]
a clown, maybe
03:57:03 [AaronSw]
Or a road-runner.
03:57:09 [wmf]
yeahj
03:57:14 [Ash]
Stopping external proxies:
03:57:14 [Ash]
Could not connect to locahost 8000, oh well...
03:57:14 [Ash]
Starting proxy at http://127.0.0.1:8000/
03:57:16 [Ash]
hmm
03:57:22 [Ash]
(i set debug to 3 and got this)
03:57:22 [AaronSw]
Yeah, that's normal.
03:57:25 [Ash]
Oh okay.
03:57:40 [AaronSw]
It tries to make sure it's not still running before starting up a new instance.
03:58:02 [AaronSw]
Hm, Amazon does't have the O'Reilly RDF book yet. I'm curious what's going to be on the cover.
03:58:14 [wmf]
who's writing that one?
03:58:19 [AaronSw]
BurningBird
03:58:24 [AaronSw]
or whatever her name is
03:59:01 [wmf]
I wonder if anyone is using BEEP yet
03:59:25 [AaronSw]
SimonStL was yelling at me for delaying the RDF book, because the WG has changed so much. I complained that if I knew we were delaying the book, we would have changed more!
03:59:44 [wmf]
heh
04:00:07 [AaronSw]
All the good changes are shot down by the "No Fun Thru Backwards Compatibility" squad
04:00:32 [Ash]
* Ash shoots down CSS
04:00:39 [Ash]
* Ash shoots down RSS 1.0
04:00:40 [Ash]
bam
04:00:45 [AaronSw]
No!
04:00:54 [Ash]
hehe
04:01:04 [wmf]
* wmf covers AaronSw's face
04:01:07 [AaronSw]
[fighter noises: neeeyowww, neh neh neh neh neh!]
04:01:22 [Ash]
<dwiner> our products don't use css so it must suck. same with rss 1.0
04:01:29 [Ash]
wmf, how is radio 9 coming?
04:01:47 [wmf]
* wmf shoots down Ash
04:02:05 [Ash]
hee hee
04:02:56 [wmf]
nope, looks like nobody is really using BEEP for anything
04:03:29 [AaronSw]
What was your scientific method of determining this?
04:03:47 [AaronSw]
I hear ACME is adopting it into their roadrunner-catching line of products.
04:03:58 [wmf]
looking at the "cool software that uses BEEP" section of beepcore.org
04:04:47 [AaronSw]
I guess all the real uses are uncool (squashing civil liberties, DRM, killing cartoon characters)
04:04:59 [Ash]
AaronSw: How does your proxy handle multiple copies of the same page? i.e. when I reload wmf.editthispage.com the next day and it's changed
04:05:15 [AaronSw]
you'll get wmf.editthispage.com/index/1 and /2 and /3, etc.
04:05:21 [Ash]
ah, cool
04:05:31 [Ash]
and you can check the datestamp on the file to see what day it was, eh?
04:05:31 [AaronSw]
the View mode will just give you the latest, though
04:05:41 [AaronSw]
Yep, or the n.headers file
04:05:47 [Ash]
sweet.
04:05:49 [wmf]
Ash: actually, the proxy has a special Illuminati feature where it doesn't archive HTP
04:05:56 [AaronSw]
Fnord!
04:06:07 [wmf]
so I can change it whenever I want, and no one will have record
04:06:18 [AaronSw]
Ah, so that's why he has META NOARCHIVE
04:06:27 [Ash]
wmf: It's okay, I have my Illuminati retina-scanner hooked up to my pc so it knows I'm allowed to have a real version
04:06:37 [AaronSw]
* AaronSw looks, he has 112 copies of wmf.editthispage.com
04:07:13 [Ash]
* Ash gets back to writing MASTERCONTROL.lisp
04:07:27 [AaronSw]
Hm, and 996419306 copies of scripting.com
04:07:37 [wmf]
heh
04:07:57 [Ash]
* Ash hears 996419306 copies of netscape crying out, all at the same instant
04:08:07 [AaronSw]
heh, heh
04:08:17 [Ash]
scripting.com screws up netscape big time
04:08:26 [AaronSw]
Netscape4
04:08:30 [Ash]
heh
04:08:37 [AaronSw]
Everything screws up netscape4
04:08:38 [Ash]
that's the only verion that works ;-)
04:08:38 [wmf]
* wmf shoots down Netscape 4
04:09:00 [AaronSw]
Even HTP screws up NS4, and HTP works on just about everything!
04:09:04 [Ash]
Mozilla is getting better, but it still crashes and goes berzerk every 2 days
04:09:13 [Ash]
netscape doesn't do that at least
04:09:14 [Ash]
heh
04:09:28 [Ash]
* Ash notes that novell should die
04:10:57 [AaronSw]
wmf, do you have some secret O'Reilly new books feed or something?
04:11:05 [AaronSw]
That's three O'Reilly books in two days you've called.
04:11:32 [wmf]
three?
04:11:45 [AaronSw]
well, counting O'Reilly Community Press as one
04:11:52 [wmf]
I got that from LWN
04:12:02 [Ash]
illuminati-list@ora.com
04:12:11 [wmf]
Ash: sssshhh!
04:12:15 [Ash]
Oh, oops
04:12:40 [Ash]
* Ash calls in a hit on everyone in the channel
04:12:59 [wmf]
* wmf is whisked away in a black helicopter
04:13:01 [Ash]
* Ash sends hax0rz from N.U.R.V. after AaronSw
04:13:07 [AaronSw]
lol
04:13:10 [Ash]
I saw a black helicopter on the way to work.
04:13:26 [Ash]
my legs are still sore
04:13:27 [Ash]
ugh
04:13:46 [AaronSw]
What? It knocked out your legs?
04:14:00 [AaronSw]
I remember when I used to have O'Reilly-Press privileges. I could get any O'Reilly book for free, and even some that weren't in print yet. They had BETA stamped across the cover in red.
04:14:13 [wmf]
awesome
04:17:19 [AaronSw]
On this month's developer CD: "Apple/Genentech BLAST includes the executable and source code of the Apple/Genentech enhancements to NCBI BLAST."
04:17:48 [wmf]
are you planning to do some genehacking?
04:18:20 [AaronSw]
It's part of my Illuminati duities...
04:19:17 [wmf]
@ http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=0966741714&vm=c
04:19:23 [chumpster]
A: Fatbrain.com - Product Info for Totally Unauthorized Microsoft Joke Book from wmf
04:20:04 [Ash]
YEEEEEEEEEEEE HAW
04:20:09 [Ash]
my server update actually workd
04:20:11 [Ash]
worked
04:20:12 [Ash]
amazing
04:20:26 [Ash]
* Ash caps GroupWise
04:24:11 [AaronSw]
Ooh, [deleted] might pay for me to go to Emerging Fads!
04:27:33 [wmf]
http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=059600236X&vm=c
04:27:52 [wmf]
I'm finding all kinds of books that aren't on the O'Reilly site
04:28:30 [AaronSw]
Yeah, I huess they don't put it on the site until it ships.
04:28:47 [wmf]
well, O'Reilly has a page of upcoming books
04:28:53 [AaronSw]
Hm.
04:29:16 [AaronSw]
Hm, even Amazon doesn't have that: http://isbn.nu/059600236X
04:29:25 [wmf]
yeah, I noticed that
04:29:51 [AaronSw]
you should blog it
04:29:55 [wmf]
it's odd that fatbrain claims that the book is already shipping, yet nobody else has heard of it
04:30:06 [AaronSw]
Hm, they claim it's shipping?
04:30:30 [AaronSw]
That is suspicious.
04:30:38 [AaronSw]
Date Published: 02/2002
04:30:45 [wmf]
hmm, maybe it's not shipping yet
04:32:30 [wmf]
I wonder what other stealth O'Reilly books are out there
04:35:17 [AaronSw]
Fatbrian shows: Constitutional Federalism in a Nutshell
04:35:46 [AaronSw]
802.11 Wireless Networks: The Definitive Guide
04:36:01 [AaronSw]
Alternative Medicine: the Definitive Guide
04:36:22 [wmf]
ah, you had the same idea I did
04:39:43 [AaronSw]
Ooh! Http: The Definitive Guide 06/2002
04:40:07 [AaronSw]
Ant: The Definitive Guide 04/2002
04:40:50 [AaronSw]
Bluetooth in a Nutshell 02/2002
04:41:03 [AaronSw]
err 02/2003
04:41:08 [AaronSw]
Python in a Nutshell 02/2003
04:42:11 [AaronSw]
{ASP.NET, Java Enterprise, VB.NET Language, Windows XP, J2ME, Java, C#, Jxta} in a nutshell
04:42:47 [AaronSw]
Hm, I bet they're going to botch HTTP in a nutshell
04:43:04 [wmf]
who's the author?
04:43:06 [tansaku1a]
Quantum String Theory in a Nutshell 03/2007
04:43:22 [AaronSw]
Linda Mui, of "termcap and terminfo", etc.
04:43:28 [wmf]
hmm
04:44:48 [wmf]
not many people understand the true nature of HTTP
04:45:12 [wmf]
* wmf installs a Matrix II desktop background
04:46:09 [tansaku1a]
Recombinant Gene Splicing: The Definitive Guide 05/2006
04:46:34 [wmf]
when does Nanotech in a Nutshell come out?
04:47:01 [tansaku1a]
01/2008
04:47:52 [tansaku1a]
Creation of a Palestinian State in a Nutshell: 01/450003
04:48:00 [wmf]
ouch
04:48:45 [tansaku1a]
US Emission Reduction: The Definitive Guide - no date yet announced
04:49:33 [tansaku1a]
General Equality of Opportunity in a Nutshell: out of print
04:49:52 [tansaku1a]
Flogging a dead-horse in a nutshell .....
04:49:57 [tansaku1a]
I'm calling it a day
04:51:00 [wmf]
damn overdesigned matrix web site killed my browser
04:51:32 [jeremiah]
hello everyone
04:51:41 [monokrom]
hello j
04:51:56 [jeremiah]
wmf: is that a joke about nanotech in a nutshell?
04:52:13 [wmf]
jeremiah: what do you think?
04:52:17 [Ash]
WOO
04:52:18 [Ash]
@#%@#%2
04:52:22 [Ash]
it worked
04:52:23 [jeremiah]
it should be called nanotech in a...
04:52:23 [Ash]
huzzah
04:52:25 [Ash]
i can go home.
04:52:28 [jeremiah]
(something really damn small)
04:52:31 [jeremiah]
nanotech in a buckyball
04:52:34 [Ash]
(die novell die)
04:53:45 [AaronSw]
HTTP: The Definitive Guide - http://isbn.nu/1565925092
04:53:51 [AaronSw]
At least BN.com has that one.
04:57:08 [hazmat]
hazmat (~chatzilla@adsl-66-123-57-58.dsl.lsan03.pacbell.net) has joined #swhack
04:57:20 [hazmat]
who here is a bot? ;)
04:57:59 [hazmat]
not bad, mostly human
04:58:02 [hazmat]
hi folks
05:07:13 [hazmat]
hazmat has quit (Remote closed the connection)
05:08:36 [tansaku1a]
I'm mostly bot
05:09:06 [sbp]
heh, heh
05:10:13 [GabeW]
GabeW (~gwachob@12-236-237-100.client.attbi.com) has joined #swhack
05:12:12 [hazmat]
hazmat (~chatzilla@adsl-66-123-57-58.dsl.lsan03.pacbell.net) has joined #swhack
05:14:40 [AaronSw]
who's this monokrom fellow?
05:15:14 [monokrom]
my name's brian
05:15:17 [monokrom]
nice to meet u
05:16:14 [sbp]
and he's an SW hacker :-)
05:19:36 [BenSw]
BenSw (~yoda@12-249-96-16.client.attbi.com) has joined #swhack
05:20:12 [BenSw]
Bandersnatch Is Working!!!!!!
05:24:41 [AaronSw]
Hi Brian, nice to meet you. I'm the thing described by <http://www.aaronsw.com/>.
05:24:41 [AaronSw]
Cool, BenSw!
05:46:30 [AaronSw]
whoa! Rob Flickenger is in the hospital!
05:49:06 [monokrom]
where did u read/hear that?
05:50:51 [GabeW]
scripting.com
05:51:01 [monokrom]
bummer :X
05:55:33 [wmf]
wmf has quit ("going to the store")
05:59:13 [AaronSw]
23 hours until W3C France
06:06:08 [jeremiah]
hello
06:06:34 [AaronSw]
howdy
06:06:46 [jeremiah]
I wish I could blog all my adventures
06:06:55 [jeremiah]
btw: made a test script and did some changes for the xmlrpc networking stuff
06:07:02 [jeremiah]
I think I'm moderately close to having it working
06:07:28 [AaronSw]
awesome
06:07:30 [jeremiah]
we're gonna have to do some work on ips and hosts
06:07:35 [jeremiah]
I finished up reading the chord spec
06:07:40 [AaronSw]
ah
06:07:44 [jeremiah]
and they actually talk about having an ip and a port in there
06:07:48 [jeremiah]
s/hosts/ports
06:08:03 [jeremiah]
in the node identifier that is
06:08:05 [AaronSw]
Yep.
06:08:18 [jeremiah]
I'm thinking something like <node 1 127.0.0.1:8001>
06:08:45 [jeremiah]
except I'd like to see if they are already using something now
06:09:17 [AaronSw]
what's wrong with ip:port?
06:09:46 [jeremiah]
are you saying you'd like to use the format that I said above
06:09:50 [jeremiah]
(use a capital 'N' though)
06:10:12 [AaronSw]
I mean, why the <node 1 127.0.0.1:8001> gunk?
06:10:18 [jeremiah]
how would you like to do it?
06:10:31 [AaronSw]
just ip + ':' + port
06:10:39 [jeremiah]
ok..
06:10:42 [AaronSw]
well, sha512(ip + ':' + port)
06:10:43 [jeremiah]
and how would you handle node ids?
06:10:54 [jeremiah]
I don't think we're talking about the same thing here
06:10:57 [AaronSw]
oh, i thought we were talking about nodeids...
06:11:02 [jeremiah]
me too
06:11:22 [AaronSw]
node identifiers have to be 512 bits, right?
06:11:52 [jeremiah]
well, the network I've been building passes around <Node 1> type tags right now
06:11:56 [jeremiah]
i thought that is what we wanted
06:12:02 [jeremiah]
didn't know we wanted a hash of it
06:12:30 [AaronSw]
Oh, I see the confusion.
06:12:49 [AaronSw]
We're dealing with two things:
06:12:59 [AaronSw]
How we describe nodes to other nodes
06:13:25 [AaronSw]
(i.e. you can talk to him using Chord-over-HTTP 1.5 on port 8383 at IP X)
06:13:36 [AaronSw]
and the Chord ID for a node
06:13:43 [jeremiah]
ok
06:13:56 [AaronSw]
(i.e. the 512-bit number that's used for searching and stuff in the protocol like that)
06:14:05 [jeremiah]
yeah
06:14:48 [jeremiah]
well I agree that they should be separated so that if node '1' moves from one ip to another it doesn't make the whole network rearrange where it thinks data is
06:15:18 [jeremiah]
but I think passing the ip and port along with 'where' something is on the network, at least when we do communication over HTTP and over TCP/IP would make sense
06:15:30 [jeremiah]
which is why I advocate <Node 1 ip:port>
06:16:35 [AaronSw]
well, they have to be separated because a SHA provides no information on how to talk to it
06:16:43 [jeremiah]
yeah
06:17:19 [jeremiah]
now the actual node ids
06:17:27 [jeremiah]
like the number they talk about in the cord docs
06:17:34 [AaronSw]
so 1 is the node id?
06:17:38 [jeremiah]
is that going to be a sha value?
06:17:42 [AaronSw]
yes
06:17:52 [jeremiah]
and you think that should be a sha hash of the ip and port?
06:18:07 [AaronSw]
i can't think of anything better
06:18:10 [jeremiah]
alright THAT answers a huge question I was wondering about
06:18:11 [jeremiah]
good
06:18:21 [jeremiah]
I was wondering 'where the hell are we going to come up with a central authority for these things'
06:18:28 [sbp]
Gotta run
06:18:29 [jeremiah]
good, now I have a better idea of how this works
06:18:30 [AaronSw]
Heh.
06:18:36 [AaronSw]
<Node bce4664c1ff183acd4ad36dd8c9c509611150b40db4543b1d42813783cd3c27343ee9b062d25ae7dbdd3c420ffa21ce35f693ed530e93570fe9b6a4675ed0fb0 ip:port> seems confusing
06:18:45 [jeremiah]
yeah
06:18:50 [AaronSw]
it's even worse if you use the actual number
06:18:55 [jeremiah]
yeah
06:19:08 [jeremiah]
sweet, so now I know what we're doing
06:19:12 [jeremiah]
(sigh... code rework)
06:19:17 [jeremiah]
not a huge one though
06:22:56 [jeremiah]
so should the xmlrpc nodes pass just the hash value or <Node hash>?
06:23:11 [AaronSw]
neither of those will work
06:23:17 [AaronSw]
remember what we're using these for
06:23:18 [jeremiah]
oh yeah
06:23:24 [jeremiah]
wow my brain is fried
06:23:27 [AaronSw]
Heh.
06:23:31 [jeremiah]
how about <Node ip:port>
06:24:21 [AaronSw]
that'll work. I was (ip, port) as in an XML-RPC list...
06:24:33 [jeremiah]
oh yeah
06:24:43 [jeremiah]
alright, well, this work deserves to be done in the morning anyways
06:25:12 [AaronSw]
Heh.
06:25:17 [jeremiah]
I'm pretty tired
06:35:18 [Galahad]
Galahad is now known as xena
06:41:10 [AaronSw]
Joe Clark: "CSS is nice. Tables are not so bad. And I am telling you right now the accessibility defects of tables are overblown or outright false."
06:41:46 [AaronSw]
in http://www.metafilter.com/mefi/15007#230973
06:43:07 [AaronSw]
On being challenged, Joe writes "I run Lynx every day of the week."
06:52:47 [tansaku1a]
tansaku1a has quit (Read error: 110 (Connection timed out))
07:03:10 [AaronSw]
.dns mysterylights.com
07:03:14 [xena]
mysterylights.com - 80.94.192.48
07:12:38 [AaronSw]
* AaronSw goes to sleep
07:25:43 [GabeW]
GabeW has quit (Read error: 104 (Connection reset by peer))
07:25:52 [GabeW]
GabeW (~gwachob@12-236-237-100.client.attbi.com) has joined #swhack
08:10:46 [GabeW]
GabeW has quit ("Client Exiting")
09:09:03 [monokrom]
monokrom has quit ("ChatZilla 0.8.4[Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)]")
09:35:12 [dogcow]
dogcow (~amathews@166.70.45.198) has joined #swhack
09:52:50 [dogcow]
the archiver proxy problem seems to only affect mandrake. My freebsd server here at home runs it without problems.
11:05:36 [tansaku]
tansaku (~sam@n144-001.tokyu-net.catv.ne.jp) has joined #swhack
11:42:20 [tansaku]
tansaku has quit (Read error: 110 (Connection timed out))
11:42:36 [tansaku]
tansaku (~sam@n146-077.tokyu-net.catv.ne.jp) has joined #swhack
13:34:49 [tansaku]
tansaku has quit (Read error: 110 (Connection timed out))
14:48:00 [tansaku]
tansaku (~sam@n146-077.tokyu-net.catv.ne.jp) has joined #swhack
14:54:32 [deltab]
deltab has quit (carter.openprojects.net irc.openprojects.net)
14:54:33 [sbp]
* sbp kinda agrees with Joe Clark about tables
14:54:51 [sbp]
problems are mainly caused when they don't lineraize
14:54:58 [deltab]
deltab (deltab@mewtwo.espnow.com) has joined #swhack
14:55:22 [sbp]
but OTOH, for the sites on which they don't linearize, they often have bigger accessibility problems, like using one big GIF for the site
14:56:44 [sbp]
I'd love to have a million pages at WCAG-A more than I'd love to have a thousand at AAA
15:11:00 [bijan]
bijan (bparsia@login0.isis.unc.edu) has joined #swhack
15:34:31 [sbp]
Pff. FPIs are so silly
15:34:39 [bijan]
FPI?
15:35:14 [sbp]
Formal Public Identifiers
15:35:26 [sbp]
.google "Formal Public Identifier"
15:35:27 [bijan]
* bijan doesn't care and doesn't want to know.
15:35:28 [xena]
"Formal Public Identifier": http://www.ucc.ie/cgi-bin/PUBLIC
15:37:04 [sbp]
neat: http://www.ucc.ie/cgi-bin/PUBLIC?-//IETF//DTD_HTML_3.0//EN
15:41:45 [sbp]
ooh, I had the same idea: http://web.archive.org/web/19990218185818/www.jtauber.com/standards/fpi-urn/delegate.html
15:42:20 [sbp]
FPIs are just stupid
15:43:39 [sbp]
[URI BNF doesn't allow slashes, so that's out]
15:47:16 [sbp]
cool! I can boycott FPIs!
15:47:36 [sbp]
the W3C validator accepts STSTEM doctype decs.:-
15:47:38 [sbp]
<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
15:49:22 [bijan]
Hmm. Odd.
15:53:22 [bijan]
I'm getting superlong serach times for relatively simpel findall queries.
15:53:40 [bijan]
Although very fast otherones.
15:59:01 [AaronSw]
DanC: "It's not as if WGs hand design questions to the TAG, after all, is it? Our role is to measure designs against a minimally constraining architecture, I think, no?"
16:00:59 [bijan]
sbp, where did TBL say that he was thinking of cloning CWM to C or machine code?
16:01:35 [AaronSw]
www-archive, I think (but I'm not sbp)
16:01:46 [bijan]
You *aren't*?
16:01:51 [bijan]
* bijan revises world view.
16:02:56 [AaronSw]
Heh.
16:03:13 [AaronSw]
<bijan> *Now* it all makes sense!
16:03:27 [bijan]
Er. actually it doesn't.
16:03:32 [bijan]
It makes much less sense.
16:03:45 [bijan]
Unifying you and sbp was a *simplifying* and *clarifying* assumption.
16:05:45 [AaronSw]
Oh, well, we're the same assuming access to a fast Internet connection.
16:06:38 [bijan]
Huh.
16:06:59 [bijan]
I seem to have added reasonable hacks for :a, <#>, etc.
16:07:35 [bijan]
Ooo, ok, that's a *nice* feature of rdf_db.pl
16:08:17 [bijan]
You can pop variables in for the prefix, localname, or both, or the qname
16:08:50 [bijan]
I should have realized that, but I've never used it before.
16:09:07 [bijan]
Hmm. requires some care, though.
16:09:50 [bijan]
Horks on literals.
16:10:23 [bijan]
Example:
16:10:26 [bijan]
?- rdf(X:A,rdf:B,Z).
16:10:26 [bijan]
X = ''
16:10:26 [bijan]
A = 'http://musicbrainz.org/track/1a2764f2-3081-485f-b3d5-d1e64ca823b4'
16:10:26 [bijan]
B = type
16:10:27 [bijan]
Z = 'http://musicbrainz.org/mm/mm-2.0#Track'
16:11:23 [sbp]
CWM in C: http://lists.w3.org/Archives/Public/www-rdf-interest/2002Feb/0083
16:11:31 [sbp]
"(I need to clone it in C or machine code, but that's another matter)"
16:11:45 [sbp]
lol @ <bijan> Unifying you and sbp was a *simplifying* and *clarifying* assumption.
16:12:18 [sbp]
* sbp is hacking about with XHTML Modularization again
16:12:33 [sbp]
it's quite easy as long as you don't bork the DTDs up
16:13:38 [sbp]
it's such a shame about the namespace prefix stuff
16:16:11 [bijan]
Hmm. I suspect I need to invalidate and rebuild the prefix cache...
16:18:35 [bijan]
Hmm. That note suggests that CWM internals are much cleaner now.
16:24:09 [AaronSw]
AaronSw has changed the topic to: Feel free to dial in from France!
16:24:17 [AaronSw]
AaronSw has changed the topic to: Feel free to dial in from France!
16:24:58 [bijan]
Off.
16:24:59 [bijan]
bijan has quit ("Leaving")
16:25:20 [AaronSw]
ooh: http://www.w3.org/2002/01/w3c-track.html
16:26:29 [AaronSw]
Whoa, XML Signature is a REC. I guess I should read it now...
16:26:55 [AaronSw]
Hm, I didn't know the W3C had a "Cool Web" activity.
16:27:24 [sbp]
w3c-track: cool
16:34:26 [sbp]
ooh, XHTML Basic seemed to be messed up - it keeps complaining that there's no ruby.qname
16:35:14 [AaronSw]
DanC, formalizations of the Web: Number one: The Larch. [click, click] The Larch. Number one: The Larch.
16:35:14 [AaronSw]
cf. http://www.w3.org/XML/9711theory/
16:35:50 [sbp]
lol
16:36:27 [sbp]
Hmm... actually, it's a problem in Ruby
16:36:31 [AaronSw]
[based on [OLM] from sbp]
16:36:39 [sbp]
heh, heh
16:45:50 [AaronSw]
irby walks!
16:46:32 [AaronSw]
aww, we missed the "I'm a good boy" dance!
17:02:41 [sbp]
heh, heh: http://validator.w3.org/check?uri=http%3A%2F%2Finfomesh.net%2F2002%2Fm12n%2Ftest%2Fcomment-test.html&charset=%28detect+automatically%29&doctype=Inline
17:02:58 [sbp]
it took a while (nearly two years), but I have that damn comment attribute
17:03:12 [sbp]
which should actually be an element. Well, there you go
17:04:03 [AaronSw]
heh!
17:07:51 [Ash]
Ash has quit (Read error: 104 (Connection reset by peer))
17:08:21 [sbp]
as an element: http://validator.w3.org/check?uri=http%3A%2F%2Finfomesh.net%2F2002%2Fm12n%2Ftest%2Fecomment-test.html&charset=%28detect+automatically%29&doctype=%28detect+automatically%29
17:08:40 [sbp]
once you have templates to work from, it's really quite easy
17:09:53 [sbp]
I wonder if I can fix XHTML to use <label> in ways that will make it less borktastic?
17:10:00 [sbp]
* sbp searches for his GL email
17:11:22 [sbp]
ah: http://lists.w3.org/Archives/Public/w3c-wai-gl/2001JulSep/1000
17:12:00 [sbp]
Hmm... so I'd need to make <label> an inline element
17:12:07 [sbp]
and make sure that it can take img/object
17:14:27 [sbp]
arg: <!ELEMENT %label.qname; %label.content; >
17:14:31 [sbp]
no label extension?
17:21:36 [sbp]
cool, it worked! http://validator.w3.org/check?uri=http%3A%2F%2Finfomesh.net%2F2002%2Fm12n%2Ftest%2Flabel-test.html&charset=%28detect+automatically%29&doctype=Inline
17:23:15 [sbp]
you gotta love this page: http://infomesh.net/2002/m12n/test/label-test.html
17:23:36 [monokrom]
monokrom (~chatzilla@208-58-246-147.s147.tnt3.atnnj.pa.dialup.rcn.com) has joined #swhack
17:25:10 [sbp]
* sbp waves to monokrom
17:25:19 [monokrom]
* monokrom waves back
17:25:21 [monokrom]
:D
17:28:52 [sbp]
ooh:-
17:29:02 [sbp]
<!ATTLIST %html.qname;
17:29:02 [sbp]
%XHTML.xmlns.attrib;
17:29:02 [sbp]
%XHTML.version.attrib;
17:29:02 [sbp]
%I18n.attrib;
17:29:02 [sbp]
>
17:29:18 [sbp]
didn't notice the before... let's check it out
17:30:33 [sbp]
ugh, this validates:-
17:30:39 [sbp]
<html xmlns="http://www.w3.org/1999/xhtml"
17:30:39 [sbp]
version="-//W3C//DTD XHTML 1.1//EN"
17:30:39 [sbp]
xml:lang="en" >
17:30:57 [dogcow]
hey AaronSw
17:31:04 [AaronSw]
howdy!
17:31:23 [dogcow]
Your proxy works great on FreeBSD. I'm guessing the problem has something to do with mandrake.
17:31:39 [dogcow]
I just set the proxy up to run on my server so I can use it from all my computers. :)
17:31:43 [sbp]
s/the/that/
17:31:56 [AaronSw]
Cool. :-)
17:32:36 [dogcow]
Yup.
17:32:52 [dogcow]
Now I just need to point it at my caching proxy and I'll be doing good ;-)
17:33:17 [AaronSw]
Heh, heh
17:33:26 [dogcow]
I have novell fastcache at work
17:33:29 [dogcow]
it rocks all over
17:33:35 [AaronSw]
I should really make it do caching, but I'm too lazy. ;-)
17:33:51 [AaronSw]
caching being support for stuff like If-Modified-Since and max-age
17:34:00 [dogcow]
wouldn't caching be a whole lot more work?
17:34:06 [AaronSw]
yeah, it'd be a ton
17:34:43 [dogcow]
yeah.. just make it able to use another proxy
17:34:47 [dogcow]
should be fast enough
17:35:08 [dogcow]
heh.. my little P100 server's disk grinds every time i load a page.
17:35:13 [AaronSw]
Heh.
17:35:36 [AaronSw]
the problem is you get a duplication of data from the cacher and the archiver
17:36:58 [dogcow]
except that the cache usually expires thing after a while
17:37:10 [AaronSw]
yeah, that's another thing.
17:37:19 [dogcow]
mine @ work clears out items after a week or two
17:37:25 [dogcow]
I forget what I've got it set to.
17:37:28 [AaronSw]
But there's no reason for it to if you're archiving everything anyway.
17:37:39 [dogcow]
yup
17:38:01 [dogcow]
i tell you what, I don't like a lot of things about novell's bordermanager.. but their proxy is *so* fast
17:38:18 [AaronSw]
Hmm.
17:38:24 [sbp]
Hmm... perhaps I can hack version to use a URI...
17:39:09 [AaronSw]
I guess my code is as fast as the file system. I don't notice any speed difference on my machine, but i suspect that it's doing a lot of caching in memory.
17:39:27 [AaronSw]
that last it being OS X
17:40:05 [dogcow]
The only reason I notice it is that this machine is very slow with not a lot of ram, so it does disk writes frequently.
17:40:24 [AaronSw]
Ah.
17:41:29 [dogcow]
softupdates helps quite a bit, but since I'm running various other things on there as well it's a wee bit noisy.
17:41:44 [dogcow]
I'm moving it to a slightly faster machine with U2W scsi here shortly, so it's no big deal.
17:42:08 [AaronSw]
* AaronSw has a relatively quiet laptop disk
17:42:11 [AaronSw]
drive
17:42:27 [dogcow]
heh
17:42:35 [dogcow]
the drive in my server is an old maxtor 6gb
17:42:41 [sbp]
done: http://validator.w3.org/check?uri=http%3A%2F%2Finfomesh.net%2F2002%2Fm12n%2Ftest%2Furiversion-test.html&charset=%28detect+automatically%29&doctype=%28detect+automatically%29
17:43:50 [AaronSw]
404 http://infomesh.net/2002/m12n/test/uriversion-test.txt
17:45:57 [BenSw]
BenSw has quit ("Client Exiting")
17:46:18 [sbp]
it's .html
17:46:54 [sbp]
DTD at http://infomesh.net/2002/m12n/test/uriversion.txt
17:47:18 [sbp]
and it uses a URI, not a fragURI :-)
17:47:21 [sbp]
Gotta run
18:23:37 [tansaku]
tansaku has quit (Read error: 110 (Connection timed out))
18:26:35 [BenSw]
BenSw (~yoda@12-249-96-16.client.attbi.com) has joined #swhack
18:31:14 [BenSw]
Hi
18:40:17 [AaronSw]
/j mnet-users
18:40:22 [AaronSw]
oops
18:44:41 [dogcow]
dogcow has quit (Read error: 104 (Connection reset by peer))
18:44:55 [Ash]
Ash (~amathews@166.70.45.198) has joined #swhack
18:45:05 [BenSw]
wb Ash
18:45:08 [Ash]
re
18:45:09 [Ash]
heh
18:45:27 [Ash]
Apparently my router doesn't like this 100mbit switch. :(
18:50:32 [Ash]
Heh.
18:50:41 [Ash]
I'm installing Ximian Gnome through Aaron's proxy.
18:50:43 [Ash]
Bwahahahaha.
18:50:49 [AaronSw]
heh heh!
18:51:09 [Ash]
This way I have a local mirror of the RPMs. ;-)
18:51:18 [Ash]
It's cruising right along, no noticeable delay.
18:53:07 [AaronSw]
nice
18:53:45 [Ash]
yeah
18:53:50 [Ash]
hammering my internal network
18:59:35 [sbp]
* sbp just watched a phenomenal new Simpsons - DABF01
18:59:37 [sbp]
Homer: Aah, the sweet couple of seconds before I remember why I'm sleeping on the lawn
18:59:57 [sbp]
the animation didn't look as smooth as it has for the last couple of seasons (which is good - reminds me of the old episode)
19:00:04 [sbp]
s/episode/episodes/
19:00:36 [sbp]
good plot, plenty of funny bits, and numerous Homerisms
19:00:47 [sbp]
Al Jean is working wonders, it seems :-)
19:01:24 [Ash]
Oops. I crashed the proxy, apparently.
19:01:34 [Ash]
* Ash chuckles
19:22:55 [AaronSw]
uh oh! :)
19:23:17 [AaronSw]
* AaronSw has to go, let me know if you want my updated version with adblocking!
19:49:29 [Ash]
adblocking!
19:49:32 [Ash]
Sweet!
19:54:40 [tansaku]
tansaku (~sam@n144-063.tokyu-net.catv.ne.jp) has joined #swhack
19:55:04 [Ash]
Hey, tansaku
19:55:16 [AaronSw]
* AaronSw tries to solve the three-kinds of people logic puzzle
19:55:33 [Ash]
logic? bah
19:55:37 [Ash]
we have no need for such things
19:55:40 [AaronSw]
heh heh
19:56:41 [Ash]
we are borg
20:07:31 [Ash]
Ash has quit (Remote closed the connection)
20:41:20 [AaronSw]
Heh:-
20:41:22 [AaronSw]
CNet: If Windows is so bad, why does Apple have a meager 4 percent market share?
20:41:23 [AaronSw]
Barlow: Four? Really? Jesus. They really blew that one.
21:05:38 [AaronSw]
.wn term
21:05:43 [xena]
term defined as:
21:05:44 [xena]
- n 1: a word or expression used for some particular thing; "he learned many medical terms"
21:05:45 [xena]
- 2: a limited period of time; "a prison term"; "he left school before the end of term"
21:05:46 [xena]
- 3: (usually plural) a statement of what is required as part of an agreement; "the contract set out the conditons of the lease"; "the terms of the treaty were generous" [syn: {condition}]
21:05:47 [xena]
- 4: any distinct quantity contained in a polynomial; "the general term of an algebraic equation of the n-th degree"
22:23:48 [bijan]
bijan (bparsia@login0.isis.unc.edu) has joined #swhack
23:25:13 [BenSw]
BenSw is now known as Bensw|bandersnatch
23:39:59 [bijan]
Got empty prefixes working.