had a lot of fun just now going through 'Higher-order Perl' by Mark Jason Dominus. Damian Conway, co-designer of Perl6 wrote his 'Praise for Higher-Order Perl...':
"It raids the deepest vaults and highest towers of Computer Science, and transforms the many arcane treasures it finds - recursion, iterators, filters, memoization, partitioning, numerical methods, higher-order functions, currying, cutsorting, grammar-based parsing, lazy evaluation, and constraint programming - into powerful and practical tools for real-world programming tasks, file system interactions, HTML processing, database access, web spidering, typesetting, mail processing, home finance, text outlining, and diagram generation.
Along the way it also scatters smaller ( but equally invaluable ) gems, like the elegant explanation of the difference between "scope" and "duration" in Chapter 3, or the careful exploration of how best to return error flags in Chapter 4.
this and that & that could be useful to me as well. thanks
selected from 25 fav quotes on journaldev by PANKAJ
* A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)
* Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. (Martin Golding
* Programming is like sex. One mistake and you have to support it for the rest of your life. (Michael Sinz)
* Deleted code is debugged code. (Jeff Sickel)
* Walking on water and developing software from a specification are easy if both are frozen. (Edward V Berard)
If debugging is the process of removing software bugs, then programming must be the process of putting them in. (Edsger Dijkstra)
* Software undergoes beta testing shortly before it’s released. Beta is Latin for “still doesn’t work. (Anonymous)
* Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Rick Cook)
* It’s a curious thing about our industry: not only do we not learn from our mistakes, we also don’t learn from our successes. (Keith Braithwaite)
From Philip Wadler's 'Java Generics and collections'
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.
interesting synchronicity --> http://advogato.org/person/hypatia/diary/312.html
Evan Prodromou — CTO & Founder
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.
IBM names Virginia Rometty as its new president and CEO effective Jan.1, 2012. She will replace Sam Palmisano who is retiring but will remain as IBM's board chairman.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!