Wednesday, July 29, 2009

comp.lang.c++ - 26 new messages in 13 topics - digest

comp.lang.c++
http://groups.google.com/group/comp.lang.c++?hl=en

comp.lang.c++@googlegroups.com

Today's topics:

* Ed hardy handbags Discount - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/f1e9dda3ad42edee?hl=en
* Behaviour of istream_iterator on closed stream - 3 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/b2854b7eb7f63001?hl=en
* Alternatives to C: ObjectPascal, Eiffel, Ada or Modula-3? - 4 messages, 4
authors
http://groups.google.com/group/comp.lang.c++/t/40783f7f814400c9?hl=en
* Char bit fields - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/978f67a6f5fac1e4?hl=en
* SSO - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/77f7c1c9190e45a7?hl=en
* How to write previous element in STL list - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/2d136691c93121bf?hl=en
* dealing with lower level programmers - 6 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/f708a2c0cfa8ce2d?hl=en
* ✪✪✪✪✪✪→ Factory Promotion Special Offer→Polo T-Shirts & Lacoste T-Shirts Low
Price Welcome To Our Site www.guomeitrade.com Paypal Payment - 2 messages, 2
authors
http://groups.google.com/group/comp.lang.c++/t/d84c05b86c6bd341?hl=en
* ◆→Hot sale Fashion Lady Handbags Juicy,Burberry,Gucci,LV,Prada,D&G,Edhardy,
Chanel,Coach, Jimmy-Hoo ♡www.toptradea.com♡ - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/6144ca4b2ffecf22?hl=en
* இ◆இHot sale Iphone 3G 16gb&8gb,Iphone3Gs,M89,M88,T32,G1,G2,TV Brand new,
unlocked,with all accessories Our policy: order 1-3pce brand mobile with a
free polo Tshirt, order more than 5 pcs brand mobiles with a free nike sneaker
(time limited) - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/ebb7c2de588705c1?hl=en
* ◆田◆Wholesale Nokia ,Iphone, Samsung, Blackberry, Sony, Motorola,etc brand
mobiles "www.toptradea.com" ◆ Our policy: order 1-3pce brand mobile with a
free polo Tshirt, order more than 5 pcs brand mobiles with a free nike sneaker
(time limited) - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/f0f5ce594281f19d?hl=en
* ☆◆☆Sneaker of Nike,Jordan,Gucci,Adidas,Puma,EdhardyShox,Max,Free,Rift☆◆☆Polo,
Lacoste,BBC,Gucci,Armani,LV,Christina Audigier Tshirt and Jeans ☆www.toptradea.
com☆ - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/c36fe8daf1ccc652?hl=en
* ^^^Free shipping!!! ≮DISCOUNT!!!!! Cheap wholesale Brand (LV, BBC, Diesel,
Coogi, Armani ect) Jeans, Pants ect, welcome to---www.fjrjtrade.com≯ (paypal
payment) - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/932aba16802d220e?hl=en

==============================================================================
TOPIC: Ed hardy handbags Discount
http://groups.google.com/group/comp.lang.c++/t/f1e9dda3ad42edee?hl=en
==============================================================================

== 1 of 1 ==
Date: Tues, Jul 28 2009 11:38 pm
From: gosee


Find Designer Ed hardy bags and Ed hardy handbags with cheap price ?

We offer kinds of styles Designer Ed hardy bags & Ed hardy
handbags,they all fine quality and cheap price for choose.

You can check them here:
http://www.showluxury.com/goods.php?id=730

Our pricing will match wholesale rates and you do not have to buy
wholesale,
you can pick your favorite Ed hardy bags in retail and pay wholesale
price.

==============================================================================
TOPIC: Behaviour of istream_iterator on closed stream
http://groups.google.com/group/comp.lang.c++/t/b2854b7eb7f63001?hl=en
==============================================================================

== 1 of 3 ==
Date: Wed, Jul 29 2009 12:18 am
From: Ian Collins


Old Wolf wrote:
> Code snippet:
>
> std::ifstream file( "does_not_exist" );

You should have tested the state of file before going any further. It's
a pity this std::ifstream constructor doesn't throw an exception.

> std::vector<char> file_vec;
> std::copy( std::istream_iterator<char>(file),
> std::istream_iterator<char>(), std::back_inserter(file_vec) );
> if ( file_vec.empty() )
> // file did not exist or had no contents..
>
>
> I expected this to work, and have the istream_iterator for
> closed file return a blank iterator, so the copy would not
> copy anything. But it segfaults. Is the behaviour
> undefined or is my compiler broken?

I think all bets are off, the std::ifstream object isn't fully initialised.

--
Ian Collins


== 2 of 3 ==
Date: Wed, Jul 29 2009 12:48 am
From: "Alf P. Steinbach"


* Ian Collins:
> Old Wolf wrote:
>> Code snippet:
>>
>> std::ifstream file( "does_not_exist" );
>
> You should have tested the state of file before going any further. It's
> a pity this std::ifstream constructor doesn't throw an exception.
>
>> std::vector<char> file_vec;
>> std::copy( std::istream_iterator<char>(file),
>> std::istream_iterator<char>(), std::back_inserter(file_vec) );
>> if ( file_vec.empty() )
>> // file did not exist or had no contents..
>>
>>
>> I expected this to work, and have the istream_iterator for
>> closed file return a blank iterator, so the copy would not
>> copy anything. But it segfaults. Is the behaviour
>> undefined or is my compiler broken?
>
> I think all bets are off, the std::ifstream object isn't fully initialised.

Hm. It is perhaps well known to you that I'm not very enthusiastic about
iostreams, but I find that hard to believe. Is it really true?

Yeah, I remember something about internal two-phase construction with an Init_
call or something, very bad.

But still -- how could one check for success if the object isn't fully
initialized?


Cheers,

- Alf


== 3 of 3 ==
Date: Wed, Jul 29 2009 1:43 am
From: Ian Collins


Alf P. Steinbach wrote:
> * Ian Collins:
>> Old Wolf wrote:
>>> Code snippet:
>>>
>>> std::ifstream file( "does_not_exist" );
>>
>> You should have tested the state of file before going any further.
>> It's a pity this std::ifstream constructor doesn't throw an exception.
>>
>>> std::vector<char> file_vec;
>>> std::copy( std::istream_iterator<char>(file),
>>> std::istream_iterator<char>(), std::back_inserter(file_vec) );
>>> if ( file_vec.empty() )
>>> // file did not exist or had no contents..
>>>
>>>
>>> I expected this to work, and have the istream_iterator for
>>> closed file return a blank iterator, so the copy would not
>>> copy anything. But it segfaults. Is the behaviour
>>> undefined or is my compiler broken?
>>
>> I think all bets are off, the std::ifstream object isn't fully
>> initialised.
>
> Hm. It is perhaps well known to you that I'm not very enthusiastic about
> iostreams, but I find that hard to believe. Is it really true?
>
> Yeah, I remember something about internal two-phase construction with an
> Init_ call or something, very bad.

Which is why I think it should throw.

> But still -- how could one check for success if the object isn't fully
> initialized?

A flag initialised to false and set true once the object is built?

--
Ian Collins

==============================================================================
TOPIC: Alternatives to C: ObjectPascal, Eiffel, Ada or Modula-3?
http://groups.google.com/group/comp.lang.c++/t/40783f7f814400c9?hl=en
==============================================================================

== 1 of 4 ==
Date: Wed, Jul 29 2009 12:50 am
From: Elena


On 28 Lug, 20:57, fft1976 <fft1...@gmail.com> wrote:
> >      - Eiffel is geared toward application programming in
> > medium/large-sized teams relying heavily on OO modelling. It is designed
> > for (re)usability, correctness and efficiency in this order.  
> > My needs are somewhat different though.
> > The main gripe I have with Eiffel is the lack of a well-documented
> > standard gpl'ed library.
> > GOBO and EiffelBase seem to have incomplete or non-free documentation
> > and I couldn't find tutorials; as such, I couldn't get a clear picture
> > about them.
> > ==> Qualifies for 0,1,2,4,5 and 6.  Not sure about 3.

Don't forget that you can download a GPLed version of EiffelStudio,
the Eiffel IDE with all bells and whistles from ISE:

https://www2.eiffel.com/download/download_info.aspx?id=eiffelstudio&info=false&mirrors=eiffelstudio


== 2 of 4 ==
Date: Wed, Jul 29 2009 1:11 am
From: Ray Blaak


fft1976 <fft1976@gmail.com> writes:
> >      - Ada is best suited for large teams and/or critical software, thus
> > it may be overkill for my work, OTH it could have anything I might
> > happen to need.

Ada is fine as far as it goes, and there is a GNU Ada compiler which helps a
lot.

My problem with it is the lack of a garbage collection. That is just not
acceptable to me these days. If you manually allocate memory, then you pretty
much have memory bugs, it's as simple as that.

It's better than C/C++ for sure, but I remember plenty of memory exceptions all
the same.

Also, I find the OO notation a little quirky.

> Ada is also 2x slower, but less suitable for your purposes (verbose,
> less memory safe than OCaml, free compilers produce GPL-only code)

I am pretty sure the GPL-only thing is not true.

My own language choice now would be Java or C#. I am investigating Clojure
since I always have a fondness for Scheme/Lisps, and a modern Lisp on the JVM
solves a lot of problems.

OCaml is something I want to know better as well. Any of the ML-family
languages should improve your type theoretical skills.

--
Cheers, The Rhythm is around me,
The Rhythm has control.
Ray Blaak The Rhythm is inside me,
rAYblaaK@STRIPCAPStelus.net The Rhythm has my soul.


== 3 of 4 ==
Date: Wed, Jul 29 2009 1:18 am
From: Oxide Scrubber


fft1976 failed for the second time to respect the Followup-To header:
> On Jul 28, 9:46 pm, Oxide Scrubber <jharri...@hatlop.de> wrote:
>
>>>> fft1976 wrote:
>>>>> Java: 1.5x slower than C as a rule of thumb.
>>>> I think it can achieve parity.
>>> I disagree. I don't think the JIT can do much about the memory layout
>>> of the data structures. Compare a vector of complex numbers or of 3D
>>> vectors (NOT of pointers to them) in C/C++ and Java. Run some tests. I
>>> did and I looked at others'.
>>> For me, 1.5x is a good trade-off for safety though.
>> The JIT can't, but the coder can. If you want a vector of N
>> double-precision complex numbers in Java that is contiguous in memory,
>> for example, you could use a Java array of 2xN doubles and index into it
>> appropriately.
>
> This is fanboy fantasy, not reality.

Stop attacking me. I have done nothing to deserve your repeated flamage.
You must have the wrong target. Recheck and then go flame the correct
target.

> If I have a library for dealing with 3D vectors, I'm not going to lay
> out my data in flat arrays and copy the vectors back and forth.

If you have a library for dealing with X, in any language, you'll use
the data as laid out by that library.

A performant Java library for numerics should lay out its data in an
appropriate manner so as to achieve performance, of course.

> Also, this trick won't work with non-homogeneous records.

It will work for records of a primitive type, such as double. It won't
work if for some odd reason you want to mix ints and doubles in the same
vector, no. In that unusual case you may be better off either using
multiple separate arrays, but allocated one right after the other so
probably close together, one with all the ints and one with all the
doubles, or else resorting to JNI to implement some things.

>>>> With Java, in most cases you can slap "implements Cloneable" on a
>>>> class and make the clone method public,
>>> Java's "clone" does a shallow copy only (check the docs).
>> True. If you want a deep copy you will have to implement it yourself.
>
>> Or
>> you can make a deepCopy static utility method that exploits
>> "Serializable" to deep copy anything that's serializable simply by
>> serializing and deserializing it (which can use memory, or a temp file,
>> and not much memory if you make an auxiliary class implement both
>> InputStream and OutputStream, with its OutputStream methods writing to a
>> growable buffer and its InputStream methods consuming (possibly blocking
>> if necessary) from same. Closing the OutputStream aspect EOFs the
>> InputStream aspect. Then wrap in ObjectInput/OutputStream. You can use a
>> BlockingQueue of byte arrays of length 8192 (or whatever), serialize to
>> one end and deserialize from the other in concurrent threads, and it
>> will tend to not use much memory. Limit the BlockingQueue length to 1
>> item and it will never use much more than 8Kbyte (the OutputStream
>> aspect will block until the InputStream aspect consumes from the queue).
>
> Ouch...

No ouch. You'd only have to do this once, and then deepCopy would work
on every serializable type in Java, including ones that didn't exist
when you wrote deepCopy.

>> If the bulk of the time is spent performing arithmetic operations on
>> just a few values,
>
> We are talking number crunching here

Yes, I know.

>> If the arithmetic is bignum, the bulk of your time will be spent
>> performing individual bignum operations.
>
> Contrary to what the term sounds like, number crunching is rarely
> about bignums.

I never said otherwise.

>> If the arithmetic is on smallnums in arrays and the computations are
>> mostly mutations, then you may want to use Java arrays,
>
> That's what I said.

Now that the debate is over, please respect the followup-to header.

It would have been better, of course, had you chose to end it *before*
demonstrating to the entire world that you're unimaginative and
ignorant. Ignorant of numerous performance tricks for Java and other JVM
languages, ignorant of performant functional algorithms for various
things, and ignorant of the actual facts from timing operations, which
show all three languages capable of achieving the same top speed in
numeric calculations. And unimaginative enough not only to be unable to
think up any of these things, but also unable to think up arguments that
aren't laced heavily with ad hominems and other rhetoric. "This is
fanboy fantasy, not reality," "What was the point of your comment?,"
"Ouch...," "We are talking number crunching here, not useless pissing
contests," "Yeah, yeah...," and so forth do not constitute rational
arguments.


== 4 of 4 ==
Date: Wed, Jul 29 2009 2:11 am
From: fft1976


On Jul 29, 1:18 am, Oxide Scrubber <jharri...@hatlop.de> wrote:
> fft1976 failed for the second time to respect the Followup-To header:
>

Everyone who decides to reply to this joker, watch out: he's silently
adding "Followup-To: alt.olympics" to his messages, trying to trick
you into not posting here, so he would have the last word.

Is this what Clojure fanboys must resort to when they lose an
argument? I thought Haskell and Common Lisp had the worst fanboys till
today.

==============================================================================
TOPIC: Char bit fields
http://groups.google.com/group/comp.lang.c++/t/978f67a6f5fac1e4?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 1:10 am
From: James Kanze


On Jul 28, 2:56 pm, Alex Vinokur <ale...@users.sourceforge.net> wrote:
> struct Foo
> {
> unsigned char : 2;
> unsigned char : 6;
> };

> What is correct sizeof(Foo) ?

Either implementation defined or unspecified, I'm not sure
which. (Implementation defined means that the implementation
must document what it does---in this case, how it lays out bit
fields, etc. Unspecified frees the implementation of the
documentation requirement.)

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

==============================================================================
TOPIC: SSO
http://groups.google.com/group/comp.lang.c++/t/77f7c1c9190e45a7?hl=en
==============================================================================

== 1 of 2 ==
Date: Wed, Jul 29 2009 1:15 am
From: tni


Juha Nieminen wrote:

> What would be the optimal copying strategy for the dynamic part, deep
> copying or copy-on-write?

That's going to depend on the use case. COW will cost performance in
working with a string, but can offer much faster copying.

> What advantages does a string class with SSO have over one which
> always allocates the string dynamically and uses CoW?

Copying is much faster for small strings (at least on some important
platforms like x86). The memory access pattern will be much better as
well (e.g. in a vector, everything is in a contiguous block of memory,
instead of being spread around).

For COW, you generally need some form of reference counting with atomic
counters. That's going to cost a few dozen clock cycles for a counter
access on x86 and causes the bus to be locked (which is a very bad thing
if you have lots of CPUs/cores). So, in a highly parallel environment,
you probably don't want COW.

The dynamic allocation will typically have at least 8-32 bytes of book
keeping overhead (which can matter if you have huge numbers of small
strings). A dynamic allocation/deallocation is generally going to take
several hundred clock cycles (and may involve bus locks as well, unless
the memory allocator is quite good).

But that kind of stuff is going to be highly
platform/compiler/implementation specific...

(If you want to see a good/fast COW implementation, look at Qt.)

For some numbers (populating a vector with 8 char long strings via
push_back(), running on a Core i7 on Windows):

Small string optimization (as I posted, 8-char buffer): 780ms
Small string optimization (as I posted, 32-char buffer): 1550ms
Dynamic allocation: 15'000ms
Thread-safe COW String (Qt QByteArray): 3400ms
std::basic_string (Dinkumware, uses small string optimization): 3900ms


== 2 of 2 ==
Date: Wed, Jul 29 2009 2:03 am
From: Juha Nieminen


tni wrote:
>> What advantages does a string class with SSO have over one which
>> always allocates the string dynamically and uses CoW?
>
> Copying is much faster for small strings (at least on some important
> platforms like x86).

I don't see how that would be the case. With a regular CoW string a
copy entails assigning one pointer and updating one counter at the end
of that pointer. Copying a string which uses SSO entails a check whether
the string is small or dynamically allocated, and then (assuming it is
small) a copy of a member array (which is probably several times larger
than a pointer) and the size member variable.

I could even believe that with optimal cache behavior and such you
could even achieve similar speeds, but much faster? I don't see that
happening.

(And of course if the string was not small, but dynamically allocated,
the copying will be basically identical except that there will be the
additional check before copying.)

> For COW, you generally need some form of reference counting with atomic
> counters.

The STL, at least the implementation in gcc, has never bothered with
atomicity...

> That's going to cost a few dozen clock cycles for a counter
> access on x86 and causes the bus to be locked (which is a very bad thing
> if you have lots of CPUs/cores). So, in a highly parallel environment,
> you probably don't want COW.

OTOH always deep-copying can be detrimental for speed in many
situations, such as when sorting an array of large strings. I'd bet that
even using locking would be faster.

> For some numbers (populating a vector with 8 char long strings via
> push_back(), running on a Core i7 on Windows):
>
> Small string optimization (as I posted, 8-char buffer): 780ms
> Small string optimization (as I posted, 32-char buffer): 1550ms
> Dynamic allocation: 15'000ms
> Thread-safe COW String (Qt QByteArray): 3400ms
> std::basic_string (Dinkumware, uses small string optimization): 3900ms

Naturally allocation will be significantly slower than simply
assigning to a member array. But only using 8 char long strings for such
a test feels a bit artificial.

==============================================================================
TOPIC: How to write previous element in STL list
http://groups.google.com/group/comp.lang.c++/t/2d136691c93121bf?hl=en
==============================================================================

== 1 of 2 ==
Date: Wed, Jul 29 2009 1:28 am
From: James Kanze


On Jul 28, 4:32 pm, Juha Nieminen <nos...@thanks.invalid> wrote:
> Pascal J. Bourguignon wrote:
> > I don't know if the C++ standard does the same about operators such as
> > +, but indeed it might be expect that + is a O(1) operation.

> You can write your own operator+ for your list iterators if
> you want. There's nothing stopping you. (Except that I think
> you can't template operator overloads, which is a bit of a
> bummer, but you can overload the operator for specific list
> types.)

Operator overloads can be template functions; there's no problem
there. The problem for operator+ on an std::list::iterator is
that if you try to write:

template< typename T >
typename std::list< T >::iterator
operator+(
typename std::list< T >::iterator
lhs,
int rhs )
{
std::advance( lhs, rhs ) ;
return lhs ;
}

, T is in a non-deduced context, which means that template
argument deduction fails, and no instantiation of the template
is added to the overload set. (You can, of course, still call
it with "::operator+<int>( i, 3 )", but that sort of defeats the
purpose of operator overloading.) And if you just write:

template< typename T >
T
operator+(
T lhs,
int rhs )
{
std::advance( lhs, rhs ) ;
return lhs ;
}

, you're going to match a lot of things you don't want it to
match, and probably cause problems elsewhere (ambiguous
overloads, or it might even be a better match than the intended
operator).

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 2 of 2 ==
Date: Wed, Jul 29 2009 2:11 am
From: Juha Nieminen


James Kanze wrote:
> On Jul 28, 4:32 pm, Juha Nieminen <nos...@thanks.invalid> wrote:
>> Pascal J. Bourguignon wrote:
>>> I don't know if the C++ standard does the same about operators such as
>>> +, but indeed it might be expect that + is a O(1) operation.
>
>> You can write your own operator+ for your list iterators if
>> you want. There's nothing stopping you. (Except that I think
>> you can't template operator overloads, which is a bit of a
>> bummer, but you can overload the operator for specific list
>> types.)
>
> Operator overloads can be template functions; there's no problem
> there. The problem for operator+ on an std::list::iterator is
> that if you try to write:
>
> template< typename T >
> typename std::list< T >::iterator
> operator+(
> typename std::list< T >::iterator
> lhs,
> int rhs )
> {
> std::advance( lhs, rhs ) ;
> return lhs ;
> }
>
> , T is in a non-deduced context, which means that template
> argument deduction fails, and no instantiation of the template
> is added to the overload set. (You can, of course, still call
> it with "::operator+<int>( i, 3 )", but that sort of defeats the
> purpose of operator overloading.) And if you just write:
>
> template< typename T >
> T
> operator+(
> T lhs,
> int rhs )
> {
> std::advance( lhs, rhs ) ;
> return lhs ;
> }
>
> , you're going to match a lot of things you don't want it to
> match, and probably cause problems elsewhere (ambiguous
> overloads, or it might even be a better match than the intended
> operator).

I suppose there is no way of implementing this in a templated way?

(I wonder if concepts would have helped doing this, if they had been
included in the next standard. Or were concepts usable purely for
compile-time diagnostics?)

==============================================================================
TOPIC: dealing with lower level programmers
http://groups.google.com/group/comp.lang.c++/t/f708a2c0cfa8ce2d?hl=en
==============================================================================

== 1 of 6 ==
Date: Wed, Jul 29 2009 1:30 am
From: James Kanze


On Jul 28, 2:32 pm, Andrew Tomazos <and...@tomazos.com> wrote:
> On Jul 28, 2:17 pm, James Kanze <james.ka...@gmail.com> wrote:

> > A lot you know---the banks are generally the ones who do the
> > cherry picking.

> Hilarious. Most good programmers get the gag reflex at the
> thought of working for a bank. So I was right. You haven't
> worked with any good programmers. Just the tie-wearing IT pro
> crowd.

I think you've proved my point. You obviously don't know beans
about good programs, or good programmers (or banks, for that
matter).

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 2 of 6 ==
Date: Wed, Jul 29 2009 1:40 am
From: James Kanze


On Jul 28, 3:40 pm, r...@zedat.fu-berlin.de (Stefan Ram) wrote:
> James Kanze <james.ka...@gmail.com> writes:
> >There are no good programs developed by just a single person.

> Do you deem »TeX« to be developed by just a single person?
> Do you deem »TeX« to be »good«?

No, and fundamentally, no.

It's certainly not the work of a single programmer, working in
isolation---Knuth is known for his communcations skills, and was
a thesis advisor for a number of people when TeX was being
written. (I read somewhere that a large percentage of TeX was
actually coded by one of the people who had him as a thesis
advisor. Having actually read several chapters of the source
code, however, I have my doubts---the style is definitely
Knuth's. On the other hand, Addison-Wesley published it as a
book, and technical books published by Addison-Wesley are NOT
produced in isolation---they're reviewed. And such reviews do
result in significant changes, and a lot of errors being
caught.)

As for the quality, it is significantly better than a lot of
commercial programs around. But it still contained more errors
than would have been acceptable in most places where I've
worked.

> Recently, Viktor Mayer-Schönberger went public claiming that
> too much »groupthink« might hinder creativity and that
> programmers sometimes might need some solitude.

Even without reading the article... Any creative thinker
certainly needs moments of solitude---a lot of my best ideas
come either in the shower, or when I'm driving, with no one else
in the car. But such creative ideas, and their implementation,
do need to be reviewed.

I think it also depends on the person. I'm most creative in an
isolated context, but I've worked with people who couldn't
create unless they were doing so out loud, to a listening
audience. So that after a fairly short brainstorming session,
I'd want to break it off, so that I could think creatively about
the points raised, but my collegue wanted it to continue, for
the same reason.

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 3 of 6 ==
Date: Wed, Jul 29 2009 1:51 am
From: James Kanze


On Jul 28, 4:50 pm, Pete Becker <p...@versatilecoding.com> wrote:
> Stefan Ram wrote:
> > James Kanze <james.ka...@gmail.com> writes:
> >> There are no good programs developed by just a single person.

> > Do you deem »TeX« to be developed by just a single person?

> Yes.

I'm pretty sure that's not the case, at least not in the sense I
mean. (I can't imagine that Knuth published the code without
having someone review it first. Review before publishing is a
basic principle in scholastic circles.)

> > Do you deem »TeX« to be »good«?

> No. It's a horrible programming language. Which is why it's
> usually papered over with LaTeX, which masks many of its
> quirks, but adds quirks of its own.

Good point. To answer the question, you have to precise what is
meant by "good". With regards to the number of errors, it's
better than a lot of commercial software, but still not what
would be considered "acceptable" in many places I've worked.
With regards to the quality of the output, I don't know of
anything better; I'm a bit of a perfectionists, and I use LaTeX
because the output is so beautiful (compared to, say, Word).
With regards to the "language", on the other hand... it is just
attrocious; it makes Fortran IV look elegant. (I suppose one
could argue that as TeX itself was really meant to be used as a
sort of "assembler" in which to write higher level languages,
it's acceptable. Except that plain TeX was supposed to be one
of those higher level languages, and neither it nor LaTeX---the
most widely used of the higher level languages---are really much
better.)

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 4 of 6 ==
Date: Wed, Jul 29 2009 1:56 am
From: James Kanze


On Jul 28, 9:14 pm, Ian Collins <ian-n...@hotmail.com> wrote:
> James Kanze wrote:
> > On Jul 28, 12:11 pm, Ian Collins <ian-n...@hotmail.com> wrote:
> >> James Kanze wrote:
> >>> But that's not the point. No one is perfect in any area.
> >>> We all make mistakes. Having some one else review our work
> >>> catches most of those mistakes (supposing that person is
> >>> competent as well); the mistakes he makes (the points he
> >>> misses in the review) will not be the same ones we make.
> >>> (Statistically, at least.)

> >> Which is a good argument for pair programming!

> > Well, pair programming is certainly better than working in
> > isolation. But other organizations work too, and are
> > usually more cost effective. (IMHO, pair programming
> > doesn't remove the necessity of doing good code review,
> > because both of the programmers are involved with the actual
> > writing. To get the most advantage, you really need an
> > outside view---someone who has no idea about the code before
> > hand. And once you do that, pair programming adds very
> > little, while requiring twice the number of people.)

> You keep claiming that never having tried it.

There are lot's of things I've never tried. That doesn't mean I
can't analyse, and make some prognostics. The people who
propose it never point to any studies where it was compared with
more established techniques, like code review, which have been
proven effective in many environments. As I said, it is
certainly a significant improvement over programming in total
isolation. But better (more cost effective) techniques are
known.

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 5 of 6 ==
Date: Wed, Jul 29 2009 2:08 am
From: James Kanze


On Jul 28, 5:34 pm, Christof Donat <c...@okunah.de> wrote:
> >> > There are, in fact, no human beings who are perfect, and
> >> > don't make mistakes.

> >> True, even if they claim it was a proven fact. Once it was
> >> a proven fact that the earth is flat.

> > When? The basic principles of scientific proof are a
> > product of the renaissance,

> No. People like Roger Bacon and William of Ockham were before.

I'd consider them precursers of the renaissance. And I'm not
sure they really covered everything we understand in "scientific
proof" today.

> Aristoteles was earlier as well. The foundations are really
> old.

Some of the foundations, yes. But not really what we'd insist
on for scientific proof today. (Predictividy, reproduceability,
etc.)

> What I actually wanted to say is that you should be careful
> with claiming "proven facts".

Certainly.

> >> > An effectively managed team can reduces these
> >> > significantly, however, because the mistakes of one
> >> > person will be caught and corrected by another.

> >> That is true as well, but it does not prove your claim that
> >> single programmers could never produce good code. Their
> >> chances are lower than those of a well managed highly
> >> skilled team.

> > Well, I suppose that a million monkeys typing away at a
> > keyboard could also produce a "good" program, just by
> > chance. The probability of it, however, is low enough that
> > it can be considered zero.

> I see, you don't want to accept the fact, that there are a few
> people that really are able to create high quality software
> alone.

Because I don't accept that any human being can be perfect, and
that he can produce a significant work without errors.
Empirical evidence supports me in this: to date, no human being
has ever produces a perfect work, in any field. And they've
been trying for a long time.

> >> Even if you have not yet met any of that rare kind that are
> >> competent in all three areas, be sure they do exist.

> > More or less competent, perhaps, but they'll still be better
> > in one than the others. Software development requires both
> > right brain people and left brain people, and one person
> > can't be both.

> It cant be because it shall not be.

Can't be because despite all of the efforts to find an
exception, none has been found. It's an empirical proof, but
given the size of the observed data, it's rather hard to deny
it.

> Reality has some surprises for all who think they can put it
> into simple boxes. "Right Brain" and "Left Brain" people are
> very simple boxes. Most people might fit into somehow, but
> there still are some that don't fit in any of your boxes.

Right brain and left brain are simple boxes, and people do lie
along a continuum. But they do represent distinct skills, and
people near the middle aren't particularly gifted for one or the
other (i.e. they aren't at one of the extremes).

> >> > Having some one else review our work catches most of
> >> > those mistakes

> >> At least that raises the probability.

> > From basically zero.

> No.

So you're arguing that some human beings are infallible.

> Actually I have written up to medium sized programs alone
> which I still think are well designed and coded and I finished
> them in time, so the project management wasn't so bad as well.
> I have worked as a coder, a software architect and as a
> project manager and succeeded in all three areas. I have also
> had various mixed roles and managed to do those jobs good as
> well.

But you're missing the main point. They're still fallible, and
need someone else to review their work.

> I can tell you from my experience, that
> 1. people exist that are able to do all those three jobs well,

For a low enough level of well, I suppose.

> 2. well managed a good team has a higher probability to
> prevent errors and get things done and
> 3. single people can produce well designed good written code
> in a reasonable project schedule as well. It's harder, but far
> from impossible.

A person, working alone, will still make significant errors
which would be caught by a review by a third party.

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


== 6 of 6 ==
Date: Wed, Jul 29 2009 2:10 am
From: James Kanze


On Jul 28, 10:08 pm, fft1976 <fft1...@gmail.com> wrote:
> On Jul 26, 12:44 am, James Kanze <james.ka...@gmail.com> wrote:

> > I don't think a professional programmer can succeed without
> > good management, regardless of how good he is.

> This confirms my suspicion that you've never worked with
> anyone good. (Being good is somewhat different than being a
> language lawyer, by the way)

So show an exception. Empirical evidence supports my
statement---where management is bad, projects fail, regardless
of how good the programmers on them are. To date, no one has
been able to present an exception, and an awfully large data set
has been examined.

--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

==============================================================================
TOPIC: ✪✪✪✪✪✪→ Factory Promotion Special Offer→Polo T-Shirts & Lacoste T-
Shirts Low Price Welcome To Our Site www.guomeitrade.com Paypal Payment
http://groups.google.com/group/comp.lang.c++/t/d84c05b86c6bd341?hl=en
==============================================================================

== 1 of 2 ==
Date: Wed, Jul 29 2009 1:43 am
From: "www.guomeitrade.com"


✪✪✪✪✪✪→Factory Promotion Special Offer→Polo T-Shirts & Lacoste T-
Shirts Low Price Welcome To Our Site www.guomeitrade.com Paypal
Payment


Online Store www.guomeitrade.com


A&F T-Shirt AFF Man T-Shirt Armani T-Shirt Babyphat Women T-Shirt Bape
Man T-Shirt BBC Man T-Shirt Blar Label Man T-Shirt BRM Man T-Shirt
Burberry Man T-Shirt Christan Audigier T-Shirt Coogi Man T-Shirt Crown
Holder Man T-Shirt D&G Man T-Shirt Diesel Man T-Shirt Ecko Man T-Shirt
ED Hardy T-Shirt Evisu Man T-Shirt Gino Green Global Man T-Shirt G-
Star Man T-Shirt Juicy Women T-Shirt Lacoste T-Shirt LEVI'S Man T-
Shirt LRG Man T-Shirt LV Man T-Shirt Nike Man T-Shirt POLO T-Shirt
SMET Man T-Shirt Smful Man T-Shirt Versace Man T-Shirt GUCCI T-Shirt
COACH Women T-Shirt Crown Holder T-Shirt Baby T-Shirt Akademiks T-
Shirt Adidas T-Shirt 5ive Jungle T-Shirt Smful T-Shirt Rocawear T-
Shirt LV T-Shirt


T-Shirts

http://www.guomeitrade.com/category-871-b0-T-Shirt.html

Factory Promotion→Polo T-Shirts China Wholesaler


POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html

Factory Promotion→Lacoste T-Shirt China Wholesaler


Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html


Low Price Good Quality POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html


Low Price Good Quality Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html


T-Shirts

http://www.guomeitrade.com/category-871-b0-T-Shirt.html

Factory Promotion→Polo T-Shirts China Wholesaler


POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html

Factory Promotion→Lacoste T-Shirt China Wholesaler


Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html

Low Price Good Quality POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html


Low Price Good Quality Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html


== 2 of 2 ==
Date: Wed, Jul 29 2009 2:00 am
From: "www.guomeitrade.com"


✪✪✪✪✪✪→Factory Promotion Special Offer→Polo T-Shirts & Lacoste T-
Shirts Low Price Welcome To Our Site www.guomeitrade.com Paypal
Payment


Online Store www.guomeitrade.com


A&F T-Shirt AFF Man T-Shirt Armani T-Shirt Babyphat Women T-Shirt Bape
Man T-Shirt BBC Man T-Shirt Blar Label Man T-Shirt BRM Man T-Shirt
Burberry Man T-Shirt Christan Audigier T-Shirt Coogi Man T-Shirt Crown
Holder Man T-Shirt D&G Man T-Shirt Diesel Man T-Shirt Ecko Man T-Shirt
ED Hardy T-Shirt Evisu Man T-Shirt Gino Green Global Man T-Shirt G-
Star Man T-Shirt Juicy Women T-Shirt Lacoste T-Shirt LEVI'S Man T-
Shirt LRG Man T-Shirt LV Man T-Shirt Nike Man T-Shirt POLO T-Shirt
SMET Man T-Shirt Smful Man T-Shirt Versace Man T-Shirt GUCCI T-Shirt
COACH Women T-Shirt Crown Holder T-Shirt Baby T-Shirt Akademiks T-
Shirt Adidas T-Shirt 5ive Jungle T-Shirt Smful T-Shirt Rocawear T-
Shirt LV T-Shirt


T-Shirts

http://www.guomeitrade.com/category-871-b0-T-Shirt.html

Factory Promotion→Polo T-Shirts China Wholesaler


POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html

Factory Promotion→Lacoste T-Shirt China Wholesaler


Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html


Low Price Good Quality POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html


Low Price Good Quality Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html


T-Shirts

http://www.guomeitrade.com/category-871-b0-T-Shirt.html

Factory Promotion→Polo T-Shirts China Wholesaler


POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html

Factory Promotion→Lacoste T-Shirt China Wholesaler


Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html

Low Price Good Quality POLO T-Shirt
http://www.guomeitrade.com/category-903-b0-POLO-T-Shirt.html


Low Price Good Quality Lacoste T-Shirt
http://www.guomeitrade.com/category-896-b0-Lacoste-T-Shirt.html

==============================================================================
TOPIC: ◆→Hot sale Fashion Lady Handbags Juicy,Burberry,Gucci,LV,Prada,D&G,
Edhardy,Chanel,Coach, Jimmy-Hoo ♡www.toptradea.com
http://groups.google.com/group/comp.lang.c++/t/6144ca4b2ffecf22?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 1:53 am
From: peng Selina


◆→Hot sale Fashion Lady Handbags
Juicy,Burberry,Gucci,LV,Prada,D&G,Edhardy,Chanel,Coach, Jimmy-Hoo
www.toptradea.com
Handbags http://www.toptradea.com/category.php?id=66
Prada Handbags http://www.toptradea.com/category.php?id=395
LV Handbags http://www.toptradea.com/category.php?id=394
Juicy Handbags http://www.toptradea.com/category.php?id=393
Jordan Handbags http://www.toptradea.com/category.php?id=392
Jimmy Hoo Handbags http://www.toptradea.com/category.php?id=391
Ed hardy Handbags http://www.toptradea.com/category.php?id=390
Fendi Handbags http://www.toptradea.com/category.php?id=389
DB Handbags http://www.toptradea.com/category.php?id=388
Coach Handbags http://www.toptradea.com/category.php?id=387
Chloe Handbags http://www.toptradea.com/category.php?id=386
Burberrys Handbags http://www.toptradea.com/category.php?id=385
Gucci Handbags http://www.toptradea.com/category.php?id=183
Chanel Handbags http://www.toptradea.com/category.php?id=185
D&G
Handbags http://www.toptradea.com/category.php?id=184
Brand-Luggages
http://www.toptradea.com/category.php?id=384

==============================================================================
TOPIC: இ◆இHot sale Iphone 3G 16gb&8gb,Iphone3Gs,M89,M88,T32,G1,G2,TV Brand new,
unlocked,with all accessories Our policy: order 1-3pce brand mobile with a
free polo Tshirt, order more than 5 pcs brand mobiles with a free nike sneaker
(time limited)
http://groups.google.com/group/comp.lang.c++/t/ebb7c2de588705c1?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 1:55 am
From: peng Selina


இ◆இHot sale Iphone 3G 16gb&8gb,Iphone3Gs,M89,M88,T32,G1,G2,TV Brand
new,unlocked,with all accessories Our policy: order 1-3pce brand
mobile with a free polo Tshirt, order more than 5 pcs brand mobiles
with a free nike sneaker (time limited)

Iphone http://www.toptradea.com/category.php?id=435
Nokia http://www.toptradea.com/category.php?id=436
Blackberry http://www.toptradea.com/category.php?id=437
HTC http://www.toptradea.com/category.php?id=438
Samsung http://www.toptradea.com/category.php?id=440
Motorola http://www.toptradea.com/category.php?id=439

==============================================================================
TOPIC: ◆田◆Wholesale Nokia ,Iphone, Samsung, Blackberry, Sony, Motorola,etc
brand mobiles "www.toptradea.com" ◆ Our policy: order 1-3pce brand mobile with
a free polo Tshirt, order more than 5 pcs brand mobiles with a free nike
sneaker (time limited)
http://groups.google.com/group/comp.lang.c++/t/f0f5ce594281f19d?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 1:56 am
From: peng Selina


◆田◆Wholesale Nokia ,Iphone, Samsung, Blackberry, Sony, Motorola,etc
brand mobiles "www.toptradea.com" ◆ Our policy: order 1-3pce brand
mobile with a free polo Tshirt, order more than 5 pcs brand mobiles
with a free nike sneaker (time limited)
Iphone http://www.toptradea.com/category.php?id=435
Nokia http://www.toptradea.com/category.php?id=436
Blackberry http://www.toptradea.com/category.php?id=437
HTC http://www.toptradea.com/category.php?id=438
Samsung http://www.toptradea.com/category.php?id=440
Motorola http://www.toptradea.com/category.php?id=439

==============================================================================
TOPIC: ☆◆☆Sneaker of Nike,Jordan,Gucci,Adidas,Puma,EdhardyShox,Max,Free,
Rift☆◆☆Polo,Lacoste,BBC,Gucci,Armani,LV,Christina Audigier Tshirt and Jeans
www.toptradea.com
http://groups.google.com/group/comp.lang.c++/t/c36fe8daf1ccc652?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 1:58 am
From: peng Selina


☆◆☆Sneaker of
Nike,Jordan,Gucci,Adidas,Puma,EdhardyShox,Max,Free,Rift☆◆☆Polo,Lacoste,BBC,Gucci,Armani,LV,Christina
Audigier Tshirt and Jeans ☆www.toptradea.com
Nike Air Jordan http://www.toptradea.com/category.php?id=6,
Air Jordan Fusion http://www.toptradea.com/category.php?id=7,
Nike Air Max http://www.toptradea.com/category.php?id=8,
Nike Shox http://www.toptradea.com/category.php?id=9,
Air Force 1 http://www.toptradea.com/category.php?id=14,
Nike Rift http://www.toptradea.com/category.php?id=10,
Adidas http://www.toptradea.com/category.php?id=11,
Puma http://www.toptradea.com/category.php?id=12,
Nike Blazer http://www.toptradea.com/category.php?id=20,
Ed hardy http://www.toptradea.com/category.php?id=15,
Gucci http://www.toptradea.com/category.php?id=13
Lacoste http://www.toptradea.com/category.php?id=16
T-shirt
: Bape http://www.toptradea.com/category.php?id=282,
Christina Audigier http://www.toptradea.com/category.php?id=285
,
D&G http://www.toptradea.com/category.php?id=290 ,
Ed hardy http://www.toptradea.com/category.php?id=292 ,
BBC http://www.toptradea.com/category.php?id=405 ,
Burberry http://www.toptradea.com/category.php?id=407 ,
G-star http://www.toptradea.com/category.php?id=408 ,
Gucci http://www.toptradea.com/category.php?id=411 ,
Lacoste http://www.toptradea.com/category.php?id=417 ,
Polo http://www.toptradea.com/category.php?id=423 ,
LV http://www.toptradea.com/category.php?id=422 ,
Smet http://www.toptradea.com/category.php?id=430 ,
Affliction http://www.toptradea.com/category.php?id=174 ,
Armani http://www.toptradea.com/category.php?id=180
Jeans: Evisu http://www.toptradea.com/category.php?id=363 ,
Gucci http://www.toptradea.com/category.php?id=365 ,
G-star http://www.toptradea.com/category.php?id=364 ,
LV http://www.toptradea.com/category.php?id=382 ,
D&G http://www.toptradea.com/category.php?id=192 ,
Ed hardy http://www.toptradea.com/category.php?id=186 ,
Iceberg http://www.toptradea.com/category.php?id=379 ,
BBC http://www.toptradea.com/category.php?id=191 ,
RMC http://www.toptradea.com/category.php?id=369 ,
Coogi http://www.toptradea.com/category.php?id=380,
Prada http://www.toptradea.com/category.php?id=193

==============================================================================
TOPIC: ^^^Free shipping!!! ≮DISCOUNT!!!!! Cheap wholesale Brand (LV, BBC,
Diesel, Coogi, Armani ect) Jeans, Pants ect, welcome to---www.fjrjtrade.com≯ (
paypal payment)
http://groups.google.com/group/comp.lang.c++/t/932aba16802d220e?hl=en
==============================================================================

== 1 of 1 ==
Date: Wed, Jul 29 2009 2:07 am
From: candy

Juicy cousture t shirts
Juicy woman t shirts
Juicy cousture suit
http://www.fjrjtrade.com/category-895-b0-Juicy-Women-T-Shirt.html

Jeans
http://www.fjrjtrade.com/category-1261-b0-Jean.html
Artful Dodger Jean
http://www.fjrjtrade.com/category-1954-b0-Artful-Dodger-Jean.html
BBC Jean
http://www.fjrjtrade.com/category-1955-b0-BBC-Jean.html
Cavalli Jean
http://www.fjrjtrade.com/category-1956-b0-Cavalli-Jean.html
Laguna Beach Jean
http://www.fjrjtrade.com/category-1951-b0-Laguna-Beach-Jean.html
Prada Jean
http://www.fjrjtrade.com/category-1957-b0-Prada-Jean.html
RMC Jean
http://www.fjrjtrade.com/category-1958-b0-RMC-Jean.html
Roca Wear Jean
http://www.fjrjtrade.com/category-1959-b0-Roca-Wear-Jean.html
ZEN Jean
http://www.fjrjtrade.com/category-1950-b0-ZEN-Jean.html
Affliction Jean
http://www.fjrjtrade.com/category-1262-b0-Affliction-Jean.html
Akademiks Jean
http://www.fjrjtrade.com/category-1263-b0-Akademiks-Jean.html
Armani Jean
http://www.fjrjtrade.com/category-1264-b0-Armani-Jean.html
Bape Jean
http://www.fjrjtrade.com/category-1265-b0-Bape-Jean.html
Black Label Jean
http://www.fjrjtrade.com/category-1266-b0-Black-Label-Jean.html
Christian Audigier Jean
http://www.fjrjtrade.com/category-1267-b0-Christian-Audigier-Jean.html
Coogi Jean
http://www.fjrjtrade.com/category-1268-b0-Coogi-Jean.html
Crown Holder Jean
http://www.fjrjtrade.com/category-1269-b0-Crown-Holder-Jean.html
D&G Jean
http://www.fjrjtrade.com/category-1270-b0-DG-Jean.html
Diesel Jean
http://www.fjrjtrade.com/category-1271-b0-Diesel-Jean.html
Ecko Unltd Jean
http://www.fjrjtrade.com/category-1272-b0-Ecko-Unltd-Jean.html
Ed Hardy Jean
http://www.fjrjtrade.com/category-1273-b0-Ed-Hardy-Jean.html
Evisu Jean
http://www.fjrjtrade.com/category-1274-b0-Evisu-Jean.html
G-Star Jean
http://www.fjrjtrade.com/category-1275-b0-G-Star-Jean.html
Gucci Jean
http://www.fjrjtrade.com/category-1276-b0-Gucci-Jean.html
Iceberg Jean
http://www.fjrjtrade.com/category-1277-b0-Iceberg-Jean.html
Jack&Jones Jean
http://www.fjrjtrade.com/category-1278-b0-JackJones-Jean.html
Justcavalli Jean
http://www.fjrjtrade.com/category-1279-b0-Justcavalli-Jean.html
Kanji Jean
http://www.fjrjtrade.com/category-1280-b0-Kanji-Jean.html
LEVI'S Jean
http://www.fjrjtrade.com/category-1281-b0-LEVIS-Jean.html
LRG Jean
http://www.fjrjtrade.com/category-1282-b0-LRG-Jean.html
LV Jean
http://www.fjrjtrade.com/category-1283-b0-LV-Jean.html
Rock&Republic Jean
http://www.fjrjtrade.com/category-1284-b0-Rock-Jean.html
True Relig Jean
http://www.fjrjtrade.com/category-1285-b0-True-Relig-Jean.html
Versace Jean
http://www.fjrjtrade.com/category-1286-b0-Versace-Jean.html

T-Shirt
wholesale AFF T-shirt
http://www.fjrjtrade.com/category-875-b0-AFF-Man-T-Shirt.html
wholesale ARMANI T-shirt
http://www.fjrjtrade.com/category-1885-b0-Armani-T-Shirt-Women.html
wholesale BAPE T-shirt
http://www.fjrjtrade.com/category-878-b0-Bape-Man-T-Shirt.html
wholesale BBC T-shirt
http://www.fjrjtrade.com/category-879-b0-BBC-Man-T-Shirt.html
wholesale BOSS T-shirt
wholesale Burberry T-shirt
http://www.fjrjtrade.com/category-882-b0-Burberry-Man-T-Shirt.html
wholesale CA T-shirt men's
wholesale CA T-shirt women's
http://www.fjrjtrade.com/category-883-b0-Christan-Audigier-T-Shirt.html
wholesale COOGI T-shirt
http://www.fjrjtrade.com/category-884-b0-Coogi-Man-T-Shirt.html
wholesale CRYSTAL ROCK women's
wholesale D&G T-shirt
http://www.fjrjtrade.com/category-886-b0-DG-Man-T-Shirt.html
wholesale DIESEL T-shirt
http://www.fjrjtrade.com/category-887-b0-Diesel-Man-T-Shirt.html
wholesale ED T-shirt women's
http://www.fjrjtrade.com/category-889-b0-ED-Hardy-T-Shirt.html
wholesale EVISU T-shirt
http://www.fjrjtrade.com/category-892-b0-Evisu-Man-T-Shirt.html
wholesale GGG T-shirt
http://www.fjrjtrade.com/category-893-b0-Gino-Green-Global-Man-T-Shirt.html
wholesale G-STAR T-shirt
http://www.fjrjtrade.com/category-894-b0-G-Star-Man-T-Shirt.html
wholesale HLST T-Shirt
wholesale Lacoste T-shirt
wholesale Lacoste T-shirt women's
http://www.fjrjtrade.com/category-896-b0-Lacoste-T-Shirt.html

www.fjrjtrade.com
Jersey
NFL Jersey
NBA Jersey
NHL Jersey
MLB Jersey
Football Jersey
www.fjrjtrade.com
Hoodies
Artful Dodger
AK Hoody
Affliction Hoody
Bape/Ape Hoody
BBC Hoody
Christan Audigier
CLH Hoody
ED-Hardy Hoody
Coogi Hoody
Evisu Hoody
G-Star Hoody
Gino Green Global
Kidrobot Hoody
LRG Hoody
Parish Hoody
Polo Hoody
10 Deep Hoody
www.fjrjtrade.com
Suit
Baby Phat
Burberry suit
Dior suit
Juicy Couture suit
www.fjrjtrade.com

Hair straightener
Hair products
Hair accessories

wholesale ADIDAS Sunglass
http://www.fjrjtrade.com/category-1542-b0-Adidas-Sunglass.html
wholesale ARMANI Sunglass
http://www.fjrjtrade.com/category-1543-b0-Armani-Sunglass.html
wholesale Burberry Sunglass
http://www.fjrjtrade.com/category-1544-b0-Burberry-Sunglass.html
wholesale BVLGARL Sunglass
http://www.fjrjtrade.com/category-1545-b0-Bvlgarl-Sunglass.html
wholesale Cartier Sunglass
http://www.fjrjtrade.com/category-1546-b0-Cartier-Sunglass.html
wholesale CHANEL Sunglass
http://www.fjrjtrade.com/category-1547-b0-Chanel-Sunglass.html
wholesale COACH Sunglass
http://www.fjrjtrade.com/category-1548-b0-Coach-Sunglass.html
wholesale D&G Sunglass
http://www.fjrjtrade.com/category-1549-b0-DG-Sunglass.html
wholesale DIESEL Sunglass
http://www.fjrjtrade.com/category-1550-b0-Diesel-Sunglass.html
wholesale DIOR Sunglass
http://www.fjrjtrade.com/category-1551-b0-Dior-Sunglass.html

Belt
Armani Belt
http://www.fjrjtrade.com/category-1305-b0-Armani-Belt.html
D&G Belt
http://www.fjrjtrade.com/category-1312-b0-DG-Belt.html
ED hardy Belt
http://www.fjrjtrade.com/category-1315-b0-ED-Belt.html
Gucci Belt
http://www.fjrjtrade.com/category-1316-b0-Gucci-Belt.html
LV Belt
http://www.fjrjtrade.com/category-1319-b0-LV-Belt.html
Other brands belt
Hat
New Hat
Christan Audigier
Ed hardy Hat
ERA Hat
Gucci Hat


Website:
http://www.fjrjtrade.com


==============================================================================

You received this message because you are subscribed to the Google Groups "comp.lang.c++"
group.

To post to this group, visit http://groups.google.com/group/comp.lang.c++?hl=en

To unsubscribe from this group, send email to comp.lang.c+++unsubscribe@googlegroups.com

To change the way you get mail from this group, visit:
http://groups.google.com/group/comp.lang.c++/subscribe?hl=en

To report abuse, send email explaining the problem to abuse@googlegroups.com

==============================================================================
Google Groups: http://groups.google.com/?hl=en

No comments: