10 Technical Papers Every Programmer Should Read (At Least Twice) this is the second entry in a series on programmer enrichment Inspired by a fabulous post by Michael Feathers along a similar vein, I’ve composed this post as a sequel to the original. That is, while I agree almost wholly with Mr. Feather’s1 choices, I tend to think that his choices are design-oriented2 and/or philosophical.
Guru of the Week is a regular series of C++ programming problems created and written by Herb Sutter. Since 1997, it has been a regular feature of the Internet newsgroup comp.lang.c++.moderated, where you can find each issue's questions and answers (and a lot of interesting discussion). GotW Archive (Most Recent First) Note: The book More Exceptional C++ is the authoritative reference for GotW issues #31 to #62, #66, #71, and #77 plus much more. The solutions archived here, shown below, are the original GotW solutions substantially as posted to the newsgroup; these solutions were later revised (and some greatly expanded) in the book, to bring them up to the date with the published ISO/ANSI C++ standard and to add additional new material. Note: The book Exceptional C++ is the authoritative reference for GotW issues #1 to #30, plus much more. Guru of the Week (GotW) Archive - Main Index Page
Posted by An algorithm is, in essence, a procedure given by a finite description that solves some computational problem. The field of computational complexity deals with questions of the efficiency of algorithms, i.e. “For a computational problem X, how many steps does the best algorithm perform in solving X?” You might think that questions in this field would be confined to the realm of computer science, except for the fact that computational complexity theory contains the mathematical problem of the century! Currently, many mathematicians around the world are attempting to solve the famed open problem P vs. Complexity Cases in Wolfram
How We Made GitHub Fast - GitHub Translations: Беларускі, Polski, Русский. Now that things have settled down from the move to Rackspace, I wanted to take some time to go over the architectural changes that we’ve made in order to bring you a speedier, more scalable GitHub. In my first draft of this article I spent a lot of time explaining why we made each of the technology choices that we did.
Figure 1: A heuristic solution to the Traveling Salesman Problem is to visit the points in the same sequence as the Sierpinski spacefilling curve. A spacefilling curve is a continuous mapping from a lower-dimensional space into a higher-dimensional one. A famous spacefilling curve is that due to Sierpinski, which is formed by repeatedly copying and shrinking a simple pattern (the convoluted tour in Figure 1). A useful property of a spacefilling curve is that it tends to visit all the points in a region once it has entered that region. Thus points that are close together in the plane will tend to be close together in appearance along the curve. This forms the basis of the heuristic, invented by L. Bartholdi on spacefilling curves