site: the design's colours over the wikis' high-contrast theme; .org inquiries
- site/colorlock.py: both XWikis force black and white with !important (a HIGH CONTRAST DARK THEME block in the skin's cssVariablesInit.css). On our pages only, the design's colours win: each inline colour made !important, and a stylesheet scoped to the page root (.ssos) for the rest. Used by site/com/build.py and site/org/build.py; the .com reinstalled with it. - site/org/inquiries (Captain Bob, 2026-11-07): the .com's inquiries go to an admin-only master/detail on the .org -- Inquiries.WebHome (Live Data table), one page per inquiry under Inquiries.Entries with a sheet and a status, PublicInquiry (public) filing them with its author's rights and echoing nothing a visitor sends; a hidden trap field for robots. The .com form posts there. Installed and tested: a guest's inquiry filed and deleted; one whose name and message were script macros was stored as text, nothing ran. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
This commit is contained in:
@@ -1,45 +1,54 @@
|
||||
{{html clean="false"}}
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Exo+2:wght@600;700&display=swap" rel="stylesheet">
|
||||
<div style="background: #0A1222; color: #EEF2F7; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
<style>
|
||||
.ssos, .ssos *, .ssos *::before, .ssos *::after { background-color: transparent !important; color: inherit !important; border-color: #22324D !important; }
|
||||
.ssos a, .ssos a * { color: #F5891F !important; }
|
||||
.ssos a:hover { color: #FFB061 !important; }
|
||||
.ssos input, .ssos textarea, .ssos select { background-color: #0A1222 !important; color: #EEF2F7 !important; border-color: #34486A !important; }
|
||||
.ssos ::placeholder { color: #A3AEC2 !important; opacity: 1 !important; }
|
||||
.ssos img { background-color: transparent !important; }
|
||||
</style>
|
||||
<div class="ssos" style="background: #0A1222 !important; color: #EEF2F7 !important; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
|
||||
<header style="border-bottom: 1px solid #22324D">
|
||||
<header style="border-bottom: 1px solid #22324D !important">
|
||||
<nav aria-label="Main" style="max-width: 1120px; margin: 0 auto; padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px">
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F">OS</span></a>
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7 !important; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F !important">OS</span></a>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 24px; font-size: 14px">
|
||||
<a href="/bin/view/Main/" style="color: #C8D1DE; text-decoration: none">Home</a>
|
||||
<a href="/bin/view/Inquiries/" aria-current="page" style="color: #EEF2F7; text-decoration: none; border-bottom: 2px solid #F5891F">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F; text-decoration: none">Contributors →</a>
|
||||
<a href="/bin/view/Main/" style="color: #C8D1DE !important; text-decoration: none">Home</a>
|
||||
<a href="/bin/view/Inquiries/" aria-current="page" style="color: #EEF2F7 !important; text-decoration: none; border-bottom: 2px solid #F5891F !important">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F !important; text-decoration: none">Contributors →</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 80px 24px 32px">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">Inquiries</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">Inquiries</p>
|
||||
<h1 style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: clamp(36px, 5vw, 56px); line-height: 1.1">Talk to the bridge.</h1>
|
||||
<p style="margin: 0; max-width: 640px; font-size: 18px; color: #C8D1DE">Licensing, research collaboration, press or plain curiosity — every message is read by a human. Want to contribute code? Head to <a href="https://starshipos-f18.org/">starshipos-f18.org</a>.</p>
|
||||
<p style="margin: 0; max-width: 640px; font-size: 18px; color: #C8D1DE !important">Licensing, research collaboration, press or plain curiosity — every message is read by a human. Want to contribute code? Head to <a href="https://starshipos-f18.org/">starshipos-f18.org</a>.</p>
|
||||
</section>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 32px 24px 96px; display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start">
|
||||
|
||||
<form action="mailto:info@starshipos.com?subject=StarshipOS%20inquiry" method="post" enctype="text/plain" aria-label="Inquiry form" style="flex: 999 1 520px; min-width: 0; background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 32px; display: flex; flex-direction: column; gap: 20px">
|
||||
<form action="https://starshipos-f18.org/bin/view/PublicInquiry/" method="post" aria-label="Inquiry form" style="flex: 999 1 520px; min-width: 0; background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 32px; display: flex; flex-direction: column; gap: 20px">
|
||||
<div aria-hidden="true" style="position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden"><label for="q-website">Leave this empty</label><input id="q-website" name="website" type="text" tabindex="-1" autocomplete="off"></div>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px">
|
||||
<div style="display: flex; flex-direction: column; gap: 8px">
|
||||
<label for="q-name" style="font-size: 14px; color: #C8D1DE">Name</label>
|
||||
<input id="q-name" name="name" type="text" autocomplete="name" style="min-height: 48px; padding: 0 14px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px">
|
||||
<label for="q-name" style="font-size: 14px; color: #C8D1DE !important">Name</label>
|
||||
<input id="q-name" name="name" type="text" autocomplete="name" style="min-height: 48px; padding: 0 14px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px">
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 8px">
|
||||
<label for="q-email" style="font-size: 14px; color: #C8D1DE">Email</label>
|
||||
<input id="q-email" name="email" type="email" autocomplete="email" style="min-height: 48px; padding: 0 14px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px">
|
||||
<label for="q-email" style="font-size: 14px; color: #C8D1DE !important">Email</label>
|
||||
<input id="q-email" name="email" type="email" autocomplete="email" style="min-height: 48px; padding: 0 14px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px">
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 8px">
|
||||
<label for="q-org" style="font-size: 14px; color: #C8D1DE">Organization <span style="color: #A3AEC2">(optional)</span></label>
|
||||
<input id="q-org" name="organization" type="text" autocomplete="organization" style="min-height: 48px; padding: 0 14px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px">
|
||||
<label for="q-org" style="font-size: 14px; color: #C8D1DE !important">Organization <span style="color: #A3AEC2 !important">(optional)</span></label>
|
||||
<input id="q-org" name="organization" type="text" autocomplete="organization" style="min-height: 48px; padding: 0 14px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px">
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 8px">
|
||||
<label for="q-topic" style="font-size: 14px; color: #C8D1DE">Topic</label>
|
||||
<select id="q-topic" name="topic" style="min-height: 48px; padding: 0 14px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px">
|
||||
<label for="q-topic" style="font-size: 14px; color: #C8D1DE !important">Topic</label>
|
||||
<select id="q-topic" name="topic" style="min-height: 48px; padding: 0 14px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px">
|
||||
<option>General question</option>
|
||||
<option>Licensing</option>
|
||||
<option>Research collaboration</option>
|
||||
@@ -48,46 +57,46 @@
|
||||
</select>
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: column; gap: 8px">
|
||||
<label for="q-msg" style="font-size: 14px; color: #C8D1DE">Message</label>
|
||||
<textarea id="q-msg" name="message" rows="7" style="padding: 12px 14px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px; resize: vertical"></textarea>
|
||||
<label for="q-msg" style="font-size: 14px; color: #C8D1DE !important">Message</label>
|
||||
<textarea id="q-msg" name="message" rows="7" style="padding: 12px 14px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px; resize: vertical"></textarea>
|
||||
</div>
|
||||
<div style="display: flex; align-items: flex-start; gap: 12px">
|
||||
<input id="q-list" name="announcements" type="checkbox" style="width: 20px; height: 20px; margin: 3px 0 0; accent-color: #F5891F">
|
||||
<label for="q-list" style="font-size: 14px; color: #C8D1DE">Also add me to launch announcements (low volume, unsubscribe anytime).</label>
|
||||
<input id="q-list" name="announcements" type="checkbox" style="width: 20px; height: 20px; margin: 3px 0 0; accent-color: #F5891F !important">
|
||||
<label for="q-list" style="font-size: 14px; color: #C8D1DE !important">Also add me to launch announcements (low volume, unsubscribe anytime).</label>
|
||||
</div>
|
||||
<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 16px">
|
||||
<button type="submit" style="min-height: 48px; padding: 0 28px; background: #F5891F; color: #0A1222; border: 0; border-radius: 4px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer">Send inquiry</button>
|
||||
<span style="font-size: 13px; color: #A3AEC2">Opens your e-mail program. Replies usually within a few days.</span>
|
||||
<button type="submit" style="min-height: 48px; padding: 0 28px; background: #F5891F !important; color: #0A1222 !important; border: 0 !important; border-radius: 4px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer">Send inquiry</button>
|
||||
<span style="font-size: 13px; color: #A3AEC2 !important">Replies usually within a few days.</span>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<aside aria-label="Direct addresses" style="flex: 1 1 300px; display: flex; flex-direction: column; gap: 24px">
|
||||
<h2 style="margin: 0; font-family: 'Exo 2', sans-serif; font-size: 24px">Or write directly</h2>
|
||||
<div style="border-top: 1px solid #22324D; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2">General</div>
|
||||
<div style="border-top: 1px solid #22324D !important; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2 !important">General</div>
|
||||
<a href="mailto:info@starshipos.com" style="font-size: 16px">info@starshipos.com</a>
|
||||
</div>
|
||||
<div style="border-top: 1px solid #22324D; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2">Licensing & partnerships</div>
|
||||
<div style="border-top: 1px solid #22324D !important; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2 !important">Licensing & partnerships</div>
|
||||
<a href="mailto:licensing@starshipos.com" style="font-size: 16px">licensing@starshipos.com</a>
|
||||
</div>
|
||||
<div style="border-top: 1px solid #22324D; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2">Press & media</div>
|
||||
<div style="border-top: 1px solid #22324D !important; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2 !important">Press & media</div>
|
||||
<a href="mailto:press@starshipos.com" style="font-size: 16px">press@starshipos.com</a>
|
||||
</div>
|
||||
<div style="border-top: 1px solid #22324D; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2">Security reports</div>
|
||||
<div style="border-top: 1px solid #22324D !important; padding-top: 16px">
|
||||
<div style="font-size: 13px; color: #A3AEC2 !important">Security reports</div>
|
||||
<a href="mailto:security@starshipos.org" style="font-size: 16px">security@starshipos.org</a>
|
||||
</div>
|
||||
<p style="margin: 0; padding-top: 16px; border-top: 1px solid #22324D; font-size: 13px; color: #A3AEC2">StarshipOS is developed in Ashland, Ohio.</p>
|
||||
<p style="margin: 0; padding-top: 16px; border-top: 1px solid #22324D !important; font-size: 13px; color: #A3AEC2 !important">StarshipOS is developed in Ashland, Ohio.</p>
|
||||
</aside>
|
||||
|
||||
</section>
|
||||
|
||||
<footer style="border-top: 1px solid #22324D">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2">
|
||||
<footer style="border-top: 1px solid #22324D !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2 !important">
|
||||
<span>© 2026 Robert Allan James · A Starship Foundation project (in formation)</span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Main/" style="color: #C8D1DE">Home</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE">starshipos-f18.org</a></span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Main/" style="color: #C8D1DE !important">Home</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE !important">starshipos-f18.org</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
+59
-51
@@ -1,126 +1,134 @@
|
||||
{{html clean="false"}}
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Exo+2:wght@600;700&display=swap" rel="stylesheet">
|
||||
<div style="background: #0A1222; color: #EEF2F7; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
<style>
|
||||
.ssos, .ssos *, .ssos *::before, .ssos *::after { background-color: transparent !important; color: inherit !important; border-color: #22324D !important; }
|
||||
.ssos a, .ssos a * { color: #F5891F !important; }
|
||||
.ssos a:hover { color: #FFB061 !important; }
|
||||
.ssos input, .ssos textarea, .ssos select { background-color: #0A1222 !important; color: #EEF2F7 !important; border-color: #34486A !important; }
|
||||
.ssos ::placeholder { color: #A3AEC2 !important; opacity: 1 !important; }
|
||||
.ssos img { background-color: transparent !important; }
|
||||
</style>
|
||||
<div class="ssos" style="background: #0A1222 !important; color: #EEF2F7 !important; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
|
||||
<header style="border-bottom: 1px solid #22324D">
|
||||
<header style="border-bottom: 1px solid #22324D !important">
|
||||
<nav aria-label="Main" style="max-width: 1120px; margin: 0 auto; padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px">
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F">OS</span></a>
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7 !important; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F !important">OS</span></a>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 24px; font-size: 14px">
|
||||
<a href="#system" style="color: #C8D1DE; text-decoration: none">System</a>
|
||||
<a href="#research" style="color: #C8D1DE; text-decoration: none">Research</a>
|
||||
<a href="#silicon" style="color: #C8D1DE; text-decoration: none">Silicon</a>
|
||||
<a href="/bin/view/Inquiries/" style="color: #C8D1DE; text-decoration: none">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F; text-decoration: none">Contributors →</a>
|
||||
<a href="#system" style="color: #C8D1DE !important; text-decoration: none">System</a>
|
||||
<a href="#research" style="color: #C8D1DE !important; text-decoration: none">Research</a>
|
||||
<a href="#silicon" style="color: #C8D1DE !important; text-decoration: none">Silicon</a>
|
||||
<a href="/bin/view/Inquiries/" style="color: #C8D1DE !important; text-decoration: none">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F !important; text-decoration: none">Contributors →</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 96px 24px 72px; display: flex; flex-wrap: wrap; align-items: center; gap: 56px">
|
||||
<div style="flex: 999 1 520px; min-width: 0">
|
||||
<p style="margin: 0 0 20px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0">ok> bare metal · FORTH · C99</p>
|
||||
<p style="margin: 0 0 20px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0 !important">ok> bare metal · FORTH · C99</p>
|
||||
<h1 style="margin: 0 0 24px; font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: clamp(40px, 6vw, 68px); line-height: 1.05; letter-spacing: -0.01em">An operating system that obeys a conservation law.</h1>
|
||||
<p style="margin: 0 0 36px; max-width: 620px; font-size: 18px; color: #C8D1DE">StarshipOS is a bare-metal operating system built from the ground up in StarForth and C99. One compudynamic engine governs every word, message, block and virtual machine — and holds K≡1.0 on every architecture it runs on.</p>
|
||||
<p style="margin: 0 0 36px; max-width: 620px; font-size: 18px; color: #C8D1DE !important">StarshipOS is a bare-metal operating system built from the ground up in StarForth and C99. One compudynamic engine governs every word, message, block and virtual machine — and holds K≡1.0 on every architecture it runs on.</p>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 16px">
|
||||
<a href="#system" style="display: inline-block; padding: 14px 24px; background: #F5891F; color: #0A1222; font-weight: 700; text-decoration: none; border-radius: 4px">See how it works</a>
|
||||
<a href="/bin/view/Inquiries/" style="display: inline-block; padding: 14px 24px; border: 1px solid #34486A; color: #EEF2F7; text-decoration: none; border-radius: 4px">Make an inquiry</a>
|
||||
<a href="#system" style="display: inline-block; padding: 14px 24px; background: #F5891F !important; color: #0A1222 !important; font-weight: 700; text-decoration: none; border-radius: 4px">See how it works</a>
|
||||
<a href="/bin/view/Inquiries/" style="display: inline-block; padding: 14px 24px; border: 1px solid #34486A !important; color: #EEF2F7 !important; text-decoration: none; border-radius: 4px">Make an inquiry</a>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex: 1 1 400px; display: flex; justify-content: center">
|
||||
<img src="/bin/download/Main/WebHome/badge.jpg" alt="StarshipOS badge: Santino the mascot inside a ring on a starfield" style="width: 100%; max-width: 540px; height: auto; display: block; border-radius: 8px; border: 1px solid #22324D">
|
||||
<img src="/bin/download/Main/WebHome/badge.jpg" alt="StarshipOS badge: Santino the mascot inside a ring on a starfield" style="width: 100%; max-width: 540px; height: auto; display: block; border-radius: 8px; border: 1px solid #22324D !important">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section aria-label="At a glance" style="border-top: 1px solid #22324D; border-bottom: 1px solid #22324D; background: #0E182B">
|
||||
<section aria-label="At a glance" style="border-top: 1px solid #22324D !important; border-bottom: 1px solid #22324D !important; background: #0E182B !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px">
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">38,400+</div><div style="font-size: 14px; color: #A3AEC2">experimental runs validating K≡1.0</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">3 ISAs</div><div style="font-size: 14px; color: #A3AEC2">amd64 · aarch64 · riscv64</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">FORTH-79</div><div style="font-size: 14px; color: #A3AEC2">compliant core, live at the ok> prompt</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">Patent pending</div><div style="font-size: 14px; color: #A3AEC2">LithosAnanke kernel architecture</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">38,400+</div><div style="font-size: 14px; color: #A3AEC2 !important">experimental runs validating K≡1.0</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">3 ISAs</div><div style="font-size: 14px; color: #A3AEC2 !important">amd64 · aarch64 · riscv64</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">FORTH-79</div><div style="font-size: 14px; color: #A3AEC2 !important">compliant core, live at the ok> prompt</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">Patent pending</div><div style="font-size: 14px; color: #A3AEC2 !important">LithosAnanke kernel architecture</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="system" style="max-width: 1120px; margin: 0 auto; padding: 96px 24px 48px">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">The system</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">The system</p>
|
||||
<h2 style="margin: 0 0 48px; font-family: 'Exo 2', sans-serif; font-size: 40px; line-height: 1.15; max-width: 760px">One engine. One fabric. Everything in it obeys the same physics.</h2>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px">
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<h3 style="margin: 0 0 4px; font-family: 'Exo 2', sans-serif; font-size: 24px">StarForth</h3>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F">the language and the VM</p>
|
||||
<p style="margin: 0; color: #C8D1DE">A FORTH-79 compliant adaptive virtual machine written in C99. Words execute by heat: what the system uses, it keeps close. Everything a user touches is StarForth — there is no compiler inside the box.</p>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F !important">the language and the VM</p>
|
||||
<p style="margin: 0; color: #C8D1DE !important">A FORTH-79 compliant adaptive virtual machine written in C99. Words execute by heat: what the system uses, it keeps close. Everything a user touches is StarForth — there is no compiler inside the box.</p>
|
||||
</article>
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<h3 style="margin: 0 0 4px; font-family: 'Exo 2', sans-serif; font-size: 24px">LithosAnanke</h3>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F">the microkernel</p>
|
||||
<p style="margin: 0; color: #C8D1DE">A bare-metal microkernel built around the Stadium — a single fabric where words, messages, blocks and VMs live side by side, all governed by one compudynamic engine.</p>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F !important">the microkernel</p>
|
||||
<p style="margin: 0; color: #C8D1DE !important">A bare-metal microkernel built around the Stadium — a single fabric where words, messages, blocks and VMs live side by side, all governed by one compudynamic engine.</p>
|
||||
</article>
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<h3 style="margin: 0 0 4px; font-family: 'Exo 2', sans-serif; font-size: 24px">The fleet</h3>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F">VMs that are born, not spawned</p>
|
||||
<p style="margin: 0; color: #C8D1DE">Hera births and governs the fleet. Artemis keeps the blocks. Console draws a vector framebuffer. Hermes, in the kernel, carries every message — and every message is checked against its ACL.</p>
|
||||
<p style="margin: 0 0 16px; font-size: 13px; color: #F5891F !important">VMs that are born, not spawned</p>
|
||||
<p style="margin: 0; color: #C8D1DE !important">Hera births and governs the fleet. Artemis keeps the blocks. Console draws a vector framebuffer. Hermes, in the kernel, carries every message — and every message is checked against its ACL.</p>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 48px 24px">
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; border-top: 1px solid #22324D; padding-top: 48px">
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">Phenomenon first</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Observe the behaviour, then write the mathematics. Document before code.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">Parity first</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">The same machine on every ISA, proven by reproducible dictionary hashes.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">Identity on a key</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Your certificate lives on a thumb drive. No key, no session.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">Minimal by design</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">A small core of primitives; everything else composed in FORTH.</p></div>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; border-top: 1px solid #22324D !important; padding-top: 48px">
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">Phenomenon first</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Observe the behaviour, then write the mathematics. Document before code.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">Parity first</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">The same machine on every ISA, proven by reproducible dictionary hashes.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">Identity on a key</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Your certificate lives on a thumb drive. No key, no session.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">Minimal by design</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">A small core of primitives; everything else composed in FORTH.</p></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="research" style="max-width: 1120px; margin: 0 auto; padding: 72px 24px">
|
||||
<div style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 40px; display: flex; flex-wrap: wrap; gap: 40px; align-items: center">
|
||||
<div style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 40px; display: flex; flex-wrap: wrap; gap: 40px; align-items: center">
|
||||
<div style="flex: 999 1 480px; min-width: 0">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">Research</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">Research</p>
|
||||
<h2 style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: 32px; line-height: 1.2">James Law: K≡1.0</h2>
|
||||
<p style="margin: 0; color: #C8D1DE">A conservation invariant that holds regardless of instruction set. Validated across 38,400+ runs in 128 configurations under QEMU on amd64, aarch64 and riscv64, and published on SSRN.</p>
|
||||
<p style="margin: 0; color: #C8D1DE !important">A conservation invariant that holds regardless of instruction set. Validated across 38,400+ runs in 128 configurations under QEMU on amd64, aarch64 and riscv64, and published on SSRN.</p>
|
||||
</div>
|
||||
<div style="flex: 1 1 220px; display: flex; flex-direction: column; gap: 12px">
|
||||
<a href="https://starshipos-f18.org/" style="display: inline-block; padding: 14px 20px; background: #F5891F; color: #0A1222; font-weight: 700; text-decoration: none; border-radius: 4px; text-align: center">Read the paper</a>
|
||||
<a href="https://starshipos-f18.org/" style="display: inline-block; padding: 14px 20px; border: 1px solid #34486A; color: #EEF2F7; text-decoration: none; border-radius: 4px; text-align: center">Design docs on the .org</a>
|
||||
<a href="https://starshipos-f18.org/" style="display: inline-block; padding: 14px 20px; background: #F5891F !important; color: #0A1222 !important; font-weight: 700; text-decoration: none; border-radius: 4px; text-align: center">Read the paper</a>
|
||||
<a href="https://starshipos-f18.org/" style="display: inline-block; padding: 14px 20px; border: 1px solid #34486A !important; color: #EEF2F7 !important; text-decoration: none; border-radius: 4px; text-align: center">Design docs on the .org</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="silicon" style="max-width: 1120px; margin: 0 auto; padding: 48px 24px 96px">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">Next: silicon</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">Next: silicon</p>
|
||||
<h2 style="margin: 0 0 20px; font-family: 'Exo 2', sans-serif; font-size: 40px; line-height: 1.15; max-width: 760px">From virtual machine to fabric.</h2>
|
||||
<p style="margin: 0; max-width: 720px; color: #C8D1DE">StarForth V4 is being brought up as a mesh of tiny stack-machine cores on FPGA — words as instructions, messaging in hardware, and the compudynamic engine steering what runs and when. Same machine, same parity, now in logic.</p>
|
||||
<p style="margin: 0; max-width: 720px; color: #C8D1DE !important">StarForth V4 is being brought up as a mesh of tiny stack-machine cores on FPGA — words as instructions, messaging in hardware, and the compudynamic engine steering what runs and when. Same machine, same parity, now in logic.</p>
|
||||
</section>
|
||||
|
||||
<section aria-labelledby="bridge-h" style="max-width: 1120px; margin: 0 auto; padding: 0 24px 96px">
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 48px; align-items: center; background: #111C30; border: 1px solid #22324D; border-radius: 8px; padding: 32px">
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 48px; align-items: center; background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 8px; padding: 32px">
|
||||
<img src="/bin/download/Main/WebHome/captain-bob.jpg" alt="Painted portrait of Captain Bob at a keyboard with a mug of coffee, wearing a StarshipOS jacket" style="flex: 1 1 260px; width: 100%; max-width: 340px; aspect-ratio: 2 / 3; height: auto; object-fit: cover; border-radius: 6px; display: block">
|
||||
<div style="flex: 999 1 420px; min-width: 0">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0">From the bridge</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0 !important">From the bridge</p>
|
||||
<h2 id="bridge-h" style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: 36px; line-height: 1.15">Built by one engineer, in the open.</h2>
|
||||
<p style="margin: 0 0 24px; color: #C8D1DE">StarshipOS is designed and built by Captain Bob — Robert Allan James — drawing on roughly fifty years of embedded-systems work. Development happens in Ashland, Ohio, and in public on starshipos-f18.org.</p>
|
||||
<a href="/bin/view/Inquiries/" style="display: inline-block; padding: 14px 24px; border: 1px solid #34486A; color: #EEF2F7; text-decoration: none; border-radius: 4px">Get in touch</a>
|
||||
<p style="margin: 0 0 24px; color: #C8D1DE !important">StarshipOS is designed and built by Captain Bob — Robert Allan James — drawing on roughly fifty years of embedded-systems work. Development happens in Ashland, Ohio, and in public on starshipos-f18.org.</p>
|
||||
<a href="/bin/view/Inquiries/" style="display: inline-block; padding: 14px 24px; border: 1px solid #34486A !important; color: #EEF2F7 !important; text-decoration: none; border-radius: 4px">Get in touch</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section aria-labelledby="signup-h" style="border-top: 1px solid #22324D; background: #0E182B">
|
||||
<section aria-labelledby="signup-h" style="border-top: 1px solid #22324D !important; background: #0E182B !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 64px 24px; display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: space-between">
|
||||
<div style="flex: 1 1 360px; min-width: 0">
|
||||
<h2 id="signup-h" style="margin: 0 0 8px; font-family: 'Exo 2', sans-serif; font-size: 28px">Launch announcements</h2>
|
||||
<p style="margin: 0; color: #A3AEC2; font-size: 14px">Milestones, releases and papers. Low volume. Unsubscribe anytime.</p>
|
||||
<p style="margin: 0; color: #A3AEC2 !important; font-size: 14px">Milestones, releases and papers. Low volume. Unsubscribe anytime.</p>
|
||||
</div>
|
||||
<form action="mailto:info@starshipos.com?subject=Subscribe%20to%20launch%20announcements" method="post" enctype="text/plain" style="flex: 1 1 420px; display: flex; flex-wrap: wrap; gap: 12px" aria-label="Subscribe to announcements">
|
||||
<label for="sub-email" style="position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0)">Email address</label>
|
||||
<input id="sub-email" name="email" type="email" required placeholder="you@example.com" style="flex: 1 1 240px; min-height: 48px; padding: 0 16px; background: #0A1222; border: 1px solid #34486A; border-radius: 4px; color: #EEF2F7; font-family: inherit; font-size: 15px">
|
||||
<button type="submit" style="min-height: 48px; padding: 0 24px; background: #F5891F; color: #0A1222; border: 0; border-radius: 4px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer">Subscribe</button>
|
||||
<input id="sub-email" name="email" type="email" required placeholder="you@example.com" style="flex: 1 1 240px; min-height: 48px; padding: 0 16px; background: #0A1222 !important; border: 1px solid #34486A !important; border-radius: 4px; color: #EEF2F7 !important; font-family: inherit; font-size: 15px">
|
||||
<button type="submit" style="min-height: 48px; padding: 0 24px; background: #F5891F !important; color: #0A1222 !important; border: 0 !important; border-radius: 4px; font-family: inherit; font-weight: 700; font-size: 15px; cursor: pointer">Subscribe</button>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer style="border-top: 1px solid #22324D">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2">
|
||||
<footer style="border-top: 1px solid #22324D !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2 !important">
|
||||
<span>© 2026 Robert Allan James · A Starship Foundation project (in formation)</span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Inquiries/" style="color: #C8D1DE">Inquiries</a><a href="mailto:info@starshipos.com" style="color: #C8D1DE">info@starshipos.com</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE">starshipos-f18.org</a></span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Inquiries/" style="color: #C8D1DE !important">Inquiries</a><a href="mailto:info@starshipos.com" style="color: #C8D1DE !important">info@starshipos.com</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE !important">starshipos-f18.org</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -1,102 +1,110 @@
|
||||
{{html clean="false"}}
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Exo+2:wght@600;700&display=swap" rel="stylesheet">
|
||||
<div style="background: #0A1222; color: #EEF2F7; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
<style>
|
||||
.ssos, .ssos *, .ssos *::before, .ssos *::after { background-color: transparent !important; color: inherit !important; border-color: #22324D !important; }
|
||||
.ssos a, .ssos a * { color: #F5891F !important; }
|
||||
.ssos a:hover { color: #FFB061 !important; }
|
||||
.ssos input, .ssos textarea, .ssos select { background-color: #0A1222 !important; color: #EEF2F7 !important; border-color: #34486A !important; }
|
||||
.ssos ::placeholder { color: #A3AEC2 !important; opacity: 1 !important; }
|
||||
.ssos img { background-color: transparent !important; }
|
||||
</style>
|
||||
<div class="ssos" style="background: #0A1222 !important; color: #EEF2F7 !important; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 16px; line-height: 1.6; min-height: 0">
|
||||
|
||||
<header style="border-bottom: 1px solid #22324D">
|
||||
<header style="border-bottom: 1px solid #22324D !important">
|
||||
<nav aria-label="Main" style="max-width: 1120px; margin: 0 auto; padding: 20px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px">
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F">OS</span></a>
|
||||
<a href="/bin/view/Main/" style="font-family: 'Exo 2', sans-serif; font-weight: 700; font-size: 22px; color: #EEF2F7 !important; text-decoration: none; letter-spacing: 0.02em">starship<span style="color: #F5891F !important">OS</span></a>
|
||||
<div style="display: flex; flex-wrap: wrap; gap: 24px; font-size: 14px">
|
||||
<a href="/bin/view/Main/" style="color: #C8D1DE; text-decoration: none">Home</a>
|
||||
<a href="/bin/view/TryIt/" aria-current="page" style="color: #EEF2F7; text-decoration: none; border-bottom: 2px solid #F5891F">Try it</a>
|
||||
<a href="/bin/view/Inquiries/" style="color: #C8D1DE; text-decoration: none">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F; text-decoration: none">Contributors →</a>
|
||||
<a href="/bin/view/Main/" style="color: #C8D1DE !important; text-decoration: none">Home</a>
|
||||
<a href="/bin/view/TryIt/" aria-current="page" style="color: #EEF2F7 !important; text-decoration: none; border-bottom: 2px solid #F5891F !important">Try it</a>
|
||||
<a href="/bin/view/Inquiries/" style="color: #C8D1DE !important; text-decoration: none">Inquiries</a>
|
||||
<a href="https://starshipos-f18.org/" style="color: #F5891F !important; text-decoration: none">Contributors →</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 80px 24px 32px">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0">ok> try it</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #4FD1B0 !important">ok> try it</p>
|
||||
<h1 style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: clamp(36px, 5vw, 56px); line-height: 1.1">A StarshipOS machine of your own.</h1>
|
||||
<p style="margin: 0; max-width: 680px; font-size: 18px; color: #C8D1DE">Not a recording, not a simulation of StarshipOS: the console below is a real machine, started just for you and already at its prompt. You are Zuse, the superuser — of a machine that exists only for your session. There is nothing to break, and nothing you do is kept.</p>
|
||||
<p style="margin: 0; max-width: 680px; font-size: 18px; color: #C8D1DE !important">Not a recording, not a simulation of StarshipOS: the console below is a real machine, started just for you and already at its prompt. You are Zuse, the superuser — of a machine that exists only for your session. There is nothing to break, and nothing you do is kept.</p>
|
||||
</section>
|
||||
|
||||
<section aria-label="The console" style="max-width: 1120px; margin: 0 auto; padding: 24px 24px 48px">
|
||||
<div style="background: #050A14; border: 1px solid #34486A; border-radius: 8px; overflow: hidden">
|
||||
<div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-bottom: 1px solid #22324D; background: #0E182B; font-size: 13px; color: #A3AEC2">
|
||||
<span style="display: flex; align-items: center; gap: 10px"><span aria-hidden="true" style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #4FD1B0"></span>StarshipOS · amd64 · your session</span>
|
||||
<div style="background: #050A14 !important; border: 1px solid #34486A !important; border-radius: 8px; overflow: hidden">
|
||||
<div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-bottom: 1px solid #22324D !important; background: #0E182B !important; font-size: 13px; color: #A3AEC2 !important">
|
||||
<span style="display: flex; align-items: center; gap: 10px"><span aria-hidden="true" style="display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #4FD1B0 !important"></span>StarshipOS · amd64 · your session</span>
|
||||
<span>try.starshipos-f18.com</span>
|
||||
</div>
|
||||
<iframe src="https://try.starshipos-f18.com/" title="StarshipOS console" style="display: block; width: 100%; height: 30em; border: 0; background: #050A14"></iframe>
|
||||
<iframe src="https://try.starshipos-f18.com/" title="StarshipOS console" style="display: block; width: 100%; height: 30em; border: 0 !important; background: #050A14 !important"></iframe>
|
||||
</div>
|
||||
<p style="margin: 12px 0 0; font-size: 13px; color: #A3AEC2">If the console does not connect, every machine is in use: try again in a few minutes.</p>
|
||||
<p style="margin: 12px 0 0; font-size: 13px; color: #A3AEC2 !important">If the console does not connect, every machine is in use: try again in a few minutes.</p>
|
||||
</section>
|
||||
|
||||
<section aria-label="Your machine" style="border-top: 1px solid #22324D; border-bottom: 1px solid #22324D; background: #0E182B">
|
||||
<section aria-label="Your machine" style="border-top: 1px solid #22324D !important; border-bottom: 1px solid #22324D !important; background: #0E182B !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px">
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">Zuse</div><div style="font-size: 14px; color: #A3AEC2">the superuser, of this machine only</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">amd64</div><div style="font-size: 14px; color: #A3AEC2">LithosAnanke v2.1.0 · StarForth v4</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">30 min</div><div style="font-size: 14px; color: #A3AEC2">then it is gone; reload for a new one</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F">Offline</div><div style="font-size: 14px; color: #A3AEC2">no network inside the machine</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">Zuse</div><div style="font-size: 14px; color: #A3AEC2 !important">the superuser, of this machine only</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">amd64</div><div style="font-size: 14px; color: #A3AEC2 !important">LithosAnanke v2.1.0 · StarForth v4</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">30 min</div><div style="font-size: 14px; color: #A3AEC2 !important">then it is gone; reload for a new one</div></div>
|
||||
<div><div style="font-family: 'Exo 2', sans-serif; font-size: 32px; font-weight: 700; color: #F5891F !important">Offline</div><div style="font-size: 14px; color: #A3AEC2 !important">no network inside the machine</div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section aria-labelledby="try-h" style="max-width: 1120px; margin: 0 auto; padding: 96px 24px 48px">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">Things to try</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">Things to try</p>
|
||||
<h2 id="try-h" style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: 40px; line-height: 1.15; max-width: 760px">StarshipOS speaks FORTH.</h2>
|
||||
<p style="margin: 0 0 40px; max-width: 680px; color: #C8D1DE">Type a line and press Enter. When the machine has done it, it answers ok.</p>
|
||||
<p style="margin: 0 0 40px; max-width: 680px; color: #C8D1DE !important">Type a line and press Enter. When the machine has done it, it answers ok.</p>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px">
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7">3 4 + .</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F">7 ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE">Numbers go on a stack; + adds the top two; . prints the result.</p>
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7 !important">3 4 + .</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F !important">7 ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE !important">Numbers go on a stack; + adds the top two; . prints the result.</p>
|
||||
</article>
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7">: SQUARE DUP * ;</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F">ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE">You have just taught the machine a new word, SQUARE.</p>
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7 !important">: SQUARE DUP * ;</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F !important">ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE !important">You have just taught the machine a new word, SQUARE.</p>
|
||||
</article>
|
||||
<article style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7">7 SQUARE .</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F">49 ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE">…and used it, as if it had always been there.</p>
|
||||
<article style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 28px">
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">You type</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #EEF2F7 !important">7 SQUARE .</p>
|
||||
<p style="margin: 0 0 4px; font-size: 13px; color: #A3AEC2 !important">It answers</p>
|
||||
<p style="margin: 0 0 16px; font-size: 20px; color: #F5891F !important">49 ok</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #C8D1DE !important">…and used it, as if it had always been there.</p>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 48px 24px">
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; border-top: 1px solid #22324D; padding-top: 48px">
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">A machine of your own</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Resumed at its prompt from one that booted, passed its 538 power-on self-tests and logged Zuse in — so you never wait for a boot.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">The latest green build</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Always the most recent build that booted on amd64, aarch64 and riscv64 and passed every acceptance check.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">A Zuse of its own</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Zuse is whoever holds the identity drive. Here it is a demo Zuse minted for this page alone — not anyone's real identity.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7">Gone when you go</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2">Close the page, or let 30 minutes pass, and the machine is stopped and discarded. The next visitor starts clean.</p></div>
|
||||
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; border-top: 1px solid #22324D !important; padding-top: 48px">
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">A machine of your own</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Resumed at its prompt from one that booted, passed its 538 power-on self-tests and logged Zuse in — so you never wait for a boot.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">The latest green build</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Always the most recent build that booted on amd64, aarch64 and riscv64 and passed every acceptance check.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">A Zuse of its own</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Zuse is whoever holds the identity drive. Here it is a demo Zuse minted for this page alone — not anyone's real identity.</p></div>
|
||||
<div><h3 style="margin: 0 0 8px; font-size: 16px; color: #EEF2F7 !important">Gone when you go</h3><p style="margin: 0; font-size: 14px; color: #A3AEC2 !important">Close the page, or let 30 minutes pass, and the machine is stopped and discarded. The next visitor starts clean.</p></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section style="max-width: 1120px; margin: 0 auto; padding: 48px 24px 96px">
|
||||
<div style="background: #111C30; border: 1px solid #22324D; border-radius: 6px; padding: 40px; display: flex; flex-wrap: wrap; gap: 40px; align-items: center">
|
||||
<div style="background: #111C30 !important; border: 1px solid #22324D !important; border-radius: 6px; padding: 40px; display: flex; flex-wrap: wrap; gap: 40px; align-items: center">
|
||||
<div style="flex: 999 1 480px; min-width: 0">
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F">A small server</p>
|
||||
<p style="margin: 0 0 12px; font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: #F5891F !important">A small server</p>
|
||||
<h2 style="margin: 0 0 16px; font-family: 'Exo 2', sans-serif; font-size: 32px; line-height: 1.2">Emulated, so a little slower.</h2>
|
||||
<p style="margin: 0; color: #C8D1DE">The demo runs in an emulator on a modest server: slower than StarshipOS on real hardware, and only a few machines at once. The real thing boots straight from firmware, with nothing beneath it.</p>
|
||||
<p style="margin: 0; color: #C8D1DE !important">The demo runs in an emulator on a modest server: slower than StarshipOS on real hardware, and only a few machines at once. The real thing boots straight from firmware, with nothing beneath it.</p>
|
||||
</div>
|
||||
<div style="flex: 1 1 220px; display: flex; flex-direction: column; gap: 12px">
|
||||
<a href="/bin/view/Main/" style="display: inline-block; padding: 14px 20px; background: #F5891F; color: #0A1222; font-weight: 700; text-decoration: none; border-radius: 4px; text-align: center">How it works</a>
|
||||
<a href="https://gitea.starshipos-f18.org/rajames/LithosAnanke" style="display: inline-block; padding: 14px 20px; border: 1px solid #34486A; color: #EEF2F7; text-decoration: none; border-radius: 4px; text-align: center">Read the source</a>
|
||||
<a href="/bin/view/Main/" style="display: inline-block; padding: 14px 20px; background: #F5891F !important; color: #0A1222 !important; font-weight: 700; text-decoration: none; border-radius: 4px; text-align: center">How it works</a>
|
||||
<a href="https://gitea.starshipos-f18.org/rajames/LithosAnanke" style="display: inline-block; padding: 14px 20px; border: 1px solid #34486A !important; color: #EEF2F7 !important; text-decoration: none; border-radius: 4px; text-align: center">Read the source</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer style="border-top: 1px solid #22324D">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2">
|
||||
<footer style="border-top: 1px solid #22324D !important">
|
||||
<div style="max-width: 1120px; margin: 0 auto; padding: 32px 24px; display: flex; flex-wrap: wrap; gap: 16px 32px; justify-content: space-between; font-size: 13px; color: #A3AEC2 !important">
|
||||
<span>© 2026 Robert Allan James · A Starship Foundation project (in formation)</span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Main/" style="color: #C8D1DE">Home</a><a href="/bin/view/Inquiries/" style="color: #C8D1DE">Inquiries</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE">starshipos-f18.org</a></span>
|
||||
<span style="display: flex; flex-wrap: wrap; gap: 24px"><a href="/bin/view/Main/" style="color: #C8D1DE !important">Home</a><a href="/bin/view/Inquiries/" style="color: #C8D1DE !important">Inquiries</a><a href="https://starshipos-f18.org/" style="color: #C8D1DE !important">starshipos-f18.org</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
+15
-4
@@ -11,13 +11,18 @@ one {{html}} block (which needs a page author with script rights). What changes
|
||||
- the two images become attachments of Main.WebHome (badge.jpg, captain-bob.jpg -- web-size copies
|
||||
of the canvas's uploads);
|
||||
- Try it: the drawn console becomes the real one, an iframe of try.starshipos-f18.com;
|
||||
- the forms, which have no server behind them, send by e-mail (mailto:);
|
||||
- the inquiry form posts to the .org's PublicInquiry, which files it under Inquiries there
|
||||
(admin-only, site/org/inquiries); the announcements form, which has no server, sends by e-mail;
|
||||
- a link the canvas left as a placeholder ([SSRN PAPER URL]) points at the .org until it is given.
|
||||
|
||||
install.sh puts the pages and the images on the wiki.
|
||||
"""
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
|
||||
import colorlock # noqa: E402 the design's colours over the wiki's high-contrast theme
|
||||
|
||||
ACCENT = "#F5891F"
|
||||
FONTS = ('<link rel="preconnect" href="https://fonts.googleapis.com">\n'
|
||||
@@ -69,14 +74,19 @@ def forms(html, page):
|
||||
'<button type="submit" style="min-height: 48px; padding: 0 24px')
|
||||
if page == "Inquiries":
|
||||
html = html.replace('<form aria-label="Inquiry form"',
|
||||
'<form action="mailto:info@starshipos.com?subject=StarshipOS%20inquiry" method="post" enctype="text/plain" aria-label="Inquiry form"')
|
||||
'<form action="https://starshipos-f18.org/bin/view/PublicInquiry/" method="post" aria-label="Inquiry form"')
|
||||
# a field people cannot see; a robot fills it, and PublicInquiry keeps nothing it sends
|
||||
html = html.replace('<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px">',
|
||||
'<div aria-hidden="true" style="position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden">'
|
||||
'<label for="q-website">Leave this empty</label><input id="q-website" name="website" type="text" tabindex="-1" autocomplete="off"></div>\n'
|
||||
'<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px">', 1)
|
||||
for i, n in (("q-name", "name"), ("q-email", "email"), ("q-org", "organization"), ("q-topic", "topic"),
|
||||
("q-msg", "message"), ("q-list", "announcements")):
|
||||
html = html.replace('id="%s"' % i, 'id="%s" name="%s"' % (i, n), 1)
|
||||
html = html.replace('<button type="button" style="min-height: 48px; padding: 0 28px',
|
||||
'<button type="submit" style="min-height: 48px; padding: 0 28px')
|
||||
html = html.replace("Replies usually within a few days.",
|
||||
"Opens your e-mail program. Replies usually within a few days.")
|
||||
"Replies usually within a few days.")
|
||||
return html
|
||||
|
||||
|
||||
@@ -86,7 +96,8 @@ if __name__ == "__main__":
|
||||
html = forms(body(open("canvas/%s.dc.html" % p).read()), p)
|
||||
if p == "TryIt":
|
||||
html = try_it(html)
|
||||
assert "{{" not in html and "[SSRN" not in html and ".dc.html" not in html and "_blob" not in html, p
|
||||
html = colorlock.lock(html, '<div style="background: #0A1222')
|
||||
assert "{{" not in html.replace(colorlock.STYLE, "") and "[SSRN" not in html and ".dc.html" not in html and "_blob" not in html, p
|
||||
with open("%s.WebHome.xwiki" % p, "w") as f:
|
||||
f.write('{{html clean="false"}}\n%s\n%s\n{{/html}}\n' % (FONTS, html))
|
||||
print("wrote", ", ".join("%s.WebHome.xwiki" % p for p in PAGES))
|
||||
|
||||
Reference in New Issue
Block a user