Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #12678

Re: Aspect questions?

From Novice <novice@example..com>
Newsgroups comp.lang.java.programmer
Subject Re: Aspect questions?
Date 2012-03-04 23:00 +0000
Organization Your Company
Message-ID <XnsA00CB84AA9E0jpnasty@94.75.214.39> (permalink)
References (19 earlier) <jihabg$3oo$1@news.albasani.net> <XnsA008660779DFEjpnasty@94.75.214.39> <jilopr$lof$1@news.albasani.net> <XnsA008A84123C55jpnasty@94.75.214.39> <jin75c$8ci$1@news.albasani.net>

Show all headers | View raw


Lew <noone@lewscanon.com> wrote in news:jin75c$8ci$1@news.albasani.net:

> Novice wrote:
>> Lew wrote:
>>> So taking lists as the example:
>>>
>>>    List<String>  options = new ArrayList<>();
>>>
>>> I declared the 'options' variable as a 'List<String>', not as an
>>> 'ArrayList<String>'. If I discover that the array-backed list wasn't
>>> giving me the performance or other implementation-specific behavior
>>> I need, but a linked list does, I can refactor more easily:
>>>
>>>    List<String>  options = new LinkedList<>();
>>>
>>> The rest of the program, depending only on the "list"ness and not
>>> the "array"ness, is unharmed.
>>>
>>> (What performance differences are there? Excellent question! Pop
>>> quiz - please answer this post with your answer - where would you
>>> find out about performance characteristics of 'ArrayList<E>' and
>>> 'LinkedList<E>'?)
> 
> I meant where specifically. You didn't show me where. You talked a lot
> about how you'd go about finding where, but you didn't actually follow
> your own advice. 
> 
I'm finally back! Sorry for the longer-than-expected delay.

I had thought your questions were hypothetical, of the "how would you  
determine such-and-such if you needed to" variety. I didn't realize you 
literally meant for me to answer :-)

Well, let's get on with concrete answers. 

The ArrayList article in the Java (1.7) API is at this URL: 
http://docs.oracle.com/javase/7/docs/api/index.html. From there,  scroll 
down in the lower left index window to find ArrayList and click on it; the 
article appears in the main pane of the browser. With regards to 
performance, we get various clues in the introduction to the article (the 
part about the Field Summary), including: 

"The size, isEmpty, get, set, iterator, and listIterator operations run in 
constant time. The add operation runs in amortized constant time, that is, 
adding n elements requires O(n) time. All of the other operations run in 
linear time (roughly speaking). The constant factor is low compared to that 
for the LinkedList implementation.

"Each ArrayList instance has a capacity. The capacity is the size of the 
array used to store the elements in the list. It is always at least as 
large as the list size. As elements are added to an ArrayList, its capacity 
grows automatically. The details of the growth policy are not specified 
beyond the fact that adding an element has constant amortized time cost.

"An application can increase the capacity of an ArrayList instance before 
adding a large number of elements using the ensureCapacity operation. This 
may reduce the amount of incremental reallocation." 

Doing the same thing for LinkedList we find:

"All of the operations perform as could be expected for a doubly-linked 
list. Operations that index into the list will traverse the list from the 
beginning or the end, whichever is closer to the specified index."

That first sentence is a bit evasive if you have no idea how a linked list 
would perform but that's what it says.... 

>>> Summary:
>>> Interface: what to do
>>> Class:     how to do it
>>
>> I need to understand what you've said a bit better before I try the
>> pop quiz ;-)
>>
>> It makes perfect sense to me to figure out what a program needs to do
>> before you worry about how it gets done. You've got to design a house
>> - how many bedrooms, how many bathrooms, what style of house (ranch
>> or bungalow or apartment building), etc. etc. - before you choose the
>> exact fixtures. 
>>
>> But when you talked about designing interfaces, I assumed you meant
>> NEW interfaces. 
> 
> No. I wasn't talking about designing interfaces. I was talking about
> writing a program.
> 
Maybe I should have said that that's where I _thought_ you were going 
because we were in the part of the note where we talked about interfaces 
and I thought you had more to say on that ;-)

>> Your examples seem to be about selecting which of the existing
>> interfaces - which kind of lists - you wanted. But those kinds
>> already 
> 
> Yes. There's a reason for that. It's because I was talking about
> selecting which existing interfaces you want to use.
>
Fair enough.
 
>> exist so you're really just choosing them, not inventing new ones to
>> do new 
> 
> Right. Precisely. Just so.
> 
>> things. It would be helpful to me if you also talked about new
>> interfaces and how those come about at design time.
> 
> Give me an example of some unit of functionality you'd like to design,
> in broad terms, and I'll do just that.
> 
I think that would be an interesting exercise. Let's do one that I've 
already done myself and that you (probably) haven't. I'm sure I'll learn 
some things by seeing how you approach it.

I have a project (that regularly undergoes polishing) to produce resumes. 
More specifically, it creates various formats of my own resume (and only my 
own resume.) Each of the resumes I generate contains the exact same 
information obtained from a single file but I generate it in several 
formats: an HTML version, a Java applet, an ASCII text version, a PDF 
version (using iText), and a Word version. I also generate supporting 
files, including a CSS file for the HTML version of the resume, and a short 
PDF containing contact information for references. 

The program that generates the resumes and supporting files is written in 
Java. The data file that is parsed to create each format of the resume is a 
Java ResourceBundle of the "list" type. NOw, I'm only producing the resumes 
in English so I should mention that I am open to the possibility of 
creating the resume in additional languages - I have a working knowledge of 
two other (human) languages - so I chose to use a Resource Bundle so that I 
could easily generate resumes in additional languages. Otherwise, I'd have 
probably just used a standard text file or more likely a properties file. 

Given the fact that several resumes containing the same data are being 
generated there would seem to be obvious opportunities for refactoring and 
probably at least one interface. This code has gone through various 
permutations but I've used a single interface with a single method in my 
existing code. The code works but I'm not at all sure it is designed well. 
I'd be very curious to get your take on it. I expect that the design has 
major flaws and I'd like to clean those up once I find out what they are.

Does that sound reasonable to you? I'm basically asking you to talk me 
through the way you would design it knowing what I've told you. Naturally, 
you're free to ask as many questions as you like to understand what I'm 
trying to do. 

>> By the way, I completely see your point in the examples. I have
>> already benefited from the same by using Collections. I use more Sets
>> than Lists 
> 
> Why do you use more sets than lists?
> 
Most of the things I put in collections should not have duplicates so I 
enforce that via Sets. Naturally, if duplicates are appropriate, I'll use a 
list. 

>> and I will often start with a HashSet but if I start using it and
>> find it doesn't have things in the order I wanted, it's a trivial
>> thing to change it to another ordering by choosing a TreeSet or
>> LinkedHashSet. That is REALLY convenient.
>>
>> Now that I think about it, I suppose I know enough to tackle the pop
>> quiz after all.
>>
>> I have the feeling that I'm supposed to answer with something like
>> "the API" or maybe based on something you said in one of your posts.
>> Well, I'm 
> 
> "You're supposed to answer"? What _is_ the answer? "The API" or
> "something you said" isn't an answer. That's like saying, "Where in
> the city will I find the post office" and you say, "There's a map
> somewhere". I am still left unable to mail a letter.
> 
>> going to "over-answer" the question and say this:
> 
> Sorry, that's actually under-answering.
> 
Yeah, I get that now. 

>> I know that the API or the various Java Tutorials (like the one on
>> Collections) often gives clues about performance and tells you
>> explicitly, 
> 
> What clues? Where? Show me. I asked a specific question about specific
> classes. 
>
Answered above for ArrayList and LinkedList.
 
>> for example, that a HashSet normally performs best and a TreeSet
>> worst with a LinkedHashSet typically performing almost as well as a
>> HashSet. So that's obviously a good place to start.
> 
> "normally"? "performs"? "best"?
>
Just a generalization I saw in the tutorial for the Java Collection 
Classes. Let me get you a reference....

Assuming you're already in the Java 1.7 API, the articles on ArrayList and 
LinkedList both have this line: "This call is a member of the Java 
Collections Framework". If I click that, then Tutorial, then Interfaces, 
then Set Interface, I come to this paragraph which was the basis for my 
generalization:

"The Java platform contains three general-purpose Set implementations: 
HashSet, TreeSet, and LinkedHashSet. HashSet, which stores its elements in 
a hash table, is the best-performing implementation; however it makes no 
guarantees concerning the order of iteration. TreeSet, which stores its 
elements in a red-black tree, orders its elements based on their values; it 
is substantially slower than HashSet. LinkedHashSet, which is implemented 
as a hash table with a linked list running through it, orders its elements 
based on the order in which they were inserted into the set (insertion-
order). LinkedHashSet spares its clients from the unspecified, generally 
chaotic ordering provided by HashSet at a cost that is only slightly 
higher."


 
> You described some useful strategies, but let's see what happens when
> you apply them to 'ArrayList<E>' and 'LinkedList<E>'.
> 
Answered above (toward the top of this reply).

> And since you brought them up, the three 'Set' implementations you
> mention. 
> 
> The questions above are to stimulate thought. The questions that
> follow are for you to answer here.
> 
> Without asking anyone else, but by research (which you should cite):
> 
As above.

> What are the performance differences (if any! - question every
> assumption in a question) between:
> - 'ArrayList<E>' and 'LinkedList<E>'?

I've cited the API on this already. Would you like me to paraphrase to show 
that I understand what they're saying?


> - 'HashSet<E>', 'TreeSet<E>' and 'LinkedHashSet<E>'?

I've cited the Tutorial on this already. Would you like me to paraphrase to 
show that I understand what they're saying?

> 
> What are the differences between:
> - 'List<E>' and 'Set<E>'?
>
Functionally, the big difference is the tolerance for duplicates: Sets 
don't permit duplicates but Lists do. As a guy with a relational database 
background, I tend to put primary keys on every data structure I conceive 
which is why I do more Sets than Lists.
 
> For your claim that "HashSet normally performs best", define:
> - "normally"
> - "performs"
> - "best"
> 
That whole claim was basically a paraphrase of the passage from the 
Collections tutorial cited above. Bloch (I assume he's the one that wrote 
this tutorial), states clearly that HashSet is the best-performing 
implementation of the three (HashSet, TreeSet and LinkedHashSet). Since 
HashSet doesn't guarantee the order of iteration, it is presumably cheaper 
to build and maintain. Given that people often want data to be in a 
predictable order, TreeSet is provided but he warns that it is 
substantially slower, presumably since it has to keep things in order as it 
constructs the set and that takes more time/effort. LinkedHashSet ends up 
being sort of a hybrid of the other two by the sounds of it. It is based on 
a hash table like HashSet but has a linked-list running through it to 
ensure that elements are kept in the desired order (insertion-order) but, 
through the miracle of clever programming, apparently only costs slightly 
more than HashSet, rather than being substantially slower like TreeSet. 

The paraphrase was a bit sloppy. I shouldn't have said "normally" since it 
implies that sometimes what I've said in the preceding paragraph isn't 
true. In fact, I assume that paragraph is ALWAYS true. 

Basically, if you don't care about the order of the elements of the Set, 
you'll find HashSet fastest. If you care about the order, LinkedHashSet 
will be faster than TreeSet. 

There's nothing to suggest any other factors, such as the size of the 
entry, has any effect on the performance of the Set implementation. 

> Since you get to define these terms, there might not be exactly a
> right answer. Instead, justify your definitions to whatever extent you
> feel they need it. Be careful - justifications like "the standard
> definition" do require citation of which standard.
> 
> Have fun.
> 
I await your opinion of my answers. I hope I'm closer to the spirit of what 
you had in mind this time. 

Naturally, the other approaches I mentioned are still available but I 
expect most people would stop with the API and/or tutorial unless they had 
an especially challenging issue that they were handling. 

-- 
Novice

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Aspect questions? Novice <novice@example..com> - 2012-02-24 20:10 +0000
  Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 13:05 -0800
    Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 05:47 +0000
      Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 23:40 -0800
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:02 +0000
          Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 12:08 -0800
            Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 22:12 +0000
              Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 14:27 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 23:29 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:33 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 14:38 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:49 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:53 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 18:17 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 16:01 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 17:22 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 12:25 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 21:08 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:33 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 17:05 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 20:18 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:29 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 05:44 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:37 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-28 00:04 -0800
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-28 01:39 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 14:54 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-28 17:24 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 04:53 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:08 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 05:12 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:38 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 17:27 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 12:22 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:50 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 17:24 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:00 +0000
                Re: Aspect questions? Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-02-29 09:14 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 09:55 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 21:31 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 23:06 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 04:33 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-04 23:00 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-04 17:07 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:33 +0000
                JavaDoc linking (Was: Aspect questions?) Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-03-05 08:38 -0800
                Re: JavaDoc linking (Was: Aspect questions?) Novice <novice@example..com> - 2012-03-05 17:40 +0000
                Re: JavaDoc linking (Was: Aspect questions?) Patricia Shanahan <pats@acm.org> - 2012-03-05 21:25 -0800
                Re: JavaDoc linking (Was: Aspect questions?) Arne Vajhøj <arne@vajhoej.dk> - 2012-03-06 17:23 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:45 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-06 06:03 -0400
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-06 21:05 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:11 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:09 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-26 23:43 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 05:20 +0000
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-26 21:32 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 17:36 +0000
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 13:18 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:05 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:33 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 14:53 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 15:16 -0500
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-27 17:57 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:59 +0000
                Re: Aspect questions? Jeff Higgins <jeff@invalid.invalid> - 2012-02-28 05:50 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:03 +0000
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-02-27 13:17 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 22:55 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 05:58 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 18:14 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-28 00:12 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-28 02:04 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:22 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:11 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:14 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-28 23:09 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:25 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-01 00:22 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-01 01:44 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-29 23:24 -0800
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-01 21:19 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 01:52 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-03 01:39 +0000
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:38 +0000
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-03-05 22:50 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:46 -0800
                Re: Aspect questions? Patricia Shanahan <pats@acm.org> - 2012-03-06 08:14 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-06 21:23 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-08 20:10 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 01:49 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-01 22:38 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-02 06:05 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 14:25 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-03-02 18:10 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-02 14:12 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-02 08:57 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-05 15:57 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-05 23:48 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-03-07 20:33 +0000
                Re: Aspect questions? Lew <lewbloch@gmail.com> - 2012-03-07 13:09 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:20 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-03-02 14:28 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:16 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-26 10:10 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 20:52 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:48 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:47 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:40 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:36 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-26 16:04 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 19:38 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 17:09 -0800
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 20:08 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 19:43 -0500
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-27 22:03 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:18 -0500
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 13:43 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 01:11 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 21:49 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-27 18:37 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 12:28 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-28 00:55 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-27 17:37 -0800
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 15:57 +0000
                Re: Aspect questions? Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-02-28 03:21 -0600
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-28 09:19 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-27 21:12 -0500
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-28 05:59 -0400
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-28 17:27 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-29 16:07 +0000
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-03-02 17:26 -0500
              Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:22 -0500
                Re: Aspect questions? markspace <-@.> - 2012-02-25 20:22 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 22:20 -0800
                Re: Aspect questions? markspace <-@.> - 2012-02-26 00:04 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 00:21 -0800
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 00:33 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:43 -0500
                Re: Aspect questions? Martin Gregorie <martin@address-in-sig.invalid> - 2012-02-26 11:18 +0000
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 11:04 -0400
                Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-26 10:22 -0400
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 21:04 +0000
                Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-26 14:01 -0800
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 18:46 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 09:50 -0500
                Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-26 10:38 -0500
                Re: Aspect questions? Novice <novice@example..com> - 2012-02-26 20:49 +0000
      Re: Aspect questions? jlp <jlp@jlp.com> - 2012-02-25 09:47 +0100
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:03 +0000
          Re: Aspect questions? jlp <jlp@jlp.com> - 2012-02-25 20:02 +0100
      Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 10:20 -0400
        Re: Aspect questions? markspace <-@.> - 2012-02-25 08:18 -0800
          Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 12:04 -0500
        Re: Aspect questions? Novice <novice@example..com> - 2012-02-25 17:17 +0000
          Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 18:40 -0400
          Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 18:18 -0500
      Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 09:21 -0500
      Re: Aspect questions? Roedy Green <see_website@mindprod.com.invalid> - 2012-02-25 14:35 -0800
  Re: Aspect questions? markspace <-@.> - 2012-02-24 14:30 -0800
    Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-24 19:47 -0500
      Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-24 20:52 -0800
        Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-25 09:31 -0500
        Re: Aspect questions? Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-02-25 11:05 -0400
          Re: Aspect questions? Lew <noone@lewscanon.com> - 2012-02-25 12:20 -0800
  Re: Aspect questions? Arne Vajhøj <arne@vajhoej.dk> - 2012-02-24 19:00 -0500
  Re: Aspect questions? Tom Anderson <twic@urchin.earth.li> - 2012-02-25 00:22 +0000

csiph-web