B

Brian Marick

exampler.com · Personal blog · on HN since 2010

Brian Marick, a software developer and consultant, writes about testing, agile practices, Clojure, and debugging techniques.

What HN saysHN links his classic testing paper on automation and his ring buffer logging paper as references for finding bugs.
21HN people shared it
5linked it in comments
17stories submitted
66story points
8 months agolast shared
2010people per year2026

Most-shared posts

  1. 1
    Using Ring Buffer Logging to Help Find Bugs [pdf]
    3 people · 9 points · first shared 2015 · discussion on HN
  2. 2
    “Editing” trees in Clojure with clojure.zip
    2 people · 29 points · first shared 2010 · 2 comments on HN
  3. 3
    Clojure and the Future for Programmers like me
    2 people · 8 points · first shared 2011 · 2 comments on HN
  4. 4
    How to Misuse Code Coverage (1997) [pdf]
    2 people · 5 points · first shared 2015 · discussion on HN
  5. 5
    Two Forgotten Agile Values: Discipline and Skill
    1 people · 2 points · first shared 2011 · discussion on HN
  6. 6
    Visualizing Recursion
    1 people · 2 points · first shared 2012 · discussion on HN
  7. 7
    Method Objects and learning through refactoring
    1 people · 2 points · first shared 2012 · discussion on HN
  8. 8
    Macruby 0.6, mocks, TDD, Xcode, Interface Builder
    1 people · 2 points · first shared 2010 · discussion on HN
  9. 9
    If I were an architect
    1 people · 2 points · first shared 2012 · discussion on HN
  10. 10
  11. 11
    Part 1 of a tutorial on monads
    1 people · 1 points · first shared 2011 · discussion on HN
  12. 12
    My Agile Testing Project
    1 people · 1 points · first shared 2023 · 1 comments on HN
  13. 13
    The Origin of camelCaseIndentifiers
    1 people · 1 points · first shared 2018 · discussion on HN
  14. 14
    Latour, Anthrax, and Standups
    1 people · 1 points · first shared 2026 · discussion on HN
  15. 15
    Automate.pdf
    1 people · first shared 2018

What HN people wrote when they linked it

meej · 2018-06-09
I am reminded of this Brian Marick classic: http://www.exampler.com/testing-com/writings/automate.pdf
plinkplonk · 2011-10-02
The real "problems" with TDD are (a) in the "driven" part, not the "test" part. Tests are (in general) a good thing. However, using a series of tests to drive your design (aka "TDD is not a testing method,it is a design method" idea) often gives you an illusion of progress as you hill climb using conformance to an increasing number of tests as a progress heuristic and end up on top of a local maximum (as for example in the TDD sudoku episode). (b)in conflating TDD with one or more of (1) testing, (2) automated testing (3) automated regression test suites (4) developers adding more tests to the automated regression test suite as they develop more features, refactor, debug etc. You can have (1) to (4) without either (5)writing tests first (aka "don't write a line of code without having written a test covering it") or (6)driving your design with tests. The last two ideas are the real distinguishing features of TDD and are of debatable merit. None of (1) through (4) are novel ideas. (5) and (6) are where differences of opinion happen. Even if you choose to use TDD, it is good to be aware it is just one tool in your toolbox and not necessarily the default tool to reach for. (c) in the zealotry of some of its evangelists who insist that TDD is some kind of moral imperative and is the only "correct" way of developing software and anyone who doesn't follow that path or make respectful obeisance to it is "unprofessional","dodgy" etc. This is often accompanied by conflating…
falcolas · 2020-07-24
Here's some examples I found pretty quickly: https://www.ibm.com/developerworks/aix/library/au-buffer/index.html http://www.exampler.com/writing/ring-buffer.pdf A google search for "logging to a ring buffer" will provide more.
bazzargh · 2015-08-09
This might work at low traffic levels, but there are better ways. In our internal error catcher, we've seen deploys that caused 20,000+ errors in under a minute. Even when we used similar techniques to mail ourselves errors on a low traffic site, it was important to introduce dead time, not alerting again for (say) 5 mins after the first alert so as not to flood our inbox. A useful technique btw is to use a ring buffer to collect debug logging, and when an error occurs dump this buffer into the message along with the stacktrace. It gives you more context when you're not logging debug to disk, and is fast. (see eg http://www.exampler.com/writing/ring-buffer.pdf, https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SMTP… Services like https://www.pagerduty.com/ can contact you on more channels when problems happen, and also deal with dead time etc not /re/ alerting you constantly. The Slack mobile client would have got every one of those messages as a push. Pagerduty won't help with aggregating/exploring stacktraces though, for that, there's eg https://airbrake.io or for mobile apps, https://try.crashlytics.com/. Finally there's also http://www.splunk.com/ for aggregating logs; you can build some quite complex queries from it and do alerting on the results (not quite as fancy as pagerduty, but functional). There are many other tools in this space, worth looking around to see if there's any SaaS you can use or crib ideas from.
kragen · 2011-03-06
> There just isn't anything on the web that compares. (or if there is, please please tell me!) The breadth and depth of well-written technical information available on the web is far, far beyond what was available in Byte in its heyday. Consider: http://lwn.net/Articles/428530/bigpage http://www.airs.com/blog/archives/category/programming http://hackermonthly.com/issue-10.html http://blogs.msdn.com/b/oldnewthing/ http://prog21.dadgum.com/ http://www.dadhacker.com/blog/ http://diveintomark.org/ http://lambda-the-ultimate.org/ http://www.facebook.com/Engineering http://research.google.com/video.html http://rentzsch.tumblr.com/ http://perspectives.mvdirona.com/ http://www.exampler.com/blog/ The big difficulty these days is not getting access to well-written, broad-ranging tech material; it's choosing which well-written, broad-ranging tech material you want to read out of all the immense quantity of material out there, and avoiding spending all of your time reading it. Services like HN, Reddit, Digg, Facebook, Delicious, and Slashdot basically exist to solve this filtering problem (although not, obviously, limited to the tech press). > What gets funded on the web isn't determined by what users want - it's what advertisers will pay for. That's true, but fortunately it's irrelevant, because what gets written about on the web isn't determined by what gets funded—it's what people want to write about.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close