← Tanetane Island Fangame

Goodbye Github

TLDR: Going forward, I will be hosting most of my code on code.fourisland.com instead of Github.

At some point in the last decade, Github took over the world of open source development.

I can't really remember when it happened. Before then, I would maintain my source repositories on my own server. I used CVS at first, before switching to Subversion, then Git, and then Mercurial. I stuck with Mercurial through most of high school, if I recall correctly, although now that I've become an avid Git user (perhaps something forced onto me in college?), I'm not sure what it was that I liked about Mercurial over Git. The point is that throughout that time, I just had source repos on my server, and I'd clone them on whatever computer I was doing development on. It was fine.

One of the earliest times I can remember using Github was to host the code for Rawr eBooks. It was adapted from a class assignment in my second year of college, so that timeline seems to fit the narrative that school got me into using Git. It was around that time that I also moved away from maintaining my own infrastructure as much. I was no longer using my personal website, Four Island (yes, the one you're on right now! it's complicated). I also was not working on the kind of projects I had worked on in high school anymore.

At some point, I started writing Twitter bots. I wrote a lot of them (around 30, I think). And every one of them lived on Github. They made it really easy. Create a repo, set it as your remote, push. Now you have free backups on a public server, and other people can see your code and go wow, gee whiz! In retrospect, none of that was necessary, apart from the fact that I no longer had the interest in running my own infrastructure.

All of that changed when I learned about Copilot.

The (frankly unnecessary) rant about ML

It cannot be said that I'm a fan of machine learning. In fact, most would say that I'm extremely opposed to it, at least in some of the contexts it's being used in -- specifically stuff like text generation and image generation. (Which is amusing for me to say, having written a swarm of bots that generate text and images, but we're all smart enough here to know the difference). There are huge ethical concerns when it comes to this stuff, involving (but not limited to) content stealing, job obsoletion, and amplification of biases like racism and misogyny. I also worry about whether reliance on ML generated content is continuing down the path started by doomscrolling on social media all day, which will eventually lead to our brains being completely smoothed out.

Github Copilot (and similar technologies) writes code for you. It's touted as being an assistant -- not a developer on its own -- but I can still smell the blood in the water. Am I, a software developer, a little worried about losing his job eventually? Yeah. I think everyone, across a multitude of fields and industries, should be.

And it's stepping on my head, and the heads of other developers, in order to do it. Copilot is trained on code that's publicly hosted on Github. I don't condone this. I don't feel comfortable with the idea of an algorithm reading in the code I worked hard on so that it can vomit it out again somewhere else.

To be clear, it's not like I'm against code reuse. My code is open source, so I understand that people could want to use my code and develop on it -- in fact I think that'd be really awesome! But Copilot isn't doing that. Copilot can't acknowledge its sources. Copilot can't propagate code licenses left in the original repositories. And again, I am just not comfortable with the idea of training a model to be able to write code the way that I do, so that someday I can be replaced by it. There is a very obvious difference between that, and another human wanting to derive from the work I've done.

Once I learned about Copilot, I did some research and found out about a bunch of other unsavoury things about Github. There's a page that goes into more detail about it on the Software Freedom Conservancy, which I highly recommend you read. They recommend re-hosting your code elsewhere, and protesting in circumstances when you cannot. There's a bunch of good resources linked that aid in doing this.

New repo new me

I deliberated on this for a while. I had obvious qualms with continuing to use Github, but moving away from it seemed too difficult to be worth it. In hindsight, I think that was the point. Github became ubiquitous in the open source world. Major companies like Microsoft (who owns Github) and Google host projects on there. They wanted to make it simple to join (everyone else is on there, and you can collaborate really easily!) and difficult to leave (where are you going to go? you're dooming yourself to obscurity). It's just like a major social media platform in that way, which is a rant for a whole different day.

My decision to finally go through with it was a bit inspired by my decision to leave Twitter. I set up a Mastodon instance for me and my friends back in November, and while my reach on it is significantly reduced, it's been really fun for me to host a service. I loved sysadminning as a kid. In middle and high school, I was configuring services and setting up infrastructure all the time. I hosted websites for multiple friends. I would learn about new things and immediately try to implement them. I enjoyed reading Linux humor websites for heck's sake. I loved the old Internet and the non-corporate open source world.

I still love it, I realized. It's just that widely-accessible solutions like social media have pulled me away -- as they have to all of us.

So I'm self-hosting my own Git repositories again. Most of them are still on Github, and I may take them down at some point, or at least update their READMEs to indicate that I've left the platform (like I did here). But they've been abandoned.

You can find my repositories at code.fourisland.com.

It was fun setting up cgit-pink to serve a website for my code. I also set up Git Smart HTTP so that you can clone my repos without SSH access. Clone URLs are available on the summary page for each repo. I also dug through the woodwork and found a bunch of other non-public repos that I decided to put up along the rest. Stuff like Ether (a short video game I made), and my unfinished Mother 3 fangame. Just in case you're interested!

(I have to say, as an aside, that I am exceptionally proud of the work I did on the latter -- tanetane -- despite never finishing and releasing the game. The engine is very solid and pretty featureful. It is a shame that I lost steam on the story part of it.)

There's a couple of things Github did provide that I can't replicate in the same way on my own. First and foremost -- contributing to open source projects. During my time on Github, there were a couple of Ruby and C++ projects I made tiny contributions to, usually because I was using them in my own work and was impacted by some sort of bug. However, this year, I started contributing in a major way to a project called Archipelago. I'll talk more about that in another post, but in a nutshell: I am actively contributing to this project, and I have to use Github to do it. So I'll keep my Github account in order to continue doing that, and I guess I'll just try not to think about Copilot eating up all the yummy yummy code that I write for Archipelago.

The second thing is basically the reverse of the first -- people contributing to me. This, has never happened before. It's still theoretically possible that someone might want to, though, and the lack of a pull request feature on my code website makes this harder than if I was using Github. The thing is, though, that people handled this situation even before Github existed. Github tried making it easier, to the point that we all forgot you could do it any other way. But there's still a workflow that would allow you to contribute to my projects, if you'd like.

  1. Clone the repo.
  2. Make and commit whatever changes you'd like, on a branch.
  3. Use git-format-patch to generate one or more patch files.
  4. Email them to me at fefferburbia@gmail.com.
  5. I can review them, and we could even talk back and forth about it, just like in a Github pull request. It'll be great!

You can really tell how much I miss The Olden Days™. I know it's unlikely that anyone will feel the need to contribute to my code, but I'm still having fun.

Anyway, that's the whole shebang. I'm falling back into my love of computer infrastructure and open systems. Four Island is back up again, it is once again running on code I wrote myself (rather than Wordpress or Jekyll), and I'm writing a blog post for the first time in two and a half years. I'm no longer going by the names Fef or Starla; "Hatkirby", "Danny", or just "Star" is good. It can also be said that I'm coming out of my cage and I'm doing just fine -- gotta gotta be down because I want it all.

Hatkirby on October 13th, 2023 at 3:12:57pm
👍 1 👎

Comments

Lot of interesting things!! It's really cool that you have a blog again and that you're self hosting stuff!! It's really nice to have a little corner of the internet that's legitimately your own... I miss it a lot but just don't have the spoons for it anymore, social media is just so much less work u_u (I'm actually just starting to set up a new art blog this week and I reluctantly chose the paid PaaS version instead of the open source self hosted version of the platform... not to even mention the option of just plain creating my own thing...)

I've felt similarly skeptical about GitHub for a while... even before I found out about all the sketchy stuff with Copilot, also just of the way they have such a monopoly over code hosting. But in my position where I'm still trying to break into the field, everyone talks like having a presence on GitHub is strictly mandatory for getting noticed. :/ Idk, I try to alternate between using it and GitLab, so that at least I'm not TOTALLY reliant on it.

What made you pick cgit instead of using one of the more fleshed out self-hosted git platforms like Gitea or Gitlab? I guess those aren't as necessary when you don't have multiple users though, hm

It’s so cool that you wrote your own blog infrastructure! I wanna check out the code sometime :D

Anyway congrats on your return to blogging!!

vae on October 14th, 2023 at 12:51:14am

Totally understand the spoons thing... It's definitely part of why I stopped blogging before. I don't know how frequently I'll be able to post, but it's gonna be a goal of mine, at least. I feel like I've trained myself too much not to share my opinions with people, and I think this is a good way to do that + have another creative outlet.

And yeah, stepping away from Github is not really an option available to everyone (it's not even totally available to me because I still need to use it for contributing to Archipelago and Lingo...). That's the hugely sucky thing about a monopoly. I'm in a situation where I'm able to self-host and not like miss out on opportunities because of it, and I hope in the future more people are able to do that! Down with the monopolies 💪

Yeah, that's pretty much the main reason. It's just me, so I don't need fancy collaboration tools. I did sort of use Github for issue tracking in the past, but I really don't need it; I can just keep notes personally. I honestly was just going to go with gitweb, but that didn't have quite enough features, I think, haha.

Thanks!! I think I've been threatening to write my blog in Rails since like 2010, so I'm glad I finally did it :P. It's fun because a lot of the oldest posts on my high school blog (which I imported here) are just me being like "wow I implemented a new blog feature!!!!" and I'm like I guess I'm doing that again! It's fun. I implemented comment replying this morning just so I could reply to your comment XD

Hatkirby on October 14th, 2023 at 11:26:49am

I liked github when it was just "a place for code", I think I've grown less fond of it as issues/projects/wikis etc have moved on board. I have had people clone my repos and do good stuff with them though -- so discoverability is definitely a real thing ._. I think the right balance is to have a good competitor (and I don't know if bitbucket really is one) since otherwise these nice projects just get bought up into some large conglomerate. At least you don't have to sign in with your Xbox live account to upload code...

darkid on February 24th, 2024 at 9:07:43am
Replying to comment by :
Feel free to post a comment! You may use Markdown.