~/talk

Debugging Clojure Code

Talkat :clojureD 2017 · on Saturday, 2017-02-25· [developer-experience]
links:none on file
slides:none on file

Shows four concrete Clojure-first techniques: tagging values with metadata to record origin and cache timestamps, wrapping functions so logs as data collect results, exceptions and timings into atoms for querying and replay, and delta-debugging to minimize failing inputs or code. Demonstrates collapsing client and server into one JVM, replacing DB with an atom, and using clojure.data/diff to find the state divergence that reproduced a three-client sync bug and produced a unit test and fix. Performance and observer-effects are acknowledged but the methods work and speed diagnosis.

AI-written summary · about

  1. 0:00Introduction
  2. 3:53Definitions
  3. 4:49The problem
  4. 6:40Why programs fail
  5. 7:50The plan
  6. 8:07Function
  7. 9:54Logging
  8. 10:07Logging in wrong format
  9. 11:24Logging approach
  10. 12:34Logging drawbacks
  11. 13:57Querying logs
  12. 14:52Replaying logs
  13. 16:35Simplifying inputs
  14. 16:51Simplifying by hand
  15. 17:18Simplifying by dummy
  16. 18:09Simplifying algorithms
  17. 19:37Delta debugging
  18. 22:43Question
  19. 23:56Solution
  20. 29:17Closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.