Introducing: spa, a Whinam browser for the Spartan Protocol
So far It is a pathetically primitive terminal viewer, but the interesting thing about it is its use of sigils, 4-letter persistent mnemonics for Spartan URLs. 4 alphanumeric (caps only, no 'O','I','0' or '1') characters provide 20 bits, or 1 million+ URLs, plenty for Spartan.
Sigils
Sigils are useful as site-local shortcuts, easily-remembered for often-used destinations, are easy to type, and form a basis for a bookmarking/logging database that helps you deal with interesting URLs.
Many browsers (especially text mode ones) provide a numeric shortcut for each URL. A sigil is just a couple of keystrokes more. Sigils are persistent (you can browse to a sigil now or next year), and the ones you use often will be memorized by osmosis.
I am not yet sure if sigils are a great idea, or a dumb one. If I like them, I will probably put together a Gemini requestor (I would have to deal with certificates, ugh).
Modularity
I am also experimenting with a modular environment. There is a separation between the network requestor, the URL database, the rendering engine and the (not yet implemented) scroller-pager environment.
Practical HorseWare
spa is built around the principles of Whinam software: an immutable log with indices. It is a work in progress, but if you are curious to play with a sigiled environment and see the handful of existing Spartan sites in your terminal, give it a shot. I will write more about the architecture of spa and other horseware in the Whinam folder.
A Taste of Spa
This is what it looks like (if your Gemini browser supports ANSI color) at this moment. Looking at `spartan://mozz.us`. You navigate by specifying a URL or a sigil (rendered in orange).
I plan to add one/two-digit page-local shortcuts, and 3-character user-chosen sigils for really special sites...
✀------------------------------------------------------------
spa spartan://moz.us
[93m spartan://mozz.us
[0m
/|
_______________)|..
<'______________<(,_|)
.((()))| )) << THIS. IS. SPARTAN:// >>
(======)| \
((( "_"()|_ \
'()))(_)/_/ ' )
.--/_\ /( /./
/'._.--\ .-(_/
/ / )\___:___)
( -.'.._ | /
\ \_\ ( | )
'. /\)_(_)|
'-| XX |
%%%%%%%%
/ %%%%%%%\
( /.-'%%%. \
/(.' %%\ :|
/ ,| % ) )
_|___) % (__|_
)___/ )___(
|x/ mrf\ >
|x) / '.
|x\ _(____''.__
--\ -\--
--\__|--
[33mRB4U[0m [92m(view this art in color)
[0m
[94;1m Content
[0m
Congrats! You've made it to the fabled D E E P N E T.
[33mSBS8[0m [92mUFO sightings
[0m
Air your grievances.
[33m87AB[0m [92msign the guestbook
[0m
Upload something and have it echoed back to you.
=: /echo echo service
[0m
View the specification.
[33mL8UJ[0m [92mspartan://spartan.mozz.us[0m
Verify your client's behavior.
[33mPRPC[0m [92mtext/gemini test file
[0m
Get plugged in.
[33m89QD[0m [92mspartan software list
[0m
[94;1m Local Users
[0m
[33mTPHR[0m [92m~mozz
[0m
[94;1m Into the Sparty-Verse
[0m
All of the spartan servers (that we know of)!
[33mRCV9[0m [92mspartan://mozz.us[0m
[33m2G7P[0m [92mspartan://alexschroeder.ch[0m
[33mYPMM[0m [92mspartan://tracciabi.li:3000[0m
[33mCHEP[0m [92mspartan://de1.hashbang.sh:3000[0m
[33mEH2P[0m [92mspartan://armen138.com[0m
[33mGYLK[0m [92mspartan://armen138.com:301[0m
[33mP5KY[0m [92mspartan://tilde.team[0m
[33mB2MD[0m [92mspartan://webdragon.mywire.org:1962[0m
email michael@mozz.us to get yours added to the list!
[36m> Our arrows will block out the sun.
[0m[36m> Then we will fight in the shade!
[0m
✀------------------------------------------------------------
Colors (and everything else, really) are provisional and will be fine-tuned (and made user-selectable) later. And yes, I am not handling the new =: links yet, as I am still contemplating what that means.