BD Software delivers on-site training seminars for programmers in C, C++, Java, Perl and Unix     BDSoft for on-site training seminars for programmers in C, C++, Java, Perl and Unix



BD Software delivers on-site training seminars for programmers in C, C++, Java, Perl and Unix

Resources for C/C++/Java Programmers and More

(a.k.a. Leor Zolman's Favorite Links. Updated 4/6/08)


For Programmers:

C/C++ Resources  Books   Standards   References/FAQs   C   STL   D
Java Resources


You don't have to be a programmer for the rest of this stuff:

General Tools and Resources
General Information Sites
Privacy/Security/AV/Spam/Filtering Resources
Essential Diversions
Cool Stuff du jour
High-Quality Services (from High-Quality Craftspeople)

 

C/C++ Resources

Online Multimedia Presentations: C++0x Progress and More

Lawrence Crowl: New Features in the Next C++ Standard

Doug Gregor:  Concepts Extending C++ Templates For Generic Programming

Bjarne Stroustrup: C++0x Initialization Lists

Lawrence Crowl: C++ Threads

Scott Meyers @ NWCPP: Red Code/Green Code - Generalizing Const

Herb Sutter @ NWCPP: Machine Architecture: Things Your Programming Language Never Taught You

Design and Evolution of C++: Bjarne Stroustrup and Herb Sutter (short interview)

Bjarne Stroustrup: High Performance Applications with C++ (short interview)

 

Individual C++ sites of note:

Herb Sutter's Blog: Essential reading if you want to keep up with what's going on in C++ language and library evolution. Herb's the chair of the ISO C++ Standards Committee, and he dutifully reports on what the commitee's voted into the standard after each meeting. Herb's also established himself as the concurrency guru with a current series of articles in DDJ on the topic (links for all the articles show up in the blog with the release of each new one.)

Twilight Dragon Media gcc 4.2.x Windows-resident C++ environment: After several days of Googling in search of a gcc 4.2 port (including support for the -D_CLIBGXX_DEBUG debugging STL mode) that runs under XP, I finally came across this native Windows command-line gcc 4.2 C++ platform that works. You do have to "gunzip" then "tar xf" a bunch of the files and "7z x" a few others (well, unless you have the graphical tool that just does all the rights things, which you may, but I hate IDE-based unzippers, lol). After they all land in the file structure however, everything just works "right out of the box"...no header file issues whatsoever. I don't even know who these people (Twilight Dragon Media) are, but THANK YOU!

Scott Meyers' TR1 Information page. Includes articles on TR1 in general, links to all the proposal documents describing the rationale and interface of the various TR1 components, and some ways to get TR1 functionality right now rather than having to wait for your platform's vendor to supply it.

Boost: The future of the C++ Standard Library, more or less. Boost is a repository of community-developed C++ libraries. Several of the founders/activists are on the Standard Committee's Library Working Group. Do the math...

The C++ Source: "The Premier Online Journal for the C++ Community". The 'zine is edited by Chuck Allison, former editor of the C/C++ Users Journal. Associated with the 'zine is the C++ Community News site.

Generic Programming: Ground zero for the upcoming "Concepts" feature of C++0x (which will allow the compiler to diagnose type mismatches during template specialization with messages that are comprehensible, unlike the current pre-Concepts scenario. See STLFilt). A Concepts-enabled version of the gcc C++ compiler and Standard Library is available for experimantation here.

Microsoft Visual Studio Express Editions: Download Microsoft's latest C++ compiler, including IDE, for free!

Thinking in C++, 2nd Edition: Bruce Eckel makes this excellent two volume set (including the awesome Volume II, co-authored with Chuck Allison) available as a free download. Bruce's entire site is worth visiting; all of his books (including ones on Java, patterns and Python) are similarly available for free. In this particular case, you get a whole lot more than what you pay for...

The C++ Annotations: A wonderfully comprehensive, mature and very readable HTML-based C++ learning resource by Dr. Frank B Brokken of the University of Groningen, The Netherlands. It does assume the reader already has a strong C background.

Comeau Computing: For $50, you can get yourself an honest-to-goodness Standard C++ compiler...along with built-in hooks for STL Error Decryption [my favorite feature ;-) ] and exceptional support from Comeau. A cool feature of the Comeau Computing web site is their Online Compiler, where you can paste in C++ code and compile it on the spot to test for Standard conformance.

Borland/CodeGear C++Builder: Free download for personal use (just choose the "Personal" edition).

Visual C++ Tips and Tricks: Tips on making the use of MSVC a bit more pleasant.

Guru of the Week: Herb Sutter's site. He da man. Chair of the ISO C++ Standards Committee, Software architect at Microsoft, author of the Exceptional C++ book series and zillions of articles, he may hold the world's record for brain CPU speed. Especially noteworthy is Herb's blog (see above), where the latest news from ISO Standards meetings is posted, along with links to many excellent C++-related webcasts and other educational material.

Scott Meyers' Site: He da man too (just not on the Standards Committee). Author of the seminal Effective C++ book series and my favorite speaker on C++.

Dan Saks' Site: Not only is Dan Saks an expert on all things C/C++, a former secretary of the ISO C++ Standards Committee and the leading educator on the use of C and C++ in the context of embedded systems....he's also a really, really nice guy. Most of my understanding of the motivation behind the design of C++ comes from Dan.

Steve Dewhurst's Site: Steve's the author of the excellent recent books C++ Gotchas and C++ Common Knowledge (as well as of the Advanced C++ course I offer.)

MinGW: Minimalist GNU for Windows: "A collection of freely available and freely distributable Windows specific header files and import libraries combined with GNU toolsets that allow one to produce native Windows programs that do not rely on any 3rd-party DLLs." And, finally, it comes with an honest-to-goodness self-contained self-installer: Go to the SourceForge download page, then locate "Automated MinGW Installer".

Dev-C++: A free IDE for C/C++ development. Very full-featured and elegant. The distribution comes with gcc 3.2 built in, so you can install Dev-C++ and use the IDE or just use gcc from the command line afterwards.

Digital Mars C++ Compiler: The latest incarnation of Walter Bright's C++ compiler (the first commercial native-code C++ compiler that ran on PCs, earlier known as Zortech C++), now available as a free download.

wxWidgets: (formerly wxWindows): A free C++ framework for cross-platform GUI development. I used it to create the STLTask utility that is part of my STL Error Decryptor package (see below). While that particular app only has to run under Windows, it was still more intuitive to develop than an MFC app...and wxWidgets lets you write a GUI app once so that it runs under Windows, Unix, whatever. Now that's cool.

C++ Resources at thefreecountry.com: Links to all the free C/C++ compilers available on the web, collected in one place. Did you know Microsoft is giving their Visual C++ command-line compiler away for free??

Free Compilers and Interpreters from Freeware-Guide.com. Many free compilers, some open-source, for several different languages. (Both this and the previous site even list BDS C!)

Intel C++ Compilers: In addition to their standard commercial compilers, Intel makes the Linux version of their C++ 7.1 compiler available free for noncommercial use. That makes this the most cost-effective way I know of to get a legal EDG-front-end-based C++ compiler.

 

Must-Have Books:

The C++ Standard Library: A Tutorial and Reference, Nicolai Josuttis, Addison-Wesley, 1999, ISBN 0-201-37926-0.

Effective C++, Third Edition: 55 Specific Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 2005, ISBN 0-321-33487-6.

More Effective C++: 35 New Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 1996, ISBN 0-201-63371-X.

Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library, Scott Meyers, Addison-Wesley, 2001, ISBN 0-201- 74962-9.

Exceptional C++, Herb Sutter, Addison-Wesley, 2000, ISBN 0-201- 61562-2.

More Exceptional C++, Herb Sutter, Addison-Wesley, 2002, ISBN 0- 201-70434-X.

Exceptional C++ Style, Herb Sutter, Addison-Wesley, 2005, ISBN 0- 201-76042-8.

C++ Coding Standards, Herb Sutter and Andrei Alexandrescu, Addison-Wesley, 2005, ISBN 0-321-11358-6.

C++ Gotchas: Avoiding Common Problems in Coding and Design, Steven Dewhurst, Addison-Wesley, 2003, ISBN 0-321-12518-5.

C++ Common Knowledge: Essential Intermediate Programming, Steven Dewhurst, Addison-Wesley, 2005, ISBN 0-321-32192-8.

Modern C++ Design: Generic Programming and Design Patterns Applied, Andrei Alexandrescu, Addison-Wesley, 2001, ISBN 0-201-70431-5.

 

Other Very Useful Books:

C++ Templates: The Complete Guide, David Vandevoorde and Nicolai Josuttis, Addison-Wesley, 2003, ISBN 0-201-73484-2.

Beyond the C++ Standard Library: An Introduction to Boost, Björn Karlsson, Addison-Wesley, 2006, ISBN 0-321-13354-4.

C++ Template Metaprogramming, David Abrahams and Aleksey Gurtovoy, Addison-Wesley, 2005, 0-321-22725-5.

The C++ Standard Library Extensions, Pete Becker, Addison-Wesley, 2007, ISBN 0-321-41299-0.

 

Standards and Standardization-Related:

C++ Standard: The official distribution site for the 1998 final C++ Standard document. Accept no substitutes.

C++ Standardization Status: Nice overview (this was some kind of slide presentation) of Standardese terms, pending activity, feature summaries, etc. (see also Herb Sutter's blog, described above, for late-breaking standarization news.)

 

Reference and FAQ Sites:

Incompatibilities between ISO C and ISO C++: Nice resource, maintained by David R. Tribble.

Predefined C/C++ Compiler Macros: I wish I'd known about this site before attempting some recent work on my InitUtil library, because it would have saved me an awful lot of time and trouble.

C/C++ Reference: Sweet, simple, well-organized site for C and C++ language and library reference information. They provide a packaged, downloadable version as well. As they say themselves on the last line of the FAQ: "Think of it as a community service, for geeks." Still waiting for an "Algorithms" section, though...

C++ FAQ Lite - The official comp.lang.c++ FAQ. Great info about everything C++: language, online community netiquette, technical / environmental issues, etc. etc.

alt.lang.learn.c-c++ FAQ: The FAQ for my favorite Usenet news group (although I participate in several other groups as well: comp.lang.c and comp.lang.c++)

Tech Talk about C++ and C: Nice FAQ from Comeau Computing.

Bjarne Stroustrup's C++ Style and Technique FAQ: The name says it all

Dinkum C++ Library: On-line C++ Library reference from Dinkumware, Ltd.

 

Standard Template Library:

SGI STL Programmer's Guide

The C/C++ Reference site listed in the previous section has nice STL information.

STLFilt: An STL Error Message Decryptor for C++: Tooting my own horn (just in case you didn't know about it already): STLFilt is a collection of tools that work in conjunction with Comeau C++, gcc (including within the Dev-C++ IDE), Metrowerks CodeWarrior, Microsoft Visual C++, Intel C++ and Borland C++ to post-process STL-related error and warning messages, rendering them comprehensible to non-C++-gurus via the removal of extraneous fluff. And even some gurus prefer the messages decrypted...

InitUtil: Another one of my little projects, an STL Container Initialization Library for quick-and-dirty stocking of containers with constant values (typically for testing purposes).

 

C-Specific:

Programming in C: Excellent site for ISO C news, documentation/commentary and links.

The Ten Commandments for C Programmers

C Programming Notes (to Accompany K&R): When I attended Hebrew school as a kid, we studied the Old Testament, and specifically the "Rashi", or commentary by some learned old Torah scholar that appeared side-by-side to the "official" text. This document, by Steve Summit, is like "Rashi for K&R", providing insightful commentary to the C Bible and pointing out the "deep sentence" gems scattered throughout that venerable tome.

comp.lang.c FAQ: The Frequently Asked Questions repository for the Usenet newsgroup.

K&R Answers to Exercises: A free repository of solutions to most of the coding exercises in The C Programming Language, 2nd Edition by Kernighan and Ritchie. Site maintained by Richard Heathfield.

And an antique: BDS C was first released in 1979 for CP/M-80 (Intel 8080 CPU, running at 2MHz with 64K max system RAM - but BDS C could be run on as little as a 40K system). Try it under the SIMH Altair simulator.

 

The D Programming Language:

The D Programming Language: The brainchild of compiler guru Walter Bright, D aspires to be successor to both C and C++...and the strangest thing is, it may actually succeed. I'd describe D as "The greatest hits of C, C++ and Java, with some additional original arrangements by Walter Bright". And I think he knows the score ;-)

 

There would be no point reproducing an exhaustive list of C++ - related sites; you will undoubtedly find anything you're looking for at one of the following general links sites:

A Cornucopia of C++ Resources: Excellent descriptions of each link to good books and documentation.

Sites of interest to C++ users: Another excellent list of links.

Technomagi C++ Links: Good selection of STL-related and general C++ / OOP sites

 

Java Resources

Starting out with Java? Make sure you've at least visited these sites first:

Sun's Java Site: The horse's mouth.

Thinking in Java: Another freebie book download from Bruce Eckel. It also just happens to be the best book on Java around.

The Java Tutorial: Yet another free book, this one nicely hyperlinked.

Modelworks: Makers of JPadPro, a wonderful Shareware Java IDE. I use it exclusively when teaching Java. Excellent tech support--When I asked about the behavior of some of the buttons, the author wrote macros for me to do what I wanted, then helped me integrate them into the package.

 

General Tools and Resources

Not specifically software development-related, but these Windows tools have served me awfully well--most for many years--and their authors have provided me with exemplary tech support whenever I've needed it:

RAMDisk: It took me a long time, but I finally found a RAM Disk utility for Windows XP that runs reliably, allows a large (~256M or more) device size, and can be re-sized on the fly (through a Device Manager-based control panel). I dabble a bit in astrophotography, and a RAM disk can speed up Registax processing by around 30%. The version downloadable on this page is limited to 64M, but you can email the author and request the version that allows larger sizes. There is a suggested donation of $10 or so, but the software is fully functional whether or not you pay it (he says there's a nag screen, but I've never seen it.)

WordWeb: A free taskbar-resident dictionary/thesaurus utility. Select any word in any application, click on the "W" icon, and get instant pop-up definitions and synonyms! Perfect for school-age kids' systems.

Startup Control Panel: Have you been frustrated trying to figure out where RealOne has stealthily installed itself so it obnoxiously starts up every time with Windows, and with seemingly no way to disable that feature from its control panel? Get this tool, and end of problem. Freeware written by Mike Lin, a 19-year-old MIT student. I was one of those once...no, sorry, I had actually already withdrawn by the time I turned 19... Anyway, make a contribution to his cookie jar and help with tuition ;-)

Epsilon Text Editor: This is a commercial package, but IMHO the best implementation of EMACS in existence. Now, how often do you run into a commercial package where the author personally answers every technical question you email to tech support, and answers his own phone? I did it back in 1980 while supporting BDS C, but today it is truly a rare thing to find in as high-quality a commercial product as this.

ExamDiff Pro: Excellent file comparator utility. The first graphical app I've found good enough to wean me off the DOS-based character mode tool I'd been using for years.

JP Software: Home of 4DOS and 4NT, powerful replacement command processors for Windows for those of us who can't quite get used to doing certain administrative and development tasks using a WIMP interface (Windows, Icons, Menus and Pointers)...and also can't stand the limitations of standard DOS/Windows batch scripting support. Crafting complex regression testing scripts for my STL Error Decryptor was a pleasure under 4NT...and would've been impossible using the native Windows command processors.

TaskInfo: Incredibly comprehensive Windows task monitoring utility. Want to know what files are being held open by what process? Want to terminate a process in less time than it sometimes takes Task Manager to just wake up? Try this.

Teleport Pro: Copies an entire web site onto your own machine, and updates it later on very conveniently. I use this to snag the CUJ Experts Forum articles onto my machine for later perusal.

SnagIt!: Screen-cap utility that just about does it all.

HP-16c emulator: WRPN, written by Emmet P. Gray, is a public domain calculator for Microsoft Windows that is modeled after the Hewlett-Packard HP-16c. I use a real HP-16c for everything (the first set of batteries lasted about 15 years). I was overjoyed to discover this emulator, so my beloved calculator could be with me, virtually, anywhere, while at the same time remaining safe and sound on my office desk! (Note: the emulator doesn't support the calculator's programming features, but then, I've never learned to use them on my own real 16c anyway...)

Fix Sort Order: A registry mod to restore sane sort ordering to Windows XP File Open/Save Dialogs. I don't know what messes the order up in the first place, but I searched high and low for a solution until I found this little utility. Part of a great Windows tip site, Doug's Windows Tweaks and Tips.

Speedswitch for Windows XP: Awesome utility that let's you take full control over CPU speed for portable computers, since the stock power management facilities are usually sorely lacking.

Windows XP Update: Full of great XP support information. When "Windows Update" kept bombing on my XP Home system, this is where I found the solution (Step 6, making sure the IE language setting wasn't blank, did it for me!)

 

General Info Sites

Some of these may be megasites, but they always present their info well and have great content:

Snopes: Urban legends reference site. Do you receive forwarded email from well-intentioned friends and relatives, warning you of the dangers of cell phone use at gas stations or urging you to send email to that dying kid trying to set the record for number of emails received? Just find the rebuttal on this site, point 'em to it, and then politely urge them to check Snopes before sending out spam to the family.

vmyths: More urban legends, with a focus on bogus virus scares. Again, if anyone forwards you a virus warning, check out its authenticity here (also a good idea to check the Symantec Security Response page, to verify legitimate viruses and check for hoaxes/jokes.) For example, have you ever seen "Elf Bowling"? It is a hilarious little program, then the word started to spread that it had a virus. Looking it up on these sites, it was easy to determine the virus scare was a hoax, and we've enjoyed Elf Bowling for years.

NetLingo online dictionary: Nice resource, IMHO, for looking up all those funky Net acronyms, as well as computer terms in general. Also has a hilarious list of smileys and emoticons.

 

Privacy, Security, Anti-Virus/Spam/Adware Tools & Resources (updated 1/8/07)

Microsoft Windows Defender : Microsoft's new utility (fomerly known as "Microsoft anti-spyware") works great, and it's free. The popular thinking says it will remain free, since it represents an incentive to be running a legitimate copy of Windows (via its registration process). Once installed, this automatically detects any adware/spyware intrusions and interactively allows you to deal with them.

I consider this a must-have full-time active anti-spyware utility, relegating Ad-Aware and Spybot S&D to occasional supplementary runs. Ad-Aware (see below) is nice, but the free version must be run manually, while the free Microsoft tool is easily configured for automatic scanning. Also, the "real-time" spyware detection is only available on the pay version of Ad-Aware, while it is fully functional in the MS tool. This thing is highly recommended, even while still in Beta.

AVG Anti-Virus: Totally free anti-virus software. I like this a lot better than all the commercial ones (see comments after the Spybot S&D section below). I've upgraded to the "SoHo" version (not sure they still call it that...) too.

Ad-Aware SE Personal: Totally free version of an excellent anti-spyware/adware tool. Scanning your system regularly with this is highly recommended. The free version gives on-demand scanning; if you pay money, you can get full-time protection...but with Windows Defender running, I'm not sure that's really needed.

Spybot Search & Destroy: Another totally free, solid Spyware/Adware eradicator. Includes an "Inoculation" feature for active monitoring against web-borne parasites, hijacking of your browser, etc. (features you have to pay to get with Ad-Aware above).

As far as I'm concerned, all four of the tools above are "must haves", and they work as well or better than the commercial tools out there. I've had particularly bad experiences with Norton A/V (refused to let Eudora email work), McAfee A/V (online licensing and activation were horrific), and PC-Cillin (basically brought a system to its knees when active).

SpamArrest: I gave up on SpamCop and switched to SpamArrest, a "challenge/response" system for reducing Spam, a year ago and never looked back. The only downside is having to browse through the held junk mail once in a while to make sure some stuff you really want isn't being held up, but overall this is much better than any other anti-spam solution I've tried yet.

CYBERsitter: Nice web content filtering software to make systems "kid-safe". You pay just once, rather than again every year, and a 5-system license is just $100. Good support, too (easy to get someone knowledgeable on the phone).

CERT Home Computer Security Page: Great resource, from the ground up. Hosted at the Carnegie Mellon University's Software Engineering Institute.

National Do Not Call Registry: Now up and running. Register as many phone numbers as you like. (Unfortunately, such a registry isn't likely to work for email spam. Instead, use SpamCop.)

 

Essential Diversions (permanent fixtures on this page)

Dean Koontz: My favorite novelist. Each succeeding novel seems to stretch the envelope of how good a book can be. I dread the day I "catch up" with everything he's written and actually have to wait till I can start the next one...fortunately I'm a slow reader, so that shouldn't happen for at least another five years.

Tangerine Dream: My favorite musical artists, since 1976, by an order of magnitude. Founded by the sculptor/synth artist/guitarist/genius Edgar Froese in the early 70s; the core group now consists of Edgar and his son, Jerome. For starters, I recommend ordering the "I-Box", a 6-CD set they'll ship you from Germany, postpaid, for $50; it is an excellent collection. Over their 50+ albums, there is rarely any exact duplication, but many cool variations of great themes (studio/live, old/updated, soundtracks, etc.). Note: this is mostly synth instrumentals, very few vocals (but when there are, they're doozies).

Hubble Space Telescope Gallery: Find a great Hubble shot, right-click on it, select "Set as Background" and presto! The wallpaper of the month for your PC! (Hint: When you have an individual picture in the browser, scroll to the bottom of the page and look for the "HI-RES IMAGES" link for a choice of several different formats/resolutions).

 

Cool Stuff du jour (interesting and/or amusing links culled from recent newsletters, email, etc., most recent first):

For those of you that have been following the Mars Rover missions, this is a fascinating clip that shows just how the rover's rock abrasion tool works ;-)

Powers of Ten: Cool Java animation, zooms from extra-galactic space down to the level of quarks in exponential sequence.

Now I'm convinced -- Incontrovertible proof that NASA really did fake the Apollo moon landings!

Britney Spears' Guide to Semiconductor Physics

Primate Programming, Inc.

Can you discern the Coders from the Cannibals?

A cool optical illusion (maximize the page after it opens). And an even more intense experience ( make sure your sound is turned up).

The Cog: Classic Honda Accord commercial, an amazing Rube Goldberg sequence constructed entirely from parts of an actual Accord...filmed in a single take (after ~600 tries) without any CGI assistance! For an article about the making of The Cog, read this.

Why You Should Switch to Linux: To really appreciate this, you have to know a bit about what the Open Source movement is all about.

 


High-Quality Services (from High-Quality Craftspeople!)

BodyOasis: Expert structural bodywork (KMI, Kinesis Myofascial Integration) and therapeutic massage by Lisa Gray, in the North Shore area of Boston. Lisa's the best (and I'm not saying this just because I happen to be married to her...)

Words in a Row: Web site design and search engine optimization. Remember what it's like to work with a craftsperson who bends over backwards to make sure you're happy and never nickel-and-dimes you? No? Meet Jere Matlock and that's what you'll rediscover.

Elwell Design: Graphic design for business communication by talented (and spirited!) Sharon Elwell.



Home | Courses | Tools | Resources
Clients | Successes | Contact | Site Map | Links | About Us

All text and images on this website are Copyright © 2001-2003 BD Software.
All rights reserved.