diff --git a/.gitignore b/.gitignore index e43b0f9..2348c91 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .DS_Store +__pycache__/ +*.pyc diff --git a/CLAUDE.md b/CLAUDE.md index 45c2fb1..9b4b58f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,23 +4,33 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Repository Overview -This is a GitHub profile repository containing only a README.md file that displays on the @developtheweb GitHub profile page. There is no source code, build configuration, or tests in this repository. +This is the GitHub profile repository for @developtheweb. Its README renders on the profile page and is a live system, not a static page: an animated entropy-reversal SVG whose state is lowered by visitors ("Maxwell's demon"), plus nightly-refreshed telemetry. Do not reintroduce third-party rendering services (capsule-render, readme-typing-svg, komarev, vercel stats/quotes apps) — everything renders from this repo, GitHub, or stevenmilanese.com assets. -## Repository Structure +## Architecture ``` -/home/aurelius/git/developtheweb/ -└── README.md +README.md profile page; contains marker-fenced generated sections +engine/generate_entropy_svg.py SMIL-animated assets/entropy.svg from state/demon.json (stdlib only) +engine/nightly.py refreshes README marker sections + bumps entropy generation (stdlib only) +state/demon.json bits_sorted / generation / demons / last_sorted_at +assets/entropy.svg generated — never hand-edit; regenerate via the engine +.github/workflows/demon.yml issues:opened, title "demon: sort 12 bits" → +12 bits, regen SVG, commit, comment, close +.github/workflows/nightly.yml cron 17 6 * * * → engine/nightly.py, commit if changed +.github/workflows/snake.yml cron every 12h → contribution snake SVGs on the `output` branch ``` -## Working with this Repository +## README marker sections (machine-written — edit the generators, not the sections) -Since this is a profile repository with only a README.md file: +- `` — 4 newest Strange Quarks articles (RSS `/feed.xml` if populated, else parsed from https://stevenmilanese.com/blog HTML) +- `` — telemetry row with live star/repo totals +- `` — featured cards (anthropic-certs, slTrain, meowchi-releases, mpl) with live star counts -- Any changes should maintain the professional formatting and structure of the profile README -- The README uses GitHub-flavored markdown with centered content, badges, and images -- External image assets are referenced from `https://github.com/developtheweb/stevenmilanese-com/blob/main/public/` +`engine/nightly.py` is fail-safe per section: on fetch/parse failure it leaves that section untouched and exits 0. -## Note +## Conventions -This is not a development project - it's a GitHub profile repository used for personal branding and showcasing work. There are no build commands, tests, or development workflows associated with this repository. \ No newline at end of file +- Conventional commit messages (`feat:`, `fix:`, `chore:`, `ci:`). No attribution footers of any kind. +- Contact is `rev@moonfactory.dev` only — the old Telegram link and the old level-host email address are retired and must not reappear. +- Entropy formula: `S = max(12.7, 100 − 0.0002·bits_sorted)`; 12 bits per demon click = 34.4 zJ (12 × kT ln 2 at 300 K). +- SVG regeneration is deterministic for a given `generation` — diffs stay reviewable. +- Test locally with `python3 engine/generate_entropy_svg.py` and `GITHUB_TOKEN=$(gh auth token) python3 engine/nightly.py` (both stdlib-only; no pip installs). diff --git a/README.md b/README.md index 47ffd49..b0ea0d3 100644 --- a/README.md +++ b/README.md @@ -1,191 +1,120 @@
- - +# Reversing the irreversible - - Steven Milanese +*Rev. Steven Milanese — the second law is statistical, not sacred. The demon pays its bills in bits.* - - [![Typing SVG](https://readme-typing-svg.demolab.com?font=Fira+Code&size=32&duration=2800&pause=2000&color=06B6D4¢er=true&vCenter=true&width=600&lines=Steven+Milanese;Autodidactic+Polymath;Systems+Alchemist;Physicist+%26+Reverend;Arch+Linux+User+BTW)](https://git.io/typing-svg) - - -
- Profile Views - - -

- [![Website](https://img.shields.io/badge/Website-stevenmilanese.com-1F2937?style=for-the-badge&logo=googlechrome&logoColor=white&labelColor=374151&color=06B6D4)](https://stevenmilanese.com) - [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white&labelColor=084C91&color=0A66C2)](https://www.linkedin.com/in/stevenmilanese/) - [![Blog](https://img.shields.io/badge/Blog-Strange_Quarks-14B8A6?style=for-the-badge&logo=hashnode&logoColor=white&labelColor=047857&color=14B8A6)](https://stevenmilanese.com/strange-quarks) -
- [![X](https://img.shields.io/badge/X-@developtheweb-000000?style=for-the-badge&logo=x&logoColor=white&labelColor=171717&color=000000)](https://x.com/developtheweb) - [![Telegram](https://img.shields.io/badge/Telegram-@CodeAndVerse-26A5E4?style=for-the-badge&logo=telegram&logoColor=white&labelColor=0088CC&color=26A5E4)](https://t.me/CodeAndVerse) - [![Email](https://img.shields.io/badge/Email-Contact_Me-EA4335?style=for-the-badge&logo=gmail&logoColor=white&labelColor=C23B2C&color=EA4335)](mailto:dev@level.host) -
- [![ORCID](https://img.shields.io/badge/ORCID-Research_Profile-A6CE39?style=for-the-badge&logo=orcid&logoColor=white&labelColor=87A330&color=A6CE39)](https://orcid.org/0009-0008-0442-208X) - [![OSF](https://img.shields.io/badge/OSF-Open_Science-2077B4?style=for-the-badge&logo=osf&logoColor=white&labelColor=1A5F8F&color=2077B4)](https://osf.io/3tsd4/)
-
- Hero Banner + Entropy-reversal field: particles converging from chaos into a (2,5) torus-knot lattice + + [⚡ Be the demon — sort 12 bits](https://github.com/developtheweb/developtheweb/issues/new?title=demon%3A+sort+12+bits&body=One+tap.+Submit+to+sort.) + + Each click opens a one-tap issue; an Action sorts the field, recommits the SVG, closes the issue. This README's state is community-lowered entropy.
- -
-
- Quote -
-
+## About the Reverend -## 🎯 About Me - -```python -class StevenMilanese: - def __init__(self): - self.title = "Autodidactic Polymath | Systems Alchemist" - self.location = "🌍 Earth" - self.os = "Arch Linux BTW 🐧" - self.current_focus = ["AI Architecture", "Quantum Computing", "WebGL", "Spiritual Tech"] - self.philosophy = "Bridge technical excellence with human experience" - - def transform_challenges(self, problem): - return f"✨ Inspired solution for {problem}" +``` +Reverend ≔ Physicist ⊗ Minister ⊗ Systems_Alchemist +domain : ℝ³·¹ ⊗ CY₃(χ = ±6) +axiom : complexity ⟼ elegance +method : ∀ p ∈ Inconceivable — solve(p) ∨ pose(better_p) +runtime : Arch Linux, btw ``` -I transform complex challenges into inspired technological solutions. By seamlessly integrating Artificial Intelligence with cutting-edge development practices, I create systems that push the boundaries of what's possible. My expertise spans multiple domains including theoretical physics, mathematics, AI systems architecture, and spiritual technology. +*Written in MPL — the author's own language. Ordained minister, autodidactic polymath, natural philosopher. The ministry and the physics are the same inquiry conducted at different energy scales.* -## 🚀 Tech Arsenal +## The mission — goals inconceivable by design + + + + + + + + + +
+ +**Reverse the irreversible** + +Maxwell's demon on GitHub's own infrastructure, funded in Landauer's currency. *(running above)* + + + +**Derive the three generations** + +Calabi–Yau compactifications, χ = ±6. [ORCID](https://orcid.org/0009-0008-0442-208X) · [OSF](https://osf.io/3tsd4/) · [companion essays](https://stevenmilanese.com/blog/tag/calabi-yau-manifolds) + +
+ +**Cognitive universality** + +[MPL](https://github.com/developtheweb/mpl): if you can write the equation, you can run it. + + + +**Planetary intelligence** + +Earth as information processor, argued in full on [Strange Quarks](https://stevenmilanese.com/blog/planetary-intelligence-earth-as-information-processor). + +
+ +
-### Languages & Frameworks -![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white) -![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black) -![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white) -![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black) -![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white) -![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white) -![Three.js](https://img.shields.io/badge/Three.js-000000?style=for-the-badge&logo=threedotjs&logoColor=white) - -### Operating System & Environment -![Arch Linux](https://img.shields.io/badge/Arch_Linux-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white) -![BTW I Use Arch](https://img.shields.io/badge/BTW_I_Use_Arch-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white) -![Neovim](https://img.shields.io/badge/Neovim-57A143?style=for-the-badge&logo=neovim&logoColor=white) -![Terminal](https://img.shields.io/badge/Terminal-4D4D4D?style=for-the-badge&logo=windows-terminal&logoColor=white) - -### Tools & Technologies -![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white) -![AWS](https://img.shields.io/badge/AWS-232F3E?style=for-the-badge&logo=amazonaws&logoColor=white) -![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white) -![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=git&logoColor=white) -![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white) -![WebGL](https://img.shields.io/badge/WebGL-990000?style=for-the-badge&logo=webgl&logoColor=white) -![AI/ML](https://img.shields.io/badge/AI/ML-FF6F61?style=for-the-badge&logo=tensorflow&logoColor=white) +`10¹⁰⁶ yr until heat death — the deadline` · `2.9 zJ of order per bit sorted (kT ln 2, 300 K)` · `★ 27 stars across 14 public repos`
+ -## 📊 GitHub Analytics +## Beneath the physics — the verified inventory +
- Steven Milanese github stats - + + + + + + + + + +
+

anthropic-certs

+

★ 11

+

Verified Anthropic certifications — Claude, API, Claude Code CLI, MCP.

+
+

slTrain

+

★ 4

+

A steam locomotive for your terminal, smoke trail included.

+
+

meowchi-releases

+

★ 4

+

A desktop pet that evolves when you actually get work done.

+
+

mpl

+

★ 2

+

Mathematics Programming Language — write the equation, run the equation.

+
+ -
- Steven Milanese's Activity Graph -
+## Latest from Strange Quarks -## 🎨 Featured Projects + +| Article | | +|:---|---:| +| [THE MAJORITY THAT VOTED FOR HEMLOCK - Plato's Republic, Exegesis and Judgment](https://stevenmilanese.com/blog/the-majority-that-voted-for-hemlock-platos-republic-exegesis-and-judgment) | Sep 15, 2026 · 204 min read | +| [What Survives the Reset](https://stevenmilanese.com/blog/what-survives-the-reset) | Aug 31, 2026 · 12 min read | +| [The Invisible Hand's Blind Spot: A Demand Externality in Competitive Automation](https://stevenmilanese.com/blog/the-invisible-hands-blind-spot-a-demand-externality-in-competitive-automation) | Aug 19, 2026 · 61 min read | +| [Mathematical Programming Language: A Vision for Cognitive Universality Through Unicode-Based Syntax](https://stevenmilanese.com/blog/mathematical-programming-language-a-vision-for-cognitive-universality-through-unicode-based-syntax) | Jul 28, 2025 · 19 min read | + -
- - - - - -
-

stevenmilanese.com

-
- Portfolio -

-

Immersive Portfolio Experience

-

Three.js visualizations • Server-side rendering • Headless CMS

-

- Visit Live Site -

-
-
-

Emergence Intelligence

-
- Emergence Intelligence -

-

Advanced AI System

-

Cognitive architecture • Semantic processing • Episodic memory

-

- Learn More -

-
-
-
- -## 📚 Latest Articles - -
- -| 📝 Article | 🏷️ Topics | -|:---|:---| -| [The Intersection of Physics and AI](https://stevenmilanese.com/strange-quarks) | `Quantum Computing` `Machine Learning` `Physics` | -| [Building Resilient Distributed Systems](https://stevenmilanese.com/strange-quarks) | `Architecture` `Scalability` `DevOps` | -| [WebGL Performance Optimization Techniques](https://stevenmilanese.com/strange-quarks) | `WebGL` `Three.js` `Performance` | -| [Quantum Computing: Practical Applications](https://stevenmilanese.com/strange-quarks) | `Quantum` `Algorithms` `Future Tech` | - -
- -## 🔭 Current Focus - -
- -```mermaid -graph LR - A[Advanced 3D Visualizations] --> B{Current Projects} - C[Serverless Architecture] --> B - D[Quantum Computing + AI] --> B - E[Spiritual Technology] --> B - B --> F[🚀 Innovation] -``` - -
- -## 🏆 Achievements & Certifications - -
- - - - -
- - - -
- - -## 💫 Connect & Collaborate - -
- Typing SVG - -

- - [![🌐 Website](https://img.shields.io/badge/🌐_Website-stevenmilanese.com-06B6D4?style=for-the-badge)](https://stevenmilanese.com) - [![💼 LinkedIn](https://img.shields.io/badge/💼_LinkedIn-Connect-0A66C2?style=for-the-badge)](https://www.linkedin.com/in/stevenmilanese/) - [![📧 Email](https://img.shields.io/badge/📧_Email-Contact-EA4335?style=for-the-badge)](mailto:dev@level.host) - [![📝 Blog](https://img.shields.io/badge/📝_Blog-Read-14B8A6?style=for-the-badge)](https://stevenmilanese.com/strange-quarks) -
- -

@@ -197,13 +126,17 @@ graph LR --- -
- Steven Milanese Logo -
- Typing SVG -
- ⚡ Powered by curiosity, driven by innovation -
+ + + + + +
- - +*Founder, [MoonFactory](https://moonfactory.dev) — development and consulting.* + + + +[stevenmilanese.com](https://stevenmilanese.com) · [Strange Quarks](https://stevenmilanese.com/blog) · [X](https://x.com/developtheweb) · [LinkedIn](https://www.linkedin.com/in/stevenmilanese/) · [ORCID](https://orcid.org/0009-0008-0442-208X) · [OSF](https://osf.io/3tsd4/) · [rev@moonfactory.dev](mailto:rev@moonfactory.dev) + +
diff --git a/assets/entropy.svg b/assets/entropy.svg index cf0c11c..ecb6ae4 100644 --- a/assets/entropy.svg +++ b/assets/entropy.svg @@ -1,126 +1,126 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + S = 100.0 k·bits dS/dt < 0 -bits sorted by visitors: 0 +bits sorted by visitors: 12 diff --git a/engine/nightly.py b/engine/nightly.py index d4358b2..9a2f04b 100644 --- a/engine/nightly.py +++ b/engine/nightly.py @@ -27,8 +27,14 @@ README = os.path.join(ROOT, "README.md") STATE_PATH = os.path.join(ROOT, "state", "demon.json") SITE = "https://stevenmilanese.com" -FEED_URL = f"{SITE}/feed.xml" +# The real feed. /feed.xml was a guess that 404'd for weeks while the HTML +# fallback silently matched nothing, so the FEED table quietly froze; it now +# also 301s here, but point at the canonical URL rather than lean on that. +FEED_URL = f"{SITE}/rss.xml" BLOG_URL = f"{SITE}/blog" +# The site publishes read-time in its own namespace — valid for strict parsers, +# unambiguous for this one. +MANUSCRIPT_NS = "https://stevenmilanese.com/ns/manuscript" FEATURED_REPOS = [ ("anthropic-certs", "Verified Anthropic certifications — Claude, API, Claude Code CLI, MCP."), @@ -63,6 +69,11 @@ def replace_section(text, marker, body): def articles_from_rss(): + """Primary source: the site's real feed. + + The feed carries read-time in the site's own namespace, so the meta column + comes from the publisher rather than being scraped back out of a page. + """ root = ET.fromstring(fetch(FEED_URL)) items = [] for item in root.iter("item"): @@ -74,47 +85,70 @@ def articles_from_rss(): date = datetime.datetime.strptime(pub[:16].strip(), "%a, %d %b %Y") except ValueError: pass + mins = (item.findtext(f"{{{MANUSCRIPT_NS}}}readingMinutes") or "").strip() + meta = f"{mins} min read" if mins.isdigit() else "" if title and link: - items.append({"title": title, "url": link, "date": date, "meta": ""}) + items.append({"title": title, "url": link, "date": date, "meta": meta}) return items def articles_from_html(): + """Fallback: parse the blog index. + + Written against the Manuscript's markup, which is regular enough not to + need heuristics — each entry is a `row` div holding one anchor and one + `meta` span: + +
+ Title + JUL 28, 2025 · 19 MIN +
+ + The previous version looked for a thumbnail `alt=` attribute and a + Title-Case date. The redesign has neither — no feature images on the index + and uppercase abbreviated months — so it matched nothing and silently + returned an empty list for weeks. + """ page = fetch(BLOG_URL) skip = ("/blog/tag/", "/blog/author/") - anchors = [ - m for m in re.finditer(r']+href="(/blog/[a-z0-9][a-z0-9-]*)"', page) - if not m.group(1).startswith(skip) - ] - seen, articles = set(), [] - for idx, m in enumerate(anchors): - slug = m.group(1) - if slug in seen: + articles, seen = [], set() + + row_re = re.compile( + r']+href="(/blog/[a-z0-9][a-z0-9-]*)"[^>]*>(.*?)' + r'.{0,400}?]*class="meta"[^>]*>(.*?)', + re.S, + ) + for m in row_re.finditer(page): + slug, raw_title, raw_meta = m.group(1), m.group(2), m.group(3) + if slug.startswith(skip) or slug in seen: continue - seen.add(slug) - stop = len(page) - for nxt in anchors[idx + 1:]: - if nxt.group(1) != slug: - stop = nxt.start() + + title = htmllib.unescape(re.sub(r"<[^>]+>", "", raw_title)).strip() + meta_text = htmllib.unescape(re.sub(r"<[^>]+>", " ", raw_meta)) + meta_text = re.sub(r"\s+", " ", meta_text).strip() + + # "JUL 28, 2025" — uppercase, abbreviated month. + date_m = re.search(r"([A-Za-z]{3,}) (\d{1,2}), (\d{4})", meta_text) + if not (title and date_m): + continue + month, day, year = date_m.groups() + date = None + for fmt in ("%b %d %Y", "%B %d %Y"): + try: + date = datetime.datetime.strptime(f"{month.title()} {day} {year}", fmt) break - window = page[m.start():stop] - title_m = re.search(r'alt="([^"]+)"', window) - stripped = re.sub(r"<[^>]+>", " ", window) - stripped = htmllib.unescape(re.sub(r"", "", stripped)) - date_m = re.search(r"([A-Z][a-z]+ \d{1,2}, \d{4})", stripped) - mins_m = re.search(r"(\d+)\s*min", stripped) - views_m = re.search(r"([\d,]+)\s*views", stripped) - if not (title_m and date_m): + except ValueError: + continue + if date is None: continue - date = datetime.datetime.strptime(date_m.group(1), "%B %d, %Y") - meta = f"{mins_m.group(1)} min read" if mins_m else ( - f"{views_m.group(1)} views" if views_m else "" - ) + + mins_m = re.search(r"(\d+)\s*MIN", meta_text, re.I) + seen.add(slug) articles.append({ - "title": htmllib.unescape(title_m.group(1)), + "title": title, "url": f"{SITE}{slug}", "date": date, - "meta": meta, + "meta": f"{mins_m.group(1)} min read" if mins_m else "", }) return articles @@ -124,8 +158,9 @@ def update_feed(text): try: articles = articles_from_rss() except Exception as exc: - print(f"feed: rss unusable ({exc}); falling back to html") + print(f"::warning title=nightly FEED rss::rss unusable ({exc}); falling back to html") if not articles: + print("::warning title=nightly FEED fallback::rss yielded nothing; scraping /blog") articles = articles_from_html() dated = [a for a in articles if a["date"]] dated.sort(key=lambda a: a["date"], reverse=True) @@ -188,22 +223,41 @@ def bump_entropy(): ) +def warn(label, exc): + """Fail-safe, but never quiet. + + Every section still degrades to 'leave it alone and exit 0' — a broken + fetch must not wedge the profile. What changed is visibility: a section + that stops updating now announces itself as a GitHub Actions warning + annotation, which surfaces in the run summary instead of scrolling past in + a log nobody opens. The FEED table sat frozen for 37 days precisely + because a silent skip and a successful run looked identical. + """ + print(f"::warning title=nightly {label} skipped::{label} left untouched — {exc}") + print(f"{label}: left untouched ({exc})", file=sys.stderr) + + def main(): with open(README) as fh: text = fh.read() + failures = 0 for label, fn in (("FEED", update_feed), ("STATS", update_stats), ("FEATURED", update_featured)): try: text = fn(text) print(f"{label}: updated") except Exception as exc: - print(f"{label}: left untouched ({exc})") + failures += 1 + warn(label, exc) with open(README, "w") as fh: fh.write(text) try: bump_entropy() print("ENTROPY: regenerated") except Exception as exc: - print(f"ENTROPY: left untouched ({exc})") + failures += 1 + warn("ENTROPY", exc) + if failures: + print(f"::warning title=nightly incomplete::{failures} of 4 sections did not update") if __name__ == "__main__": diff --git a/state/demon.json b/state/demon.json index fe021d0..e154670 100644 --- a/state/demon.json +++ b/state/demon.json @@ -1 +1,6 @@ -{ "bits_sorted": 0, "generation": 0, "demons": 0, "last_sorted_at": null } +{ + "bits_sorted": 12, + "generation": 52, + "demons": 1, + "last_sorted_at": "2026-07-08T02:02:03+00:00" +}