On Aug 25, 2014 7:52 PM, "Larry McVoy" <lm@mcvoy.com> wrote:
> On Mon, Aug 25, 2014 at 06:36:17PM -0400, John Cowan wrote:
> > Lyndon Nerenberg scripsit:
> >
> > > Then we should see about getting them to Warren for the archives.
> > > They are a part of "internet" history that should never be lost. (Along
> > > with the code for pathalias.)
> >
> > Pathalias is distributed as part of Smail 3 in the pd/pathalias directory.
> Good old pathalias.  I've got a story for you there, Clem (he's Masscomp
> right?) might get a grin out of it.
> I was sys admin for 20 users on a Masscomp machine that had a 40MB disk.
> We were at the end of a dog leg in UUCP, ...!uwvax!geophys!geowhiz!$user,
> and could easily see the appeal in user@host.whatever.
> When I ran pathalias it generated a 2MB (or more) sized file.  Way too big
> for our disk.
> So I walked across the street to talk to my alg prof (Udi Manber, he was
> A9, ran search at google, he's a smart cookie, I was not).  He listened
> to the problem and quickly said "You've got time best cast and space
> worst case" and described how you would change the system to do a lookup
> for each host in turn (the furthest host returns the next closer host
> and so on).  That gets you space best case, time worst case.  I got it,
> I saw how to write that code, and I say thanks and head out the door.
> "Not so fast" says Udi.  "What would be really interesting is if you
> could approximate both space and time best case".  Which lead to about
> a 6 month (or more) programming effort on my part (it's a graph problem
> and a dynamic programming problem) and a paper for IEEE.
> The fun part about that project was that Udi was all theory and I was all
> practice.  I was reading the maps in and building the graph on a microvax
> with not a lot of ram, might have been 4MB, might have been less.  For
> some reason that escapes me I had to sort them and I used qsort() and it
> took overnight.  I went to Udi and told him about it and he asked what
> sort I was using and I said qsort().  "Oh, that explains it, you need to
> use a radix sort".  Stupid me slinks out to figure what a radix sort was,
> did so, implemented it, it got slower!  WTF, right?
> So I poked around, this was my first journey into performance debugging,
> vmstat was a useful tool then (and now).  I eventually discovered that
> the machine was swapping like crazy and I poked some more.  After much
> poking I decided I was fragmented and it was malloc()s fault.  Wrote my
> own malloc that allocated 400K at a time and did all my strdup()s into
> there.  Sort time, with qsort, when from overnight to 20 minutes.  Go
> practice, eh?
> I like to think that while Udi taught me all about the theory (and he did,
> I flunked his class at least twice before I passed), I taught him about
> practice.  VM != real memory for example.
> He's also the guy who watched me jump every time xclock chimed on the hour
> and asked why?  I told him it sounded exactly the same as the beep on my
> radar detector (I was a kid, I drove way too fast).  After that every time
> in chimed and I jumped he'd laugh and say "you're hacking too fast" :)
> --lm

but...what was the final size of the file?