tedtriv.co.uk

New Things in Programming

Tags:

I have been doing some other things on the side while working on my Godot project.

Codeberg (mostly) bans vibe coded projects

if llms are so good why cant they make their own git forge lmfao. Oh wait

The other day Codeberg changed their Terms of Use to try and prevent the site from being flooded with LLM slop [link].

Even though I didn’t vote on this (I am not a member), I agree with the change. Their blog post gives many reasons why, which aren’t just “we don’t want computers to write the code for us”.

The online discussion on LLM-friendly sites (e.g. ycombinator) seems to ignore the blog post completely and gravitates towards not having the “freedom” to host their vibe coded projects on there.

Despite all this, most vibe coded projects, ranging from single-commit frontend todo lists, to your whatever rewritten in Rust co-authored by Claude, wouldn’t have been hosted on Codeberg anyway. I think that there should be more, smaller public Git forges for specific purposes, somewhat like Mastodon instances.

Enforcement of this rule won’t (and in my opinion, shouldn’t) involve scrutinising every single repository for LLM usage, AGENTS.md, Em dashes, etc. Rather I see it as a way to ensure Codeberg is a place for projects backed by people, before the “Tech Bros” try to jump onto it and turn it into another GitHub.

Cryptocurrency projects have also been banned completely. I am not really familiar with these (in fact, who is?), so I don’t really have an opinion, but I can imagine a lot of them are vanity projects. Enforcement will probably be more rigid than any attempt at removing vibe coded projects given a project is either one or not.

Trying Django again

I have written previously about wanting to make something with it. Currently I am writing a web app with it and I will probably write a blog post once it’s finished.

I find both Django and Python’s documentation less clear than C#’s or cppreference, mainly because there aren’t any clear lists of properties or methods. Multiple inheritance (in place of real interfaces) can also make things messy.

Dynamic types make writing full applications more difficult and are better suited to gluing C APIs together (like Lua), but I am getting more comfortable with it. Even though my preferred language (C#) has its own web framework, I had already picked up more Django and would rather finish this project.

To write Python I use PyCharm. Closed source software obviously isn’t ideal, but it is the best tool if you are willing to pay for it - I get it for free as a university student. It has the best Vim emulation, editing (and even debugging) of Django templates, everything works out of the box.

The Godot Project

Recently I have been working on menus for the multiplayer and modding. Both of these features are musts for my game and I know many people who will take advantage of them.

I quite like working in GDScript, which is syntactically similar to Python, because it integrates very well with their engine and has gradual typing. I have experimented with the C# and even though GDScript is missing things like structs, namespaces, tuples and function/operator overloading, I haven’t found a way to use the C# debugger and the Godot one at the same time without launching the C# one second, which means _Ready notifications can’t be debugged.

GDExtension is used to write your own code in C or C++. Many people use it to create addons for the Godot editor, like Terrain3D which I have decided to use for my project.

Neovim

Update: It has come to my attention that the Neovim developers have no problem with endorsing DHH who is a known racist/xenophobe among other terrible things [link]. I’ve removed this section until they change their minds.