Hacker News new | ask | show | jobs
by gkoberger 4112 days ago
I love OSS, however I hate this argument:

"You could certainly purchase access to private Github repositories, but most certainly you’d rather want to invest your capital in more pressing matters."

That's their #1 reason? GitHub is, like, $7. If that saves you 10 minutes of having to maintain your own servers? Completely seems worth it to me. Or, GitLab or BitBucket have free private repos.

My argument is this: your time is the most important thing you have, and you shouldn't be wasting your time on maintaining your own source control servers.

12 comments

Time is often managed at a lower pay scale than money and is less likely to be micromanaged. It is generally easier for a developer or manager to squeeze in a few extra hours working on a specific need than it is to get the equivalent money dedicated to the exact same issue. This is probably because most companies look at their employee's salaries as sunk costs and fail to factor in the opportunity cost of an employee's time. Not saying that is the correct way to do things, just what I have discovered through experience.
I really wish GitHub only counted private repos that have more than one collaborator. If you are like me and have dozens and dozens of smaller repos that only you yourself work on, it makes the GitHub model a non-starter (and I'd love to be GitHub only, rather hosting my own server or using bitbucket).
For a private repo with just yourself, why not use BitBucket? You don't need any of the social features of Github in that case.
Simply personal preference. I'd like to use the same supporting tools, UI, zero context switching between products, etc. Funny enough, I use some of the social features (issues/milestones/wiki) for project management, even for my own projects.
Bitbucket provides those. I use it professionally because I like all my stuff in one place and that's where I keep my free private repos.
While bitbucket have some similar features to github (or vice-versa), the features are not the same. So if you want to use only one interface, and you prefer github for projects with multiple collaborators, bitbucket isn't really much of an alternative. Or, if you prefer bitbucket, but is also professionally involved in a number of projects hosted on github, you're still stuck with two interfaces (this is likely the case for pretty much everyone, as almost everyone will have a dependency of some kind hosted on github, and at one point or other you'll probably want to/have to deal with upstream).

This would be true even if bitbucket was (subjectively) better: assuming one values having one consistent interface more than the "best" interface.

I don't necessarily think github's interface(s) are better than bitbucket (or that either are good, for that matter) -- but I can certainly relate to the desire for having a consistent interface, to lower cognitive overhead.

For me, that's the main argument for using Free/Open solutions, that one can self-host: one can guarantee consistency, which in turn can save time. There'll always be a balance between how much time is needed for managing such solutions, and between stability and stagnation.

All that said, it's hard to deny that github managed to leverage the network effect much more dramatically than either self-hosted CVS, stand-alone bugzilla+wiki or Source Forge managed to do. (The latter probably because they didn't realize what they business model should have been: not ads, but charging for forge-services. Then again, AFAIK github isn't profitable, either, yet?).

Re: Debian -- I see that the notabug.org gogs repo[r] contains a debian-folder, and the package build-depends on gccgo (and gccgo-go, which doesn't appear to be in Debian at all, but is in Ubuntu[g]). My initial attempt to build it under plain Debian 7.0 Wheezy (without gccgo-go, just with a "-d"-override) failed -- but perhaps it works on Ubuntu 14.04.

I don't have any idea about the quality/approach taken wrt Debian packaging, just thought it might be a point of interest.

[r] https://notabug.org/hp/gogs/

[g] http://packages.ubuntu.com/search?keywords=gccgo-go&searchon...

How would Github differentiate between you and another collaborator that uses your logon details?
Good point "here's our Github account" would become a common solution for free private repos.
Short of biometrics, there is no way any online service can differentiate between you and another person with whom you have shared your credentials.

I'd like to hear counterexamples if you have any.

How does BitBucket? They don't, and that's okay, there will always be those who push the boundaries of the rules, but most people will be honest.
What about is tiers based on storage?
Yeah. I pay for GitHub micro plan and indeed for my personal libraries I use bitbucket. It got a decent cli so I create the remote repo from my terminal.

I would love to use GitHub more, but it becomes pricey for 20+ repos.

I think it's unfair to compare self-hosted to shared hosting. GitHub Enterprise is not $7 self-hosted. It's $5K/year.
For my personal stuff, I'm happy to pay GitHub to host my private repositories, but it's not always that simple. I work for a large, bureaucratic corporation in a heavily regulated industry. If something costs money -- even a dollar -- someone has to pay for it, which means that someone has to approve the expense, which means you need a risk assessment and permission from legal. Even if it doesn't cost money, there are a lot of bureaucratic hassles associated with using external services to store company IP. Sure, maintaining your own source control server takes time, but so do the alternatives.
It's not really that simple. For people that already do it - managing servers is easy and doesn't take much time at all. One of the main reasons to run your own code repo is that you're in control of your data and you're not limited by the performance or features of the upstream vendor. Not to mention how much faster having your code repo running internally is - when you have 100 people commit code to and from git all day along with using other 'cloud' products you end up eating up a lot of bandwidth - and in many countries that's really expensive (Australia being one of them).

Remember companies that sell cloud services have a vested interest in making you believe that it always makes financial sense to use a cloud hosted product which as those of us that have experience in both cloud hosted and on site deployments will tell you is not always the case.

Exactly. I have a somewhat beefy server that I continue to use just for personal things. Once you're well acquainted with self hosting, the successive time investment drops dramatically, and the rewards become substantial.

At this point, my server replaces:

    - A site host
    - Image host
    - Streaming video service (Netflix replacement)
    - File host (Dropbox replacement)
    - Build server
    - Git repository host
    - Proxy
    - Render server
    - Hosts all the random webapps I write
    - Game hosting
By spending my time, I not only get these services, but the expertise to manage and run other services. It's less rewarding in the short term, since I certainly didn't get all this right when I bought the thing, but at this point I am getting a ton of return on my invested time.
Do you need a static ip for that kind of stuff?
It's not necessarily a requirement, but I find it very helpful. Any dedicated server package will include one, so it's not to much of a worry.
Well, your salary is something of a sunk cost. Now depending on the amount of time spent managing that GitLab server, it might make financial sense. If it is truly easy to maintain as they seek, and claim, then it just might make sense.

Consider the organization that needs hosted GitHub enterprise - a pricey proposition. Unless you could otherwise have spent your time working on a feature that would directly increase sales (which is probably unlikely in an enterprise locale) then your time really is just sunk cost.

So to recap, for the one-off private repo - probably easier and more sensible in terms of resources to use GitHub. For a large organization that has man hours to burn or otherwise needs an in-house hosted solution, GitLab (or Gogs) could make sense.

GitLab has been ridiculously easy to manage for us. Really my only complaint is that it's slow as all hell, and gives up too early on a lot of pages because of this.

Still, compared to the Perforce server crashing every other week (a slight exaggeration, but still), it's a marked improvement.

Some people also have regulatory reasons to store their code on-premise. Sometimes the "correct" answer is to hire a team of sysadmins and one of their responsibilities is to maintain a SCM infra in-house. It really isn't that hard.
> My argument is this: your time is the most important thing you have, and you shouldn't be wasting your time on maintaining your own source control servers.

And then you wrote this comment, spending these alleged pair of minutes bragging about how cheap it is to just pay for something.

On the other hand, I remember spending a fair bit of time and energy at my current company to get approved 10$ per month Bitbucket plan. Let's say it took us months to actually get it declined. Then, we happily spent 200$ per month for a virtual machine that we had to maintaint and ended up installing Gitblit.

That's if you only have 5 repos. If you don't want to be forced into the 1-big-repo thing and have many discrete projects/microservices, GitHub gets really expensive fast.

I'd love to use GitHub for my personal projects but there are too many different ones.

I wish it were metered by what it actually costs them (storage) rather than stupid arbitrary numbers like repo count.

Until you have to deploy something with automated provisioning tools and Github or Bitbucket is down. It has happened a few times. We use gitolite with no UI for this very reason.
My argument would be your freedom is the most important thing you have, and you shouldn't throw it away for the convenience of github.
Some people have way more than 5 repositories that a $7 plan brings. Also, if you don't want to host it yourself, GitLab.com has free private and public repositories https://about.gitlab.com/gitlab-com/
For the record, I think GitLab is awesome :) There's a ton of amazing reasons for large companies to use GitLab (storing your own data, customization, etc) that I completely stand by.

My umbrage is simply with the price argument Gogs lead with; it'll always end up cheaper to use GitHub (or another hosted solution) than to run your own.

That's true if you're running a typical business. But there really is a whole other world that opens up when things are free.

Maybe you are a young person, and don't have access to online payment methods. $84/year or more could be really significant for a 15 year old, or someone in a country that Github can't legally transact with.

Or maybe you need to roll your own hosting solution. Maybe for security, maybe you're integrating with APIs like a corp SSO that are not on the public web, etc.

We do a few wacky things in our business (test infrastructure SaaS) and sometimes we need to do stuff at scale where all available commercial solutions assume a single user. Open source solutions are a godsend there. We don't have that need for code repos (we use Github) but I can totally see why others would need it.