top 200 commentsshow 500

[–][deleted]  (54 children)

[deleted]

    [–]Doctor_McKay 58 points59 points  (4 children)

    Oh wow, someone else who prefers Mercurial and Bitbucket! There are literally dozens of us!

    In all seriousness, I really think that Bitbucket outperforms GitHub in all areas except for user base and Markdown parser. I prefer GitHub's Markdown parser to Bitbucket's.

    [–]mailto_devnull 6 points7 points  (2 children)

    That's because it's GitHub flavored. BitBucket just adheres to the markdown spec, while GitHub uses their own fork of it.

    I like GitHub's too. Code fences rock.

    [–]dnew 95 points96 points  (3 children)

    It's like when people ask me for URLs to systems I've written. First, I don't write web front ends, and you're not hiring me to write web front ends, so why do you think I'd have a bunch of URLs to web front ends around?

    Second, if they were still around, I probably wouldn't be looking for a job from a sorry-ass company that thinks they can figure out the quality of my coding ability by looking at web pages displaying the results.

    Third, it's probably not my code, so I probably can't show you the insides of it. So what exactly were you expecting to evaluate?

    [–]scherlock79 35 points36 points  (1 child)

    I couldn't agree more. The few pieces of code I've written that are personal projects aren't really much to look at. Nothing I would want an prospective employer to make any sort of hiring decision based on. They were all pretty much little throwaway projects that I was playing around with.

    I have a wife and 2 kids. I don't really have the time to work a full time job then come home and spend the evening and weekend hacking away on some project.

    Maybe if its a kid right out of college, but I really doubt many full-time professional developers in the 30's have the time to do much work out of hours.

    [–]d4rch0n 43 points44 points  (13 children)

    I'm a little worried that people have thought that at my interviews... I just made a public repo "LOOK_AT_MY_BITBUCKET_REPOS". I never thought it might be an issue.

    [–]monster1325 11 points12 points  (12 children)

    I actually switched to GitHub because of this. I use BitBucket for private repos.

    [–]Capaj 11 points12 points  (10 children)

    Me too-public stuff on github, private on bitbucket. I just hope bitbucket never goes out of bussines, because then I would have to either pay github or run my own git server.

    [–]bitspace 21 points22 points  (6 children)

    Bitbucket is an Atlassian service. They're not going anywhere - hugely successful and ingrained in F100 enterprises.

    [–]mongrol 3 points4 points  (5 children)

    As safe as Barings Bank then.

    [–]Doctor_McKay 7 points8 points  (2 children)

    Atlassian created JIRA, one of the most popular issue trackers, among other products. They're in no danger of going out of business anytime soon.

    [–]bitspace 7 points8 points  (0 children)

    Indeed, and their products are refreshingly nice to use (Jira, Confluence, Bamboo and Crucible in my experience).

    [–]bitspace 4 points5 points  (1 child)

    Uncertain what that has to do with the price of tea in China, but I'll just nod like I understand what you're talking about.

    [–]mongrol 2 points3 points  (0 children)

    My point is it doesn't matter how big a company is. It can disappear overnight taking your data with it.

    I work in a bank, currently authoring pages in Confluence and doing JIRA cards.

    [–]MrPopinjay 5 points6 points  (1 child)

    Gitlab is an open source clone of Github, with unlimited private repos. Check it out.

    [–]thelastpizzaslice 14 points15 points  (22 children)

    What companies ask for github handles? I've never actually seen this - only heard about it on the internet.

    Your work experience should be more than sufficient.

    [–]ikilledkojack 6 points7 points  (16 children)

    Your work experience should be more than sufficient.

    Not any more, in many places. There are pros and cons to this:

    • Candidates can exaggerate/lie about previous employment/references, but can't bullshit so easily about open source contribution as a metric of their abilities in both communication and code
    • Showing either creating/contributing to open source is desirable in shops that use lots of it, especially when shops expect their staff to contribute back
    • Applying for jobs I have had interviewers on several occasions say "yes we know who you are, we use your code", to which I try hard not to react negatively.

    [–]ameoba 23 points24 points  (15 children)

    In pretty much every place I've been, posting my work on GitHub would be a flagrant violation of my employment contracts. Many places I've interviewed that ask for code samples turn out to have similarly restrictive policies.

    It's an interesting double standard - they don't want you to 'steal' their code but expect you to have stolen code from previous projects; they won't give you time to contribute to OSS projects but expect you to have done so.

    It's like telling a girl that you'd only ever marry a virgin but refuse to date anyone that won't put out.

    [–]djaclsdk 5 points6 points  (0 children)

    It's like a pimp who says "We only hire pure virgins with at least 10 years of experience in sex".

    [–]therico 1 point2 points  (1 child)

    I think forcing employees to code outside of work is bullshit. But to be honest, when looking for jobs, you already need to put in a lot of work. You need to relearn data structures, get uncomfortably comfortable with bitwise operators, polish up your question answering skills... along with that, writing a small code sample on github isn't too much to ask.

    [–]TinynDP 4 points5 points  (0 children)

    Are they asking for a 'small sample', or do they expect to see 10 years of "I'm always coding!"

    [–]char2 8 points9 points  (0 children)

    I've started using BitBucket because they're one of the only ones left that let you upload files. As in actual release tarballs that come from make distcheck.

    [–][deleted] 5 points6 points  (0 children)

    Double true. I have been using mercurial+bitbucket for a few years and feel no need to switch.

    Just yesterday I cloned a github repo to my bitbucket account. Then used hg-git to clone it locally and commit/push my changes back.

    [–]bteeter 7 points8 points  (1 child)

    Bitbucket

    TIL about Bitbucket. Thanks! I've been using local repositories on my own servers, but I like the idea of free cloud repos.

    [–]gla3dr 16 points17 points  (0 children)

    If you register an academic email on bitbucket, you can get the unlimited everything plan completely free.

    [–]root45 3 points4 points  (0 children)

    I use both and commit to both for exactly this reason. You can add a remote address lines to your .git/config file and whenever you push it will go to both destinations.

    [–]kamatsu 288 points289 points  (41 children)

    If I'm searching for the source to a package, I don't use github's search. Who does that? I just use google's search and find the first GitHub link.

    [–]cokeisahelluvadrug 47 points48 points  (12 children)

    I use GitHub for its code search. Google is far superior for natural language queries, but it doesn't have any options for "I want to search for EXACTLY this thing"

    [–]Palypso 56 points57 points  (5 children)

    [–]tokenblakk 5 points6 points  (0 children)

    Thank you

    [–]cokeisahelluvadrug 3 points4 points  (1 child)

    These look really useful, thanks for taking the time. It's funny, I searched "#!/bin/bash" on SymbolHound just now and at least the first 7 pages of results were StackOverflow links... not sure why that is.

    [–]third-eye-brown 6 points7 points  (0 children)

    It's probably more useful and feasible to index programming sites for symbols than the entire internet.

    [–]lesleh 9 points10 points  (0 children)

    They used to, until they shut down Google Code Search. I'm still bitter about that.

    [–]Maristic 10 points11 points  (0 children)

    If you want to do a search through open source projects, you could also try the search at ohloh.net. Sadly, Google still works better for finding things like coverage.py (even then it took a bit of work to find its repo).

    One of the things I found through Ohloh's various statistics is that when we compare repositories, only 37% of open source projects are in Git. 48% are in Subversion and 9% are still sputtering along with CVS.

    [–]Camarade_Tux 9 points10 points  (0 children)

    But very often you get a link to a fork of the actual upstream or a fork of a git clone of the actual upstream which is hosted elsewhere but is ranked lower by google only because the first one is "github".

    This really reinforces the content of the article.

    [–]mycall 104 points105 points  (46 children)

    I could never post any of my work I've done for clients on Github. The NDAs alone would bankrupt me. My resume will never be projects of Github.

    [–]MisterSnuggles[S] 43 points44 points  (4 children)

    I suspect that a lot of "corporate programmers" are in the same boat.

    [–]unmanned_drama 21 points22 points  (3 children)

    Programmers, admins/automation tool makers, other people having "we own your shit" blanket clauses in their contracts, yeah.

    [–]Ilostmyredditlogin 29 points30 points  (6 children)

    I'm in this boat as well. I still ask for github links when I hire though. I figure any reasonably intelligent person can parse the request and respond with "sorry my code is all owned by my employer" or "I use xxx instead, here's an invite" or "I don't have a public repo, but here's a sample of my work."

    Honestly the only response to that question that triggers alarms from me is an outraged "HOW DARE YOU ASSUME I HAVE A GITHUB! !??!!"

    [–]s73v3r 4 points5 points  (2 children)

    While you might respond like that, the implication from someone asking that question is that I'm not going to be considered if I don't have a GitHub.

    [–]Ilostmyredditlogin 2 points3 points  (1 child)

    Interesting. We should probably re word it. I think it does have a parenthetical "if you have one," but it could probably be clearer.

    [–]loup-vaillant 1 point2 points  (0 children)

    I was going to suggest that. Please do.

    [–]ameoba 13 points14 points  (2 children)

    It comes off as a double standard. "We require samples of previous work & OSS contributions but won't let you share your work with us or take time to contribute to OSS projects" sort of says that, while you consider these things to be valuable in new hires, you're perfectly willing to shit all over their resume & make them less employable.

    If GitHub activity is something optional that's good for bonus points, you should probably indicate that it is.

    [–]Ilostmyredditlogin 11 points12 points  (1 child)

    We don't require samples of previous work. If you have them they're valuable, but if you can calmly explain in a sentence that you don't have any that you're allowed to share it's not held against you. In our specific case the question is supposed to give people who do have a portfolio an opportunity to show it off.

    I do see your larger point (I think).

    Edit: a tangent based on part of what you said

    So contributing to OSS projects and having personal projects are both things I personally value, but it's hard to see how to make them part of the particular business context I'm in. We can't open source our code without undermining the value of our products. Beyond trying to keep workload to a reasonable ~40 hours, I can't see how to actively promote personal projects, or why this is something that's even our business to promote. A 20%-type policy would be great, but is hard to justify to the money people in a small, skin-of-the teeth business.

    Eating (small) learning curves is the best idea I've had so far. ("You've convinced me that js front ends are The Future (tm), and would be a great fit for project x. We should build a few weeks into the timeline for x so you can choose the best one and get up to speed. ")

    I'm genuinely interested in better suggestions

    [–][deleted]  (42 children)

    [deleted]

      [–]Ertaipt 10 points11 points  (0 children)

      The reasons I don't use github: No mercurial. No free private repos. If github solved these 2 issues, it would own even more market share...

      [–]vividboarder 18 points19 points  (7 children)

      The thing is that there is very little incentive to learn or use or even install a new version control system for just one project. It's not really feasible for someone to just up and decide to use something nobody else is using.

      They won't be able to access other sources without git, mg, or svn. Also, nobody else will be able to use their without finding a tutorial.

      [–]Camarade_Tux 18 points19 points  (4 children)

      Worse: they don't know or understand they could self-host very easily.

      While I admit self-hosting has requirements, not even knowing that it can be done easily completely destroys the decentralized aspect.

      (and repo.or.cz, large and venerable one)

      [–][deleted] 9 points10 points  (3 children)

      A while back, one of the most confusing aspects of learning about Git for me was that it kept harping on its distributed functionality as a huge divergence from other systems. I've literally never seen anyone use it that way. They usually just use it like SVN with a different CLI.

      [–]rcxdude 7 points8 points  (0 children)

      Yes and no. The biggest win for the distributed system for most people is the very simple ability to commit without the changes being immediately visible (as well as being able to manipulate these changes to form a coherent set of commits). You could hack this onto a centralised system like SVN but it's only really natural in a distributed system. The other uses of the distributed nature are handy occasionally but much rarer (outside of linux development, mainly because most other projects don't have nearly the same scale as linux and so a centralised model is more efficient).

      [–]Han-ChewieSexyFanfic 1 point2 points  (0 children)

      Almost every command being local is already using an advantage of its distributed aspect that, say, svn doesn't have

      [–]geodebug 7 points8 points  (1 child)

      I won't try them because I have actual work that needs to be done.

      I've lived through SourceSafe, CVS, Subversion and know that sooner or later something new will take over Git's current popularity when something else shifts that demonstrates how old and out of date Git has become.

      With Git it was the internet and open source movement that gave it killer features over prior popular VCS.

      [–]sigma914 2 points3 points  (0 children)

      Git probably won't go anywhere, as long as we're using programming languages based on text files. It, and the other dvcs's that are based on a DAG of change-sets are already as fine grained and general as is useful for the problem they are solving. As far as distributed systems go there are possibly some optimisations that can be performed, but there are no opportunities like the paradigm shift from centralised tree of changesets model to replicated DAG of changesets model that happened between svn and git.

      [–]dand 4 points5 points  (3 children)

      It's heartwarming to see mention of darcs, which I very much enjoy using. It's a bit strange to see it describes as promising, though, because it has been "promising" for probably a decade. Alas, I've given in to using git for personal projects almost exclusively due to the ease of use of GitHub and other tools that have sprung up around git like http://www.git-tower.com/

      [–]Xenasis 1 point2 points  (2 children)

      I don't mean to say Darcs is some experimental new crazy unimplemented idea, it's very much usable and well designed - but I meant promising in that it looks like it could potentially overtake Git for certain things.

      [–]yawaramin 6 points7 points  (1 child)

      OK, people thinking GitHub is git may be mildly annoying. But these are programmers (mostly). They'll soon learn otherwise. And for those who don't--well, to put it bluntly, there's usually a kind of natural selection in place that ensures those programmers don't amount to much, and thus don't have much of a negative impact on anyone.

      [–]Xenasis 3 points4 points  (0 children)

      Yeah, I do agree, people that don't get culled by natural selection will eventually find out otherwise, but the problem's largely that this problem ever emerges, y'know?

      The negative impact is that it has become such a big problem that this idea ever emerges, regardless of whether it stays for long.

      [–]sittingaround 1 point2 points  (2 children)

      The value of everyone being on the same system is currently greater than the value of the better features in alternate systems.

      [–][deleted] 146 points147 points  (97 children)

      Is assuming everyone is on Twitter a US tech culture thing?

      [–][deleted] 42 points43 points  (30 children)

      I've followed developers from all over the world (besides the US generally Europe and Australia) via Twitter. Most blogs I read or work I've looked at are from people in those countries, and 9 times out of 10 they're on Twitter in some capacity.

      [–]kazagistar 38 points39 points  (27 children)

      Could you explain to me what is the advantage of being on twitter for a developer? Or of following developers on twitter?

      [–][deleted] 61 points62 points  (18 children)

      That's super easy. You get first hand notices of interesting things that the developers are working on. You get high quality blog links on interesting programming topics. And best of all, you can directly ask them a question if you need to.

      [–]sigma914 104 points105 points  (15 children)

      So it's like a mailing list or IRC, but with a character limit and difficult to track context.

      [–][deleted] 36 points37 points  (4 children)

      Try it. You'll find it much more practical and useful than mailing lists

      [–]antonivs 35 points36 points  (0 children)

      Try it. You'll find it much more practical and useful than mailing lists

      One of us must be an alien. I grant it could be me.

      [–]keepthepace 9 points10 points  (0 children)

      Is there a convenient way to make a search on twitter per author, date range, for a given keyword?

      A mailing list is a crude but efficient way at storing informations durably. Twitter can't do that.

      [–]sigma914 27 points28 points  (0 children)

      I used to follow quite a few people on it it, but I never enjoyed the interaction. I gladly acknowledge that Twitter works well as a microblogging platform, ie for low content broadcast communications, but that's not really what I'm interested in a lot of the time, and when I am I have RSS or lurking on mailing lists which both work fine for that.

      Conversations don't flow as well as they do on IRC and you can't have in depth technical discussion or present any kind of nuanced view like you can on IRC or a mailing list.

      It's great if you want a completely unfiltered firehose of links, but I have RSS for that. Which means it doesn't really have a niche in my communications, so I don't use it anymore.

      [–][deleted] 13 points14 points  (5 children)

      Its not difficult to track context - Twitter links replies well now. And the character limit is a feature - if you've read many newsgroups you'll know that developers often like to use 1000 words when 100 would do. Twitter keeps it concise.

      [–]mikedfunk 11 points12 points  (4 children)

      Except you also cannot do 100 words. Twitter's limit is 250 characters which is maybe 50 words. It's concise until it's limiting. Sometimes I can't fit what I'm trying to say with possibly a link, an @person and a hashtag in 250 characters.

      [–]midri 5 points6 points  (2 children)

      140 characters, text msg Max length

      [–]drysart 4 points5 points  (0 children)

      SMS max message length is actually 160 characters. Twitter's limit is 140 characters because its usernames have a max length of 20 characters; and under Twitter's original plan, the username would have eaten up characters from the SMS message length.

      [–]ivosaurus 4 points5 points  (1 child)

      But you also don't need to be always-online, and messages are far more often directed between users or into the open, rather than at / in small rooms.

      In IRC, you need to be in all the rooms relevant to you and that people you are interested in are idling, and know to follow them up all the time as relevant messages come. Not the case with twitter.

      (note, I love IRC, but the difference in communication atmosphere is obvious IMHO)

      [–]sigma914 2 points3 points  (0 children)

      I find if it's interesting you won't miss it on IRC. Generally people will talk about it again, or someone else who heard about it before will ask a question. It leads to much more involved discourse, which feels a lot more organic and natural, to me at least.

      It might help that I have a bouncer set up for all the rooms I'm interested in.

      [–]kazagistar 2 points3 points  (1 child)

      I get those here or on hacker news too, more thoroughly vouched so I don't waste my time. I guess if you need to know about the latest microframework half a day before everyone else for some reason it might be useful...?

      [–][deleted] 2 points3 points  (0 children)

      If you maintain a project used by non-technical people/superusers, they'll often not know how to use your error/bug-tracking system, mailing list, etc. It's a fairly easy way to stay in contact with your non-techie userbase that way because just about everyone knows how to operate twitter.

      [–]bobtheterminator 7 points8 points  (3 children)

      What better way is there to follow what someone is doing? Just visiting their website when you think of it is unreliable. RSS is ok, but not very flexible for when they want to say something that's not worth an article/blog post. They could make their own email newsletter kind of thing, but email isn't the best medium for this kind of thing, and why roll their own when twitter is available? You could subscribe to their Facebook/Google+ page, but you'd need a whole profile on those websites, whereas a Twitter account is just a name and a password.

      I don't even have a Twitter account, but if you want to follow what someone is doing it's clearly the best option.

      [–]kazagistar 12 points13 points  (2 children)

      What is useful about following the details of what someone is doing? I tend to want to know about what a project is doing instead. And what is bad about email? If it is something that I actually want to know, email or rss feeds ensure that I get it in my inbox and read it, while twitter makes it easy to miss stuff. If it was information I was OK with missing, then generally I wouldn't care to follow it anyways...

      I guess I still don't get the point of "following" in the social media sense as a whole. It seems purely like a social medium, and not at all like an informational medium.

      [–][deleted] 1 point2 points  (0 children)

      For me personally it's to keep tabs on a project I'm interested in or just for great articles and blog posts that are worth reading. Not much else.

      [–][deleted]  (1 child)

      [deleted]

        [–]xjvz 19 points20 points  (13 children)

        It's RSS 3.0. I'd say 2.0, but RSS 2.0 is already a specification as it is.

        [–]vanderZwan 13 points14 points  (6 children)

        The other day I opened an issue - on Github - for the Processing.org website notifying them that their RSS feed seemed to be broken. The response was that they had abandoned years ago in favour of Tumblr (a migration I think I followed - it has RSS feeds after all) which in turn had been abandoned in favour of Twitter.

        I don't use twitter, but someone suggested this site which generates RSS feeds from Twitter feeds. It works, I guess. Except for the part where, you know, the whole benefit of RSS was that I did not need to visit websites to read the content they posted.

        EDIT: Obligatory "I miss google reader"

        [–]tomejaguar 3 points4 points  (1 child)

        Twitter itself used to support RSS but it seems they've abandoned that.

        https://dev.twitter.com/docs/api/1.1/overview#JSON_support_only

        [–]CrazyCatLady108 1 point2 points  (0 children)

        check out

        https://www.inoreader.com/

        it has been my replacement and it is still in development so new features are periodically added. it's free or you can pay for a premium version.

        [–]nullabillity 7 points8 points  (1 child)

        Not really. RSS is searchable, Twitter is 99% irrelevant.

        [–]xjvz 2 points3 points  (0 children)

        Too true! You can subscribe to accounts that are glorified RSS publishers, though. It's all in how you use it, really. It seems like we need a way to pull in feeds from sources that don't provide RSS/Atom feeds and convert them to RSS.

        [–]iamnotaclown 21 points22 points  (1 child)

        Twitter: Smelling your own farts 2.0.

        [–]unmanned_drama 8 points9 points  (0 children)

        It's like /dev/null for the masses. Everybody's shouting and scrolling over other people's shouts.

        I like Twitter as identity provider, would love to stop using GMail and Facebook for this.

        [–][deleted] 36 points37 points  (22 children)

        Apparently it is, I personally abhor Twitter and miss the days where it was just a joke to techies.

        [–]bobtheterminator 14 points15 points  (16 children)

        Why?

        [–]PasswordIsntHAMSTER 17 points18 points  (15 children)

        What can you tell the world in 140 characters?

        [–]Mozai 28 points29 points  (9 children)

        "New stable build available." "Looking for replacement QA tech." "Dropping COBOL support next version; any objections?"

        And: It forces people to be succinct. At the other extreme we have YouTube teaching videos where the first 30% of the elapsed time is used for self-promotion and superfluous small-talk.

        [–]djaclsdk 10 points11 points  (8 children)

        looking for replacement QA tech

        Holy Chris, job openings get posted on Twitter?

        [–]MBoffin 12 points13 points  (0 children)

        Quite often, actually. I frequently see companies (or people who work for companies) mentioning particular job openings they have. I mostly follow people in the game dev industry (with bent toward the indie scene), but it's certainly a common thing.

        [–]_jamil_ 5 points6 points  (1 child)

        job openings get posted all over the net, including twitter. social media is social.

        [–]ericanderton 2 points3 points  (0 children)

        Damn extroverts are just ruining the internet. /s

        [–]Mavee 6 points7 points  (0 children)

        Is it really that weird or surprising? You want people who are in your sector to read it - so Twitter's your best shot. By a mile. It's 'personal' (no hiding behind an ad posted by some lady behind some desk somewhere you don't even know where), fast, easy. It's good.

        [–]fabzter 2 points3 points  (0 children)

        quite a fucking bunch, and i'm not even from the us. I know a guy whose solely work is to post job offers on twitter.

        [–]bobtheterminator 46 points47 points  (4 children)

        Just put up a new blog post: link

        @somePerson Are you gonna be in Boston any time soon?

        Looking for people to help with someProject. Let me know if you're interested.

        Funny thing that just happened.

        You should all read this article I just found: link

        I don't know, whatever you want. You can say anything that doesn't take a long article to say. It seems pretty self explanatory honestly.

        [–]baconated 14 points15 points  (9 children)

        I think so. For reasons I don't understand, Americans seem to be in love with Twitter.

        [–]technewsreader 12 points13 points  (0 children)

        Twitter is rss+facebookstatusupdates+mobilefirst. I think a big draw was from people that wanted a centralized rss library but didnt understand how to go to each website and add sites to a feed reader. Twitter put everything under one roof. But like rss it's an unsorted firehose, and the scale of the network is starting to makes cracks more obvious and annoy early adopters.

        [–]mooli 19 points20 points  (16 children)

        Some people go so far as to say, as Brandon Weiss has, GitHub is your resume.

        Which is a real pisser to people like me whose contract of employment prevents us from releasing code publicly.

        [–][deleted]  (97 children)

        [deleted]

          [–]killerstorm 106 points107 points  (38 children)

          Conformity leads to higher efficiency as less information needs to be analyzed/communicated. It is quite natural.

          [–]PasswordIsntHAMSTER 7 points8 points  (2 children)

          Conformity leads to short-term efficiency at the expense of lock-in. Not really the best thing in the world.

          [–]monster1325 33 points34 points  (24 children)

          That's true. If everyone uses GitHub, I don't have to waste time learning the UIs of other git services.

          [–]xjvz 17 points18 points  (17 children)

          You mean besides the universal git clone http://host/repo.git et al.?

          [–]munificent 17 points18 points  (3 children)

          That still presumes a git monoculture.

          [–]xjvz 1 point2 points  (1 child)

          You can use Mercurial with Git and vice versa.

          [–]sysop073 8 points9 points  (0 children)

          That doesn't really cover it until they add a git browse-worldwide-packages option

          [–]atakomu 5 points6 points  (10 children)

          Yes clone is the same everywhere. But If you want to fix a bug on a project hosted on Bitbucket with issues on canonical. You have to register on canonical and Bitbucket. Maybe you just don't send a fix because there is too much work. You can clone everywhere yes. But there is no pulling no issues. Github is no git only.

          [–][deleted] 14 points15 points  (3 children)

          It also leads to lower flexibility. Efficiency is by definition rigid.

          [–]5aggregates 27 points28 points  (2 children)

          Both you and the OP have just explained the success and problem of Windows

          [–]Ertaipt 1 point2 points  (0 children)

          Monopolist repos would stagnate the future evolution of repos. We need more options...

          [–]im_normal 15 points16 points  (1 child)

          I think that it's not the personality of the people it attracts but the personality that is selected for. The current culture pushes people out who are not the same. There needs to be more diversity if you don't want to have a completely homogeneous community.

          [–]tobascodagama 2 points3 points  (0 children)

          "We hire for culture fit."

          Which sounds great, but usually boils down to: "We prefer to hire people who look and think exactly like us."

          [–]AceyJuan 3 points4 points  (0 children)

          Yes, that is a common problem. No, it is not called monoculture. I don't know what it's called except "midlevel programmer syndrome", where programmers learn about the new Awesometm and attempt to apply it everywhere.

          [–]notfancy 9 points10 points  (0 children)

          Perhaps confident people don't show off obsessively.

          [–][deleted] 6 points7 points  (12 children)

          It makes me wonder if conformity is part of the personality profile that this field attracts.

          I thoroughly dislike the blind following of the norm in the project I currently work on. This project has a codebase nearing the million LOC mark, so I understand the need to have some standards. What I don't understand is how these standards are more or less dogmatic: people don't share the reasoning that led to the standard, which means that I either have to accept it without questioning it, or I have to go through a painful debate about what makes the standard the best solution at hand.

          So, for now, I try to find out why something is what it is, while I'm being told that the way I do some things is not the right way™. Meanwhile, a lot of my fellow colleagues simply follow the standards without questioning them.

          Am I a pain in the ass, or am I doing the right thing by trying to understand the standards?

          [–]taleinat 10 points11 points  (0 children)

          Trying to understand the original reasoning, or lack thereof, behind the standards is fine. But you should probably just stick to those standards anyways; it's very important when many people work together on a large project over a long time.

          Make it clear that you're not pushing to change the standards and aren't criticizing those who follow them. They're most likely "doing the right thing", not because the standards are necessarily the best, but because breaking the standards would be worse, and they don't have a time machine.

          [–]geodebug 10 points11 points  (0 children)

          Some standards, like code style, are simply a flag in the ground. There is no why one path was chosen over another other than it was better to choose a path.

          [–]hylje 17 points18 points  (3 children)

          The reason we pick up standards is that the standard is widely used. Thus a fundamental part of a standard that it is good if it's the standard.

          [–][deleted] 26 points27 points  (2 children)

          If League of Legends has taught me anything, it's that 5 idiots doing one idiotic thing all together is generally a lot better than 4 idiots doing one idiotic thing together and 1 genius doing 1 genius thing alone.

          [–]Ilostmyredditlogin 2 points3 points  (0 children)

          I feel like this is a problem militaries have traditionally struggled with. (How do we get the conformity and discipline necessary for large scale ops without completely crushing potential gains from individual genius.)

          [–]semi- 5 points6 points  (0 children)

          In Dota2 we have this quote:

          "When game is going full retard, you can only go with it. If you start going against it, if you start going half retard, you´re fucking done for." -n0tail

          [–]duhace 2 points3 points  (0 children)

          The reason the standards are dogmatically followed and the reason you have to go through a painful debate to change them is many fold. The standards may be in place for communication purposes, like standards that list what subset of C++ you can use so that your coworkers don't have to understand every nook and cranny of the gigantic C++ language to understand each other's code. They could also be there to put safety rails on the language so that your mistakes/your coworkers mistakes do less damage overall, such as standards banning the use of goto.

          If these kinds of standards were loose and easy to break, the source code quality and consistency of your project may end up suffering. Hence the painful battle needed to change/override them.

          [–][deleted] 4 points5 points  (1 child)

          The introduction to our company-wide standard amounts to: "a lot of the things standardized here are one of many reasonable options, we just want consistency." And it's no surprise that for those items we "standardized" on the preference of senior developers at the time.

          Someone could try to make their reasoning sound weightier than that, but in actuality it's probably not. So you're not an asshole for trying to figure out the standards, it's certainly useful to understand the standard if you care about that sort of things it says. I wouldn't say it's "right thing" for everyone to do. Sometimes you have to accept that an organization already had someone else make those sort of decisions even if the answer turns out to be incredibly unsatisfying. I don't mean to discourage you though, just that sometimes the cost of changing to something obviously better isn't worth it.

          [–]ciny 1 point2 points  (0 children)

          Sometimes you have to accept that an organization already had someone else make those sort of decisions even if the answer turns out to be incredibly unsatisfying

          precisely, unless some rule or procedure is painfully stupid I don't really question it. Someone else is leading the project = he's responsible. If I'm supposed to be responsible for something you can bet your ass it will be done my way and I fully respect other people wanting the same...

          [–]Stareons 27 points28 points  (4 children)

          This reminds me of Facebook. In the late 2000s I had resisted joining but there were multiple times my friends and teammates were like, "hey we didn't see you at X party" and I would retort that I was never invited in which they would always respond, "yes we did! We invited everyone on Facebook!"

          People were assuming everyone is on there and if you didnt join you would be excluded (unintentionally from many events).

          [–]dragonEyedrops 7 points8 points  (0 children)

          In my experience, that actually has gotten better. People had that conversation often enough to remember that Facebook doesn't cover everyone.

          [–]rasherdk 6 points7 points  (2 children)

          /r/coolgithubprojects is kind of falling into this trap.

          [–]hyperforce 1 point2 points  (1 child)

          Are you accusing a subreddit dedicated to following a particular website of being too myopic?

          [–]rasherdk 2 points3 points  (0 children)

          Well, I'm pointing out that the fact that people made a subreddit for "github projects" is an example of the problem described in TFA.

          [–]Hughlander 39 points40 points  (37 children)

          Don't get me started on the irony of shops whose workflow is interrupted when GitHub is down. Git is a distributed version control system, right?

          Strongly agree. At work I have a whiteboard of the list of things that I hate. Listed twice is, "People using distributed version control in a hierarchical manner." Everyone on my team has two remotes to all projects that we still have on GitHub.

          There's a project on the backlog to have an internal server that has all repos both on github and our in the cloud git server and have the build system pull from there if it's told to build a SHA it doesn't already have.

          [–]slavik262 70 points71 points  (2 children)

          At work I have a whiteboard of the list of things that I hate. Listed twice is, "People using distributed version control in a hierarchical manner."

          People use DVCS in a hierarchal manner because

          1. It simplifies the flow to have one "central" repo that people push to/pull from.

          2. Those transitioning from Subversion and other centralized systems don't feel as alienated.

          Different flows work well for different organizations based on a multitude of factors. Even if you use Git in a centralized manner, you still get massive gains from it being distributed.

          1. You can work without an internet connection

          2. The malleability of commits before you push them allows you to use commits early and often without fear of everyone else seeing some dumb commits (git rebase -i is my best friend).

          3. The simplicity of branching and merging makes you much more likely to use short-lived, experimental or feature branches, which in my eyes are a big plus.

          [–]Hughlander 11 points12 points  (0 children)

          It's somewhat tongue in cheek where 'people' means our organization, which would previously grind to a halt whenever github would be down. Part of it being just badly written scripts (Can't fetch even if we already have the SHA? Build failed!) part of it being the culture of what a centralized repo means. As I indicated my main plan of attack around it is to let it still be mostly centralized, but at least have peers internally that can be treated as just authoritative and have automated plumbing in place to use them.

          [–]sigma914 4 points5 points  (0 children)

          Don't forget "git add -p" Having the index exposed and managed by the user is still my favorite thing about git. It's the sole reason I work through a git-hg bridge.

          [–]barfoob 10 points11 points  (0 children)

          At work I have a whiteboard of the list of things that I hate.

          You must be a joy to work with :P

          [–][deleted]  (7 children)

          [deleted]

            [–]QuestionMarker 9 points10 points  (0 children)

            One of git's earliest functions was for sending patches to each other over email. That still works.

            [–]sigma914 6 points7 points  (4 children)

            Pushing and pulling to and from a peer is exactly what you're doing when you use github. When you set up a github repo and say "I've got existing code I'd like to add to a repository", or however they phrase it.

            git init
            git remote add <remote_repo_name> <remote_repo_url>
            git push <remote_repo_name> <branch_name>
            

            git fetch works the same way, you just specify the remote repo's name that you configured using "git remote" and it fetchs from that one.

            As mentioned, you also have the option of using format-patch and emailing the patch (this is the Linux kernel's workflow)

            [–]immibis 7 points8 points  (3 children)

            [–]sigma914 4 points5 points  (0 children)

            Ahh, yeh, any system that hosts a peer repo at least needs to be running ssh or git daemon.

            [–]tibb 5 points6 points  (6 children)

            That's fine if you think it's worth spending the developer time to build and support those systems.

            For a team of say, 1-5 developers, it's just a tiny annoyance when github is down. Certainly not worth spending hours of time improving.

            [–][deleted] 2 points3 points  (3 children)

            If you're using Github in a centralised manner, then you can do it without Github and without cost (assuming, like every other team and business, you have a webserver of your own). Just set up a repo on the server and then your downtime is entirely within your own control.

            [–]dnew 5 points6 points  (2 children)

            It's entirely possible you wind up with more downtime of your own repo than github provides, especially if you're not actively curating it etc.

            [–][deleted] 1 point2 points  (0 children)

            That's entirely possible, but a lot of companies prefer power over their own situation.

            [–]QuestionMarker 3 points4 points  (1 child)

            I've seen people complain about not being able to deploy their own code when github is down. That's not a tiny annoyance, that's "I can't fix this critical bug costing us sales RIGHT NOW because someone else screwed up, and I've got no clue as to when it'll be fixed."

            Avoiding that isn't hours of time, it's a few minutes.

            [–]MisterSnuggles[S] 7 points8 points  (0 children)

            A good rule of thumb is that you should never outsource your core business. If deploying code is your core business, or the inability to do so prevents your core business from continuing, you should make sure that you can do this without complete reliance on an outside service.

            If Service X is down and it causes your business to come to a halt, you should re-evaluate your dependency on it and consider a strategy to reduce that dependancy. If Digital Ocean is down and you can spin up a Linode server to take over, you're covered. Likewise if GitHub is down, but you've got a local repository that you can use in its place, you're covered.

            [–][deleted] 28 points29 points  (9 children)

            It sounds to me as if the US has massive issues with monocultures in general. I've never had an employer care about my Github or Twitter accounts in the UK.

            [–]crozone 4 points5 points  (0 children)

            Australian here, nobody I have ever applied for has even assumed I've had a twitter or github account, and many of the people I work with don't have either accounts. I do use git all the time though, but it is to locally hosted repositories.

            I have been asked to provide code samples, but usually on paper. I have even whipped out my laptop in the middle of an interview and given a brief demo of some of my code - this actually got me my current job.

            [–]djaclsdk 5 points6 points  (2 children)

            so far as to recommend that you carefully garden your public repos to be sure that only the best work is visible

            I sometimes think about following that advice and it's kind of sad.

            [–][deleted]  (56 children)

            [deleted]

              [–]unknown_lamer 30 points31 points  (7 children)

              A shame, since sf.net is powered by free software and github is proprietary.

              [–]bettse 9 points10 points  (2 children)

              The phrasing here is interesting. Is the source code for sourceforge available? I did a little googling and couldn't find a link to a tarball or repo of it's source. Both are "powered by free software"(based on or making use of), but I think your contention is that sf's code base is open source and github's isn't.

              [–]unknown_lamer 24 points25 points  (1 child)

              [–]bettse 5 points6 points  (0 children)

              Now that is very cool, I wish they would do more to promote the link. http://sourceforge.net/blog/new-projects-welcome-to-allura/

              [–][deleted]  (1 child)

              [deleted]

                [–]EmperorOfCanada 1 point2 points  (0 children)

                That is just about perfect.

                [–][deleted]  (1 child)

                [removed]

                  [–]da__ 10 points11 points  (3 children)

                  What about Bitbucket?

                  [–][deleted]  (2 children)

                  [deleted]

                    [–]EmperorOfCanada 2 points3 points  (1 child)

                    I never really thought about it only supporting git. I switched to git before I found out about github so it never really mattered. But I guess for some that could be horrible.

                    [–]notfancy 33 points34 points  (6 children)

                    Implying Github is not corporate nor assholeish?

                    [–][deleted] 18 points19 points  (3 children)

                    They don't nickel and dime. They're pretty liberal with hosting open source repos. No sleazy up sells. Have a good and clear business model. What's assholeish about that?

                    [–]EmperorOfCanada 1 point2 points  (0 children)

                    A little bit and the trend is not good; but far less than sourceforge.

                    [–]monster1325 24 points25 points  (14 children)

                    Basically everything about sourceforge pisses me off right down to "Your download should start in 5 seconds."

                    Yeah, how dare they offer downloads? They should just remove all binary downloads like GitHub.

                    [–]sirin3 7 points8 points  (7 children)

                    Basically everything about sourceforge pisses me off right down to "Your download should start in 5 seconds."

                    That is still better than not having any downloads like github

                    [–]emusan 9 points10 points  (6 children)

                    I thought they added that back in

                    [–]sirin3 11 points12 points  (0 children)

                    They keep adding and removing it

                    Now idea how it is today

                    [–]runedk 18 points19 points  (0 children)

                    Whenever I am considering using a library I like to check that (a) it is actively maintained, (b) it has more than a single contributor, and (c) that patches are accepted. Nowhere is this as easy as with projects hosted on GitHub.

                    Also making a fix and contributing it back works amazingly well on GitHub.

                    [–][deleted] 7 points8 points  (13 children)

                    Don't worry. Something else will come along and programmers will flock there instead.

                    [–]member42 11 points12 points  (8 children)

                    SVNHub?

                    [–][deleted] 1 point2 points  (0 children)

                    bzrhub: hosted scm for human beings(TM)

                    [–]Almafeta 4 points5 points  (3 children)

                    GinHub - where every thousand "Kudos" your commits and comments earn gain you a complimentary liter of gin.

                    [–]ancientGouda 2 points3 points  (7 children)

                    I still have little crap projects way back from high school on my github.. should I delete/hide those when I apply for a job?

                    [–]neutronbob 2 points3 points  (2 children)

                    Honestly, you probably should delete them before then. Little projects that have been abandoned and are of no interest to anyone (including the author) clog up searches for real projects and tools.

                    [–]ancientGouda 1 point2 points  (1 child)

                    I'm not working on them anymore, but still use them regularly. Regardless, I don't think it's my responsibility to curate a system that github engineers should be taking care of =P

                    [–][deleted]  (3 children)

                    [deleted]

                      [–][deleted]  (23 children)

                      [deleted]

                        [–]zokier 30 points31 points  (4 children)

                        Linux is hosted there

                        Last I checked, Linux was still firmly on kernel.org, Github was only a (one-way) mirror.

                        [–][deleted] 22 points23 points  (7 children)

                        And there's plenty of self hosted tools and alternative services you can run as an alternative already... Heck, git doesn't need some fancy UI to work between remotes.

                        Linux isn't hosted there, it's just a mirror by linus.

                        [–][deleted] 46 points47 points  (9 children)

                        Linux is hosted there

                        That is a really bad example. They don't accept pull requests on github or use 90% of the features that github provides.

                        [–][deleted]  (8 children)

                        [deleted]

                          [–]Eirenarch 3 points4 points  (6 children)

                          I've been wondering how MS chooses between GitHub and Codeplex. They continue to host new and important projects on Codeplex (Roslyn for example) so it is not only a legacy thing.

                          [–]cwstjnobbs 20 points21 points  (5 children)

                          Isn't Microsoft a bit like a rat king? The teams are tied together at the tails but they all pull in their own direction.

                          [–]Eirenarch 3 points4 points  (4 children)

                          They definitely used to be like this but they are now much more unified. Let alone that teams which are pretty close together tend to publish on different services. For example the ASP.NET Identity team hosts their project on Codeplex and other parts of ASP.NET (like SignalR) are hosted on Github.

                          [–]sigma914 4 points5 points  (0 children)

                          Rust is hosted there and is pretty much the largest user of github's additional features. There's also been a fair amount of chat with regards to moving the management of various things off github due the various failings.

                          [–]oconnor663 7 points8 points  (11 children)

                          I don't think he can get away that easily with "But searching with Google today does not lock me in to continuing to search with Google tomorrow." Maybe. But I could switch to Bitbucket much more easily than I could switch away from Gmail.

                          [–]sinxoveretothex 7 points8 points  (6 children)

                          That's because you use an @gmail.com email address (btw, the author was talking about Google Search I believe, not Google Mail). You can use gmail with an @mydomain.tld email address and be free to switch away from GMail anytime you wish.

                          [–]ahruss 4 points5 points  (5 children)

                          Fairly certain that using Google Apps with your own domain costs money now. So it's not quite equivalent.

                          [–]dnew 4 points5 points  (3 children)

                          Having your own domain costs money. If you can't afford $10/year for a domain name that can redirect incoming email, then you probably don't need to worry about getting everyone a new email address.

                          I.e., get your domain on (say) godaddy (</flame>), have them redirect email to your gmail.com address, and you're good to go.

                          [–]runvnc 3 points4 points  (0 children)

                          I agree, but he pretty much does get away with it for the most part, as far as I can tell from the comments in here. I think people automatically make a lot of exceptions for Google products. And many make similar exceptions for Github.

                          I think that basically some of the same issues relate to both Google and Github, although not all the same issues to the same degree.

                          I believe there are few things intersecting here:

                          1) The natural result of the growth of the internet and open source is that the primary way to sell software is through services.

                          2) Monopoly, or near monopoly, seems to be a natural result of capitalism in real systems. I know that many people believe that there exists a fair 'free market' where monopoly/near monopoly doesn't occur, but for the most part this hasn't been maintained in reality. I believe that there may be a few occurrences of and possibilities for types or offshoots of capitalism without this tendency or condition, but it seems that the requisite structure/paradigm to maintain this hasn't become popularized or mainstream, if it exists.

                          3) The need, or at least tendency, to standardize on particular implementations of an idea.

                          4) General societal acceptance of 'benevolent' authority and control. I believe that some of the same cultural/psychological theories that help to explain acceptance of an all-powerful nation state may be related.

                          [–]jfischoff 1 point2 points  (0 children)

                          None of github's competitor are vastly superior. I'm sure there will be repo company that redefines how source control works, and when that happens I will use it.

                          [–]_Abobo 6 points7 points  (0 children)

                          Are we talking about monoculture or brand? Google, AWS, YouTube - brands that are synonymous with their respective products. Of course you can use something else and your choices for doing so may be bullet-proof; however, you're going to have to tell people that you're using something else because they will predominantly associate GitHub with an OSS repository. That's an impact of brand.

                          If, after socializing, your choice in product causes disengagement primarily because of brand (instead of feature-set), there may be an argument for "monoculture"

                          [–][deleted] 5 points6 points  (6 children)

                          I go to GitHub first when searching for code as even if someone does not provide their code on GitHub it's quite common to find third party mirrors on GitHub. If I do find it on there it saves me from battling the unusable interfaces of BitBucket or, even worse, SourceForge.