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 11/23/2011)


For Programmers:

C/C++ Resources:  C++11   Concurrency   Books   Standards   References/FAQs   C   STL   D   Programming in General


For Anybody With a Computer:

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

C++11 (Final ISO ballot closed Wednesday, August 10th, 2011: Unanimous approval)

What's New in C++11? A live webinar I presented for DevelopMentor on Dec 6th, 2011

Bjarne Stroustrup's C++11 FAQ

Scott Meyers' Summary of C++11 Feature Availability in gcc and MSVC

Wikipedia C++11 page

JTC1/SC22/WG21 - The C++ Standards Committee web headquarters

C++11 Draft Standard (Direct PDF link, Working Draft dated 2/28/2011)

Elements of Modern C++ Style - Herb Sutter's "living document" on the most impactful new C++11 features

Going Native 2012 - 2-day C++11 conference being held Feb 2-3, 2012 at Microsoft in Redmond, WA. $112 for two days of talks with Sutter, Stroustrup, Alexandrescu et al., food included...and a party! Even if you can't attend live, the sessions will be available for free streaming within 24 hours of presentation.

C++ and Beyond Super high-quality, high-end conference series presented by Scott Meyers, Herb Sutter and Andrei Alexandrescu once or twice per year at various pleasant locations. I attended the August 2011 version in Banff, Canada. Technical conferences just don't get any better than this.


Concurrency

Multithreading in C++0x Nice 8-part (so far) tutorial introduction to concurrency by Anthony Williams

C++11 Concurrency Series Methodical video tutorial (9 parts so far) by Bartosz Milewski

C++ Concurrency in Action Anthony Williams' seminal book on C++11 concurrent programming.

Async Tasks in C++11: Not Quite There Yet Insightful article by Milewski

just::thread Complete C++ Standard Thread Library Drop-in library for MSVC and gcc by Anthony Williams. Great support!

 

Online Multimedia Presentations:

Herb Sutter - Why C++? (Keynote talk from C++ and Beyond 2011)

Herb Sutter - Lambdas, Lambdas, Everywhere

Herb Sutter: Writing modern C++ code: how C++ has evolved over the years

OnSoftware - Bjarne Stroustrup & Herb Sutter on the Future of C++ (5/21/08): Part 1 Part 2

Lawrence Crowl and Matt Austern: An Overview of the Coming C++ (C++0x) 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:

Ever wonder what language the world-class software products are written in? This page lays it all out, including the evolutionary path taken by projects such as Windows, Linux, Office, MySQL, etc. Note the large number of entries in the "C++" column...

Scott Meyers' C++11 (formerly C++0x) Feature Availablity in gcc and MSVC page. Make sure to notice the tabs at the bottom of the page! That's where the info is! Great way to track C++11 support in the major compilers.

C++11 Features in Visual C++ 11 - Baby steps. Baby steps (But, still no range-based 'for' in VC11? Sigh.)

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.

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 (TDM) gcc Windows-resident C++ environment: After several days of Googling in search of a gcc port (including support for the -D_CLIBGXX_DEBUG debugging STL mode) that runs under XP, I finally came across this native Windows command-line MinGW-based gcc C++ platform that works.There's now a streamlined installer, and for the most part, everything just works "out of the box"...no header file issues.

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

Generic Programming: Ground zero for the "Concepts" feature of some (hopefully) future version of C++. Concepts 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 experimentation here.

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

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.

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

Scott Meyers' Site: Author of the seminal Effective C++ book series and an all-star 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!)

 

Must-Have Books:

The C++ Standard Library: A Tutorial and Reference, Nicolai Josuttis, Addison-Wesley, 1999, ISBN 0-201-37926-0. Indispensable desk reference for the entire Standard Library, with many complete programming examples using the library facilities. Don't code STL without it!

Effective C++, Third Edition: 55 Specific Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 2005, ISBN 0-321-33487-6. Latest revision of Scott's seminal "2nd book" on C++ (that is, the book to read after you learn the basics of the language.) It just gets better with age.

C++ Coding Standards, Herb Sutter and Andrei Alexandrescu, Addison-Wesley, 2005, ISBN 0-321-11358-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. STL-specific "Effective" book. Again, assumes you've learned the fundamentals of the STL, and then takes you to the next level. I did the code testing for this book, and have the companion code archive available for download here.

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++ 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.

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...

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

 

Other Very Useful Books:

C++ Concurrency in Action Anthony Williams' seminal book on C++11 concurrent programming.

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.

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: 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...

 

C++ Link-Fest 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

 

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 ;-)

 

 

Programming in General

History of Programming Languages : Links to all the articles of the three ACM SIGPLAN HOPL (History Of Programming Languages) conferences...while ACM membership is required to directly access the text of the papers through this site, Bjarne Stroustrup says, "Note that if you type the full title of a famous paper into a web search engine, there is a good chance that you’ll find the paper. Also, most computer scientists mentioned here have home pages where you can find much information about their work.". For example, here's the link to Bjarne's paper on the evolution of C++.

 

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:

Acronis True Image Home 2012: This is the backup software I've been using for years. I recently updated it and then immediately used it to clone the dying internal SSD hard drive on my Dell Inspiron notebook to a new external drive plugged into a USB port. When completed, I swapped the new drive in and the system booted/ran flawlessly. This software is a class act.

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 TCC (formerly 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.

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)

Kaspersky Anti-Virus: I finally gave up on the free A/V solutions out there, because every time they were updated it became a roll of the dice as to whether they would continue to function. As far as I've been able to tell, every "big boy" AV package is also total crap. Kaspersky, on the other hand, just works: no mess, no fuss, no nagging, no viruses, no problem. Also don't seem to need SpyBot, Ad-Aware, etc., with Kaspersky running.

SpamArrest: I gave up on other ways of dealing with spam and switched to SpamArrest, a "challenge/response" system for reducing Spam, many years 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. Good customer service/support, too.

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)

Tangerine Dream: Founded by the sculptor/synth artist/guitarist/genius Edgar Froese in the early 70s, the core of this electronic musical 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 and guitar (OK, plus some great sax in later years), with 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 Communications: Graphic design / creative marketing for business communication by the 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.