My Github: Why the emptiness?
I recently got an ask: why is my github relatively empty? I’ve worked on a lot of fun stuff, and I seemingly fork a lot of things that end up sitting there. Well the easy answer is to say that most of my work is in private repos / gitlabs. But that doesn’t cover every case.
To start, I had a lot of repos on my public github that were made, and had basically nothing done. These are usually when we have an idea amongst a group of friends and in the early stage I’d throw up a repo to have it. They’d get invited and most of the time things fizzled out. Other projects to work on, or the idea just wasn’t there. But it acted kind of as an anchor to remember the project and toss things if we actually did anything.
But why the forks with no new commits?
The majority of it has to do with the nature of my consulting job. I have shop rights for some things, but not for all. Any time I need to tweak a project to make it work for whatever I’m doing, I typically try to fork it first. That way if I am allowed to push whatever it is back upstream, or want to, I can. More often than not I can’t. Either the code is disgusting and barely functional because I had to write it on the fly, or it would somehow get murky legal waters between client and employer. Often they’re one-offs to do something that’s already an edge case, and often not valuable to upstream devs as they’d also become responsible for maintaining it if I pushed it. I like to write most of my code like I assume the next guy is a homicidal psychopath that knows where I live. However, in practice this is not always feasible due to time constraints. For example this project I bashed out in about 4-5 hours of panic after I was asked to save a botched project at the last minute: https://github.com/hon1nbo/BCTt )
That’s an example of when I had more time than a lot of the tweaks and scripts I’ve used. I also made a config script and the README for that before I pushed it, as originally the client-specific secret was hard coded. That’s a project that I made for an edge case, but actually was usable outside my specific needs. In my work however, I’m more often trying to make tools work in client-specific cases, where either the need doesn’t exist outside their network or I’d be giving too much away by sharing it.
So most of the code sits, or gets scrubbed. I have a lot of personal projects on private repos still I’ve been mulling the release of.