USR Total Control Mailing List Archive ====================================== This directory contains monthly archives of the usr-tc mailing list, which served ISP operators and sysadmins running USR/3Com Total Control dial-up equipment. The list was hosted at XMission (lists.xmission.com) and managed via Majordomo. Coverage: February 1995 through November 2001 Messages: ~19,243 across 81 monthly files Senders: ~1,201 unique email addresses Total size: ~19 MB (raw archive files) Archive Files ------------- Each file is a concatenated mbox-style digest for one month. Messages are separated by lines of dashes. Each message has From:/Subject:/Date: headers followed by the body text. Naming convention: usr-tc.YYMM (1995-1997 files, e.g. usr-tc.9704 = April 1997) usr-tc.YYYYMM (1999-2001 files, e.g. usr-tc.199904 = April 1999) Some months are missing (no 9503, 9509, 9711, etc.). Other files: robots.txt - Original robots.txt from xmission.com (where these were hosted) i - Separator line artifact Search Tool ----------- Two Python scripts were created to make the archive searchable: parse_archive.py - Parses all archive files into a SQLite database with FTS5 full-text search. Run this first (or again to rebuild after changes). search.py - Command-line search tool with many options. The SQLite database is stored locally (not on the network mount) at: ~/.local/share/usr-tc-archive/usr-tc-archive.db To rebuild the index: python3 parse_archive.py Search examples: python3 search.py ascend # full-text search python3 search.py '"v.90 firmware"' # exact phrase python3 search.py ascend --subject-only # search subject lines only python3 search.py radius --year 1998 # filter by year python3 search.py radius --from pashdown # filter by sender email python3 search.py --list-threads "ISDN" # group results by thread python3 search.py ascend --full -n 5 # full message bodies, 5 results python3 search.py --id 1234 # view specific message by DB id python3 search.py "ascend OR livingston" # boolean OR python3 search.py "ascend NOT pipeline" # boolean NOT python3 search.py --stats # archive statistics python3 search.py --top-posters # most active posters python3 search.py --top-posters --year 1998 # top posters in a given year Use -n to limit results, --offset to paginate. Activity Profile ---------------- 1995-1996: Sparse (1-19 msgs/month). Early adopters at universities. 1997: Growing (54-490 msgs/month). ISP operators sharing configs. 1998: Peak (471-878 msgs/month). 3Com acquisition era, V.90/K56flex. 1999: High (310-673 msgs/month). Still very active. 2000: Declining (69-646 msgs/month). DSL/cable era begins. 2001: Winding down (19-201 msgs/month). Equipment going end-of-life. Common Topics ------------- - Modem pool management (V.34, V.90, K56flex, HiperDSP cards) - RADIUS authentication and accounting - ISDN PRI/BRI configuration and interop - Firmware versions, bugs, and upgrade procedures - Quake/RealAudio/UDP performance issues - Comparison with competitors (Ascend MAX, Livingston PortMaster, Cisco) - 3Com support quality and contract complaints - ISP business concerns (pricing, scaling, vendor relationships) - The USR-to-3Com corporate transition Static Website -------------- A static HTML website is generated in the site/ subdirectory for browsing and searching the archive without any server-side code. To regenerate: python3 generate_site.py Output (site/ directory, ~50 MB): index.html Landing page with year/month grid, search, overview stats.html Bar charts for activity, top posters, top subjects YYYY-MM.html One page per month with table of contents and all messages search-data.json Client-side search index (~7 MB, loaded by JavaScript) style.css Dark terminal theme, monospace font, amber/gold accents Features: - Year/month navigation grid color-coded by message density - Client-side full-text search across subjects, senders, and message snippets - Monthly pages with table of contents linking to anchored messages - Prev/next month navigation - Stats page with CSS bar charts and clickable subject links - No server-side code required - works on any static web host Requirements ------------ Python 3.6+ with sqlite3 (standard library, no extra packages needed). SQLite must have FTS5 support (included in most distributions).