The 'Shack and Gitea get Married

Written by SysOp on 2020-10-12 18:00:00 ; Posted in: SysOp, Website; 0 comments
Please join us for the wedding of

        YE OL' PI SHACK

               &

             GITEA

On Monday, the 12th day of October
in the 51st year of the Unix epoch.

:: wind blows :: :: crickets chirp ::

What?!?! You didn't come?

OK. No invitations were sent, but the work was done. It was an adventure in and of itself but Gitea's users and sessions have been married and adopted into Ye Ol' Pi Shack's. And as usual it took more time and effort fulfilling the dependencies of Gitea than it did to actually find and patch things. It seems nobody does things the way I do (imagine that) and so it took more effort than I had anticipated. Again... imagine that!

It was fun dipping my feet into Go. I don't think I'll be adopting it as my preferred language any time soon. Its claim to fame is "garbage collection", which is a mechanism that long ago proved it creates a number of issues: circular dependencies cause memory leaks and / or even more time burnt trying to detect them, leading to possible DOS issues. And then there are the long delays that can come about while taking out the garbage. You can peruse Rust's site for a lot of talk about the evils of "garbage collection". Rust has me curious. I'll have to take it for a spin at a later date. But the other thing I don't like about Go is that I haven't seen a program come out of it that didn't eat megabytes, ie its fat.

Well... besides getting a Go compiler up and going (pun?) Gitea had to have NodeJS too. ugg. I don't think I'll bore you with my long list of why JavaScript and Node are horrible ideas. But thanks to the belief, that seems to pervade the Open Source community, that backwards compatibility is evil, I found myself in a quandary. I need one specific version for work on a client project, and since there are all these dependency hell tendrils in everything I dare not break my dev environment, especially since I may not be able to find the exact versions I need to recreate it. And there is the time-suck involved. And of course those versions don't meet the demands of Gitea... So! Build up another computer just to build Gitea, to apply a simple one-line patch. Yeah! Keep up the good work Open Sourcers!

All in all I was pleased with Gitea's internals, or I wouldn't be using it. There is some significant foresight in the source package. Namely they keep the specific versions of subprojects needed so I didn't have to go hunt them down and untangle another web of dependencies. The code was easy to navigate and find the places to make the tweaks I needed. It appears its possible to just build the server side once all of the client side stuff is built. So I'll probably just copy my built source tree from the temporary computer to my workstation so I can rebuild server side stuff as needed, without the aid of a secondary computer.

The integration is a pretty big step towards my vision for this site. Project file management with GIT version control and the other things that Gitea brings to the table. And now I have a ton of work in making it look as gorgeous as the rest of the 'Shack. I'm sure many will probably object to my site's looks. And many will approve, or at least some. But as for me and a few others I've talked to, we really love it!

So I hope to be smoothing the integration between Gitea and the 'Shack. I also have some test projects to upload that may be of interest to someone, including the source code for a project my buddy KenUnix took under his wing: Bywater BASIC (bwBASIC). I've contributed some to that and even added speech to the old "Eliza" BASIC program that comes as a sample.

Well, the weather is turning and CHRISTmas is coming up fast. So I will not have nearly as much time to put into this as I would like. Many chores to complete to get my place ready for the coming snow. And I have to get into Santa's workshop to get some presents made. A few will probably include code, some of which I hope to post here.

Various projects I get time to put up will be listed on my personal page so keep en eye out there.