I make violins and violas at Noble Strings in Rocheport, Missouri, and publish the town’s paper, the Rocheport Times. I write music as Roman Noble, and I have written software since I was twelve.

I’ve built for the web since 1999. The first site was for the 82d Airborne’s JAG office, while I was a legal specialist in the Army. I’ve been a senior software engineer at Ansira since 2011. In 2024 I paddled the MR340 solo, 340 miles of the Missouri River in just under 63 hours. On my own time I build software as Dandi Noble, LLC, and I write it up every week. My older sites are still on archive.org if you want to look.

Commits logged
2,308
Weeks with commits
18
Current run
12 weeks
Years at it
42 since 1984
1984 to now.
Rocheport Times2025-W40 · no entry2025-W41 · no entry2025-W42 · no entry2025-W43 · no entry2025-W44 · no entry2025-W45 · no entry2025-W46 · no entry2025-W47 · no entry2025-W48 · no entry2025-W49 · no entry2025-W50 · no entry2025-W51 · no entry2025-W52 · no entry2026-W01 · no entry2026-W02 · no entry2026-W03 · no entry2026-W04 · no entry2026-W05 · no entry2026-W06 · no entry2026-W07 · no entry2026-W08 · no entry2026-W09 · no entry2026-W10 · no entry2026-W11 · no entry2026-W12 · no entry2026-W13 · no entry2026-W14 · no entry2026-W15 · no entry2026-W16 · no entry2026-W17 · no entry2026-W18 · no entry2026-W19 · no entry2026-W20 · no entry2026-W21 · no entry2026-W22 · no entry2026-W23 · no entry2026-W24 · no entry2026-W25 · no entry2026-W26 · no entry2026-W27 · no entry2026-W28 · 459 commits2026-W29 · 156 commits2026-W30 · 374 commits2026-W31 · 208 commits2026-W32 · 12 commits2026-W33 · 46 commits2026-W34 · no entry2026-W35 · 15 commits2026-W36 · no entry2026-W37 · no entry2026-W38 · 18 commits2026-W39 · 30 commits1,319
Bow & Bridge2025-W40 · no entry2025-W41 · no entry2025-W42 · no entry2025-W43 · no entry2025-W44 · no entry2025-W45 · no entry2025-W46 · no entry2025-W47 · no entry2025-W48 · no entry2025-W49 · no entry2025-W50 · no entry2025-W51 · no entry2025-W52 · no entry2026-W01 · no entry2026-W02 · no entry2026-W03 · no entry2026-W04 · no entry2026-W05 · no entry2026-W06 · no entry2026-W07 · no entry2026-W08 · no entry2026-W09 · no entry2026-W10 · no entry2026-W11 · no entry2026-W12 · no entry2026-W13 · no entry2026-W14 · no entry2026-W15 · no entry2026-W16 · no entry2026-W17 · no entry2026-W18 · no entry2026-W19 · no entry2026-W20 · no entry2026-W21 · no entry2026-W22 · no entry2026-W23 · no entry2026-W24 · no entry2026-W25 · no entry2026-W26 · no entry2026-W27 · no entry2026-W28 · no entry2026-W29 · no entry2026-W30 · no entry2026-W31 · no entry2026-W32 · no entry2026-W33 · 186 commits2026-W34 · 261 commits2026-W35 · 85 commits2026-W36 · 155 commits2026-W37 · 34 commits2026-W38 · 74 commits2026-W39 · 13 commits808
Earlier work2025-W40 · no entry2025-W41 · no entry2025-W42 · no entry2025-W43 · no entry2025-W44 · no entry2025-W45 · no entry2025-W46 · no entry2025-W47 · no entry2025-W48 · no entry2025-W49 · 22 commits2025-W50 · 13 commits2025-W51 · 3 commits2025-W52 · no entry2026-W01 · no entry2026-W02 · no entry2026-W03 · no entry2026-W04 · no entry2026-W05 · no entry2026-W06 · no entry2026-W07 · no entry2026-W08 · no entry2026-W09 · no entry2026-W10 · no entry2026-W11 · no entry2026-W12 · no entry2026-W13 · no entry2026-W14 · no entry2026-W15 · no entry2026-W16 · no entry2026-W17 · no entry2026-W18 · no entry2026-W19 · no entry2026-W20 · no entry2026-W21 · no entry2026-W22 · no entry2026-W23 · no entry2026-W24 · no entry2026-W25 · no entry2026-W26 · no entry2026-W27 · no entry2026-W28 · no entry2026-W29 · no entry2026-W30 · no entry2026-W31 · no entry2026-W32 · no entry2026-W33 · no entry2026-W34 · no entry2026-W35 · no entry2026-W36 · no entry2026-W37 · no entry2026-W38 · no entry2026-W39 · no entry38
Noble Strings2025-W40 · no entry2025-W41 · no entry2025-W42 · no entry2025-W43 · no entry2025-W44 · no entry2025-W45 · no entry2025-W46 · no entry2025-W47 · no entry2025-W48 · no entry2025-W49 · no entry2025-W50 · no entry2025-W51 · no entry2025-W52 · no entry2026-W01 · no entry2026-W02 · no entry2026-W03 · no entry2026-W04 · no entry2026-W05 · no entry2026-W06 · no entry2026-W07 · no entry2026-W08 · no entry2026-W09 · no entry2026-W10 · no entry2026-W11 · no entry2026-W12 · no entry2026-W13 · no entry2026-W14 · no entry2026-W15 · no entry2026-W16 · no entry2026-W17 · no entry2026-W18 · no entry2026-W19 · no entry2026-W20 · no entry2026-W21 · no entry2026-W22 · no entry2026-W23 · no entry2026-W24 · no entry2026-W25 · no entry2026-W26 · no entry2026-W27 · no entry2026-W28 · no entry2026-W29 · no entry2026-W30 · no entry2026-W31 · no entry2026-W32 · no entry2026-W33 · 3 commits2026-W34 · no entry2026-W35 · no entry2026-W36 · 4 commits2026-W37 · no entry2026-W38 · no entry2026-W39 · no entry7
Purfle2025-W40 · no entry2025-W41 · no entry2025-W42 · no entry2025-W43 · no entry2025-W44 · no entry2025-W45 · no entry2025-W46 · no entry2025-W47 · no entry2025-W48 · no entry2025-W49 · no entry2025-W50 · no entry2025-W51 · no entry2025-W52 · no entry2026-W01 · no entry2026-W02 · no entry2026-W03 · no entry2026-W04 · no entry2026-W05 · no entry2026-W06 · no entry2026-W07 · no entry2026-W08 · no entry2026-W09 · no entry2026-W10 · no entry2026-W11 · no entry2026-W12 · no entry2026-W13 · 8 commits2026-W14 · 128 commits2026-W15 · no entry2026-W16 · no entry2026-W17 · no entry2026-W18 · no entry2026-W19 · no entry2026-W20 · no entry2026-W21 · no entry2026-W22 · no entry2026-W23 · no entry2026-W24 · no entry2026-W25 · no entry2026-W26 · no entry2026-W27 · no entry2026-W28 · no entry2026-W29 · no entry2026-W30 · no entry2026-W31 · no entry2026-W32 · no entry2026-W33 · no entry2026-W34 · no entry2026-W35 · no entry2026-W36 · no entry2026-W37 · no entry2026-W38 · no entry2026-W39 · no entry136
Commits by week, 2025-W40 to 2026-W39. The busiest week had 459.

What I’ve been working on

  1. 202620 weeks logged, 1 site2,269
  2. W3921 Sep

    Bow & Bridge

    A facsimile is not a second edition

    • Added /labels/: every checked maker's label on a published record, A to Z, with the book, scan page and line it was read from.
    • Fixed the edition rule: a facsimile counts as the edition it reproduces. 105 records resting on one reprinted book were demoted to draft, and 583 same-person questions were answered in the same pass, leaving 569 published makers.
    • Fixed the OCR loop check, which had rejected 1,019 honest pages across 429 volumes because a row of dot leaders looked like a decoding loop.
    and 1 more
    13commits
  3. W3921 Sep

    Rocheport Times

    Five games, a broadsheet front, and the home page as a front door

    • Launched five games: The Mini, a Weekly Quiz, Four Corners, Letterpress and Night Sky, with their own page type and layout.
    • Made the home page a front door: no news on it, just live vitals, events, sports and games; /news/ carries the news. Events gained a 'Pin to Front Page' flag.
    • Built the MR340 race hub's stats band (the MR340 is a 340-mile Missouri River paddle race): entered, finished, DNF, DNS, by division, with a map preview that opens the full-screen race map, and two-column year pages.
    and 3 more
    30commits
  4. W3814 Sep

    Bow & Bridge

    First production deploy: 605 makers live

    • First production deployment on 18 Sep, second and third on 20 Sep; the deploy is one command, dry by default, ships the tables as data and rewrites URLs on the host.
    • Applied a ninety-year rule: a maker whose cited printing is at least ninety years old clears the possibly-living check. The export went from 191 to 648 published records in one pass; 605 were live after the second deploy.
    • Site review for a trade reader, eight findings fixed: search finds makers, every published maker in one A–Z table, the citation stays open on every page, each printing links to its scan.
    and 3 more
    74commits
  5. W3814 Sep

    Rocheport Times

    Open sign-up, chat, and a front page that looks like a newspaper

    • Opened sign-up: a self-serve /register/ page with editor approval, passwordless login links, a members' Messages badge in the utility bar, and a privacy note.
    • Built member messaging as a chat UI on the existing direct-message store, with block, report and moderation, and a flag-gated daily digest.
    • Marked every member-gated page uncacheable after the edge cache served logged-out copies to signed-in members.
    and 3 more
    18commits
  6. W377 Sep

    Bow & Bridge

    Fifteen ceilings the pipeline must stay under

    • Fixed the admit storm: one volume the station could never fit had been asked 10,506 times; the admission rung is now paced by work done, and the drain front rotates instead of starving.
    • Wrote the operations contract: fifteen ceilings (queue depths, run times, log sizes) read from one file, with a nightly uncapped guard pass and a station ledger that records every page ask.
    • Stopped the miner minting bare surnames: a single-token name is refused, and a guard catches any that got through.
    and 2 more
    34commits
  7. W3631 Aug

    Bow & Bridge

    An admission door for every book, and a site a stranger can read

    • Built the admission door: a volume is sampled, profiled and given a rule-table verdict before any mining; the miner, the prose stage and the import step all refuse a volume the door has not admitted.
    • Rewrote every public page and template string for a general reader, rebuilt the maker index around search with a random cut of 18 records, and added a public /progress/ page that counts the pipeline stage by stage from a snapshot.
    • Closed every code path that could mint a second live record for the same name, then restored 177 merges that an August rebuild had silently undone.
    and 3 more
    155commits
  8. W3631 Aug

    Noble Strings

    Instruments for Sale becomes a photo-first plate gallery

    • Replaced the specs-table, per-instrument detail page with one photo-first gallery: a single plate per instrument showing all four sides, so no click-through is needed.
    • Gave each plate its own bordered, shadowed card with real spacing between instruments, instead of a stacked list separated only by hairlines, and dropped a dead reviews filter left over from the old layout.
    • Moved the single instrument photo shown on Home into the sidebar under the search widget, hid a duplicate search icon in the main navigation, and dropped the No. label from each plate's identifier while keeping the identifier itself.
    and 1 more
    4commits
  9. W3524 Aug

    Bow & Bridge

    Two verification bugs that hid 3,500 good claims

    • Fixed the verbatim verifier's apparatus detector: attested claims went from 0 to 3,545 in one run.
    • Fixed page-locator resolution in the batch verifier from 0.3% to 99.0% of claims landing on their exact page, and stopped it spending model calls on retired records.
    • Indexed the transcript table so a per-claim lookup dropped from a 92-second full scan to 2 seconds.
    and 3 more
    85commits
  10. W3524 Aug

    Rocheport Times

    Quick Approve for the editor, six more trails

    • Added Quick Approve to the Editorial Desk for the three daily draft types, with the full post body open inline so nothing is approved unread.
    • Made the desk hold any draft carrying raw HTML in its prose before it can publish, with a test case for the gate.
    • Gave the MCP newsroom two event-writing tools so an approved calendar item can be corrected or published from the assistant.
    and 2 more
    15commits
  11. W3417 Aug

    Bow & Bridge

    Teaching the miner what is not a name

    • Wrote a set of name rules into the miner: an author is not a maker, a dash is not a forename, a middle initial is not a death date, a courtesy title or a printed place never sits in the name slot, and one printed line naming two makers becomes two mentions.
    • Verified 2,893 claims that quote a printed line directly against the page text, with no language model involved.
    • Retired 126 junk drafts (index lines, death notices, catalogue prices) that had been minted as makers, and deduplicated 1,307 byte-identical mention rows across 40 records.
    and 3 more
    261commits
  12. W3310 Aug

    Bow & Bridge

    Bow & Bridge goes live as a sourced reference site

    • Stood up the site: maker records where every claim carries its own citation, an instrument register, source pages, a citation block on each record, and llms.txt and robots.txt so crawlers and AI tools read it correctly.
    • Read the complete 1916 American directory of makers from page images (412 entries) and published it as evidence rather than biography, each entry linked to its printed page.
    • Ran an adversarial review of the published records (3 critical, 12 major, 21 minor findings) and re-read 79 published claims against their sources; four unsupported claims were corrected and five withdrawn, with the corrections filed on the site.
    and 3 more
    186commits
  13. W3310 Aug

    Noble Strings

    Evidence markers for the maker research, and code finally in git

    • Added claim and dispute shortcodes: an inline pill for a single-sourced or secondary claim, a callout box for the rare case where the primary record contradicts the popular account, in four tiers from reported to unverified.
    • Moved the site's custom styling out of Appearance > Additional CSS, which stored it only in the database, into a tracked custom.css file in the child theme, loaded after every other stylesheet so it wins.
    • Started tracking the site's own code in git for the first time: the instrument showcase, the news digest, the Google reviews display and the child theme, leaving WordPress core, the database and uploads to Studio.
    3commits
  14. W3310 Aug

    Rocheport Times

    Public-domain river data and a 47-trail explorer

    • Swapped the river-channel geometry for public-domain USACE data on both the desktop map and the server, and regenerated the mobile encoding to match.
    • Fixed the 2026 replay's phantom leader: the first hour of tracking was mis-seeded field-wide, and pre-gun pings were being drawn as race progress.
    • Escaped feed-supplied boat names at four tooltip sinks (a cross-site-scripting fix), hardened magic-link sign-in per a security audit, and added WordPress-free GitHub Actions checks: PHP lint, template lint and the MR340 regression suite.
    and 2 more
    46commits
  15. W323 Aug

    Rocheport Times

    The 2026 race results, frozen and replayable

    • Gave each race year its own address under /mr340/ with a rewrite rule, since WordPress pages cannot have purely numeric slugs.
    • Froze the real 2026 results and wired the 2026 replay onto the year page; the every-boat results table pages 10 at a time.
    • Polished the race hub: year cards over a hub map, replay badges, and a rail call-to-action on the homepage.
    and 1 more
    12commits
  16. W3127 Jul

    Rocheport Times

    Race day: 395 boats wrongly marked out, fixed live

    • Snapped live positions to the river channel instead of raw GPS, added dead-reckoning so boats glide between feed polls instead of freezing and teleporting, and fixed the OUT label that had marked about 395 racing boats as quit.
    • Moved feed validation to the server proxy (bad tracker data is flagged once, at the door) and wrote regression fixtures for every race-day defect, pinned to real feed data.
    • Built the phone view for people standing at a ramp: scrollable live standings, a watch-a-stop screen with approaching boats plotted upstream and honest ETAs, and stale trackers labelled rather than guessed.
    and 3 more
    208commits
  17. W3020 Jul

    Rocheport Times

    Building the MR340 race tracker in seven days

    • Reverse-engineered the race's public tracker feed and built a tracker module: leaderboard and checkpoint watch from a 3-minute server-side cache with stale fallback, pinned by 27 fixture checks.
    • Moved the replay map from Leaflet to MapLibre GL: vector basemap with no API key, optional 3D terrain and buildings, a satellite toggle, a cinematic tour that chases a chosen boat, and checkpoints placed at real ramp coordinates.
    • Rebuilt the 2024 field from 405 real GPS tracks, snapped to the official river-channel line from a 2012 survey, and lazy-loaded it so the page shrank from 1.45 MB to 360 KB.
    and 3 more
    374commits
  18. W2913 Jul

    Rocheport Times

    Members, invites, and a newsroom the AI reaches only through MCP

    • Built the member layer: a Neighbor role gated on bespoke capabilities instead of generic WordPress ones, editor-issued and member-sent invites with a per-member cap, an onboarding tour, and a Community admin menu (Neighbors, Approvals, Invites, Activity, Alerts).
    • Shipped the newsroom MCP server: public read tools, an editorial tier behind OAuth or an application password, a draft-only create_draft tool, and lead tools with a code-enforced trust floor. The daily drafting, rundown and lead routines now go through it; SSH access was retired.
    • Turned on post-moderation by default: wall posts, listings and suggestions hold for review, with a stop-word filter and an optional tone check.
    and 3 more
    156commits
  19. W286 Jul

    Rocheport Times

    Rocheport Times relaunches on one platform plugin

    • Consolidated all custom code into one plugin with 30 modules and a loader that guards against collisions; the mobile app's API surface was kept frozen so nothing on the app side had to change.
    • Fixed four security bugs in the existing community code before launch: an account takeover through social login that trusted an unverified email, a forced-friendship request, an unsanitized public wall (stored XSS), and Microsoft sign-in trusting a user-editable email field.
    • Built the Editorial Desk: a review queue in wp-admin for AI-drafted articles with threaded change requests, an automatic link checker, and approve or request-changes actions on the post itself. Nothing publishes without a person.
    and 3 more
    459commits
  20. W1430 Mar

    Purfle

    Building the loop that refuses to load a tampered agent

    • Wrote the manifest identity spec and the trust loop around it: JSON Schema, RFC 0001 on JWS/ES256, a ManifestLoader, and live signature verification against the Azure key registry, complete with tamper detection.
    • Built the scheduler and sandbox that enforce what a manifest declares: five trigger types (interval, cron, startup, window, event), a sandbox fix that blocks and logs an out-of-bounds write, crash isolation between agents, and backoff on LLM timeouts and 429s.
    • Wired five LLM adapters, Anthropic, Gemini, OpenClaw, Ollama and a built-in tool executor, each reporting token usage, then tested that usage all the way from the adapter through the agent runner into the run log.
    and 3 more
    128commits
  21. W1323 Mar

    Purfle

    Scaffolding the manifest schema and the CLI

    • Wired Ajv into purfle/core and aligned the root JSON Schema with the spec, so a manifest with a missing or malformed field fails validation before anything tries to load it.
    • Wrote the CLI commands, fixed module resolution in purfle/core, then added CLI tests that check init scaffolding validates cleanly against Ajv.
    • Added the first tests for identity and schema validation in purfle/core, ahead of any code that would depend on them passing.
    and 2 more
    8commits
  22. 2026

    Site, 2026

    The Spiral (narrative game prototype)

    Designer and developer. C#, .NET MAUI, on-device language model, authored branching

  23. 20253 weeks logged, 1 volunteer38
  24. W5115 Dec

    Earlier work

    Podcasts, YouTube, and browsing by resource type

    • Added podcast and YouTube sources to the resource model.
    • Expanded public resource browsing with search and filtering by type.
    • Last commits to the C# version; the project resumed in August 2026 as a WordPress site with the same goal.
    3commits
  25. W508 Dec

    Earlier work

    Scrapers, Archive.org, and a test suite

    • Built the scraping pipeline: sitemap-driven crawling, normalization and background job processing, plus EPUB import.
    • Added a page-quality analysis system so low-value scraped pages are scored before they clutter the catalogue.
    • Unified books, scraped pages and Archive.org items into one resources model with quality analytics.
    and 3 more
    13commits
  26. W491 Dec

    Earlier work

    The first Bow & Bridge: a .NET book-and-luthier catalogue

    • Created the solution with a single Entity Framework context holding Book and Luthier entities, database-generated IDs, and a seed-and-reset script for a repeatable local database.
    • Added chapters and book images with a tagging system, image tags, and dialogs for editing them.
    • Split data access from business logic into separate service layers, with better loading and logging feedback.
    and 2 more
    22commits
  27. 2025–26

    Volunteer, 2025–2026

    Volunteer, Missouri River Relief at the MR340

    Race volunteer

    1year
  28. 20241 milestone, 4 volunteer work
  29. 2024–

    Volunteer, 2024–present

    rocheportmo.gov, City of Rocheport

    Domain registration, DNS and renewals. .gov registration, Cloudflare DNS

    2years
  30. 2024

    Milestone, 2024

    MR340, 2024: 340 miles solo in 62:58

    Solo paddler, boat #1825. 62:58:17 · 132nd overall · 42nd men's solo

  31. 2024–262years
  32. 2024–262years
  33. 2024–2years
  34. 20231 week logged1
  35. W3024 Jul

    Rocheport Times

    A rough first try at a Rocheport Times app

    • A rough .NET MAUI scaffold, one page and a Post class: the first sketch of a Rocheport Times mobile app
    1commits
  36. 20221 site
  37. 2022–

    Site, 2022–present

    Rocheport Times, 2022 to 2026 (rocheporttimes.com)

    Founder, publisher and builder. WordPress with Elementor, Toolset and Jetpack (2022-2025); wiped to a bare WordPress install by June 2026; rebuilt as the platform plugin from July 2026

    My name is on archive.org
    2snapshots
  38. 20201 site
  39. 2020–

    Site, 2020–present

    Noble Strings (noblestrings.com)

    Owns the shop and built the site. WordPress with Elementor (2022–2025 design); rebuilt on the Graceful Delight Blog child theme and Noble Instruments plugin from August 2026

    My name is on archive.org
    3snapshots
  40. 2017readings
  41. 2017–19

    Readings, 2017–2019

    LibriVox readings

    Volunteer reader. Voice recording, editing, and LibriVox's proof-listening process

    My name is on librivox.org
    9recordings
  42. 20161 site
  43. 2016–

    Site, 2016–present

    Roman Noble (music)

    Composer and performer; ASCAP member since 2016. Guitar and bass guitar, plus virtual instruments (Spitfire Audio LABS); releases distributed through DistroKid

    My name is on archive.org
    5snapshots
  44. 20111 job
  45. 2011–15years
  46. 20101 job
  47. 2010
  48. 20081 job
  49. 2008–102years
  50. 20071 job, 1 site
  51. 2007–081year
  52. 2007–09

    Site, 2007–2009

    BlogEngine.NET (open-source contributor)

    Contributing developer: documentation for version 1.4, themes, ping services, community support. ASP.NET 2.0/3.5, C#, XML provider, themes

    My name is on archive.org
    5snapshots
  53. 20061 job
  54. 2006–071year
  55. 20051 volunteer
  56. 2005–10

    Volunteer, 2005–2010

    Board President, Center for Spiritual Living, Saint Louis

    Treasurer 2005–06, board president from 2007

    5years
  57. 20031 job, 2 sites
  58. 2003–06

    Site, 2003–2006

    City of Experts (cityofexperts.com)

    Designed and built the site. Dreamweaver MX / Fireworks MX, HTML tables, ASP, JS/Flash elements

    My name is on archive.org
    4snapshots
  59. 2003–06

    Site, 2003–2006

    Intelligent Network Outfitters (ino-it.com)

    Founding member, principal/project manager; built and rebuilt the company site. Hand-built HTML tables → Dreamweaver + classic ASP → DotNetNuke

    My name is on archive.org
    4snapshots
  60. 2003–063years
  61. 20001 job
  62. 2000–03

    Job, 2000–2003

    Network Administrator & IT Consultant/APM, Ross & Baruzzini, Inc.

    Network Administrator & Systems Manager; IT Consultant & Assistant Project Manager

    3years
  63. 19991 job, 4 sites
  64. 1999–2000

    Site, 1999–2000

    Fayetteville Independent Automobile Dealers Association (fiada.latchon.com)

    Web design and site development at Latchon Multimedia. FrontPage 4.0, "cactus" theme, FrontPage discussion board web bot

    My name is on archive.org
    7snapshots
  65. 1999–2000

    Site, 1999–2000

    Virgin Island Cigar Society (vics.latchon.com)

    Web design and site development at Latchon Multimedia. FrontPage 98/2000, "vics" theme, DHTML animation, FrontPage hit counter, bgsound WAV

    My name is on archive.org
    8snapshots
  66. 1999–2000

    Site, 1999–2000

    82d Airborne Staff Judge Advocate website

    Legal Specialist (71D1P) and division JAG network and computer support; built the site. Microsoft FrontPage 4.0, HTML tables, FrontPage theme

    My name is on archive.org
    1snapshot
  67. 1999–20001year
  68. 1999–2000

    Site, 1999–2000

    Latchon Multimedia (latchon.com)

    Web design and site development. FrontPage 4.0, table layout, JavaScript FTP client login

    My name is on archive.org
    3snapshots
  69. 19961 job
  70. 1996–2000

    Job, 1996–2000

    Legal Specialist (71D1P), US Army, 82d Airborne Division

    Legal Specialist (71D1P); division JAG network and computer support

    4years
  71. 1985–95Nothing saved from those years.
  72. 19841 milestone
  73. 1984

    Milestone, 1984

    Where it started: TRS-80, Timex Sinclair 1000, Commodore 64

    Age twelve, teaching myself to program. BASIC, cassette storage, BBS dial-up