WIP: GoingDown - A Gopher Client for Haiku

Bit of a silly thing really, but I’ve been playing with Gopher recently and had an itch to write some code so I thought I’d start work on native client for Haiku.

It works for maps and regular text files right now, though it’s lacking a lot of features, such as a back button, and has some known bugs and probably more than a few memory leaks, but wanted to put it out there all the same. Will keep chipping away at it!

You can download it from my Codeberg pages site.

You may need to modify it’s properties to make it executable, guessing some browsers (or the system) reset those perms on binary files because I had to do that. Goal will be to get it into the Depot eventually.

3 Likes

Ahoy @mattlacey ,

I remembered as gopher was removed -in previous year, 2025 - from Webpositive
as Haiku gopher support implementation was broken and basically not worked as it should be as webkit not really supported as it should have done - at least by the patches notes.

https://git.haiku-os.org/haiku/log/?qt=grep&q=gopher

I have no infos what about the ported browsers’ gopher support actual situation. And also what needed beyond protocol support on OS level - in networking.
One contributor actually started to add fixes and enhancements to network related stuff - both virtual devices and real ones, protocols and so on.
When I had access to networked computers - i mean internet not just LAN - … since then I uset mostly the modern http/ftp via html/XML kind browser surfaces.

The legacy type networking - except maybe BBSs for the few who has PC and phone line as well on Hungary - was skipped.
Ok universities, some labs at firms and possibly government, military, technical institutes and academy workers, international organization members or diplomats theoretically could use the net in Hungary via university backbones and in some cases slow(er) dial-in servers those also connected somehow the one and only university networks.

I have since 1993 a mail address at all - it was the entering into internet and then it was at a Hungarian provider with limited storage space ( 10 or 100 MB ?)
I registered and accessed via public service in the small town library - I waslived then.
I was already out of high school/technicum - that was open for students who were such schools where already was internet then.
A telephone line then was a status symbol in the past, it showed how important you are, or how much money you have to order and pay for a phone line .. at least until 1995 ? or 1997/1998 ? I don’t remember well. ISDN quickly appeared, as inventions brought in newest technologies. When I bought a line in 2005 - we got ADSL internet on it. Soon it was switched to cable : for half price and a more than double bandwidth (50/25 Mbit or so).

So, as I had no attchment to older protocols I had not missed, practiced or accomodated to use it. No BBS, no usenet, mailgroups, gopher or anything else I cannot remeber right now.

I wish good luck to restore this protocol into Haiku, via Haiku browsers or any app can display gopher protocol delivered infos/contents !

:cowboy_hat_face:

How are you supposed to scroll? I tried arrow keys, PageUp / PageDown, spacebar and j/k. No dice. There’s no scrollbar either, and I can’t use the mouse wheel.

Otherwise, a native option can’t hurt! Gopher clients are fun to make. Wrote two of my own in the past. Is yours going to be open source? Failing that, a more permanent home would be nice.

1 Like

Yeah that’s one of the missing features, but also next on the list, aim to do it this week along with the back button.

It will be 100% open source, I just want to clean up some of it first and do a bit of refactoring of certain things before doing so. Won’t be too far away.

1 Like

New build: https://codeberg.org/mattlacey/GoingDown/releases/download/alpha_0.2/GoingDown

This one actually has scrolling (been weirdly difficult to work out) but the scroll bars don’t display after loading content until the window is resized :sad_but_relieved_face:

Still working on that, forcing a render alone isn’t enough to have all the relevant heights etc. available it seems.

@mattlacey your link is 404.

Ah bugger, will sort that tonight. Maybe I’ll open the source before I’m ready just so I can get it listed on the Depot

Famous words :slight_smile:

Open sourcing can also be about sharing how the source comes from A to B. Sharing the journey of that cleanup and refactoring is not valueless.
Plus people could join helping during that journey, which they can’t if you only share the end result.

Just my .02 cent.

1 Like

I don’t disagree, but this isn’t a refactor just to make it a bit nicer, it’s refactor because it shouldn’t have been written this way to begin with :slight_smile:

But, my ego isn’t that big and I’m not going to get hurt by people seeing some of the nasty hacks in here (a fixed 1MB buffer for requests for example) - it wasn’t written to be an example of good software engineering, I just wanted to mess with the Haiku API and Gopher. So, it’s now public and that release link should work!

4 Likes

Tested. It’s retro-fun!

I now understand more your issues with scrollview management.
And your phlog resonate fine with my own experience…

2 Likes