Part II provides a comprehensive introduction to the Collections Framework. Newton is reputed to have said, “If I have seen farther than others, it is because I stand on the shoulders of giants”. The best programmers live by this motto, building on existing frameworks and reusable code wherever appropriate. The Java Collections Framework provides reusable interfaces and implementations for a number of common collection types, including lists, sets, queues, and maps. There is also a framework for comparing values, which is useful in sorting or building ordered trees. (Of course, not all programmers exploit reuse. As Hamming said of computer scientists, “Instead of standing on each other’s shoulders, we stand on each other’s toes.”)

Thanks to generics, code using collections is easier to read and the compiler will catch more type errors. Further, collections provide excellent illustrations of the use of generics. One might say that generics and collections were made for each other, and, indeed, ease of use of collections was one of the main reasons for introducing generics in the first place.

Java 5 and 6 not only update the Collections Framework to exploit generics, but also enhance the framework in other ways, introducing interfaces and classes to support concurrency and the new enum types. We believe that these developments mark the beginning of a shift in programming style, with heavier use of the Collections Framework and, in particular, increased use of collections in favor of arrays. In Part II, we describe the entire framework from first principles in order to help you use collections more effectively, flagging the new features of Java 5 and 6 as we present them.

Following common terminology, we refer to the successive versions of Java as 1.0 up to 1.4 and then 5 and 6. We say ‘Java before generics’ to refer to Java 1.0 through 1.4, and ‘Java with generics’ to refer to Java 5 and 6.

The design of generics for Java is influenced by a number of previous proposals—notably, GJ, by Bracha, Odersky, Stoutamire, and Wadler; the addition of wildcards to GJ, proposed by Igarashi and Viroli; and further development of wildcards, by Torgersen, Hansen, Ernst, von der Ahé, Bracha, and Gafter. Design of generics was carried out under the Java Community Process by a team led by Bracha, and including Odersky, Thorup, and Wadler (as parts of JSR 14 and JSR 201). Odersky’s GJ compiler is the basis of Sun’s current javac compiler.

Evan Prodromou is the founder of StatusNet Inc and the creator of the StatusNet software. His 20 years of software development experience began at Intel, then at Microsoft in the early 90s, which he left in 1996 to concentrate on the growing Web. He led the development of Segasoft's pioneering Heat.Net gaming community, developed distance education software for Fourth Dimension Interactive and CourseNet, led Open Source Web-based application development for Intalio, and helped develop the SAML specification at Securant (later acquired by RSA).

His experience with Open Source software began in 1996 when he wrote the first documentation for Perl on Windows servers. He has made contributions to many Open Source projects, including Debian, Freenet and MediaWiki (the software that runs Wikipedia).

In 2003 Prodromou founded Wikitravel.org, a free, up-to-date world-wide travel guide with a Creative Commons license. The site was sold to Internet Brands in 2005, and Prodromou developed software and did community management for the next three years. He continues to run a publishing company based on the travel site (Wikitravel Press) and has founded two other wiki sites (Vinismo for wine and Keiki for parenting). Wikitravel won the 2007 Webby Award for Travel.

Prodromou created the StatusNet software in 2008 and launched the open source community Identi.ca in July of that year. He served as the company's CEO until December 2010 and now leads the development, systems, and technical support groups. Prodromou won the 2008 Google Open Source Award for his work on StatusNet.

I once was waiting in line to submit membership application at Philadelphia Free Library and read this post on the wall. It says "Our computers are very human. When it fails, it complains to another computer". In light of recent debugging at work, I thought about to rewrite it as 'Our computers are like gods. When it works, it never tells another computer why it works.

Thank you for your sympathy. No, my poor father did not confess before he died. It makes me full of remorse. Had I come earlier, perhaps I could have persuaded him to do his duty, as he manifestly intended to have done. I hope that God will have given him credit for this good impulse, but I remain in the most terrible uncertainty about his final destiny. It is difficult to endure the thought of Hell, when one is face to face with it, and one's own father's fate is in question. Yet these mysteries are very near to us; how little separates us from death, and from that moment of terrible hesitation when the heart stops and the soul takes its departure! My mother has returned to her traditional faith. As for my sister Camille, I have just taken her into a nursing home. So you see that I have been having a bad time.

Aug 9th, 2011. sending a package to Peter with two books and other things.
'The trouble with testosterone and other essays on the biology of the human predicament" by Robert M. Sapolsky.
"Reinventing the Sacred - a new view of science, reason and religion' by stuart A. Kauffman

Adoration knows not how and when it is seeded.
Once it sprouts, it has a life of its own and knows no bounds
Living touches death, death becomes so alive.
If what lives can not accompany what is dead,
and what is dead can not reseed and do loving thee
both have not reached the fullness of one cosmic breath

Lovers of the dream, why it has to be not real?
it is not like this world is devoid of dreamers. so why not?