{
    "archive_path": "archive/1766123171.850533",
    "base_url": "www.teamten.com/lawrence/programming/dont-write-bugs.html",
    "basename": "dont-write-bugs.html",
    "bookmarked_date": "2025-12-19 05:46",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/www.teamten.com/lawrence/programming/dont-write-bugs.html",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=www.teamten.com",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": null
    },
    "domain": "www.teamten.com",
    "downloaded_at": "2025-12-19T05:46:20.254610+00:00",
    "downloaded_datestr": "2025-12-19 05:46",
    "extension": "html",
    "hash": "ECACHG4DNFNZEPZ8BB2S",
    "history": {
        "archive_org": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://web.archive.org/save/https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-19T05:47:58.263848+00:00",
                "index_texts": null,
                "output": "TimeoutExpired: Command '['/usr/bin/curl', '--silent', '--location', '--compressed', '--proxy', 'socks5://tor-socks-proxy:9150', '--head', '--max-time', '60', '--user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)', 'https://web.archive.org/save/https://www.teamten.com/lawrence/programming/dont-write-bugs.html']' timed out after 60 seconds",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:58.195887+00:00",
                "status": "failed"
            }
        ],
        "dom": [
            {
                "cmd": [
                    "/usr/bin/chromium-browser",
                    "--proxy-server=socks5://tor-socks-proxy:9150",
                    "--disable-features=DarkMode",
                    "--run-all-compositor-stages-before-draw",
                    "--hide-scrollbars",
                    "--autoplay-policy=no-user-gesture-required",
                    "--no-first-run",
                    "--use-fake-ui-for-media-stream",
                    "--use-fake-device-for-media-stream",
                    "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'",
                    "--headless=new",
                    "--no-sandbox",
                    "--no-zygote",
                    "--disable-dev-shm-usage",
                    "--disable-software-rasterizer",
                    "--disable-sync",
                    "--window-size=1440,2000",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "--user-data-dir=/data/personas/Default/chrome_profile",
                    "--profile-directory=Default",
                    "--dump-dom",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "131.0.6778",
                "end_ts": "2025-12-19T05:46:36.172236+00:00",
                "index_texts": null,
                "output": "output.html",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:28.367590+00:00",
                "status": "succeeded"
            }
        ],
        "favicon": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.google.com/s2/favicons?domain=www.teamten.com"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-19T05:46:23.658210+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:20.769087+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-19T05:46:23.764577+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:23.690752+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [
            {
                "cmd": [
                    "(internal) archivebox.extractors.htmltotext",
                    "./{singlefile,dom}.html"
                ],
                "cmd_version": "0.8.5rc51",
                "end_ts": "2025-12-19T05:46:49.875440+00:00",
                "index_texts": [
                    "Don't write bugs (/lawrence/reset.css) (/lawrence/new.css) (/lawrence/css/font-awesome.min.css) (../pygment-styles.css) (../pygment-styles-local.css) (unsolicited.css) (/lawrence/favicon.ico)   Don't write bugs \u201cIf you want more effective programmers, you will discover that they should not\nwaste their time debugging, they should not introduce the bugs to start with.\u201d\n\u2014Edsger Dijkstra, Turing Award Lecture (1972)  I was a High School Junior when I received in the mail\nthe issue of Computer Language magazine that changed the way I program.\nThe feature article, by Robert Ward, was about debugging, and led\nwith the sentence: Debugging is an important, time-consuming, and necessary part of\nprogramming.  I didn\u2019t read the rest of the article because I got stuck on the word\n\u201cnecessary\u201d. Why is that so? Why can\u2019t we just write bug-free programs? I spent the next two years keeping a log of my bugs, both compile-time\nerrors and run-time errors, and modified my coding to avoid the common\nones. I eventually wrote a website called (http://www.teamten.com/lawrence/style/) Elements of C Style that captured some of this advice. That site is now unpublished\n(except for that link) because the advice is too low-level and C-oriented\nto be useful anymore. Instead I\u2019ve written the posts in this \u201cProgramming\u201d section.\nThey\u2019re generally higher-level in scope and they use a more modern\nlanguage (Java) for examples. My Junior year of college I joined the programming team. During a programming\ncontest, any time spent debugging is time that another team member could\nbe using the computer to type (three members share one computer), so\nwe practiced writing bug-free code. After two years of practicing,\nand after my previous two years of log-keeping, I was able to write\nsubstantial programs (thousands of lines) and run them without compile\nor run-time errors on the first try. I can\u2019t do that anymore (that\nwas 35 years ago!), but the exercise convinced me that bugs don\u2019t\ncreep into our code by themselves. We put them there, and we can\ndecide to not put them there. Treating bugs as though they were consciously\nwritten goes a long way to not writing them. If you want a single piece of advice to reduce your bug count, it\u2019s this: Re-read your code frequently. After writing a few lines of code (3 to 6 lines, a short block within a\nfunction), re-read them. That habit will save you more time than any other\nsimple change you can make. (./) ~ See all programming posts ~  (/lawrence/)   (mailto:lk@teamten.com)   (https://www.linkedin.com/pub/lawrence-kesteloot/2/68a/7a3)   (https://twitter.com/lkesteloot)   (https://github.com/lkesteloot)       "
                ],
                "output": "htmltotext.txt",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:49.841972+00:00",
                "status": "succeeded"
            }
        ],
        "media": [
            {
                "cmd": [
                    "/usr/local/bin/yt-dlp",
                    "--restrict-filenames",
                    "--trim-filenames",
                    "128",
                    "--write-description",
                    "--write-info-json",
                    "--write-annotations",
                    "--write-thumbnail",
                    "--no-call-home",
                    "--write-sub",
                    "--write-auto-subs",
                    "--convert-subs=srt",
                    "--yes-playlist",
                    "--continue",
                    "--no-abort-on-error",
                    "--ignore-errors",
                    "--geo-bypass",
                    "--add-metadata",
                    "--format=(bv*+ba/b)[filesize<=750m][filesize_approx<=?750m]/(bv*+ba/b)",
                    "--skip-download",
                    "--cache-dir=/data/yt-dlp-cache/",
                    "--cookies=/data/yt-dlp-cache/cookies.txt",
                    "--proxy=socks5://tor-socks-proxy:9150",
                    "--no-playlist",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "2024.10.7",
                "end_ts": "2025-12-19T05:46:58.108484+00:00",
                "index_texts": [],
                "output": "media/",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:52.395657+00:00",
                "status": "succeeded"
            }
        ],
        "mercury": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/postlight-parser",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "2.2.3",
                "end_ts": "2025-12-19T05:46:49.783778+00:00",
                "index_texts": null,
                "output": "mercury/",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:47.715744+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/readability-extractor",
                    "/tmp/tmpmg11zt92",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2025-12-19T05:46:41.123093+00:00",
                "index_texts": [
                    "Don't write bugs\n\n\n\u201cIf you want more effective programmers, you will discover that they should not\nwaste their time debugging, they should not introduce the bugs to start with.\u201d\n\u2014Edsger Dijkstra, Turing Award Lecture (1972)\n\nI was a High School Junior when I received in the mail\nthe issue of Computer Language magazine that changed the way I program.\nThe feature article, by Robert Ward, was about debugging, and led\nwith the sentence:\n\nDebugging is an important, time-consuming, and necessary part of\nprogramming.\n\nI didn\u2019t read the rest of the article because I got stuck on the word\n\u201cnecessary\u201d. Why is that so? Why can\u2019t we just write bug-free programs?\nI spent the next two years keeping a log of my bugs, both compile-time\nerrors and run-time errors, and modified my coding to avoid the common\nones. I eventually wrote a website called\nElements of C Style\nthat captured some of this advice. That site is now unpublished\n(except for that link) because the advice is too low-level and C-oriented\nto be useful anymore. Instead I\u2019ve written the posts in this \u201cProgramming\u201d section.\nThey\u2019re generally higher-level in scope and they use a more modern\nlanguage (Java) for examples.\nMy Junior year of college I joined the programming team. During a programming\ncontest, any time spent debugging is time that another team member could\nbe using the computer to type (three members share one computer), so\nwe practiced writing bug-free code. After two years of practicing,\nand after my previous two years of log-keeping, I was able to write\nsubstantial programs (thousands of lines) and run them without compile\nor run-time errors on the first try. I can\u2019t do that anymore (that\nwas 35 years ago!), but the exercise convinced me that bugs don\u2019t\ncreep into our code by themselves. We put them there, and we can\ndecide to not put them there. Treating bugs as though they were consciously\nwritten goes a long way to not writing them.\nIf you want a single piece of advice to reduce your bug count, it\u2019s this:\nRe-read your code frequently.\nAfter writing a few lines of code (3 to 6 lines, a short block within a\nfunction), re-read them. That habit will save you more time than any other\nsimple change you can make.\n            ~ See all programming posts ~"
                ],
                "output": "readability/",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:37.303127+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-12-19T05:46:36.229171+00:00",
                "index_texts": null,
                "output": "Don't write bugs",
                "pwd": "/data/archive/1766123171.850533",
                "schema": "ArchiveResult",
                "start_ts": "2025-12-19T05:46:36.217787+00:00",
                "status": "succeeded"
            }
        ],
        "wget": []
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": "TimeoutExpired: Command '['/usr/bin/curl', '--silent', '--location', '--compressed', '--proxy', 'socks5://tor-socks-proxy:9150', '--head', '--max-time', '60', '--user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)', 'https://web.archive.org/save/https://www.teamten.com/lawrence/programming/dont-write-bugs.html']' timed out after 60 seconds",
        "dom": "output.html",
        "favicon": "favicon.ico",
        "git": null,
        "media": "media/",
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Don't write bugs",
        "warc": null,
        "wget": null
    },
    "link_dir": "/data/archive/1766123171.850533",
    "newest_archive_date": "2025-12-19T05:46:58.195887+00:00",
    "num_failures": 1,
    "num_outputs": 8,
    "oldest_archive_date": "2025-12-19T05:46:20.769087+00:00",
    "path": "/lawrence/programming/dont-write-bugs.html",
    "schema": "Link",
    "scheme": "https",
    "snapshot_abid": "snp_01KCTJ9W2FE3E54D5401EHCFD0",
    "snapshot_id": "0e689bb6-2c6a-4205-a3da-45315d163da0",
    "sources": [
        "/data/sources/1766123170-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1766123171.850533",
    "title": "Don't write bugs",
    "url": "https://www.teamten.com/lawrence/programming/dont-write-bugs.html"
}