💾 Archived View for gemi.dev › gemini-mailing-list › 000322.gmi captured on 2023-11-04 at 12:41:16. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2023-12-28)

-=-=-=-=-=-=-

[ANN] Fafi, a Racket-based client

Andre Garzia <andre (a) andregarzia.com>

Hi Folks,

I'm new to this list, to Racket, and to Gemini, but I am quite happy to be
here because I have an interesting project to share. I have built a simple
Graphical Gemini client using Racket, it should run in any platform Racket
runs (I have tested it on Windows, macOS and Linux).

The most interesting parts of it are the fact that it supports tabs, which
is a feature I don't think is yet common among the clients, and that it
converts gemtext into a cute s-expression based representation.

At the moment it doesn't pass all the 51 tests in the client torture list
but IIRC it passes more than 40 of them. Anyway, I need to fix redirecton
loops and I can't support some of the TLS stuff because Racket is shipping
TLS 1.2.

So far I have written two blog posts about it:

  https://andregarzia.com/2020/05/toying-with-gemini.html

https://andregarzia.com/2020/08/fafi-browser-a-racket-based-gemini-client.html

The source code and issue tracker are in sourcehut:

  https://git.sr.ht/~soapdog/fafi-browser
  https://todo.sr.ht/~soapdog/racket-gemini

Hope to hear from you all and excited to be here.
A.



-- 
https://www.andregarzia.com <http://www.andregarzia.com>
Want to support me? Buy me a coffee at https://ko-fi.com/andregarzia

Link to individual message.

Luke Emmet <luke (a) marmaladefoo.com>

On 12-Aug-2020 23:57, Andre Garzia wrote:
> I'm new to this list, to Racket, and to Gemini, but I am quite happy 
> to be here because I have an interesting project to share. I have 
> built a simple Graphical Gemini client using Racket, it should run in 
> any platform Racket runs (I have tested it on Windows, macOS and Linux).
>
> The most interesting parts of it are the fact that it supports tabs, 
> which is a feature I don't think is yet common among the clients, and 
> that it converts gemtext into a cute s-expression based representation.
>
> At the moment it doesn't pass all the 51 tests in the client torture 
> list but IIRC it passes more than 40 of them. Anyway, I need to fix 
> redirecton loops and I can't support some of the TLS stuff because 
> Racket is shipping TLS 1.2.

Welcome to the ecosystem!

Its great to see another client. There are a couple of other clients 
that support tabs like Kristall and amfora (that I know of). Others take 
the approach of forking the browsing session with a new window (like my 
own, GemiNaut). Personally I like to be able to use the normal OS 
features to manage application windows, and each fork of the browsing 
session feels more to me like a separate thread through Geminispace to 
be independently minimised, maximised, etc. Some folk seem to prefer 
tabs though.

On a slightly separate note, I saw from your profile you have a 
background in FirefoxOS. I know it had its ups and downs, but it does 
live on in KaiOS which is gaining a wide user base particularly outside 
Europe and North America. I have a a Nokia 2720 which I love as a flip 
phone, for its relative simplicity and for its battery life. There is a 
simple marketplace of apps.

So a quick question - do you think it could be possible to write a 
gemini client for KaiOS? Personally, it would be great to be able to 
check a few pages when on the move. And more importantly, it would open 
gemini up to a wide and diverse range of potential new users who may 
have a lot to contribute.

Best Wishes

  - Luke

Link to individual message.

Ben <benulo (a) systemli.org>

On 8/15/20 1:21 PM, Luke Emmet wrote:
> Its great to see another client. There are a couple of other clients 
> that support tabs like Kristall and amfora (that I know of). Others take 
> the approach of forking the browsing session with a new window (like my 
> own, GemiNaut).

If I recall Alrisha and Deedum also do tabbing.

diohsc handles this in an interesting way by letting the user create and 
manage a queue. Not exactly the same thing as having multiple sessions 
at once, but it's good in a single session when are using tabs as just a 
"read later" function. Links can be added either to the top or the 
bottom of the queue (or inserted), allowing you to branch as you will.

Ben

-- 
gemini://kwiecien.us/

Link to individual message.

Andre Garzia <andre (a) andregarzia.com>

Hi Luke,

Thanks a lot for the kind words. I am brand new to the ecosystem. I started
writing Fafi just from reading the protocol specs, I had no exposure to
other browsers and content. Now, I am getting to know more about apps and
content and am liking it very much. It is an impressive coincidence that I
checked out GemiNaut a bit before sending my first email to this list. I
took a tour of Gemini Browsers and saw that your browser had REBOL code in
it and that made me smile. I used to work with REBOL in the early 2000s and
it is a language that is very dear to my heart. I think that a Gemini
browser using Red should be a fantastic project, maybe I'll try that as
well.

As for Firefox OS, that is a little flame in my heart that will never be
extinguished, I really liked it and still do. I think that a client is
possible but you won't be able to support all the status codes and use
cases as you won't be able to generate certificates (unless you write a
pure JS TLS implementation). I'm not sure which version of OpenSSL KaiOS is
linked against but you should be able to open a raw TCP secure socket to
port 1965 and read and write from it using "mozTCPSocket":

  https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/API/TPC_Socket_API

Another thing that put a smile on me was the surprise I got when I was
researching to write the reply to you (it has been a while since I last
touched FirefoxOS code). If I remember correctly in 2013 I took some time
adding FirefoxOS samples to MDN  and the sample linked to that article is a
Telnet client I wrote:

  https://github.com/soapdog/firefoxos-sample-app-telnet-client

You should be able to pick that telnet client and just tweak it a little to
test it against a Gemini server. Be aware that KaiOS has a different
keyboard based navigation system and you'll need to check their dev docs:

  https://developer.kaiostech.com/

I don't have any KaiOS device but I am intrigued by it. Some months ago I
had a meeting with their DevRel to talk about the old days of FirefoxOS and
how community was handled and encouraged, it was a fun meeting and I hope
they are investing more in building a community now.

Kind Regards
A.


> Welcome to the ecosystem!
>
> Its great to see another client. There are a couple of other clients
> that support tabs like Kristall and amfora (that I know of). Others take
> the approach of forking the browsing session with a new window (like my
> own, GemiNaut). Personally I like to be able to use the normal OS
> features to manage application windows, and each fork of the browsing
> session feels more to me like a separate thread through Geminispace to
> be independently minimised, maximised, etc. Some folk seem to prefer
> tabs though.
>
> On a slightly separate note, I saw from your profile you have a
> background in FirefoxOS. I know it had its ups and downs, but it does
> live on in KaiOS which is gaining a wide user base particularly outside
> Europe and North America. I have a a Nokia 2720 which I love as a flip
> phone, for its relative simplicity and for its battery life. There is a
> simple marketplace of apps.
>
> So a quick question - do you think it could be possible to write a
> gemini client for KaiOS? Personally, it would be great to be able to
> check a few pages when on the move. And more importantly, it would open
> gemini up to a wide and diverse range of potential new users who may
> have a lot to contribute.
>
> Best Wishes
>
>   - Luke
>


-- 
https://www.andregarzia.com <http://www.andregarzia.com>
Want to support me? Buy me a coffee at https://ko-fi.com/andregarzia

Link to individual message.

Andre Garzia <andre (a) andregarzia.com>

I'm discovering so many new browsers in this thread. It is very inspiring.
Thanks a ton for sharing these projects with me. I think I'll experiment
with some of these approaches as well.

On Sat, 15 Aug 2020 at 11:49, Ben <benulo at systemli.org> wrote:

> On 8/15/20 1:21 PM, Luke Emmet wrote:
> > Its great to see another client. There are a couple of other clients
> > that support tabs like Kristall and amfora (that I know of). Others take
> > the approach of forking the browsing session with a new window (like my
> > own, GemiNaut).
>
> If I recall Alrisha and Deedum also do tabbing.
>
> diohsc handles this in an interesting way by letting the user create and
> manage a queue. Not exactly the same thing as having multiple sessions
> at once, but it's good in a single session when are using tabs as just a
> "read later" function. Links can be added either to the top or the
> bottom of the queue (or inserted), allowing you to branch as you will.
>
> Ben
>
> --
> gemini://kwiecien.us/
>


-- 
https://www.andregarzia.com <http://www.andregarzia.com>
Want to support me? Buy me a coffee at https://ko-fi.com/andregarzia

Link to individual message.

Solderpunk <solderpunk (a) posteo.net>

On Sat Aug 15, 2020 at 12:48 PM CEST, Ben wrote:

> diohsc handles this in an interesting way by letting the user create and
> manage a queue. Not exactly the same thing as having multiple sessions
> at once, but it's good in a single session when are using tabs as just a
> "read later" function. Links can be added either to the top or the
> bottom of the queue (or inserted), allowing you to branch as you will.

Ah, this is nice.  I have been meaning for a long time to tweak the
`tour` command in AV-98 (and VF-1) to allow you to insert links at the
front of the queue rather than the end.  This would make the mechanism a
lot more flexible.

Cheers,
Solderpunk

Link to individual message.

Luke Emmet <luke (a) marmaladefoo.com>

Hi Andre

thanks for your reply

On 16-Aug-2020 18:24, Andre Garzia wrote:
> I took a tour of Gemini Browsers and saw that your browser had REBOL 
> code in it and that made me smile. I used to work with REBOL in the 
> early 2000s and it is a language that is very dear to my heart. I 
> think that a Gemini browser using Red should be a fantastic project, 
> maybe I'll try that as well.

Yes REBOL/Red is very nice, but largely under-appreciated, and somewhat 
niche now I suppose.

A Red client would be cool - I think the TLS is WIP in Red, but 
apparently it is being developed. There is also a fork of REBOL which is 
being actively maintained and seems to include TLS. I've not 
investigated it much yet though.

https://github.com/Oldes/Rebol3

>
> As for Firefox OS, that is a little flame in my heart that will never 
> be extinguished, I really liked it and still do. I think that a client 
> is possible but you won't be able to support all the status codes and 
> use cases as you won't be able to generate certificates (unless you 
> write a pure JS TLS implementation). I'm not sure which version of 
> OpenSSL KaiOS is linked against but you should be able to open a raw 
> TCP secure socket to port 1965 and read and write from it using 
> "mozTCPSocket":
>
> https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/API/TPC_Socket_API
>
> Another thing that put a smile on me was the surprise I got when I was 
> researching to write the reply to you (it has been a while since I 
> last touched FirefoxOS code). If I remember correctly in 2013 I took 
> some time adding FirefoxOS samples to MDN  and the sample linked to 
> that article is a Telnet client I wrote:
>
> https://github.com/soapdog/firefoxos-sample-app-telnet-client
>
> You should be able to pick that telnet client and just tweak it a 
> little to test it against a Gemini server. Be aware that KaiOS has a 
> different keyboard based navigation system and you'll need to check 
> their dev docs:
>
> https://developer.kaiostech.com/
>
> I don't have any KaiOS device but I am intrigued by it. Some months 
> ago I had a meeting with their DevRel to talk about the old days of 
> FirefoxOS and how community was handled and encouraged, it was a fun 
> meeting and I hope they are investing more in building a community now.

Thanks for these links - I shall add this to my todo list and 
investigate further. It would be interesting to see how far it can go. I 
think the client generated certificates is only a minor limitation, as 
the overwhelming majority of content in geminispace is freely accessible.

Best Wishes

  - Luke

Link to individual message.

---

Previous Thread: Go 1.15 requires changes to TLS code for Gemini!

Next Thread: Thoughts about the Gemini protocol