use lazy IO for certificate store and marks dir reading
[diohsc.git] / tutorial / diohsc-tutorial.txt
blobbda392ecf6e809786665a0352bde5039996169e6
1 %%% > # This is a demo of diohsc, a line-based command-oriented gemini client.
2 %%% > # Let's start with some basic navigation.
3 %%% > # Enter a gemini url to go there:
4 %%% > gemini.circumlunar.space
5 . >>> gemini://gemini.circumlunar.space/
6 Project Gemini
8 Overview
10 Gemini is a new internet protocol which:
12 * Is heavier than gopher
13 * Is lighter than the web
14 * Will not replace either
15 * Strives for maximum power to weight ratio
16 * Takes user privacy very seriously
18 Resources
20 [1] docs/ Gemini documentation
21 [2] software/ Gemini software
22 [3] servers/ Known Gemini servers
23 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
24 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
26 Web proxies
27                                                                                   --
28 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
29 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
31 Search engines
33 [8] gemini://gus.guru/ Gemini Universal Search engine
34 [9] gemini://houston.coder.town/ Houston search engine
36 Geminispace aggregators
38 [10] capcom/ CAPCOM
39 [11] gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk
41 Gemini mirrors of web resources
43 [12] gemini://gempaper.strangled.net/mirrorlist/ A list of mirrored services
45 Free Gemini hosting
47 [13] users/ Users with Gemini content on this server
48 %%% gemini.circumlunar.space/> # Enter the number of a link to follow it:
49 %%% gemini.circumlunar.space/> 1
50 . >>> gemini://gemini.circumlunar.space/docs/
51 Gemini protocol documentation
53 Core documents
55 [1] faq.gmi Project Gemini FAQ
56 [2] specification.gmi Protocol specification
57 [3] best-practices.gmi Best practices for Gemini implementers
59 Resources for beginners
61 [4] gemtext.gmi A quick introduction to "gemtext" markup
62 [5] cheatsheet.gmi Gemtext cheatsheet
63 [6] tls-tutorial.gmi A gentle, Gemini-centric guide to TLS certificates
64 %%% gemini.circumlunar.space/docs/> # GO back with <
65 %%% gemini.circumlunar.space/docs/> <
66 gemini://gemini.circumlunar.space/
67 %%% gemini.circumlunar.space/> # The page isn't shown again, but we can ask to see it:
68 %%% gemini.circumlunar.space/> page
69 Project Gemini
71 Overview
73 Gemini is a new internet protocol which:
75 * Is heavier than gopher
76 * Is lighter than the web
77 * Will not replace either
78 * Strives for maximum power to weight ratio
79 * Takes user privacy very seriously
81 Resources
83 [1] docs/ Gemini documentation
84 [2] software/ Gemini software
85 [3] servers/ Known Gemini servers
86 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
87 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
89 Web proxies
90                                                                                   --
91 %%% gemini.circumlunar.space/> # We can also get some useful info:
92 %%% gemini.circumlunar.space/> mime
93 "text/gemini"
94 %%% gemini.circumlunar.space/> uri
95 gemini://gemini.circumlunar.space/
96 %%% gemini.circumlunar.space/> links
97 * [1] docs/ Gemini documentation
98 [2] software/ Gemini software
99 [3] servers/ Known Gemini servers
100 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
101 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
102 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
103 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
104 [8] gemini://gus.guru/ Gemini Universal Search engine
105 [9] gemini://houston.coder.town/ Houston search engine
106 [10] capcom/ CAPCOM
107 [11] gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk
108 [12] gemini://gempaper.strangled.net/mirrorlist/ A list of mirrored services
109 [13] users/ Users with Gemini content on this server
110 %%% gemini.circumlunar.space/> There's no tab-completion for commands, but they can be shortened:
111 ! Unknown command "no". Type "help" for help.
112 %%% gemini.circumlunar.space/> l
113 * [1] docs/ Gemini documentation
114 [2] software/ Gemini software
115 [3] servers/ Known Gemini servers
116 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
117 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
118 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
119 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
120 [8] gemini://gus.guru/ Gemini Universal Search engine
121 [9] gemini://houston.coder.town/ Houston search engine
122 [10] capcom/ CAPCOM
123 [11] gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk
124 [12] gemini://gempaper.strangled.net/mirrorlist/ A list of mirrored services
125 [13] users/ Users with Gemini content on this server
126 %%% gemini.circumlunar.space/> # We can pipe the page through arbitrary shell commands:
127 %%% gemini.circumlunar.space/> | grep Gemini
128 # Project Gemini
129 Gemini is a new internet protocol which:
130 => docs/        Gemini documentation
131 => software/    Gemini software
132 => servers/     Known Gemini servers
133 => https://lists.orbitalfox.eu/listinfo/gemini  Gemini mailing list
134 => gemini://gemini.conman.org/test/torture/     Gemini client torture test
135 => https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed     Gemini-to-web proxy service
136 => https://proxy.vulpes.one/gemini/gemini.circumlunar.space     Another Gemini-to-web proxy service
137 => gemini://gus.guru/   Gemini Universal Search engine
138 ## Geminispace aggregators
139 ## Gemini mirrors of web resources
140 ## Free Gemini hosting
141 => users/       Users with Gemini content on this server
142 %%% gemini.circumlunar.space/> || grep Gemini
143 Project Gemini
144 Gemini is a new internet protocol which:
145 [1] docs/ Gemini documentation
146 [2] software/ Gemini software
147 [3] servers/ Known Gemini servers
148 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
149 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
150 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
151 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
152 [8] gemini://gus.guru/ Gemini Universal Search engine
153 Geminispace aggregators
154 Gemini mirrors of web resources
155 Free Gemini hosting
156 [13] users/ Users with Gemini content on this server
157 %%% gemini.circumlunar.space/> ||- grep Gemini
158 # Project Gemini
159 Gemini is a new internet protocol which:
160 [1] docs/ Gemini documentation
161 [2] software/ Gemini software
162 [3] servers/ Known Gemini servers
163 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
164 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
165 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
166 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
167 [8] gemini://gus.guru/ Gemini Universal Search engine
168 ## Geminispace aggregators
169 ## Gemini mirrors of web resources
170 ## Free Gemini hosting
171 [13] users/ Users with Gemini content on this server
172 %%% gemini.circumlunar.space/> # | pipes source, || pipes the rendered page, ||- strips ANSI
173 %%% gemini.circumlunar.space/> # lone "||" invokes $PAGER:
174 %%% gemini.circumlunar.space/> ||
175 %%% gemini.circumlunar.space/> # We can also pipe links through shell commands:
176 %%% gemini.circumlunar.space/> 1 || rot13
177 . >>> gemini://gemini.circumlunar.space/docs/
178 Trzvav cebgbpby qbphzragngvba
180 Pber qbphzragf
182 [1] snd.tzv Cebwrpg Trzvav SND
183 [2] fcrpvsvpngvba.tzv Cebgbpby fcrpvsvpngvba
184 [3] orfg-cenpgvprf.tzv Orfg cenpgvprf sbe Trzvav vzcyrzragref
186 Erfbheprf sbe ortvaaref
188 [4] trzgrkg.tzv N dhvpx vagebqhpgvba gb "trzgrkg" znexhc
189 [5] purngfurrg.tzv Trzgrkg purngfurrg
190 [6] gyf-ghgbevny.tzv N tragyr, Trzvav-pragevp thvqr gb GYF pregvsvpngrf
191 %%% gemini.circumlunar.space/> 1 ||- espeak --stdin --stdout | aplay
192 . >>> gemini://gemini.circumlunar.space/docs/
193 Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
194 ^C! Interrupted.
195 %%% gemini.circumlunar.space/> Aborted by signal Interrupt...
196 aplay: pcm_write:2059: write error: Interrupted system call
198 %%% gemini.circumlunar.space/> # (That was reading the page to me until I ^C'd)
199 %%% gemini.circumlunar.space/> # In fact, *any* diohsc command can take a link:
200 %%% gemini.circumlunar.space/> 1 mime
201 . >>> gemini://gemini.circumlunar.space/docs/
202 "text/gemini"
203 %%% gemini.circumlunar.space/> 2 links
204 . >>> gemini://gemini.circumlunar.space/software/
205 [1] https://git.sr.ht/~yotam/go-gemini-server A Gemini server written in Go
206 [2] gemini://gem.limpet.net/agate/ Agate, a Gemini server written in Rust
207 [3] https://github.com/mk270/blizanci Blizanci, a Gemini server writen in Erlang
208 [4] https://tildegit.org/solderpunk/gegobi GeGoBi, a Gemini server for Gemini-Gopher bi-hosting
209 [5] https://github.com/jovoro/geminid/ Geminid, a Gemini server written in C
210 [6] gemini://80h.dev/projects/gemserv/ Gemserve, a Gemini server written in Rust
211 [7] https://github.com/jfmcbrayer/germinal Germinal, a Gemini server written in Common Lisp
212 [8] https://github.com/spc476/GLV-1.12556 GLV-1.12556, a Gemini server (in fact, the first!) written in Lua
213 [9] https://github.com/michael-lazar/jetforce Jetforce, a Gemini server written in Python
214 [10] https://tildegit.org/solderpunk/molly-brown The Unsinkable Molly Brown, a Gemini server written in Go
215 [11] https://github.com/jackdoe/net-gemini Net-Gemini, a Gemini server written in Go
216 [12] https://git.sr.ht/~julienxx/pollux Pollux, a Gemini server written in Rust
217 [13] https://gitlab.com/lambdatronic/space-age Space Age, a Gemini server written in Clojure
218 [14] https://tildegit.org/solderpunk/gemini-demo-1 A bare-bones but usable Gemini client in 100 lines of Python
219 [15] https://tildegit.org/solderpunk/gemini-demo-2 A bare-bones but usable Gemini client in 100 lines of Lua
220 [16] https://tildegit.org/solderpunk/gemini-demo-3 A bare-bones but usable Gemini client almost 100 lines of Go
221 [17] https://paste.sr.ht/~jakob/a31b19708779e6b797fb9f00694be27f A Gemini client library in Guile Scheme
222 [18] https://framagit.org/waweic/gemini-client A Gemini client for Android
223 [19] https://git.sr.ht/~yotam/go-gemini A Gemini client library in Go             --
224 %%% gemini.circumlunar.space/> # Or even multiple links:
225 %%% gemini.circumlunar.space/> 2-4 uri
226 gemini://gemini.circumlunar.space/software/
227 gemini://gemini.circumlunar.space/servers/
228 https://lists.orbitalfox.eu/listinfo/gemini
229 %%% gemini.circumlunar.space/> 2-4 add
230 %%% 3~ gemini.circumlunar.space/> # The "add" command adds the targets to the "queue"
231 %%% 3~ gemini.circumlunar.space/> # "inventory" shows the queue (and other things):
232 %%% 3~ gemini.circumlunar.space/> inv
233 ~1 gemini://gemini.circumlunar.space/software/
234 ~2 gemini://gemini.circumlunar.space/servers/
235 ~3 https://lists.orbitalfox.eu/listinfo/gemini
237 >1 gemini://gemini.circumlunar.space/docs/
238 %%% 3~ gemini.circumlunar.space/> 1a
239 %%% 4~ gemini.circumlunar.space/> i
240 ~1 gemini://gemini.circumlunar.space/software/
241 ~2 gemini://gemini.circumlunar.space/servers/
242 ~3 https://lists.orbitalfox.eu/listinfo/gemini
243 ~4 gemini://gemini.circumlunar.space/docs/
245 >1 gemini://gemini.circumlunar.space/docs/
246 %%% 4~ gemini.circumlunar.space/> # The queue entries are denoted ~1 etc, and we can refer to them like that:
247 %%% 4~ gemini.circumlunar.space/> ~2 uri
248 gemini://gemini.circumlunar.space/servers/
249 %%% 4~ gemini.circumlunar.space/> # ~ is short for ~1, and ~~ means ~2, etc
250 %%% 4~ gemini.circumlunar.space/> ~
251 . >>> gemini://gemini.circumlunar.space/software/
252 Gemini software
254 Here is a list of all known Gemini-related software. If you've written some
255 Gemini software which is not listed here, please contact me at
256 solderpunk@posteo.net.
258 Servers
260 [1] https://git.sr.ht/~yotam/go-gemini-server A Gemini server written in Go
261 [2] gemini://gem.limpet.net/agate/ Agate, a Gemini server written in Rust
262 [3] https://github.com/mk270/blizanci Blizanci, a Gemini server writen in Erlang
263 [4] https://tildegit.org/solderpunk/gegobi GeGoBi, a Gemini server for Gemini-Gopher bi-hosting
264 [5] https://github.com/jovoro/geminid/ Geminid, a Gemini server written in C
265 [6] gemini://80h.dev/projects/gemserv/ Gemserve, a Gemini server written in Rust
266 [7] https://github.com/jfmcbrayer/germinal Germinal, a Gemini server written in Common Lisp
267 [8] https://github.com/spc476/GLV-1.12556 GLV-1.12556, a Gemini server (in fact, the first!) written in Lua
268 [9] https://github.com/michael-lazar/jetforce Jetforce, a Gemini server written in Python
269 [10] https://tildegit.org/solderpunk/molly-brown The Unsinkable Molly Brown, a Gemini server written in Go
270 [11] https://github.com/jackdoe/net-gemini Net-Gemini, a Gemini server written in Go
271 [12] https://git.sr.ht/~julienxx/pollux Pollux, a Gemini server written in Rust
272 [13] https://gitlab.com/lambdatronic/space-age Space Age, a Gemini server written in Clojure
273                                                                                   --
274 Clients
276 [14] https://tildegit.org/solderpunk/gemini-demo-1 A bare-bones but usable Gemini client in 100 lines of Python
277 [15] https://tildegit.org/solderpunk/gemini-demo-2 A bare-bones but usable Gemini client in 100 lines of Lua
278 [16] https://tildegit.org/solderpunk/gemini-demo-3 A bare-bones but usable Gemini client almost 100 lines of Go
279 [17] https://paste.sr.ht/~jakob/a31b19708779e6b797fb9f00694be27f A Gemini client library in Guile Scheme
280 [18] https://framagit.org/waweic/gemini-client A Gemini client for Android
281 [19] https://git.sr.ht/~yotam/go-gemini A Gemini client library in Go
282 [20] https://github.com/makeworld-the-better-one/go-gemini A more recent fork of the above library
283 [21] https://github.com/Koshroy/gemclient A rich Gemini client library in Nim
284 [22] https://github.com/RangerMauve/agregore-browser Agregore, a "distributed web" browser supporting Gemini
285 [23] https://github.com/makeworld-the-better-one/amfora Amfora, a very feature-rich Germini client for the terminal
286 [24] https://git.sr.ht/~julienxx/asuka Asuka, a ncurses-based Gemini client
287 [25] https://tildegit.org/solderpunk/AV-98 AV-98, an experimental Gemini client derived from VF-1
288 [26] http://bombadillo.colorfield.space/ Bombadillo, a multi-protocol client handling Gemini since 2.0.0
289 [27] https://git.sr.ht/~julienxx/castor Castor, A graphical Gemini client written in Rust
290 [28] gemini://gemini.thegonz.net/diohsc/ Diohsc, a terminal Gemini client written in Haskell  --
291 [29] https://gitlab.com/baschdel/dragonstone Dragonstone, a simple GTK Gopher/Gemini client written in Vala
292 [30] gopher://thelambdalab.xyz/1/projects/elpher/ elpher, a emacs-based Gopher and Gemini client
293 [31] https://git.sr.ht/~soapdog/fafi-browser Fafi, a graphical, tabbed client written in Racket
294 [32] https://github.com/pellertson/gacme gacme, a Gemini client for plan9's Acme
295 [33] https://github.com/aaronjanse/gcat gcat, a `cat`-like Gemini client
296 [34] https://github.com/makeworld-the-better-one/gemget/ Gemget, a command-line Gemini downloader ala wget
297 [35] https://www.marmaladefoo.com/pages/geminaut GemiNaut, a user-friendly GUI client for MS Windows
298 [36] https://github.com/MasterQ32/gurl/ gurl, a `curl`-like Gemini client
299 [37] https://git.carcosa.net/jmcbray/gusmobile/ Gusmobile, a Gemini client library in Python
300 [38] https://github.com/MasterQ32/kristall Kristall, a graphical Gemini client using Qt
301 [39] gemini://cetacean.club/maj/majc.gmi majc, a curses client for Gemini written in Rust
302 [40] https://sr.ht/~nhanb/mcross/ McRoss, a graphical Gemini client written in Python/Tkinter
303 [41] https://sr.ht/~admicos/moonlander Moonlander, a very fancy graphical Gemini client written in Rust
304 [42] https://github.com/jansc/ncgopher ncgopher, a Gopher and Gemini client written in Rust
305 [43] https://rhapsode.adrian.geek.nz/ Rhapsode, an "auditory web browser" which supports Gemini
306 [44] https://github.com/InvisibleUp/twinpeaks Twin Peaks, a graphical Gemini client written in C#
307 [45] https://www.autistici.org/interzona/tinmop.html Tinmop, a distraction free terminal client for Gemini (and Pleroma!)
308 [46] https://gitgud.io/sathariel/zain Zain, a graphical Gemini client written in Tcl/Tk
310 Browser plugins
311                                                                                   --
312 %%% 3~ gemini.circuml..pace/software/> inv
313 ~1 gemini://gemini.circumlunar.space/servers/
314 ~2 https://lists.orbitalfox.eu/listinfo/gemini
315 ~3 gemini://gemini.circumlunar.space/docs/
317 <1 gemini://gemini.circumlunar.space/
318 %%% 3~ gemini.circuml..pace/software/> # Once you go to a queue item, it's deleted from the queue
319 %%% 3~ gemini.circuml..pace/software/> # "add 0" adds items to the *start* of the queue:
320 %%% 3~ gemini.circuml..pace/software/> ||grep diohsc
321 [28] gemini://gemini.thegonz.net/diohsc/ Diohsc, a terminal Gemini client written in Haskell
322 %%% 3~ gemini.circuml..pace/software/> 28a0
323 %%% 4~ gemini.circuml..pace/software/> i
324 ~1 gemini://gemini.thegonz.net/diohsc/
325 ~2 gemini://gemini.circumlunar.space/servers/
326 ~3 https://lists.orbitalfox.eu/listinfo/gemini
327 ~4 gemini://gemini.circumlunar.space/docs/
329 <1 gemini://gemini.circumlunar.space/
330 %%% 4~ gemini.circuml..pace/software/> ~
331 . >>> gemini://gemini.thegonz.net/diohsc/
332 . +-----[X509]------+
333 . |      . .o o     |
334 . |   + . o. = .    |
335 . |  . +..o . . .   |
336 . | .    o =   .    |
337 . |  .   o=S. .     |
338 . | .  .*... . ..   |
339 . |  ..*.+ ....o o  |
340 . | .o+oo o   +.= . |
341 . |...o.oo..   ==Eo |
342 . +----[SHA256]-----+
343 . Expires 2022-05-23
344 Diohsc: Denotationally Intricate Obedient Haskell Smallnet Client
347 [1] README.gmi README.gmi
349 [2] https://repo.or.cz/diohsc.git source repo
351 [3] diohsc-0.1.0-src.tgz source tgz
353 Install
355 ` $ git clone https://repo.or.cz/diohsc.git
356 ` $ cd diohsc
357 ` $ cabal update && cabal install
358 ` $ ~/.cabal/bin/diohsc
360 Test-drive
362 ` ssh diohsc@gemini.thegonz.net
363 ` password: gemini
364 %%% 3~ gemini.thegonz.net/diohsc/> # Remember, < is the page we got here from:
365 %%% 3~ gemini.thegonz.net/diohsc/> < uri
366 gemini://gemini.circumlunar.space/software/
367 %%% 3~ gemini.thegonz.net/diohsc/> # We can refer to its links:
368 %%% 3~ gemini.thegonz.net/diohsc/> <_37 uri
369 https://git.carcosa.net/jmcbray/gusmobile/
370 %%% 3~ gemini.thegonz.net/diohsc/> # <] and <[ refer to the next/prev links:
371 %%% 3~ gemini.thegonz.net/diohsc/> <] uri
372 https://gitlab.com/baschdel/dragonstone
373 %%% 3~ gemini.thegonz.net/diohsc/> # This is an https link, but I have duckling proxy running:
374 %%% 3~ gemini.thegonz.net/diohsc/> <]
375 . >>> https://gitlab.com/baschdel/dragonstone
376 . | html2gmi -me
377 Skip to content
379 GitLab [1]
381 * Projects [2]
382 * Groups [3]
383 * Snippets [4]
384 * Help [5]
388 * Loading...
390 * [6]
391 * Help [7]
393 [1] /
394 [2] /explore Projects
396 [3] /explore/groups Groups
398 [4] /explore/snippets Snippets
399                                                                                   --
400 %%% 3~ https://gitlab..el/dragonstone> # Yuck, gitlab pages are ugly...
401 %%% 3~ https://gitlab..el/dragonstone> < uri
402 gemini://gemini.circumlunar.space/software/
403 %%% 3~ https://gitlab..el/dragonstone> <] uri
404 gopher://thelambdalab.xyz/1/projects/elpher/
405 %%% 3~ https://gitlab..el/dragonstone> <_29 uri
406 https://gitlab.com/baschdel/dragonstone
407 %%% 3~ https://gitlab..el/dragonstone> <_30 uri
408 gopher://thelambdalab.xyz/1/projects/elpher/
409 %%% 3~ https://gitlab..el/dragonstone> # We jumped here from the diohsc page, rather than following a link,
410 %%% 3~ https://gitlab..el/dragonstone> # so < isn't the diohsc page. But we can jump back with '':
411 %%% 3~ https://gitlab..el/dragonstone> '' u
412 gemini://gemini.thegonz.net/diohsc/
413 %%% 3~ https://gitlab..el/dragonstone> ''
414 gemini://gemini.thegonz.net/diohsc/
415 %%% 3~ gemini.thegonz.net/diohsc/> <] u
416 https://gitlab.com/baschdel/dragonstone
417 %%% 3~ gemini.thegonz.net/diohsc/> <} u
418 gopher://thelambdalab.xyz/1/projects/elpher/
419 %%% 3~ gemini.thegonz.net/diohsc/> # } means the next *unvisited* link, so skips past dragonstone
420 %%% 3~ gemini.thegonz.net/diohsc/> <_26-32 uri
421 http://bombadillo.colorfield.space/
422 https://git.sr.ht/~julienxx/castor
423 gemini://gemini.thegonz.net/diohsc/
424 https://gitlab.com/baschdel/dragonstone
425 gopher://thelambdalab.xyz/1/projects/elpher/
426 https://git.sr.ht/~soapdog/fafi-browser
427 https://github.com/pellertson/gacme
428 %%% 3~ gemini.thegonz.net/diohsc/> # We can also use } from here to mean the first unvisited link:
429 %%% 3~ gemini.thegonz.net/diohsc/> l
430 [1] README.gmi README.gmi
431 [2] https://repo.or.cz/diohsc.git source repo
432 [3] diohsc-0.1.0-src.tgz source tgz
433 %%% 3~ gemini.thegonz.net/diohsc/> }|head
434 . >>> gemini://gemini.thegonz.net/diohsc/README.gmi
435 # Diohsc: Denotationally Intricate Obedient Haskell Smallnet Client
437 diohsc [URI]
439 ## Features
441 * Simple line-based command-response terminal user interface with ANSI colour.
442 * Terse but combinatorially expressive command language.
443 * Navigational aids: history, marks, queue.
444 * Facilities to invoke external commands and use per-scheme proxies.
445 %%% 3~ gemini.thegonz.net/diohsc/> # Let's go back now.
446 %%% 3~ gemini.thegonz.net/diohsc/> i
447 '' https://gitlab.com/baschdel/dragonstone
449 ~1 gemini://gemini.circumlunar.space/servers/
450 ~2 https://lists.orbitalfox.eu/listinfo/gemini
451 ~3 gemini://gemini.circumlunar.space/docs/
453 <1 gemini://gemini.circumlunar.space/software/
454 <2 gemini://gemini.circumlunar.space/
455 %%% 3~ gemini.thegonz.net/diohsc/> <<
456 gemini://gemini.circumlunar.space/
457 %%% 3~ gemini.circumlunar.space/> # We can mark pages with friendly names:
458 %%% 3~ gemini.circumlunar.space/> mark gemhome
459 %%% 3~ gemini.circumlunar.space/> 'gemhome uri
460 gemini://gemini.circumlunar.space/
461 %%% 3~ gemini.circumlunar.space/> 'g u
462 gemini://gemini.circumlunar.space/
463 %%% 3~ gemini.circumlunar.space/> l
464 [1] docs/ Gemini documentation
465 * [2] software/ Gemini software
466 [3] servers/ Known Gemini servers
467 [4] https://lists.orbitalfox.eu/listinfo/gemini Gemini mailing list
468 [5] gemini://gemini.conman.org/test/torture/ Gemini client torture test
469 [6] https://portal.mozz.us/?url=gemini%3A%2F%2Fgemini.circumlunar.space%2F&fmt=fixed Gemini-to-web proxy service
470 [7] https://proxy.vulpes.one/gemini/gemini.circumlunar.space Another Gemini-to-web proxy service
471 [8] gemini://gus.guru/ Gemini Universal Search engine
472 [9] gemini://houston.coder.town/ Houston search engine
473 [10] capcom/ CAPCOM
474 [11] gemini://rawtext.club/~sloum/spacewalk.gmi Spacewalk
475 [12] gemini://gempaper.strangled.net/mirrorlist/ A list of mirrored services
476 [13] users/ Users with Gemini content on this server
477 %%% 3~ gemini.circumlunar.space/> 8 m gus
478 %%% 3~ gemini.circumlunar.space/> # Marks are saved as files in ~/.diohsc/marks/
479 %%% 3~ gemini.circumlunar.space/> mark
480 'gemhome         gemini://gemini.circumlunar.space/
481 'gus             gemini://gus.guru/
482 %%% 3~ gemini.circumlunar.space/> 'gu
483 . >>> gemini://gus.guru/
484 . +-----[X509]------+
485 . |    .o+++====+=+ |
486 . |     +++.*% .*E  |
487 . |    . Bo+O =.o . |
488 . |     = =o B .    |
489 . |    . = S+       |
490 . |     .           |
491 . |                 |
492 . |                 |
493 . |                 |
494 . +----[SHA256]-----+
495 . Expires 2025-07-20
496 GUS - Gemini Universal Search
498 [1] . Home
499 [2] search Search GUS
500 [3] backlinks Query backlinks
502 Geminispace Data
504 [4] statistics Geminispace Statistics
505 [5] known-hosts Known Gemini Hosts
506 [6] known-feeds Known Gemini Feeds
507 [7] newest-hosts Newest Gemini hosts
508 [8] newest-pages Newest Gemini pages
510 Help and Documentation
512 [9] about About GUS
513 [10] news GUS News
514 [11] gemini://gemini.circumlunar.space/ Gemini Project information
516 [12] documentation/searching Documentation: searching
517 [13] documentation/indexing Documentation: indexing
518 [14] documentation/backlinks Documentation: backlinks                             --
519 %%% 3~ gus.guru/> 2
520 . >>> gemini://gus.guru/search
521 Search query > aoeu
522 . >>> gemini://gus.guru/search?aoeu
523 GUS - Gemini Universal Search
525 [1] / Home
526 [2] . Search GUS
527 [3] backlinks Query backlinks
529 Search
530 [4] v/search/1?aoeu Enter verbose mode
532 "aoeu"
534 [5] gemini://chat.mozz.us/history chat.mozz.us/history (text/plain, 7K)
535 * ...T15:01:03Z] <aoeu> it'll be interesting to see how many gopherites make the
536   jump, so far it seems many are sticking...
538 [6] gemini://thelambdalab.xyz/microbotany/directory.gmi thelambdalab.xyz/microbotany/directory.gmi (text/gemini, 993B)
540 Page 1 of 1 (2 results)
542 > "Some people think this is paranoia, but it isn't. Paranoids only think
543 > everyone is out to get them. Wizards know it." --- Terry Pratchett
544                                                                                   --
545 %%% 3~ gus.guru/search?aoeu> # Relative uris are handy sometimes:
546 %%% 3~ gus.guru/search?aoeu> ?another\ query
547 . >>> gemini://gus.guru/search?another%20query
548 GUS - Gemini Universal Search
550 [1] / Home
551 [2] . Search GUS
552 [3] backlinks Query backlinks
554 Search
555 [4] v/search/1?another%20query Enter verbose mode
557 "another query"
559 [5] gemini://yam655.com/p/another_day-s_commute/ yam655.com/p/another_day-s_commute/ (text/gemini, 2K)
561 [6] gemini://tilde.team/~supernova/blog/another-ifixit-repair.gmi tilde.team/~supernova/blog/another-ifixit-repair.gmi (text/gemini, 368B)
562 * ...Another iFixit Repair I just replaced the battery on my old Motorola G4
563   Plus using a kit from ifixit.com. I am always impressed with the quality of
564   these kits, it came with all the tools needed (plus extra...
566 [7] gemini://tilde.team/~supernova/blog/another-ifixit-repair.md tilde.team/~supernova/blog/another-ifixit-repair.md (text/markdown, 361B)
567 * ...Another iFixit Repair I just replaced the battery on my old Motorola G4
568   Plus using a kit from ifixit.com. I am always impressed with the quality of     --
569 %%% 3~ gus.guru/searc..nother%20query> . uri
570 gemini://gus.guru/
571 %%% 3~ gus.guru/searc..nother%20query> /foo uri
572 gemini://gus.guru/foo
573 %%% 3~ gus.guru/searc..nother%20query> 'gem/software uri
574 gemini://gemini.circumlunar.space/software
575 %%% 3~ gus.guru/searc..nother%20query> # OK, now let's play with non-text mimetypes:
576 %%% 3~ gus.guru/searc..nother%20query> /search mark gs
577 %%% 3~ gus.guru/searc..nother%20query> 'gs?content_type:audio
578 . >>> gemini://gus.guru/search?content_type%3Aaudio
579 GUS - Gemini Universal Search
581 [1] / Home
582 [2] . Search GUS
583 [3] backlinks Query backlinks
585 Search
586 [4] v/search/1?content_type%3Aaudio Enter verbose mode
588 "content_type:audio"
590 [5] gemini://envs.net/~lel/test.mp3 envs.net/~lel/test.mp3 (audio/mpeg, 434K)
592 [6] gemini://gemini.circumlunar.space/users/kaoD/my-music/kaoD - Draman160.mp3 gemini.circumlunar.space/users/kaoD/my-music/kaoD - Draman160.mp3 (audio/mpeg, 9M)
594 [7] gemini://gemini.circumlunar.space/users/kaoD/my-music/kaoD - Draman160.ogg gemini.circumlunar.space/users/kaoD/my-music/kaoD - Draman160.ogg (audio/ogg, 8M)
596 [8] gemini://gemini.circumlunar.space/users/kaoD/my-music/kaoD - Reduce Map Fold Recur (WIP).mp3 gemini.circumlunar.space/users/kaoD/my-music/kaoD - Reduce Map Fold Recur (WIP).mp3 (audio/mpeg, 5M)
597                                                                                   --
598 %%% 3~ gus.guru/searc..t_type%3Aaudio> # We can stream audio by piping it to e.g. mpv - :
599 %%% 3~ gus.guru/searc..t_type%3Aaudio> 5|mpv -
600 . >>> gemini://envs.net/~lel/test.mp3
601 [file] Reading from stdin...
602  (+) Audio --aid=1 (mp3 2ch 44100Hz)
603 AO: [alsa] 48000Hz stereo 2ch float
604 A: 00:00:02 / 00:00:27 (8%) Cache: 25s/741KB
607 Exiting... (Quit)
608 %%% 3~ gus.guru/searc..t_type%3Aaudio> # We can also save a file:
609 %%% 3~ gus.guru/searc..t_type%3Aaudio> 5 save
610 . >>> gemini://envs.net/~lel/test.mp3
611 Overwrite "/home/martin/.diohsc/saves/test.mp3"? [y/N]
612 %%% 3~ gus.guru/searc..t_type%3Aaudio> 6-7 save
613 . >>> gemini://gemini.circumlunar.space/users/kaoD/my-music/kaoD
614 ! Server returns failure: 51 Not found!
615 . >>> gemini://gemini.circumlunar.space/users/kaoD/my-music/kaoD
616 ! Server returns failure: 51 Not found!
617 %%% 3~ gus.guru/searc..t_type%3Aaudio> # fine...
618 %%% 3~ gus.guru/searc..t_type%3Aaudio> # We can also download a file to a temp file and run a command:
619 %%% 3~ gus.guru/searc..t_type%3Aaudio> 5 ! mplayer
620 . >>> gemini://envs.net/~lel/test.mp3
621 Run following shell command?: mplayer /home/martin/.diohsc/runtmp18001-0 [y/N]
622 MPlayer 1.3.0-8.2.0 (C) 2000-2016 MPlayer Team
624 Playing /home/martin/.diohsc/runtmp18001-0.
625 libavformat version 58.29.100 (external)
626 Audio only file format detected.
627 Load subtitles in /home/martin/.diohsc/
628 ==========================================================================
629 Forced audio codec: vorbis
630 Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
631 AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
632 Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
633 ==========================================================================
634 AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
635 Video: no video
636 Starting playback...
637 A:   1.3 (01.3) of 27.0 (27.0)  4.2%
639 Exiting... (Quit)
640 %%% 3~ gus.guru/searc..t_type%3Aaudio> # how about images
641 %%% 3~ gus.guru/searc..t_type%3Aaudio> 'gs?content_type:image
642 . >>> gemini://gus.guru/search?content_type%3Aimage
643 GUS - Gemini Universal Search
645 [1] / Home
646 [2] . Search GUS
647 [3] backlinks Query backlinks
649 Search
650 [4] v/search/1?content_type%3Aimage Enter verbose mode
652 "content_type:image"
654 [5] gemini://acidic.website/vega.jpg acidic.website/vega.jpg (image/jpeg, 148K)
656 [6] gemini://admin.flounder.online/tree.jpg admin.flounder.online/tree.jpg (image/jpeg, 30K)
658 [7] gemini://adny.flounder.online/cave.png adny.flounder.online/cave.png (image/png, 27K)
660 [8] gemini://alex.flounder.online/car2.jpg alex.flounder.online/car2.jpg (image/jpeg, 31K)
662 [9] gemini://alex.flounder.online/clover.jpg alex.flounder.online/clover.jpg (image/jpeg, 31K)
664 [10] gemini://alex.flounder.online/dither.png alex.flounder.online/dither.png (image/png, 31K)
665                                                                                   --
666 %%% 3~ gus.guru/searc..t_type%3Aimage> 6
667 . >>> gemini://admin.flounder.online/tree.jpg
668 . | echo '```' && jp2a --colors - && echo '```'
669 ` ,,,,.,...','..;lc;:;,',.,,..,:c''',:,:,,..;;;:cc,;lc:l;';';..',''......'....'.
670 ` ''.,,;,',';c,,:;,,:;,,;.,;',l;'.':;,:;,;,',:;:c:;;::llc;:cc'.'.'............'.
671 ` ;',;','',:c,,,''c;';:,;:c:cc,;;:;,::c::..,::l:,,,'.,;;;:c:cl;,'...'...... ...'
672 ` ::c:,.'';;:;;,,:,,.;lcc::o;;:;;:;;c,;::,;;:,:c;;;;;:;,.';.,l,c:::;'.,,... ...'
673 ` :;;c,;;''',,';,,,.,;:;,;,c'.:l:::o::::l::;,;;,;;:,;,;;''. .,,:;:lcc:;l:. .....
674 ` ::,';:::c',';'',,,';,,,:;:c;:::llll::o:;;,,,;:;,:c:c::,:....':c;cl:;c:;. ....'
675 ` ,,',;;;.;::;''.';,,'','':lc;c;cccc:;;:c:c;;;:',cc:clc:::::,.',:;:;:::,;;,.....
676 ` :;::;,..,':,:c,:c:;,,;,.,;,co::c,;:;,',;:;,,':,;cl:;,:;',,...,::,';,'llc;'....
677 ` ;c:;,','',;:lc:kd:,'.'...,:;;;'',;;';:c,;::l;,cl:oc:;':;;;,.':c:',cl;;:;;,,..'
678 ` :c;..',l;:c:,;:l:,:c:;'';cl;,.,;,;c:c::dc;l:;lllolc:;;::;c:;;;,..',,;;'lc,,'..
679 ` ';;,..,:,;c,'..',:c:c;;c:lo,.,;.,c,;;;;oooo:::cocc:cllll:;'.;:;'...,,;;:cc':c,
680 ` ,;::'.....,...,;;,;;,::;,x:,'',;,:;:;,l:llll;,,:;:cxxcolc,;;:;lo,;,:,;:lcl;:c,
681 ` ;;'''. .........''::,,',;c,::c:.';;';.',;;l',,;';lll:;:lc;,;cooc::;:c:dxoc;;;;
682 ` ,'.:c'. ......';c'.':clo,,;,';,...',:.';;c,.','',;;,c',dx:cc,:ccc;;clcc;:;c::;
683 ` l:;cl,. ....';,;;,'..,,'...,''.''.';'.,c:::,.'......',;l:;:::,::l::,;:;''''';.
684 ` ;:'',,.   .......;:c';c;;,.,....,'.. ...,;o;....  .'.,,.;;:.:;.lo;',,,'.......
685 `  ..:c:''..   .,,'..';:c:,,..'..'',......';:;''....';:,..:llc::,:lc;:;;:..';;,;
686 `   .:l;:;;,,.. .;;'..'ccl:c,;;',,''.,clccllolllc;:c:::cclddoc:cc::::cccc'.,cccc
687 ` ....;;,..'..  .:cc,',;',:cclol,;:cloddollol:;;:cc:;,cllc;clloo::::;;;;,',;;;;;
688 ` .....',. ...  ;lcllc;:,:oolooolccclodoloool;,,,,,,'''';;,;;';,,;,;,......,....
689 ` .. .,,.  ....:llcooocllocllodxxxdxxdddlolcc:cc::::;'..''..'',;,,..'..'...c....
690 ` :ccloc.  ..'oxxxxxxdxxxdxd:oddkxxxxxxdddddddool:;;,,,'..................,:,''.
691 ` ,;c;;.    .lddoooooloddodool:,cldlc::::ccloooooddoclc::,:::;::ccc:;:;,,,,;;,;,  --
692 ` c:;;c'.  .;,'.......',;:;;;;.';:o;,''''...',;;,,,,,,,;:cclc:ccooolllllocccc::c
693 ` ;:;.':' ..'.....'..''..,'.,'..'','';::;'....,;::',;;:;,,;;c:;;;;:lllooooollccc
694 ` ,'.,,ll''...'.....,,........',,.'..''..''''''''',;;::;:,':llllolcloddoooodoooo
695 ` ,;;;codl'.'................';,.....',.........','.',,:cclc::::;;;::clllolloool
696 ` ;;cccldc:....'.......,;;',,,'...,;;,::,;;,'..;,;,';,;:clollllol:ccloooolllllll
697 ` ::llcllcc'.',;;'.......'''.'.'......',;:,:;'',:::cllooolooolloooooollolollllll
698 ` dodoolllll:',;;;:,'''......',;;.....:;,,,coooc:,,,;:l:llolllllcccclcccclllllll
699 ` oollollodoollccllcc:,;,.';,,:ollclc:cc;:,;llllolooll;,,:lolllcllllllccclcccclc
700 ` oloolllolccollcclloccoc::;c:::cl::coollocccllcoloooolllcc::c:cllllccclcccccclc
701 ` cccc:::cccclllcldlccclol:;;:clllcllccclllcccccccclccc:c:ccllclllccc:cccc:cccc:
702 ` lllclllllllllllllcolllclddllocccllcclclccccc::c:;::cl:cccccccccccclccccccccccc
703 ` cloclllcllcclcolclllclllllccodlcc:c::ccccc::ccc::ccc:c::cllcllccl:ccccccclclcc
704 ` ccc:llllllcllcclcllll:c::cclcccllccccloll::cllcllc:cccc:ccccccccc::cccclclcccc
705 ` olldkllolcloolllllollcclcccccc:;::::cccccc::cc:::::::::ccccccccc:cclcccccccccc
706 ` oooodolllolllllllllllccccclllccc:::clcc::cllc::cc::;:c::cc:::cccccccclc::cclc:
707 ` clllllllolccccccc::::cc::clllcclcllcccccccllccccc:cc:cc::;;::::ccc:cclc:::;;;;
708 %%% 3~ admin.flounder.online/tree.jpg> # This ascii preview is using a pipeline configured as a "geminator"
709 %%% 3~ admin.flounder.online/tree.jpg> # see diohscrc.sample in the source distro for info on that
710 %%% 3~ admin.flounder.online/tree.jpg> <
711 gemini://gus.guru/search?content_type%3Aimage
712 %%% 3~ gus.guru/searc..t_type%3Aimage> l
713 [1] / Home
714 [2] . Search GUS
715 [3] backlinks Query backlinks
716 [4] v/search/1?content_type%3Aimage Enter verbose mode
717 [5] gemini://acidic.website/vega.jpg acidic.website/vega.jpg (image/jpeg, 148K)
718 * [6] gemini://admin.flounder.online/tree.jpg admin.flounder.online/tree.jpg (image/jpeg, 30K)
719 [7] gemini://adny.flounder.online/cave.png adny.flounder.online/cave.png (image/png, 27K)
720 [8] gemini://alex.flounder.online/car2.jpg alex.flounder.online/car2.jpg (image/jpeg, 31K)
721 [9] gemini://alex.flounder.online/clover.jpg alex.flounder.online/clover.jpg (image/jpeg, 31K)
722 [10] gemini://alex.flounder.online/dither.png alex.flounder.online/dither.png (image/png, 31K)
723 [11] gemini://alex.flounder.online/love.webp alex.flounder.online/love.webp (image/webp, 5K)
724 [12] gemini://berserk.red/~asirgado/glass.png berserk.red/~asirgado/glass.png (image/png, 463B)
725 [13] gemini://berserk.red/~asirgado/rock.png berserk.red/~asirgado/rock.png (image/png, 1K)
726 [14] gemini://carcosa.net/journal/media/gemini-emacs-termux.png carcosa.net/journal/media/gemini-emacs-termux.png (image/png, 245K)
727 [15] search/2?content_type%3Aimage Next Page
728 [16] add-seed See any missing results? Let GUS know your Gemini URL exists.
729 %%% 3~ gus.guru/searc..t_type%3Aimage> # The * in the link list indicates the base for { and }
730 %%% 3~ gus.guru/searc..t_type%3Aimage> # We can view an image by using ! again
731 %%% 3~ gus.guru/searc..t_type%3Aimage> # Or by using "view":
732 %%% 3~ gus.guru/searc..t_type%3Aimage> {view
733 . >>> gemini://acidic.website/vega.jpg
734 . Certificate chain: acidic.website >>> acidic.website
735 .   +-----[X509]------+
736 .   |       o=.BOXO++o|
737 .   |       . E.@===*=|
738 .   |      o   O +oBo=|
739 .   |       o   o . Oo|
740 .   |      . S   . . +|
741 .   |               . |
742 .   |                 |
743 .   |                 |
744 .   |                 |
745 .   +----[SHA256]-----+
746 .     acidic.website
747 .   Expires 2030-05-16
748 . 24c5115977737ec3736cb4349a8469391f65e0187129194d1038cf56d6078883
749 . No certificate previously seen for acidic.website.
750 Trust provided certificate (24c51159)? [Y/n]
751 fbi /home/martin/.diohsc/runtmp18001-1
752 Run this command? [y/N]
753 using "Liberation Mono-16", pixelsize=16.67 file=/usr/share/fonts/liberation-fonts/LiberationMono-Regular.ttf
754 trying drm: /dev/dri/card0 ...
755 ioctl VT_GETMODE: Inappropriate ioctl for device
756 NOTICE: No vt switching available on terminal.
757 NOTICE: Not started from linux console?  CONFIG_VT=n?
758 %%% 3~ gus.guru/searc..t_type%3Aimage> # "view" uses run-mailcap to find an appropriate command
759 %%% 3~ gus.guru/searc..t_type%3Aimage> # based on mimetype
760 %%% 3~ gus.guru/searc..t_type%3Aimage> # Note I had to trust the server's certificate
761 %%% 3~ gus.guru/searc..t_type%3Aimage> # it's now saved in ~/.diohsc/known_hosts/
762 %%% 3~ gus.guru/searc..t_type%3Aimage> # if we ever see a different cert being served at that hostname
763 %%% 3~ gus.guru/searc..t_type%3Aimage> # we'll get a warning.
764 %%% 3~ gus.guru/searc..t_type%3Aimage> # OK, finally let's demo using cryptographic identities
765 %%% 3~ gus.guru/searc..t_type%3Aimage> # (i.e. client certificates)
766 %%% 3~ gus.guru/searc..t_type%3Aimage> astrobotany.mozz.us
767 . >>> gemini://astrobotany.mozz.us/
768 Astrobotany
770 `                                                         ___
771 `       *                                    `         ,o88888
772 `                     *                             ,o8888888'
773 `     ---====D                ,:o:o:oooo.        ,8O88Pd8888"
774 `                         ,.::.::o:ooooOoOoO. ,oO8O8Pd888'"
775 `                       ,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"        *
776 `           `          , ..:.::o:ooOoOOOO8OOOOo.FdO8O8"      |
777 `                     , ..:.::o:ooOoOO8O888O8O,COCOO"      - o -
778 `  _______           , . ..:.::o:______OO8OOOOCOCO"          |
779 ` (_______)       _   . ..:.::o (____  \ O8OCCC _ o
780 `  _______  ___ _| |_  ____ ___  ____)  ) ___ _| |_ _____ ___   _   _
781 ` |  ___  |/___|_   _)/ ___) _ \|  __  ( / _ (_   _|____ |  _ \| | | |
782 ` | |   | |___ | | |_| |  | |_| | |__)  ) |_| || |_/ ___ | | | | |_| |
783 ` |_|   |_(___/   \__)_|   \___/|______/ \___/  \__)_____|_| |_|\__  |
784 `                    :.:. .  ,c:cccc"':.:.:.:.:.'              (____/
785 `        `         ..:.:"'`::::c:"'..:.:.:.:.:.'
786 `                ...:.'.:.::::"'    . . . . .'        *
787 `               .. . ....:."' `   .  . . ''
788 `     *       . . . ...."'                                    *
789 `             .. . ."'    -hrr-             *         `
790 `            .      _                                                             --
791 `                 _(_)_                          wWWWw   _
792 `     @@@@       (_)@(_)   vVVVv     _     @@@@  (___) _(_)_
793 `    @@()@@ wWWWw  (_)\    (___)   _(_)_  @@()@@   Y  (_)@(_)  wWWWw
794 `     @@@@  (___)     `|/    Y    (_)@(_)  @@@@   \|/   (_)\   (___)
795 `      /      Y       \|    \|/    /(_)    \|      |/      |     Y
796 `   \ |     \ |/       | / \ | /  \|/       |/    \|      \|/  \ |/
797 `   \jgs/   \\|///  \\\|//\\\|/// \|///  \\\|//  \\|//  \\\|// \\|///
799 > "Don't judge each day by the harvest you reap but by the seeds that you
800 > plant."
801 > ― Robert Louis Stevenson
803 Links
805 [1] app 🌷 Login
806 [2] files/instructions.gmi 📚 Instructions
808 Leaderboard
810 ` ╔═════════════════════════════════════════════════════════════╗
811 ` ║              Daily Leaderboard - Highest Score              ║
812 ` ╠═════════════════════════╤═══════════════════════════════════╣
813 ` ║  1. quokka              | 8453568 points                    ║                 --
814 %%% 3~ astrobotany.mozz.us/> 1
815 . >>> gemini://astrobotany.mozz.us/app
816 Server requests identification: Attach your client certificate to continue.
817 Enter the name of an existing identity to use (tab completes),
818         or a name for a new identity to create and use,
819         or nothing to create and use a temporary anonymous identity,
820         or use ^C to abort.
821 Identity: example
822 . >>> gemini://astrobotany.mozz.us/app[example]
823 Astrobotany - Register
825 The certificate that you supplied was not recognized.
827 Certificate Details
829 ` fingerprint      : 2o1Jc7rr3Lq0AX37m0DIRLdst7igBIkRO4_QJQwGL7E=
830 ` subject          : CN=example
831 ` not valid before : 2019-09-05 00:00:00
832 ` not valid after  : 2022-09-05 00:00:00
834 New Users
836 Click here to create a new astrobotany account:
837 [1] app/register-new[example] Register certificate as a new user
839 Existing Users
841 Click here to link this certificate to an existing account:
842 [2] app/register-existing[example] Link certificate to an existing user
843 %%% 3~ astrobota..ozz.us/app[example]> # this is an identity I created earlier
844 %%% 3~ astrobota..ozz.us/app[example]> # but haven't linked to a user
845 %%% 3~ astrobota..ozz.us/app[example]> # let's do that:
846 %%% 3~ astrobota..ozz.us/app[example]> 2
847 . >>> gemini://astrobotany.mozz.us/app/register-existing[example]
848 Enter your existing username > aoeu
849 . >>> gemini://astrobotany.mozz.us/app/register-existing?aoeu[example]
850 . >>> gemini://astrobotany.mozz.us/app/register-existing/38[example]
851 Enter your password > ********
852 . >>> gemini://astrobotany.mozz.us/app/register-existing/38?redacted[example]
853 . >>> gemini://astrobotany.mozz.us/app[example]
854 Astrobotany - Main Menu
856 `                                                         ___
857 `       *                                    `         ,o88888
858 `                     *                             ,o8888888'
859 `     ---====D                ,:o:o:oooo.        ,8O88Pd8888"
860 `                         ,.::.::o:ooooOoOoO. ,oO8O8Pd888'"
861 `                       ,.:.::o:ooOoOoOO8O8OOo.8OOPd8O8O"        *
862 `           `          , ..:.::o:ooOoOOOO8OOOOo.FdO8O8"      |
863 `                     , ..:.::o:ooOoOO8O888O8O,COCOO"      - o -
864 `  _______           , . ..:.::o:______OO8OOOOCOCO"          |
865 ` (_______)       _   . ..:.::o (____  \ O8OCCC _ o
866 `  _______  ___ _| |_  ____ ___  ____)  ) ___ _| |_ _____ ___   _   _
867 ` |  ___  |/___|_   _)/ ___) _ \|  __  ( / _ (_   _|____ |  _ \| | | |
868 ` | |   | |___ | | |_| |  | |_| | |__)  ) |_| || |_/ ___ | | | | |_| |
869 ` |_|   |_(___/   \__)_|   \___/|______/ \___/  \__)_____|_| |_|\__  |
870 `                    :.:. .  ,c:cccc"':.:.:.:.:.'              (____/
871 `        `         ..:.:"'`::::c:"'..:.:.:.:.:.'
872 `                ...:.'.:.::::"'    . . . . .'        *
873 `               .. . ....:."' `   .  . . ''
874 `     *       . . . ...."'                                    *
875 `             .. . ."'    -hrr-             *         `
876 `            .      _                                                             --
877 `                 _(_)_                          wWWWw   _
878 `     @@@@       (_)@(_)   vVVVv     _     @@@@  (___) _(_)_
879 `    @@()@@ wWWWw  (_)\    (___)   _(_)_  @@()@@   Y  (_)@(_)  wWWWw
880 `     @@@@  (___)     `|/    Y    (_)@(_)  @@@@   \|/   (_)\   (___)
881 `      /      Y       \|    \|/    /(_)    \|      |/      |     Y
882 `   \ |     \ |/       | / \ | /  \|/       |/    \|      \|/  \ |/
883 `   \jgs/   \\|///  \\\|//\\\|/// \|///  \\\|//  \\|//  \\\|// \\|///
885 Welcome, aoeu!
887 The current time is Saturday, September 05, 2020 8:31:40 PM.
889 Links
891 [1] app/plant[example] 🌻 Visit your plant
892 [2] app/visit[example] ⛲ Community garden
893 [3] app/inventory[example] 🎒 Inventory
894 [4] app/store[example] 💳 Store
895 [5] app/message-board[example] 📌 Message board
896 [6] app/mailbox[example] 📪 Mailbox
897 [7] app/settings[example] 🐌 Settings
898 %%% 3~ astrobota..ozz.us/app[example]> 1
899 . >>> gemini://astrobotany.mozz.us/app/plant[example]
900 Astrobotany - Your Garden
904 `         _.
905 `        //\\   //\
906 `        | |\\ // \\
907 `            \V//| |
908 `             ||
909 `             ||/
910 ` .  , _ . ., || _ ., _ .
911 `   ^      '        `    '
913 ` name  : "Lacy"
914 ` stage : vibrating young brugmansia
915 ` age   : 9 days
916 ` score : 759863
917 ` water : |█████████ | 96%
919 You play loud techno to your brugmansia.
920 You notice your plant looks different.
922 Plant Actions                                                                     --
924 [1] plant/water[example] 💧 Water
925 [2] plant/shake[example] 💰 Shake
926 [3] plant/fertilize[example] 🍄 Fertilize
927 [4] plant/info[example] 🔬 Plant info
928 [5] plant/name[example] 📛 Plant name
930 [6] /app[example] 🚶 Go back
931 %%% 3~ astrobota../app/plant[example]> 1
932 . >>> gemini://astrobotany.mozz.us/app/plant/water[example]
933 . >>> gemini://astrobotany.mozz.us/app/plant[example]
934 Astrobotany - Your Garden
938 `         _.
939 `        //\\   //\
940 `        | |\\ // \\
941 `            \V//| |
942 `             ||
943 `             ||/
944 ` .  , _ . ., || _ ., _ .
945 `   ^      '        `    '
947 ` name  : "Lacy"
948 ` stage : vibrating young brugmansia
949 ` age   : 9 days
950 ` score : 759868
951 ` water : |██████████| 100%
953 You sprinkle some water over your plant.
955 Plant Actions
956                                                                                   --
957 [1] plant/water[example] 💧 Water
958 [2] plant/shake[example] 💰 Shake
959 [3] plant/fertilize[example] 🍄 Fertilize
960 [4] plant/info[example] 🔬 Plant info
961 [5] plant/name[example] 📛 Plant name
963 [6] /app[example] 🚶 Go back
964 %%% 3~ astrobota../app/plant[example]> # The "identify" command lets you stop using an identity:
965 %%% 3~ astrobota../app/plant[example]> id
966 Stop using [example] at gemini://astrobotany.mozz.us/app? [y/N]
967 %%% 3~ astrobotany.mozz.us/app/plant> repeat
968 . >>> gemini://astrobotany.mozz.us/app/plant
969 . >>> gemini://astrobotany.mozz.us/app
970 Server requests identification: Attach your client certificate to continue.
971 Enter the name of an existing identity to use (tab completes),
972         or a name for a new identity to create and use,
973         or nothing to create and use a temporary anonymous identity,
974         or use ^C to abort.
975 Identity:
976 %%% 3~ astrobotany.mozz.us/app/plant> # Now let's create a whole new identity and use it on this site:
977 %%% 3~ astrobotany.mozz.us/app/plant> / identify
978 Enter the name of an existing identity to use (tab completes),
979         or a name for a new identity to create and use,
980         or nothing to create and use a temporary anonymous identity,
981         or use ^C to abort.
982 Identity: new
983 Creating a new long-term identity.
984 We will refer to it as [new], but you may also set a "Common Name";
985 this is recorded in the identity certificate, and may be interpreted by the server as a username.
986 The common name may be left blank. Use ^C to cancel identity generation.
987 Common Name: blah
988 %%% 3~ astrobotany..us/app/plant[new]> rep
989 . >>> gemini://astrobotany.mozz.us/app/plant[new]
990 Astrobotany - Register
992 The certificate that you supplied was not recognized.
994 Certificate Details
996 ` fingerprint      : -wnAEb8GsPC8O5BDxfYKSwBsiM70coIMcNcGMAy4hXM=
997 ` subject          : CN=blah
998 ` not valid before : 2019-09-05 00:00:00
999 ` not valid after  : 2022-09-05 00:00:00
1001 New Users
1003 Click here to create a new astrobotany account:
1004 [1] register-new[new] Register certificate as a new user
1006 Existing Users
1008 Click here to link this certificate to an existing account:
1009 [2] register-existing[new] Link certificate to an existing user
1010 %%% 3~ astrobotany..us/app/plant[new]> # We can use it on other sites too
1011 %%% 3~ astrobotany..us/app/plant[new]> 'gem id new
1012 %%% 3~ astrobotany..us/app/plant[new]> 'gem uri
1013 gemini://gemini.circumlunar.space/[new]
1014 %%% 3~ astrobotany..us/app/plant[new]> # The green "[new]" indicates that we'll use that identity for the uri
1015 %%% 3~ astrobotany..us/app/plant[new]> # if we request it
1016 %%% 3~ astrobotany..us/app/plant[new]> 'gem id
1017 Stop using [new] at gemini://gemini.circumlunar.space? [y/N]
1018 %%% 3~ astrobotany..us/app/plant[new]> 'gem uri
1019 gemini://gemini.circumlunar.space/
1020 %%% 3~ astrobotany..us/app/plant[new]> # OK, I think we should wrap this demo up here.
1021 %%% 3~ astrobotany..us/app/plant[new]> # There are plenty of more obscure features I haven't shown you
1022 %%% 3~ astrobotany..us/app/plant[new]> # Use "commands" to see all commands
1023 %%% 3~ astrobotany..us/app/plant[new]> # and "help" to get help on them
1024 %%% 3~ astrobotany..us/app/plant[new]> commands
1025 Aliases:
1026 back: <
1027 forward: >
1028 next: ~
1030 Commands:
1031 help
1032 quit
1033 repeat
1034 mark
1035 inventory
1036 identify
1038 delete
1039 show
1040 page
1042 links
1043 mime
1044 save
1045 view
1046 browse
1047 !                                                                                 --
1052 commands
1054 repl
1055 alias
1058 %%% 3~ astrobotany..us/app/plant[new]> h al
1059 alias ALIAS COMMANDLINE: add an alias
1060 alias ALIAS: delete an existing alias
1061 The commandline may include targets and/or a command.
1062 Examples:
1063   alias up .. : then "up" translates to "..", and e.g. "u add" to ".. add"
1064   alias Mpv |mpv --cache-secs 5 - : then "2M" will stream link 2 to mpv
1065       with this sane caching (mpv's default cache size is 150M!)
1066 You can put alias commands in /home/martin/.diohsc/diohscrc;
1067 see "help configuration".
1068 %%% 3~ astrobotany..us/app/plant[new]> # Bye!
1069 %%% 3~ astrobotany..us/app/plant[new]> q