The secret index of all Stack Overflow blog posts

It is not easy to find or review older Stack Overflow blog posts. Doing it manually by clicking the link “Older Articles” only gets you a very limited number of entries per page (currently five), and you have to scroll down to “Older Articles” (though the URL could also be manipulated). There is also the problem of finding the last page for a year (for the oldest blog post that year, January).

However, I have compiled a complete list of pages when opened at once provides a quick way to scan through all the posts. Further automation is possible, but that is for another blog post.

There is also the potential for this blog post to evolve into an annotated list of Stack Overflow blog posts (e.g. for a subset, the “interesting” Stack Overflow blog posts). Annotations are very welcome indeed – just suggest them in comments (expect up to one week lead time – but hopefully much sooner). (Also, corrections are welcome, no matter how trivial. You will also get a “Thank you”. My blog posts are living creatures, not fossils.)

The list

Note: They changed the number of pages per URL and thus the list is currently broken. It has approximately doubled, so divide the number in the URL by 2 and you will get close.

Note that the page number for the current year for a given post is in flux – as new blog posts are added, the page number may increase. Currently there are usually five blog posts per page.

2020 “This veteran started a code bootcamp for people who went to bootcamp”. The corresponding Complete Developer Podcast (CDP) episode is episode 193 (2018-04-08), Vets Who Code.

2019 Approx. October. “An Interview with Stack Overflow CEO Prashanth Chandrasekar” (2019-10-21) Approx. October. “C++ Creator Bjarne Stroustrup Answers Our Top Five C++ Questions” (2019-10-11) Approx. October. “Introducing The Overflow and Cassidy Williams” (2019-10-01) Approx. September. “Joel Spolsky and Clive Thompson discuss the past, present, and future of coding” (2019-09-17). And “Announcing Stack Overflow’s New CEO, Prashanth Chandrasekar!” (2019-09-24). Approx. August. E.g. “Meet the Public Q&A team” – Adam Lear, Brian Nickel, Donna Choi, Jane Willborn, Jon Chan, Lisa Park, Meg Risdal, Sara Chipps, and Yaakov Ellis. (2019-08-20) Approx. July. “What a very bad day at work taught me about building Stack Overflow’s community” by Sara Chipps (2019-07-18) Approx. June. “Adios to Unfriendly Badges! Ahoy, Lifejacket and Lifeboat” (2019-06-18). “Update to Security Incident” (2019-05-17) Approx. May.

2018 Approx. September Approx. July Approx. April. The now infamous “Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change.” (2018-04-26)




2014 May-July. Robert Cartaino and Josh Heyer (aka Shog9) on the podcast (#59, second series). March/April.


2012 June/July. March. Jarrod Dixon and Josh Heyer (aka Shog9) on the podcast (#32, second series).

2011 December. Robert Cartaino and Rebecca Chernoff on the podcast (#30, second series). November / December. October. July/August. June. May/June. Shog9 on the podcast (#5, second series, Shog9 in Colorado and Jeff Atwood/Joel Spolsky at Jeff Atwood’s home). May. Jon Skeet on the podcast (#4, second series, from Jon Skeet’s home near London). April.


Highlight: First venture capital money, announced on 2010-05-04. October. October/September. “Asking Better Questions” – about the first Eternal September event on Stack Overflow – or as Jeff Atwood put it, “As Stack Overflow has grown, it has started to have some decidedly big city problems”. July. June. April. Robert Cartaino on the podcast (#87, original series). March Approx. January. The famous “we hate fun [on Stack Overflow]” blog post.



Information about the Stack Overflow blog

It is based on WordPress (though there isn’t any meta tag with ‘name=”generator”‘ in the HTML source).

Some automation

The list is easier to use if there are some means to open a list of URLs in the web browser, preferably rate limited (e.g. once every 3 seconds).

A few options for this are presented below.

Edit Overflow for Windows

Edit Overflow for Windows has this functionality, but there are currently installation problems on some Windows systems (ClickOnce installer).

Linux command line

The list above (or the subset that should be opened in a browser), including year headlines, can be saved in a file (“SOblogURLs_limited.txt” in this example) and fed directly to a Perl one-liner (it will ignore empty lines, year, etc.):

perl -nle 'if (/(https\S+)/) { $URL = $1; print $URL; system("xdg-open \"$URL\""); sleep(3); } '  SOblogURLs_limited.txt

Note that the underline character may not show well here (depending on the browser and the zoom level), but it works if copy-pasted.

It opens each URL with a 3 second delay between each in the default browser on Ubuntu.

On Ubuntu (and probably many other Linux system), ‘xdg-open’ will open a URL in the default browser. Example:

xdg-open ""

UltraEdit macro

I currently use a macro in UltraEdit that works on both Windows and Linux (though it does not run serially on Linux and thus all links are more or less opened at once). It is invoked by a keyboard shortcut, Shift + Alt + U.

It relies on two tools, by convention called “Open URL” and “Pause for 3 seconds”, in UltraEdit to have been set up (called from the UltraEdit macro).

The macro (note that UltraEdit does not accept the indentation, so that must be removed before using it in UltraEdit):


Loop 0

        Key "DEL"

        RunTool "Open URL"
        RunTool "Pause for 3 seconds"

        Key DOWN ARROW

CloseFile NoSave

Formatting it for this blog post

The original/input format I had was in a text file, like if copied directly from this webpage (the URL list above). In order to make the links live, the following Perl one-liner was used (with the input list in file “/home/mortense2/temp2/2019-12-09/SOblogURLs.txt” and output file “SOblogURLs_forBlog.txt” in the same folder). It also formats the years as an HTML headline.

cd /home/mortense2/temp2/2019-12-09/
perl -nle 'if (/(https\S+)/) { $URL = $1; s/$URL/<a href="$URL">$URL<\/a>/; } if (/\s+(\d{4})([^\-]|$)/) { $year = $1; s/$year/<h3>$year<\/h3>/; } print $_; '  SOblogURLs.txt  > SOblogURLs_forBlog.txt

If the input file is not segmented into blocks of 10, it becomes a little bit more complicated to have blocks of 10 pages (but if the input is from this page it would accumulate):

cd /home/mortense2/temp2/2019-12-09/
perl -nle 'if (/(https\S+)/) { $URL = $1; s/$URL/<a href="$URL">$URL<\/a>/; if (/(\d{4})/) { $yearIn_URL = $1; if ($years{$yearIn_URL}++ >= 9) { $years{$yearIn_URL} = 0; $_ = "\n" . $_; }  } } if (/\s+(\d{4})([^\-]|$)/) { $year = $1; s/$year/<h3>$year<\/h3>/; } print $_; '  SOblogURLs.txt  > SOblogURLs_forBlog.txt

Leave a comment