Comment by 🍀 gritty
Re: "So theoretically, if a Gemini app had a well defined API,…"
@stack I get that, but you wouldn't have anyone to play against. text based Gemini users could play android based users.
anyways, it was just a thought experiment
Apr 06 · 4 weeks ago
19 Later Comments ↓
🚀 Moonlight · Apr 06 at 10:47:
Already there is the Titan protocol which only some clients implement, which simplifies uploading on this BBS. I'd like to think Gemini as a protocol would survive these optional extras.
I've thought about it before...
Last time I wrote an Android app it was very unpleasant. Between Google tooling, Java, and the declarative GUI it felt mostly like filling out tax forms for days.
🚀 lars_the_bear · Apr 06 at 18:03:
Android... ugh. I've been programming for a living since 1985 and, of all the platforms I've had to work on, Android sucks the hardest. It's worse than Windows 1.1. The way that Android apps have constantly to interrogate the platform, and be willing to respond to its whims, reminds me of programming for the Atari ST.
I don't know if any of the new tooling makes it any easier -- I lost the motivation to keep coding for it years ago.
Yes. Not a fan of GEM either. I just ignored it an built software that took over the machine -- easy as it had no co-processors or anything... Just a 68000 with a bitmapped display.
I haven’t done anything with it, but I’ve been tossing the idea around in my head for a few years now:
— ainent.xyz/gemlog/2022-09-06-native-applications-over-gemini.gmi
It would be fun to build a native front end for BBS. It would require BBS to be architected for it though.
Don’t read this as a volunteer to build, because I just don’t have the time for another project.
It's a lot more practical than HTML as an embedded networking protocol.
@ainent I am unable to access that server; it does not work for me
@zzo38 What happens when you try to access it? And which browser are you on?
It loads on my end. It does only work over IPv4, though. If your network or app prefers v6 then it won’t load.
I do not have version 6 internet. I can access that host and port, although the connection then does not work. (Does it require TLS 1.3? I do not have TLS 1.3 on my computer.)
there was a multi-user chat that worked in gemini browser and used the gemini endless streaming feature.
are there sources? or where is it deployed?
audio calls will not work over gemini because you can't do streaming as client but as server.
well you can have server and software that streams aidio from your mic and be part of vpn with real server and other party.
other party also streams audio.
server is connected to both od you as client, and you both connect to server as clients and receive streams of each other.
@norayr I think you're referring to AuraGem Live Chat. It's actually running at the moment (some of those services have been down).
@zzo38
Last I tested, TLS 1.2 worked but I added a note to test it again to my backlog. In the meantime, here’s the text of the post:
# Native Applications over Gemini
Disclaimer: This is not an official proposal nor is it an attempt at extending the protocol. Just throwing some thoughts out there.
Lately I've been pondering the idea of native applications (GUI, TUI, platform irrelevant) over Gemini. They could look and feel identically to a native application, only the backend would be accessed over gemini:// instead of http://. Gemini can serve any file type, so the responses could have a MIME type of application/json or application/xml, etc. This would allow for more customized applications than simply dynamic text/gemini via a browser, with all the benefits of Gemini. The downside would be less room for user input, because of the limit on Gemini URL lengths, but that could be mitigated with the Titan protocol.
Has anyone else thought of this, or implemented anything?
What you describe would work (like it would with HTTP, except the different headers); you might have a different URL for the that purpose (so that Gemini text can still be accessed as well), and multiple implementations would be possible (so it should be documented). (Also it is my opinion that DER is a generally better format compared with JSON or XML, although you could use any format.) (Also: Scorpion protocol has a "I" request type, and for some uses it would be helpful, such as for two-way streaming. Furthermore, if you need user authentication, then regardless of which protocol you use, using X.509 client certificates has many benefits, depending on what your requirements are.)
although you could use any format.
Yeah the format is an implementation detail as Gemini supports arbitrary MIME types.
Also it is my opinion that DER is a generally better format compared with JSON or XML
Could you elaborate? My experience with DER is quite limited. Are they usable for non-certificates?
Yes; DER can be used for many kinds of structured data, and not only for X.509 certificates. If my nonstandard types are added, then its data types is a superset of that of JSON (in this case, the only nonstandard type used is the key/value list type; the rest of the JSON types are standard ASN.1 types). I wrote a implementation in C (although other implementations exist, in C and other programming languages, but many of the implementations have some flaws in my opinion). My "Super ZZ Zero" game engine uses DER in many parts, and so does some other things I had been working on.
🌆 skyjake [mod...] · Apr 08 at 05:53:
@zzo38 I'm curious: why would you use DER, with nonstandard extensions, when there's the well-established BSON? The latter seems a more pragmatic choice for structured binary data.
...and if we're talking established standards, why not CBOR?
One advantage of DER is consistent framing. Another is that I think the data types are better; there is a OID type and relative OID type, as well as octet string and bit string, and unlimited length of integers, and it does not insist that you use Unicode. BSON, CBOR, etc try to make it better but end up not doing so and are inferior. Note that you do not need to use all of the types, nor need to implement all of them even if dealing with a file that uses them.
@norayr
— https://github.com/michael-lazar/jetforce/blob/master/examples/chatroom.py
Original Post
So theoretically, if a Gemini app had a well defined API, one could make a phone app to interface with just that Gemini app/capsule, correct? So for instance, a graphics based UI on your phone that pulled from a BBS/Bubble API. It goes against the spirit of Gemini I think, but I just had the thought in my head.